menu_de_demarrage
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
menu_de_demarrage [2019/06/28 10:37] – fool-duplex | menu_de_demarrage [2023/05/27 13:22] – fool-duplex | ||
---|---|---|---|
Line 1: | Line 1: | ||
Les menus de démarrage MENU.MO5 et MENU.TO7 sont envoyés par le serveur lors de l' | Les menus de démarrage MENU.MO5 et MENU.TO7 sont envoyés par le serveur lors de l' | ||
- | < | + | Disquette de développement : {{ :menu.fd |menu.fd}} |
- | RESET EQU $FFFE | + | |
- | BEGRAM EQU $2100 | + | |
- | ENDRAM EQU $A000 | + | |
- | IRQRE EQU $A041 | + | |
- | IRQPT EQU $2064 | + | |
- | SYSPRA EQU $A7C0 | + | |
- | NUPOST EQU $A7D8 | + | |
- | EXT64 EQU $A7CB | + | |
- | NUPO | + | |
- | RELACH EQU $A02B | + | |
- | RESEAU EQU $A025 | + | |
- | M5VCT EQU $EFFE | + | |
- | ADCNTC EQU $1FFE | + | |
- | ADCRDU EQU $1FF4 | + | |
- | ADTRCR EQU $1FFA | + | |
- | TEMPO EQU $2039 | ||
- | DUREE EQU $203B | ||
- | TIMBRE EQU $203D | ||
- | OCTAVE EQU $203E | ||
- | KTSTH EQU $0A | ||
- | JPUTCH EQU $82 | ||
- | JNOTEH EQU $9E | ||
- | |||
- | SIZITM EQU 44 | ||
- | SIZFIL EQU 12 | ||
- | |||
- | CR | ||
- | LF | ||
- | SPACE EQU $20 | ||
- | HYPHN EQU '- | ||
- | |||
- | |||
- | | ||
- | |||
- | START JMP MAIN | ||
- | |||
- | * Table des entrees de menu | ||
- | * Maximum 20 elements, 1 element = 44 octets, soit 880 octets au total | ||
- | |||
- | NBITM FCB 4 ; 4 elements dans le menu | ||
- | |||
- | ELEM1 FCC / | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | OFEL1 FCB $01 ; Disque source | ||
- | FILE1 FCC / | ||
- | |||
- | ELEM2 FCC / | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | | ||
- | FILE2 FCC /LOGO MO5/ ; Fichier correspondant, | ||
- | |||
- | ELEM3 FCC /LSE/ ; Titre 3 (32 octets max) | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | | ||
- | FILE3 FCC /LSE | ||
- | |||
- | ELEM4 FCC / | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | | ||
- | FILE4 FCC / | ||
- | |||
- | | ||
- | |||
- | * ORG $5374 | ||
- | |||
- | MAIN EQU * | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | EXTOK EQU * | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | ZMEM1 EQU * ; Efface la memoire de $2100 à $5002 | ||
- | | ||
- | | ||
- | | ||
- | |||
- | | ||
- | ZMEM2 EQU * ; Efface la memoire de $563D à $A000 | ||
- | | ||
- | | ||
- | | ||
- | |||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | VIDES EQU * ; Saute les lignes vides | ||
- | | ||
- | | ||
- | | ||
- | |||
- | SKIP1 EQU * | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | * Cherche la longueur max (plus grand titre) | ||
- | CMAXLN EQU * | ||
- | | ||
- | | ||
- | |||
- | STRLEN EQU * ; Calcule longueur titre courant | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | SKIP2 EQU * ; 32 caracteres max | ||
- | | ||
- | | ||
- | | ||
- | |||
- | SKIP3 EQU * | ||
- | | ||
- | | ||
- | | ||
- | |||
- | NEXT EQU * | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | * Calcule alignement a gauche =(39-MAXLEN-4)/ | ||
- | PULS | ||
- | LDA #& | ||
- | SUBA | ||
- | SUBA # | ||
- | LSRA | ||
- | STA ALINEA | ||
- | |||
- | * Affiche les choix, A est le premier | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | DISITM EQU * | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | | ||
- | DISTIT EQU * | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | SELECT EQU * | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | * Copie le nom de fichier en FILE | ||
- | | ||
- | CPNAME EQU * | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | LDX # | ||
- | JSR RESEAU | ||
- | |||
- | THEEND | ||
- | BRA | ||
- | | ||
- | ; Mauvaise touche pressee | ||
- | BADKEY | ||
- | JSR BEEP | ||
- | JMP SELECT | ||
- | |||
- | ; Attends une touche, uniquement si FLAGK=0 | ||
- | GETKEY | ||
- | LDB FLAGK, | ||
- | BEQ SCRUT | ||
- | CLR FLAGK, | ||
- | RTS | ||
- | |||
- | SCRUT | ||
- | BEQ SCRUT | ||
- | RTS | ||
- | |||
- | FLAGK | ||
- | |||
- | ; Caractere dans B (a-z) change en majuscule | ||
- | UPCASE | ||
- | CMPB #' | ||
- | BCS ENDUP | ||
- | CMPB #' | ||
- | BHI ENDUP | ||
- | SUBB #$20 | ||
- | ENDUP EQU * | ||
- | RTS | ||
- | |||
- | ; Routine d' | ||
- | PUTC EQU * | ||
- | CALL JPUTCH | ||
- | |||
- | ; Affiche ALINEA espaces | ||
- | ALIGN EQU * | ||
- | PSHS | ||
- | LDA ALINEA | ||
- | BEQ ENDAL | ||
- | |||
- | ALOOP EQU * | ||
- | LDB # | ||
- | JSR PUTC | ||
- | DECA | ||
- | BNE ALOOP | ||
- | ENDAL EQU * | ||
- | PULS | ||
- | |||
- | ; Affiche un message termine par $00 pointe par X | ||
- | PMSG EQU * | ||
- | LDB ,X+ | ||
- | BNE PCAR | ||
- | RTS | ||
- | PCAR JSR PUTC | ||
- | BRA PMSG | ||
- | |||
- | ; Retour a la ligne | ||
- | CRLF EQU * | ||
- | PSHS | ||
- | LDB #CR | ||
- | JSR PUTC | ||
- | LDB #LF | ||
- | JSR PUTC | ||
- | PULS | ||
- | |||
- | ; Passe la video en page forme | ||
- | FORM EQU * | ||
- | PSHS | ||
- | LDB SYSPRA | ||
- | ORB #$01 | ||
- | STB SYSPRA | ||
- | PULS B,PC | ||
- | | ||
- | ; Routine de traitement code reseau inconnu | ||
- | INCON EQU * | ||
- | RTS | ||
- | |||
- | ; Joue un pouet | ||
- | BEEP EQU * | ||
- | PSHS | ||
- | LDD # | ||
- | STD OCTAVE | ||
- | LDB #$24 | ||
- | STB DUREE+1 | ||
- | LDB #$05 | ||
- | STB TEMPO+1 | ||
- | LDB #$03 | ||
- | STB TIMBRE | ||
- | LDB #$31 | ||
- | JSR PLAY | ||
- | PULS | ||
- | PLAY CALL | ||
- | |||
- | ; Convertit un nombre 16 bits non signe en hexadecimal | ||
- | ; D = nombre, X = pointeur sur buffer caractere | ||
- | CV16 EQU * | ||
- | PSHS | ||
- | LEAU | ||
- | BRA CONVRT | ||
- | |||
- | ; Convertit un nombre 16 bits non signe en decimal | ||
- | ; D = nombre, X = pointeur sur buffer caractere | ||
- | CV10 EQU * | ||
- | PSHS | ||
- | LEAU | ||
- | |||
- | CONVRT | ||
- | PSHS | ||
- | LDA ,U+ ; Nombre de chiffres | ||
- | STA 1,S | ||
- | PULS | ||
- | |||
- | LOOP2: | ||
- | BSR DIVIZ | ||
- | BNE BEGNB ; Dividende non nul -> debut du nombre | ||
- | DEC ,S ; Chiffre suivant | ||
- | BNE LOOP2 | ||
- | |||
- | LDB #' | ||
- | STB ,X+ | ||
- | BRA CVEXIT | ||
- | |||
- | CONTDV | ||
- | BSR DIVIZ ; Continue la division | ||
- | | ||
- | BEGNB EQU * | ||
- | PSHS | ||
- | LDB ,X ; Chiffre courant | ||
- | ADDB #' | ||
- | CMPB #' | ||
- | BLS NOTHEX | ||
- | ADDB # | ||
- | | ||
- | NOTHEX | ||
- | STB ,X+ ; Stocke le caractere | ||
- | PULS | ||
- | DEC ,S ; Chiffre suivant | ||
- | BNE CONTDV | ||
- | |||
- | CVEXIT | ||
- | PULS | ||
- | | ||
- | ; Division de D par ,U | ||
- | ; D = reste, ,X = dividende (0..9 ou 0..F) | ||
- | DIVIZ EQU * | ||
- | CLR ,X | ||
- | |||
- | DVLOOP | ||
- | SUBD , | ||
- | BCS DVEXIT | ||
- | INC ,X | ||
- | BRA DVLOOP | ||
- | |||
- | DVEXIT | ||
- | ADDD , | ||
- | TST ,X | ||
- | RTS | ||
- | |||
- | BASE10 | ||
- | FCB | ||
- | FDB & | ||
- | FDB & | ||
- | FDB & | ||
- | FDB & | ||
- | FDB & | ||
- | | ||
- | BASE16 | ||
- | FCB | ||
- | FDB $1000 | ||
- | FDB $0100 | ||
- | FDB $0010 | ||
- | FDB $0001 | ||
- | |||
- | ; Affiche no. poste contenu dans B | ||
- | DISPO EQU * | ||
- | CLRA | ||
- | BSR CONV10 | ||
- | LEAX | ||
- | LBRA | ||
- | | ||
- | ; Affiche un nombre contenu dans D (inutilise) | ||
- | DISP10 | ||
- | BSR CONV10 | ||
- | LEAX | ||
- | LBRA PMSG | ||
- | |||
- | ; Affiche un nombre contenu dans D (inutilise) | ||
- | DISP10B EQU * | ||
- | BSR CONV10 | ||
- | LEAX | ||
- | LBRA | ||
- | |||
- | ; Convertit un nombre 16 bits non signe en chaîne de caracteres (decimal) | ||
- | ; D = nombre, resultat dans STRBUF | ||
- | CONV10 | ||
- | LEAX | ||
- | BSR CV10 | ||
- | CLR ,X ; termine la chaine | ||
- | RTS | ||
- | |||
- | ; Affiche un nombre en hexadecimal 16 bits (inutilise) | ||
- | DISP16 | ||
- | LEAX | ||
- | PSHS | ||
- | LBSR | ||
- | CLR ,X | ||
- | PULS | ||
- | LBRA PMSG | ||
- | | ||
- | FCB SPACE, | ||
- | |||
- | STRBUF | ||
- | FCB $00, | ||
- | | ||
- | MAXLEN | ||
- | ALINEA | ||
- | | ||
- | MSG1 FCB $1F, | ||
- | MSG1B FCB $11 | ||
- | FCC / | ||
- | FCB $00 | ||
- | | ||
- | MSG2 FCC / / | ||
- | FCB $1B,$73 | ||
- | FCC /MENU/ | ||
- | FCB $1B,$70 | ||
- | FCB $00 | ||
- | | ||
- | MSG3 FCB $1F,$58,$4D | ||
- | FCC /Votre choix : / | ||
- | FCB $00 | ||
- | | ||
- | ; Zone de consigne reseau | ||
- | CONSIG | ||
- | FCB $00 ; DEST = serveur | ||
- | FCB $09, | ||
- | FDB $0000 ; Nb octets | ||
- | FCB $00 ; Page | ||
- | FDB $0000 ; Adresse | ||
- | FCB $00 ; Ordinateur | ||
- | FCB $00 ; Application | ||
- | FILE FCB $00 ; Disque | ||
- | FCB $00, | ||
- | FCB $00 ; Mode de chargement | ||
- | | ||
- | ; Zone de compte-rendu reseau | ||
- | CPTRD FCB $08 ; Longueur | ||
- | FCB $00, | ||
- | | ||
- | ENDPRG | ||
- | |||
- | END </ |
menu_de_demarrage.txt · Last modified: 2023/05/27 13:22 by fool-duplex