User Tools

Site Tools


code_source_de_menu.to7_v3.2

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
code_source_de_menu.to7_v3.2 [2023/05/27 14:14] fool-duplexcode_source_de_menu.to7_v3.2 [2023/05/27 15:19] (current) fool-duplex
Line 3: Line 3:
 <code>* MENU.TO7 version 3.1 <code>* MENU.TO7 version 3.1
  
-RESET  EQU    $FFFE 
 BEGRAM EQU    $6100 BEGRAM EQU    $6100
 ENDRAM EQU    $E000 ENDRAM EQU    $E000
Line 13: Line 12:
 RELACH EQU    $E02B RELACH EQU    $E02B
 RESEAU EQU    $E025 RESEAU EQU    $E025
-M5VCT  EQU    $EFFE 
 ADCNTC EQU    $5FFE ADCNTC EQU    $5FFE
 ADCRDU EQU    $5FF4 ADCRDU EQU    $5FF4
 ADTRCR EQU    $5FFA ADTRCR EQU    $5FFA
  
-TEMPO  EQU    $2039 +TEMPO  EQU    $6031 
-DUREE  EQU    $203B +DUREE  EQU    $6033 
-TIMBRE EQU    $203D +TIMBRE EQU    $6035 
-OCTAVE EQU    $203E+OCTAVE EQU    $6036
  
-KTSTH  EQU    $0A +KTSTH  EQU    $E806 
-JPUTCH EQU    $82 +PUTCH  EQU    $E803 
-JNOTEH EQU    $9E+NOTEH  EQU    $E81E
  
 SIZITM EQU    44 SIZITM EQU    44
Line 386: Line 384:
 THEEND EQU    *                     THEEND EQU    *                    
        BRA    THEEND                          ; Boucle infinie, attends chargement depuis le serveur        BRA    THEEND                          ; Boucle infinie, attends chargement depuis le serveur
-                     +        
-       JSR    $94E9               +* Mauvaise touche pressee        
-       JMP    $9454               +BADKEY EQU    *                     
-       LDB    $94A4,PCR           +       JSR    BEEP               
-       BEQ    $949E               +       JMP    SELECT               
-       CLR    $94A4,PCR          +        
 +* Attends une touche, uniquement si FLAGK=0          
 +GETKEY EQU    * 
 +       LDB    FLAGK,PCR           
 +       BEQ    SCRUT               
 +       CLR    FLAGK,PCR           
 +       RTS          
 +                
 +SCRUT  EQU    *                      
 +       JSR    KTSTH               
 +       BEQ    SCRUT               
 +       RTS          
 +        
 +FLAGK  FCB    $00   
 +                      
 +* Caractere dans B (a-z) change en majuscule 
 +UPCASE EQU    * 
 +       CMPB   #'               
 +       BCS    ENDUP               
 +       CMPB   #'  
 +       BHI    ENDUP               
 +       SUBB   #$20 
 +ENDUP  EQU    *                
 +       RTS             
 +        
 +* Routine d'affichage caractere 
 +PUTC   EQU    *              
 +       JMP    PUTCH               
 + 
 +* Affiche ALINEA espaces 
 +ALIGN  EQU    * 
 +       PSHS   B,                
 +       LDA    ALINEA               
 +       BEQ    ENDAL               
 + 
 +ALOOP  EQU    * 
 +       LDB    #SPACE                           
 +       JSR    PUTC               
 +       DECA                       
 +       BNE    ALOOP 
 +ENDAL  EQU    *               
 +       PULS   A,B,PC              
 + 
 +* Affiche un message termine par $00 pointe par X 
 +PMSG   EQU    * 
 +       LDB    ,X+                 
 +       BNE    PCAR              
        RTS                               RTS                       
-       JSR    $E806               +PCAR   EQU    * 
-       BEQ    $949E              +       JSR    PUTC               
 +       BRA    PMSG               
 + 
 +* Retour a la ligne 
 +CRLF   EQU    *          
 +       PSHS   B,CC                
 +       LDB    #CR                
 +       JSR    PUTC            
 +       LDB    #LF                
 +       JSR    PUTC               
 +       PULS   CC,B,PC             
 + 
 +* Passe la video en page forme 
 +FORM   EQU    * 
 +       PSHS                     
 +       LDB    SYSPRC               
 +       ORB    #$01                
 +       STB    SYSPRC               
 +       PULS   B,PC 
 +         
 +* Routine de traitement code reseau inconnu           
 +INCON  EQU    *               
        RTS                               RTS                       
-   NEG    <$C1                
-   ???                        
-   BCS    $94AF               
-   CMPB   #$7A                
-   BHI    $94AF               
-   SUBB   #$20                
-   RTS                        
-   JMP    $E803               
-   PSHS   B,                
-   LDA    $95A7               
-   BEQ    $94C2               
-   LDB    #$20                
-   JSR    $94B0               
-   DECA                       
-   BNE    $94BA               
-   PULS   A,B,PC              
-   LDB    ,X+                 
-   BNE    $94C9               
-   RTS                        
-   JSR    $94B0               
-   BRA    $94C4               
-   PSHS   B,CC                
-   LDB    #$0D                
-   JSR    $94B0               
-   LDB    #$0A                
-   JSR    $94B0               
-   PULS   CC,B,PC             
-   PSHS                     
-   LDB    $E7C3               
-   ORB    #$01                
-   STB    $E7C3               
-   PULS   B,PC                
-   RTS                        
-   PSHS   B,A,CC              
-   LDD    #$0008              
-   STD    $6036               
-   LDD    #$0024              
-   STD    $6033               
-   LDD    #$0005              
-   STD    $6031               
-   LDB    #$03                
-   STB    $6035               
-   LDB    #$31                
-   JSR    $9509               
-   PULS   CC,A,B,PC           
-   JMP    $E81E               
-   PSHS                     
-   LEAU   $9562,PCR           
-   BRA    $951A               
-   PSHS                     
-   LEAU   $9557,PCR           
-   PSHS   B,                
-   LDA    ,U+                 
-   STA    $01,S               
-   PULS                     
-   BSR    $9548               
-   BNE    $9532               
-   DEC    ,S                  
-   BNE    $9522               
-   LDB    #$30                
-   STB    ,X+                 
-   BRA    $9546               
-   BSR    $9548               
-   PSHS                     
-   LDB    ,X                  
-   ADDB   #$30                
-   CMPB   #$39                
-   BLS    $953E               
-   ADDB   #$07                
-   STB    ,X+                 
-   PULS                     
-   DEC    ,S                  
-   BNE    $9530               
-   PULS   A,U,PC              
-   CLR    ,X                  
-   SUBD   ,                 
-   BCS    $9552               
-   INC    ,X                  
-   BRA    $954A               
-   ADDD   ,U++                
-   TST    ,X                  
-   RTS                        
-   ???                        
-   BEQ    $956A               
-   COM    <$E8                
-   NEG    <$64                
-   NEG    <$0A                
-   NEG    <$01                
-   LSR    <$10                
-   NEG    <$01                
-   NEG    <$00                
-   ???                        
-   NEG    <$4F                
-   BSR    $9583               
-   LEAX   -$02,             
-   LBRA   $94C4               
-   BSR    $9583               
-   LEAX   -$05,             
-   LBRA   $94C4               
-   BSR    $9583               
-   LEAX   $95A0,PCR           
-   LBRA   $94C4               
-   LEAX   $95A0,PCR           
-   BSR    $9514               
-   CLR    ,X                  
-   RTS                        
-   LEAX   $95A0,PCR           
-   PSHS                     
-   LBSR   $950C               
-   CLR    ,X                  
-   PULS                     
-   LBRA   $94C4               
  
-...+* Joue un pouet 
 +BEEP   EQU    *     
 +       PSHS   B,A,CC              
 +       LDD    #$0008              
 +       STD    OCTAVE               
 +       LDD    #$0024              
 +       STD    DUREE               
 +       LDD    #$0005              
 +       STD    TEMPO               
 +       LDB    #$03                
 +       STB    TIMBRE               
 +       LDB    #$31                
 +       JSR    PLAY 
 +       PULS   CC,A,B,PC           
 +PLAY   EQU    *    
 +       JMP    NOTEH 
 +                  
 +* Convertit un nombre 16 bits non signe en hexadecimal 
 +* D = nombre, X = pointeur sur buffer caractere 
 +CV16   EQU    *                      
 +       PSHS                     
 +       LEAU   BASE16,PCR           
 +       BRA    CONVRT 
 +     
 +* Convertit un nombre 16 bits non signe en decimal 
 +* D = nombre, X = pointeur sur buffer caractere 
 +CV10   EQU    *                  
 +       PSHS                     
 +       LEAU   BASE10,PCR           
 +        
 +CONVRT EQU    *        
 +       PSHS   B,                
 +       LDA    ,U+                             ; Nombre de chiffres              
 +       STA    1,S               
 +       PULS         
 +    
 +LOOP2  EQU    *                
 +       BSR    DIVIZ               
 +       BNE    BEGNB                           ; Dividende non nul -> debut du nombre          
 +       DEC    ,S                              ; Chiffre suivant          
 +       BNE    LOOP2               
 + 
 +       LDB    #'                            ; D valait 0 en fait         
 +       STB    ,X+                 
 +       BRA    CVEXIT               
 + 
 +CONTDV EQU    * 
 +       BSR    DIVIZ                           ; Continue la division 
 +               
 +BEGNB  EQU    *               
 +       PSHS                     
 +       LDB    ,X                              ; Chiffre courant                
 +       ADDB   #'               
 +       CMPB   #'               
 +       BLS    NOTHEX                          ; $A-$F ?            
 +       ADDB   #$07                            ; Correction 
 +         
 +NOTHEX EQU    *             
 +       STB    ,X+                             ; Stocke le caractere            
 +       PULS                     
 +       DEC    ,S                              ; Chiffre suivant                  
 +       BNE    CONTDV               
 + 
 +CVEXIT EQU    * 
 +       PULS   A,U,PC    
 +           
 +* Division de D par ,U 
 +* D = reste, ,X = dividende (0..9 ou 0..F) 
 +DIVIZ  EQU    *           
 +       CLR    ,X       
 + 
 +DVLOOP EQU    *            
 +       SUBD   ,                 
 +       BCS    DVEXIT               
 +       INC    ,X                  
 +       BRA    DVLOOP 
 + 
 +DVEXIT EQU    *               
 +       ADDD   ,U++                
 +       TST    ,X                  
 +       RTS                        
 + 
 +BASE10 EQU    *  
 +       FCB    5                               ; 5 chiffres 
 +       FDB    &10000 
 +       FDB    &1000 
 +       FDB    &100 
 +       FDB    &10 
 +       FDB    &1 
 +                 
 +BASE16 EQU    * 
 +       FCB    4                               ; 4 chiffres 
 +       FDB    $1000 
 +       FDB    $0100 
 +       FDB    $0010 
 +       FDB    $0001 
 + 
 +* Affiche no. poste contenu dans B 
 +DISPO  EQU     * 
 +       CLRA                       
 +       BSR    CONV10               
 +       LEAX   -2,                
 +       LBRA   PMSG  
 +     
 +* Affiche un nombre contenu dans D (inutilise) 
 +DISP10 EQU    *              
 +       BSR    CONV10               
 +       LEAX   -5,                     
 +       LBRA   PMSG 
 +              
 +* Affiche un nombre contenu dans D (inutilise) 
 +DSP10B EQU    *                
 +       BSR    CONV10               
 +       LEAX   STRBUF,PCR               
 +       LBRA   PMSG               
 + 
 +* Convertit un nombre 16 bits non signe en chaîne de caracteres (decimal) 
 +* D = nombre, resultat dans STRBUF 
 +CONV10 EQU    *        
 +       LEAX   STRBUF,PCR           
 +       BSR    CV10               
 +       CLR    ,X                              ; Termine la chaine                  
 +       RTS                        
 + 
 +* Affiche un nombre en hexadecimal 16 bits (inutilise) 
 +DISP16 EQU    *            
 +       LEAX   STRBUF,PCR 
 +       PSHS                     
 +       LBSR   CV16               
 +       CLR    ,X                  
 +       PULS                     
 +       LBRA   PMSG      
 +              
 +       FCB    SPACE,SPACE,SPACE,SPACE               
 + 
 +STRBUF EQU    *            
 +       FCB    $00,$00,$00,$00,$00,$00         ; Buffer pour conversion numerique     
 +       
 +MAXLEN FCB    $00                             ; Longueur du plus grand titre 
 +ALINEA FCB    $00                             ; Alignement a gauche       
 +             
 +MSG1   FCB    $1F,$20,$20 
 +       FCB    $1F,$12,$14 
 +       FCB    $1B,$44,$1B,$56,$1B,$66 
 +       FCB    $0C 
 +       FCB    $00 
 +        
 +MSG1B  FCB    $11 
 +       FCC    /NANORESEAU                     poste / 
 +       FCB    $00 
 +         
 +MSG2   FCC    /                / 
 +       FCB    $1B,$4F 
 +       FCC    /MENU/ 
 +       FCB    $1B,$4C 
 +       FCB    $00         
 +         
 +MSG3   FCB    $1F,$58,$4D 
 +       FCC    /Votre choix : / 
 +       FCB    $00                 
 + 
 +* Zone de consigne reseau     
 +CONSIG FCB    $18                             ; Longueur = 24 
 +       FCB    $00                             ; DEST = serveur 
 +       FCB    $09,$37                         ; Tache R = 09, Tache A = 55 (CHBIN) 
 +       FDB    $0000                           ; Nb octets 
 +       FCB    $00                             ; Page 
 +       FDB    $0000                           ; Adresse 
 +       FCB    $00                             ; Ordinateur 
 +       FCB    $00                             ; Application 
 +FILE   FCB    $00                             ; Disque  
 +       FCB    $00,$00,$00,$00,$00,$00,$00,$00 ; Nom du fichier 
 +       FCB    $00,$00,$00                     ; Suffixe 
 +       FCB    $00                             ; Mode de chargement 
 +         
 +* Zone de compte-rendu reseau         
 +CPTRD  FCB    $08                             ; Longueur = 8 
 +       FCB    $00,$00,$00,$00,$00,$00,$00,$00      
  
 ENDPRG EQU    * ENDPRG EQU    *
code_source_de_menu.to7_v3.2.1685189697.txt.gz · Last modified: 2023/05/27 14:14 by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki