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_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
IO_PIO_1_A_C equ 0x65
IO_PIO_1_B_D equ 0x66
IO_PIO_1_B_C equ 0x67
CS_PIO_BD .EQU 0xF5
CS_PIO_BC .EQU 0xF7
CS_PIO_AD .EQU 0xF4
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:
ld a,005h ;write into WR0: select WR5
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
ret
A_RTS_ON:

View File

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

View File

@@ -1,271 +1,274 @@
:03000000C35000EA
:03000800C3B60E6E
:03001000C3BA0E62
:03001800C3C60E4E
:03000800C3C40E60
:03001000C3C80E54
:03001800C3D40E40
:1000440000000000000000000000000000000000AC
:10005400000000000000000000000000000000009C
:0A0064000000000000000000000092
:1000500031FFFFAF3204403205403E20320640CD32
:100060007002214400112A400100407E022303E572
:10007000ED52E1C26B00CDBC0221C90ECDB102CD63
:100080008B0076477AD34078D341C9CDC3023E3E38
:10009000CDA902AF320040CDEA02CA9700F5F1FEC9
:1000A0000DCAEE00FE0ACA9700FE08CAC800F52174
:1000B000294016003A00405F193C320040F177CDEC
:1000C000A90223AF77C397003A0040A7CA97003D23
:1000D0003200405F160021294019AF773E08CDA9B4
:1000E000023E20CDA9023E08CDA902C397003A29BD
:1000F00040FE24CA2101FE3FCA4001FE21CAAA01D6
:10010000FE69CA0F02FE6FCAE601FE64CA2B02FE38
:1001100078CA150FCDC30221F40ECDB102C38B00F6
:10012000C9AF322940212A40CD1603477BA7C264BC
:1001300002212C40CD16034F7BA7C264026069E9FF
:10014000CDC302212A40CD1603477BA7C2640221FA
:100150002C40CD16034F7BA7C264023A2E40FE20EE
:10016000C26402212F40CD1603F57BA7C264022191
:10017000F90ECDB102F1606947CDC3027CCDD90241
:100180007DCDD9023E20CDA9020E087ECDD9022315
:10019000050D78A7CAA40179A7CA79013E20CDA987
:1001A00002C38B01CDC302C38B00212A40CD1603AD
:1001B000477BA7C26402212C40CD16034F7BA7C208
:1001C0006402212E407EFE00CAE001FE20C26402CD
:1001D00023CD1603027BA7C26402032323C3C501F8
:1001E000CDC302C38B00212A40CD16034F7BA7C28B
:1001F00064023A2C40FE20C26402212D40CD160339
:10020000F57BA7C26402F1ED79CDC302C38B002157
:100210002A40CD16034F7BA7C26402ED78F5CDC30B
:1002200002F1CDD902CDC302C38B00CDC302212A76
:1002300040CD1603477BA7C26402212C40CD160394
:100240004F7BA7C264023A2E40FE20C26402212FD7
:1002500040CD1603F57BA7C264026069F147CD6704
:1002600003C38B00CDC30221EF0ECDB102C38B00BF
:100270003E4FD304DB01D3043E30D3093E18D309EB
:100280003E04D3093E44D3093E05D3093EE8D309D1
:100290003E01D3093E04D3093E02D3093E00D309EF
:1002A0003E03D3093EC1D309C9F5D308CDCE02F12F
:1002B000C97EB72806CDA9022318F6C921FC02CDB4
:1002C000B102C93E0ACDA9023E0DCDA902C9973C93
:1002D000D309DB09CB4728F6C9F5C5D5CD4D037841
:1002E000CDA90279CDA902D1C1F1CD0D0300AFD3C3
:1002F00009DB09E601CD0403C8DB08C91B5B324AF0
:100300001B5B48003E05D3093E68D309C93E05D3AF
:10031000093EEAD309C9E57ECD36033815CB27CB94
:1003200027CB27CB2757237ECD36033805B2E11ED6
:1003300000C91EFFE1C9D630EA4B03FE0A3805D6D4
:1003400007EA4B03FE103003E60FC937C9F51F1F3C
:100350001F1FCD5C0347F1CD5C034FC9E60FC630CC
:10036000FE3AD8C607C9C978321A412210417E32F6
:100370001441237E3215412BCD5B0478B1CA3D0474
:10038000ED431241030303030A321641030A5F03DC
:100390000A57ED531741030A3219412A1041CDA3E0
:1003A000043A1641472A10417ECDD9022310F93E66
:1003B00068CDA9023A1641473E0690473E20CDA996
:1003C000023E20CDA90210F43E20CDA902E52A1755
:1003D00041CDB1023A1941B7CA3A042A1241010883
:1003E00000093A1941477EFE01CCC904FE02CCF057
:1003F00004FE03CC0D05FE04CC4905FE05CC5F05CB
:10040000FE06CC6C05FE07CC8605FE08CC9305FEE7
:1004100009CCA805FE10CCBD05FE11CCCD05FE1201
:10042000CCD505FE13CC0D06FE0ACC9F05FE80CC74
:100430002C06FE81CC23062310ACE11810CDA304BA
:100440007ECDBB0423E521780ECDB102E1CDC30200
:100450003A1A413D321A41C26B03C9E52176063A88
:1004600014414F7EFEFFCA9D04F523462B79A04F11
:10047000F1B9280B06000E07097E4F092318E02367
:10048000234E233A154146A0B92B2B2B280B0600EF
:100490000E07097E4F092318C6444DE1C906000E18
:1004A00000E1C93E24CDA9027CCDD9027DCDD9027F
:1004B0003E68CDA9023E20CDA902C9CDD9023E6831
:1004C000CDA9023E20CDA902C9E5ED5B1041131A6A
:1004D0006F131A673E24CDA9027CCDD9027DCDD9F8
:1004E000023E68CDA9023E20CDA902CD6706E1C932
:1004F000C5ED5B10411A1F1FE60EE521810E0600B7
:100500004F09CDB1023E20CDA902E1C1C9ED5B107A
:1005100041131AF5E680C22E053E24CDA9023E2BDA
:10052000CDA902F1CDD9023E68CDA90218173E240B
:10053000CDA9023E2DCDA902F1ED44CDD9023E68F0
:10054000CDA9021800CD6706C9ED5B1041131AFE54
:100550004D28063E4ECDA902C93E49CDA902C9C5C6
:10056000ED5B10411AE638CDBB04C1C9C5ED5B1087
:10057000411A1F1F1FE607CD42063E20CDA9023EAD
:100580002CCDA902C1C9C5ED5B10411AE607CD42C9
:1005900006C1C9C5ED5B1041131ACDBB04C1C9E545
:1005A000ED5B104113131806E5ED5B1041131A6F54
:1005B000131A677CCDD9027DCDD902E1C9C5ED5BA7
:1005C00010411A1F1F1FE607CD4206C1C9E5C5ED40
:1005D0005B10411807E5C5ED5B1041131A1F1F1F83
:1005E000E606F52A10417EFEDD2809FEFD280A21D7
:1005F000910E180821990E180321A10EF106004F43
:10060000097ECDA902237ECDA902C1E1C9E5C5EDD0
:100610005B10411A1F1F1FE606F52A10417E21A913
:100620000E18D9E5C52A174106021807E5C52A178D
:100630004106017E23A720FB05C23306CDB102C1CE
:10064000E1C9E5FE062811FE07281521910E0600D6
:100650004F097ECDA902E1C921B10ECDB102E1C998
:100660003E41CDA902E1C978FE01C83E20CDA902D4
:100670003E2CCDA902C900FF000001CE0A0027FFD1
:10068000000001990B002FFF0000019D0B00EDFF02
:1006900044FF02A10B003FFF000001A50B0037FF44
:1006A000000001A90B0076FF000001AD0B00F3FF75
:1006B000000001B20B00FBFF000001B50B00EDFFD5
:1006C00046FF02B80B00EDFF56FF02BD0B00EDFF29
:1006D0005EFF02C20B00EBFF000001C70B0008FF2A
:1006E000000001D10B00D9FF000001DE0B00E3FF89
:1006F000000001E20B00DDFFE3FF02EE0B00FDFF57
:10070000E3FF02FA0B00EDFFA0FF02060C00EDFF75
:10071000B0FF020A0C00EDFFA8FF020F0C00EDFF76
:10072000B8FF02130C00EDFFA1FF02180C00EDFF53
:10073000B1FF021C0C00EDFFA9FF02210C00EDFF30
:10074000B9FF02250C00C3FF000003D20A0101C259
:10075000C7000003D20A0302800118FF000002D97B
:100760000A010338FF000002DD0A010330FF000028
:1007700002E40A010328FF000002EC0A010320FF43
:10078000000002F30A0103E9FF000002FB0A00DD9A
:10079000FFE9FF02040B00FDFFE9FF020D0B001053
:1007A000FF000002160B0103CDFF0000031C0B012C
:1007B00001C4C70000031C0B020201C9FF000001B5
:1007C000220B00C0C7000001220B0102EDFF4DFF0C
:1007D00002270B00EDFF45FF022C0B00C7C70000EE
:1007E00001310B01050AFF000001360B001AFF0062
:1007F0000001400B003AFF0000034A0B020980028F
:10080000FF000001540B0012FF0000015F0B0032DB
:10081000FF0000036A0B020980EDFF57FF02790B0E
:1008200000EDFF5FFF02810B00EDFF47FF02890B28
:1008300000EDFF4FFF02910B0006C7000002750B91
:1008400002060840C0000001750B02060780F80090
:1008500000012A0C0107C6FF0000022A0C0108DD76
:10086000FF86FF03320C020880FDFF86FF03410C68
:10087000020880C8F8000001500C01078EF8000043
:1008800002500C0108DDFF8EFF03580C020880FDAA
:10089000FF8EFF03670C02088090F8000001760CC1
:1008A0000107D6FF000002760C0108DDFF96FF036A
:1008B0007B0C020880FDFF96FF03870C02088094E2
:1008C000F8000001930C0107DEFF000002930C0109
:1008D00008DDFF9EFF039B0C020880FDFF9EFF03C7
:1008E000A90C020880A0F8000001B70C0107E6FF80
:1008F000000002B70C0108DDFFA6FF03BC0C0208D4
:1009000080FDFFA6FF03C80C020880B0F8000001BC
:10091000D40C0107F6FF000002D40C0108DDFFB67D
:10092000FF03D80C020880FDFFB6FF03E30C0208AA
:1009300080A8F8000001EE0C0107EEFF000002EEB7
:100940000C0108DDFFAEFF03F30C020880FDFFAED3
:10095000FF03FF0C020880B8F80000010B0D01072F
:10096000FEFF0000020B0D0108DDFFBEFF030F0DAF
:10097000020880FDFFBEFF031A0D02088004C700B5
:100980000001250D0110DDFF34FF032A0D02088050
:10099000FDFF34FF03360D02088005C70000014249
:1009A0000D0110DDFF35FF03470D020880FDFF3507
:1009B000FF03530D02088009CF0000015F0D0111F4
:1009C000EDFF4ACF02680D0112EDFF42CF02710D1B
:1009D0000112DDFF09CF027A0D0112FDFF09CF02DE
:1009E000830D011203CF0000018C0D0111DDFF23E7
:1009F000FF02910D00FDFF23FF029A0D000BCF00B7
:100A00000001A30D0111DDFF2BFF02A80D00FDFF6A
:100A10002BFF02B10D0001CF000003BA0D031180BE
:100A200009DDFF21FF04C10D010AFDFF21FF04C9FB
:100A30000D010A2AFF000003D10D020980EDFF4BD2
:100A4000CF04DD0D0412800A81DDFF2AFF04E80DCA
:100A5000010AFDFF2AFF04F40D010A22FF00000332
:100A6000000E020A80EDFF43CF040C0E030A801231
:100A7000DDFF22CF04160E020A80FDFF22CF0422E2
:100A80000E020A80F9FF0000012E0E00DDFFF9FFC3
:100A900002380E00FDFFF9FF02420E00C5CF000034
:100AA000014C0E0113DDFFE5FF02520E00FDFFE5D4
:100AB000FF025A0E00C1CF000001620E0113DDFFDC
:100AC000E1FF02680E00FDFFE1FF02700E004E4FD5
:100AD00050004A5020002C20004A5220004A522048
:100AE000432C20004A52204E432C20004A52205AC8
:100AF0002C20004A52204E5A2C20004A50202848D0
:100B00004C2920004A50202849582920004A5020CA
:100B1000284959292000444A4E5A200043414C4C50
:100B20002000524554200052455449005245544E2D
:100B30000052535420004C4420412C2842432900A9
:100B40004C4420412C28444529004C4420412C2869
:100B5000006829004C4420284243292C2041004CA5
:100B60004420284445292C2041004C44202800687A
:100B7000292C2041004C4420004C4420412C204989
:100B8000004C4420412C2052004C4420492C204150
:100B9000004C4420522C2041004441410043504C21
:100BA000004E454700434346005343460048414CEE
:100BB0005400444900454900494D203000494D202A
:100BC0003100494D20320045582044452C20484CE6
:100BD0000045582041462C204146E280B20045584D
:100BE0005800455820285350292C20484C0045587F
:100BF00020285350292C204958004558202853506C
:100C0000292C204959004C4449004C444952004C7D
:100C10004444004C4444520043504900435049521C
:100C20000043504400435044520041444420412C6E
:100C3000200041444420412C202849582B00682999
:100C40000041444420412C202849592B00682900A8
:100C500041444320412C200041444320412C202882
:100C600049582B0068290041444320412C20284941
:100C7000592B006829005355422000535542202823
:100C800049582B00682900535542202849592B0008
:100C900068290053424320412C2000534243204105
:100CA0002C2849582B0068290053424320412C2806
:100CB00049592B00682900414E442000414E4420F0
:100CC0002849582B00682900414E44202849592BB7
:100CD000006829004F5220004F52202849582B000D
:100CE0006829004F52202849592B00682900584F85
:100CF000522000584F52202849582B00682900588C
:100D00004F52202849592B006829004350200043A6
:100D100050202849582B0068290043502028495961
:100D20002B00682900494E432000494E43202849A2
:100D3000582B00682900494E43202849592B006848
:100D400029004445432000444543202849582B00AE
:100D5000682900444543202849592B00682900414F
:100D6000444420484C2C200041444320484C2C2033
:100D70000053424320484C2C200041444420495811
:100D80002C20004144442049592C2000494E432046
:100D900000494E432049582C2000494E43204959D0
:100DA0002C200044454320004445432049582C2032
:100DB000004445432049592C20004C4420002C205D
:100DC000004C442049582C20004C442049592C20E8
:100DD000004C4420484C2C2028006829004C44201A
:100DE000002C2028006829004C442049582C202839
:100DF000006829004C442049592C2028006829000B
:100E00004C4420280068292C20484C004C442028C1
:100E10000068292C20004C4420280068292C2049F7
:100E200058004C4420280068292C204959004C4483
:100E30002053502C20484C004C442053502C204927
:100E400058004C442053502C2049590050555348C9
:100E500020005055534820495800505553482049C8
:100E600059005055534820005055534820495800C8
:100E700050555348204959002E3F2E002020202055
:100E8000004E5A5A004E434300504F504550004DBB
:100E90000042434445484C5350424344454958530B
:100EA00050424344454959535042434445484C41BC
:100EB0004628484C2900CDA902C9C5D5E5CDEA028E
:100EC000F5F1E1D1C1C93E00C95A3843204D6F6EDA
:100ED00069746F722056322062792044656E6E69A3
:100EE000732047756E6961202832303232290073D1
:100EF000796E3F00636D643F0042415345203020CE
:100F00002031202032202033202034202035202082
:100F10003620203700CD04033EA7D3063E0ED3066D
:100F20003E00D30421F50F22044221000022FC40A0
:100F300022FE403E42ED47ED5E217010CDB102FB36
:100F4000CDA6103E43CD4610CD1910DA430FFE0456
:100F5000CAAC0FFE18CA430FFE01CA600FC3B40F1C
:100F6000CD1910DA98104732FB40CD1910DA9810DD
:100F700080FEFFC2B40F3D781FE67F67783D0FE625
:100F8000806F1100441906800E00E5CD1910DA9823
:100F900010E177230C05C28A0FCD1910DA9810578B
:100FA0000CCD1910DA98105F0CC38A103E06CD469E
:100FB00010C3EE0F3E18CD46103E18CD46103E1819
:100FC000CD46103E18CD46103E18CD46103E18CDE9
:100FD00046103E18CD46103E18CD46103E18CD4660
:100FE000103E18CD46103E18215710CDB102F3CD5A
:100FF000C302C38B00F308D92AFC402322FC401112
:101000000404ED52C2141021000022FC402AFE40CC
:101010002322FE4008D9FBED4DF321000022FC40C5
:1010200022FE40FBCD0D032AFE407DFE03CA441084
:10103000AFD309DB09E601CA2710DB08F5CD0403AD
:10104000F1373FC937C9D308CD4C10C9973CD309F4
:10105000DB09CB4728F6C94572726F723A20756E6C
:10106000657870656374656420627974650D0A0043
:10107000417761697420786D6F64656D20636F6E70
:101080006E656374696F6E0D0A003E06CD4610CD25
:101090001910DA8A10C34E0F3E15CD4610CD191027
:1010A000DA9810C34E0F21FF00010100000000007C
:0510B000ED42C818F735
:1000500031FFFF3ECFD3F63EF5D3F6AF3204403248
:1000600005403E20320640CD7E02214400112A4048
:100070000100407E022303E5ED52E1C27300CDCAC8
:100080000221000FCDBF02114000CDD70ECD990047
:1000900076477AD34078D341C9CDD1023E3ECDB721
:1000A00002AF320040CDF802CAA500F5F1FE0DCA3C
:1000B000FC00FE0ACAA500FE08CAD600F5212940A8
:1000C00016003A00405F193C320040F177CDB7028C
:1000D00023AF77C3A5003A0040A7CAA5003D320070
:1000E000405F160021294019AF773E08CDB7023E88
:1000F00020CDB7023E08CDB702C3A5003A2940FE85
:1001000024CA2F01FE3FCA4E01FE21CAB801FE6972
:10011000CA1D02FE6FCAF401FE64CA3902FE78CA23
:100120004C0FCDD102212B0FCDBF02C39900C9AF17
:10013000322940212A40CD2403477BA7C2720221E5
:100140002C40CD24034F7BA7C272026069E9CDD158
:1001500002212A40CD2403477BA7C27202212C40F2
:10016000CD24034F7BA7C272023A2E40FE20C272FA
:1001700002212F40CD2403F57BA7C2720221300F4C
:10018000CDBF02F1606947CDD1027CCDE7027DCDC4
:10019000E7023E20CDB7020E087ECDE70223050D13
:1001A00078A7CAB20179A7CA87013E20CDB702C39A
:1001B0009901CDD102C39900212A40CD2403477B68
:1001C000A7C27202212C40CD24034F7BA7C272022A
:1001D000212E407EFE00CAEE01FE20C2720223CD17
:1001E0002403027BA7C27202032323C3D301CDD110
:1001F00002C39900212A40CD24034F7BA7C272027B
:100200003A2C40FE20C27202212D40CD2403F57B02
:10021000A7C27202F1ED79CDD102C39900212A4023
:10022000CD24034F7BA7C27202ED78F5CDD102F148
:10023000CDE702CDD102C39900CDD102212A40CD14
:100240002403477BA7C27202212C40CD24034F7B9D
:10025000A7C272023A2E40FE20C27202212F40CD68
:100260002403F57BA7C272026069F147CD7503C311
:100270009900CDD10221260FCDBF02C399003E4F78
:10028000D304DB01D3043E30D3093E18D3093E0426
:10029000D3093E44D3093E05D3093EE8D3093E01C4
:1002A000D3093E04D3093E02D3093E00D3093E03DD
:1002B000D3093EC1D309C9F5D308CDDC02F1C97E0B
:1002C000B72806CDB7022318F6C9210A03CDBF020D
:1002D000C93E0ACDB7023E0DCDB702C9973CD3093E
:1002E000DB09CB4728F6C9F5C5D5CD5B0378CDB77B
:1002F0000279CDB702D1C1F1CD1B0300AFD309DB29
:1003000009E601CD1203C8DB08C91B5B324A1B5B3F
:1003100048003E05D3093E68D309C93E05D3093ECE
:10032000EAD309C9E57ECD44033815CB27CB27CBCB
:1003300027CB2757237ECD44033805B2E11E00C9E1
:100340001EFFE1C9D630EA5903FE0A3805D607EA8E
:100350005903FE103003E60FC937C9F51F1F1F1FD1
:10036000CD6A0347F1CD6A034FC9E60FC630FE3AA6
:10037000D8C607C9C978321A412210417E321441C9
:10038000237E3215412BCD690478B1CA4B04ED436D
:100390001241030303030A321641030A5F030A579B
:1003A000ED531741030A3219412A1041CDB1043AE5
:1003B0001641472A10417ECDE7022310F93E68CD51
:1003C000B7023A1641473E0690473E20CDB7023E5F
:1003D00020CDB70210F43E20CDB702E52A1741CD5B
:1003E000BF023A1941B7CA48042A1241010800095C
:1003F0003A1941477EFE01CCD704FE02CCFE04FE32
:1004000003CC1B05FE04CC5705FE05CC6D05FE068E
:10041000CC7A05FE07CC9405FE08CCA105FE09CCDC
:10042000B605FE10CCCB05FE11CCDB05FE12CCE3ED
:1004300005FE13CC1B06FE0ACCAD05FE80CC3A06A9
:10044000FE81CC31062310ACE11810CDB1047ECD75
:10045000C90423E521860ECDBF02E1CDD1023A1AAF
:10046000413D321A41C27903C9E52184063A14415B
:100470004F7EFEFFCAAB04F523462B79A04FF1B99E
:10048000280B06000E07097E4F092318E023234E90
:10049000233A154146A0B92B2B2B280B06000E073B
:1004A000097E4F092318C6444DE1C906000E00E13C
:1004B000C93E24CDB7027CCDE7027DCDE7023E6880
:1004C000CDB7023E20CDB702C9CDE7023E68CDB719
:1004D000023E20CDB702C9E5ED5B1041131A6F1340
:1004E0001A673E24CDB7027CCDE7027DCDE7023E00
:1004F00068CDB7023E20CDB702CD7506E1C9C5ED86
:100500005B10411A1F1FE60EE5218F0E06004F09F2
:10051000CDBF023E20CDB702E1C1C9ED5B10411352
:100520001AF5E680C23C053E24CDB7023E2BCDB77E
:1005300002F1CDE7023E68CDB70218173E24CDB7D1
:10054000023E2DCDB702F1ED44CDE7023E68CDB7B6
:10055000021800CD7506C9ED5B1041131AFE4D2837
:10056000063E4ECDB702C93E49CDB702C9C5ED5BC7
:1005700010411AE638CDC904C1C9C5ED5B10411A56
:100580001F1F1FE607CD50063E20CDB7023E2CCDE3
:10059000B702C1C9C5ED5B10411AE607CD5006C1CF
:1005A000C9C5ED5B1041131ACDC904C1C9E5ED5BA6
:1005B000104113131806E5ED5B1041131A6F131A5F
:1005C000677CCDE7027DCDE702E1C9C5ED5B104157
:1005D0001A1F1F1FE607CD5006C1C9E5C5ED5B1008
:1005E000411807E5C5ED5B1041131A1F1F1FE606F2
:1005F000F52A10417EFEDD2809FEFD280A219F0E06
:10060000180821A70E180321AF0EF106004F097E2E
:10061000CDB702237ECDB702C1E1C9E5C5ED5B10C0
:10062000411A1F1F1FE606F52A10417E21B70E183A
:10063000D9E5C52A174106021807E5C52A1741065C
:10064000017E23A720FB05C24106CDBF02C1E1C93F
:10065000E5FE062811FE072815219F0E06004F090A
:100660007ECDB702E1C921BF0ECDBF02E1C93E4137
:10067000CDB702E1C978FE01C83E20CDB7023E2CBD
:10068000CDB702C900FF000001DC0A0027FF00000F
:1006900001A70B002FFF000001AB0B00EDFF44FF93
:1006A00002AF0B003FFF000001B30B0037FF00005B
:1006B00001B70B0076FF000001BB0B00F3FF000049
:1006C00001C00B00FBFF000001C30B00EDFF46FF64
:1006D00002C60B00EDFF56FF02CB0B00EDFF5EFFE5
:1006E00002D00B00EBFF000001D50B0008FF00005B
:1006F00001DF0B00D9FF000001EC0B00E3FF00005D
:1007000001F00B00DDFFE3FF02FC0B00FDFFE3FF48
:1007100002080C00EDFFA0FF02140C00EDFFB0FF7B
:1007200002180C00EDFFA8FF021D0C00EDFFB8FF42
:1007300002210C00EDFFA1FF02260C00EDFFB1FF2E
:10074000022A0C00EDFFA9FF022F0C00EDFFB9FFFC
:1007500002330C00C3FF000003E00A0101C2C7001E
:100760000003E00A0302800118FF000002E70A010B
:100770000338FF000002EB0A010330FF000002F221
:100780000A010328FF000002FA0A010320FF00000B
:1007900002010B0103E9FF000002090B00DDFFE984
:1007A000FF02120B00FDFFE9FF021B0B0010FF0010
:1007B0000002240B0103CDFF0000032A0B0101C43A
:1007C000C70000032A0B020201C9FF000001300B21
:1007D00000C0C7000001300B0102EDFF4DFF0235E4
:1007E0000B00EDFF45FF023A0B00C7C70000013FB9
:1007F0000B01050AFF000001440B001AFF00000175
:100800004E0B003AFF000003580B02098002FF0064
:100810000001620B0012FF0000016D0B0032FF00AF
:100820000003780B020980EDFF57FF02870B00EDF4
:10083000FF5FFF028F0B00EDFF47FF02970B00EDFC
:10084000FF4FFF029F0B0006C7000002830B02064A
:100850000840C0000001830B02060780F800000179
:10086000380C0107C6FF000002380C0108DDFF86C6
:10087000FF03400C020880FDFF86FF034F0C0208B7
:1008800080C8F80000015E0C01078EF80000025ECF
:100890000C0108DDFF8EFF03660C020880FDFF8E51
:1008A000FF03750C02088090F8000001840C01071A
:1008B000D6FF000002840C0108DDFF96FF03890CBF
:1008C000020880FDFF96FF03950C02088094F80053
:1008D0000001A10C0107DEFF000002A10C0108DDF0
:1008E000FF9EFF03A90C020880FDFF9EFF03B70CCB
:1008F000020880A0F8000001C50C0107E6FF000017
:1009000002C50C0108DDFFA6FF03CA0C020880FD2A
:10091000FFA6FF03D60C020880B0F8000001E20C2D
:100920000107F6FF000002E20C0108DDFFB6FF033D
:10093000E60C020880FDFFB6FF03F10C020880A858
:10094000F8000001FC0C0107EEFF000002FC0C01A6
:1009500008DDFFAEFF03010D020880FDFFAEFF03BF
:100960000D0D020880B8F8000001190D0107FEFF07
:10097000000002190D0108DDFFBEFF031D0D020876
:1009800080FDFFBEFF03280D02088004C7000001A0
:10099000330D0110DDFF34FF03380D020880FDFF29
:1009A00034FF03440D02088005C7000001500D010B
:1009B00010DDFF35FF03550D020880FDFF35FF03F5
:1009C000610D02088009CF0000016D0D0111EDFFDE
:1009D0004ACF02760D0112EDFF42CF027F0D0112C8
:1009E000DDFF09CF02880D0112FDFF09CF02910D35
:1009F000011203CF0000019A0D0111DDFF23FF0258
:100A00009F0D00FDFF23FF02A80D000BCF0000018A
:100A1000B10D0111DDFF2BFF02B60D00FDFF2BFF15
:100A200002BF0D0001CF000003C80D03118009DDD6
:100A3000FF21FF04CF0D010AFDFF21FF04D70D01A7
:100A40000A2AFF000003DF0D020980EDFF4BCF04EF
:100A5000EB0D0412800A81DDFF2AFF04F60D010A66
:100A6000FDFF2AFF04020E010A22FF0000030E0E02
:100A7000020A80EDFF43CF041A0E030A8012DDFF45
:100A800022CF04240E020A80FDFF22CF04300E0282
:100A90000A80F9FF0000013C0E00DDFFF9FF02466D
:100AA0000E00FDFFF9FF02500E00C5CF0000015AF5
:100AB0000E0113DDFFE5FF02600E00FDFFE5FF0202
:100AC000680E00C1CF000001700E0113DDFFE1FFD1
:100AD00002760E00FDFFE1FF027E0E004E4F500039
:100AE0004A5020002C20004A5220004A5220432C19
:100AF00020004A52204E432C20004A52205A2C20DB
:100B0000004A52204E5A2C20004A502028484C2996
:100B100020004A50202849582920004A50202849BE
:100B200059292000444A4E5A200043414C4C200091
:100B3000524554200052455449005245544E0052EB
:100B4000535420004C4420412C28424329004C445B
:100B500020412C28444529004C4420412C28006881
:100B600029004C4420284243292C2041004C442099
:100B7000284445292C2041004C4420280068292C79
:100B80002041004C4420004C4420412C2049004C82
:100B90004420412C2052004C4420492C2041004C40
:100BA0004420522C2041004441410043504C004E0F
:100BB000454700434346005343460048414C5400D8
:100BC000444900454900494D203000494D2031003D
:100BD000494D20320045582044452C20484C0045C2
:100BE000582041462C204146E280B200455858002A
:100BF000455820285350292C20484C00455820287F
:100C00005350292C20495800455820285350292C4E
:100C1000204959004C4449004C444952004C44443A
:100C2000004C444452004350490043504952004351
:100C3000504400435044520041444420412C200081
:100C400041444420412C202849582B006829004168
:100C5000444420412C202849592B00682900414454
:100C60004320412C200041444320412C2028495856
:100C70002B0068290041444320412C202849592B4E
:100C800000682900535542200053554220284958F6
:100C90002B00682900535542202849592B00682908
:100CA0000053424320412C200053424320412C2832
:100CB00049582B0068290053424320412C284959A8
:100CC0002B00682900414E442000414E4420284911
:100CD000582B00682900414E44202849592B0068B0
:100CE00029004F5220004F52202849582B006829D4
:100CF000004F52202849592B00682900584F522094
:100D000000584F52202849582B00682900584F524C
:100D1000202849592B0068290043502000435020C7
:100D20002849582B006829004350202849592B0096
:100D3000682900494E432000494E43202849582B3A
:100D400000682900494E43202849592B0068290092
:100D50004445432000444543202849582B00682936
:100D600000444543202849592B0068290041444448
:100D700020484C2C200041444320484C2C20005358
:100D8000424320484C2C20004144442049582C2008
:100D9000004144442049592C2000494E4320004939
:100DA0004E432049582C2000494E432049592C20BD
:100DB0000044454320004445432049582C2000442A
:100DC00045432049592C20004C4420002C20004C45
:100DD000442049582C20004C442049592C20004CD8
:100DE0004420484C2C2028006829004C4420002C2A
:100DF0002028006829004C442049582C20280068ED
:100E000029004C442049592C2028006829004C44D2
:100E100020280068292C20484C004C4420280068D9
:100E2000292C20004C4420280068292C20495800F7
:100E30004C4420280068292C204959004C44205358
:100E4000502C20484C004C442053502C2049580032
:100E50004C442053502C20495900505553482000F1
:100E6000505553482049580050555348204959007F
:100E7000505553482000505553482049580050556C
:100E80005348204959002E3F2E0020202020004E9C
:100E90005A5A004E434300504F504550004D0042B7
:100EA000434445484C5350424344454958535042AB
:100EB0004344454959535042434445484C414628D0
:100EC000484C2900CDB702C9C5D5E5CDF802F5F1EA
:100ED000E1D1C1C93E00C93E08D3F4012800CDF1DB
:100EE0000E3E00D3F4012400CDF10E1B7AB320E7AF
:100EF000C9ED44ED44ED44ED440B79B0C2F10EC9A7
:100F00005A3843204D6F6E69746F722056322062DA
:100F1000792044656E6E69732047756E696120287B
:100F200032303232290073796E3F00636D643F00C6
:100F300042415345203020203120203220203320D0
:100F4000203420203520203620203700CD12033ECB
:100F5000A7D3063E0ED3063E00D304212C10220454
:100F60004221000022FC4022FE403E42ED47ED5E61
:100F700021A710CDBF02FBCDDD103E43CD7D10CDAE
:100F80005010DA7A0FFE04CAE30FFE18CA7A0FFE79
:100F900001CA970FC3EB0FCD5010DACF104732FBC9
:100FA00040CD5010DACF1080FEFFC2EB0F3D781F0E
:100FB000E67F67783D0FE6806F1100441906800ECA
:100FC00000E5CD5010DACF10E177230C05C2C10F38
:100FD000CD5010DACF10570CCD5010DACF105F0C77
:100FE000C3C1103E06CD7D10C325103E18CD7D1027
:100FF0003E18CD7D103E18CD7D103E18CD7D103EA3
:1010000018CD7D103E18CD7D103E18CD7D103E18B8
:10101000CD7D103E18CD7D103E18CD7D103E18219F
:101020008E10CDBF02F3CDD102C39900F308D92AA7
:10103000FC402322FC40110404ED52C24B1021005D
:101040000022FC402AFE402322FE4008D9FBED4D41
:10105000F321000022FC4022FE40FBCD1B032AFEB0
:10106000407DFE03CA7B10AFD309DB09E601CA5EEF
:1010700010DB08F5CD1203F1373FC937C9D308CDCE
:101080008310C9973CD309DB09CB4728F6C94572C1
:10109000726F723A20756E6578706563746564204E
:1010A000627974650D0A00417761697420786D6F0B
:1010B00064656D20636F6E6E656374696F6E0D0A93
:1010C000003E06CD7D10CD5010DAC110C3850F3E15
:1010D00015CD7D10CD5010DACF10C3850F21FF0044
:0C10E00001010000000000ED42C818F7FC
: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.
;Do not make any changes here!
AY0_WRITE_REG equ 0x83
A_RTS_OFF equ 0x304
A_RTS_ON equ 0x30D
CMD_DASM equ 0x22B
CMD_EXEC equ 0x121
CMD_IO_READ equ 0x20F
CMD_IO_WRITE equ 0x1E6
CMD_SET equ 0x1AA
CMD_SET_END equ 0x1E0
CMD_SET_LOOP equ 0x1C5
CMD_SYNTAX_ERROR equ 0x264
CMD_VIEW equ 0x140
CMD_VIEW_END equ 0x1A4
CMD_VIEW_ROW equ 0x179
CMD_VIEW_ROW_LOOP equ 0x18B
CONSOLE_INIT equ 0x270
CONSOLE_INIT_CTC equ 0x270
CONSOLE_INIT_SIO equ 0x278
DHEX_TO_BYTE equ 0x316
DHEX_TO_BYTE_FAILED equ 0x332
EXEC_RST_08 equ 0xEB6
EXEC_RST_10 equ 0xEBA
EXEC_RST_18 equ 0xEC6
HEX_TO_BIN equ 0x336
HEX_TO_BIN_2 equ 0x344
HEX_TO_INVALID_2 equ 0x34B
AY0_WRITE_REG equ 0x91
A_RTS_OFF equ 0x312
A_RTS_ON equ 0x31B
CMD_DASM equ 0x239
CMD_EXEC equ 0x12F
CMD_IO_READ equ 0x21D
CMD_IO_WRITE equ 0x1F4
CMD_SET equ 0x1B8
CMD_SET_END equ 0x1EE
CMD_SET_LOOP equ 0x1D3
CMD_SYNTAX_ERROR equ 0x272
CMD_VIEW equ 0x14E
CMD_VIEW_END equ 0x1B2
CMD_VIEW_ROW equ 0x187
CMD_VIEW_ROW_LOOP equ 0x199
CONSOLE_INIT equ 0x27E
CONSOLE_INIT_CTC equ 0x27E
CONSOLE_INIT_SIO equ 0x286
DHEX_TO_BYTE equ 0x324
DHEX_TO_BYTE_FAILED equ 0x340
EXEC_RST_08 equ 0xEC4
EXEC_RST_10 equ 0xEC8
EXEC_RST_18 equ 0xED4
HEX_TO_BIN equ 0x344
HEX_TO_BIN_2 equ 0x352
HEX_TO_INVALID_2 equ 0x359
INT_VEC equ 0x1B
Includes equ 0x270
MSG_CLEAR equ 0x2FC
MSG_ERROR equ 0x1057
MSG_START equ 0x1070
PROMPT_BEGIN equ 0x8B
PROMPT_BEGIN_READ_BACKSPACE equ 0xC8
PROMPT_BEGIN_READ_LOOP equ 0x97
PROMPT_BEGIN_READ_PROCESS equ 0xEE
Includes equ 0x27E
MSG_CLEAR equ 0x30A
MSG_ERROR equ 0x108E
MSG_START equ 0x10A7
PROMPT_BEGIN equ 0x99
PROMPT_BEGIN_READ_BACKSPACE equ 0xD6
PROMPT_BEGIN_READ_LOOP equ 0xA5
PROMPT_BEGIN_READ_PROCESS equ 0xFC
RST_00 equ 0x00
RST_08 equ 0x08
RST_10 equ 0x10
RST_18 equ 0x18
STRCONV_BYTES_TO_HEX equ 0x34D
STRCONV_BYTES_TO_HEX_1 equ 0x35C
STRCONV_BYTES_TO_HEX_2 equ 0x366
STR_Banner_Start equ 0xEC9
STR_HEXDUMP_HEADER equ 0xEF9
STR_SyntaxError equ 0xEEF
STR_Unknown equ 0xEF4
dasm_00 equ 0xACE
dasm_01 equ 0xDBA
dasm_02 equ 0xB54
dasm_03 equ 0xD8C
dasm_08 equ 0xBD1
dasm_09 equ 0xD5F
dasm_0A equ 0xB36
dasm_0B equ 0xDA3
dasm_10 equ 0xB16
dasm_12 equ 0xB5F
dasm_18 equ 0xAD9
dasm_1A equ 0xB40
dasm_20 equ 0xAF3
dasm_22 equ 0xE00
dasm_27 equ 0xB99
dasm_28 equ 0xAEC
dasm_2A equ 0xDD1
dasm_2F equ 0xB9D
dasm_30 equ 0xAE4
dasm_32 equ 0xB6A
dasm_37 equ 0xBA9
dasm_38 equ 0xADD
dasm_3A equ 0xB4A
dasm_3F equ 0xBA5
dasm_76 equ 0xBAD
dasm_80C6 equ 0xC2A
dasm_BE equ 0xBC7
dasm_C3 equ 0xAD2
dasm_C88E equ 0xC50
dasm_C9 equ 0xB22
dasm_CD equ 0xB1C
dasm_D9 equ 0xBDE
dasm_DD equ 0xB04
dasm_DD_01 equ 0xDC1
dasm_DD_09 equ 0xD7A
dasm_DD_22 equ 0xE16
dasm_DD_23 equ 0xD91
dasm_DD_2A equ 0xDE8
dasm_DD_2B equ 0xDA8
dasm_DD_34 equ 0xD2A
dasm_DD_35 equ 0xD47
dasm_DD_86 equ 0xC32
dasm_DD_8E equ 0xC58
dasm_DD_96 equ 0xC7B
dasm_DD_9E equ 0xC9B
dasm_DD_A6 equ 0xCBC
dasm_DD_AE equ 0xCF3
dasm_DD_B6 equ 0xCD8
dasm_DD_BE equ 0xD0F
dasm_DD_E1 equ 0xE68
dasm_DD_E3 equ 0xBEE
dasm_DD_E5 equ 0xE52
dasm_DD_F9 equ 0xE38
dasm_E1 equ 0xE62
dasm_E3 equ 0xBE2
dasm_E5 equ 0xE4C
dasm_E9 equ 0xAFB
dasm_ED_42 equ 0xD71
dasm_ED_43 equ 0xE0C
dasm_ED_44 equ 0xBA1
dasm_ED_45 equ 0xB2C
dasm_ED_46 equ 0xBB8
dasm_ED_4A equ 0xD68
dasm_ED_4B equ 0xDDD
dasm_ED_4D equ 0xB27
dasm_ED_56 equ 0xBBD
dasm_ED_5E equ 0xBC2
dasm_ED_A0 equ 0xC06
dasm_ED_A1 equ 0xC18
dasm_ED_A8 equ 0xC0F
dasm_ED_A9 equ 0xC21
dasm_ED_B0 equ 0xC0A
dasm_ED_B1 equ 0xC1C
dasm_ED_B8 equ 0xC13
dasm_ED_B9 equ 0xC25
dasm_F3 equ 0xBB2
dasm_F9 equ 0xE2E
dasm_FB equ 0xBB5
dasm_FD equ 0xB0D
dasm_FD_01 equ 0xDC9
dasm_FD_09 equ 0xD83
dasm_FD_22 equ 0xE22
dasm_FD_23 equ 0xD9A
dasm_FD_2A equ 0xDF4
dasm_FD_2B equ 0xDB1
dasm_FD_34 equ 0xD36
dasm_FD_35 equ 0xD53
dasm_FD_86 equ 0xC41
dasm_FD_8E equ 0xC67
dasm_FD_96 equ 0xC87
dasm_FD_9E equ 0xCA9
dasm_FD_A6 equ 0xCC8
dasm_FD_AE equ 0xCFF
dasm_FD_B6 equ 0xCE3
dasm_FD_BE equ 0xD1A
dasm_FD_E1 equ 0xE70
dasm_FD_E3 equ 0xBFA
dasm_FD_E5 equ 0xE5A
dasm_FD_F9 equ 0xE42
dasm_FF equ 0xB31
dasm_UU equ 0xE78
dasm_UW equ 0xE7C
dasm__AND equ 0xCB7
dasm__CP equ 0xD0B
dasm__DEC equ 0xD42
dasm__ED_47 equ 0xB89
dasm__ED_4F equ 0xB91
dasm__ED_57 equ 0xB79
dasm__ED_5F equ 0xB81
dasm__INC equ 0xD25
dasm__LD equ 0xB75
dasm__OR equ 0xCD4
dasm__SBC equ 0xC93
dasm__SUB equ 0xC76
dasm__XOR equ 0xCEE
dasm_opcode_table equ 0x676
dasm_print16hex_addr equ 0x4A3
dasm_print8hex equ 0x4BB
dasm_printFlags_table equ 0xE81
dasm_printRegister8_table equ 0xE91
dasm_printRegister8_table_HL equ 0xEB1
dasm_printRegisterIX_table equ 0xE99
dasm_printRegisterIY_table equ 0xEA1
dasm_printRegisterSP_table equ 0xEA9
disassemble equ 0x367
disassemble_continue equ 0x44D
disassemble_err equ 0x43D
disassemble_next equ 0x36B
disassemble_print_opcode_params_end equ 0x43A
disassemble_print_opcode_params_loop equ 0x3E6
disassemble_print_opcode_raw equ 0x3A8
disassemble_print_opcode_raw_fill equ 0x3BC
disassemble_table_first_match equ 0x47F
disassemble_table_found equ 0x499
disassemble_table_notfound equ 0x49D
disassemble_table_seek equ 0x45B
disassemble_table_seek_loop equ 0x45F
mon_start_complete equ 0x76
STRCONV_BYTES_TO_HEX equ 0x35B
STRCONV_BYTES_TO_HEX_1 equ 0x36A
STRCONV_BYTES_TO_HEX_2 equ 0x374
STR_Banner_Start equ 0xF00
STR_HEXDUMP_HEADER equ 0xF30
STR_SyntaxError equ 0xF26
STR_Unknown equ 0xF2B
beep equ 0xED7
beep_pause equ 0xEF1
dasm_00 equ 0xADC
dasm_01 equ 0xDC8
dasm_02 equ 0xB62
dasm_03 equ 0xD9A
dasm_08 equ 0xBDF
dasm_09 equ 0xD6D
dasm_0A equ 0xB44
dasm_0B equ 0xDB1
dasm_10 equ 0xB24
dasm_12 equ 0xB6D
dasm_18 equ 0xAE7
dasm_1A equ 0xB4E
dasm_20 equ 0xB01
dasm_22 equ 0xE0E
dasm_27 equ 0xBA7
dasm_28 equ 0xAFA
dasm_2A equ 0xDDF
dasm_2F equ 0xBAB
dasm_30 equ 0xAF2
dasm_32 equ 0xB78
dasm_37 equ 0xBB7
dasm_38 equ 0xAEB
dasm_3A equ 0xB58
dasm_3F equ 0xBB3
dasm_76 equ 0xBBB
dasm_80C6 equ 0xC38
dasm_BE equ 0xBD5
dasm_C3 equ 0xAE0
dasm_C88E equ 0xC5E
dasm_C9 equ 0xB30
dasm_CD equ 0xB2A
dasm_D9 equ 0xBEC
dasm_DD equ 0xB12
dasm_DD_01 equ 0xDCF
dasm_DD_09 equ 0xD88
dasm_DD_22 equ 0xE24
dasm_DD_23 equ 0xD9F
dasm_DD_2A equ 0xDF6
dasm_DD_2B equ 0xDB6
dasm_DD_34 equ 0xD38
dasm_DD_35 equ 0xD55
dasm_DD_86 equ 0xC40
dasm_DD_8E equ 0xC66
dasm_DD_96 equ 0xC89
dasm_DD_9E equ 0xCA9
dasm_DD_A6 equ 0xCCA
dasm_DD_AE equ 0xD01
dasm_DD_B6 equ 0xCE6
dasm_DD_BE equ 0xD1D
dasm_DD_E1 equ 0xE76
dasm_DD_E3 equ 0xBFC
dasm_DD_E5 equ 0xE60
dasm_DD_F9 equ 0xE46
dasm_E1 equ 0xE70
dasm_E3 equ 0xBF0
dasm_E5 equ 0xE5A
dasm_E9 equ 0xB09
dasm_ED_42 equ 0xD7F
dasm_ED_43 equ 0xE1A
dasm_ED_44 equ 0xBAF
dasm_ED_45 equ 0xB3A
dasm_ED_46 equ 0xBC6
dasm_ED_4A equ 0xD76
dasm_ED_4B equ 0xDEB
dasm_ED_4D equ 0xB35
dasm_ED_56 equ 0xBCB
dasm_ED_5E equ 0xBD0
dasm_ED_A0 equ 0xC14
dasm_ED_A1 equ 0xC26
dasm_ED_A8 equ 0xC1D
dasm_ED_A9 equ 0xC2F
dasm_ED_B0 equ 0xC18
dasm_ED_B1 equ 0xC2A
dasm_ED_B8 equ 0xC21
dasm_ED_B9 equ 0xC33
dasm_F3 equ 0xBC0
dasm_F9 equ 0xE3C
dasm_FB equ 0xBC3
dasm_FD equ 0xB1B
dasm_FD_01 equ 0xDD7
dasm_FD_09 equ 0xD91
dasm_FD_22 equ 0xE30
dasm_FD_23 equ 0xDA8
dasm_FD_2A equ 0xE02
dasm_FD_2B equ 0xDBF
dasm_FD_34 equ 0xD44
dasm_FD_35 equ 0xD61
dasm_FD_86 equ 0xC4F
dasm_FD_8E equ 0xC75
dasm_FD_96 equ 0xC95
dasm_FD_9E equ 0xCB7
dasm_FD_A6 equ 0xCD6
dasm_FD_AE equ 0xD0D
dasm_FD_B6 equ 0xCF1
dasm_FD_BE equ 0xD28
dasm_FD_E1 equ 0xE7E
dasm_FD_E3 equ 0xC08
dasm_FD_E5 equ 0xE68
dasm_FD_F9 equ 0xE50
dasm_FF equ 0xB3F
dasm_UU equ 0xE86
dasm_UW equ 0xE8A
dasm__AND equ 0xCC5
dasm__CP equ 0xD19
dasm__DEC equ 0xD50
dasm__ED_47 equ 0xB97
dasm__ED_4F equ 0xB9F
dasm__ED_57 equ 0xB87
dasm__ED_5F equ 0xB8F
dasm__INC equ 0xD33
dasm__LD equ 0xB83
dasm__OR equ 0xCE2
dasm__SBC equ 0xCA1
dasm__SUB equ 0xC84
dasm__XOR equ 0xCFC
dasm_opcode_table equ 0x684
dasm_print16hex_addr equ 0x4B1
dasm_print8hex equ 0x4C9
dasm_printFlags_table equ 0xE8F
dasm_printRegister8_table equ 0xE9F
dasm_printRegister8_table_HL equ 0xEBF
dasm_printRegisterIX_table equ 0xEA7
dasm_printRegisterIY_table equ 0xEAF
dasm_printRegisterSP_table equ 0xEB7
disassemble equ 0x375
disassemble_continue equ 0x45B
disassemble_err equ 0x44B
disassemble_next equ 0x379
disassemble_print_opcode_params_end equ 0x448
disassemble_print_opcode_params_loop equ 0x3F4
disassemble_print_opcode_raw equ 0x3B6
disassemble_print_opcode_raw_fill equ 0x3CA
disassemble_table_first_match equ 0x48D
disassemble_table_found equ 0x4A7
disassemble_table_notfound equ 0x4AB
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_serial equ 0x5F
mon_start_init_serial equ 0x67
mon_start_init_sound equ 0x50
mon_start_ram equ 0x62
mon_start_ram_loop equ 0x6B
mon_start_ram equ 0x6A
mon_start_ram_loop equ 0x73
mon_var_template equ 0x44
mon_var_template_end equ 0x402A
param_01 equ 0x4C9
param_02 equ 0x4F0
param_03 equ 0x50D
param_03_done equ 0x545
param_03_neg equ 0x52E
param_04 equ 0x549
param_04_i equ 0x559
param_05 equ 0x55F
param_06 equ 0x56C
param_07 equ 0x586
param_08 equ 0x593
param_09 equ 0x5A8
param_09_0A equ 0x5AE
param_0A equ 0x59F
param_10 equ 0x5BD
param_11 equ 0x5CD
param_11_12 equ 0x5DC
param_11_12_all equ 0x5FC
param_11_12_def equ 0x5EF
param_11_12_ix equ 0x5F4
param_11_12_iy equ 0x5F9
param_12 equ 0x5D5
param_13 equ 0x60D
param_80 equ 0x62C
param_80_seek equ 0x633
param_81 equ 0x623
param_comma equ 0x667
param_printRegister equ 0x642
param_printRegisterA equ 0x660
param_printRegisterHL equ 0x658
print_a_hex equ 0x2D9
print_char equ 0x2A9
print_clear equ 0x2BC
print_newLine equ 0x2C3
print_str equ 0x2B1
print_str_end equ 0x2BB
print_wait_out equ 0x2CE
read_char equ 0x2EA
param_01 equ 0x4D7
param_02 equ 0x4FE
param_03 equ 0x51B
param_03_done equ 0x553
param_03_neg equ 0x53C
param_04 equ 0x557
param_04_i equ 0x567
param_05 equ 0x56D
param_06 equ 0x57A
param_07 equ 0x594
param_08 equ 0x5A1
param_09 equ 0x5B6
param_09_0A equ 0x5BC
param_0A equ 0x5AD
param_10 equ 0x5CB
param_11 equ 0x5DB
param_11_12 equ 0x5EA
param_11_12_all equ 0x60A
param_11_12_def equ 0x5FD
param_11_12_ix equ 0x602
param_11_12_iy equ 0x607
param_12 equ 0x5E3
param_13 equ 0x61B
param_80 equ 0x63A
param_80_seek equ 0x641
param_81 equ 0x631
param_comma equ 0x675
param_printRegister equ 0x650
param_printRegisterA equ 0x66E
param_printRegisterHL equ 0x666
print_a_hex equ 0x2E7
print_char equ 0x2B7
print_clear equ 0x2CA
print_newLine equ 0x2D1
print_str equ 0x2BF
print_str_end equ 0x2C9
print_wait_out equ 0x2DC
read_char equ 0x2F8
var_buffer equ 0x4029
var_buffer_len equ 0x4000
var_curserchar equ 0x4006
@@ -241,23 +243,23 @@ var_cursery equ 0x4003
var_last_char equ 0x4001
var_ps2mem equ 0x4019
var_scratch equ 0x4009
xmodem_ack equ 0x108A
xmodem_await_conn equ 0xF43
xmodem_end equ 0xFEE
xmodem_err equ 0xFB4
xmodem_init equ 0xF15
xmodem_int equ 0xFF5
xmodem_int_cont equ 0x1014
xmodem_nak equ 0x1098
xmodem_out equ 0x1046
xmodem_packet equ 0xF4E
xmodem_packet_EOT equ 0xFAC
xmodem_packet_get equ 0xF60
xmodem_packet_get_crc equ 0xF99
xmodem_packet_get_data equ 0xF8A
xmodem_read_wait equ 0x1019
xmodem_read_wait_loop equ 0x1027
xmodem_read_wait_timeout equ 0x1044
xmodem_wait equ 0x10A6
xmodem_wait_1 equ 0x10AC
xmodem_wait_out equ 0x104C
xmodem_ack equ 0x10C1
xmodem_await_conn equ 0xF7A
xmodem_end equ 0x1025
xmodem_err equ 0xFEB
xmodem_init equ 0xF4C
xmodem_int equ 0x102C
xmodem_int_cont equ 0x104B
xmodem_nak equ 0x10CF
xmodem_out equ 0x107D
xmodem_packet equ 0xF85
xmodem_packet_EOT equ 0xFE3
xmodem_packet_get equ 0xF97
xmodem_packet_get_crc equ 0xFD0
xmodem_packet_get_data equ 0xFC1
xmodem_read_wait equ 0x1050
xmodem_read_wait_loop equ 0x105E
xmodem_read_wait_timeout equ 0x107B
xmodem_wait equ 0x10DD
xmodem_wait_1 equ 0x10E3
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.
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
;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

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