* DISASSEMBLY BY DYNAMITE OF 1.TAVBUG2.BIN * * Plan de la memoire du Tavernier 6809 * * * * Page Commune * $FFFF Fin de la ROM * $F000 Dcbut de la ROM * $EFFF Fin Memoire systeme * $EC00 Debut Memoire systeme * $EBFF Fin zone Preripheriques * $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 selection lecteur * $E003 Controleur disquettes * $E002 Controleur disquettes * $E001 Controleur disquettes * $E000 Controleur disquettes * Page 0 ---------------- Page 1 -- Page 2 -- Page 3 -- * $DFFF Fin Peripheriques $DFFF $DFFF $DFFF Fin RAM * $2FFF Fin IVG + PIA " " " * $2081 CRT " " " * $2080 CRT " " " * $1FFF Fin RAM Video " " " * $1000 Debut RAM Video " " " * $0000 Vide $0000 $0000 $0000 Debut RAM * * * * STANDARD PRE-NAMED LABEL EQUATES C100 CMDADR EQU $C100 C700 CMDEND EQU $C700 CD03 WARMS EQU $CD03 * ASCII CODE EQUATES 0000 NUL EQU $00 0001 SOH EQU $01 0003 ETX EQU $03 0004 EOT EQU $04 0005 ENQ EQU $05 0007 BEL EQU $07 0009 HT EQU $09 000B VT EQU $0B 000A LF EQU $0A 000D CR EQU $0D 000F SI EQU $0F 0010 DLE EQU $10 001B ESC EQU $1B * EXTERNAL LABEL EQUATES 0000 L0000 EQU $0000 0004 L0004 EQU $0004 0009 L0009 EQU $0009 000B L000B EQU $000B 000C L000C EQU $000C 000D L000D EQU $000D 000E L000E EQU $000E 000F L000F EQU $000F 0012 L0012 EQU $0012 0017 L0017 EQU $0017 0019 L0019 EQU $0019 0026 L0026 EQU $0026 0030 L0030 EQU $0030 0039 L0039 EQU $0039 003A L003A EQU $003A 003F L003F EQU $003F 0040 L0040 EQU $0040 0041 L0041 EQU $0041 0043 L0043 EQU $0043 0047 L0047 EQU $0047 0049 L0049 EQU $0049 004C L004C EQU $004C 004D L004D EQU $004D 004F L004F EQU $004F 0050 L0050 EQU $0050 0051 L0051 EQU $0051 0052 L0052 EQU $0052 0053 L0053 EQU $0053 0054 L0054 EQU $0054 0055 L0055 EQU $0055 0056 L0056 EQU $0056 0057 L0057 EQU $0057 0058 L0058 EQU $0058 0059 L0059 EQU $0059 005C L005C EQU $005C 0067 L0067 EQU $0067 Sauvegarde adresse old stack pr IVG 0069 L0069 EQU $0069 006B L006B EQU $006B Reserve video IVG 006C L006C EQU $006C Reserve video IVG 006D L006D EQU $006D Reserve video IVG 006E L006E EQU $006E Reserve video IVG Init a $077F 0070 L0070 EQU $0070 Initialise a $FDBA qui contient $7F50 0072 L0072 EQU $0072 Position curseur en RAM (entre $1000 et $2000) 0074 L0074 EQU $0074 Reserve video IVG 0075 L0075 EQU $0075 Reserve video IVG 0076 L0076 EQU $0076 Nb caracteres par ligne (80) 0077 L0077 EQU $0077 0078 L0078 EQU $0078 0079 L0079 EQU $0079 007A L007A EQU $007A 007B L007B EQU $007B 007C L007C EQU $007C Flag Echo Imprimante 007D L007D EQU $007D Flag Echo Imprimante 007E L007E EQU $007E 007F L007F EQU $007F 0082 L0082 EQU $0082 0083 L0083 EQU $0083 0084 L0084 EQU $0084 0085 L0085 EQU $0085 008D L008D EQU $008D 008E L008E EQU $008E 008F L008F EQU $008F 0090 L0090 EQU $0090 0091 L0091 EQU $0091 0092 L0092 EQU $0092 0093 L0093 EQU $0093 0095 L0095 EQU $0095 0097 L0097 EQU $0097 Memoire Users Stack 0099 L0099 EQU $0099 009B L009B EQU $009B 009C L009C EQU $009C 009D L009D EQU $009D Memoire DP register 009E L009E EQU $009E 00A0 L00A0 EQU $00A0 00A1 L00A1 EQU $00A1 00A9 L00A9 EQU $00A9 00B6 L00B6 EQU $00B6 00C2 L00C2 EQU $00C2 00C4 L00C4 EQU $00C4 00CE L00CE EQU $00CE 00E1 L00E1 EQU $00E1 00E8 L00E8 EQU $00E8 00EC L00EC EQU $00EC 00EE L00EE EQU $00EE 00F0 L00F0 EQU $00F0 Nb Car NUL a envoyer apres un car si Cmd N active 00F1 L00F1 EQU $00F1 Nb Car NUL a envoyer apres CR si Cmd N active 00F2 L00F2 EQU $00F2 Echo au clavier apres saisie 00F4 L00F4 EQU $00F4 00F5 L00F5 EQU $00F5 00F6 L00F6 EQU $00F6 Indicateur de sortie Video ($011B, $67, $19, $00) 00F8 L00F8 EQU $00F8 00FA L00FA EQU $00FA 00FB L00FB EQU $00FB 0143 L0143 EQU $0143 0348 L0348 EQU $0348 03FF L03FF EQU $03FF 0442 L0442 EQU $0442 063F L063F EQU $063F 077F L077F EQU $077F 0D59 L0D59 EQU $0D59 0F55 L0F55 EQU $0F55 1000 L1000 EQU $1000 1153 L1153 EQU $1153 1341 L1341 EQU $1341 1B27 L1B27 EQU $1B27 2000 L2000 EQU $2000 2080 L2080 EQU $2080 2081 L2081 EQU $2081 20FE L20FE EQU $20FE 398D L398D EQU $398D 3F04 L3F04 EQU $3F04 4218 L4218 EQU $4218 5064 L5064 EQU $5064 5D09 L5D09 EQU $5D09 8008 L8008 EQU $8008 8009 L8009 EQU $8009 80F1 L80F1 EQU $80F1 8620 L8620 EQU $8620 8D09 L8D09 EQU $8D09 8D0C L8D0C EQU $8D0C 8D28 L8D28 EQU $8D28 9A0B L9A0B EQU $9A0B A91C LA91C EQU $A91C AE07 LAE07 EQU $AE07 B41B LB41B EQU $B41B C1F5 LC1F5 EQU $C1F5 C955 LC955 EQU $C955 E000 LE000 EQU $E000 E002 LE002 EQU $E002 E003 LE003 EQU $E003 E080 LE080 EQU $E080 E545 LE545 EQU $E545 EB00 LEB00 EQU $EB00 EB01 LEB01 EQU $EB01 EB02 LEB02 EQU $EB02 EB03 LEB03 EQU $EB03 EB0E LEB0E EQU $EB0E EF52 LEF52 EQU $EF52 Stack Moniteur EF67 LEF67 EQU $EF67 Stack IVG EF7E LEF7E EQU $EF7E EF80 LEF80 EQU $EF80 EF82 LEF82 EQU $EF82 EF83 LEF83 EQU $EF83 EF84 LEF84 EQU $EF84 EF46 LEF46 EQU $EF46 Jour Semaine (3 octets) EF87 LEF87 EQU $EF87 Base de la copie du RTC (7 octets) EF88 LEF88 EQU $EF88 EF89 LEF89 EQU $EF89 EF8A LEF8A EQU $EF8A EF8B LEF8B EQU $EF8B EF8C LEF8C EQU $EF8C EF8D LEF8D EQU $EF8D EF90 LEF90 EQU $EF90 Compteur de SWI EF97 LEF97 EQU $EF97 Stack locale SWI EF99 LEF99 EQU $EF99 EF9D LEF9D EQU $EF9D Memoire de DP=$EF EFB2 LEFB2 EQU $EFB2 EFC2 LEFC2 EQU $EFC2 EFC6 LEFC6 EQU $EFC6 $F37F EFC8 LEFC8 EQU $EFC8 $F37F SWI3 EFCA LEFCA EQU $EFCA $F37F SWI2 EFCC LEFCC EQU $EFCC $F35D FIRQ EFCE LEFCE EQU $EFCE $F37F IRQ EFD0 LEFD0 EQU $EFD0 $F094 SWI EFD2 LEFD2 EQU $EFD2 $F3E1 NMI EFD8 LEFD8 EQU $EFD8 $F383 EFDC LEFDC EQU $EFDC $F3B2 Adresse Initialisation carte IVG EFDE LEFDE EQU $EFDE $F41D EFE2 LEFE2 EQU $EFE2 $F649 EFE4 LEFE4 EQU $EFE4 $EFFC EFE6 LEFE6 EQU $EFE6 $F736 EFE8 LEFE8 EQU $EFE8 $F982 EFEA LEFEA EQU $EFEA $F9C7 EFEC LEFEC EQU $EFEC $F21A EFEE LEFEE EQU $EFEE $EB04 Adresse ACIA EFF0 LEFF0 EQU $EFF0 $0000 EFF2 LEFF2 EQU $EFF2 $0000 EFF4 LEFF4 EQU $EFF4 $0000 EFF6 LEFF6 EQU $EFF6 $EB08 Adresse 6845 EFF8 LEFF8 EQU $EFF8 $EB00 Adresse PIA EFFA LEFFA EQU $EFFA $00 EFFB LEFFB EQU $EFFB $00 Indicateur I/O initialise F000 ORG $F000 *********************************************************** * Recopie la table des branchements relatifs *********************************************************** F000 30 8C BF LF000 LEAX 0 F0A2 17 08B5 LBSR LF95C Charge Y ($EFB2) et B ($EFFA) F0A5 50 NEGB F0A6 5A LF0A7 DECB F0A7 2B 0A BMI LF0B4 F0A9 11A3 A1 CMPU ,Y++ F0AC 26 F8 BNE LF0A7 F0AE EF 6A STU 10,S Corrige adresse de retour F0B0 16 02C5 LBRA LF37A F0B3 0F FB LF0B4 CLR L00FB Reset memoire F0B5 37 06 PULU B,A Recupere B contenant le code SWI F0B7 C1 0B CMPB #$0B Code inf a $B F0B9 1022 02B6 LBHI LF375 Message Erreur F0BD EF 6A STU 10,S Corrige adresse de retour F0BF 58 ASLB Mult par 2 F0C0 33 8C B9 LEAU " d'invite F190 33 E4 LEAU 0,S F192 DF 95 STU F36C 1027 0000 LBEQ FA24 7E FA27 JMP LFA29 FA27 B7 EF8A LFA29 STA LEF8A FA2A C6 00 LDB #0 FA2C F7 EF8B STB LEF8B FA2F F7 EF89 STB LEF89 FA32 86 0D LFA34 LDA #$0D FA34 4C LFA36 INCA FA35 F6 EB01 LFA37 LDB LEB01 FA38 2A FA BPL LFA36 FA3A F6 EB00 LDB LEB00 FA3D 0D 00 TST FA6A 7E FA6D JMP LFA6F FA6D 20 C3 LFA6F BRA LFA34 FA6F 78 EF8B ASL LEF8B FA72 76 EF8D LFA74 ROR LEF8D FA75 24 09 BCC LFA82 FA77 81 67 CMPA #$67 FA79 2D A7 BLT LFA24 FA7B 86 24 LDA #$24 >FA7D 7E FA27 JMP LFA29 FA80 B6 EF8D LFA82 LDA LEF8D FA83 BB EF87 ADDA LEF87 FA86 B7 EF87 STA LEF87 FA89 B6 EF8D LDA LEF8D FA8C 35 04 PULS B FA8E 39 RTS FA8F C6 0F LFA91 LDB #$0F >FA91 BD FABE LFA93 JSR LFAC0 FA94 86 1D LDA #$1D FA96 4A LFA98 DECA FA97 2A FD BPL LFA98 >FA99 7E FA9C JMP LFA9E FA9C 5A LFA9E DECB FA9D 26 F2 BNE LFA93 >FA9F BD FABE JSR LFAC0 FAA2 39 RTS FAA3 C6 07 LFAA5 LDB #7 >FAA5 BD FABE LFAA7 JSR LFAC0 FAA8 86 43 LDA #$43 FAAA 4A LFAAC DECA FAAB 2A FD BPL LFAAC FAAD 20 00 BRA LFAB1 FAAF 5A LFAB1 DECB FAB0 26 F3 BNE LFAA7 >FAB2 BD FABE JSR LFAC0 FAB5 86 23 LDA #$23 FAB7 4A LFAB9 DECA FAB8 2A FD BPL LFAB9 >FABA 7E FABD JMP LFABF FABD 39 LFABF RTS FABE 86 80 LFAC0 LDA #$80 FAC0 B8 EB00 EORA LEB00 FAC3 B7 EB00 STA LEB00 FAC6 39 RTS FAC7 B7 EF8D LFAC9 STA LEF8D FACA 8D D7 BSR LFAA5 FACC 86 09 LDA #9 FACE B7 EF8C STA LEF8C FAD1 7D FAD1 LFAD3 TST LFAD3 FAD4 86 16 LFAD6 LDA #$16 FAD6 4A LFAD8 DECA FAD7 2A FD BPL LFAD8 FAD9 12 NOP FADA 1A 01 ORCC #1 FADC 76 EF8D ROR LEF8D FADF 25 05 BCS LFAE8 >FAE1 BD FAA3 JSR LFAA5 FAE4 20 05 BRA LFAED >FAE6 BD FA8F LFAE8 JSR LFA91 FAE9 20 00 BRA LFAED FAEB 7A EF8C LFAED DEC LEF8C FAEE 2A E4 BPL LFAD6 FAF0 39 RTS ****************************************************** * Commande P: Enregistrement sur cassette ****************************************************** FAF1 17 FDB7 LBSR LF8AD FAF4 1F 02 TFR D,Y FAF6 30 2F LEAX 15,Y FAF8 25 05 BCS LFB01 FAFA 17 FDAE LBSR LF8AD FAFD 30 AB LEAX D,Y FAFF 34 30 LFB01 PSHS X,Y FB01 10A3 62 CMPD 2,S FB04 23 02 BLS LFB0A FB06 ED E4 STD 0,S FB08 AE E4 LFB0A LDX 0,S FB0A AF 8D F472 STX LEF80,PCR FB0E AE 62 LDX 2,S FB10 AF 8D F46A STX LEF7E,PCR FB14 35 30 PULS X,Y FB16 8E 0348 LDX #L0348 FB19 86 FF LFB1B LDA #$FF FB1B C6 13 LDB #$13 FB1D 5A LFB1F DECB FB1E 2A FD BPL LFB1F FB20 12 NOP FB21 12 NOP >FB22 BD FAC7 JSR LFAC9 FB25 30 1F LEAX -1,X FB27 26 F0 BNE LFB1B FB29 34 FE PSHS A,B,DP,X,Y,U,PC FB2B 32 6B LEAS 11,S FB2D FC EF80 LFB2F LDD LEF80 FB30 B3 EF7E SUBD LEF7E FB33 4D TSTA FB34 27 04 BEQ LFB3C FB36 C6 FF LDB #$FF FB38 20 03 BRA LFB3F >FB3A 16 0000 LFB3C LBRA LFB3F FB3D 86 42 LFB3F LDA #$42 FB3F 34 04 PSHS B FB41 C6 09 LDB #9 FB43 5A LFB45 DECB FB44 2A FD BPL LFB45 FB46 12 NOP FB47 12 NOP FB48 BD FAC7 JSR LFAC9 FB4B 1F 41 TFR S,X FB4D A6 80 LDA 0,X+ FB4F 20 00 BRA LFB53 FB51 C6 13 LFB53 LDB #$13 FB53 5A LFB55 DECB FB54 2A FD BPL LFB55 FB56 BD FAC7 JSR LFAC9 FB59 C6 11 LDB #$11 FB5B 5A LFB5D DECB FB5C 2A FD BPL LFB5D FB5E 35 02 PULS A FB60 4C INCA FB61 B7 EF83 STA LEF83 FB64 8E EF7E LDX #LEF7E FB67 A6 80 LFB69 LDA 0,X+ FB69 12 NOP FB6A 12 NOP FB6B BD FAC7 JSR LFAC9 FB6E C6 12 LDB #$12 FB70 5A LFB72 DECB FB71 2A FD BPL LFB72 FB73 12 NOP FB74 8C EF80 CMPX #LEF80 FB77 26 EE BNE LFB69 FB79 20 00 BRA LFB7D FB7B BE EF7E LFB7D LDX LEF7E FB7E A6 80 LFB80 LDA 0,X+ FB80 20 00 BRA LFB84 FB82 BD FAC7 LFB84 JSR LFAC9 FB85 C6 12 LDB #$12 FB87 5A LFB89 DECB FB88 2A FD BPL LFB89 FB8A 12 NOP FB8B 7A EF83 DEC LEF83 FB8E 27 02 BEQ LFB94 FB90 20 EC BRA LFB80 FB92 108E 0019 LFB94 LDY #L0019 FB96 86 FF LFB98 LDA #$FF FB98 12 NOP FB99 BD FAC7 JSR LFAC9 FB9C C6 13 LDB #$13 FB9E 5A LFBA0 DECB FB9F 2A FD BPL LFBA0 FBA1 12 NOP FBA2 31 3F LEAY -1,Y FBA4 26 F0 BNE LFB98 FBA6 BF EF7E STX LEF7E FBA9 30 1F LEAX -1,X FBAB BC EF80 CMPX LEF80 FBAE 1026 FF7B LBNE LFB2F FBB2 86 47 LDA #$47 FBB4 7E FAC7 JMP LFAC9 ************************************************** * Commande V: Verification d'une cassette ************************************************** FBB7 0F 84 LFBB9 CLR