* Listing PROMON constitué à partir * du TAVBUG09 modifié pour fonctionner * avec le PRODOS * * Plan de la memoire du Tavernier 6809 * * * * Page Commune * $FFFF Fin de la ROM * $F000 Debut de la ROM * $EFFF Fin Memoire système * $EC00 Debut Memoire système * $EBFF Fin zone Peripheriques * $EB0C Timer * $EBOB Timer * $EB0A Timer * $EBO9 Timer * $EB08 Timer * $EBO5 ACIA * $EBO4 ACIA * $EBO3 PIA * $EBO2 PIA * $EBO1 PIA * $EBO0 PIA * $EAFF Fin zone libre * $E080 Registre sel lecteur * $E003 Contr™leur disquettes * $E002 Contr™leur disquettes * $E001 Contr™leur disquettes * $E000 Contr™leur disquettes * Page 0 ---------- Page 1 -- Page 2 -- Page 3 -- * $DFFF Fin Periph $DFFF $DFFF $DFFF Fin RAM * $2FFF Fin IVG+PIA " " " * $2081 CRT " " " * $2080 CRT " " " * $2000 PIA ACIA " " " * $1FFF Fin RAM Video " " " * $1000 Debut RAM Video " " " * $0000 Vide $0000 $0000 $0000 Debut RAM * * * ********************************************** * GLOBAL MODULE EQUATES FROM HARDWARE * ********************************************** F000 ROMBEG EQU $F000 Adresse de debut de la ROM FF00 RAMOFS EQU -$100 ROM Offset ˆ RAM de travail 1000 ROMSIZ EQU 4096 Taille ROM E000 ROM2OF EQU ROMBEG-ROMSIZ Debut de la ROM extension 0000 DFTCHP EQU 0 Compte de caractère par defaut 0000 DFTNLP EQU 0 Compte nouvelle ligne par defaut 003E PROMPT EQU '> Caractère de Prompt ********************************************** ********************************************** * I/O EQUATES FROM HARDWARE * ********************************************** * Position du matériel EB00 PIACPU EQU $EB00 Adresse PIA EB04 ACIACP EQU $EB04 Adresse ACIA EB08 PTMCPU EQU $EB08 Adresse Timer E000 CTRFPY EQU $E000 Adresse contr™leur de disquette E080 PIAFPY EQU $E080 Adresse selection de floppy * PTM ACCESS DEFINITION EB09 PTMSTA EQU PTMCPU+1 READ STATUS REGISTER EB08 PTMC13 EQU PTMCPU CONTROL REGISTER 1 & 3 EB09 PTMC2 EQU PTMCPU+1 CONTROL REGISTER 2 EB0A PTMTM1 EQU PTMCPU+2 LATCH 1 EB0C PTMTM2 EQU PTMCPU+4 LATCH 2 EB0E PTMTM3 EQU PTMCPU+6 LATCH 3 * Floppy controller E000 WDSTR EQU CTRFPY STATUS REGISTER E001 WDTR EQU CTRFPY+1 TRACK REGISTER E002 WDSR EQU CTRFPY+2 SECTOR REGISTER E003 WDDR EQU CTRFPY+3 DATA REGISTER * PIA EB00 PIADRA EQU PIACPU EB01 PIACRA EQU PIACPU+1 EB02 PIADRB EQU PIACPU+2 EB03 PIACRB EQU PIACPU+3 * CARTE IVG - PAGE 0 1000 DEBIVG EQU $1000 1FFF FINIVG EQU $1FFF 2000 PIAIVG EQU $2000 2080 CTRIVG EQU $2080 2080 CRTCR0 EQU CTRIVG 2081 CRTCR1 EQU CTRIVG+1 8008 PER1P0 EQU $8008 Utilise par IVG 8009 PER1P1 EQU $8009 Utilise par IVG ********************************************** * FLEX MODULE EQUATES * ********************************************** C100 CMDADR EQU $C100 Debut de zone des commandes C700 CMDEND EQU $C700 Fin de zone des commandes CD03 WARMS EQU $CD03 Adresse de lancement du FLEX ********************************************** * ASCII & MISCELANEOUS CODE EQUATES * ********************************************** 0000 NUL EQU $00 0001 SOH EQU $01 0003 ETX EQU $03 0004 EOT EQU $04 END OF TRANSMISSION 0005 ENQ EQU $05 0007 BELL EQU $07 BELL CHARACTER 0008 BS EQU $08 0009 HT EQU $09 000A LF EQU $0A LINE FEED 000B VT EQU $0B 000C FF EQU $0C 000D CR EQU $0D CARRIAGE RETURN 000F SI EQU $0F 0010 DLE EQU $10 DATA LINK ESCAPE 0017 CTRL_W EQU $17 0018 CAN EQU $18 CANCEL (CTL-X) 0019 CTRL_Y EQU $19 001B ESC EQU $1B 001C FS EQU $1C 008C SKIP2 EQU $8C ÇÊCMPX #ÊÈ OPCODE SKIP 2 BYTES ********************************************** * MONITOR SWI FUNCTIONS * * Les EQU suivants definissent les fonctions * * fournies par les instructions SWI * ********************************************** 0000 INCHNP EQU 0 INPUT CHAR IN A REG - NO PARITY 0001 OUTCH EQU 1 OUTPUT CHAR FROM REG 0002 PDATA1 EQU 2 OUTPUT STRING 0003 PDATA EQU 3 OUTPUT CR/LF THEN STRING 0004 OUT2HS EQU 4 OUTPUT 2 HEX AND SPACE 0005 OUT4HS EQU 5 OUTPUT 4 HEX AND SPACE 0006 PCRLF EQU 6 OUTPUT CR/LF 0007 SPACE EQU 7 OUTPUT A SPACE 0008 MONITR EQU 8 ENTER MONITOR 0009 VCTRSW EQU 9 VECTOR EXAMINE/SWITCH 000A BRKPT EQU 10 USER PROGRAM BREAKPOINT 000B PAUSE EQU 11 TASK PAUSE FUNCTION 000B NUMFUN EQU 11 NUMBER OF AVAILABLE FUNCTIONS * Sous codes pour acceder ˆ la table des vecteurs * Ils sont equivalents ˆ des offsets * Les positions relatives doivent être maintenues 0000 _AVTBL EQU 0 ADDRESS OF VECT TABLE 0002 _CMDL1 EQU 2 FIRST COMMAND LIST 0004 _RSVD EQU 4 RESERVED HARDWARE VECTOR 0006 _SWI3 EQU 6 SWI3 ROUTINE 0008 _SWI2 EQU 8 SWI2 ROUTINE 000A _FIRQ EQU 10 FIRQ ROUTINE 000C _IRQ EQU 12 IRQ ROUTINE 000E _SWI EQU 14 SWI ROUTINE 0010 _NMI EQU 16 NMI ROUTINE F3E1 0012 _RESET EQU 18 RESET ROUTINE F036 0014 _CION EQU 20 CONSONE ON F3B2 0016 _CIDTA EQU 22 CONSOLE INPUT DATA F383 0018 _CIOFF EQU 24 CONSOLE INPUT OFF F41C 001A _COON EQU 26 CONSOLE OUTPUT ON F3B2 001C _CODTA EQU 28 CONSOLE OUTPUT DATA F41D 001E _COOFF EQU 30 CONSOLE OUTPUT OFF F41C 0020 _HSDTA EQU 32 HIGH SPEED PRINT DATA F649 0022 _PAUSE EQU 34 TASK PAUSE ROUTINE F9C7 0024 _EXPAN EQU 36 SYNTAX ANALYSER 0026 _COPI EQU 38 COPY 0028 _TRSF EQU 40 TRANSFERT 002A _CMDL2 EQU 42 SECOND COMMAND LIST F21A 0015 NBVECT EQU 21 002A OFFSET EQU 2*NBVECT 002C _ACIA EQU OFFSET+2 ACIA ADRESS EB04 002E _PAD EQU OFFSET+4 CHARACTER AND NEW LINE PAD 0000 0030 _ECHO EQU OFFSET+6 ECHO/LOAD FLAG 00 0031 _TYPIO EQU OFFSET+7 NULL BKPT FLAG 00 0032 _PTM EQU OFFSET+8 PTM ADDRESS EB08 0034 _PIA EQU OFFSET+10 PIA ADDRESS EB00 0034 HIVTR EQU OFFSET+10 HIGHEST VECTOR OFFSET 001B NUMVTR EQU (OFFSET+10)/2+1 NUMBER OF VECTORS 0008 NUMBKP EQU 8 Nombre de points d'arrêts * EXTERNAL LABEL EQUATES ********************************************** * WORK AREA * * THIS WORK AREA IS ASSIGNED TO THE PAGE ADDRESSED BY * -$2000,PCR FROM THE BASE ADDRESS TO THE MONITOR ROM * THE DIRECT PAGE REGISTER DURING MOST ROUTINE * OPERATIONS WILL POINT TO THIS WORK AREA. THE STACK * INITIALLY STARTS UNDER THE RESERVED WORK AREAS * AS DEFINED HEREIN. ********************************************** EF00 WORKPG EQU ROMBEG+RAMOFS SETUP DP ADDRESS 00EF SETDP WORKPG/256 NOTIFY ASSEMBLER F000 ORG WORKPG+256 READY PAGE DEFINITION * THE FOLLOWING THRU BKPTOP MUST RESIDE IN THIS ORDER * FOR PROPER INITIALIZATION EFFC ORG *-4 EFFC PAUSER EQU * PAUSE ROUTINE $EFFC EFFB ORG *-1 EFFB SWIBFL EQU * BYPASS SWI AS BP FLAG $EFFB EFFA ORG *-1 EFFA BKPTCT EQU * BP COUNT $EFFA EFF8 ORG *-2 EFF8 SLEVEL EQU * DSTACK TRACE LEVEL $EFF8 EFC2 ORG *-NUMVTR*2 EFC2 VECTAB EQU * VECTOR TABLE $EFC2 EFB2 ORG *-2*NUMBKP EFB2 BKPTBL EQU * BREAKPOINT TABLE $EFB2 EFA2 ORG *-2*NUMBKP EFA2 BKPTOP EQU * BREAKPOINT OPCODE TABLE $EFA2 EFA0 ORG *-2 EFA0 WINDOW EQU * WINDOW $EFA0 EF9E ORG *-2 EF9E ADDR EQU * ADDRESS POINTER VALUE $EF9E EF9D ORG *-1 EF9D BASEPG EQU * BASE PAGE VALUE $EF9D EF9B ORG *-2 EF9B NUMBER EQU * BINARY BUILD AREA $EF9B EF99 ORG *-2 EF99 LASTOP EQU * LAST OPCODE TRACED $EF99 EF97 ORG *-2 EF97 RDSTACK EQU * RESET DSTACK POINTER $EF97 EF95 ORG *-2 EF95 PDSTACK EQU * COMMAND RECOVERY DSTACK $EF95 EF93 ORG *-2 EF93 PCNTER EQU * LAST PROGRAM COUNTER $EF93 EF91 ORG *-2 EF91 TRACEC EQU * TRACE COUNT $EF91 EF90 ORG *-1 EF90 SWICNT EQU * TRACE 'SWI' NESTED LEVEL CNT $EF90 EF8F ORG *-1 EF8F MISFLG EQU * LOAD CMD/THRU BP FLAG $EF8F EF8E ORG *-1 EF8E DELIM EQU * EXPRESION DELIM/WORK BYTE $EF8E EF8D ORG *-1 EF8D TIMER EQU * ? $EF8D EF8C ORG *-1 EF8C CARACT EQU * ? $EF8C EF8B ORG *-1 EF8B ZERO EQU * ? $EF8B EF8A ORG *-1 EF8A TFCT EQU * ? $EF8A EF89 ORG *-1 EF89 REPEAT EQU * ? $EF89 EF88 ORG *-1 EF88 SHIFT EQU * ? $EF88 EF87 ORG *-1 EF87 SHIFTL EQU * ? $EF87 Base de la copie du RTC EF85 ORG *-2 (7 octets) EF85 LEF85 EQU * ? $0085 EF84 ORG *-1 EF84 LEF84 EQU * ? $0084 EF83 ORG *-1 EF83 LEF83 EQU * ? $EF83 EF82 ORG *-1 EF82 LEF82 EQU * ? $EF82 EF80 ORG *-2 EF80 LEF80 EQU * ? $EF80 EF7F ORG *-1 EF7F LEF7F EQU * ? $007F EF7E ORG *-1 EF7E LEF7E EQU * ? $EF7E EF7D ORG *-1 EF7D FSRTIM EQU * $EF7D Flag Echo Imprimante EF7C ORG *-1 EF7C FSTIMP EQU * $007C Flag Echo Imprimante EF7B ORG *-1 EF7B MEMP0 EQU * $007B Memoire PIA pour ivg EF7A ORG *-1 EF7A FLGEG EQU * $EF7A FLAG IVG EF78 ORG *-2 EF78 CURAD EQU * $EF78 Adresse caractère Depart EF76 ORG *-2 Haut-Gauche de l'affichage EF76 LNGLI EQU * $EF76 Nb caractères par ligne (80) EF74 ORG *-2 EF74 IVGCUR EQU * $EF74 Position courante curseur EF72 ORG *-2 (entre 0 et 1919 ou $77F) EF72 IVGDEB EQU * $EF72 Position curseur en RAM EF71 ORG *-1 (entre $1000 et $2000) EF71 FLGESC EQU * $EF70 Initialise $FDBA à $7F50 EF70 ORG *-1 EF70 NBLIGN EQU * EF6E ORG *-2 EF6E INBCAR EQU * $006E Reserve video IVG a $077F EF6D ORG *-1 EF6D IVGESC EQU * $EF6D Flag code Escape EF6C ORG *-1 EF6C ES2FLG EQU * $EF6C Flag 2eme membre code Escape EF6B ORG *-1 EF6B ES3FLG EQU * $EF6B Flag 3eme membre code Escape EF69 ORG *-2 EF69 MEMESL EQU * $EF69 Memoire Ligne pr code Esc = EF67 ORG *-2 EF67 PILTTP EQU * ? $EF67 DSTACK IVG Page 0 * ORG *-1 * ROM2WK EQU * EXTENSION ROM RESERVED AREA $EF66 EF52 ORG *-21 EF52 DSTACK EQU * START OF INITIAL DSTACK $EF51 EF46 LEF46 EQU $EF46 Jour Semaine (3 octets) EF00 RAMDEB EQU $EF00 0348 L0348 EQU $0348 03FF L03FF EQU $03FF 063F L063F EQU $063F 077F L077F EQU $077F C1F5 LC1F5 EQU $C1F5 Adresse code appairage dans boot F000 ORG ROMBEG Adresse d'assemblage par defaut ******************************************************** * BLDVTR - BUILD VECTOR TABLE * Le reset appelle cette routine pour construite la * Table des vecteurs. Cette routine est placee au premier * octet de la ROM du moniteur, et peut être appele par un * programme exterieur. * INPUT: S-> Pile RAM valide * OUTPUT: U-> Adresse de la table des vecteurs * DPR-> Page de travail du moniteur * La table des vecteurs et des valeurs par defaut * est initialisee. * Tous les registres sont modifies ******************************************************** F000 30 8C BF BLTVTR LEAX 0 pour aller au travers F0A3 17 08D9 LBSR CBKLDR Calcul pointeur de point d'arret F0A6 50 NEGB Passe en positif F0A7 5A SWILP DECB Decompte F0A8 2B 0A BMI SWIDNE F0AA 11A3 A1 CMPU ,Y++ Etait-ce un point d'arrêt ? F0AD 26 F8 BNE SWILP Saute si non F0AF EF 6A STU 10,S Corrige adresse de retour F0B1 16 0281 LBRA ZBKPNT Aller au point d'arret F0B4 0F FB SWIDNE CLR SWIBFL Reset Indicateur SWI F0B6 37 06 PULU B,A Recupere B contenant le code SWI F0B8 C1 0B CMPB #NUMFUN Code inf a nombre de fonctions SWI F0BA 1022 0272 LBHI ERROR Message Erreur F0BE EF 6A STU 10,S Corrige adresse de retour F0C0 58 ASLB Mult par 2 F0C1 33 8C B8 LEAU Plage de travail * D,Y,U= non fiable X= Inchange *********************************************************** *********************************************************** * (SWI FUNCTION 8) * MONITOR ENTRY * Lance le moniteur * La pile et ses valeurs pour le DP et le CC sont utilisees * sans modification * 1) Initialise la console * 2) Imprime eventuellement un message * 3) Initialise le timer * 4) Lance le processeur de commande * INPUT: A=0 Init console et message de bienvenue * INPUT: A<>0 Pas d'Init console et message de bienvenue * * $F0D6 *********************************************************** F0D8 10DF 97 ZMONTR STS =0 valide)/Compare compteur * U-3=Flag de retour chariot (O=CR a ete envoye) * U-4=Debut de memoire commande * S+0=Fin de memoire commande *********************************************************** F147 3F CMD SWI F148 06 FCB PCRLF Affiche PCR/LF * Desarmement des points d'arrets F149 17 0833 CMDNEP LBSR CBKLDR Obtenir les pointeurs de BP F14C 2A 0C BPL CMDNOL Branche si pas arme ou pas de BP F14E 50 NEGB rend positif F14F D7 FA STB " d'invite F162 33 E4 LEAU 0,S Rappel de l'adresse en pile F164 DF 95 STU MONITOR DP WORK AREA ** Z=1 CARRIAGE RETURN ENTERED ** Z=0 NON CARRIAGE RETURN DELIMITER ** S=NORMAL RETURN ADDRESS ** Le label ÇÊCMDBADÊÈ peut être utilise pour emettre ** un Flag d'erreur *********************************************************** * MONITOR COMMAND TABLE * C'est la table des commandes par defaut. Une table * externe du même format peut l'etendre ou la remplacer * en utilisant une fonction de swap de vecteurs * * ENTRY FORMAT: * +0ÉTOTAL SIZE OF ENTRY (INCLUDING THIS BYTE * +1É COMMAND STRING * +NÉ TWO BYTE OFFSET TO COMMAND (ENTRYADDR-*) * * THE TABLES TERMINATE WITH A ONE BYTE -1 OR -2 * THE -1 CONTINUES THE COMMAND SEARCH WITH THE SECOND * COMMAND TABLE. * THE -2 TERMINATES COMMAND SEARCHES. *********************************************************** * THIS IS THE DEFAULT LIST FOR THE SECOND COMMAND * LIST ENTRY F1EB FE CMDTB2 FCB -2 STOP COMMAND SEARCH * THIS IS THE DEFAULT LIST FOR THE FIRST COMMAND * LIST ENTRY F1EC CMDTBL EQU * MONITOR COMMAND TABLE F1EC 04 FCB 4 F1ED 42 FCC 'B' EQU $F905 Point d'arrêt F1EE 073A FDB CBKPT-* F1F0 04 FCB 4 F1F1 43 FCC 'C' EQU $F806 Sous Prog Utilisateur F1F2 0637 FDB CCALL-* F1F4 04 FCB 4 F1F5 44 FCC 'D' EQU $F890 Visu zone memoire F1F6 06BD FDB CDISP-* F1F8 04 FCB 4 F1F9 47 FCC 'G' EQU $F7CD Lancement prog util F1FA 05F6 FDB CGO-* * FCB 4 * FCC 'L' EQU $FBBF Chargement prog cassette * FDB CLOAD-* F1FC 04 FCB 4 F1FD 4D FCC 'M' EQU $F810 Examen/modif memoire F1FE 0635 FDB CMEM-* F200 04 FCB 4 F201 4E FCC 'N' EQU $F8D1 Adaptation au terminal F202 06F2 FDB CNULLS-* F204 04 FCB 4 F205 4F FCC 'O' EQU $F8E2 Calcul des deplacements F206 06FF FDB COFFS-* * FCB 4 * FCC 'P' EQU $FAF3 Enregistrement cassette * FDB CPUNCH-* F208 04 FCB 4 F209 52 FCC 'R' EQU $F697 Examen/modif registre F20A 04B0 FDB CREG-* F20C 04 FCB 4 F20D 53 FCC 'S' EQU $F8D6 Niveau du Trace F20E 06EB FDB CSTLEV-* F210 04 FCB 4 F211 54 FCC 'T' EQU $F8BE Fonctionnement en Trace F212 06CF FDB CTRACE-* * FCB 4 * FCC 'V' EQU $FBB9 Verification cassette * FDB CVER-* F214 04 FCB 4 F215 57 FCC 'W' EQU $F88B Definition d'une fenêtre F216 0698 FDB CWINDO-* * Commandes specifiques au Tavernier F218 04 FCB 4 F219 49 FCC 'I' EQU $F963 Initialisation memoire F21A 076C FDB CMD_I-* $070E F21C 04 FCB 4 F21D 41 FCC 'A' EQU $F9A5 Transfert memoire F21E 07AA FDB CMD_A-* $074C F220 04 FCB 4 F221 51 FCC 'Q' EQU $FC21 Activation imprimante F222 08F4 FDB CMD_Q-* $09C4 F224 04 FCB 4 F225 55 FCC 'U' EQU $FC2F Changement page memoire F226 08FE FDB CMD_U-* $09CE F228 04 FCB 4 F229 58 FCC 'X' EQU $FC9E Chargement DOS ˆ froid F22A 0969 FDB CMD_X-* $0A39 F22C 04 FCB 4 F22D 59 FCC 'Y' EQU $FD85 Chargement DOS ˆ chaud F22E 09FA FDB CMD_Y-* $0B1C F230 04 FCB 4 F231 5A FCC 'Z' EQU $FD8B F232 0A11 FDB CMD_Z-* $0B1E F234 FF FCB -1 Fin pour cette liste *********************************************************** * (SWI FUNCTIONS 4 AND 5) * 4 - OUT2SH - DECODE BYTE TO HEX AND ADD SPACE * 5 - OUT4SH - DECODE WORD TO HEX AND ADD SPACE * INPUT: X->BYTE OR WORD TO DECODE * OUTPUT: CHARACTER SENT TO OUTPUT HANDLER * X->NEXT BYTE OR WORD * SP Affichage de 2/4 car Hexa et un espace *********************************************************** F235 A6 80 ZOUT2H LDAA ,X+ Charge l'octet suivant F237 34 06 PSHS A,B Sauve - ne pas relire F239 C6 10 LDB #$10 Decalage de 4 bits F23B 3D MUL avec multiplication F23C 8D 04 BSR ZOUTHX Affiche en hexa F23E 35 06 PULS A,B Restore les octets F240 84 0F ANDA #$0F Isole les 4 bits de droite F242 8B 90 ZOUTHX ADDA #$90 Prepare l'ajustement A-F F244 19 DAA Ajustement F245 89 40 ADCA #$40 Ajuste F247 19 DAA Ajuste * Affichage d'un caractère F248 6E 9D FD92 SEND JMP [VECTAB+_CODTA,PCR] EQU $F41D Affiche *********************************************************** * SWI 5 : OUT4HS Sortie de 4 car Hexa et un espace * $F287 *********************************************************** F24C 8D E7 ZOT4HS BSR ZOUT2H *********************************************************** * SWI 4 : OUT2HS Sortie de 2 car Hexa et un espace * $F289 *********************************************************** F24E 8D E5 ZOT2HS BSR ZOUT2H F250 AF 64 STX 4,S Mise ˆ jour de X de l'utilisateur *********************************************************** * (SWI FUNCTIONS 7) * SPACE - SEND SPACE TO OUTPUT HANDLER * INPUT: NONE * OUTPUT: BLANK SENT TO OUTPUT HANDLER *********************************************************** *********************************************************** * SWI 7 : OUTS Sortie d'un espace * $F28D *********************************************************** F252 86 20 ZSPACE LDA #$20 Charge un blanc F254 20 3D BRA ZOTCH2 Envoie et retourne *********************************************************** * (SWI FUNCTIONS 9) * SWAP VECTOR TABLE ENTRY * INPUT: A=VECTOR TABLE CODE (OFFSET) * X=0 OR REPLACEMENT VALUE * OUTPUT: X=PREVIOUS VALUE *********************************************************** *********************************************************** * SWI 9 : Non documente dans Tavernier * $F291 *********************************************************** F256 A6 61 ZVSWTH LDA 1,S Charge le registre A du demandeur F258 81 34 CMPA #HIVTR Code trop grand ? F25A 22 39 BHI ZOTCH3 Ignore la demande si c'est le cas F25C 109E C2 LDY STRING * OUTPUT: CR/LF SENT TO OUTPUT CONSOLE HANDLER * C=0 NO CTL-X, C=1 CTLX RECEIVED * NOTE: LINE FEED MUST FOLLOW CARRIAGE RETURN FOR * PROPER PUNCH DATA. *********************************************************** *********************************************************** * SWI 3 : PDATA Sortie CR/LF puis d'une Chaine de car * $F2D7 *********************************************************** F29C 86 0D ZPDATA LDA #CR Retour Chariot F29E 8D A8 BSR SEND Envoi F2A0 86 0A LDA #LF Line Feed * Tombe dans le code PDATA1 *********************************************************** * (SWI FUNCTIONS 2) * PDATA1 - OUTPUT STRING UNTIL EOT * THIS ROUTINE PAUSES IF AN INPUT BYTE BECOMES * AVAILABLE DURING OUTPUT TRANSMISSION UNTIL A * SECOND CHARACTER IS RECEIVED * INPUT: X->STRING * OUTPUT: CR/LF SENT TO OUTPUT CONSOLE HANDLER * C=0 NO CTL-X, C=1 CTLX RECEIVED *********************************************************** *********************************************************** * SWI 2 : PDATA1 Sortie d'une Chaine de caractères * $F2DF *********************************************************** F2A2 8D A4 ZPDTLP BSR SEND Envoi F2A4 A6 80 ZPDTA1 LDA ,X+ Charge le caractère suivant F2A6 81 04 CMPA #EOT EOT ? F2A8 26 F8 BNE ZPDTLP Non, boucle *********************************************************** * (SWI FUNCTIONS 1) * PAUSE - RETURN TO TASK DISPATCHING AND CHECK * FOR FREEZE CONDITION OR CTL-X BREAK * THIS FUNCTION ENTERS THE TASK PAUSE HANDLER SO * OPTIONALLY OTHER 6809 PROCESS MAY GAIN CONTROL. * UPON RETURN, CHECK FOR A FREEZE CONDITION * WITH A RESULTING WAIT LOOP, OR A CONDITION CODE * RETURN IF A CONTROL X IS ENTERED FROM THE INPUT * HANDLER * OUTPUT: C=0 NO CTL-X, C=1 CTLX RECEIVED *********************************************************** *********************************************************** * SWI B : Effectue une pause et retour par ESC * $F2E5 *********************************************************** F2AA 8D 1E ZPAUSE BSR XQPAUS Redonne le contr™le ˆ chaque ligne F2AC 8D 06 BSR CHKABT Verifie si Pause et retourne F2AE 1F A9 TFR CC,B Prepare ˆ remplacer le CC F2B0 E7 E4 STB 0,S Recouvre l'ancien dans la pile F2B2 20 E1 BRA ZOTCH3 Retourne de SWI * CHKABT - Scan pour Pause/Abort pendant les sorties * OUTPUT: C=0 OK, C=1 ABORT (genère CTRL-X) * Test si caractère saisi ESC pour mettre l'imp en pause F2B4 8D 18 CHKABT BSR XQCIDT Tente de prendre un car au clavier F2B6 24 05 BCC CHKRTN Non, fini F2B8 81 18 CMPA #CAN Caractère ESC ? F2BA 26 02 BNE CHKWT Oui F2BC 53 CHKSEC COMB Arme la retenue F2BD 39 CHKRTN RTS Termine, retourne la retenue armee F2BE 8D 0A CHKWT BSR XQPAUS Pause pour un moment F2C0 8D 0C BSR XQCIDT Tente de prendre un car au clavier F2C2 24 FA BCC CHKWT Attend qu'un car soit saisi F2C4 81 18 CMPA #CAN Caractère ESC ? F2C6 27 F4 BEQ CHKSEC Oui, sort de la boucle F2C8 4F CLRA Autre, Efface la retenue F2C9 39 RTS et continue *********************************************************** * PRISON Specifique au TAVBUG *********************************************************** * PRISON LEAX ESP04,PCR * SWI * FCB PDATA * BRA PRISON * LF30D FCB $02 * LF30E FCB $02 *********************************************************** * Economise de la memoire avec des sauts *********************************************************** F2CA 6E 9D FD16 XQPAUS JMP [VECTAB+_PAUSE,PCR] $EFFC Routine de Pause F2CE AD 9D FD06 XQCIDT JSR [VECTAB+_CIDTA,PCR] Routine de Test Clavier F2D2 84 7F ANDA #$7F Efface la parite F2D4 39 RTS Retour ˆ l'appelant *********************************************************** * NMI DEFAULT INTERRUPT HANDLER * THE NMI HANDLER IS USED FOR TRACING INSTRUCTION * TRACE PRINTOUTS OCCURS ONLY AS LONG AS THE STACK * TRACE LEVEL IS NOT BREACHED BY FALLING BELLOW IT. * TRACING CONTINUES UNTIL THE COUNT TURNS ZERO OR * A CTRL-X IS ENTERED FROM THE INPUT CONSOLE DEVICE. *********************************************************** *********************************************************** * SP MNI *********************************************************** F2D5 4F 50 2D 04 MSHOWP FCC "OP-",EOT OP- CODE MESSAGE F2D9 8D 46 NMIR BSR LDDP Charge DP=$EF et verifie la pile F2DB 0D 8F TST Curs OFF F59C 81 FF CMPA #$FF >F59E 1027 0061 LBEQ CURSOF * Test Code E -> Curs ON F5A2 81 FE CMPA #$FE >F5A4 1027 0078 LBEQ CURSON * Test Code P -> Echo OFF F5A8 81 10 CMPA #$10 F5AA 1027 0098 LBEQ ECHOOF * Test Code R -> Echo ON F5AE 81 20 CMPA #$20 F5B0 1027 0089 LBEQ ECHOON * Test Code F ou < -> ignorer F5B4 81 30 CMPA #$30 F5B6 1027 0091 LBEQ NEFARI F5BA 81 3D CMPA #$3D Code = F5BC 27 0C BEQ TRTES4 Code = F5BE B7 2000 STA PIAIVG Place le code video en PIAIVG Page video F5C1 0F 6D TRTESR CLR F61D 16 FFA1 LBRA TRTESR F620 86 0A CURSON LDA #$0A F622 B7 2080 STA CRTCR0 F625 B6 2081 LDA CRTCR1 F628 8A 20 ORA #$20 F62A B7 2081 STA CRTCR1 F62D 86 0B LDA #$0B F62F B7 2080 STA CRTCR0 F632 B6 2081 LDA CRTCR1 F635 8A 20 ORA #$20 F637 B7 2081 STA CRTCR1 >F63A 16 FF84 LBRA TRTESR F63D 86 FF ECHOON LDA #$FF F63F 97 7D STA 0 PRINT AND CHANGE * OUTPUT: (ONLY FOR REGISTER DISPLAY) * C=1 CONTROL-X ENTERED, C=0 OTHERWISE * VOLATILE: D,X CHANGE * B,X DISPLAY *********************************************************** F6C0 50 43 FF 13 REGMSK FCB 'P,'C,-1,19 Registre PC F6C4 41 00 0A FCB 'A,0,10 Registre A F6C7 42 00 0B FCB 'B,0,11 Registre B F6CA 58 FF 0D FCB 'X,-1,13 Registre X F6CD 59 FF 0F FCB 'Y,-1,15 Registre Y F6D0 55 FF 11 FCB 'U,-1,17 Registre U F6D3 53 FF 01 FCB 'S,-1,1 Registre S F6D6 43 43 00 09 FCB 'C,'C,0,9 Registre CC F6DA 44 50 00 0C FCB 'D,'P,0,12 Registre DP F6DE 00 FCB $00 Fin de la liste *********************************************************** * SP d'affichage des registres *********************************************************** F6DF 4F REGPRT CLRA Flag d'affichage seul F6E0 30 E8 10 REGCHG LEAX 16,S Preparation de la pile F6E3 34 32 PSHS A,X,Y Sauvegarde avec option dans pile F6E5 31 8C D8 LEAY registre ˆ imprimer F6F7 6D E4 TST 0,S Option de changement ? F6F9 26 12 BNE REGCNG Oui, branche F6FB 6D 3F TST -1,Y Test 1 ou 2 octets ? F6FD 27 03 BEQ REGP3 Regitre 8 bits F6FF 3F SWI F700 05 FCB OUT4HS Affiche 4 Chiffres Hexa + SPC F701 8C FCB $8C Code skip2 F702 3F REGP3 SWI F703 04 FCB OUT2HS Affiche 2 Chiffres Hexa + SPC F704 EC A0 REG4 LDD 0,Y+ Avance ˆ l'entree suivante F706 5D TSTB Fin des entrees ? F707 26 DF BNE REGP1 Registre suivant F709 3F SWI F70A 06 FCB PCRLF Affiche CR/LF F70B 35 B2 REGRTN PULS A,X,Y,PC Restore la pile et retourne *********************************************************** * SP de changement des registres *********************************************************** F70D 8D 40 REGCNG BSR BLDNNB Entree d'un nombre binaire F70F 27 10 BEQ REGNXC Saute si changement F711 81 0D CMPA #CR Dernier demande ? F713 27 1E BEQ REGAGN Branchement si dernier F715 E6 3F LDB -1,Y Charge le flag de dimension F717 5A DECB Moins 1 F718 50 NEGB Rend positif F719 58 ASLB Fois 2 F71A 3F REGSKP SWI F71B 07 FCB SPACE Sortie d'un SPC F71C 5A DECB F71D 26 FB BNE REGSKP Boucle si besoin F71F 20 E3 BRA REG4 F721 A7 E4 REGNXC STA 0,S Sauvegarde du delimiteur * Toujours positif F723 DC 9B LDD TIMER FA15 CC 0000 LDD #$0000 FA18 FD EF8A STD >TFCT FA1B 7F EF89 CLR >REPEAT FA1E 21 00 BRN LF9FD FA20 8D DA LF9FD BSR LF9D9 FA22 0D 00 TST RAMDEB FA24 7D FA24 LFA01 TST LFA01 FA27 B7 EF88 STA >SHIFT FA2A 8D D0 BSR LF9D9 FA2C 81 1F CMPA #$1F FA2E 2C F4 BGE LFA01 FA30 B7 EF88 LFA0D STA >SHIFT FA33 8D C7 BSR LF9D9 FA35 1F 89 TFR A,B FA37 FB EF88 ADDB >SHIFT FA3A C1 2F CMPB #$2F FA3C 2F F2 BLE LFA0D FA3E 20 00 BRA LFA1D FA40 F6 EB00 LFA1D LDB PIADRA FA43 8B 05 ADDA #5 FA45 20 13 BRA LFA37 FA47 86 00 LFA24 LDA #0 >FA49 7E FA4C JMP LFA29 FA4C B7 EF8A LFA29 STA >TFCT FA4F C6 00 LDB #0 FA51 F7 EF8B STB >ZERO FA54 F7 EF89 STB >REPEAT FA57 86 0A LFA34 LDA #$0A FA59 4C LFA36 INCA FA5A F6 EB01 LFA37 LDB PIACRA FA5D 2A FA BPL LFA36 FA5F F6 EB00 LDB PIADRA FA62 0D 00 TST RAMDEB FA64 12 NOP FA65 81 39 CMPA #$39 FA67 2D 05 BLT LFA4B FA69 7C EF8B INC >ZERO FA6C 20 05 BRA LFA50 FA6E 7A EF8B LFA4B DEC >ZERO FA71 20 00 BRA LFA50 FA73 F6 EF89 LFA50 LDB >REPEAT FA76 BB EF8A ADDA >TFCT FA79 B7 EF8A STA >TFCT FA7C C9 00 ADCB #0 FA7E F7 EF89 STB >REPEAT FA81 26 03 BNE LFA63 FA83 12 NOP FA84 20 04 BRA LFA67 FA86 81 17 LFA63 CMPA #$17 FA88 2C 0A BGE LFA71 FA8A C6 06 LFA67 LDB #6 FA8C 5A LFA69 DECB FA8D 2A FD BPL LFA69 >FA8F 7E FA92 JMP LFA6F FA92 20 C3 LFA6F BRA LFA34 FA94 78 EF8B LFA71 ASL >ZERO FA97 76 EF8D ROR >TIMER FA9A 24 09 BCC LFA82 FA9C 81 67 CMPA #$67 FA9E 2D A7 BLT LFA24 FAA0 86 24 LDA #$24 >FAA2 7E FA4C JMP LFA29 FAA5 B6 EF8D LFA82 LDA >TIMER FAA8 BB EF87 ADDA >SHIFTL FAAB B7 EF87 STA >SHIFTL FAAE B6 EF8D LDA >TIMER FAB1 35 04 PULS B FAB3 39 RTS FAB4 C6 0F LFA91 LDB #$0F >FAB6 BD FAE3 LFA93 JSR LFAC0 FAB9 86 1D LDA #$1D FABB 4A LFA98 DECA FABC 2A FD BPL LFA98 >FABE 7E FAC1 JMP LFA9E FAC1 5A LFA9E DECB FAC2 26 F2 BNE LFA93 >FAC4 BD FAE3 JSR LFAC0 FAC7 39 RTS FAC8 C6 07 LFAA5 LDB #7 >FACA BD FAE3 LFAA7 JSR LFAC0 FACD 86 43 LDA #$43 FACF 4A LFAAC DECA FAD0 2A FD BPL LFAAC FAD2 20 00 BRA LFAB1 FAD4 5A LFAB1 DECB FAD5 26 F3 BNE LFAA7 >FAD7 BD FAE3 JSR LFAC0 FADA 86 23 LDA #$23 FADC 4A LFAB9 DECA FADD 2A FD BPL LFAB9 >FADF 7E FAE2 JMP LFABF FAE2 39 LFABF RTS FAE3 86 80 LFAC0 LDA #$80 FAE5 B8 EB00 EORA PIADRA FAE8 B7 EB00 STA PIADRA FAEB 39 RTS FAEC B7 EF8D LFAC9 STA >TIMER FAEF 8D D7 BSR LFAA5 FAF1 86 09 LDA #9 FAF3 B7 EF8C STA >CARACT FAF6 7D FAF6 LFAD3 TST LFAD3 FAF9 86 16 LFAD6 LDA #$16 FAFB 4A LFAD8 DECA FAFC 2A FD BPL LFAD8 FAFE 12 NOP FAFF 1A 01 ORCC #1 FB01 76 EF8D ROR >TIMER FB04 25 05 BCS LFAE8 >FB06 BD FAC8 JSR LFAA5 FB09 20 05 BRA LFAED >FB0B BD FAB4 LFAE8 JSR LFA91 FB0E 20 00 BRA LFAED FB10 7A EF8C LFAED DEC >CARACT FB13 2A E4 BPL LFAD6 FB15 39 RTS *********************************************************** * Commande P: Enregistrement sur cassette *********************************************************** *********************************************************** * Commande V: Verification d'une cassette *********************************************************** *********************************************************** * Commande L: Chargement d'une cassette en memoire *********************************************************** *********************************************************** * Commande Q: Activation imprimante *********************************************************** FB16 0D 7D CMD_Q TST FBAD 1027 003A LBEQ ERDOS Loop FBB1 8D 32 BSR XTMP Tempo FBB3 F6 E000 LDB WDSTR Charge WD Status FBB6 C5 01 BITB #1 Test Busy FBB8 26 F1 BNE CMDX02 Loop pour attendre FBBA 86 01 LDA #1 FBBC B7 E002 STA WDSR FBBF 8D 24 BSR XTMP FBC1 C6 8C LDB #$8C Charge commande Read Sector $8C FBC3 F7 E000 STB WDSTR Applique commande FBC6 8D 1D BSR XTMP Tempo FBC8 8E C100 LDX #CMDADR Charge la destination du boot FBCB C5 02 CMDX03 BITB #2 Donnee prête 2 FBCD 27 05 BEQ CMDX04 Non, saute FBCF B6 E003 LDA WDDR Charge la donnee FBD2 A7 80 STA 0,X+ store dans buffer FBD4 F6 E000 CMDX04 LDB WDSTR Charge WD Status FBD7 C5 01 BITB #1 Test Busy FBD9 26 F0 BNE CMDX03 Loop FBDB C4 1C ANDB #$1C Test error FBDD 26 0C BNE ERDOS Oui, Message d'erreur FBDF 4F CLRA FBE0 1F 8B TFR A,DP Mise a $00 du DP * * Verification version appairee * * LDD LC1F5 Charge le contenu de $C1F5 * CMPD LFDEF Compare a $5056 * BEQ CMDX06 OK, demarre ... * LDX #$0000 * CLRA * CMDX05 STA 0,X+ Efface tout * BRA CMDX05 Loop FBE2 7E C100 CMDX06 JMP CMDADR *Tempo FBE5 8D 00 XTMP BSR XTMP1 FBE7 39 XTMP1 RTS FBE8 12 NOP FBE9 12 NOP FBEA 12 NOP *********************************************************** * Attente un caractère au clavier (avec ou sans echo) *********************************************************** FBEB 8E FBF1 ERDOS LDX #ERRDOS Message d'erreur FBEE 3F SWI FBEF 03 FCB $03 Affichage erreur DOS FBF0 39 RTS FBF1 1B ERRDOS FCB $1B FBF2 32 FCC "2" FBF3 45 52 52 45 FCC "ERREUR DE CHARGEMENT DOS" FBF7 55 52 20 44 FBFB 45 20 43 48 FBFF 41 52 47 45 FC03 4D 45 4E 54 FC07 20 44 4F 53 FC0B 0A 0D 07 04 FCC LF,CR,BELL,EOT FC0F 1B ERNDOS FCB $1B FC10 32 FCC "2" FC11 20 44 4F 53 FCC " DOS non present ",ESC,"0" FC15 20 6E 6F 6E FC19 20 70 72 65 FC1D 73 65 6E 74 FC21 20 1B 30 FC24 0A 0D 07 04 FCC LF,CR,BELL,EOT *********************************************************** * Commande Y: Changement et lancement DOS *********************************************************** FC28 86 7E CMD_Y LDA #$7E FC2A B1 CD03 CMPA WARMS Test si FLEX présent FC2D 27 0B BEQ CMDY01 OK FC2F 8E FC0F LDX #ERNDOS DOS Non PrŽsent FC32 3F SWI FC33 03 FCB $03 Affiche Message FC34 86 01 LDA #1 FC36 3F SWI FC37 08 FCB $08 Retour Moniteur FC38 20 EE BRA CMD_Y FC3A B6 EB09 CMDY01 LDA PTMSTA Accès Timer FC3D 4F CLRA FC3E 1F 8B TFR A,DP Remise DP à zéro FC40 7E CD03 JMP WARMS Retour FLEX ˆ Chaud *********************************************************** * Commande Z: Switch ecran 24 - 20 lignes *********************************************************** FC43 34 10 CMD_Z PSHS X FC45 8E FC72 LDX #TAB24L Initialise ˆ 24 Lignes par ecran FC48 9C 70 CMPX 110 B auds (/283) FCCC 20 00 67 FCB $20,$00,$67 IRQ ACIA SW3 OFF / SW4 ON -> 300 Bauds (/103) FCCF 40 00 19 FCB $40,$00,$19 Speed 1 SW3 ON / SW4 OFF -> 1200 Bauds (/25) FCD2 60 00 00 FCB $60,$00,$00 SW3 OFF / SW4 OFF -> IVG * Si Speed a zero alors IVG ON FCD5 41 44 52 ADRMEM FCC "ADR" FCD8 20 20 4D 45 FCC " ME K7",LF,CR,EOT FCDC 20 4B 37 0A FCE0 0D 04 *********************************************************** * Test page avant polling * * Pas d'impression si IRQ en page O * * SPIRQ: Le polling imprimante fonctionne ainsi: * * Le timer cde PRINT génère régulièrement des inter * * Lors de l'inter le contrôle est donné au superviseur * * du DOS en C700. Si l'inter se produit alors que l'on * * est en page mémoire 0 ( test c1avier,ecriture écran ) * * l'adresse C700 n'a pas de réa1ite puisque le DOS * * a été charge en page 1 .Il faut donc avant de sauter * * au superviseur s'assurer que l'on est bien en page 1. * * Dans le cas contraire le délai jusqu'a la * * génération de la prochaine inter est raccourci et un * * RTI est effectué. * *********************************************************** FE80 ORG $FE80 Adresse imposée par le flex. FE80 8E 3000 LFE80 LDX #$3000 FE83 B6 EB00 LDA PIADRA PIA Carte mere FE86 12 NOP FE87 B7 EB00 STA PIADRA FE8A 85 01 BITA #1 FE8C 27 06 BEQ LFE94 FE8E BF EB0E STX PTMTM3 FE91 7E C700 JMP CMDEND FE94 8E 1000 LFE94 LDX #DEBIVG FE97 BF EB0E STX PTMTM3 FE9A 3B RTI *********************************************************** * DEFAULT INTERRUPT HANDLER *********************************************************** FE9B ORG $FE9B FE9B 6E 9D F127 RSRVD JMP [VECTAB+_RSVD,PCR] Vecteur Reserve FE9F 6E 9D F125 SWI3 JMP [VECTAB+_SWI3,PCR] FEA3 6E 9D F123 SWI2 JMP [VECTAB+_SWI2,PCR] FEA7 6E 9D F121 FIRQ JMP [VECTAB+_FIRQ,PCR] FEAB 6E 9D F11F IRQ JMP [VECTAB+_IRQ,PCR] FEAF 6E 9D F11D SWI JMP [VECTAB+_SWI,PCR] FEB3 6E 9D F11B NMI JMP [VECTAB+_NMI,PCR] *********************************************************** * HARDWARE VECTOR TABLE *********************************************************** FFF0 ORG ROMBEG+ROMSIZ-16 Preparation des vecteurs Ha rdware FFF0 FE9B VRSRVD FDB RSRVD RESERVED SLOT FFF2 FE9F VSWI3 FDB SWI3 SOFTWARE INTERRUPT 3 FFF4 FEA3 VSWI2 FDB SWI2 SOFTWARE INTERRUPT 2 FFF6 FEA7 VFIRQ FDB FIRQ FAST INTERRUPT REQUEST FFF8 FEAB VIRQ FDB IRQ INTERRUPT REQUEST FFFA FEAF VSWI FDB SWI SOFTWARE INTERRUPT FFFC FEB3 VNMI FDB NMI NON-MASKABLE INTERRUPT FFFE F036 VRESET FDB RESET RESTART END RESET 0 ERROR(S) DETECTED SYMBOL TABLE: ACIACP EB04 ADDR EF9E ADRMEM FCD5 ARMBK2 F817 ARMBLP F7FE ARMLOP F81C ARMNSW F80D BASEPG EF9D BELL 0007 BKPTBL EFB2 BKPTCT EFFA BKPTOP EFA2 BLD2 F014 BLD3 F020 BLDHEX F7BD BLDHXC F7BF BLDHXI F7B9 BLDNNB F74F BLDNUM F751 BLDRTN F034 BLDSHF F7C8 BLTVTR F000 BRKPT 000A BS 0008 CAN 0018 CARACT EF8C CBKADD F95B CBKADL F96B CBKADT F975 CBKDLE F93B CBKDLM F944 CBKDLP F93D CBKDSL F951 CBKDSP F94D CBKERR F972 CBKLDR F97F CBKPT F928 CBKRTS F93A CBKSET F97D CCALL F829 CDBADN F8DE CDCNT F8CA CDISP F8B3 CDISPS F8C1 CDNUM F8D0 CDOT F8E5 CGO F7F0 CGOBRK F82F CHKABT F2B4 CHKRTN F2BD CHKSEC F2BC CHKWT F2BE CIDRTS F34D CIDTA F33E CIDTA3 F444 CIDTA4 F452 CIDTAG F34E CIDTAS F344 CINIM1 F99D CINIM2 F9B2 CINIM4 F9BE CINRTS F9BD CIOFF F3D7 CION F36D CMD F147 CMD2 F185 CMD3 F198 CMDADR C100 CMDBAD F1AC CMDCMP F1C7 CMDDDL F151 CMDEND C700 CMDFLS F1BC CMDGOT F19D CMDMEM F1E0 CMDNEP F149 CMDNOL F15A CMDSCH F1A3 CMDSIZ F1BF CMDSME F1B7 CMDTB2 F1EB CMDTBL F1EC CMDX01 FB9D CMDX02 FBAB CMDX03 FBCB CMDX04 FBD4 CMDX06 FBE2 CMDXQT F1D7 CMDY01 FC3A CMD_A F9C8 CMD_I F986 CMD_Q FB16 CMD_U FB24 CMD_X FB93 CMD_Y FC28 CMD_Z FC43 CMEM F833 CMEM2 F838 CMEM4 F841 CMEMN F836 CMENUM F850 CMESTR F85C CMNOTB F872 CMNOTC F858 CMNOTL F87E CMNOTQ F868 CMNOTU F88C CMPADP F888 CMPADS F886 CMSPCE F86E CNULLS F8F4 CNVGOT F7E4 CNVHEX F7D2 CNVOK F7E6 CNVRTS F7E8 CODTA F3D8 CODTA2 F432 CODTAO F3FF CODTLP F3F4 CODTPD F3F0 CODTRT F3FA CODXQ1 F3FC CODXQ2 F405 COFFS F905 COFNO1 F91C COOFF F3D7 COON F36D COPI F9A5 COPI01 F9A9 COPI02 F9B1 CR 000D CREG F6BA CRTCR0 2080 CRTCR1 2081 CSTLEV F8F9 CTRACE F8E1 CTRCE3 F8E7 CTRFPY E000 CTRIVG 2080 CTRL_W 0017 CTRL_Y 0019 CURAD EF78 CURSOF F603 CURSON F620 CWINDO F8AE DCIVG1 F4DA DCRIVG F4D6 DEBIVG 1000 DELIM EF8E DEPF1 F994 DFTCHP 0000 DFTNLP 0000 DLDBAD F7B6 DLE 0010 DSTACK EF52 ECHOOF F646 ECHOON F63D ENQ 0005 EOT 0004 ERDOS FBEB ERNDOS FC0F ERRDOS FBF1 ERRMSG F319 ERROR F330 ES2FLG EF6C ES3FLG EF6B ESC 001B ESP04 FCA7 ETX 0003 EXP1 F759 EXP2 F777 EXPADD F793 EXPCDL F787 EXPCHN F79B EXPDLM F75B EXPRTN F775 EXPSUB F7A6 EXPTDI F77D EXPTDL F77F EXPTRM F7B2 FCOIVG F466 FF 000C FINIVG 1FFF FINTAB FCA0 FIRQ FEA7 FIRQR F318 FLGEG EF7A FLGESC EF71 FS 001C FSRTIM EF7D FSTIMP EF7C GBEIVG F56F GBSIVG F4FD GBSRTN F505 GCAI01 F51A GCAI02 F525 GCAI03 F537 GCAI04 F543 GCAIVG F518 GCR01 F509 GCR02 F514 GCRIVG F507 GESIVG F584 GFFIVG F564 GFSIVG F569 GFSRTN F56D GHTI01 F55E GHTIVG F555 GLFIVG F4EC GLFRTN F4FA GOADDR F7F3 GONDFT F812 GVTI01 F551 GVTIVG F548 HIVTR 0034 HSBLNK F670 HSDRTN F6B7 HSDTA F66C HSHCHR F69B HSHCOK F6A5 HSHDOT F6A3 HSHLNE F684 HSHNXT F690 HSHTTL F676 HT 0009 INBCAR EF6E INCHNP 0000 INIIO1 F12C INIIO2 F134 INIIO3 F13C INITVT F043 INTVE F07C INTVS F06D IRQ FEAB IRQR F33A IVGCUR EF74 IVGDEB EF72 IVGESC EF6D IVGPON FB65 JSRPG0 FB7E L0348 0348 L03FF 03FF L063F 063F L077F 077F LASTOP EF99 LC1F5 C1F5 LDAPG0 FB41 LDBPG0 FB4D LDDP F321 LDDPG0 FB59 LEF46 EF46 LEF7E EF7E LEF7F EF7F LEF80 EF80 LEF82 EF82 LEF83 EF83 LEF84 EF84 LEF85 EF85 LF 000A LF3BE F379 LF3C8 F383 LF3E5 F3A0 LF3E8 F3A3 LF3FA F3B5 LF62C F64F LF63F F662 LF640 F663 LF9B3 F9D6 LF9BC F9DF LF9D9 F9FC LF9DF FA02 LF9EB FA0E LF9FD FA20 LFA01 FA24 LFA0D FA30 LFA1D FA40 LFA24 FA47 LFA29 FA4C LFA34 FA57 LFA36 FA59 LFA37 FA5A LFA4B FA6E LFA50 FA73 LFA63 FA86 LFA67 FA8A LFA69 FA8C LFA6F FA92 LFA71 FA94 LFA82 FAA5 LFA91 FAB4 LFA93 FAB6 LFA98 FABB LFA9E FAC1 LFAA5 FAC8 LFAA7 FACA LFAAC FACF LFAB1 FAD4 LFAB9 FADC LFABF FAE2 LFAC0 FAE3 LFAC9 FAEC LFAD3 FAF6 LFAD6 FAF9 LFAD8 FAFB LFAE8 FB0B LFAED FB10 LFC2C FB21 LFC91 FB86 LFDC5 FC7D LFDE8 FCA0 LFE05 FCC7 LFE80 FE80 LFE94 FE94 LNGLI EF76 MEMESL EF69 MEMP0 EF7B MISFLG EF8F MNICON F313 MONITR 0008 MSHOWP F2D5 MUPBAD F8A6 MUPDAT F89B NBLIGN EF70 NBVECT 0015 NEFARI F64B NMI FEB3 NMIR F2D9 NMITRC F30C NOCAR F364 NUL 0000 NUMBER EF9B NUMBKP 0008 NUMFUN 000B NUMVTR 001B OFFSET 002A OUT2HS 0004 OUT4HS 0005 OUTB1 F57A OUTCH 0001 PAGORG FB74 PAUSE 000B PAUSER EFFC PCNTER EF93 PCRLF 0006 PDATA 0003 PDATA1 0002 PDSTAC EF95 PER1P0 8008 PER1P1 8009 PIACPU EB00 PIACRA EB01 PIACRB EB03 PIADRA EB00 PIADRB EB02 PIAFPY E080 PIAIVG 2000 PILTTP EF67 POUP01 F410 POUP02 F417 POUP03 F42A POUP04 F431 POUT F40E PROMPT 003E PRTADR F891 PTMC13 EB08 PTMC2 EB09 PTMCPU EB08 PTMSTA EB09 PTMTM1 EB0A PTMTM2 EB0C PTMTM3 EB0E RAMDEB EF00 RAMOFS FF00 RDSTAC EF97 READ F7E9 REG4 F704 REGAGN F733 REGCHG F6E0 REGCNG F70D REGMSK F6C0 REGNXC F721 REGP1 F6E8 REGP2 F6F1 REGP3 F702 REGPRS F30F REGPRT F6DF REGRTN F70B REGSKP F71A REGTF1 F739 REGTF2 F746 REGTWO F72B REPEAT EF89 RESET F036 RESET2 F03C ROM2OF E000 ROMBEG F000 ROMSIZ 1000 RSRVD FE9B RSRVDR F33A RTI F318 RTS F3D7 SCRL01 F483 SCRL02 F489 SCRL03 F490 SCRL04 F496 SCRLUP F471 SEND F248 SETCUR F4BA SHIFT EF88 SHIFTL EF87 SI 000F SIGNON F0C8 SKIP2 008C SLEVEL EFF8 SOH 0001 SPACE 0007 STAPG0 FB47 STBPG0 FB53 STDPG0 FB5F STIMPR F3E4 STLDFT F900 SWCONF FCC9 SWI FEAF SWI2 FEA3 SWI2R F33A SWI3 FE9F SWI3R F33A SWIBFL EFFB SWICNT EF90 SWIDNE F0B4 SWILP F0A7 SWIR F094 SWIVTB F07C SWSCR1 FC53 SWSCR2 FC5B TAB20L FC62 TAB24L FC72 TABVID FCA9 TCRIVG FC82 TCTIVG F4E9 TFCT EF8A TIMER EF8D TRACEC EF91 TRSF F9EA TRSF01 F9F1 TRSF02 F9FB TRTES1 F58E TRTES2 F591 TRTES3 F5C5 TRTES4 F5CA TRTES5 F5CE TRTES6 F5E4 TRTES7 F5FA TRTESC F588 TRTESR F5C1 VCTRSW 0009 VECTAB EFC2 VFIRQ FFF6 VIRQ FFF8 VNMI FFFC VRESET FFFE VRSRVD FFF0 VSWI FFFA VSWI2 FFF4 VSWI3 FFF2 VT 000B WARMS CD03 WDDR E003 WDSR E002 WDSTR E000 WDTR E001 WINDOW EFA0 WORKPG EF00 XQCIDT F2CE XQPAUS F2CA XTMP FBE5 XTMP1 FBE7 ZBKCMD F337 ZBKPNT F335 ZERO EF8B ZIN2 F286 ZINCH F26D ZINCHP F26B ZMONT2 F10C ZMONTR F0D8 ZOT2HS F24E ZOT4HS F24C ZOTCH1 F28A ZOTCH2 F293 ZOTCH3 F295 ZOUT2H F235 ZOUTHX F242 ZPAUSE F2AA ZPCRLF F299 ZPCRLS F298 ZPDATA F29C ZPDTA1 F2A4 ZPDTLP F2A2 ZSPACE F252 ZVSWTH F256 _ACIA 002C _AVTBL 0000 _CIDTA 0016 _CIOFF 0018 _CION 0014 _CMDL1 0002 _CMDL2 002A _CODTA 001C _COOFF 001E _COON 001A _COPI 0026 _ECHO 0030 _EXPAN 0024 _FIRQ 000A _HSDTA 0020 _IRQ 000C _NMI 0010 _PAD 002E _PAUSE 0022 _PIA 0034 _PTM 0032 _RESET 0012 _RSVD 0004 _SWI 000E _SWI2 0008 _SWI3 0006 _TRSF 0028 _TYPIO 0031