User Tools

Site Tools


codes_d_amorcage

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
codes_d_amorcage.txt · Last modified: 2022/09/01 18:05 by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki