lookup.asm
This is an old revision of the document!
Retourner à la liste des fichiers
* NRDOS.MO5 version 3.5
* LOOKUP.ASM (Recherche d'une commande interne)
************************************************************************************************************
* SKSPCL
* Saute les séparateurs consécutifs pour se positionner au début du prochain atome
************************************************************************************************************
SKSPCL SET *
LDX CLPTR,PCR
LDA CLTOGO,PCR
LBSR SKPSPC
STX CLPTR,PCR
STA CLTOGO,PCR
RTS
************************************************************************************************************
* RSTTOK
* Revient sur la position de l'atome sauvegardé
************************************************************************************************************
RSTTOK SET *
LEAX SVDTOK,PCR
STX CLPTR,PCR
LDA -1,X
STA CLTOGO,PCR
RTS
************************************************************************************************************
* LOOKUP
* Recherche dans la table pointée par Y l'adresse d'exécution correspondant à l'atome fourni
************************************************************************************************************
LOOKUP SET *
LDB ,Y+ ; Taille de la table
PSHS Y
PSHS B
ASLB ; *2
LEAY B,Y ; Y pointe sur la liste des mots clefs
LKLOOP:
BSR MTCHKW
BEQ LKFND
DEC ,S
BNE LKLOOP
ANDCC #$FB
BRA LKEND
LKFND:
LDY 1,S
LDB -1,Y
SUBB ,S
ASLB
LDD B,Y
LEAX START,PCR
LEAX D,X
ORCC #4
LKEND:
LEAS 3,S
RTS
************************************************************************************************************
* SKSPCL
*
************************************************************************************************************
MTCHKW SET *
PSHS X
LDA #8
MKLOOP:
TSTA
BEQ MKSKIP
LDB ,Y
ANDB #$7F
CMPB ,X+
BNE MKSKIP
DECA
LDB ,Y+
BPL MKLOOP
TSTA
BEQ MKEND1
LDB ,X
CMPB #SPACE
BNE MKEND2
MKEND1:
PULS PC,X
MKSKIP:
LDB ,Y+
BPL MKSKIP
MKEND2:
PULS PC,X
lookup.asm.1765448905.txt.gz · Last modified: by fool-duplex
