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:19] 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    $E806 KTSTH  EQU    $E806
-JPUTCH EQU    $82 +PUTCH  EQU    $E803 
-JNOTEH EQU    $9E+NOTEH  EQU    $E81E
  
 SIZITM EQU    44 SIZITM EQU    44
Line 406: Line 404:
 FLAGK  FCB    $00   FLAGK  FCB    $00  
                                            
-   NEG    <$C1                +* Caractere dans B (a-z) change en majuscule 
-   ???                        +UPCASE EQU    * 
-   BCS    $94AF               +       CMPB   #'               
-   CMPB   #$7A                +       BCS    ENDUP               
-   BHI    $94AF               +       CMPB   #'z   
-   SUBB   #$20                +       BHI    ENDUP               
-   RTS                        +       SUBB   #$20 
-   JMP    $E803               +ENDUP  EQU    *                
-   PSHS   B,                +       RTS             
-   LDA    $95A7               +        
-   BEQ    $94C2               +* Routine d'affichage caractere 
-   LDB    #$20                +PUTC   EQU    *              
-   JSR    $94B0               +       JMP    PUTCH               
-   DECA                       + 
-   BNE    $94BA               +* Affiche ALINEA espaces 
-   PULS   A,B,PC              +ALIGN  EQU    * 
-   LDB    ,X+                 +       PSHS   B,                
-   BNE    $94C9               +       LDA    ALINEA               
-   RTS                        +       BEQ    ENDAL               
-   JSR    $94B0               + 
-   BRA    $94C4               +ALOOP  EQU    * 
-   PSHS   B,CC                +       LDB    #SPACE                           
-   LDB    #$0D                +       JSR    PUTC               
-   JSR    $94B0               +       DECA                       
-   LDB    #$0A                +       BNE    ALOOP 
-   JSR    $94B0               +ENDAL  EQU    *               
-   PULS   CC,B,PC             +       PULS   A,B,PC              
-   PSHS                     + 
-   LDB    $E7C3               +* Affiche un message termine par $00 pointe par X 
-   ORB    #$01                +PMSG   EQU    * 
-   STB    $E7C3               +       LDB    ,X+                 
-   PULS   B,PC                +       BNE    PCAR               
-   RTS                        +       RTS                        
-   PSHS   B,A,CC              +PCAR   EQU    * 
-   LDD    #$0008              +       JSR    PUTC               
-   STD    $6036               +       BRA    PMSG               
-   LDD    #$0024              + 
-   STD    $6033               +* Retour a la ligne 
-   LDD    #$0005              +CRLF   EQU    *          
-   STD    $6031               +       PSHS   B,CC                
-   LDB    #$03                +       LDB    #CR                
-   STB    $6035               +       JSR    PUTC            
-   LDB    #$31                +       LDB    #LF                
-   JSR    $9509               +       JSR    PUTC               
-   PULS   CC,A,B,PC           +       PULS   CC,B,PC             
-   JMP    $E81E               + 
-   PSHS                     +* Passe la video en page forme 
-   LEAU   $9562,PCR           +FORM   EQU    * 
-   BRA    $951A               +       PSHS                     
-   PSHS                     +       LDB    SYSPRC               
-   LEAU   $9557,PCR           +       ORB    #$01                
-   PSHS   B,                +       STB    SYSPRC               
-   LDA    ,U+                 +       PULS   B,PC 
-   STA    $01,S               +         
-   PULS                     +* Routine de traitement code reseau inconnu           
-   BSR    $9548               +INCON  EQU    *                
-   BNE    $9532               +       RTS                        
-   DEC    ,S                  + 
-   BNE    $9522               +* Joue un pouet 
-   LDB    #$30                +BEEP   EQU    *     
-   STB    ,X+                 +       PSHS   B,A,CC              
-   BRA    $9546               +       LDD    #$0008              
-   BSR    $9548               +       STD    OCTAVE               
-   PSHS                     +       LDD    #$0024              
-   LDB    ,X                  +       STD    DUREE               
-   ADDB   #$30                +       LDD    #$0005              
-   CMPB   #$39                +       STD    TEMPO               
-   BLS    $953E               +       LDB    #$03                
-   ADDB   #$07                +       STB    TIMBRE               
-   STB    ,X+                 +       LDB    #$31                
-   PULS                     +       JSR    PLAY 
-   DEC    ,S                  +       PULS   CC,A,B,PC           
-   BNE    $9530               +PLAY   EQU    *    
-   PULS   A,U,PC              +       JMP    NOTEH 
-   CLR    ,X                  +                  
-   SUBD   ,                 +* Convertit un nombre 16 bits non signe en hexadecimal 
-   BCS    $9552               +* D = nombre, X = pointeur sur buffer caractere 
-   INC    ,X                  +CV16   EQU    *                      
-   BRA    $954A               +       PSHS                     
-   ADDD   ,U++                +       LEAU   BASE16,PCR           
-   TST    ,X                  +       BRA    CONVRT 
-   RTS                        +     
-   ???                        +* Convertit un nombre 16 bits non signe en decimal 
-   BEQ    $956A               +* D = nombre, X = pointeur sur buffer caractere 
-   COM    <$E8                +CV10   EQU    *                  
-   NEG    <$64                +       PSHS                     
-   NEG    <$0A                +       LEAU   BASE10,PCR           
-   NEG    <$01                +        
-   LSR    <$10                +CONVRT EQU    *        
-   NEG    <$01                +       PSHS   B,                
-   NEG    <$00                +       LDA    ,U+                             ; Nombre de chiffres              
-   ???                        +       STA    1,S               
-   NEG    <$4F                +       PULS         
-   BSR    $9583               +    
-   LEAX   -$02,X              +LOOP2  EQU    *                
-   LBRA   $94C4               +       BSR    DIVIZ               
-   BSR    $9583               +       BNE    BEGNB                           ; Dividende non nul -> debut du nombre          
-   LEAX   -$05,X              +       DEC    ,S                              ; Chiffre suivant          
-   LBRA   $94C4               +       BNE    LOOP2               
-   BSR    $9583               + 
-   LEAX   $95A0,PCR           +       LDB    #'                            ; D valait 0 en fait         
-   LBRA   $94C4               +       STB    ,X+                 
-   LEAX   $95A0,PCR           +       BRA    CVEXIT               
-   BSR    $9514               + 
-   CLR    ,X                  +CONTDV EQU    * 
-   RTS                        +       BSR    DIVIZ                           ; Continue la division 
-   LEAX   $95A0,PCR           +               
-   PSHS                     +BEGNB  EQU    *               
-   LBSR   $950C               +       PSHS                     
-   CLR    ,X                  +       LDB    ,X                              ; Chiffre courant                
-   PULS                     +       ADDB   #'               
-   LBRA   $94C4              +       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,X                 
 +       LBRA   PMSG  
 +     
 +* Affiche un nombre contenu dans D (inutilise) 
 +DISP10 EQU    *              
 +       BSR    CONV10               
 +       LEAX   -5,X                      
 +       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.1685189945.txt.gz · Last modified: 2023/05/27 14:19 by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki