★ CODING ★ LA BIBLE DU CPC 6128 ★ |
La bible du CPC 6128 : 2.05.01 KERNAL (KL) |
Le Kernal, comme son nom l'indique est le noyau du système d'exploitation. C'est ainsi qu'il est responsable de la commande du déroulement des programmes, c'est-à-dire du traitement des interruptions ainsi que des Events, du traitement des Restarts, de la mise en place d'extensions de la ROM et de la commutation entre les diverses configurations de la mémoire. Les routines liées au mécanisme des Events peuvent être intéressantes pour l'utilisateur. 0000 ********************************* RST 0 RESET ENTRYAprès la mise sous tension du système, le processeur commence ici le traitement du programme. Un appel de RST 0 a pour effet une réinitialisation totale du système. 0000 U ROM disable, Mode 1, reset diviseur Sert à appeler une routine dans le système d'exploitation ou dans la RAM lui étant parallèle. L'adresse de la routine à appeler doit figurer directement à la suite de l'instruction RST. Comme pour la zone de &0000 à &3FFF, 14 bits d'adresse suffisent, les bits 14 et 15 sont utilisés pour sélectionner entre ROM et RAM. Le bit 15 mis a pour effet de sélectionner la RAM dans la zone de &C000 à &FFFF alors que le bit 14 annulé a pour effet de sélectionner le système d'exploitation. 0008 (0430) RST 1 LOW JUMP CONT'D Sert à appeler une routine dans une ROM d'extension. RST 2 est utilisé quand un programme, connecté sous forme de ROM d'extension, a besoin de plus de 16 K. 0010 (04C3) RST 2 LOW SIDE CALL CONT'D Permet d'appeler une routine n'importe où, en ROM ou en RAM. IlI faut pour cela faire suivre l'instruction RST 3 de l'adresse sur deux octets d'un bloc de paramètres (de 3 octets de long). Les deux premiers octets du bloc de paramètres contiennet l'adresse de la routine à appeler. Le troisième octet indique l'état ROM/RAM 0018 (046D) RST 3 LOW FAR CALL CONT'D RST 4 vous permet de lire le contenu de la RAM à partir d'un programme en langage machine, quel que soit l'état ROM sélectionné. L'instruction RST 4 remplace pratiquement LD A,(HL); hl doit pour cela contenir l'adresse de la case mémoire à lire. 0020 (056C) RST 4 RAM LAM CONT'D Permet de sauter à une routine du système d'exploitation. L'adresse d'entrée correspondante doit suivre immédiatement l'instruction RST 5. 0028 (04DB) RST 5 FIRM JUMP CONT'D Les octets &0030 à &0037 sont disponibles pour l'utilisateur. Lors de la mise sous tension du système, un RST 0 est fixé d'avance. 0030 RST 0 vers High Kernel Restore entrée pour interruptions hardware. 0038 (03E7) RST 7 INTERRUPT ENTRY CONT'D Restaurer kernel, supprimer files d'attente Event et cetera 005D (configuration ROM actuelle) Combien de temps s'est-il écoulé? 009A (Timer high) Fixer le temps sur valeur indiquée. 00A4 charger 0 dans accu et restaurer flags 00B1 ******************************************* Scan Events 0153 ******************************************** Kick Event 0158 KL EVENT 0163 ********************************* KL NEW FRAME FLY créer et ajouter bloc event 0166 KL INIT EVENT ajouter bloc event. 016A Start Frame Fly Chain supprimer bloc event. 0170 Start Frame Fly Chain créer et ajouter bloc event (voir KL NEW FRAME FLY). 0179 KL INIT EVENT ajouter bloc event (voir KL ADD FRAME FLY). 017D Start Fast Ticker Chain supprimer bloc event (voir KL DEL FRAME FLY). 0183 Start Fast Ticker Chain 0189 ******************************** traiter Ticker Chain 0189 (Start Ticker Chain) 01B3 ************************************* KL ADD TICKER ajouter bloc ticker. 01BF Start Ticker Chain 01C5 ************************************* KL DEL TICKER supprimer bloc ticker. 01C5 Start Ticker Chain créer bloc event. 01E2 ******************************************* KL EVENT 'kick' bloc event. 01E7 Event Cnt >127/<0 exécuter routine event. 021F (0467) KL FAR INCALL CONT'D annuler sync pending queue 022E ********************************** ajouter sync event 022F priorité vers b Au suivant. 0256 (Start Sync Pending Queue) 0259 octet fort vers accu routine event terminée. 0276 (priorité event actuel) 0284 KL DISARM EVENT verrouiller bloc event (compteur négatif). 0294 ********************************** KL EVENT DISABLE Verrouiller les événements simultanés normaux. Les événements simultanés urgents ne sont pas verrouillés. 0294 priorité event actuel autoriser événements simultanés normaux. 029A priorité event actuel ajouter extensions résidentes. 02B1 ********************************* KL FIND COMMAND chercher instruction dans toutes les zones mémoire ajoutées. 02B1 instruction à exécuter 0326 ************************************** KL ROM WALK trouve et initialise extensions ROM pour que ces ROMs soient disponibles. 0328 KL INIT BACK 0330 *************************************** KL INIT BACK ajouter extensions ROM 0330 configuration ROM actuelle 0388 ******************************************* Delete Event 0397 ***************KL FIXER CONFIGURATION RAM Ici est effectuée une commutation entre les différentes configurations RAM du CPC 6128. 0398 sauver registres 03C7 **************************** KL POLL SYNCHRONOUS Y a-t-il un event de priorité supérieure à celle de l'actuel? 03D6 (Start Sync Pending Queue) 03E7 ****************** rst 7 INTERRUPT ENTRY CONT'D comparez avec RST 7 INTERRUPT ENTRY. 03E9 KL EXT INTERRUPT ENTRY 041E ************************* KL EXT INTERRUPT ENTRY 0423 L ROM disable 042A ****************************** KL LOW PCHL CONT'D saut en ROM ou RAM basse. 0430 **************************** RST 1 LOW JUMP CONT'D comparez avec RST 1 LOW JUMP. 043C rotation accu quatre fois vers la gauche 045F ******************************* KL FAR PCHL CONT'D 0467 ****************************** KL FAR ICALL CONT'D 046D ********************** RST 3 LOW FAR CALL CONT'D comparez avec RST 3 LOW FAR CALL. 047C ROM# > 252? 04BD ****************************** KL SIDE PCHL CONT'D 04C3 ********************** RST 2 LOW SIDE CALL CONTD comparez avec RST 2 LOW SIDE CALL. 04D5 (configuration ROM actuelle) 04DB *************************** RST 5 FIRM JUMP CONT'D comparez avec RST 5 FIRM JUMP. 04E3 L ROM enable 04F7 ************************* KL L ROM ENABLE CONT'D connecter ROM inférieure. 04FA L ROM enable 04FE ************************* KL L ROM DISABLE CONT'D déconnecter ROM inférieure 0501 L ROM disable 0505 ************************* KL U ROM ENABLE CONT'D connecter ROM supérieure. 0508 U ROM enable 050C ************************ KL U ROM DISABLE CONT'D déconnecter ROM supérieure. 050F U ROM disable 0516 ************************** KL ROM RESTORE CONT'D restaurer ancienne configuration ROM 0517 a contient 051F **************************** kL ROM SELECT CONT'D sélectionner une ROM supérieure déterminée. 051F (0505) KL U ROM ENABLE CONT'D examiner ROM 0524 (051F) KL ROM SELECT CONT'D 052D ************************* KL ROM DESELECT CONT'D restaurer ancienne configuration ROM supérieure. 052F (0516) KL ROM RESTORE CONT'D 0543 *********************** KL CURR SELECTION CONT'D Quelle ROM supérieure est activée? 0543 ROM actuelle d'extension 0547 ************************************* KL LDIR CONT'D LDIR pour ROMs bloquées. 054D (0553) KL ROM OFF & CONFIG.SAVE LDDR pour ROMs bloquées. 054D (0553) KL ROM OFF & CONFIG.SAVE 0553 ********************** KL RQM OFF & C0NFIG. SAVE 0555 manipuler adresse RET 056C **************************** RST 4 RAM LAM GONT,D Comparez RST 4 RAM LAM 056F ROMs 057D *********************************** KL RAM LAM (IX) correspond à ld a,(ix). 057F ROMs
|