parser.asm
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| parser.asm [2025/12/08 17:09] – fool-duplex | parser.asm [2026/01/05 15:59] (current) – fool-duplex | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | [[code_source_de_menu.mo5|Retourner à la liste des fichiers]] | + | [[code_source_de_nrdos.mo5_version_3.5|Retourner à la liste des fichiers]] |
| < | < | ||
| * PARSER.ASM (Décodage de la ligne de commande) | * PARSER.ASM (Décodage de la ligne de commande) | ||
| - | ************************************************************************************************************** | + | ************************************************************************************************************ |
| * INPUT | * INPUT | ||
| * Cette routine récupère une ligne de commande de 80 caractères maximum soit en direct, soit depuis un | * Cette routine récupère une ligne de commande de 80 caractères maximum soit en direct, soit depuis un | ||
| Line 10: | Line 10: | ||
| * des atomes (séparés par espace ou tabulation). Une ligne de commande se termine toujours par CR. | * des atomes (séparés par espace ou tabulation). Une ligne de commande se termine toujours par CR. | ||
| * LF est ignoré. | * LF est ignoré. | ||
| - | ************************************************************************************************************** | + | ************************************************************************************************************ |
| INPUT SET * | INPUT SET * | ||
| | | ||
| Line 17: | Line 17: | ||
| RTS | RTS | ||
| - | ************************************************************************************************************** | + | ************************************************************************************************************ |
| * GETLN | * GETLN | ||
| * Cette routine lit une ligne de 80 caractères maximum depuis le clavier ou depuis un fichier. | * Cette routine lit une ligne de 80 caractères maximum depuis le clavier ou depuis un fichier. | ||
| * Depuis un fichier, LF est ignoré. En mode direct, les flèches gauche, droite, haut, bas, ainsi que les | * Depuis un fichier, LF est ignoré. En mode direct, les flèches gauche, droite, haut, bas, ainsi que les | ||
| * touches INS, EFF sont gérées. ENTREE (CR) termine la ligne. | * touches INS, EFF sont gérées. ENTREE (CR) termine la ligne. | ||
| - | ************************************************************************************************************** | + | ************************************************************************************************************ |
| GETLN SET * | GETLN SET * | ||
| | | ||
| Line 59: | Line 59: | ||
| | | ||
| | | ||
| + | |||
| | | ||
| Line 72: | Line 73: | ||
| | | ||
| | | ||
| + | |||
| | | ||
| | | ||
| Line 87: | Line 89: | ||
| GLLPUP CMPY #0 | GLLPUP CMPY #0 | ||
| | | ||
| + | |||
| | | ||
| | | ||
| Line 105: | Line 108: | ||
| | | ||
| | | ||
| + | |||
| | | ||
| | | ||
| + | |||
| | | ||
| | | ||
| Line 143: | Line 148: | ||
| | | ||
| - | | + | |
| | | ||
| * Mise à jour des buffers et de l' | * Mise à jour des buffers et de l' | ||
| - | GLUPDT LDA | + | GLUPDT LDA INSFLG |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| + | | ||
| - | GLDISP STB | + | GLDISP STB CMDBUF, |
| - | | + | |
| - | | + | |
| - | GLDONE CMPB #CR | + | GLDONE CMPB |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| + | | ||
| + | | ||
| - | GLFINL LDX | + | GLFINL LDX # |
| - | | + | |
| - | GLLPCP LDA | + | GLLPCP LDA ,X+ |
| - | | + | |
| - | | + | |
| - | | + | |
| + | |||
| RTS | RTS | ||
| + | INSFLG FCB 0 ; Flag de mode insertion | ||
| + | CLCOPY RMB 81,0 ; Buffer de copie et précédente ligne de commande | ||
| + | CMDBUF RMB 81,0 ; Buffer de ligne de commande | ||
| + | ************************************************************************************************************ | ||
| + | * CNTTOK | ||
| + | * Parcours le buffer de ligne de commande à la recherche de séparateurs. A chaque séparateur trouvé, la | ||
| + | * position courante est rangée dans la table des atomes. Une succession de séparateurs compte comme un seul. | ||
| + | ************************************************************************************************************ | ||
| + | CNTTOK SET * | ||
| + | | ||
| + | | ||
| - | (To be continued ...) | + | CTSKLP LDA CMDBUF, |
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | |||
| + | CTSPC CMPX # | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | |||
| + | CTNRGT LDA CMDBUF,X | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | CTIGNS LDB CMDBUF, | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | |||
| + | CTENDL CMPA # | ||
| + | | ||
| + | |||
| + | RTS | ||
| + | |||
| + | TOKNB RMB 1,0 ; Nombre d' | ||
| + | TKOFST SET * ; Table des atomes | ||
| + | TKOFS1 RMB 2,0 | ||
| + | TKOFS2 RMB 2,0 | ||
| + | TKOFS3 RMB 2,0 | ||
| + | TKOFS4 RMB 2,0 | ||
| + | TKMOFS RMB 24,0 | ||
| + | |||
| + | ************************************************************************************************************ | ||
| + | * SPTBCR | ||
| + | * Teste le caractère pointé comme espace, tabulation ou retour chariot. | ||
| + | ************************************************************************************************************ | ||
| + | SPTBCR SET * | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | SPTEND RTS | ||
| + | |||
| + | ************************************************************************************************************ | ||
| + | * TOUP | ||
| + | * Convertit la ligne de commande en majuscules | ||
| + | ************************************************************************************************************ | ||
| + | TOUP | ||
| + | | ||
| + | |||
| + | TULOOP LDB CMDBUF,X | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | TUEND RTS | ||
| + | |||
| + | ************************************************************************************************************ | ||
| + | * DISPBS | ||
| + | * Efface le dernier caractère à l' | ||
| + | ************************************************************************************************************ | ||
| + | DISPBS SET * | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | RTS | ||
| </ | </ | ||
| + | |||
| + | [[code_source_de_nrdos.mo5_version_3.5|Retourner à la liste des fichiers]] | ||
parser.asm.1765210156.txt.gz · Last modified: by fool-duplex
