comment %----------------------------------------------------------------- This is the data field used by the CpcAlive emulator [V1.19c]. Some of the data shown may be outdated or non-functional. The emulator uses the x86 segment register "GS" to point to this field. This information is given in its raw state as an indication, and is subject to change according to the versions of the emulator. If some data is used in a program, it will be necessary to verify that the GS:0139H field of the table used matches to the current version of the emulator. Ceci est le champ de données utilisées par l'émulateur CpcAlive [V1.19c] L'émulateur utilise le registre de segment x86 "GS" pour pointer ce champ. Certaines données indiquées peuvent être obsolètes ou non fonctionnelles. Ces informations sont données à l'état brut à titre indicatif, et sont susceptibles d'être modifiées au gré des versions de l'émulateur. En cas d'utilisation de certaines données dans un programme, il faudra vérifier que le champ GS:0139H de la table utilisée corresponde bien à la version courante de l'émulateur. -------------------------------------------------------------------------% CpuHead db "www.cpcalive.com" ; 00>0F entête ----> pointer=GS:0 ; 00="s" si SMALLASM db 082h ; 10 :version de snapshot (B7=flag "Sna Perso") db 0 ; 11>1A:F db 0 ; A dw 0 ; BC dw 0 ; DE dw 0 ; HL ;Iword equ this word ; Pfort=registre I - Pfaible=?? db 0FFh ; R : registre rafraichissement mémoire db 0 ; I : registre I ; 1B IFF db 0 ; 1B IFF1 db 0 ; 1C IFF2 ; 1D IX db 0 ; 1D IXL db 0 ; 1E IXH ; 1F IY db 0 ; 1F IYL db 0 ; 20 IYH dw 0 ; 21 SP dw 0 ; 23 PC db 1 ; 25 IMD : mode d'interruption du Z80 dw 0 ; 26>2D:AF' - doit rester en 1ere position dw 0 ; BC' dw 0 ; DE' dw 0 ; HL' ; ** Gate Array ** db 0 ; 2E RGINK : numéro de crayon db 004H ; 2F 04h Bleu : border ; 30 PEN_BUF:16 crayons db 004H ; 04h Bleu : PEN 01-1 db 00AH ; 31 0Ah Jaune Vif : PEN 02-2 db 013H ; 32 13h Turquoise Vif : PEN 03-3 db 00CH ; 33 0Ch Rouge Vif : PEN 04-4 db 00BH ; 34 0Bh Blanc Brillant : PEN 05-5 db 014H ; 35 14h Noir : PEN 06-6 db 015H ; 36 15h Bleu Vif : PEN 07-7 db 00DH ; 37 0Dh Magenta Vif : PEN 08-8 db 006H ; 38 06h Turquoise : PEN 09-9 db 01EH ; 39 1Eh Jaune : PEN 0A-10 db 01FH ; 3A 1Fh Bleu Pastel : PEN 0B-11 db 007H ; 3B 07h Rose : PEN 0C-12 db 012H ; 3C 12h Vert Vif : PEN 0D-13 db 019H ; 3D 19h Vert Citron : PEN 0E-14 db 004H ; 3E 04h Bleu : PEN 0F-15 ; *0Ah Jaune Vif : PEN 0F-15 2eme jeu db 017H ; 3F 17h Bleu Ciel : PEN 10-16 ; *07h Rose : PEN 10-16 2eme jeu db 10001001b ; 40 SC_MODE : registre multi-configuration ; B76: 10b ; B5 : 0 (inutilisé) ; B4 : Réinitialisation compteur d'interruption ; B3 : Rom sup. déconnectée ; B2 : Rom inf. déconnectée ; B10: Mode vidéo db 0C0h ; 41 __GA : registre configuration de la RAM ; ** CRTC ** db 0 ; 42 RGBC : registre d'adresse ; 43>54 RGBD : registre de données (0, 1,..., 17) db 03fh ; 43-00-Total horizontal db 028h ; 44-01-Nombre de caracteres horizontaux db 02eh ; 45-02-Position signal HSYNC db 08eh ; 46-03-Longueur signal HSYNC db 026h ; 47-04-Total vertical en caracteres db 0 ; 48-05-Ajustement du total vertical db 019h ; 49-06-Nombre de caracteres verticaux db 01eh ; 4A-07-Position du signal VSYNV db 0 ; 4B-08-Mode entrelace db 07h ; 4C-09-Nombre de lignes ecran par caractere -1 db 0 ; 4D-10- db 0 ; 4E-11- db 030h ; 4F-12-Adresse haute départ mémoire écran db 0 ; 50-13-Adresse basse départ mémoire écran db 0 ; 51-14- db 0 ; 52-15- db 0 ; 53-16- db 0 ; 54-17- db 0 ; 55 HROM: numéro de ROM haute ; PIO db 0 ; 56>59 RGF4 : port A, port B, port C, port de contrôle db 00001111b ; RGF5 : (R/-) ; Bit7:signal de lecture des données sur cassette ; Bit6:signal BUSY sur sortie Centronics ; Bit5:extension active ; Bit4:selection 50 ou 60 hertz ; Bit3:choix du nom de l'ordinateur ; Bit2: " ; Bit1: " ; Bit0:pulse de retour TRAM db 0 ; RGF6 db 0 ; RGF7 ; PDG db 0 ; 5A PSGREG : registre d'adresse db 16 dup (0ffh); 5B>6A PSG00 : registre de données (0, 1, ..., 15) dw 0 ; 6B>6C DumpTaille:taille du dump de la mémoire (64K ou 128K) ; (les paramètres suivants n'existent que depuis la version 2.0) db 2 ; 6D type de CPC où le snapshot a été généré ; 0=CPC 464, 1=CPC 664, 2=CPC 6128, 3=inconnu ; 4=6128Plus,5=464Plus, 6=GX4000 db 0 ; 6E N_IM:numéro d'interruption (0..5), la dernière interruption ; durant un cycle de rafraîchissement de l'écran. db 6 dup (0) ; 6F>74 6 octets de multi-mode : le mode d'écran (0..2) pour ; les interruptions 0..5. ; . . . . . . . . . . . . . . . . . . . . . . . . . db 09Ch-075h dup (0) ; 75>9B set to 0 ; . . . . . . . . . . . . . . . . . . . . . . . . . db 0 ; 9C FDD motor Drive State (0=On,1=Off) dw 0 ; 9D FDD current physical track drive A dw 0 ; 9F FDD current physical track drive B db 0 ; A1 This byte represent the last byte written ; to the printer I/O port (this byte does not ; include the automatic inversion of the strobe ; caused by the Amstrad hardware) ; . . . . . . . . . . . . . . . . . . . . . . . . . db 0 ; A2 libre dw 0 ; A3 __SPMem:mémorisation de la pile Z80 dw -1 ; A5 PhrozenCOrg:ORG PhrozenC par défaut dw 0 ; A7 libre dw 0 ; A9 libre db 0 ; AB N_IMFront:B0=Front N_IM db 0 ; AC HistoryFlags:Flags History ; B0=flag HistUp/HistDwn ; B1=pas d'historique écran dw 0 ; AD ScrolUpNbr:nombre de scrolls up écran effectués dw 0 ; AF HistUpHdl:handle fichier "History" dd 0 ; B1 HistUpPtr:pointeur fichier "History" dd 0 ; B5 libre dw 0 ; B9 ScrolDwnNbr:nombre de scrolls down écran effectués dw 0 ; BB HistDwnHdl:handle fichier "History" dd 0 ; BD HistDwnPtr:pointeur fichier "History" dd 0C000h ; C1 VgaHome:adresse octet en haut à gauche écran Vga db 0 ; C5 libre dw 0 ; C6 XCH position curseur H (EDIT) dw 0 ; C8 XCL position maxi curseur H (EDIT) dw 0 ; CA XDH compteur (EDIT) db 080h-20-7 dup (0) ; B5 libre dw -1 ; 131 ZRomModul:numéro rom Z80 courante contenant les vecteurs X86 db 080h ; 133 ZVecNum:numéro vecteur X86 (B7="RET") dw 0C006h ; 134 ZVecPtr:pointeur vecteurs rom Z80 dw 0D000h ; 136 ZMnPtr:pointeur table de mnémoniques dans la rom Z80 db CpcAliveVersionRef; 138 CpcAliveVersion db "V1.19c",0 ; 0139<---- !!! Seul ce champ doit être pris en compte ; pour déterminer la version en cours !!!! db 030h ; 0140 RGBD12_BAK db 0 ; 0141 RGBD13_BAK dd 0 ; 0142 CpcHome:(anciennement VSCRL_CPC) db 0 ; 0146 DivFlags6=flags divers (6) ; B0=taille texte tampon "EDIT" <256 ; B1=DESA>BreakPoint sélectionné ; B2=DESA>logo débogueur affiché ; B3=ZDebug.in2>flag ZDbgWinScnSet db 0 ; 147 UserFlags1 - ; B0=Demande d'arrêt du programme basic en cour ; . . . . . . . . . . . . . . . . . . . . . . . . . ; données fenêtre ** REGISTRES Z80 ** db 0 ; 148 Z80WinReg 00: position verticale écran désassembleur db 70 ; 01: position horizontale source db 25 ; 02: hauteur fenêtre db 10 ; 03: largeur fenêtre db 0 ; 04: départ affichage horizontal db DbgPaper ; 06: encre fond fenêtre db DbgPaper+1 ; 05: encre caractères db 0 ; 07: libre ; . . . . . . . . . . . . . . . . . . . . . . . . . db 0;100000b ; 0150 DivFlags5=flags divers (5) ; B0=ne stocke pas les "REMarques" du basic ; B1=système initialisé ; B2=Dosbox flag ; B3=une cde CpuFast a ete demandee ; B4=couleurs négatives ; B5=TRON ; B6=MENU ; B7=TRON->DUMPADR db 000000b ; 0151 DivFlags3=flags divers (3) ; B0=interdit débuggeur ; B1=interdit Réinit Cpc par clavier ; B2=MOUVEMENT CLAVIER = SORTIE éMULATEUR ; B3=VERROUILLAGE SNAPSHOT EXéCUTABLE ; B4=Demande de sauvegarde du "mode veille" ; B5=COMMANDE FDC NON TERMINéE ; B6=Dump>Désassemblage Z80 ; B7=enclenche débuggeur à chaque écriture écran db 0 ; 0152 libre db 0 ; 0153 DivFlags7 ; B0=accès pixels via INT10H ; B1=couleurs inversées ; B2=codes de control OFF ; B3=set flag "appel ScPkWrite via TXT WRITE CHAR" ; B4=BPoke CL (SCR FLOOD BOX) ; B5=0>transparent 1>opaque (TXT WRITE CHAR) ; db 100010b ; 0154 DivFlags2=flags divers db 0 ; 0154 DivFlags2=flags divers ; B0=débuggeur on ; B1=répertoire CpcAlive = "R:\CPCALIVE\" ; B2=0>lancé depuis répertoire courant 1>Disquette de boot(Set path) ; B3=interdit "mode veille" ; B4=mode |DEBUGKEY ; B5=libre ; B6=CPM ON ; B7=mode écran VESA db 11000011b ; 0155 DivFlags=flags divers LOGO OFF ; db 01000011b ; 0155 DivFlags=flags divers LOGO ON ; db 00000011b ; 0155 DivFlags=flags divers ; B0=roms non chargées ; B1>0=CpuSlow,1=CpuFast ; B2=fichier chargé avec commande "|RUN" ; B43>00 pas d'attente retour faisceau ; 01 attente retour faisceau par le port 0F5H ; 10 attente retour faisceau quand N_IM=4 ; B5=réinit cpc demandé ; B6=programme version diffusée ; B7=logo ANICREA 'off' dw 0 ; 0156 XY_N pointe (IX+N) ou (IY+N) dd 0 ; 0158 CpuDoorVec: vecteur porte de sortie Cpu Z80 ; $$$ DbgVec: vecteur débugger db 10 dup (0FFh); 015C SCANLIG: état clavier émulateur (10 lignes clavier) db 3 ; 0166 ScnMode: mode écran db 0 ; 0167 IOFlags ; B0=mapping changé ; B1=port de sortie modifié db 0 ; 0168 DbgWinFlag: numéro de fenêtre ; 0=affiche écran Cpc ; 1=affiche 2eme fenetre (I/O) dw 0 ; 0169 XMARGE: coord.X marge gauche fenetre dw 0 ; 016B DumpCnf: configuration mémoire pour dump dw 0 ; 016D DumpAdr: adresse dump mémoire db 0 ; 016F libre db 0 ; 0170 libre db 0 ; 0171 DsaOTyp 0=SORTIE SUR éCRAN ; 1=SORTIE DANS FICHIER (SDO) ; 2=SORTIE SUR éCRAN et FICHIER ; 3=PAS DE SORTIE ; . . . . . . . . . . . . . . . . . . . . . . . . . ; données fenêtre ** REGISTRES X86 ** db 00 ; 172 X86WinReg 00: position verticale écran désassembleur db 20 ; 01: position horizontale source db 25 ; 02: hauteur fenêtre db 20 ; 03: largeur fenêtre db 00 ; 04: départ affichage horizontal db DbgPaper ; 06: encre fond fenêtre db DbgPaper+1 ; 05: encre caractères db 0 ; 07: libre ; . . . . . . . . . . . . . . . . . . . . . . . . . ; données fenêtre db 25 ; 17A X86WinDzi0 00: position verticale écran désassembleur db 0 ; 01: position horizontale source db 25 ; 02: hauteur fenêtre db 5-1 ; 03: largeur fenêtre db 12 ; 04: départ affichage horizontal db DbgPaper ; 06: encre fond fenêtre db DbgPaper+1 ; 05: encre caractères db 0 ; 07: libre ; . . . . . . . . . . . . . . . . . . . . . . . . . ; données fenêtre ; X86WinDsa db 0 ; 182 Z80WinDsa 00: position verticale écran désassembleur db 41 ; 01: position horizontale source db 25 ; 02: hauteur fenêtre db 29 ; 03: largeur fenêtre db 1 ; 04: départ affichage horizontal db DbgPaper ; 06: encre fond fenêtre db DbgPaper+1 ; 05: encre caractères db 0 ; 07: libre ; . . . . . . . . . . . . . . . . . . . . . . . . . ; données fenêtre db 25 ; 18A Z80WinDzi 00: position verticale source db 0 ; 01: position horizontale source db 25 ; 02: hauteur fenêtre db 81-1 ; 03: largeur fenêtre db 0 ; 04: départ affichage horizontal db DbgPaper ; 06: encre fond fenêtre db DbgPaper+1 ; 05: encre caractères db 0 ; 07: libre ; . . . . . . . . . . . . . . . . . . . . . . . . . ; données fenêtre db 25 ; 192 X86WinDzi 00: position verticale source db 4 ; 01: position horizontale source db 25 ; 02: hauteur fenêtre db 81-5-1 ; 03: largeur fenêtre db 40 ; 04: départ affichage horizontal db DbgPaper ; 06: encre fond fenêtre db DbgPaper+1 ; 05: encre caractères db 0 ; 07: libre ; . . . . . . . . . . . . . . . . . . . . . . . . . db 0 ; 19A libre db 0 ; 19B MnuState: flags menu ; B3210=type menu ; 0 =Normal ; 15=Off ; B7654=flags divers (libres) db 1 ; 19C ScQuartMode 00 : Mode 1er quart écran db 1 ; 19D 01 : Mode 2e quart écran db 1 ; 19E 02 : Mode 3e quart écran db 1 ; 19F 03 : Mode 4e quart écran ; (Bit2=flag état verrou(1)/déverrou(0)) dw 0 ; 1A0 SndFlag: flags registres son modifiés ; B0=R0Psg modifié ; B1=R1Psg modifié ... ; B13=R13Psg modifié ; B15/14 libres dw 3977 ; 1A2 CpuSpeed:1193180/300HZ=3977 dw 10000000b ; 1A4 EMUL_STATE : état émulateur ; B0 EMULATEUR 0=EMUL1 1=EMUL2 ; B1 débuggeur 0=OFF 1=ON ; B2 InterZ80 0=émulée 1=timer ; B43 00 ** CpuA Rom Read/Write ** ; 01 ? ; 10 ? ; 11 ? ; B5=Inks Lockées ; B6=inter timer cpu en route ; B7=Dos ON (intégration interruptions DOS) db 0;libre db 0;libre db 0 ; 1A8 ScnTxtXPos : position horizontale octet écran(PalAsk) db 0;100b;3 ; 1A9 ScnState : configuration écran ; B0 > hauteur/2 ; B1 > largeur/2 ; B2 > MENU ou TRON ON (HighScreen) ; B3 > plot pixel via CARACT(DIRECT) ; B6 > mode "record" ; B7 > screen off ; . . . . . . . . . . . . . . . . . . . . . . . . . db 0 ; 1AA DsaWinData : données fenêtre Dsa ; 00 : position verticale écran désassembleur db 0 ; 01 : position horizontale écran désassembleur db 25 ; 02 : nombre de lignes à désassembler db 20 ; 03 : largeur fenêtre ; . . . . . . . . . . . . . . . . . . . . . . . . . db 25 ; 1AE DziWinData : données fenêtre Dzi ; 00 : position verticale source db 0 ; 01 : position horizontale source db 25 ; 02 : hauteur fenêtre db 80 ; 03 : largeur fenêtre ; . . . . . . . . . . . . . . . . . . . . . . . . . db 0 ; 1B2 STOP_FLAGS flags ROMs/RAMs pour "STOP" ; B3 0=ROM supérieure connectée ; B2 0=ROM inférieure connectée dw 00000h ; 1B3 STOP adresse point d'arret pour debugger db 0 ; 1B5 OPrnTyp: Type routine OPrn db 0 ; 1B6 IPrnTyp: Type routine IPrn db 1 ; 1B7 !!! bug !!! db 1 ; 1B8 !!! bug !!! db 1 ; 1B9 !!! bug !!! db 1 ; 1BA !!! bug !!! db 0 ; 1BB STOP_NBR: nombre de points d'arrêts ; . . . . . . . . . . REGISTRES X86 . . . . . . . . . . dd 0 ; 1BC EFLAG F >(012h) dd 0 ; 1C0 EAX A >(011h) dd 0 ; 1C4 ECX BC>(013h) dd 0 ; 1C8 EDX DE>(015h) dd 0 ; 1CC EBX HL>(017h) dd 0 ; 1D0 ESP SP>(021h) dd 0 ; 1D4 EBP dd 0 ; 1D8 ESI IX>(01Dh) dd 0 ; 1DC EDI IY>(01Fh) ; . . . . . . . . . . . . . . . . . . . . . . . . . dw 0 ; 1E0 AsmPtr:pointeur code à assembler dw 0 ; 1E2 Z80Cpt:Compteur Refresh (Compteur inters) ; . . . . . . . . . . . . . . . . . . . . . . . . . db 0 ; 1E4 DebugTyp: Type débuggeur db 0 ; 1E5 IKeyFlag: Flags clavier émulateur ; B0=Lecture touche clavier dans fichier ; B1=posé au premier scan clavier db 0 ; 1E6 OTxtTyp : Type sortie de caracteres ; (déviation vecteur &BB5A) db 0 ; 1E7 STOP_ROM: Numéro de rom du point d'arrêt dw 0FFFFh ; 1E8 IKBufOfs:offset tampon commande INPUT CPC dw 0FFFFh ; 1EA segment tampon commande INPUT CPC ; 0FFFFFFFFh=tampon vide dd 0 ; 1EC MEMR:memoire MEM_REFRECH dd 0 ; 1F0 CpuClock: stockage temps d'exécution Cpu dd 0 ; 1F4 OpCodeClock: stockage temp d'exécution instruction dw 0 ; 1F8 RomRamConf:configuration ROM/RAM ; B0à7=No Rom/Ram/Module ; B8à10> 0=Ram,1=Bios inf,2=Rom sup,3=module X86 dd 0 ; 1FA RGInkMap: mapping R,V,B,flag Open/Close dw 0 ; 1FE !!!??? écriture ici=plantage ??? ;---------------------------------------------------------------------------- ; 200 InkTb00:PALETTE 1er QUART ECRAN ; R V B db 02Fh,02Fh,02Fh,0 ;7F7F7F 0 00h (13) Blanc (ROUGE,VERT,BLEU,inutilisé) db 02Fh,02Fh,02Fh,0 ;7F7F7F 1 01h (13) inutilisé (0) db 027h,03Fh,01Fh,0 ;00FF7F 2 02h (19) Vert marin db 03Fh,03Fh,01Fh,0 ;FFFF7F 3 03h (25) Jaune pastel db 000h,010h,03Fh,0 ;00007F 4 04h (01)-Bleu db 03Fh,000h,01Fh,0 ;FF007F 5 05h (07) Pourpre db 000h,02Fh,02Fh,0 ;007F7F 6 06h (10)-Turquoise db 03Fh,02Fh,02Fh,0 ;FF7F7F 7 07h (16)-Rose db 03Fh,000h,01Fh,0 ;FF007F 8 08h (07) inutilisé (5) (vérifier couleur) db 03Fh,03Fh,000h,0 ;FFFF00 9 09h (24) inutilisé (10) db 03Fh,03Fh,000h,0 ;FFFF00 10 0Ah (24)-Jaune Vif db 03Fh,03Fh,03Fh,0 ;FFFFFF 11 0Bh (26)-Blanc Brillant db 03Fh,000h,000h,0 ;FF0000 12 0Ch (06)-Rouge Vif db 03Fh,000h,03Fh,0 ;FF00FF 13 0Dh (08)-Magenta Vif db 03Fh,00Fh,000h,0 ;FF7F00 14 0Eh (15) Orange db 03Fh,01Bh,03Fh,0 ;FF7FFF 15 0Fh (17) Magenta Pastel db 000h,010h,03Fh,0 ;00007F 16 10h (01) inutilisé (4) db 027h,03Fh,01Fh,0 ;00FF7F 17 11h (19) inutilisé (2) db 000h,03Fh,000h,0 ;00FF00 18 12h (18)-Vert Vif db 000h,03Fh,03Fh,0 ;00FFFF 19 13h (20) Turquoise Vif db 000h,000h,000h,0 ;000000 20 14h (00)-Noir db 000h,000h,03Fh,0 ;0000FF 21 15h (02)-Bleu Vif db 010h,03Fh,010h,0 ;007F00 22 16h (09) Vert db 010h,027h,03Fh,0 ;007FFF 23 17h (11) Bleu Ciel db 03Fh,014h,03Fh,0 ;7F007F 24 18h (04) Magenta db 02Fh,03Fh,000h,0 ;7FFF7F 25 19h (22)-Vert pastel db 02Fh,03Fh,027h,0 ;7FFF00 26 1Ah (21) Vert citron db 010h,037h,03Fh,0 ;7FFFFF 27 1Bh (23) Turquoise Pastel db 02Fh,000h,000h,0 ;7F0000 28 1Ch (03) Rouge db 02Fh,000h,02Fh,0 ;7F00FF 29 1Dh (05) Mauve db 02Fh,02Fh,000h,0 ;7F7F00 30 1Eh (12)-Jaune db 00Fh,02Fh,03Fh,0 ;7F7FFF 31 1Fh (14)-Bleu Pastel ; 280 InkTb00+080h:PALETTE 2eme QUART ECRAN ; R V B db 02Fh,02Fh,02Fh,0 ;7F7F7F 0 00h (13) Blanc (ROUGE,VERT,BLEU,inutilisé) db 02Fh,02Fh,02Fh,0 ;7F7F7F 1 01h (13) inutilisé (0) db 027h,03Fh,01Fh,0 ;00FF7F 2 02h (19) Vert marin db 03Fh,03Fh,01Fh,0 ;FFFF7F 3 03h (25) Jaune pastel db 000h,010h,03Fh,0 ;00007F 4 04h (01)-Bleu db 03Fh,000h,01Fh,0 ;FF007F 5 05h (07) Pourpre db 000h,02Fh,02Fh,0 ;007F7F 6 06h (10)-Turquoise db 03Fh,02Fh,02Fh,0 ;FF7F7F 7 07h (16)-Rose db 03Fh,000h,01Fh,0 ;FF007F 8 08h (07) inutilisé (5) (vérifier couleur) db 03Fh,03Fh,000h,0 ;FFFF00 9 09h (24) inutilisé (10) db 03Fh,03Fh,000h,0 ;FFFF00 10 0Ah (24)-Jaune Vif db 03Fh,03Fh,03Fh,0 ;FFFFFF 11 0Bh (26)-Blanc Brillant db 03Fh,000h,000h,0 ;FF0000 12 0Ch (06)-Rouge Vif db 03Fh,000h,03Fh,0 ;FF00FF 13 0Dh (08)-Magenta Vif db 03Fh,00Fh,000h,0 ;FF7F00 14 0Eh (15) Orange db 03Fh,01Bh,03Fh,0 ;FF7FFF 15 0Fh (17) Magenta Pastel db 000h,010h,03Fh,0 ;00007F 16 10h (01) inutilisé (4) db 027h,03Fh,01Fh,0 ;00FF7F 17 11h (19) inutilisé (2) db 000h,03Fh,000h,0 ;00FF00 18 12h (18)-Vert Vif db 000h,03Fh,03Fh,0 ;00FFFF 19 13h (20) Turquoise Vif db 000h,000h,000h,0 ;000000 20 14h (00)-Noir db 000h,000h,03Fh,0 ;0000FF 21 15h (02)-Bleu Vif db 010h,03Fh,010h,0 ;007F00 22 16h (09) Vert db 010h,027h,03Fh,0 ;007FFF 23 17h (11) Bleu Ciel db 03Fh,014h,03Fh,0 ;7F007F 24 18h (04) Magenta db 02Fh,03Fh,000h,0 ;7FFF7F 25 19h (22)-Vert pastel db 02Fh,03Fh,027h,0 ;7FFF00 26 1Ah (21) Vert citron db 010h,037h,03Fh,0 ;7FFFFF 27 1Bh (23) Turquoise Pastel db 02Fh,000h,000h,0 ;7F0000 28 1Ch (03) Rouge db 02Fh,000h,02Fh,0 ;7F00FF 29 1Dh (05) Mauve db 02Fh,02Fh,000h,0 ;7F7F00 30 1Eh (12)-Jaune db 00Fh,02Fh,03Fh,0 ;7F7FFF 31 1Fh (14)-Bleu Pastel ; 300 InkTb00+0100h:PALETTE 3eme QUART ECRAN ; R V B db 02Fh,02Fh,02Fh,0 ;7F7F7F 0 00h (13) Blanc (ROUGE,VERT,BLEU,inutilisé) db 02Fh,02Fh,02Fh,0 ;7F7F7F 1 01h (13) inutilisé (0) db 027h,03Fh,01Fh,0 ;00FF7F 2 02h (19) Vert marin db 03Fh,03Fh,01Fh,0 ;FFFF7F 3 03h (25) Jaune pastel db 000h,010h,03Fh,0 ;00007F 4 04h (01)-Bleu db 03Fh,000h,01Fh,0 ;FF007F 5 05h (07) Pourpre db 000h,02Fh,02Fh,0 ;007F7F 6 06h (10)-Turquoise db 03Fh,02Fh,02Fh,0 ;FF7F7F 7 07h (16)-Rose db 03Fh,000h,01Fh,0 ;FF007F 8 08h (07) inutilisé (5) (vérifier couleur) db 03Fh,03Fh,000h,0 ;FFFF00 9 09h (24) inutilisé (10) db 03Fh,03Fh,000h,0 ;FFFF00 10 0Ah (24)-Jaune Vif db 03Fh,03Fh,03Fh,0 ;FFFFFF 11 0Bh (26)-Blanc Brillant db 03Fh,000h,000h,0 ;FF0000 12 0Ch (06)-Rouge Vif db 03Fh,000h,03Fh,0 ;FF00FF 13 0Dh (08)-Magenta Vif db 03Fh,00Fh,000h,0 ;FF7F00 14 0Eh (15) Orange db 03Fh,01Bh,03Fh,0 ;FF7FFF 15 0Fh (17) Magenta Pastel db 000h,010h,03Fh,0 ;00007F 16 10h (01) inutilisé (4) db 027h,03Fh,01Fh,0 ;00FF7F 17 11h (19) inutilisé (2) db 000h,03Fh,000h,0 ;00FF00 18 12h (18)-Vert Vif db 000h,03Fh,03Fh,0 ;00FFFF 19 13h (20) Turquoise Vif db 000h,000h,000h,0 ;000000 20 14h (00)-Noir db 000h,000h,03Fh,0 ;0000FF 21 15h (02)-Bleu Vif db 010h,03Fh,010h,0 ;007F00 22 16h (09) Vert db 010h,027h,03Fh,0 ;007FFF 23 17h (11) Bleu Ciel db 03Fh,014h,03Fh,0 ;7F007F 24 18h (04) Magenta db 02Fh,03Fh,000h,0 ;7FFF7F 25 19h (22)-Vert pastel db 02Fh,03Fh,027h,0 ;7FFF00 26 1Ah (21) Vert citron db 010h,037h,03Fh,0 ;7FFFFF 27 1Bh (23) Turquoise Pastel db 02Fh,000h,000h,0 ;7F0000 28 1Ch (03) Rouge db 02Fh,000h,02Fh,0 ;7F00FF 29 1Dh (05) Mauve db 02Fh,02Fh,000h,0 ;7F7F00 30 1Eh (12)-Jaune db 00Fh,02Fh,03Fh,0 ;7F7FFF 31 1Fh (14)-Bleu Pastel ; 380 InkTb00+0180h:PALETTE 4eme QUART ECRAN ; R V B db 02Fh,02Fh,02Fh,0 ;7F7F7F 0 00h (13) Blanc (ROUGE,VERT,BLEU,inutilisé) db 02Fh,02Fh,02Fh,0 ;7F7F7F 1 01h (13) inutilisé (0) db 027h,03Fh,01Fh,0 ;00FF7F 2 02h (19) Vert marin db 03Fh,03Fh,01Fh,0 ;FFFF7F 3 03h (25) Jaune pastel db 000h,010h,03Fh,0 ;00007F 4 04h (01)-Bleu db 03Fh,000h,01Fh,0 ;FF007F 5 05h (07) Pourpre db 000h,02Fh,02Fh,0 ;007F7F 6 06h (10)-Turquoise db 03Fh,02Fh,02Fh,0 ;FF7F7F 7 07h (16)-Rose db 03Fh,000h,01Fh,0 ;FF007F 8 08h (07) inutilisé (5) (vérifier couleur) db 03Fh,03Fh,000h,0 ;FFFF00 9 09h (24) inutilisé (10) db 03Fh,03Fh,000h,0 ;FFFF00 10 0Ah (24)-Jaune Vif db 03Fh,03Fh,03Fh,0 ;FFFFFF 11 0Bh (26)-Blanc Brillant db 03Fh,000h,000h,0 ;FF0000 12 0Ch (06)-Rouge Vif db 03Fh,000h,03Fh,0 ;FF00FF 13 0Dh (08)-Magenta Vif db 03Fh,00Fh,000h,0 ;FF7F00 14 0Eh (15) Orange db 03Fh,01Bh,03Fh,0 ;FF7FFF 15 0Fh (17) Magenta Pastel db 000h,010h,03Fh,0 ;00007F 16 10h (01) inutilisé (4) db 027h,03Fh,01Fh,0 ;00FF7F 17 11h (19) inutilisé (2) db 000h,03Fh,000h,0 ;00FF00 18 12h (18)-Vert Vif db 000h,03Fh,03Fh,0 ;00FFFF 19 13h (20) Turquoise Vif db 000h,000h,000h,0 ;000000 20 14h (00)-Noir db 000h,000h,03Fh,0 ;0000FF 21 15h (02)-Bleu Vif db 010h,03Fh,010h,0 ;007F00 22 16h (09) Vert db 010h,027h,03Fh,0 ;007FFF 23 17h (11) Bleu Ciel db 03Fh,014h,03Fh,0 ;7F007F 24 18h (04) Magenta db 02Fh,03Fh,000h,0 ;7FFF7F 25 19h (22)-Vert pastel db 02Fh,03Fh,027h,0 ;7FFF00 26 1Ah (21) Vert citron db 010h,037h,03Fh,0 ;7FFFFF 27 1Bh (23) Turquoise Pastel db 02Fh,000h,000h,0 ;7F0000 28 1Ch (03) Rouge db 02Fh,000h,02Fh,0 ;7F00FF 29 1Dh (05) Mauve db 02Fh,02Fh,000h,0 ;7F7F00 30 1Eh (12)-Jaune db 00Fh,02Fh,03Fh,0 ;7F7FFF 31 1Fh (14)-Bleu Pastel ;---------------------------------------------------------------------------- ; ** FLI_COLOR compressed map ** ;---------------------------------------------------------------------------- ; 400 FLI_COLOR compressed map dd 0100h*3+10 ; 00 size FLI_COLOR compressed map dw 11 ; 04 FLI_COLOR compressed map dw 1 ; 06 nbre de blocs dans chunk db 0 ; 07 skip_count db 0 ; 08 size_count (0=256) db 0100h*3 dup (0) ; 409 InkTb04:PALETTE 256 COULEURS (RVB) ;---------------------------------------------------------------------------- db 32 dup (0) ; 0709 InkMoveMap:table des couleurs modifiées db 4 dup ("-") ; 0729 +000 MediaInfo: tampon infos media db 8 dup ("-") ; +004 nom de fichier sans extension ;2 octets non affichées avec la commande |INFO db 0 ; +012 libre db 0 ; +013 taille données en octet ;départ données affichées avec la commande |INFO dd 0 ; +014 dd données infos media dd 0 +018 db 0 ; 073F libre dw 0 ; 0740 pseudo registre __CS dw 0 ; 0742 pseudo registre __DS dw 0 ; 0744 pseudo registre __ES dw 0 ; 0746 pseudo registre __FS dw 0 ; 0748 pseudo registre __GS dw 0 ; 074A pseudo registre __SS dd 0 ; 074C _EIP dd 0 ; 0750 DsaPtr pointeur code à désassembler dw 0 ; 0754 DsaSeg segment code à désassembler dw 0 ; 0756 libre db 256-42-22-25 dup (0) ; 0758 libre ; 800 libre db 056h ; libre db 05 dup (0) ; libre db 06 dup (010h) ; libre db 06 dup (020h) ; libre db 03 dup (030h) ; libre dw 0170h ; 815 BasStartAdr:adresse BASIC en RAM dw 1 ; 817 FrameLoop:nombre de frames à sauter en mode "record" db 00000000b ; 819 VgaFlags:flags gestion écran db 0 ; 81A VgaFlags+1 ; B0=palette modifiée ; B1=0 palette "soft" ; 1 palette standard ; B2=libre ; B3=Mode écran < 3 ; B4=palette 1er quart verrouillé ; B5=palette 2eme quart verrouillé ; B6=palette 3eme quart verrouillé ; B7=palette 4eme quart verrouillé ; B8=Refresh 16 couleurs ; B9=écran Vga 16 couleurs ; B10=écran Vga 256 couleurs ; B11=résolution image animée 640*400 ; B12=VgaMapping ** MISE A JOUR TABLE D'ANIMATION ** ; $$$$inutiliséB13=interdit lecture/écriture dans ram écran cpc(n'utilise que les tampons) ; B13=0** MISE A JOUR TABLE D'ANIMATION(TABLE ECRAN GRAPHIQUE) ** ; 1** MISE A JOUR TABLE D'ANIMATION(TABLE DE CARACTERES) ** db 0 ; 81B ScrInk: dernière encre encodée par le cpc dw 0 ; 81C ScrPosX: SCR DOT POSITION X dw 0 ; 81E ScrPosY: SCR DOT POSITION Y dw 200 ; 820 VgaHau: hauteur écran en pixels dw 320 ; 822 VgaLar: largeur écran en pixels db 0 ; 824 ScGranu2: nbre de pixels par point db 0 ; 825 PenStdNbr: nombre de crayons en mode écran standard db 16 ; 826 FontWidth: largeur fonte db 16 ; 827 FontHeight: hauteur fonte dw 0 ; 828 DbgXPos: postion X écran débugeur dw 0 ; 82A DbgYPos: postion Y écran débugeur db 0 ; 82C CpcTxtPaper db 0 ; 82D CpcTxtPen db 0 ; 82E CpcGraPaper db 0 ; 82F CpcGraPen db 40 ; 830 VgaLarTxt: largeur écran en caractères db 01FBh-13 dup (0) ; 082C libre db 080h dup (0) ; 0A1F libre db 0100h-5 dup (0); 0A9F ;** X86 MODULs ** db 000b ; 0B9A ModulFlag: B0:0=.EXE,1=.COM) ; B1:module wagon dw 0 ; 0B9B ModulIP: adresse d'exécution pour .EXE dw 0 ;0B9D -07 nombre total de pages générées dw 0 ;0B9F -05 nombre de modules chargés db 0 ;0BA1 -03 libre db 0 ; BA2 -02 libre db 0 ; BA3 -01 libre ; DW No 1ere page logique module ; DW flags + nbre de pages module ; B15=notification arrêt émulateur ; B14=notification de mise en veille émulateur ; B13=notification de retour de veille émulateur dw 8,0 ; BA4 00 X86ModulTb: (poser No de vecteur "IFile" ici) dw 8,0 ; +01 X86 MODUL 001H dw 8,0 ; +02 X86 MODUL 002H dw 8,0 ; +03 X86 MODUL 003H dw 8,0 ; +04 X86 MODUL 004H dw 8,0 ; +05 X86 MODUL 005H dw 8,0 ; +06 X86 MODUL 006H dw 8,0 ; +07 X86 MODUL 007H dw 8,0 ; +08 X86 MODUL 008H dw 8,0 ; +09 X86 MODUL 009H dw 8,0 ; +0A X86 MODUL 00AH dw 8,0 ; +0B X86 MODUL 00BH dw 8,0 ; +0C X86 MODUL 00CH dw 8,0 ; +0D X86 MODUL 00DH dw 8,0 ; +0E X86 MODUL 00EH dw 8,0 ; +0F X86 MODUL 00FH dw 0F0h dup (8,0); +10 X86 MODUL 010H à 0FFH dw 010h dup (-1);0FA4 SysModulTb: reçoit les numéros des modules systèmes ; 0:libre ; 1:module écran src\scn\vesa.asm ; 2:ExtWrCharHD src\txt\font.asm ; FC4 ScPenTb:table pour pens db 06 dup (0) ; 1er quart (25 lignes d'écran) db 06 dup (010h) ; 2eme quart db 06 dup (020h) ; 3eme quart db 07 dup (030h) ; 4eme quart db 020h dup (0) ; Overscan db 0 ; libre dw 255-020h dup (0) ; libre ;----------------------------------------------------------- dw -1 ; 011BC X86Vec:poser vecteur d'appel X86 ici ;----------------------------------------------------------- dw -1 ; 011BE KeyBXVec:vecteur X86 interruption clavier dw -1 ; 011C0 KOCarXVec:vecteur X86 KOCar dw -1 ; 011C2 Car2KXVec:vecteur X86 Car2K dw -1 ; 011C4 IFileXVec:vecteur X86 IFile dw -1 ; 011C6 ZIntXVec:vecteur X86 interruption Z80 dw -1 ; 011C8 OPrnXVec:vecteur X86 PRN OUT dw -1 ; 011CA OSnaHeadXVec dw -1 ; 011CC ISnaHeadXVec dw -1 ; 011CE OGifXvec dw -1 ; 011D0 libre dw -1 ; 011D2 libre dw -1 ; 011D4 libre dw -1 ; 011D6 libre dw -1 ; 011D8 PixAllSaveXVec dw -1 ; 011DA PixAllRestXVec dw -1 ; 011DC PixAllConvXVec dw -1 ; 011DE CPC_INT10HSetXVec:** POSER NOUVELLE ROUTINE INT10H ** dw -1 ; 011E0 ScnXModeSetXVec dw -1 ; 011E2 CpcScnSetXVec:** SET+RESTORE ECRAN CPC ** dw -1 ; 011E4 CPC_INT21HSetXVec:** POSER NOUVELLE ROUTINE INT21H ** dw -1 ; 011E6 CpcIFileXVec ; ** CHARGER FICHIER CPC ** ;--------------------------------------------------------------------------------------------- db -1 ; 011E8 DbgModule ; ** NUMERO MODULE POUR DEBUGGER ** ;--------------------------------------------------------------------------------------------- db -1 ; 011E9 WinDbgSetXVec ; ** AFFICHE FENETRE DEBUG EN COURS ** db -1 ; 011EA libre V1.16->ScVga2BufXVec obsolète db -1 ; 011EB libre V1.16->ScBuf2VgaXVec obsolète db -1 ; 011EC ScEms2BufXVec db -1 ; 011ED ScEms2VgaXVec db -1 ; 011EE ScVga2EmsXVec db -1 ; 011EF ZDebugXVec db -1 ; 011F0 DbgAffiXVec db -1 ; 011F1 DbgKeyBInterXVec ;--------------------------------------------------------------------------------------------- dw -1 ; 011F2 BasIFileXVec ; ** CHARGER FICHIER BAS: ** ;--------------------------------------------------------------------------------------------- dw -1 ; 011F4 OFileXVec:vecteur X86 OFile dw -1 ; 011F6 XDsaXVec:vecteur X86 XDsa dw -1 ; 011F8 ZDsaXVec:vecteur X86 ZDsa db 0100h-20 dup (-1);011EA libre ;----------------------------------------------------------- ; 1er header SnapShot (répliqué en fin de programme) ;ne pas... db "www.cpcalive.com" ; 012E6 00 MapHead:header mapping dd 0 ; 10 copie ExeDumpAdr db 080h dup (0) ; 012FA 14 MapName:place pour nom de SnapShot exécutable dw 0 ; MapName+080h:offset caractère après dernier "\" dans MapName db 080h-2 dup (0) ;...séparer dw 0 ; 013FA MapNameLng:longueur nom de fichier pour "MakeRename" db 0 ; 013FC MakeTyp: type fichier Make demandé ; 00:aucun fichier demandé ; 01:DEMANDE FABRICATION SNAPSHOT EXéCUTABLE ; 02:DEMANDE FABRICATION FICHIER .MAP db 0410h dup (-1) ; 013FD BasNameBuf:tampon nom de fichiers BAS (65noms*16caracteres) dw 0 ; 0180D BasNameCpt:nombre de fichiers BAS - 1 / ou milliers de lignes db 0 ; 0180F libre db 080h dup (0) ; 01810 MapNamesBuf:tampon nom fichiers MAP modules X86 ; adresses 0>03FFFh db 080h dup (0) ; 01890 04000h>07FFFh db 080h dup (0) ; 01910 08000h>0BFFFh db 080h dup (0) ; 01990 0C000h>0FFFFh ;db 069Fh-0613h-010h dup (0) ; 01A10 libre dw 0100h dup (0200h); 01A10 X86TbPtrTb:table des adresses des tables des vecteurs modules X86 db 07Ch dup (0) ; libre ;--- dd 0 ; 01C8C RamPokeTb2:** TABLE GESTION BUS>RAM ** dd 0 dd 0 dd 0 ;--- dw 9,1,2,3 ; 01C9C CpcMapp:Mapping Ems dw 0,1,2,3 ; 01CA4 CpcWMapp:Mapping Ems (Write map) dw -1,0,0,0 ; 01CAC CpcRWMapp:R/W Mapping Ems (0=R/W -1=Read only) dw 8 ; 01CB4 CpcRamNbr:Nombre de pages Ram Cpc dw 0,1,2,3 ; 01CB6 CpcRamTb:Nos des pages logiques (Ems) dw 4,5,6,7 ; des blocs de la Ram du Cpc dw 256-8 dup (8); dw 0 ; 01EB6 Z80MapCpt:compteur nbre de pointeurs dans Z80MapTb db -1 ; 01EB8 InitXVec:numéro de module *** INIT.EXE - INITIALISATIONS *** db 0 ; 01EB9 ZMapLineCpt:compteur séquences dans ligne MAP Z80 dw 0,0 ; 01EBA libre ; ROMS (B7=marqueur "Rom modifiée") dw 8 ; 01EBE CpcRomInfTb 00 BIOS dw 0100h dup (0); 01EC0 RomDataTb:table vecteurs données roms db 0100h dup (0); 020C0 CpcRomFlags:flags roms supérieures ; B0=Rom Read/Write dd 0 ; 021C0 ExeDumpAdr:adresse Dumping dans fichier autoexécutable db 0100h dup (0); 021C4 ExeDumpName:nom du fichier autoexécutable db 0Fh dup (0) ; 022C4 libre db 0 ; 022D3 CpcAliveRom:numéro rom CpcAlive dw 0 ; 022D4 CpcRomSupTb-2:nombre de roms supérieures connectées dw 8 ; 022D6 CpcRomSupTb 00 BASIC dw 8 ; 01 CpcForm;MAXAM150 dw 8 ; 02 DISCOLOG dw 8 ; 03 SILIDISC dw 8 ; 04 LIBRE dw 8 ; 05 LIBRE dw 8 ; 06 LIBRE dw 8 ; 07 DISC dw 8 ; 08 LIBRE dw 8 ; 09 LIBRE dw 8 ; 0A LIBRE dw 8 ; 0B LIBRE dw 8 ; 0C LIBRE dw 8 ; 0D LIBRE dw 8 ; 0E LIBRE dw 8 ; 0F LIBRE dw 0F0h dup (8) ; ... 256 roms ; . . . . . . . . . . . . . DONNEES LECTEURS A: & B: . . . . . . . . . . . . . LNG_HEAD = 160 ; longueur header 4*40 secteurs maxi ;NBR_FACE = 10 ; nbre de faces maxi ;NBR_PST = 43 ; nbre de pistes par face db 1+LNG_HEAD dup (0) ; 024D6 DrvPstHead:[nbr secteurs]+longueur header (maxi) db 01410h dup (0) ; 02577 DrvSector:tampon piste disquette db 0100h dup (0) ; 02677 DrvNameA:chemin+nom disquette A db 0100h dup (0) ; 02777 DrvNameA:chemin+nom disquette A db 0100h dup (0) ; 02877 DrvNameA:chemin+nom disquette A db 0100h dup (0) ; 02977 DrvNameA:chemin+nom disquette A db 0100h dup (0) ; 02A77 DrvNameA:chemin+nom disquette A db 0100h dup (0) ; 02B77 DrvNameB:chemin+nom disquette B db 011Ah-(1+LNG_HEAD) dup (0) ; . . . . . . . . . . . . . . . . . . . . . . . . . ; ** DONéES NON SAUVEGARDéES ** db 010000h/8 dup (0) ;4000 ScVgaMap:mapping d'enregistrement écran db 01000h dup (0) ; libre dd 0 ; 7000 ScPokeOfs:adresse ecran adressée dans Cpc (valeur temporaire) dd 0 ; 7004 ScPokeDoorOfs:pointe bascule NOP/RET ouverture/fermeture Screen Pokes db 51 ; 7008 libre 00: position verticale db 0 ; 01: position horizontale db 9 ; 02: hauteur fenêtre db 80 ; 03: largeur fenêtre db 0 ; 04: départ affichage horizontal db 1 ; 05: encre caractères db 0 ; 06: encre fond fenêtre db 0 ; 07: libre dd 0 ; 7010 libre dd 0 ; libre ; données fenêtre ** ZDbgIOTxt ** db 26 ; 7018 WinZDbgIO 00: position verticale db 40 ; 01: position horizontale db 25 ; 02: hauteur fenêtre db 40 ; 03: largeur fenêtre db 0 ; 04: départ affichage horizontal db 1 ; 05: encre caractères db 0 ; 06: encre fond fenêtre db 0 ; 07: libre db 0 ; 07020 -4 numéro emplacement courant db 0 ; 07021 -3 numéro dernier emplacement trouvé dw 0 ; 07022 -2 EmsMapNbr:nombre de handle Ems (Map) FarPtr CpuHead+EmsMapTb ; 07024 EmsMapPtr:pointeur EmsMapTb ;{ne pas ... dw -1 ; 07028 00 EmsMapTb:handle Cpc (Ems) dw 0 ; 02 derniere page Ems adressable dw 0 ; 04 libre db 'CpcAlive' ; 06 nom Ems Cpc (8 caractères) dw 0 ; 0E libre ; place pour 3 autres cpus dw -1 ; 00 handle Cpc (Ems) dw 0 ; 02 derniere page Ems adressable dw 0 ; 04 libre db 'XXXXXXXX' ; 06 nom Ems Cpc (8 caractères) dw 0 ; 0E libre dw -1 ; 00 handle Cpc (Ems) dw 0 ; 02 derniere page Ems adressable dw 0 ; 04 libre db 'CpcAli03' ; 06 nom Ems Cpc (8 caractères) dw 0 ; 0E libre dw -1 ; 00 handle Cpc (Ems) dw 0 ; 02 derniere page Ems adressable dw 0 ; 04 libre db 'CpcAli04' ; 06 nom Ems Cpc (8 caractères) dw 0 ; 0E libre ;... modifier structure} db 070h-2 dup (0) db 13,10 ; 70D6 UserEndMes:message de sortie utilisateur db 0110h dup (0); 70D8 dw 0 ; 71E8 libre dd 0 ; 71EA OfsINT18H_TB:offset table INT18H_TB dw 0 ; 71EE libre dd 0 ; 71F0 OfsINT10H_TB:offset table INT10H_TB dw 0 ; 71F4 SegDATA:adresse segment DATA dw 0 ; 71F6 SegCODE0:adresse segment CODE0 dw 0 ; 71F8 SegCODE1:adresse segment CODE1 dw 0 ; 71FA Bk0BufSeg:segment tampon écran cpc dw 0 ; 71FC Scn256Seg:segment tampon écran 256 couleurs dw 06000h ; 71FE RecSeg:tampon enregistrement dw 0 ; 7200 PixRecPtr=pointeur d'enregistrement COPY/PASTE db 0 ; 7202 PokeRecFlag ; B0=enregistrer pokes ; B1=mode db 0 ; 7203 libre dd 0 ; 7204 ExeEndOfs: offset fin exécutable !.exe dd 0 ; 7208 ArgNextFlag2Ofs: offset ArgNextFlag2 db 01000h-12 dup (0); 720C *** LIBRE ************************ dw 0 ; 8200 TEMP_4A:TEMPO db 0 ; 8202 NoCpu:Numéro Cpu db 0 ; 8203 DivFlags4=flags divers (4) ; B0=NoteBook - ne pas activer ce flag si modules C++ avec pile en EMS(voir CPC_INT21H_3F & 40) ; B1=DSACONV (modules inactifs) ; B2=lancer programme basic au démarrage demandé ; B3=lancer CpcIFile au démarrage demandé ; B4=lancer fichier Z80 au démarrage demandé ; B5=charger fichier Intel Hex au démarrage demandé ; B6=lancer fichier CMD au démarrage demandé ; B7=RUN verrouillé dw 0 ; 8204 CpcRam0Seg:Segment Ram (Banque 0) dw 0 ; 8206 CpcRam1Seg:Segment Ram (Banque 1) dw 0 ; 8208 réservé pour appels (CpcEmsSeg:OFFSET) dw 0 ; 820A CpcEmsSeg:Segment Ems db 040h dup (0) ; 820C CpcInkMap:mapping couleurs (4 quarts d'écrans*16 pens max) db 3 ; 824C Z80SupArea: Page physique rom Z80 supérieure db 0 ; 824D Z80BiosArea:Page physique rom Z80 inférieure (Bios) dw 0 ; 824E CpuBus:"BUS" CPU>RAM dw 0 ; 8250 libre db 0 ; 8252 ErrTyp : numéro erreur détectée ; A - 0=pas d'erreur,1="Syntax error" détecté ; B - codes d'erreurs Dos dd 0 ; 8253 ArgNextFlagOfs: offset ArgNextFlag dd 0 ; 8257 TxtInTbOfs: offset TxtInTb dd -1 ; 825B EndMes2:offset message de sortie 2 (voir "SegMes2" pour segment) dw 0 ; 825F XROM:No Rom X86 connectée (-1=pas de rom connectée) db 0 ; 8261 X86Flags:flags environnement X86 ; B0=appel routine Z80 dw 0 ; 8262 Z80_PC_New:pointeur Z80 demandé dw 0 ; 8264 SegMes2:segment message de sortie 2 dw 0 ; 8266 SegMes:segment message de sortie 1 dd 0 ; 8268 EndMes:pointeur message de sortie 1 dd 0 ; 826C CpuCpt:compteur cpu dw -1 ; 8270 PrnHdl:handle PRN (#8) dw -1 ; 8272 TapHdl:handle TAPE dw 0A000h ; 8274 ScnDosSeg: Segment écran Dos ; . . . . . . . . . . . . . . . . . . . . . . . . . dw 0 ; 8276 libre ; données fenêtre ** DUMP ** db 0 ; 8278 WinDump 00: position verticale db 0 ; 01: position horizontale db 35 ; 02: hauteur fenêtre db 38 ; 03: largeur fenêtre db 00 ; 04: départ affichage horizontal db DbgPaper ; 06: encre fond fenêtre db DbgPaper+1 ; 05: encre caractères db 0 ; 07: libre ; . . . . . . . . . . . . . . . . . . . . . . . . . ; ** VECTEURS ** ; . . . . . . . . . . . . . . . . . . . . . . . . . dd 0 ; 8280 EmPokeVec:** éMULATION POKE éCRAN ** ; TAMPON ** dd 0 ; 8328 VesaLineWritVec ; ** TRANSFERT TAMPON>LIGNE ECRAN ** dd 0 ; 832C libre dd 0 ; 8330 DebugUserSetVec ; ** |DEBUG[,ROM],ADR - mode debug "Utilisateur" ** dd 0 ; 8334 DebugSysSetVec ; ** |DEBUGSYS,ADR - mode debug "Système" ** dd 0 ; 8338 WinIniVec ; ** INIT WIN ** dd 0 ; 833C WinAffiBufVec ; ** AFFICHE TAMPON FENETRE TEXTE ** dd 0 ; 8340 WinAffi2Vec ; ** AFFICHE FENETRE TEXTE ** dd 0 ; 8344 WinIBytVec ; ** CHARGE OCTET DANS TAMPON FENETRE ** dd 0 ; 8348 DSAZIAFFIVec dd 0 ; 834C FontVec ; offset fontes débuggeur dd 0 ; 8350 PortISetVec ; ** POSE VECTEUR PORT D'ENTRéE CPC ** dd 0 ; 8354 PortOSetVec ; ** POSE VECTEUR PORT DE SORTIE CPC ** dd 0 ; 8358 CpcIPortVec ; ** CHARGE VALEUR PORT D'ENTRéE ** dd 0 ; 835C CpcOPortVec ; ** SORT VALEUR SUR PORT DE SORTIE ** dd 0 ; 8360 libre dd 0 ; 8364 libre dd 0 ; 8368 libre dd 0 ; 836C libre db 010000h/8 dup (0);8370 ScRecMap:mapping d'enregistrement écran db 0100h dup (0) ;A370 ScLineRecMap:mapping d'enregistrement lignes écran dd 0 ; A470 ScRefreshVec ; ** REFRESH ECRAN ** dd 0 ; A474 CpcScnSetVec ; ** SET+RESTORE ECRAN CPC ** dd 0 ; A478 DbgAffiVec ; ** AFFICHE ECRAN DéBUGGEUR ** dd 0 ; A47C DbgOffAsk2Vec dd 0 ; A480 DbgEndAsk2Vec dd 0 ; A484 Z80MapDelVec ; ** DELETE FICHIER MAP ASSEMBLEUR Z80 ** dd 0 ; A488 InkRefreshVec ; ** ACTUALISTION DES ENCRES ** dd 0 ; A48C libre dd 0 ; A490 CpcEndErVec ; sortie avec message d'erreur dd 0 ; A494 CpcEndVec dd 0 ; A498 ActCpcVeilleVec dd 0 ; A49C DosDoorOpenVec ; ** CPU>DOS ** dd 0 ; A4A0 SleepDoorOpenVec ; ** CPU>DOS(Veille) ** dd 0 ; A4A4 ArgValAskVec