User Tools

Site Tools


utils.asm

This is an old revision of the document!


Retourner à la liste des fichiers

* NRDOS.MO5 version 3.5
* UTILS.ASM (Routines utilitaires)

************************************************************************************************************
* UNKRT4
* Routine d'utilité inconnue (calcul de quelque chose)
************************************************************************************************************
UNKRT4 SET    *
       PSHS   A,B
       LDA    #128
       PSHS   A
       LDD    UNKVR4

UK4LP1 ORCC   #1
       RORA
       RORB
       RORA
       RORB
       RORA
       RORB
       TSTA
       BNE    UK4LB1
       LDA    #$FF

UK4LB1 TSTB
       BNE    UK4LB2
       LDB    #$FF

UK4LB2 MUL
       DEC    ,S
       BNE    UK4LP1
       ADDD   UNKVR4
       STD    UNKVR4
       TFR    D,X
       PULS   A
       PULS   PC,B,A

UNKVR4 FDB    $0101

************************************************************************************************************
* MUL16B
* Multiplication 16 bits avec résultat sur 32 bits
************************************************************************************************************
MUL16B SET    *
       PSHS   X,Y
       LEAX   ,S
       LEAY   2,S
       LEAS   -4,S
       LEAU   ,S
       CLR    ,U
       CLR    1,U
       LDA    1,X
       LDB    1,Y
       MUL
       STD    2,U
       LDA    ,X
       LDB    1,Y
       MUL
       ADDD   1,U
       STD    1,U
       BCC    M16CR1
       INC    ,U

M16CR1 LDA    1,X
       LDB    ,Y
       MUL
       ADDD   1,U
       STD    1,U
       BCC    M16CR2
       INC    ,U

M16CR2 LDA    ,X
       LDB    ,Y
       MUL
       ADDD   ,U
       STD    ,U
       LDX    ,U
       LDD    2,U
       LEAS   8,S
       RTS

************************************************************************************************************
* PRSDSP
* Interprète une chaîne et affiche l'entier correspondant. Inutilisé.
************************************************************************************************************
PRSDSP SET    *
       JSR    PRSINT
       LBEQ   PRMERR
       LBCS   PRMERR
       TFR    Y,D
       JMP    DSPDC2

************************************************************************************************************
* UNKRT5
* Routine d'utilité inconnue et inutilisée.
************************************************************************************************************
UNKRT5 SET    *
       JSR    VALAZ
       LBCS   PRMERR
       STX    TMP16
       JSR    PRSINT
       LBEQ   PRMERR
       LBCS   PRMERR
       LDX    TMP16
       STY    ,X
       RTS

************************************************************************************************************
* UNKRT6
* Routine d'utilité inconnue et inutilisée.
************************************************************************************************************
UNKRT6 SET    *
       JSR    VALAZ
       LBCS   PRMERR
       STX    TMP16
       JSR    PRSINT
       LBEQ   PRMERR
       LBCS   PRMERR
       JSR    UNKRT4
       JSR    MUL16B
       LEAX   1,X
       LDY    TMP16
       STX    ,Y
       RTS

************************************************************************************************************
* VALAZ
* Transforme un caractère alphabétique isolé en une valeur entre 1 et 26
************************************************************************************************************
VALAZ  SET    *
       JSR    SKSPCL
       JSR    GETNCH
       BEQ    VAZERR
       SUBB   #'A
       CMPB   #26
       BCC    VAZERR
       LDX    #VALTAB
       ABX
       ABX
       JSR    GETNCH
       BEQ    VAZOK
       CMPB   #SPACE
       BNE    VAZERR

VAZOK  ANDCC  #$FE
       RTS

VAZERR ORCC   #1
       RTS

************************************************************************************************************
* GETNCH
* Recupère le prochain caractère dans la ligne de commande
************************************************************************************************************
GETNCH SET    *
       PSHS   A,X
       LDX    CLPTR
       LDA    CLTOGO
       BEQ    GNRTS
       LDB    ,X
       LEAX   1,X
       STX    CLPTR
       DECA
       STA    CLTOGO
       ANDCC  #$FB

GNRTS  PULS   PC,X,A

************************************************************************************************************
* UNKRT7
* Routine d'utilité inconnue et inutilisée.
************************************************************************************************************
UNKRT7 SET    *
       JSR    CLS             ; Efface l'écran

UK7LP1 JSR    UNKRT4
       LDY    #320
       JSR    MUL16B
       PSHS   X               ; Résultat = coordonnée X
       JSR    UNKRT4
       LDY    #200
       JSR    MUL16B
       TFR    X,Y             ; Résultat = coordonnée Y
       PULS   X
       JSR    PSET            ; Affiche le point
       JSR    KEYPRS
       BEQ    UK7LP1
       JSR    GETKEY
       CMPB   #SPACE          ; Espace permet de sortir
       BNE    UK7LP1
       JSR    CLS             ; Efface l'écran
       RTS

************************************************************************************************************
* PSET
* Exécute la commande PSET. Inutilisé.
************************************************************************************************************
PSET   SET    *
       CMPX   #320
       BCC    PSERR
       CMPY   #200
       BCC    PSERR
       GOTO   PLOTH

PSERR  PSHS   X,Y
       LDX    #BADARG
       JSR    DSPSTR
       PULS   B,A
       JSR    DSPDC2
       LDX    #YEG
       JSR    DSPSTR
       PULS   B,A
       JMP    DSPDC2

BADARG FCB    CR, LF
       FCS    "Mauvais argument pour PSET"
       FCB    CR, LF
       FCS    /X = /

YEG    FCB    CR, LF
       FCC    ", Y = "
       FCB    0

VALTAB FDB     1,  2,  3,  4,  5,  6,  7,  8
       FDB     9, 10, 11, 12, 13, 14, 15, 16
       FDB    17, 18, 19, 20, 21, 22, 23, 24
       FDB    25, 26

TMP16  FDB    $0000
       RMB    2

Retourner à la liste des fichiers

utils.asm.1767352881.txt.gz · Last modified: by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki