User Tools

Site Tools


libmo5.asm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
libmo5.asm [2025/12/29 11:41] – fool-duplexlibmo5.asm [2026/01/05 18:15] (current) – fool-duplex
Line 8: Line 8:
 * Bascule en mémoire vidéo forme * Bascule en mémoire vidéo forme
 ************************************************************************************************************ ************************************************************************************************************
-MEMFRM SET    *              +MEMFRM SET    * 
-       PSHS   B              +       PSHS   B 
-       LDB    SYSPRA         +       LDB    SYSPRA 
-       ORAB   #1             +       ORB    #1 
-       STB    SYSPRA         +       STB    SYSPRA 
-       PULS   PC,B          +       PULS   PC,B
  
-************************************************************************************************************                            +************************************************************************************************************
 * GETKEY * GETKEY
 * Lit une touche au clavier * Lit une touche au clavier
 ************************************************************************************************************ ************************************************************************************************************
-GETKEY SET    *             +GETKEY SET    *
        LDB    KEYFLG,PCR        LDB    KEYFLG,PCR
-       BEQ    GKLP01         +       BEQ    GKLP01 
-                            +
        CLR    KEYFLG,PCR        CLR    KEYFLG,PCR
-       RTS                   +       RTS
-                             +
-GKLP01 CALL   GETCH          +
-       BEQ    GKLP01         +
-                             +
-       RTS                   +
-                             +
-KEYFLG FCB 0                +
  
-************************************************************************************************************                            +GKLP01 CALL   GETCH 
 +       BEQ    GKLP01 
 + 
 +       RTS 
 + 
 +KEYFLG FCB 0 
 + 
 +************************************************************************************************************
 * KEYPRS * KEYPRS
 * Teste si une touche a été pressée * Teste si une touche a été pressée
 ************************************************************************************************************ ************************************************************************************************************
-KEYPRS SET    *              +KEYPRS SET    * 
-       TST    KEYFLG         +       TST    KEYFLG 
-       BNE    KPRTS          +       BNE    KPRTS 
-                             + 
-       CALL   GETCH          +       CALL   GETCH 
-       BNE    KPFLAG         +       BNE    KPFLAG 
-                             + 
-       RTS                   +       RTS 
-                             + 
-KPFLAG STB    KEYFLG-*-3,PC ; Bug ? +KPFLAG STB    KEYFLG,PCR ; Bug ? 
-                             + 
-KPRTS  RTS                  +KPRTS  RTS
  
 ************************************************************************************************************ ************************************************************************************************************
 * PCHAR * PCHAR
 * Affiche un caractère * Affiche un caractère
-************************************************************************************************************                             +************************************************************************************************************ 
-PCHAR  SET    *              +PCHAR  SET    * 
-       GOTO   PUTCH         +       GOTO   PUTCH
  
 ************************************************************************************************************ ************************************************************************************************************
 * DCRLF * DCRLF
 * Effectue un retour à la ligne * Effectue un retour à la ligne
-************************************************************************************************************                             +************************************************************************************************************ 
-DCRLF  SET    *              +DCRLF  SET    * 
-       PSHS   CC,B           +       PSHS   CC,B 
-       LDB    #CR            +       LDB    #CR 
-       LBSR   PCHAR          +       LBSR   PCHAR 
-       LDB    #LF            +       LDB    #LF 
-       LBSR   PCHAR          +       LBSR   PCHAR 
-       PULS   PC,B,CC        +       PULS   PC,B,CC 
-                            +
 ************************************************************************************************************ ************************************************************************************************************
 * DSPACE * DSPACE
 * Affiche une espace * Affiche une espace
-************************************************************************************************************                             +************************************************************************************************************ 
-DSPACE SET    *              +DSPACE SET    * 
-       PSHS   CC,B           +       PSHS   CC,B 
-       LDB    #SPACE         +       LDB    #SPACE 
-       LBSR   PCHAR          +       LBSR   PCHAR 
-       PULS   PC,B,CC       +       PULS   PC,B,CC
  
 ************************************************************************************************************ ************************************************************************************************************
 * PLAY * PLAY
-* Joue une note de musique     +* Joue une note de musique 
-************************************************************************************************************                         +************************************************************************************************************ 
-PLAY   SET    *              +PLAY   SET    * 
-       GOTO   NOTEH          +       GOTO   NOTEH 
-                            +
 ************************************************************************************************************ ************************************************************************************************************
 * DSPSTR * DSPSTR
 * Affiche une chaîne de caractère terminée par 0. * Affiche une chaîne de caractère terminée par 0.
-************************************************************************************************************                             +************************************************************************************************************ 
-DSPSTR SET    *              +DSPSTR SET    * 
-       LDB    ,X+            +       LDB    ,X+ 
-       BNE    DSDO           +       BNE    DSDO 
-                             + 
-       RTS                   +       RTS 
-                             + 
-DSDO   LBSR   PCHAR          +DSDO   LBSR   PCHAR 
-       BRA    DSPSTR        +       BRA    DSPSTR
  
 ************************************************************************************************************ ************************************************************************************************************
 * DSPSTL * DSPSTL
 * Affiche une chaîne de caractère de longueur A. * Affiche une chaîne de caractère de longueur A.
-************************************************************************************************************                             
-DSPSTL SET    *              
-       PSHS   A,B,X          
-                             
-DLLOOP TSTA                  
-       BEQ    DLRTS          
-                             
-       LDB    ,X+            
-       LBSR   PCHAR          
-       DECA                  
-       BRA    DLLOOP         
-                             
-DLRTS  PULS   PC,X,B,A       
-                             
 ************************************************************************************************************ ************************************************************************************************************
-* YESNO+DSPSTL SET    * 
 +       PSHS   A,B,X 
 + 
 +DLLOOP TSTA 
 +       BEQ    DLRTS 
 + 
 +       LDB    ,X+ 
 +       LBSR   PCHAR 
 +       DECA 
 +       BRA    DLLOOP 
 + 
 +DLRTS  PULS   PC,X,B,A 
 + 
 +************************************************************************************************************ 
 +* OUINON
 * Attend que l'utilisateur presse O ou N * Attend que l'utilisateur presse O ou N
-************************************************************************************************************                             +************************************************************************************************************ 
-YESNO  SET    *              +OUINON SET    * 
-       LEAX   YNBUFF,PCR  +       LEAX   YNBUFF,PCR 
-       LBSR   TINPUT         +       LBSR   TINPUT 
-       BEQ    YESNO          +       BEQ    OUINON 
-                             + 
-       LDB    ,X             +       LDB    ,X 
-       LBSR   UPCASE         +       LBSR   UPCASE 
-       CMPB   #'O           +       CMPB   #'O 
-       BEQ    YNRTS          +       BEQ    YNRTS 
-                             + 
-       CMPB   #'N           +       CMPB   #'N 
-       BEQ    YNRTS          +       BEQ    YNRTS 
-                             + 
-       LBSR   DISPBS         +       LBSR   DISPBS 
-       LBSR   BEEP           +       LBSR   BEEP 
-       BRA    YESNO          +       BRA    OUINON 
-                             + 
-YNRTS  RTS                   +YNRTS  RTS 
- +
 ************************************************************************************************************ ************************************************************************************************************
 * TINPUT * TINPUT
 * Lit une chaîne de caractère dans un fichier ou au clavier * Lit une chaîne de caractère dans un fichier ou au clavier
-************************************************************************************************************                            +************************************************************************************************************ 
-TINPUT SET    *              +TINPUT SET    * 
-       PSHS   B,U            +       PSHS   B,U 
-       TFR    X,U           +       TFR    X,U 
-       LDA    ,X++           +       LDA    ,X++ 
-       PSHS   X              +       PSHS   X 
-                            +
 TILOOP TST    FOFLG           ; Fichier ouvert ? TILOOP TST    FOFLG           ; Fichier ouvert ?
-       BEQ    TIKYBD         +       BEQ    TIKYBD 
-                            +
        LBSR   FGETCH          ; Oui, on va lire un caractère        LBSR   FGETCH          ; Oui, on va lire un caractère
-       BRA    TIKEYS           +       BRA    TIKEYS 
-                            +
 TIKYBD LBSR   GETKEY          ; Non, on lit au clavier TIKYBD LBSR   GETKEY          ; Non, on lit au clavier
-                            +
 TIKEYS CMPB   #CR             ; Fin de ligne TIKEYS CMPB   #CR             ; Fin de ligne
-       BEQ    TIEND          +       BEQ    TIEND 
-                            +
        CMPB   #EOF            ; Fin de fichier        CMPB   #EOF            ; Fin de fichier
-       BEQ    TIEND          +       BEQ    TIEND 
-                            +
        CMPB   #LEFT           ; Efface le dernier caractère        CMPB   #LEFT           ; Efface le dernier caractère
-       BEQ    TILEFT         +       BEQ    TILEFT 
-                            +
        CMPB   #UP             ; Efface toute la ligne        CMPB   #UP             ; Efface toute la ligne
-       BEQ    TIUPLP         +       BEQ    TIUPLP 
-                            +
        CMPB   #RIGHT          ; Rétablit le dernier caractère        CMPB   #RIGHT          ; Rétablit le dernier caractère
-       BEQ    TIRGHT         +       BEQ    TIRGHT 
-                            +
        CMPB   #DOWN           ; Rétablit toute la ligne        CMPB   #DOWN           ; Rétablit toute la ligne
-       BEQ    TIDNLP         +       BEQ    TIDNLP 
-                            +
        CMPB   #SPACE          ; Caractères 0..31 interdits        CMPB   #SPACE          ; Caractères 0..31 interdits
-       BCS    TIERR          +       BCS    TIERR 
-                            +
        CMPB   #127            ; Caractères 128..255 interdits        CMPB   #127            ; Caractères 128..255 interdits
-       BHI    TIERR          +       BHI    TIERR 
-                            +
        TSTA                   ; Plus de place dans le buffer ?        TSTA                   ; Plus de place dans le buffer ?
-       BEQ    TIERR          +       BEQ    TIERR 
-                            +
        STB    ,X+             ; On ajoute le caractère        STB    ,X+             ; On ajoute le caractère
-       DECA                 +       DECA
        LBSR   PCHAR           ; Et on l'affiche        LBSR   PCHAR           ; Et on l'affiche
-       BRA    TILOOP         +       BRA    TILOOP 
-                            +
 TILEFT CMPA   ,U              ; Buffer vide ? TILEFT CMPA   ,U              ; Buffer vide ?
-       BEQ    TIERR          +       BEQ    TIERR 
-                            +
        BSR    DELCHR          ; Efface le dernier caractère        BSR    DELCHR          ; Efface le dernier caractère
-       BRA    TILOOP        +       BRA    TILOOP
  
 ************************************************************************************************************ ************************************************************************************************************
 * DELCHR * DELCHR
 * Efface un caractère * Efface un caractère
-************************************************************************************************************                             +************************************************************************************************************ 
-DELCHR SET    *                  +DELCHR SET    * 
-       LBSR   ISPBS          +       LBSR   DISPBS 
-       INCA                  +       INCA 
-       LEAX   1,X            +       LEAX   -1,X 
-       RTS                  +       RTS
  
-************************************************************************************************************                            +************************************************************************************************************
 * Suite de TINPUT * Suite de TINPUT
-************************************************************************************************************                                                        +************************************************************************************************************
 TIUPLP CMPA   ,U              ; Buffer vide ? TIUPLP CMPA   ,U              ; Buffer vide ?
-       BEQ    TILOOP         +       BEQ    TILOOP 
-                            +
        BSR    DELCHR          ; Efface un caractère        BSR    DELCHR          ; Efface un caractère
-       BRA    TIUPLP         +       BRA    TIUPLP 
-                            +
 TIRGHT TSTA                   ; Fin de buffer ? TIRGHT TSTA                   ; Fin de buffer ?
-       BEQ    TIERR          +       BEQ    TIERR 
-                            +
        BSR    RSTCHR          ; Restaure le dernier caractère        BSR    RSTCHR          ; Restaure le dernier caractère
-       BRA    TILOOP        +       BRA    TILOOP
  
-************************************************************************************************************                            +************************************************************************************************************
 * RSTCHR * RSTCHR
 * Rétablit un caractère * Rétablit un caractère
-************************************************************************************************************                                                         +************************************************************************************************************ 
-RSTCHR SET    *               +RSTCHR SET    * 
-       TFR    A,B           +       TFR    A,B 
-       SUBB   ,U             +       SUBB   ,U 
-       NEGB                  +       NEGB 
-       CMPB   1,U            +       CMPB   1,U 
-       BCC    RCERR          +       BCC    RCERR
-                             +
-       LDB    ,X             +
-       CMPB   #SPACE           +
-       BCS    RCERR          +
-                             +
-       CMPB   #127           +
-       BHI    RCERR          +
-                             +
-       DECA                  +
-       LEAX   1,X            +
-       LBSR   PCHAR          +
-       ANDCC  #$FE           +
-       RTS                   +
-                             +
-RCERR  ORCC   #1             +
-       RTS                  +
  
-************************************************************************************************************                            +       LDB    ,X 
 +       CMPB   #SPACE 
 +       BCS    RCERR 
 + 
 +       CMPB   #127 
 +       BHI    RCERR 
 + 
 +       DECA 
 +       LEAX   1,X 
 +       LBSR   PCHAR 
 +       ANDCC  #$FE 
 +       RTS 
 + 
 +RCERR  ORCC   #1 
 +       RTS 
 + 
 +************************************************************************************************************
 * Suite de TINPUT * Suite de TINPUT
-************************************************************************************************************                                                        +************************************************************************************************************
 TIDNLP TSTA                   ; Fin de buffer ? TIDNLP TSTA                   ; Fin de buffer ?
-       BEQ    TIERR          +       BEQ    TIERR 
-                            +
        BSR    RSTCHR          ; Restaure un caractère        BSR    RSTCHR          ; Restaure un caractère
-       BCC    TIDNLP         +       BCC    TIDNLP 
-                             + 
-       LBRA   TILOOP         +       LBRA   TILOOP 
-                             + 
-TIEND  SUBA   ,U             +TIEND  SUBA   ,U 
-       NEGA                  +       NEGA 
-       STA    1,U           +       STA    1,U
        PULS   X               ; X pointe sur le résultat        PULS   X               ; X pointe sur le résultat
-       PULS   PC,U,B         +       PULS   PC,U,B
-                             +
-TIERR  BSR    BEEP           +
-       LBRA   TILOOP        +
  
-************************************************************************************************************                            +TIERR  BSR    BEEP 
 +       LBRA   TILOOP 
 + 
 +************************************************************************************************************
 * BEEP * BEEP
-* Joue un BEEP                             +* Joue un BEEP 
-************************************************************************************************************                             +************************************************************************************************************ 
-BEEP   SET    *               +BEEP   SET    * 
-       PSHS   CC,A,B         +       PSHS   CC,A,B 
-       LDD    #8             +       LDD    #8 
-       STD    OCTAVE         +       STD    OCTAVE 
-       LDB    #36            +       LDB    #36 
-       STB    DUREE          +       STB    DUREE 
-       LDB    #5             +       LDB    #5 
-       STB    TEMPO          +       STB    TEMPO 
-       LDB    #3             +       LDB    #3 
-       STB    TIMBRE        +       STB    TIMBRE
        LDB    #$31            ; Erreur: devrait être $01 (MO5), pas $31 (TO7)        LDB    #$31            ; Erreur: devrait être $01 (MO5), pas $31 (TO7)
-       LBSR   PLAY           +       LBSR   PLAY 
-       PULS   PC,B,A,CC     +       PULS   PC,B,A,CC
  
-************************************************************************************************************                            +************************************************************************************************************
 * DHEX8 * DHEX8
 * Affiche un entier 8 bits en hexadécimal * Affiche un entier 8 bits en hexadécimal
-************************************************************************************************************                                                         +************************************************************************************************************ 
-DHEX8  SET    *                   +DHEX8  SET    * 
-       PSHS   B              +       PSHS   B 
-       LSRB                  +       LSRB 
-       LSRB                  +       LSRB 
-       LSRB                  +       LSRB 
-       LSRB                  +       LSRB 
-       BSR    DHXDGT         +       BSR    DHXDGT 
-       PULS   B              +       PULS   B 
-       ANDB   #$F           +       ANDB   #$F
  
-************************************************************************************************************                            +************************************************************************************************************
 * DHXDGT * DHXDGT
 * Affiche un chiffre hexadécimal * Affiche un chiffre hexadécimal
-************************************************************************************************************                                                         +************************************************************************************************************ 
-DHXDGT SET    *               +DHXDGT SET    * 
-       CMPB   #10            +       CMPB   #10 
-       BCC    DHDHEX         +       BCC    DHDHEX 
-                             + 
-       ADDB   #'0            +       ADDB   #'0 
-       LBRA   PCHAR          +       LBRA   PCHAR 
-                            +
 DHDHEX ADDB   #$37            ; Correction pour caractère A..F DHDHEX ADDB   #$37            ; Correction pour caractère A..F
-       LBRA   PCHAR         +       LBRA   PCHAR
 </code> </code>
 [[code_source_de_nrdos.mo5_version_3.5|Retourner à la liste des fichiers]] [[code_source_de_nrdos.mo5_version_3.5|Retourner à la liste des fichiers]]
libmo5.asm.1767004899.txt.gz · Last modified: by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki