added i2c controller tests

This commit is contained in:
Dennis Gunia
2022-12-20 19:29:01 +01:00
parent fabb402f6b
commit 265342e7f7
21 changed files with 6803 additions and 3371 deletions

View File

@@ -40,12 +40,8 @@ VDP_MEM equ 0x80
PROG_ROM_START equ 0x0100 PROG_ROM_START equ 0x0100
PROG_MEM_START equ 04000h PROG_MEM_START equ 04000h
IO_PIO_0_A_D equ 0x60
IO_PIO_0_A_C equ 0x61
IO_PIO_0_B_D equ 0x62
IO_PIO_0_B_C equ 0x63
IO_PIO_1_A_D equ 0x64 ;PS2 CS_PIO_BD .EQU 0xF5
IO_PIO_1_A_C equ 0x65 CS_PIO_BC .EQU 0xF7
IO_PIO_1_B_D equ 0x66 CS_PIO_AD .EQU 0xF4
IO_PIO_1_B_C equ 0x67 CS_PIO_AC .EQU 0xF6

View File

@@ -0,0 +1,37 @@
;------------------------------------------------------------------------------
; beep
;
; Beeps the speaker
; DE sets duration
;------------------------------------------------------------------------------
beep:
push AF
push BC
push DE
LD A,0x08
OUT (CS_PIO_AD), A
LD BC, 0x28
CALL beep_pause
LD A,0x00
OUT (CS_PIO_AD), A
LD BC, 0x24
CALL beep_pause
DEC DE
ld A,D
or E
jr NZ, beep
pop de
pop bc
pop af
ret
beep_pause:
NEG ; 8 T-states
NEG ; 8 T-states
NEG ; 8 T-states
NEG ; 8 T-states
DEC BC ; 6 T-states
LD A,C ; 9 T-states
OR B ; 4 T-states
JP NZ,beep_pause ; 10 T-states
RET ; Pause complete, RETurn

View File

@@ -125,7 +125,7 @@ MSG_CLEAR:
A_RTS_OFF: A_RTS_OFF:
ld a,005h ;write into WR0: select WR5 ld a,005h ;write into WR0: select WR5
out (CS_SIO_A_C),A out (CS_SIO_A_C),A
ld a,068h ;DTR inactiveh, TX 8bit, BREAK off, TX on, RTS inactive ld a,068h ;DTR inactive, TX 8bit, BREAK off, TX on, RTS inactive
out (CS_SIO_A_C),A out (CS_SIO_A_C),A
ret ret
A_RTS_ON: A_RTS_ON:

View File

@@ -82,7 +82,7 @@ mon_start_init_sound:
;call AY0_WRITE_REG ;call AY0_WRITE_REG
mon_start_init_ctc: mon_start_init_ctc:
ld sp, 0xffff ld sp, STACK_RAM_TOP
; Set CTC Ch2 Interrupt Vector ; Set CTC Ch2 Interrupt Vector
;LD A,40h ; it vector defined in bit 7­3,bit 2­1 don't care, bit 0 = 0 ;LD A,40h ; it vector defined in bit 7­3,bit 2­1 don't care, bit 0 = 0
;OUT (IO_CTC0_C0),A ;OUT (IO_CTC0_C0),A
@@ -93,6 +93,13 @@ mon_start_init_ctc:
;LD A,0xFF ; 55Hz ISR ;LD A,0xFF ; 55Hz ISR
;OUT (IO_CTC0_C2),A ;OUT (IO_CTC0_C2),A
;INIT PIO
LD A,0xCF
OUT (CS_PIO_AC), A
LD A,11110101b
OUT (CS_PIO_AC), A
xor a xor a
;ld i, a ;ld i, a
;im 2 ;set int mode 2 ;im 2 ;set int mode 2
@@ -144,6 +151,9 @@ mon_start_complete:
;halt ;halt
LD DE,0x40
CALL beep
;call vdp_cursor_on ;call vdp_cursor_on
call PROMPT_BEGIN call PROMPT_BEGIN
@@ -475,6 +485,7 @@ Includes:
.include "disassembler.s" .include "disassembler.s"
.include "disassembler_table.s" .include "disassembler_table.s"
.include "rst.s" .include "rst.s"
.include "beep.s"
; Strings ; Strings
STR_Banner_Start: STR_Banner_Start:
db "Z8C Monitor V2 by Dennis Gunia (2022)",0 db "Z8C Monitor V2 by Dennis Gunia (2022)",0

View File

@@ -1,271 +1,274 @@
:03000000C35000EA :03000000C35000EA
:03000800C3B60E6E :03000800C3C40E60
:03001000C3BA0E62 :03001000C3C80E54
:03001800C3C60E4E :03001800C3D40E40
:1000440000000000000000000000000000000000AC :1000440000000000000000000000000000000000AC
:10005400000000000000000000000000000000009C :10005400000000000000000000000000000000009C
:0A0064000000000000000000000092 :0A0064000000000000000000000092
:1000500031FFFFAF3204403205403E20320640CD32 :1000500031FFFF3ECFD3F63EF5D3F6AF3204403248
:100060007002214400112A400100407E022303E572 :1000600005403E20320640CD7E02214400112A4048
:10007000ED52E1C26B00CDBC0221C90ECDB102CD63 :100070000100407E022303E5ED52E1C27300CDCAC8
:100080008B0076477AD34078D341C9CDC3023E3E38 :100080000221000FCDBF02114000CDD70ECD990047
:10009000CDA902AF320040CDEA02CA9700F5F1FEC9 :1000900076477AD34078D341C9CDD1023E3ECDB721
:1000A0000DCAEE00FE0ACA9700FE08CAC800F52174 :1000A00002AF320040CDF802CAA500F5F1FE0DCA3C
:1000B000294016003A00405F193C320040F177CDEC :1000B000FC00FE0ACAA500FE08CAD600F5212940A8
:1000C000A90223AF77C397003A0040A7CA97003D23 :1000C00016003A00405F193C320040F177CDB7028C
:1000D0003200405F160021294019AF773E08CDA9B4 :1000D00023AF77C3A5003A0040A7CAA5003D320070
:1000E000023E20CDA9023E08CDA902C397003A29BD :1000E000405F160021294019AF773E08CDB7023E88
:1000F00040FE24CA2101FE3FCA4001FE21CAAA01D6 :1000F00020CDB7023E08CDB702C3A5003A2940FE85
:10010000FE69CA0F02FE6FCAE601FE64CA2B02FE38 :1001000024CA2F01FE3FCA4E01FE21CAB801FE6972
:1001100078CA150FCDC30221F40ECDB102C38B00F6 :10011000CA1D02FE6FCAF401FE64CA3902FE78CA23
:10012000C9AF322940212A40CD1603477BA7C264BC :100120004C0FCDD102212B0FCDBF02C39900C9AF17
:1001300002212C40CD16034F7BA7C264026069E9FF :10013000322940212A40CD2403477BA7C2720221E5
:10014000CDC302212A40CD1603477BA7C2640221FA :100140002C40CD24034F7BA7C272026069E9CDD158
:100150002C40CD16034F7BA7C264023A2E40FE20EE :1001500002212A40CD2403477BA7C27202212C40F2
:10016000C26402212F40CD1603F57BA7C264022191 :10016000CD24034F7BA7C272023A2E40FE20C272FA
:10017000F90ECDB102F1606947CDC3027CCDD90241 :1001700002212F40CD2403F57BA7C2720221300F4C
:100180007DCDD9023E20CDA9020E087ECDD9022315 :10018000CDBF02F1606947CDD1027CCDE7027DCDC4
:10019000050D78A7CAA40179A7CA79013E20CDA987 :10019000E7023E20CDB7020E087ECDE70223050D13
:1001A00002C38B01CDC302C38B00212A40CD1603AD :1001A00078A7CAB20179A7CA87013E20CDB702C39A
:1001B000477BA7C26402212C40CD16034F7BA7C208 :1001B0009901CDD102C39900212A40CD2403477B68
:1001C0006402212E407EFE00CAE001FE20C26402CD :1001C000A7C27202212C40CD24034F7BA7C272022A
:1001D00023CD1603027BA7C26402032323C3C501F8 :1001D000212E407EFE00CAEE01FE20C2720223CD17
:1001E000CDC302C38B00212A40CD16034F7BA7C28B :1001E0002403027BA7C27202032323C3D301CDD110
:1001F00064023A2C40FE20C26402212D40CD160339 :1001F00002C39900212A40CD24034F7BA7C272027B
:10020000F57BA7C26402F1ED79CDC302C38B002157 :100200003A2C40FE20C27202212D40CD2403F57B02
:100210002A40CD16034F7BA7C26402ED78F5CDC30B :10021000A7C27202F1ED79CDD102C39900212A4023
:1002200002F1CDD902CDC302C38B00CDC302212A76 :10022000CD24034F7BA7C27202ED78F5CDD102F148
:1002300040CD1603477BA7C26402212C40CD160394 :10023000CDE702CDD102C39900CDD102212A40CD14
:100240004F7BA7C264023A2E40FE20C26402212FD7 :100240002403477BA7C27202212C40CD24034F7B9D
:1002500040CD1603F57BA7C264026069F147CD6704 :10025000A7C272023A2E40FE20C27202212F40CD68
:1002600003C38B00CDC30221EF0ECDB102C38B00BF :100260002403F57BA7C272026069F147CD7503C311
:100270003E4FD304DB01D3043E30D3093E18D309EB :100270009900CDD10221260FCDBF02C399003E4F78
:100280003E04D3093E44D3093E05D3093EE8D309D1 :10028000D304DB01D3043E30D3093E18D3093E0426
:100290003E01D3093E04D3093E02D3093E00D309EF :10029000D3093E44D3093E05D3093EE8D3093E01C4
:1002A0003E03D3093EC1D309C9F5D308CDCE02F12F :1002A000D3093E04D3093E02D3093E00D3093E03DD
:1002B000C97EB72806CDA9022318F6C921FC02CDB4 :1002B000D3093EC1D309C9F5D308CDDC02F1C97E0B
:1002C000B102C93E0ACDA9023E0DCDA902C9973C93 :1002C000B72806CDB7022318F6C9210A03CDBF020D
:1002D000D309DB09CB4728F6C9F5C5D5CD4D037841 :1002D000C93E0ACDB7023E0DCDB702C9973CD3093E
:1002E000CDA90279CDA902D1C1F1CD0D0300AFD3C3 :1002E000DB09CB4728F6C9F5C5D5CD5B0378CDB77B
:1002F00009DB09E601CD0403C8DB08C91B5B324AF0 :1002F0000279CDB702D1C1F1CD1B0300AFD309DB29
:100300001B5B48003E05D3093E68D309C93E05D3AF :1003000009E601CD1203C8DB08C91B5B324A1B5B3F
:10031000093EEAD309C9E57ECD36033815CB27CB94 :1003100048003E05D3093E68D309C93E05D3093ECE
:1003200027CB27CB2757237ECD36033805B2E11ED6 :10032000EAD309C9E57ECD44033815CB27CB27CBCB
:1003300000C91EFFE1C9D630EA4B03FE0A3805D6D4 :1003300027CB2757237ECD44033805B2E11E00C9E1
:1003400007EA4B03FE103003E60FC937C9F51F1F3C :100340001EFFE1C9D630EA5903FE0A3805D607EA8E
:100350001F1FCD5C0347F1CD5C034FC9E60FC630CC :100350005903FE103003E60FC937C9F51F1F1F1FD1
:10036000FE3AD8C607C9C978321A412210417E32F6 :10036000CD6A0347F1CD6A034FC9E60FC630FE3AA6
:100370001441237E3215412BCD5B0478B1CA3D0474 :10037000D8C607C9C978321A412210417E321441C9
:10038000ED431241030303030A321641030A5F03DC :10038000237E3215412BCD690478B1CA4B04ED436D
:100390000A57ED531741030A3219412A1041CDA3E0 :100390001241030303030A321641030A5F030A579B
:1003A000043A1641472A10417ECDD9022310F93E66 :1003A000ED531741030A3219412A1041CDB1043AE5
:1003B00068CDA9023A1641473E0690473E20CDA996 :1003B0001641472A10417ECDE7022310F93E68CD51
:1003C000023E20CDA90210F43E20CDA902E52A1755 :1003C000B7023A1641473E0690473E20CDB7023E5F
:1003D00041CDB1023A1941B7CA3A042A1241010883 :1003D00020CDB70210F43E20CDB702E52A1741CD5B
:1003E00000093A1941477EFE01CCC904FE02CCF057 :1003E000BF023A1941B7CA48042A1241010800095C
:1003F00004FE03CC0D05FE04CC4905FE05CC5F05CB :1003F0003A1941477EFE01CCD704FE02CCFE04FE32
:10040000FE06CC6C05FE07CC8605FE08CC9305FEE7 :1004000003CC1B05FE04CC5705FE05CC6D05FE068E
:1004100009CCA805FE10CCBD05FE11CCCD05FE1201 :10041000CC7A05FE07CC9405FE08CCA105FE09CCDC
:10042000CCD505FE13CC0D06FE0ACC9F05FE80CC74 :10042000B605FE10CCCB05FE11CCDB05FE12CCE3ED
:100430002C06FE81CC23062310ACE11810CDA304BA :1004300005FE13CC1B06FE0ACCAD05FE80CC3A06A9
:100440007ECDBB0423E521780ECDB102E1CDC30200 :10044000FE81CC31062310ACE11810CDB1047ECD75
:100450003A1A413D321A41C26B03C9E52176063A88 :10045000C90423E521860ECDBF02E1CDD1023A1AAF
:1004600014414F7EFEFFCA9D04F523462B79A04F11 :10046000413D321A41C27903C9E52184063A14415B
:10047000F1B9280B06000E07097E4F092318E02367 :100470004F7EFEFFCAAB04F523462B79A04FF1B99E
:10048000234E233A154146A0B92B2B2B280B0600EF :10048000280B06000E07097E4F092318E023234E90
:100490000E07097E4F092318C6444DE1C906000E18 :10049000233A154146A0B92B2B2B280B06000E073B
:1004A00000E1C93E24CDA9027CCDD9027DCDD9027F :1004A000097E4F092318C6444DE1C906000E00E13C
:1004B0003E68CDA9023E20CDA902C9CDD9023E6831 :1004B000C93E24CDB7027CCDE7027DCDE7023E6880
:1004C000CDA9023E20CDA902C9E5ED5B1041131A6A :1004C000CDB7023E20CDB702C9CDE7023E68CDB719
:1004D0006F131A673E24CDA9027CCDD9027DCDD9F8 :1004D000023E20CDB702C9E5ED5B1041131A6F1340
:1004E000023E68CDA9023E20CDA902CD6706E1C932 :1004E0001A673E24CDB7027CCDE7027DCDE7023E00
:1004F000C5ED5B10411A1F1FE60EE521810E0600B7 :1004F00068CDB7023E20CDB702CD7506E1C9C5ED86
:100500004F09CDB1023E20CDA902E1C1C9ED5B107A :100500005B10411A1F1FE60EE5218F0E06004F09F2
:1005100041131AF5E680C22E053E24CDA9023E2BDA :10051000CDBF023E20CDB702E1C1C9ED5B10411352
:10052000CDA902F1CDD9023E68CDA90218173E240B :100520001AF5E680C23C053E24CDB7023E2BCDB77E
:10053000CDA9023E2DCDA902F1ED44CDD9023E68F0 :1005300002F1CDE7023E68CDB70218173E24CDB7D1
:10054000CDA9021800CD6706C9ED5B1041131AFE54 :10054000023E2DCDB702F1ED44CDE7023E68CDB7B6
:100550004D28063E4ECDA902C93E49CDA902C9C5C6 :10055000021800CD7506C9ED5B1041131AFE4D2837
:10056000ED5B10411AE638CDBB04C1C9C5ED5B1087 :10056000063E4ECDB702C93E49CDB702C9C5ED5BC7
:10057000411A1F1F1FE607CD42063E20CDA9023EAD :1005700010411AE638CDC904C1C9C5ED5B10411A56
:100580002CCDA902C1C9C5ED5B10411AE607CD42C9 :100580001F1F1FE607CD50063E20CDB7023E2CCDE3
:1005900006C1C9C5ED5B1041131ACDBB04C1C9E545 :10059000B702C1C9C5ED5B10411AE607CD5006C1CF
:1005A000ED5B104113131806E5ED5B1041131A6F54 :1005A000C9C5ED5B1041131ACDC904C1C9E5ED5BA6
:1005B000131A677CCDD9027DCDD902E1C9C5ED5BA7 :1005B000104113131806E5ED5B1041131A6F131A5F
:1005C00010411A1F1F1FE607CD4206C1C9E5C5ED40 :1005C000677CCDE7027DCDE702E1C9C5ED5B104157
:1005D0005B10411807E5C5ED5B1041131A1F1F1F83 :1005D0001A1F1F1FE607CD5006C1C9E5C5ED5B1008
:1005E000E606F52A10417EFEDD2809FEFD280A21D7 :1005E000411807E5C5ED5B1041131A1F1F1FE606F2
:1005F000910E180821990E180321A10EF106004F43 :1005F000F52A10417EFEDD2809FEFD280A219F0E06
:10060000097ECDA902237ECDA902C1E1C9E5C5EDD0 :10060000180821A70E180321AF0EF106004F097E2E
:100610005B10411A1F1F1FE606F52A10417E21A913 :10061000CDB702237ECDB702C1E1C9E5C5ED5B10C0
:100620000E18D9E5C52A174106021807E5C52A178D :10062000411A1F1F1FE606F52A10417E21B70E183A
:100630004106017E23A720FB05C23306CDB102C1CE :10063000D9E5C52A174106021807E5C52A1741065C
:10064000E1C9E5FE062811FE07281521910E0600D6 :10064000017E23A720FB05C24106CDBF02C1E1C93F
:100650004F097ECDA902E1C921B10ECDB102E1C998 :10065000E5FE062811FE072815219F0E06004F090A
:100660003E41CDA902E1C978FE01C83E20CDA902D4 :100660007ECDB702E1C921BF0ECDBF02E1C93E4137
:100670003E2CCDA902C900FF000001CE0A0027FFD1 :10067000CDB702E1C978FE01C83E20CDB7023E2CBD
:10068000000001990B002FFF0000019D0B00EDFF02 :10068000CDB702C900FF000001DC0A0027FF00000F
:1006900044FF02A10B003FFF000001A50B0037FF44 :1006900001A70B002FFF000001AB0B00EDFF44FF93
:1006A000000001A90B0076FF000001AD0B00F3FF75 :1006A00002AF0B003FFF000001B30B0037FF00005B
:1006B000000001B20B00FBFF000001B50B00EDFFD5 :1006B00001B70B0076FF000001BB0B00F3FF000049
:1006C00046FF02B80B00EDFF56FF02BD0B00EDFF29 :1006C00001C00B00FBFF000001C30B00EDFF46FF64
:1006D0005EFF02C20B00EBFF000001C70B0008FF2A :1006D00002C60B00EDFF56FF02CB0B00EDFF5EFFE5
:1006E000000001D10B00D9FF000001DE0B00E3FF89 :1006E00002D00B00EBFF000001D50B0008FF00005B
:1006F000000001E20B00DDFFE3FF02EE0B00FDFF57 :1006F00001DF0B00D9FF000001EC0B00E3FF00005D
:10070000E3FF02FA0B00EDFFA0FF02060C00EDFF75 :1007000001F00B00DDFFE3FF02FC0B00FDFFE3FF48
:10071000B0FF020A0C00EDFFA8FF020F0C00EDFF76 :1007100002080C00EDFFA0FF02140C00EDFFB0FF7B
:10072000B8FF02130C00EDFFA1FF02180C00EDFF53 :1007200002180C00EDFFA8FF021D0C00EDFFB8FF42
:10073000B1FF021C0C00EDFFA9FF02210C00EDFF30 :1007300002210C00EDFFA1FF02260C00EDFFB1FF2E
:10074000B9FF02250C00C3FF000003D20A0101C259 :10074000022A0C00EDFFA9FF022F0C00EDFFB9FFFC
:10075000C7000003D20A0302800118FF000002D97B :1007500002330C00C3FF000003E00A0101C2C7001E
:100760000A010338FF000002DD0A010330FF000028 :100760000003E00A0302800118FF000002E70A010B
:1007700002E40A010328FF000002EC0A010320FF43 :100770000338FF000002EB0A010330FF000002F221
:10078000000002F30A0103E9FF000002FB0A00DD9A :100780000A010328FF000002FA0A010320FF00000B
:10079000FFE9FF02040B00FDFFE9FF020D0B001053 :1007900002010B0103E9FF000002090B00DDFFE984
:1007A000FF000002160B0103CDFF0000031C0B012C :1007A000FF02120B00FDFFE9FF021B0B0010FF0010
:1007B00001C4C70000031C0B020201C9FF000001B5 :1007B0000002240B0103CDFF0000032A0B0101C43A
:1007C000220B00C0C7000001220B0102EDFF4DFF0C :1007C000C70000032A0B020201C9FF000001300B21
:1007D00002270B00EDFF45FF022C0B00C7C70000EE :1007D00000C0C7000001300B0102EDFF4DFF0235E4
:1007E00001310B01050AFF000001360B001AFF0062 :1007E0000B00EDFF45FF023A0B00C7C70000013FB9
:1007F0000001400B003AFF0000034A0B020980028F :1007F0000B01050AFF000001440B001AFF00000175
:10080000FF000001540B0012FF0000015F0B0032DB :100800004E0B003AFF000003580B02098002FF0064
:10081000FF0000036A0B020980EDFF57FF02790B0E :100810000001620B0012FF0000016D0B0032FF00AF
:1008200000EDFF5FFF02810B00EDFF47FF02890B28 :100820000003780B020980EDFF57FF02870B00EDF4
:1008300000EDFF4FFF02910B0006C7000002750B91 :10083000FF5FFF028F0B00EDFF47FF02970B00EDFC
:1008400002060840C0000001750B02060780F80090 :10084000FF4FFF029F0B0006C7000002830B02064A
:1008500000012A0C0107C6FF0000022A0C0108DD76 :100850000840C0000001830B02060780F800000179
:10086000FF86FF03320C020880FDFF86FF03410C68 :10086000380C0107C6FF000002380C0108DDFF86C6
:10087000020880C8F8000001500C01078EF8000043 :10087000FF03400C020880FDFF86FF034F0C0208B7
:1008800002500C0108DDFF8EFF03580C020880FDAA :1008800080C8F80000015E0C01078EF80000025ECF
:10089000FF8EFF03670C02088090F8000001760CC1 :100890000C0108DDFF8EFF03660C020880FDFF8E51
:1008A0000107D6FF000002760C0108DDFF96FF036A :1008A000FF03750C02088090F8000001840C01071A
:1008B0007B0C020880FDFF96FF03870C02088094E2 :1008B000D6FF000002840C0108DDFF96FF03890CBF
:1008C000F8000001930C0107DEFF000002930C0109 :1008C000020880FDFF96FF03950C02088094F80053
:1008D00008DDFF9EFF039B0C020880FDFF9EFF03C7 :1008D0000001A10C0107DEFF000002A10C0108DDF0
:1008E000A90C020880A0F8000001B70C0107E6FF80 :1008E000FF9EFF03A90C020880FDFF9EFF03B70CCB
:1008F000000002B70C0108DDFFA6FF03BC0C0208D4 :1008F000020880A0F8000001C50C0107E6FF000017
:1009000080FDFFA6FF03C80C020880B0F8000001BC :1009000002C50C0108DDFFA6FF03CA0C020880FD2A
:10091000D40C0107F6FF000002D40C0108DDFFB67D :10091000FFA6FF03D60C020880B0F8000001E20C2D
:10092000FF03D80C020880FDFFB6FF03E30C0208AA :100920000107F6FF000002E20C0108DDFFB6FF033D
:1009300080A8F8000001EE0C0107EEFF000002EEB7 :10093000E60C020880FDFFB6FF03F10C020880A858
:100940000C0108DDFFAEFF03F30C020880FDFFAED3 :10094000F8000001FC0C0107EEFF000002FC0C01A6
:10095000FF03FF0C020880B8F80000010B0D01072F :1009500008DDFFAEFF03010D020880FDFFAEFF03BF
:10096000FEFF0000020B0D0108DDFFBEFF030F0DAF :100960000D0D020880B8F8000001190D0107FEFF07
:10097000020880FDFFBEFF031A0D02088004C700B5 :10097000000002190D0108DDFFBEFF031D0D020876
:100980000001250D0110DDFF34FF032A0D02088050 :1009800080FDFFBEFF03280D02088004C7000001A0
:10099000FDFF34FF03360D02088005C70000014249 :10099000330D0110DDFF34FF03380D020880FDFF29
:1009A0000D0110DDFF35FF03470D020880FDFF3507 :1009A00034FF03440D02088005C7000001500D010B
:1009B000FF03530D02088009CF0000015F0D0111F4 :1009B00010DDFF35FF03550D020880FDFF35FF03F5
:1009C000EDFF4ACF02680D0112EDFF42CF02710D1B :1009C000610D02088009CF0000016D0D0111EDFFDE
:1009D0000112DDFF09CF027A0D0112FDFF09CF02DE :1009D0004ACF02760D0112EDFF42CF027F0D0112C8
:1009E000830D011203CF0000018C0D0111DDFF23E7 :1009E000DDFF09CF02880D0112FDFF09CF02910D35
:1009F000FF02910D00FDFF23FF029A0D000BCF00B7 :1009F000011203CF0000019A0D0111DDFF23FF0258
:100A00000001A30D0111DDFF2BFF02A80D00FDFF6A :100A00009F0D00FDFF23FF02A80D000BCF0000018A
:100A10002BFF02B10D0001CF000003BA0D031180BE :100A1000B10D0111DDFF2BFF02B60D00FDFF2BFF15
:100A200009DDFF21FF04C10D010AFDFF21FF04C9FB :100A200002BF0D0001CF000003C80D03118009DDD6
:100A30000D010A2AFF000003D10D020980EDFF4BD2 :100A3000FF21FF04CF0D010AFDFF21FF04D70D01A7
:100A4000CF04DD0D0412800A81DDFF2AFF04E80DCA :100A40000A2AFF000003DF0D020980EDFF4BCF04EF
:100A5000010AFDFF2AFF04F40D010A22FF00000332 :100A5000EB0D0412800A81DDFF2AFF04F60D010A66
:100A6000000E020A80EDFF43CF040C0E030A801231 :100A6000FDFF2AFF04020E010A22FF0000030E0E02
:100A7000DDFF22CF04160E020A80FDFF22CF0422E2 :100A7000020A80EDFF43CF041A0E030A8012DDFF45
:100A80000E020A80F9FF0000012E0E00DDFFF9FFC3 :100A800022CF04240E020A80FDFF22CF04300E0282
:100A900002380E00FDFFF9FF02420E00C5CF000034 :100A90000A80F9FF0000013C0E00DDFFF9FF02466D
:100AA000014C0E0113DDFFE5FF02520E00FDFFE5D4 :100AA0000E00FDFFF9FF02500E00C5CF0000015AF5
:100AB000FF025A0E00C1CF000001620E0113DDFFDC :100AB0000E0113DDFFE5FF02600E00FDFFE5FF0202
:100AC000E1FF02680E00FDFFE1FF02700E004E4FD5 :100AC000680E00C1CF000001700E0113DDFFE1FFD1
:100AD00050004A5020002C20004A5220004A522048 :100AD00002760E00FDFFE1FF027E0E004E4F500039
:100AE000432C20004A52204E432C20004A52205AC8 :100AE0004A5020002C20004A5220004A5220432C19
:100AF0002C20004A52204E5A2C20004A50202848D0 :100AF00020004A52204E432C20004A52205A2C20DB
:100B00004C2920004A50202849582920004A5020CA :100B0000004A52204E5A2C20004A502028484C2996
:100B1000284959292000444A4E5A200043414C4C50 :100B100020004A50202849582920004A50202849BE
:100B20002000524554200052455449005245544E2D :100B200059292000444A4E5A200043414C4C200091
:100B30000052535420004C4420412C2842432900A9 :100B3000524554200052455449005245544E0052EB
:100B40004C4420412C28444529004C4420412C2869 :100B4000535420004C4420412C28424329004C445B
:100B5000006829004C4420284243292C2041004CA5 :100B500020412C28444529004C4420412C28006881
:100B60004420284445292C2041004C44202800687A :100B600029004C4420284243292C2041004C442099
:100B7000292C2041004C4420004C4420412C204989 :100B7000284445292C2041004C4420280068292C79
:100B8000004C4420412C2052004C4420492C204150 :100B80002041004C4420004C4420412C2049004C82
:100B9000004C4420522C2041004441410043504C21 :100B90004420412C2052004C4420492C2041004C40
:100BA000004E454700434346005343460048414CEE :100BA0004420522C2041004441410043504C004E0F
:100BB0005400444900454900494D203000494D202A :100BB000454700434346005343460048414C5400D8
:100BC0003100494D20320045582044452C20484CE6 :100BC000444900454900494D203000494D2031003D
:100BD0000045582041462C204146E280B20045584D :100BD000494D20320045582044452C20484C0045C2
:100BE0005800455820285350292C20484C0045587F :100BE000582041462C204146E280B200455858002A
:100BF00020285350292C204958004558202853506C :100BF000455820285350292C20484C00455820287F
:100C0000292C204959004C4449004C444952004C7D :100C00005350292C20495800455820285350292C4E
:100C10004444004C4444520043504900435049521C :100C1000204959004C4449004C444952004C44443A
:100C20000043504400435044520041444420412C6E :100C2000004C444452004350490043504952004351
:100C3000200041444420412C202849582B00682999 :100C3000504400435044520041444420412C200081
:100C40000041444420412C202849592B00682900A8 :100C400041444420412C202849582B006829004168
:100C500041444320412C200041444320412C202882 :100C5000444420412C202849592B00682900414454
:100C600049582B0068290041444320412C20284941 :100C60004320412C200041444320412C2028495856
:100C7000592B006829005355422000535542202823 :100C70002B0068290041444320412C202849592B4E
:100C800049582B00682900535542202849592B0008 :100C800000682900535542200053554220284958F6
:100C900068290053424320412C2000534243204105 :100C90002B00682900535542202849592B00682908
:100CA0002C2849582B0068290053424320412C2806 :100CA0000053424320412C200053424320412C2832
:100CB00049592B00682900414E442000414E4420F0 :100CB00049582B0068290053424320412C284959A8
:100CC0002849582B00682900414E44202849592BB7 :100CC0002B00682900414E442000414E4420284911
:100CD000006829004F5220004F52202849582B000D :100CD000582B00682900414E44202849592B0068B0
:100CE0006829004F52202849592B00682900584F85 :100CE00029004F5220004F52202849582B006829D4
:100CF000522000584F52202849582B00682900588C :100CF000004F52202849592B00682900584F522094
:100D00004F52202849592B006829004350200043A6 :100D000000584F52202849582B00682900584F524C
:100D100050202849582B0068290043502028495961 :100D1000202849592B0068290043502000435020C7
:100D20002B00682900494E432000494E43202849A2 :100D20002849582B006829004350202849592B0096
:100D3000582B00682900494E43202849592B006848 :100D3000682900494E432000494E43202849582B3A
:100D400029004445432000444543202849582B00AE :100D400000682900494E43202849592B0068290092
:100D5000682900444543202849592B00682900414F :100D50004445432000444543202849582B00682936
:100D6000444420484C2C200041444320484C2C2033 :100D600000444543202849592B0068290041444448
:100D70000053424320484C2C200041444420495811 :100D700020484C2C200041444320484C2C20005358
:100D80002C20004144442049592C2000494E432046 :100D8000424320484C2C20004144442049582C2008
:100D900000494E432049582C2000494E43204959D0 :100D9000004144442049592C2000494E4320004939
:100DA0002C200044454320004445432049582C2032 :100DA0004E432049582C2000494E432049592C20BD
:100DB000004445432049592C20004C4420002C205D :100DB0000044454320004445432049582C2000442A
:100DC000004C442049582C20004C442049592C20E8 :100DC00045432049592C20004C4420002C20004C45
:100DD000004C4420484C2C2028006829004C44201A :100DD000442049582C20004C442049592C20004CD8
:100DE000002C2028006829004C442049582C202839 :100DE0004420484C2C2028006829004C4420002C2A
:100DF000006829004C442049592C2028006829000B :100DF0002028006829004C442049582C20280068ED
:100E00004C4420280068292C20484C004C442028C1 :100E000029004C442049592C2028006829004C44D2
:100E10000068292C20004C4420280068292C2049F7 :100E100020280068292C20484C004C4420280068D9
:100E200058004C4420280068292C204959004C4483 :100E2000292C20004C4420280068292C20495800F7
:100E30002053502C20484C004C442053502C204927 :100E30004C4420280068292C204959004C44205358
:100E400058004C442053502C2049590050555348C9 :100E4000502C20484C004C442053502C2049580032
:100E500020005055534820495800505553482049C8 :100E50004C442053502C20495900505553482000F1
:100E600059005055534820005055534820495800C8 :100E6000505553482049580050555348204959007F
:100E700050555348204959002E3F2E002020202055 :100E7000505553482000505553482049580050556C
:100E8000004E5A5A004E434300504F504550004DBB :100E80005348204959002E3F2E0020202020004E9C
:100E90000042434445484C5350424344454958530B :100E90005A5A004E434300504F504550004D0042B7
:100EA00050424344454959535042434445484C41BC :100EA000434445484C5350424344454958535042AB
:100EB0004628484C2900CDA902C9C5D5E5CDEA028E :100EB0004344454959535042434445484C414628D0
:100EC000F5F1E1D1C1C93E00C95A3843204D6F6EDA :100EC000484C2900CDB702C9C5D5E5CDF802F5F1EA
:100ED00069746F722056322062792044656E6E69A3 :100ED000E1D1C1C93E00C93E08D3F4012800CDF1DB
:100EE000732047756E6961202832303232290073D1 :100EE0000E3E00D3F4012400CDF10E1B7AB320E7AF
:100EF000796E3F00636D643F0042415345203020CE :100EF000C9ED44ED44ED44ED440B79B0C2F10EC9A7
:100F00002031202032202033202034202035202082 :100F00005A3843204D6F6E69746F722056322062DA
:100F10003620203700CD04033EA7D3063E0ED3066D :100F1000792044656E6E69732047756E696120287B
:100F20003E00D30421F50F22044221000022FC40A0 :100F200032303232290073796E3F00636D643F00C6
:100F300022FE403E42ED47ED5E217010CDB102FB36 :100F300042415345203020203120203220203320D0
:100F4000CDA6103E43CD4610CD1910DA430FFE0456 :100F4000203420203520203620203700CD12033ECB
:100F5000CAAC0FFE18CA430FFE01CA600FC3B40F1C :100F5000A7D3063E0ED3063E00D304212C10220454
:100F6000CD1910DA98104732FB40CD1910DA9810DD :100F60004221000022FC4022FE403E42ED47ED5E61
:100F700080FEFFC2B40F3D781FE67F67783D0FE625 :100F700021A710CDBF02FBCDDD103E43CD7D10CDAE
:100F8000806F1100441906800E00E5CD1910DA9823 :100F80005010DA7A0FFE04CAE30FFE18CA7A0FFE79
:100F900010E177230C05C28A0FCD1910DA9810578B :100F900001CA970FC3EB0FCD5010DACF104732FBC9
:100FA0000CCD1910DA98105F0CC38A103E06CD469E :100FA00040CD5010DACF1080FEFFC2EB0F3D781F0E
:100FB00010C3EE0F3E18CD46103E18CD46103E1819 :100FB000E67F67783D0FE6806F1100441906800ECA
:100FC000CD46103E18CD46103E18CD46103E18CDE9 :100FC00000E5CD5010DACF10E177230C05C2C10F38
:100FD00046103E18CD46103E18CD46103E18CD4660 :100FD000CD5010DACF10570CCD5010DACF105F0C77
:100FE000103E18CD46103E18215710CDB102F3CD5A :100FE000C3C1103E06CD7D10C325103E18CD7D1027
:100FF000C302C38B00F308D92AFC402322FC401112 :100FF0003E18CD7D103E18CD7D103E18CD7D103EA3
:101000000404ED52C2141021000022FC402AFE40CC :1010000018CD7D103E18CD7D103E18CD7D103E18B8
:101010002322FE4008D9FBED4DF321000022FC40C5 :10101000CD7D103E18CD7D103E18CD7D103E18219F
:1010200022FE40FBCD0D032AFE407DFE03CA441084 :101020008E10CDBF02F3CDD102C39900F308D92AA7
:10103000AFD309DB09E601CA2710DB08F5CD0403AD :10103000FC402322FC40110404ED52C24B1021005D
:10104000F1373FC937C9D308CD4C10C9973CD309F4 :101040000022FC402AFE402322FE4008D9FBED4D41
:10105000DB09CB4728F6C94572726F723A20756E6C :10105000F321000022FC4022FE40FBCD1B032AFEB0
:10106000657870656374656420627974650D0A0043 :10106000407DFE03CA7B10AFD309DB09E601CA5EEF
:10107000417761697420786D6F64656D20636F6E70 :1010700010DB08F5CD1203F1373FC937C9D308CDCE
:101080006E656374696F6E0D0A003E06CD4610CD25 :101080008310C9973CD309DB09CB4728F6C94572C1
:101090001910DA8A10C34E0F3E15CD4610CD191027 :10109000726F723A20756E6578706563746564204E
:1010A000DA9810C34E0F21FF00010100000000007C :1010A000627974650D0A00417761697420786D6F0B
:0510B000ED42C818F735 :1010B00064656D20636F6E6E656374696F6E0D0A93
:1010C000003E06CD7D10CD5010DAC110C3850F3E15
:1010D00015CD7D10CD5010DACF10C3850F21FF0044
:0C10E00001010000000000ED42C818F7FC
:00000001FF :00000001FF

File diff suppressed because it is too large Load Diff

View File

@@ -1,235 +1,237 @@
;This file is generated by the build script. ;This file is generated by the build script.
;Do not make any changes here! ;Do not make any changes here!
AY0_WRITE_REG equ 0x83 AY0_WRITE_REG equ 0x91
A_RTS_OFF equ 0x304 A_RTS_OFF equ 0x312
A_RTS_ON equ 0x30D A_RTS_ON equ 0x31B
CMD_DASM equ 0x22B CMD_DASM equ 0x239
CMD_EXEC equ 0x121 CMD_EXEC equ 0x12F
CMD_IO_READ equ 0x20F CMD_IO_READ equ 0x21D
CMD_IO_WRITE equ 0x1E6 CMD_IO_WRITE equ 0x1F4
CMD_SET equ 0x1AA CMD_SET equ 0x1B8
CMD_SET_END equ 0x1E0 CMD_SET_END equ 0x1EE
CMD_SET_LOOP equ 0x1C5 CMD_SET_LOOP equ 0x1D3
CMD_SYNTAX_ERROR equ 0x264 CMD_SYNTAX_ERROR equ 0x272
CMD_VIEW equ 0x140 CMD_VIEW equ 0x14E
CMD_VIEW_END equ 0x1A4 CMD_VIEW_END equ 0x1B2
CMD_VIEW_ROW equ 0x179 CMD_VIEW_ROW equ 0x187
CMD_VIEW_ROW_LOOP equ 0x18B CMD_VIEW_ROW_LOOP equ 0x199
CONSOLE_INIT equ 0x270 CONSOLE_INIT equ 0x27E
CONSOLE_INIT_CTC equ 0x270 CONSOLE_INIT_CTC equ 0x27E
CONSOLE_INIT_SIO equ 0x278 CONSOLE_INIT_SIO equ 0x286
DHEX_TO_BYTE equ 0x316 DHEX_TO_BYTE equ 0x324
DHEX_TO_BYTE_FAILED equ 0x332 DHEX_TO_BYTE_FAILED equ 0x340
EXEC_RST_08 equ 0xEB6 EXEC_RST_08 equ 0xEC4
EXEC_RST_10 equ 0xEBA EXEC_RST_10 equ 0xEC8
EXEC_RST_18 equ 0xEC6 EXEC_RST_18 equ 0xED4
HEX_TO_BIN equ 0x336 HEX_TO_BIN equ 0x344
HEX_TO_BIN_2 equ 0x344 HEX_TO_BIN_2 equ 0x352
HEX_TO_INVALID_2 equ 0x34B HEX_TO_INVALID_2 equ 0x359
INT_VEC equ 0x1B INT_VEC equ 0x1B
Includes equ 0x270 Includes equ 0x27E
MSG_CLEAR equ 0x2FC MSG_CLEAR equ 0x30A
MSG_ERROR equ 0x1057 MSG_ERROR equ 0x108E
MSG_START equ 0x1070 MSG_START equ 0x10A7
PROMPT_BEGIN equ 0x8B PROMPT_BEGIN equ 0x99
PROMPT_BEGIN_READ_BACKSPACE equ 0xC8 PROMPT_BEGIN_READ_BACKSPACE equ 0xD6
PROMPT_BEGIN_READ_LOOP equ 0x97 PROMPT_BEGIN_READ_LOOP equ 0xA5
PROMPT_BEGIN_READ_PROCESS equ 0xEE PROMPT_BEGIN_READ_PROCESS equ 0xFC
RST_00 equ 0x00 RST_00 equ 0x00
RST_08 equ 0x08 RST_08 equ 0x08
RST_10 equ 0x10 RST_10 equ 0x10
RST_18 equ 0x18 RST_18 equ 0x18
STRCONV_BYTES_TO_HEX equ 0x34D STRCONV_BYTES_TO_HEX equ 0x35B
STRCONV_BYTES_TO_HEX_1 equ 0x35C STRCONV_BYTES_TO_HEX_1 equ 0x36A
STRCONV_BYTES_TO_HEX_2 equ 0x366 STRCONV_BYTES_TO_HEX_2 equ 0x374
STR_Banner_Start equ 0xEC9 STR_Banner_Start equ 0xF00
STR_HEXDUMP_HEADER equ 0xEF9 STR_HEXDUMP_HEADER equ 0xF30
STR_SyntaxError equ 0xEEF STR_SyntaxError equ 0xF26
STR_Unknown equ 0xEF4 STR_Unknown equ 0xF2B
dasm_00 equ 0xACE beep equ 0xED7
dasm_01 equ 0xDBA beep_pause equ 0xEF1
dasm_02 equ 0xB54 dasm_00 equ 0xADC
dasm_03 equ 0xD8C dasm_01 equ 0xDC8
dasm_08 equ 0xBD1 dasm_02 equ 0xB62
dasm_09 equ 0xD5F dasm_03 equ 0xD9A
dasm_0A equ 0xB36 dasm_08 equ 0xBDF
dasm_0B equ 0xDA3 dasm_09 equ 0xD6D
dasm_10 equ 0xB16 dasm_0A equ 0xB44
dasm_12 equ 0xB5F dasm_0B equ 0xDB1
dasm_18 equ 0xAD9 dasm_10 equ 0xB24
dasm_1A equ 0xB40 dasm_12 equ 0xB6D
dasm_20 equ 0xAF3 dasm_18 equ 0xAE7
dasm_22 equ 0xE00 dasm_1A equ 0xB4E
dasm_27 equ 0xB99 dasm_20 equ 0xB01
dasm_28 equ 0xAEC dasm_22 equ 0xE0E
dasm_2A equ 0xDD1 dasm_27 equ 0xBA7
dasm_2F equ 0xB9D dasm_28 equ 0xAFA
dasm_30 equ 0xAE4 dasm_2A equ 0xDDF
dasm_32 equ 0xB6A dasm_2F equ 0xBAB
dasm_37 equ 0xBA9 dasm_30 equ 0xAF2
dasm_38 equ 0xADD dasm_32 equ 0xB78
dasm_3A equ 0xB4A dasm_37 equ 0xBB7
dasm_3F equ 0xBA5 dasm_38 equ 0xAEB
dasm_76 equ 0xBAD dasm_3A equ 0xB58
dasm_80C6 equ 0xC2A dasm_3F equ 0xBB3
dasm_BE equ 0xBC7 dasm_76 equ 0xBBB
dasm_C3 equ 0xAD2 dasm_80C6 equ 0xC38
dasm_C88E equ 0xC50 dasm_BE equ 0xBD5
dasm_C9 equ 0xB22 dasm_C3 equ 0xAE0
dasm_CD equ 0xB1C dasm_C88E equ 0xC5E
dasm_D9 equ 0xBDE dasm_C9 equ 0xB30
dasm_DD equ 0xB04 dasm_CD equ 0xB2A
dasm_DD_01 equ 0xDC1 dasm_D9 equ 0xBEC
dasm_DD_09 equ 0xD7A dasm_DD equ 0xB12
dasm_DD_22 equ 0xE16 dasm_DD_01 equ 0xDCF
dasm_DD_23 equ 0xD91 dasm_DD_09 equ 0xD88
dasm_DD_2A equ 0xDE8 dasm_DD_22 equ 0xE24
dasm_DD_2B equ 0xDA8 dasm_DD_23 equ 0xD9F
dasm_DD_34 equ 0xD2A dasm_DD_2A equ 0xDF6
dasm_DD_35 equ 0xD47 dasm_DD_2B equ 0xDB6
dasm_DD_86 equ 0xC32 dasm_DD_34 equ 0xD38
dasm_DD_8E equ 0xC58 dasm_DD_35 equ 0xD55
dasm_DD_96 equ 0xC7B dasm_DD_86 equ 0xC40
dasm_DD_9E equ 0xC9B dasm_DD_8E equ 0xC66
dasm_DD_A6 equ 0xCBC dasm_DD_96 equ 0xC89
dasm_DD_AE equ 0xCF3 dasm_DD_9E equ 0xCA9
dasm_DD_B6 equ 0xCD8 dasm_DD_A6 equ 0xCCA
dasm_DD_BE equ 0xD0F dasm_DD_AE equ 0xD01
dasm_DD_E1 equ 0xE68 dasm_DD_B6 equ 0xCE6
dasm_DD_E3 equ 0xBEE dasm_DD_BE equ 0xD1D
dasm_DD_E5 equ 0xE52 dasm_DD_E1 equ 0xE76
dasm_DD_F9 equ 0xE38 dasm_DD_E3 equ 0xBFC
dasm_E1 equ 0xE62 dasm_DD_E5 equ 0xE60
dasm_E3 equ 0xBE2 dasm_DD_F9 equ 0xE46
dasm_E5 equ 0xE4C dasm_E1 equ 0xE70
dasm_E9 equ 0xAFB dasm_E3 equ 0xBF0
dasm_ED_42 equ 0xD71 dasm_E5 equ 0xE5A
dasm_ED_43 equ 0xE0C dasm_E9 equ 0xB09
dasm_ED_44 equ 0xBA1 dasm_ED_42 equ 0xD7F
dasm_ED_45 equ 0xB2C dasm_ED_43 equ 0xE1A
dasm_ED_46 equ 0xBB8 dasm_ED_44 equ 0xBAF
dasm_ED_4A equ 0xD68 dasm_ED_45 equ 0xB3A
dasm_ED_4B equ 0xDDD dasm_ED_46 equ 0xBC6
dasm_ED_4D equ 0xB27 dasm_ED_4A equ 0xD76
dasm_ED_56 equ 0xBBD dasm_ED_4B equ 0xDEB
dasm_ED_5E equ 0xBC2 dasm_ED_4D equ 0xB35
dasm_ED_A0 equ 0xC06 dasm_ED_56 equ 0xBCB
dasm_ED_A1 equ 0xC18 dasm_ED_5E equ 0xBD0
dasm_ED_A8 equ 0xC0F dasm_ED_A0 equ 0xC14
dasm_ED_A9 equ 0xC21 dasm_ED_A1 equ 0xC26
dasm_ED_B0 equ 0xC0A dasm_ED_A8 equ 0xC1D
dasm_ED_B1 equ 0xC1C dasm_ED_A9 equ 0xC2F
dasm_ED_B8 equ 0xC13 dasm_ED_B0 equ 0xC18
dasm_ED_B9 equ 0xC25 dasm_ED_B1 equ 0xC2A
dasm_F3 equ 0xBB2 dasm_ED_B8 equ 0xC21
dasm_F9 equ 0xE2E dasm_ED_B9 equ 0xC33
dasm_FB equ 0xBB5 dasm_F3 equ 0xBC0
dasm_FD equ 0xB0D dasm_F9 equ 0xE3C
dasm_FD_01 equ 0xDC9 dasm_FB equ 0xBC3
dasm_FD_09 equ 0xD83 dasm_FD equ 0xB1B
dasm_FD_22 equ 0xE22 dasm_FD_01 equ 0xDD7
dasm_FD_23 equ 0xD9A dasm_FD_09 equ 0xD91
dasm_FD_2A equ 0xDF4 dasm_FD_22 equ 0xE30
dasm_FD_2B equ 0xDB1 dasm_FD_23 equ 0xDA8
dasm_FD_34 equ 0xD36 dasm_FD_2A equ 0xE02
dasm_FD_35 equ 0xD53 dasm_FD_2B equ 0xDBF
dasm_FD_86 equ 0xC41 dasm_FD_34 equ 0xD44
dasm_FD_8E equ 0xC67 dasm_FD_35 equ 0xD61
dasm_FD_96 equ 0xC87 dasm_FD_86 equ 0xC4F
dasm_FD_9E equ 0xCA9 dasm_FD_8E equ 0xC75
dasm_FD_A6 equ 0xCC8 dasm_FD_96 equ 0xC95
dasm_FD_AE equ 0xCFF dasm_FD_9E equ 0xCB7
dasm_FD_B6 equ 0xCE3 dasm_FD_A6 equ 0xCD6
dasm_FD_BE equ 0xD1A dasm_FD_AE equ 0xD0D
dasm_FD_E1 equ 0xE70 dasm_FD_B6 equ 0xCF1
dasm_FD_E3 equ 0xBFA dasm_FD_BE equ 0xD28
dasm_FD_E5 equ 0xE5A dasm_FD_E1 equ 0xE7E
dasm_FD_F9 equ 0xE42 dasm_FD_E3 equ 0xC08
dasm_FF equ 0xB31 dasm_FD_E5 equ 0xE68
dasm_UU equ 0xE78 dasm_FD_F9 equ 0xE50
dasm_UW equ 0xE7C dasm_FF equ 0xB3F
dasm__AND equ 0xCB7 dasm_UU equ 0xE86
dasm__CP equ 0xD0B dasm_UW equ 0xE8A
dasm__DEC equ 0xD42 dasm__AND equ 0xCC5
dasm__ED_47 equ 0xB89 dasm__CP equ 0xD19
dasm__ED_4F equ 0xB91 dasm__DEC equ 0xD50
dasm__ED_57 equ 0xB79 dasm__ED_47 equ 0xB97
dasm__ED_5F equ 0xB81 dasm__ED_4F equ 0xB9F
dasm__INC equ 0xD25 dasm__ED_57 equ 0xB87
dasm__LD equ 0xB75 dasm__ED_5F equ 0xB8F
dasm__OR equ 0xCD4 dasm__INC equ 0xD33
dasm__SBC equ 0xC93 dasm__LD equ 0xB83
dasm__SUB equ 0xC76 dasm__OR equ 0xCE2
dasm__XOR equ 0xCEE dasm__SBC equ 0xCA1
dasm_opcode_table equ 0x676 dasm__SUB equ 0xC84
dasm_print16hex_addr equ 0x4A3 dasm__XOR equ 0xCFC
dasm_print8hex equ 0x4BB dasm_opcode_table equ 0x684
dasm_printFlags_table equ 0xE81 dasm_print16hex_addr equ 0x4B1
dasm_printRegister8_table equ 0xE91 dasm_print8hex equ 0x4C9
dasm_printRegister8_table_HL equ 0xEB1 dasm_printFlags_table equ 0xE8F
dasm_printRegisterIX_table equ 0xE99 dasm_printRegister8_table equ 0xE9F
dasm_printRegisterIY_table equ 0xEA1 dasm_printRegister8_table_HL equ 0xEBF
dasm_printRegisterSP_table equ 0xEA9 dasm_printRegisterIX_table equ 0xEA7
disassemble equ 0x367 dasm_printRegisterIY_table equ 0xEAF
disassemble_continue equ 0x44D dasm_printRegisterSP_table equ 0xEB7
disassemble_err equ 0x43D disassemble equ 0x375
disassemble_next equ 0x36B disassemble_continue equ 0x45B
disassemble_print_opcode_params_end equ 0x43A disassemble_err equ 0x44B
disassemble_print_opcode_params_loop equ 0x3E6 disassemble_next equ 0x379
disassemble_print_opcode_raw equ 0x3A8 disassemble_print_opcode_params_end equ 0x448
disassemble_print_opcode_raw_fill equ 0x3BC disassemble_print_opcode_params_loop equ 0x3F4
disassemble_table_first_match equ 0x47F disassemble_print_opcode_raw equ 0x3B6
disassemble_table_found equ 0x499 disassemble_print_opcode_raw_fill equ 0x3CA
disassemble_table_notfound equ 0x49D disassemble_table_first_match equ 0x48D
disassemble_table_seek equ 0x45B disassemble_table_found equ 0x4A7
disassemble_table_seek_loop equ 0x45F disassemble_table_notfound equ 0x4AB
mon_start_complete equ 0x76 disassemble_table_seek equ 0x469
disassemble_table_seek_loop equ 0x46D
mon_start_complete equ 0x7E
mon_start_init_ctc equ 0x50 mon_start_init_ctc equ 0x50
mon_start_init_serial equ 0x5F mon_start_init_serial equ 0x67
mon_start_init_sound equ 0x50 mon_start_init_sound equ 0x50
mon_start_ram equ 0x62 mon_start_ram equ 0x6A
mon_start_ram_loop equ 0x6B mon_start_ram_loop equ 0x73
mon_var_template equ 0x44 mon_var_template equ 0x44
mon_var_template_end equ 0x402A mon_var_template_end equ 0x402A
param_01 equ 0x4C9 param_01 equ 0x4D7
param_02 equ 0x4F0 param_02 equ 0x4FE
param_03 equ 0x50D param_03 equ 0x51B
param_03_done equ 0x545 param_03_done equ 0x553
param_03_neg equ 0x52E param_03_neg equ 0x53C
param_04 equ 0x549 param_04 equ 0x557
param_04_i equ 0x559 param_04_i equ 0x567
param_05 equ 0x55F param_05 equ 0x56D
param_06 equ 0x56C param_06 equ 0x57A
param_07 equ 0x586 param_07 equ 0x594
param_08 equ 0x593 param_08 equ 0x5A1
param_09 equ 0x5A8 param_09 equ 0x5B6
param_09_0A equ 0x5AE param_09_0A equ 0x5BC
param_0A equ 0x59F param_0A equ 0x5AD
param_10 equ 0x5BD param_10 equ 0x5CB
param_11 equ 0x5CD param_11 equ 0x5DB
param_11_12 equ 0x5DC param_11_12 equ 0x5EA
param_11_12_all equ 0x5FC param_11_12_all equ 0x60A
param_11_12_def equ 0x5EF param_11_12_def equ 0x5FD
param_11_12_ix equ 0x5F4 param_11_12_ix equ 0x602
param_11_12_iy equ 0x5F9 param_11_12_iy equ 0x607
param_12 equ 0x5D5 param_12 equ 0x5E3
param_13 equ 0x60D param_13 equ 0x61B
param_80 equ 0x62C param_80 equ 0x63A
param_80_seek equ 0x633 param_80_seek equ 0x641
param_81 equ 0x623 param_81 equ 0x631
param_comma equ 0x667 param_comma equ 0x675
param_printRegister equ 0x642 param_printRegister equ 0x650
param_printRegisterA equ 0x660 param_printRegisterA equ 0x66E
param_printRegisterHL equ 0x658 param_printRegisterHL equ 0x666
print_a_hex equ 0x2D9 print_a_hex equ 0x2E7
print_char equ 0x2A9 print_char equ 0x2B7
print_clear equ 0x2BC print_clear equ 0x2CA
print_newLine equ 0x2C3 print_newLine equ 0x2D1
print_str equ 0x2B1 print_str equ 0x2BF
print_str_end equ 0x2BB print_str_end equ 0x2C9
print_wait_out equ 0x2CE print_wait_out equ 0x2DC
read_char equ 0x2EA read_char equ 0x2F8
var_buffer equ 0x4029 var_buffer equ 0x4029
var_buffer_len equ 0x4000 var_buffer_len equ 0x4000
var_curserchar equ 0x4006 var_curserchar equ 0x4006
@@ -241,23 +243,23 @@ var_cursery equ 0x4003
var_last_char equ 0x4001 var_last_char equ 0x4001
var_ps2mem equ 0x4019 var_ps2mem equ 0x4019
var_scratch equ 0x4009 var_scratch equ 0x4009
xmodem_ack equ 0x108A xmodem_ack equ 0x10C1
xmodem_await_conn equ 0xF43 xmodem_await_conn equ 0xF7A
xmodem_end equ 0xFEE xmodem_end equ 0x1025
xmodem_err equ 0xFB4 xmodem_err equ 0xFEB
xmodem_init equ 0xF15 xmodem_init equ 0xF4C
xmodem_int equ 0xFF5 xmodem_int equ 0x102C
xmodem_int_cont equ 0x1014 xmodem_int_cont equ 0x104B
xmodem_nak equ 0x1098 xmodem_nak equ 0x10CF
xmodem_out equ 0x1046 xmodem_out equ 0x107D
xmodem_packet equ 0xF4E xmodem_packet equ 0xF85
xmodem_packet_EOT equ 0xFAC xmodem_packet_EOT equ 0xFE3
xmodem_packet_get equ 0xF60 xmodem_packet_get equ 0xF97
xmodem_packet_get_crc equ 0xF99 xmodem_packet_get_crc equ 0xFD0
xmodem_packet_get_data equ 0xF8A xmodem_packet_get_data equ 0xFC1
xmodem_read_wait equ 0x1019 xmodem_read_wait equ 0x1050
xmodem_read_wait_loop equ 0x1027 xmodem_read_wait_loop equ 0x105E
xmodem_read_wait_timeout equ 0x1044 xmodem_read_wait_timeout equ 0x107B
xmodem_wait equ 0x10A6 xmodem_wait equ 0x10DD
xmodem_wait_1 equ 0x10AC xmodem_wait_1 equ 0x10E3
xmodem_wait_out equ 0x104C xmodem_wait_out equ 0x1083

View File

@@ -0,0 +1,34 @@
regdump:
PUSH BC
PUSH DE
PUSH HL
PUSH AF
CALL PRINTINLINE
defb "REGDUMP",10,13,"A: 0x",0
call print_a_hex
CALL PRINTINLINE
defb " F: 0x",0
POP BC
PUSH BC
LD A,C
call print_a_hex
CALL PRINTINLINE
defb 13,10,"BC: 0x",0
ld a,b
call print_a_hex
ld a,c
call print_a_hex
CALL PRINTINLINE
defb 13,10,0
POP AF
POP HL
POP DE
POP BC

View File

@@ -1,10 +1,327 @@
.include "extern_symbols.s" ;include monitor symbols. .include "extern_symbols.s" ;include monitor symbols.
org 0x8000 org 0xB000
CS_PIO_BD .EQU 0xF5
CS_PIO_BC .EQU 0xF7
CS_PIO_AD .EQU 0xF4
CS_PIO_AC .EQU 0xF6
CS_I2C_S1 .EQU 0xF3
CS_I2C_SX .EQU 0xF2
IIC_RTC equ 11010000b
IIC_INIT:
LD A,0xCF
OUT (CS_PIO_AC), A
LD A,11110101b
OUT (CS_PIO_AC), A
LD A,00000000b ; Reset PCF8584 minimum 30 clock cycles
OUT (CS_PIO_AD), A
LD BC,0x1000
CALL PAUSE_LOOP
LD A,0000010b
OUT (CS_PIO_AD), A
NOP
NOP
NOP
LD A, 0x80 ;S1 -> Select S0, PIN disabled, ESO = 0, Interrupt disabled, STA, STA, ACK = 0
OUT (CS_I2C_S1),A
CALL SlowAccess
CALL SlowAccess
LD A,0x55 ;S0 -> Loads byte 55H into register S0'; effective own address becomes AAH
OUT (CS_I2C_SX),A
CALL SlowAccess
LD A, 0xA0 ;S1 -> Loads byte A0H into register S1, i.e. next byte will be loaded into the clock control register S2.
OUT (CS_I2C_S1),A
CALL SlowAccess
LD A,0x00 ;Load 18H into S2 register (clock control - 8 MHz, 90 KHz)
OUT (CS_I2C_SX),A
CALL SlowAccess
LD A,0xC1 ;S1 -> loads byte C1H into register S1; register enable
;serial interface, set I 2C-bus into idle mode;
;SDA and SCL are HIGH. The next write or read
;operation will be to/from data transfer register
;S0 if A0 = LOW.;
OUT (CS_I2C_S1),A
CALL SlowAccess
;CALL force_stop
JP PROMPT_BEGIN
LD BC,$0100
CALL PAUSE_LOOP
; Send test message to RTC
LD DE, 0xC000 ; Set I2C Buffer Location
LD A,0x00
LD (DE),A
;call regdump
LD B, IIC_RTC ; Set I2C Address
LD A, 1 ; Set I2C Buffer length
call i2c_send
LD DE, 0xC010
LD B, IIC_RTC
LD A, 7
call i2c_read
LD A,4
LD B,5
ADD A,b
LD (0x8010),A
JP PROMPT_BEGIN JP PROMPT_BEGIN
;CLK_ENABLE:
; LD DE, 0xC000 ; Set I2C Buffer Location
; LD A,0x00
; LD (0xC000),A
; LD (0xC001),A
; ;call regdump
;
; LD B, IIC_RTC ; Set I2C Address
; LD A, 2 ; Set I2C Buffer length
; call i2c_send
; JP PROMPT_BEGIN
;------------------------------------------------------------------------------
; i2c_send
;
; Sends data over the i2c bus
; A contains BYTE COUNTER
; B contains ADDRESS
; DE contains location of Data Buffer
;------------------------------------------------------------------------------
i2c_send:
; CALL PRINTINLINE;
; defb "SEND A",10,13,0
PUSH BC
PUSH AF
CALL i2c_bus_rdy
; CALL PRINTINLINE
; defb "SEND START",10,13,0
LD A,B ;Load 'slave address' into S0 register:
OUT (CS_I2C_SX),A
CALL SlowAccess
LD A, 0xC5 ;Load C5H into S1. 'C5H' = PCF8584 generates
;the 'START' condition and clocks out the slave
;address and the clock pulse for slave acknowledgement.
OUT (CS_I2C_S1),A
POP AF
LD C,A
INC C
i2c_send_1: ; LOOP 1 : Wait for bus ready
IN A,(CS_I2C_S1) ; Read byte from S1 register
BIT 7,A ; Is bus free? (S1 ~BB=1?)
JR NZ,i2c_send_1 ; No - loop
BIT 4,A ; slave acknowledged? (LRB = 0?)
JR NZ, i2c_send_stop ; if not, cancel transmission
LD A,(DE) ; Load next byte from buffer
INC DE
DEC C
JR Z, i2c_send_stop ; if counter = 0, exit loop
OUT (CS_I2C_SX),A ; Send byte
JR i2c_send_1 ; if counter > 0, loop again
i2c_send_stop:
LD A, 0xC3 ;STOP
OUT (CS_I2C_S1),A
CALL SlowAccess
POP BC
RET
;------------------------------------------------------------------------------
; i2c_read
;
; Sends data over the i2c bus
; A contains BYTE COUNTER
; B contains ADDRESS
; DE contains location of Data Buffer
;------------------------------------------------------------------------------
i2c_read:
PUSH DE
PUSH BC
PUSH AF
LD A,B ;Load 'slave address' into S0 register:
OR 0x01 ;Set RW Bit for read operation
OUT (CS_I2C_SX),A
CALL SlowAccess
CALL i2c_bus_rdy ; Is bus ready
LD A, 0xC5 ;Load C5H into S1. 'C5H' = PCF8584 generates
;the 'START' condition and clocks out the slave
;address and the clock pulse for slave acknowledgement.
OUT (CS_I2C_S1),A
;Setup counter
POP AF
LD C,A ; Load BYTE COUNTER into C
INC C ; Offset C by 1
i2c_read_1: ;Wait for PIN = 0
IN A,(CS_I2C_S1) ; Read byte from S1 register
BIT 7,A ; S1 PIN=1?
JR NZ,i2c_read_1 ; No - loop
BIT 3,A ; S1 LRB=0? slave ACK?
JR NZ, i2c_read_error ; No ACK -> an error has occured
DEC C
LD A, C
DEC A ;If n = m 1?
JR Z, i2c_read_last
IN A,(CS_I2C_SX)
LD (DE),A
INC DE
JR i2c_read_1
i2c_read_last: ;read last byte
LD A, 0x40
OUT (CS_I2C_S1),A
CALL SlowAccess
IN A,(CS_I2C_SX) ;receives the final data byte. Neg. ACK is also sent.
LD (DE),A
INC DE
i2c_read_last_1:
IN A,(CS_I2C_S1) ; Read byte from S1 register
BIT 7,A ; S1 PIN=1?
JR NZ,i2c_read_last_1 ; No - loop
i2c_read_error:
NOP
i2c_read_stop:
LD A, 0xC3
OUT (CS_I2C_S1),A
CALL SlowAccess
IN A,(CS_I2C_SX) ;transfers the final data byte from the
;data buffer to accumulator.
CALL SlowAccess
LD (DE),A
POP BC
POP DE
RET
i2c_stop_force:
;------------------------------------------------------------------------------
; i2c_rdy
;
; Waits until the PCF8584 signals a byte transmission/reception is complete.
;------------------------------------------------------------------------------
i2c_rdy:
PUSH AF
i2c_rlp:
IN A,(CS_I2C_S1) ; Read byte from S1 register
BIT 7,A ; Is Tx/Rx complete? (S1 PIN=0?)
call print_a_hex
JR NZ,i2c_rlp ; No - loop
i2crlpex:
POP AF
RET
;------------------------------------------------------------------------------
; i2c_bus_rdy
;
; Waits until the I2C bus is free before RETurning
;------------------------------------------------------------------------------
i2c_bus_rdy:
PUSH AF
i2c_blp:
IN A,(CS_I2C_S1) ; Read byte from S1 register
PUSH AF
call print_a_hex
POP AF
BIT 0,A ; Is bus free? (S1 ~BB=1?)
JR Z,i2c_blp ; No - loop
i2cblpex:
POP AF
RET
;------------------------------------------------------------------------------
; PAUSE_LOOP
;
; Timer function
;
; 16-bit (BC) decrement counter, performing 4xNEG loop until BC
; reaches zero.
;
; 61 T-states in loop = 15.25uS per loop @ 4 MHz - near enough
; a second delay for 65,535 iterations.
;
; Set iteration count in BC before calling this function.
; Destroys: BC
;------------------------------------------------------------------------------
PAUSE_LOOP:
PUSH AF ; 11 T-states
pau_lp:
;NEG ; 8 T-states
;NEG ; 8 T-states
;NEG ; 8 T-states
;NEG ; 8 T-states
PUSH BC ; 11 T-states
POP BC ; 10 T-states
PUSH BC ; 11 T-states
POP BC ; 10 T-states
DEC BC ; 6 T-states
LD A,C ; 9 T-states
OR B ; 4 T-states
JP NZ,pau_lp ; 10 T-states
POP AF ; 10 T-states
RET ; Pause complete, RETurn
;------------------------------------------------------------------------------
; PRINTINLINE
;
; String output function
;
; Prints in-line data (bytes immediately following the PRINTINLINE call)
; until a string terminator is encountered (0 - null char).
;------------------------------------------------------------------------------
PRINTINLINE:
EX (SP),HL ; PUSH HL and put RET ADDress into HL
PUSH AF
PUSH BC
nxtILC:
LD A,(HL)
CP 0
JR Z,endPrint
CALL print_char
INC HL
JR nxtILC
endPrint:
INC HL ; Get past "null" terminator
POP BC
POP AF
EX (SP),HL ; PUSH new RET ADDress on stack and restore HL
RET
SlowAccess:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
;.include "regdump.s"
force_stop:
IN A,(CS_I2C_S1)
BIT 0, A
RET NZ
LD A, 11000011b
OUT (CS_I2C_S1),A
NOP
NOP
JR force_stop

View File

@@ -1,2 +1,20 @@
:0B8000003E04060580321080C38B0098 :10B000003ECFD3F63EF5D3F63E00D3F4010010CD8B
:10B01000F6B03E02D3F40000003E80D3F3CD16B16B
:10B02000CD16B13E55D3F2CD16B13EA0D3F3CD1619
:10B03000B13E00D3F2CD16B13EC1D3F3CD16B1C3AC
:10B040009900010001CDF6B01100C03E001206D0FB
:10B050003E01CD62B01110C006D03E07CD90B0C306
:10B060009900C5F5CDE8B078D3F2CD16B13EC5D381
:10B07000F3F14F0CDBF3CB7F20FACB6720091A13D7
:10B080000D2804D3F218ED3EC3D3F3CD16B1C1C9D8
:10B09000D5C5F578F601D3F2CD16B1CDE8B03EC5F1
:10B0A000D3F3F14F0CDBF3CB7F20FACB5F201C0DE9
:10B0B000793D2806DBF2121318EB3E40D3F3CD1690
:10B0C000B1DBF21213DBF3CB7F20FA003EC3D3F3E4
:10B0D000CD16B1DBF2CD16B112C1D1C9F5DBF3CB80
:10B0E0007FCDE70220F7F1C9F5DBF3F5CDE702F1FB
:10B0F000CB4728F5F1C9F5C5C1C5C10B79B0C2F779
:10B10000B0F1C9E3F5C57EFE002806CDB7022318CD
:10B11000F523C1F1E3C90000000000000000C9DB15
:0CB12000F3CB47C03EC3D3F3000018F38C
:00000001FF :00000001FF

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1,19 @@
!8000 3E 04 06 05 80 32 10 80 C3 8B 00 !B000 3E CF D3 F6 3E F5 D3 F6 3E 00 D3 F4 01 00 10 CD
!B010 F6 B0 3E 02 D3 F4 00 00 00 3E 80 D3 F3 CD 16 B1
!B020 CD 16 B1 3E 55 D3 F2 CD 16 B1 3E A0 D3 F3 CD 16
!B030 B1 3E 00 D3 F2 CD 16 B1 3E C1 D3 F3 CD 16 B1 C3
!B040 99 00 01 00 01 CD F6 B0 11 00 C0 3E 00 12 06 D0
!B050 3E 01 CD 62 B0 11 10 C0 06 D0 3E 07 CD 90 B0 C3
!B060 99 00 C5 F5 CD E8 B0 78 D3 F2 CD 16 B1 3E C5 D3
!B070 F3 F1 4F 0C DB F3 CB 7F 20 FA CB 67 20 09 1A 13
!B080 0D 28 04 D3 F2 18 ED 3E C3 D3 F3 CD 16 B1 C1 C9
!B090 D5 C5 F5 78 F6 01 D3 F2 CD 16 B1 CD E8 B0 3E C5
!B0A0 D3 F3 F1 4F 0C DB F3 CB 7F 20 FA CB 5F 20 1C 0D
!B0B0 79 3D 28 06 DB F2 12 13 18 EB 3E 40 D3 F3 CD 16
!B0C0 B1 DB F2 12 13 DB F3 CB 7F 20 FA 00 3E C3 D3 F3
!B0D0 CD 16 B1 DB F2 CD 16 B1 12 C1 D1 C9 F5 DB F3 CB
!B0E0 7F CD E7 02 20 F7 F1 C9 F5 DB F3 F5 CD E7 02 F1
!B0F0 CB 47 28 F5 F1 C9 F5 C5 C1 C5 C1 0B 79 B0 C2 F7
!B100 B0 F1 C9 E3 F5 C5 7E FE 00 28 06 CD B7 02 23 18
!B110 F5 23 C1 F1 E3 C9 00 00 00 00 00 00 00 00 C9 DB
!B120 F3 CB 47 C0 3E C3 D3 F3 00 00 18 F3

File diff suppressed because it is too large Load Diff