===== Codes d'amorçage =====
Les codes d'amorçage sont de petites séquences de code exécutable envoyées aux postes avec les applications pour configurer et relancer le poste avant de passer la main à l'application.
== Code d'amorçage pour MO5 standard à l'initialisation et pour CHBIN ==
| Machines cibles | MO5 clavier gomme, clavier mécanique, MO5E. |
| Machines compatibles | MO5NR, MO6. |
Avant d'envoyer le menu ou l'application, le code suivant est exécuté :
9000 3452 PSHS U,X,A
9002 118C2080 CMPS #$2080 Pile saturée ?
9006 2306 BLS $900E
9008 118C20CC CMPS #$20CC Pile vide ?
900C 2314 BLS $9022
900E 1AFF ORCC #$FF On masque les interruptions
9010 CE20AC LDU #$20AC
9013 8610 LDA #$10 Copie de 32 octets
9015 AEE1 LDX ,S++
9017 AFC1 STX ,U++
9019 4A DECA
901A 26F9 BNE $9015
901C 10CE20AC LDS #$20AC
9020 1C00 ANDCC #$00 On rétablit les interruptions de manière un peu brutale
9022 35D2 PULS A,X,U,PC Retour
Après avoir envoyé le menu, le code suivant est exécuté en différé, où xxxx est l'adresse du point d'entrée du menu, usuellement $5000 pour MENU.MO5 :
9000 10CE20CC LDS #$20CC
9004 7Exxxx JMP $xxxx
== Code d'amorçage pour MO5 standard, changement d'application ==
| Machines cibles | MO5 clavier gomme, clavier mécanique, MO5E. |
| Machines compatibles | MO5NR, MO6. |
Pour changer l'application courante dans le poste, où xx = code de l'application (e.g. $01 pour le BASIC, $02 pour le LOGO)
9000 8601 LDA #$xx
9002 B71FF7 STA $1FF7
9005 39 RTS
== Test de la présence cartouche RAM sur un MO5 ==
Ce code permet au serveur de déterminer si la cartouche RAM 64 Ko est présente.
| Machines cibles | MO5 clavier gomme, clavier mécanique, MO5E. |
| Machines compatibles | MO5NR, MO6. |
9000 860C LDA #$0C On active la cartouche en lecture/écriture
9002 B7A7CB STA $A7CB
9005 108E1F6C LDY #$1F6C
9009 8EEFFA LDX #$EFFA Touillons un octet pour voir
900C A684 LDA ,X
900E 6384 COM ,X
9010 A184 CMPA ,X
9012 2604 BNE $9018 Super, ça fonctionne
9014 6FA4 CLR ,Y Mince, la valeur ne change pas, flag présence = 0
9016 2004 BRA $901C
9018 6FA4 CLR ,Y flag présence = $FF
901A 6AA4 DEC ,Y
901C 7FA7CB CLR $A7CB
901F 39 RTS
== Code d'amorçage pour MO5 standard et application type MEMO5 ==
| Machines cibles | MO5 clavier gomme, clavier mécanique, MO5E. Extension 64K obligatoire. |
| Machines compatibles | MO5NR, MO6. Sur ces machines, ce code provoque un retour au menu principal de la machine et l'application apparaît en choix 0. |
9F80 1AFF ORCC #$FF Pas d'interruption
9F82 8E2000 LDX #$2000 Effacement de toute la RAM utilisateur
9F85 CC0000 LDD #$0000 Page 0 moniteur incluse
9F88 ED81 STD ,X++
9F8A 8C9F80 CMPX #$9F80
9F8D 26F9 BNE $9F88
9F8F 8604 LDA #$04 Active la page 0 de l'extension RAM 64k
9F91 B7A7CB STA $A7CB avec protection en écriture
9F94 6E9FFFFE JMP [$FFFE] Redémarrage à froid