===== 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