User Tools

Site Tools


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           

Retourner à la liste des fichiers

lookup.asm.1765448905.txt.gz · Last modified: by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki