added i2c controller functions, added IDE interface functions, fiexd IDE schematics
This commit is contained in:
@@ -8,6 +8,7 @@ beep:
|
|||||||
push AF
|
push AF
|
||||||
push BC
|
push BC
|
||||||
push DE
|
push DE
|
||||||
|
beep_loop:
|
||||||
LD A,0x08
|
LD A,0x08
|
||||||
OUT (CS_PIO_AD), A
|
OUT (CS_PIO_AD), A
|
||||||
LD BC, 0x28
|
LD BC, 0x28
|
||||||
@@ -19,7 +20,7 @@ beep:
|
|||||||
DEC DE
|
DEC DE
|
||||||
ld A,D
|
ld A,D
|
||||||
or E
|
or E
|
||||||
jr NZ, beep
|
jr NZ, beep_loop
|
||||||
pop de
|
pop de
|
||||||
pop bc
|
pop bc
|
||||||
pop af
|
pop af
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ VAR_CONSOLE_BAUD equ 24 ;BAUD timer constant
|
|||||||
|
|
||||||
org 0x0000
|
org 0x0000
|
||||||
RST_00: ;Hardware Restart
|
RST_00: ;Hardware Restart
|
||||||
|
ld sp, STACK_RAM_TOP
|
||||||
|
di
|
||||||
jp mon_start_init_sound
|
jp mon_start_init_sound
|
||||||
|
|
||||||
org 0x0008
|
org 0x0008
|
||||||
@@ -65,8 +67,9 @@ var_ps2mem:
|
|||||||
var_buffer:
|
var_buffer:
|
||||||
defb 0 ;var lentgh
|
defb 0 ;var lentgh
|
||||||
|
|
||||||
mon_var_template_end:
|
|
||||||
dephase
|
dephase
|
||||||
|
mon_var_template_end:
|
||||||
|
nop
|
||||||
;end memory var template
|
;end memory var template
|
||||||
org 0x0050
|
org 0x0050
|
||||||
mon_start_init_sound:
|
mon_start_init_sound:
|
||||||
@@ -82,7 +85,7 @@ mon_start_init_sound:
|
|||||||
;call AY0_WRITE_REG
|
;call AY0_WRITE_REG
|
||||||
|
|
||||||
mon_start_init_ctc:
|
mon_start_init_ctc:
|
||||||
ld sp, STACK_RAM_TOP
|
|
||||||
; Set CTC Ch2 Interrupt Vector
|
; Set CTC Ch2 Interrupt Vector
|
||||||
;LD A,40h ; it vector defined in bit 73,bit 21 don't care, bit 0 = 0
|
;LD A,40h ; it vector defined in bit 73,bit 21 don't care, bit 0 = 0
|
||||||
;OUT (IO_CTC0_C0),A
|
;OUT (IO_CTC0_C0),A
|
||||||
@@ -110,11 +113,15 @@ mon_start_init_ctc:
|
|||||||
ld (var_curserchar),a
|
ld (var_curserchar),a
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;ei ; Enable Interrupts
|
;ei ; Enable Interrupts
|
||||||
|
|
||||||
;jr mon_start_ram ;skip serial, cause not used atm
|
;jr mon_start_ram ;skip serial, cause not used atm
|
||||||
mon_start_init_serial:
|
mon_start_init_serial:
|
||||||
call CONSOLE_INIT
|
call CONSOLE_INIT
|
||||||
|
;jp mon_start_complete
|
||||||
|
|
||||||
mon_start_ram:
|
mon_start_ram:
|
||||||
ld hl,mon_var_template
|
ld hl,mon_var_template
|
||||||
ld de,mon_var_template_end
|
ld de,mon_var_template_end
|
||||||
@@ -328,7 +335,7 @@ CMD_VIEW_ROW:
|
|||||||
call print_a_hex
|
call print_a_hex
|
||||||
ld a, ' '
|
ld a, ' '
|
||||||
call print_char
|
call print_char
|
||||||
ld c, 8 ;column counter
|
ld c, 16 ;column counter
|
||||||
CMD_VIEW_ROW_LOOP:
|
CMD_VIEW_ROW_LOOP:
|
||||||
ld a,(hl)
|
ld a,(hl)
|
||||||
call print_a_hex
|
call print_a_hex
|
||||||
@@ -494,7 +501,7 @@ STR_SyntaxError:
|
|||||||
STR_Unknown:
|
STR_Unknown:
|
||||||
db "cmd?",0
|
db "cmd?",0
|
||||||
STR_HEXDUMP_HEADER:
|
STR_HEXDUMP_HEADER:
|
||||||
db 'BASE 0 1 2 3 4 5 6 7',0
|
db 'BASE 0 1 2 3 4 5 6 7 8 A B C D E F',0
|
||||||
|
|
||||||
.include "xmodem.s"
|
.include "xmodem.s"
|
||||||
;.include "debug.s"
|
;.include "debug.s"
|
||||||
Binary file not shown.
@@ -1,274 +1,274 @@
|
|||||||
:03000000C35000EA
|
:0700000031FFFFF3C35000C4
|
||||||
:03000800C3C40E60
|
:03000800C3C10E63
|
||||||
:03001000C3C80E54
|
:03001000C3C50E57
|
||||||
:03001800C3D40E40
|
:03001800C3D10E43
|
||||||
:1000440000000000000000000000000000000000AC
|
:1000440000000000000000000000000000000000AC
|
||||||
:10005400000000000000000000000000000000009C
|
:10005400000000000000000000000000000000009C
|
||||||
:0A0064000000000000000000000092
|
:0B006400000000000000000000000091
|
||||||
:1000500031FFFF3ECFD3F63EF5D3F6AF3204403248
|
:100050003ECFD3F63EF5D3F6AF3204403205403EF4
|
||||||
:1000600005403E20320640CD7E02214400112A4048
|
:1000600020320640CD7B02214400116E0001004089
|
||||||
:100070000100407E022303E5ED52E1C27300CDCAC8
|
:100070007E022303E5ED52E1C27000CDC7022103E9
|
||||||
:100080000221000FCDBF02114000CDD70ECD990047
|
:100080000FCDBC02114000CDD40ECD960076477A3C
|
||||||
:1000900076477AD34078D341C9CDD1023E3ECDB721
|
:10009000D34078D341C9CDCE023E3ECDB402AF327B
|
||||||
:1000A00002AF320040CDF802CAA500F5F1FE0DCA3C
|
:1000A0000040CDF502CAA200F5F1FE0DCAF900FE2E
|
||||||
:1000B000FC00FE0ACAA500FE08CAD600F5212940A8
|
:1000B0000ACAA200FE08CAD300F521294016003A58
|
||||||
:1000C00016003A00405F193C320040F177CDB7028C
|
:1000C00000405F193C320040F177CDB40223AF7796
|
||||||
:1000D00023AF77C3A5003A0040A7CAA5003D320070
|
:1000D000C3A2003A0040A7CAA2003D3200405F160A
|
||||||
:1000E000405F160021294019AF773E08CDB7023E88
|
:1000E0000021294019AF773E08CDB4023E20CDB49F
|
||||||
:1000F00020CDB7023E08CDB702C3A5003A2940FE85
|
:1000F000023E08CDB402C3A2003A2940FE24CA2C15
|
||||||
:1001000024CA2F01FE3FCA4E01FE21CAB801FE6972
|
:1001000001FE3FCA4B01FE21CAB501FE69CA1A02AF
|
||||||
:10011000CA1D02FE6FCAF401FE64CA3902FE78CA23
|
:10011000FE6FCAF101FE64CA3602FE78CA4F0FCDE7
|
||||||
:100120004C0FCDD102212B0FCDBF02C39900C9AF17
|
:10012000CE02212E0FCDBC02C39600C9AF322940AA
|
||||||
:10013000322940212A40CD2403477BA7C2720221E5
|
:10013000212A40CD2103477BA7C26F02212C40CD4D
|
||||||
:100140002C40CD24034F7BA7C272026069E9CDD158
|
:1001400021034F7BA7C26F026069E9CDCE02212A4D
|
||||||
:1001500002212A40CD2403477BA7C27202212C40F2
|
:1001500040CD2103477BA7C26F02212C40CD210354
|
||||||
:10016000CD24034F7BA7C272023A2E40FE20C272FA
|
:100160004F7BA7C26F023A2E40FE20C26F02212FA2
|
||||||
:1001700002212F40CD2403F57BA7C2720221300F4C
|
:1001700040CD2103F57BA7C26F0221330FCDBC0216
|
||||||
:10018000CDBF02F1606947CDD1027CCDE7027DCDC4
|
:10018000F1606947CDCE027CCDE4027DCDE4023E34
|
||||||
:10019000E7023E20CDB7020E087ECDE70223050D13
|
:1001900020CDB4020E087ECDE40223050D78A7CA57
|
||||||
:1001A00078A7CAB20179A7CA87013E20CDB702C39A
|
:1001A000AF0179A7CA84013E20CDB402C39601CD28
|
||||||
:1001B0009901CDD102C39900212A40CD2403477B68
|
:1001B000CE02C39600212A40CD2103477BA7C26F00
|
||||||
:1001C000A7C27202212C40CD24034F7BA7C272022A
|
:1001C00002212C40CD21034F7BA7C26F02212E407C
|
||||||
:1001D000212E407EFE00CAEE01FE20C2720223CD17
|
:1001D0007EFE00CAEB01FE20C26F0223CD21030286
|
||||||
:1001E0002403027BA7C27202032323C3D301CDD110
|
:1001E0007BA7C26F02032323C3D001CDCE02C396E7
|
||||||
:1001F00002C39900212A40CD24034F7BA7C272027B
|
:1001F00000212A40CD21034F7BA7C26F023A2C4039
|
||||||
:100200003A2C40FE20C27202212D40CD2403F57B02
|
:10020000FE20C26F02212D40CD2103F57BA7C26FD6
|
||||||
:10021000A7C27202F1ED79CDD102C39900212A4023
|
:1002100002F1ED79CDCE02C39600212A40CD210313
|
||||||
:10022000CD24034F7BA7C27202ED78F5CDD102F148
|
:100220004F7BA7C26F02ED78F5CDCE02F1CDE4028F
|
||||||
:10023000CDE702CDD102C39900CDD102212A40CD14
|
:10023000CDCE02C39600CDCE02212A40CD21034768
|
||||||
:100240002403477BA7C27202212C40CD24034F7B9D
|
:100240007BA7C26F02212C40CD21034F7BA7C26F39
|
||||||
:10025000A7C272023A2E40FE20C27202212F40CD68
|
:10025000023A2E40FE20C26F02212F40CD2103F52D
|
||||||
:100260002403F57BA7C272026069F147CD7503C311
|
:100260007BA7C26F026069F147CD7203C39600CDD0
|
||||||
:100270009900CDD10221260FCDBF02C399003E4F78
|
:10027000CE0221290FCDBC02C396003E4FD304DB32
|
||||||
:10028000D304DB01D3043E30D3093E18D3093E0426
|
:1002800001D3043E30D3093E18D3093E04D3093EBE
|
||||||
:10029000D3093E44D3093E05D3093EE8D3093E01C4
|
:1002900044D3093E05D3093EE8D3093E01D3093EC4
|
||||||
:1002A000D3093E04D3093E02D3093E00D3093E03DD
|
:1002A00004D3093E02D3093E00D3093E03D3093EDD
|
||||||
:1002B000D3093EC1D309C9F5D308CDDC02F1C97E0B
|
:1002B000C1D309C9F5D308CDD902F1C97EB7280643
|
||||||
:1002C000B72806CDB7022318F6C9210A03CDBF020D
|
:1002C000CDB4022318F6C9210703CDBC02C93E0AEA
|
||||||
:1002D000C93E0ACDB7023E0DCDB702C9973CD3093E
|
:1002D000CDB4023E0DCDB402C9973CD309DB09CBA6
|
||||||
:1002E000DB09CB4728F6C9F5C5D5CD5B0378CDB77B
|
:1002E0004728F6C9F5C5D5CD580378CDB40279CDE8
|
||||||
:1002F0000279CDB702D1C1F1CD1B0300AFD309DB29
|
:1002F000B402D1C1F1CD180300AFD309DB09E60187
|
||||||
:1003000009E601CD1203C8DB08C91B5B324A1B5B3F
|
:10030000CD0F03C8DB08C91B5B324A1B5B48003EAC
|
||||||
:1003100048003E05D3093E68D309C93E05D3093ECE
|
:1003100005D3093E68D309C93E05D3093EEAD3098E
|
||||||
:10032000EAD309C9E57ECD44033815CB27CB27CBCB
|
:10032000C9E57ECD41033815CB27CB27CB27CB277B
|
||||||
:1003300027CB2757237ECD44033805B2E11E00C9E1
|
:1003300057237ECD41033805B2E11E00C91EFFE1FF
|
||||||
:100340001EFFE1C9D630EA5903FE0A3805D607EA8E
|
:10034000C9D630EA5603FE0A3805D607EA5603FE38
|
||||||
:100350005903FE103003E60FC937C9F51F1F1F1FD1
|
:10035000103003E60FC937C9F51F1F1F1FCD6703F4
|
||||||
:10036000CD6A0347F1CD6A034FC9E60FC630FE3AA6
|
:1003600047F1CD67034FC9E60FC630FE3AD8C6073E
|
||||||
:10037000D8C607C9C978321A412210417E321441C9
|
:10037000C9C978321A412210417E321441237E329B
|
||||||
:10038000237E3215412BCD690478B1CA4B04ED436D
|
:1003800015412BCD660478B1CA4804ED43124103F0
|
||||||
:100390001241030303030A321641030A5F030A579B
|
:100390000303030A321641030A5F030A57ED53179A
|
||||||
:1003A000ED531741030A3219412A1041CDB1043AE5
|
:1003A00041030A3219412A1041CDAE043A164147A1
|
||||||
:1003B0001641472A10417ECDE7022310F93E68CD51
|
:1003B0002A10417ECDE4022310F93E68CDB4023A02
|
||||||
:1003C000B7023A1641473E0690473E20CDB7023E5F
|
:1003C0001641473E0690473E20CDB4023E20CDB4B4
|
||||||
:1003D00020CDB70210F43E20CDB702E52A1741CD5B
|
:1003D0000210F43E20CDB402E52A1741CDBC023A0A
|
||||||
:1003E000BF023A1941B7CA48042A1241010800095C
|
:1003E0001941B7CA45042A1241010800093A1941C6
|
||||||
:1003F0003A1941477EFE01CCD704FE02CCFE04FE32
|
:1003F000477EFE01CCD404FE02CCFB04FE03CC18E5
|
||||||
:1004000003CC1B05FE04CC5705FE05CC6D05FE068E
|
:1004000005FE04CC5405FE05CC6A05FE06CC770536
|
||||||
:10041000CC7A05FE07CC9405FE08CCA105FE09CCDC
|
:10041000FE07CC9105FE08CC9E05FE09CCB305FE77
|
||||||
:10042000B605FE10CCCB05FE11CCDB05FE12CCE3ED
|
:1004200010CCC805FE11CCD805FE12CCE005FE1399
|
||||||
:1004300005FE13CC1B06FE0ACCAD05FE80CC3A06A9
|
:10043000CC1806FE0ACCAA05FE80CC3706FE81CC7D
|
||||||
:10044000FE81CC31062310ACE11810CDB1047ECD75
|
:100440002E062310ACE11810CDAE047ECDC60423D9
|
||||||
:10045000C90423E521860ECDBF02E1CDD1023A1AAF
|
:10045000E521830ECDBC02E1CDCE023A1A413D32F8
|
||||||
:10046000413D321A41C27903C9E52184063A14415B
|
:100460001A41C27603C9E52181063A14414F7EFE46
|
||||||
:100470004F7EFEFFCAAB04F523462B79A04FF1B99E
|
:10047000FFCAA804F523462B79A04FF1B9280B0633
|
||||||
:10048000280B06000E07097E4F092318E023234E90
|
:10048000000E07097E4F092318E023234E233A1557
|
||||||
:10049000233A154146A0B92B2B2B280B06000E073B
|
:100490004146A0B92B2B2B280B06000E07097E4FD7
|
||||||
:1004A000097E4F092318C6444DE1C906000E00E13C
|
:1004A000092318C6444DE1C906000E00E1C93E24E7
|
||||||
:1004B000C93E24CDB7027CCDE7027DCDE7023E6880
|
:1004B000CDB4027CCDE4027DCDE4023E68CDB40231
|
||||||
:1004C000CDB7023E20CDB702C9CDE7023E68CDB719
|
:1004C0003E20CDB402C9CDE4023E68CDB4023E2048
|
||||||
:1004D000023E20CDB702C9E5ED5B1041131A6F1340
|
:1004D000CDB402C9E5ED5B1041131A6F131A673EE4
|
||||||
:1004E0001A673E24CDB7027CCDE7027DCDE7023E00
|
:1004E00024CDB4027CCDE4027DCDE4023E68CDB4DF
|
||||||
:1004F00068CDB7023E20CDB702CD7506E1C9C5ED86
|
:1004F000023E20CDB402CD7206E1C9C5ED5B1041CC
|
||||||
:100500005B10411A1F1FE60EE5218F0E06004F09F2
|
:100500001A1F1FE60EE5218C0E06004F09CDBC0216
|
||||||
:10051000CDBF023E20CDB702E1C1C9ED5B10411352
|
:100510003E20CDB402E1C1C9ED5B1041131AF5E6EE
|
||||||
:100520001AF5E680C23C053E24CDB7023E2BCDB77E
|
:1005200080C239053E24CDB4023E2BCDB402F1CDBC
|
||||||
:1005300002F1CDE7023E68CDB70218173E24CDB7D1
|
:10053000E4023E68CDB40218173E24CDB4023E2D2D
|
||||||
:10054000023E2DCDB702F1ED44CDE7023E68CDB7B6
|
:10054000CDB402F1ED44CDE4023E68CDB402180012
|
||||||
:10055000021800CD7506C9ED5B1041131AFE4D2837
|
:10055000CD7206C9ED5B1041131AFE4D28063E4EC2
|
||||||
:10056000063E4ECDB702C93E49CDB702C9C5ED5BC7
|
:10056000CDB402C93E49CDB402C9C5ED5B10411AF4
|
||||||
:1005700010411AE638CDC904C1C9C5ED5B10411A56
|
:10057000E638CDC604C1C9C5ED5B10411A1F1F1F67
|
||||||
:100580001F1F1FE607CD50063E20CDB7023E2CCDE3
|
:10058000E607CD4D063E20CDB4023E2CCDB402C1CF
|
||||||
:10059000B702C1C9C5ED5B10411AE607CD5006C1CF
|
:10059000C9C5ED5B10411AE607CD4D06C1C9C5EDD1
|
||||||
:1005A000C9C5ED5B1041131ACDC904C1C9E5ED5BA6
|
:1005A0005B1041131ACDC604C1C9E5ED5B104113C0
|
||||||
:1005B000104113131806E5ED5B1041131A6F131A5F
|
:1005B000131806E5ED5B1041131A6F131A677CCD13
|
||||||
:1005C000677CCDE7027DCDE702E1C9C5ED5B104157
|
:1005C000E4027DCDE402E1C9C5ED5B10411A1F1FB5
|
||||||
:1005D0001A1F1F1FE607CD5006C1C9E5C5ED5B1008
|
:1005D0001FE607CD4D06C1C9E5C5ED5B1041180703
|
||||||
:1005E000411807E5C5ED5B1041131A1F1F1FE606F2
|
:1005E000E5C5ED5B1041131A1F1F1FE606F52A1023
|
||||||
:1005F000F52A10417EFEDD2809FEFD280A219F0E06
|
:1005F000417EFEDD2809FEFD280A219C0E180821F7
|
||||||
:10060000180821A70E180321AF0EF106004F097E2E
|
:10060000A40E180321AC0EF106004F097ECDB402F2
|
||||||
:10061000CDB702237ECDB702C1E1C9E5C5ED5B10C0
|
:10061000237ECDB402C1E1C9E5C5ED5B10411A1FCF
|
||||||
:10062000411A1F1F1FE606F52A10417E21B70E183A
|
:100620001F1FE606F52A10417E21B40E18D9E5C534
|
||||||
:10063000D9E5C52A174106021807E5C52A1741065C
|
:100630002A174106021807E5C52A174106017E233D
|
||||||
:10064000017E23A720FB05C24106CDBF02C1E1C93F
|
:10064000A720FB05C23E06CDBC02C1E1C9E5FE06FE
|
||||||
:10065000E5FE062811FE072815219F0E06004F090A
|
:100650002811FE072815219C0E06004F097ECDB4F7
|
||||||
:100660007ECDB702E1C921BF0ECDBF02E1C93E4137
|
:1006600002E1C921BC0ECDBC02E1C93E41CDB402BC
|
||||||
:10067000CDB702E1C978FE01C83E20CDB7023E2CBD
|
:10067000E1C978FE01C83E20CDB4023E2CCDB402C3
|
||||||
:10068000CDB702C900FF000001DC0A0027FF00000F
|
:10068000C900FF000001D90A0027FF000001A40BE8
|
||||||
:1006900001A70B002FFF000001AB0B00EDFF44FF93
|
:10069000002FFF000001A80B00EDFF44FF02AC0B90
|
||||||
:1006A00002AF0B003FFF000001B30B0037FF00005B
|
:1006A000003FFF000001B00B0037FF000001B40B5A
|
||||||
:1006B00001B70B0076FF000001BB0B00F3FF000049
|
:1006B0000076FF000001B80B00F3FF000001BD0B46
|
||||||
:1006C00001C00B00FBFF000001C30B00EDFF46FF64
|
:1006C00000FBFF000001C00B00EDFF46FF02C30B63
|
||||||
:1006D00002C60B00EDFF56FF02CB0B00EDFF5EFFE5
|
:1006D00000EDFF56FF02C80B00EDFF5EFF02CD0BE1
|
||||||
:1006E00002D00B00EBFF000001D50B0008FF00005B
|
:1006E00000EBFF000001D20B0008FF000001DC0B53
|
||||||
:1006F00001DF0B00D9FF000001EC0B00E3FF00005D
|
:1006F00000D9FF000001E90B00E3FF000001ED0B52
|
||||||
:1007000001F00B00DDFFE3FF02FC0B00FDFFE3FF48
|
:1007000000DDFFE3FF02F90B00FDFFE3FF02050C34
|
||||||
:1007100002080C00EDFFA0FF02140C00EDFFB0FF7B
|
:1007100000EDFFA0FF02110C00EDFFB0FF02150C71
|
||||||
:1007200002180C00EDFFA8FF021D0C00EDFFB8FF42
|
:1007200000EDFFA8FF021A0C00EDFFB8FF021E0C3F
|
||||||
:1007300002210C00EDFFA1FF02260C00EDFFB1FF2E
|
:1007300000EDFFA1FF02230C00EDFFB1FF02270C2B
|
||||||
:10074000022A0C00EDFFA9FF022F0C00EDFFB9FFFC
|
:1007400000EDFFA9FF022C0C00EDFFB9FF02300CF9
|
||||||
:1007500002330C00C3FF000003E00A0101C2C7001E
|
:1007500000C3FF000003DD0A0101C2C7000003DD82
|
||||||
:100760000003E00A0302800118FF000002E70A010B
|
:100760000A0302800118FF000002E40A010338FFB7
|
||||||
:100770000338FF000002EB0A010330FF000002F221
|
:10077000000002E80A010330FF000002EF0A010353
|
||||||
:100780000A010328FF000002FA0A010320FF00000B
|
:1007800028FF000002F70A010320FF000002FE0A12
|
||||||
:1007900002010B0103E9FF000002090B00DDFFE984
|
:100790000103E9FF000002060B00DDFFE9FF020F85
|
||||||
:1007A000FF02120B00FDFFE9FF021B0B0010FF0010
|
:1007A0000B00FDFFE9FF02180B0010FF0000022103
|
||||||
:1007B0000002240B0103CDFF0000032A0B0101C43A
|
:1007B0000B0103CDFF000003270B0101C4C700009C
|
||||||
:1007C000C70000032A0B020201C9FF000001300B21
|
:1007C00003270B020201C9FF0000012D0B00C0C767
|
||||||
:1007D00000C0C7000001300B0102EDFF4DFF0235E4
|
:1007D0000000012D0B0102EDFF4DFF02320B00ED79
|
||||||
:1007E0000B00EDFF45FF023A0B00C7C70000013FB9
|
:1007E000FF45FF02370B00C7C70000013C0B0105A6
|
||||||
:1007F0000B01050AFF000001440B001AFF00000175
|
:1007F0000AFF000001410B001AFF0000014B0B0033
|
||||||
:100800004E0B003AFF000003580B02098002FF0064
|
:100800003AFF000003550B02098002FF0000015F60
|
||||||
:100810000001620B0012FF0000016D0B0032FF00AF
|
:100810000B0012FF0000016A0B0032FF000003759D
|
||||||
:100820000003780B020980EDFF57FF02870B00EDF4
|
:100820000B020980EDFF57FF02840B00EDFF5FFF15
|
||||||
:10083000FF5FFF028F0B00EDFF47FF02970B00EDFC
|
:10083000028C0B00EDFF47FF02940B00EDFF4FFF12
|
||||||
:10084000FF4FFF029F0B0006C7000002830B02064A
|
:10084000029C0B0006C7000002800B02060840C095
|
||||||
:100850000840C0000001830B02060780F800000179
|
:10085000000001800B02060780F8000001350C0142
|
||||||
:10086000380C0107C6FF000002380C0108DDFF86C6
|
:1008600007C6FF000002350C0108DDFF86FF033DCF
|
||||||
:10087000FF03400C020880FDFF86FF034F0C0208B7
|
:100870000C020880FDFF86FF034C0C020880C8F8BC
|
||||||
:1008800080C8F80000015E0C01078EF80000025ECF
|
:100880000000015B0C01078EF80000025B0C010800
|
||||||
:100890000C0108DDFF8EFF03660C020880FDFF8E51
|
:10089000DDFF8EFF03630C020880FDFF8EFF0372F5
|
||||||
:1008A000FF03750C02088090F8000001840C01071A
|
:1008A0000C02088090F8000001810C0107D6FF00BF
|
||||||
:1008B000D6FF000002840C0108DDFF96FF03890CBF
|
:1008B0000002810C0108DDFF96FF03860C02088010
|
||||||
:1008C000020880FDFF96FF03950C02088094F80053
|
:1008C000FDFF96FF03920C02088094F80000019E41
|
||||||
:1008D0000001A10C0107DEFF000002A10C0108DDF0
|
:1008D0000C0107DEFF0000029E0C0108DDFF9EFFF9
|
||||||
:1008E000FF9EFF03A90C020880FDFF9EFF03B70CCB
|
:1008E00003A60C020880FDFF9EFF03B40C020880E3
|
||||||
:1008F000020880A0F8000001C50C0107E6FF000017
|
:1008F000A0F8000001C20C0107E6FF000002C20CD4
|
||||||
:1009000002C50C0108DDFFA6FF03CA0C020880FD2A
|
:100900000108DDFFA6FF03C70C020880FDFFA6FF5C
|
||||||
:10091000FFA6FF03D60C020880B0F8000001E20C2D
|
:1009100003D30C020880B0F8000001DF0C0107F6D9
|
||||||
:100920000107F6FF000002E20C0108DDFFB6FF033D
|
:10092000FF000002DF0C0108DDFFB6FF03E30C024D
|
||||||
:10093000E60C020880FDFFB6FF03F10C020880A858
|
:100930000880FDFFB6FF03EE0C020880A8F8000057
|
||||||
:10094000F8000001FC0C0107EEFF000002FC0C01A6
|
:1009400001F90C0107EEFF000002F90C0108DDFFC0
|
||||||
:1009500008DDFFAEFF03010D020880FDFFAEFF03BF
|
:10095000AEFF03FE0C020880FDFFAEFF030A0D028E
|
||||||
:100960000D0D020880B8F8000001190D0107FEFF07
|
:100960000880B8F8000001160D0107FEFF00000224
|
||||||
:10097000000002190D0108DDFFBEFF031D0D020876
|
:10097000160D0108DDFFBEFF031A0D020880FDFF02
|
||||||
:1009800080FDFFBEFF03280D02088004C7000001A0
|
:10098000BEFF03250D02088004C7000001300D01E1
|
||||||
:10099000330D0110DDFF34FF03380D020880FDFF29
|
:1009900010DDFF34FF03350D020880FDFF34FF0337
|
||||||
:1009A00034FF03440D02088005C7000001500D010B
|
:1009A000410D02088005C70000014D0D0110DDFF5B
|
||||||
:1009B00010DDFF35FF03550D020880FDFF35FF03F5
|
:1009B00035FF03520D020880FDFF35FF035E0D0277
|
||||||
:1009C000610D02088009CF0000016D0D0111EDFFDE
|
:1009C000088009CF0000016A0D0111EDFF4ACF0236
|
||||||
:1009D0004ACF02760D0112EDFF42CF027F0D0112C8
|
:1009D000730D0112EDFF42CF027C0D0112DDFF0904
|
||||||
:1009E000DDFF09CF02880D0112FDFF09CF02910D35
|
:1009E000CF02850D0112FDFF09CF028E0D0112030A
|
||||||
:1009F000011203CF0000019A0D0111DDFF23FF0258
|
:1009F000CF000001970D0111DDFF23FF029C0D00C8
|
||||||
:100A00009F0D00FDFF23FF02A80D000BCF0000018A
|
:100A0000FDFF23FF02A50D000BCF000001AE0D017D
|
||||||
:100A1000B10D0111DDFF2BFF02B60D00FDFF2BFF15
|
:100A100011DDFF2BFF02B30D00FDFF2BFF02BC0D0C
|
||||||
:100A200002BF0D0001CF000003C80D03118009DDD6
|
:100A20000001CF000003C50D03118009DDFF21FF88
|
||||||
:100A3000FF21FF04CF0D010AFDFF21FF04D70D01A7
|
:100A300004CC0D010AFDFF21FF04D40D010A2AFF99
|
||||||
:100A40000A2AFF000003DF0D020980EDFF4BCF04EF
|
:100A4000000003DC0D020980EDFF4BCF04E80D042C
|
||||||
:100A5000EB0D0412800A81DDFF2AFF04F60D010A66
|
:100A500012800A81DDFF2AFF04F30D010AFDFF2A3F
|
||||||
:100A6000FDFF2AFF04020E010A22FF0000030E0E02
|
:100A6000FF04FF0D010A22FF0000030B0E020A80A3
|
||||||
:100A7000020A80EDFF43CF041A0E030A8012DDFF45
|
:100A7000EDFF43CF04170E030A8012DDFF22CF04DF
|
||||||
:100A800022CF04240E020A80FDFF22CF04300E0282
|
:100A8000210E020A80FDFF22CF042D0E020A80F9FA
|
||||||
:100A90000A80F9FF0000013C0E00DDFFF9FF02466D
|
:100A9000FF000001390E00DDFFF9FF02430E00FDEB
|
||||||
:100AA0000E00FDFFF9FF02500E00C5CF0000015AF5
|
:100AA000FFF9FF024D0E00C5CF000001570E0113E4
|
||||||
:100AB0000E0113DDFFE5FF02600E00FDFFE5FF0202
|
:100AB000DDFFE5FF025D0E00FDFFE5FF02650E00B4
|
||||||
:100AC000680E00C1CF000001700E0113DDFFE1FFD1
|
:100AC000C1CF0000016D0E0113DDFFE1FF02730EC7
|
||||||
:100AD00002760E00FDFFE1FF027E0E004E4F500039
|
:100AD00000FDFFE1FF027B0E004E4F50004A502008
|
||||||
:100AE0004A5020002C20004A5220004A5220432C19
|
:100AE000002C20004A5220004A5220432C20004A69
|
||||||
:100AF00020004A52204E432C20004A52205A2C20DB
|
:100AF00052204E432C20004A52205A2C20004A52A9
|
||||||
:100B0000004A52204E5A2C20004A502028484C2996
|
:100B0000204E5A2C20004A502028484C2920004AC8
|
||||||
:100B100020004A50202849582920004A50202849BE
|
:100B100050202849582920004A5020284959292086
|
||||||
:100B200059292000444A4E5A200043414C4C200091
|
:100B200000444A4E5A200043414C4C200052455448
|
||||||
:100B3000524554200052455449005245544E0052EB
|
:100B3000200052455449005245544E00525354200F
|
||||||
:100B4000535420004C4420412C28424329004C445B
|
:100B4000004C4420412C28424329004C4420412C95
|
||||||
:100B500020412C28444529004C4420412C28006881
|
:100B500028444529004C4420412C28006829004C99
|
||||||
:100B600029004C4420284243292C2041004C442099
|
:100B60004420284243292C2041004C44202844455D
|
||||||
:100B7000284445292C2041004C4420280068292C79
|
:100B7000292C2041004C4420280068292C204100C9
|
||||||
:100B80002041004C4420004C4420412C2049004C82
|
:100B80004C4420004C4420412C2049004C4420413E
|
||||||
:100B90004420412C2052004C4420492C2041004C40
|
:100B90002C2052004C4420492C2041004C4420522F
|
||||||
:100BA0004420522C2041004441410043504C004E0F
|
:100BA0002C2041004441410043504C004E45470039
|
||||||
:100BB000454700434346005343460048414C5400D8
|
:100BB000434346005343460048414C5400444900D7
|
||||||
:100BC000444900454900494D203000494D2031003D
|
:100BC000454900494D203000494D203100494D2014
|
||||||
:100BD000494D20320045582044452C20484C0045C2
|
:100BD000320045582044452C20484C0045582041BF
|
||||||
:100BE000582041462C204146E280B200455858002A
|
:100BE000462C204146E280B2004558580045582026
|
||||||
:100BF000455820285350292C20484C00455820287F
|
:100BF000285350292C20484C004558202853502970
|
||||||
:100C00005350292C20495800455820285350292C4E
|
:100C00002C20495800455820285350292C20495958
|
||||||
:100C1000204959004C4449004C444952004C44443A
|
:100C1000004C4449004C444952004C4444004C446C
|
||||||
:100C2000004C444452004350490043504952004351
|
:100C2000445200435049004350495200435044004D
|
||||||
:100C3000504400435044520041444420412C200081
|
:100C3000435044520041444420412C20004144444C
|
||||||
:100C400041444420412C202849582B006829004168
|
:100C400020412C202849582B006829004144442089
|
||||||
:100C5000444420412C202849592B00682900414454
|
:100C5000412C202849592B00682900414443204158
|
||||||
:100C60004320412C200041444320412C2028495856
|
:100C60002C200041444320412C202849582B006867
|
||||||
:100C70002B0068290041444320412C202849592B4E
|
:100C7000290041444320412C202849592B00682950
|
||||||
:100C800000682900535542200053554220284958F6
|
:100C8000005355422000535542202849582B0068F4
|
||||||
:100C90002B00682900535542202849592B00682908
|
:100C90002900535542202849592B00682900534206
|
||||||
:100CA0000053424320412C200053424320412C2832
|
:100CA0004320412C200053424320412C2849582BFB
|
||||||
:100CB00049582B0068290053424320412C284959A8
|
:100CB0000068290053424320412C2849592B0068E1
|
||||||
:100CC0002B00682900414E442000414E4420284911
|
:100CC0002900414E442000414E44202849582B0021
|
||||||
:100CD000582B00682900414E44202849592B0068B0
|
:100CD000682900414E44202849592B006829004FBB
|
||||||
:100CE00029004F5220004F52202849582B006829D4
|
:100CE0005220004F52202849582B006829004F52AB
|
||||||
:100CF000004F52202849592B00682900584F522094
|
:100CF000202849592B00682900584F522000584F8E
|
||||||
:100D000000584F52202849582B00682900584F524C
|
:100D000052202849582B00682900584F5220284962
|
||||||
:100D1000202849592B0068290043502000435020C7
|
:100D1000592B00682900435020004350202849588F
|
||||||
:100D20002849582B006829004350202849592B0096
|
:100D20002B006829004350202849592B00682900CE
|
||||||
:100D3000682900494E432000494E43202849582B3A
|
:100D3000494E432000494E43202849582B0068293A
|
||||||
:100D400000682900494E43202849592B0068290092
|
:100D400000494E43202849592B0068290044454357
|
||||||
:100D50004445432000444543202849582B00682936
|
:100D50002000444543202849582B00682900444579
|
||||||
:100D600000444543202849592B0068290041444448
|
:100D600043202849592B0068290041444420484C1D
|
||||||
:100D700020484C2C200041444320484C2C20005358
|
:100D70002C200041444320484C2C20005342432067
|
||||||
:100D8000424320484C2C20004144442049582C2008
|
:100D8000484C2C20004144442049582C2000414428
|
||||||
:100D9000004144442049592C2000494E4320004939
|
:100D9000442049592C2000494E432000494E43200D
|
||||||
:100DA0004E432049582C2000494E432049592C20BD
|
:100DA00049582C2000494E432049592C20004445E5
|
||||||
:100DB0000044454320004445432049582C2000442A
|
:100DB0004320004445432049582C2000444543200B
|
||||||
:100DC00045432049592C20004C4420002C20004C45
|
:100DC00049592C20004C4420002C20004C44204940
|
||||||
:100DD000442049582C20004C442049592C20004CD8
|
:100DD000582C20004C442049592C20004C442048D9
|
||||||
:100DE0004420484C2C2028006829004C4420002C2A
|
:100DE0004C2C2028006829004C4420002C2028008E
|
||||||
:100DF0002028006829004C442049582C20280068ED
|
:100DF0006829004C442049582C2028006829004CC0
|
||||||
:100E000029004C442049592C2028006829004C44D2
|
:100E0000442049592C2028006829004C44202800FF
|
||||||
:100E100020280068292C20484C004C4420280068D9
|
:100E100068292C20484C004C4420280068292C20AC
|
||||||
:100E2000292C20004C4420280068292C20495800F7
|
:100E2000004C4420280068292C204958004C4420BC
|
||||||
:100E30004C4420280068292C204959004C44205358
|
:100E3000280068292C204959004C442053502C206C
|
||||||
:100E4000502C20484C004C442053502C2049580032
|
:100E4000484C004C442053502C204958004C44201E
|
||||||
:100E50004C442053502C20495900505553482000F1
|
:100E500053502C20495900505553482000505553A9
|
||||||
:100E6000505553482049580050555348204959007F
|
:100E6000482049580050555348204959005055537F
|
||||||
:100E7000505553482000505553482049580050556C
|
:100E700048200050555348204958005055534820A9
|
||||||
:100E80005348204959002E3F2E0020202020004E9C
|
:100E80004959002E3F2E0020202020004E5A5A00A3
|
||||||
:100E90005A5A004E434300504F504550004D0042B7
|
:100E90004E434300504F504550004D00424344459F
|
||||||
:100EA000434445484C5350424344454958535042AB
|
:100EA000484C5350424344454958535042434445AB
|
||||||
:100EB0004344454959535042434445484C414628D0
|
:100EB0004959535042434445484C414628484C29DF
|
||||||
:100EC000484C2900CDB702C9C5D5E5CDF802F5F1EA
|
:100EC00000CDB402C9C5D5E5CDF502F5F1E1D1C13A
|
||||||
:100ED000E1D1C1C93E00C93E08D3F4012800CDF1DB
|
:100ED000C93E00C9F5C5D53E08D3F4012800CDF4BC
|
||||||
:100EE0000E3E00D3F4012400CDF10E1B7AB320E7AF
|
:100EE0000E3E00D3F4012400CDF40E1B7AB320E7AC
|
||||||
:100EF000C9ED44ED44ED44ED440B79B0C2F10EC9A7
|
:100EF000D1C1F1C9ED44ED44ED44ED440B79B0C2EC
|
||||||
:100F00005A3843204D6F6E69746F722056322062DA
|
:100F0000F40EC95A3843204D6F6E69746F722056C3
|
||||||
:100F1000792044656E6E69732047756E696120287B
|
:100F1000322062792044656E6E69732047756E6970
|
||||||
:100F200032303232290073796E3F00636D643F00C6
|
:100F200061202832303232290073796E3F00636DC0
|
||||||
:100F300042415345203020203120203220203320D0
|
:100F3000643F0042415345203020203120203220A0
|
||||||
:100F4000203420203520203620203700CD12033ECB
|
:100F4000203320203420203520203620203700CDAB
|
||||||
:100F5000A7D3063E0ED3063E00D304212C10220454
|
:100F50000F033EA7D3063E0ED3063E00D304212F37
|
||||||
:100F60004221000022FC4022FE403E42ED47ED5E61
|
:100F60001022044221000022FC4022FE403E42EDBD
|
||||||
:100F700021A710CDBF02FBCDDD103E43CD7D10CDAE
|
:100F700047ED5E21AA10CDBC02FBCDE0103E43CD73
|
||||||
:100F80005010DA7A0FFE04CAE30FFE18CA7A0FFE79
|
:100F80008010CD5310DA7D0FFE04CAE60FFE18CA9A
|
||||||
:100F900001CA970FC3EB0FCD5010DACF104732FBC9
|
:100F90007D0FFE01CA9A0FC3EE0FCD5310DAD210A7
|
||||||
:100FA00040CD5010DACF1080FEFFC2EB0F3D781F0E
|
:100FA0004732FB40CD5310DAD21080FEFFC2EE0F65
|
||||||
:100FB000E67F67783D0FE6806F1100441906800ECA
|
:100FB0003D781FE67F67783D0FE6806F110044198A
|
||||||
:100FC00000E5CD5010DACF10E177230C05C2C10F38
|
:100FC00006800E00E5CD5310DAD210E177230C0530
|
||||||
:100FD000CD5010DACF10570CCD5010DACF105F0C77
|
:100FD000C2C40FCD5310DAD210570CCD5310DAD251
|
||||||
:100FE000C3C1103E06CD7D10C325103E18CD7D1027
|
:100FE000105F0CC3C4103E06CD8010C328103E18FD
|
||||||
:100FF0003E18CD7D103E18CD7D103E18CD7D103EA3
|
:100FF000CD80103E18CD80103E18CD80103E18CD0B
|
||||||
:1010000018CD7D103E18CD7D103E18CD7D103E18B8
|
:1010000080103E18CD80103E18CD80103E18CD8047
|
||||||
:10101000CD7D103E18CD7D103E18CD7D103E18219F
|
:10101000103E18CD80103E18CD80103E18CD8010A7
|
||||||
:101020008E10CDBF02F3CDD102C39900F308D92AA7
|
:101020003E18219110CDBC02F3CDCE02C39600F341
|
||||||
:10103000FC402322FC40110404ED52C24B1021005D
|
:1010300008D92AFC402322FC40110404ED52C24E80
|
||||||
:101040000022FC402AFE402322FE4008D9FBED4D41
|
:101040001021000022FC402AFE402322FE4008D945
|
||||||
:10105000F321000022FC4022FE40FBCD1B032AFEB0
|
:10105000FBED4DF321000022FC4022FE40FBCD18A9
|
||||||
:10106000407DFE03CA7B10AFD309DB09E601CA5EEF
|
:10106000032AFE407DFE03CA7E10AFD309DB09E6EA
|
||||||
:1010700010DB08F5CD1203F1373FC937C9D308CDCE
|
:1010700001CA6110DB08F5CD0F03F1373FC937C94D
|
||||||
:101080008310C9973CD309DB09CB4728F6C94572C1
|
:10108000D308CD8610C9973CD309DB09CB4728F696
|
||||||
:10109000726F723A20756E6578706563746564204E
|
:10109000C94572726F723A20756E657870656374B7
|
||||||
:1010A000627974650D0A00417761697420786D6F0B
|
:1010A000656420627974650D0A0041776169742076
|
||||||
:1010B00064656D20636F6E6E656374696F6E0D0A93
|
:1010B000786D6F64656D20636F6E6E656374696FC4
|
||||||
:1010C000003E06CD7D10CD5010DAC110C3850F3E15
|
:1010C0006E0D0A003E06CD8010CD5310DAC410C359
|
||||||
:1010D00015CD7D10CD5010DACF10C3850F21FF0044
|
:1010D000880F3E15CD8010CD5310DAD210C3880F83
|
||||||
:0C10E00001010000000000ED42C818F7FC
|
:0F10E00021FF0001010000000000ED42C818F7D9
|
||||||
:00000001FF
|
:00000001FF
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,237 +1,238 @@
|
|||||||
;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 0x91
|
AY0_WRITE_REG equ 0x8E
|
||||||
A_RTS_OFF equ 0x312
|
A_RTS_OFF equ 0x30F
|
||||||
A_RTS_ON equ 0x31B
|
A_RTS_ON equ 0x318
|
||||||
CMD_DASM equ 0x239
|
CMD_DASM equ 0x236
|
||||||
CMD_EXEC equ 0x12F
|
CMD_EXEC equ 0x12C
|
||||||
CMD_IO_READ equ 0x21D
|
CMD_IO_READ equ 0x21A
|
||||||
CMD_IO_WRITE equ 0x1F4
|
CMD_IO_WRITE equ 0x1F1
|
||||||
CMD_SET equ 0x1B8
|
CMD_SET equ 0x1B5
|
||||||
CMD_SET_END equ 0x1EE
|
CMD_SET_END equ 0x1EB
|
||||||
CMD_SET_LOOP equ 0x1D3
|
CMD_SET_LOOP equ 0x1D0
|
||||||
CMD_SYNTAX_ERROR equ 0x272
|
CMD_SYNTAX_ERROR equ 0x26F
|
||||||
CMD_VIEW equ 0x14E
|
CMD_VIEW equ 0x14B
|
||||||
CMD_VIEW_END equ 0x1B2
|
CMD_VIEW_END equ 0x1AF
|
||||||
CMD_VIEW_ROW equ 0x187
|
CMD_VIEW_ROW equ 0x184
|
||||||
CMD_VIEW_ROW_LOOP equ 0x199
|
CMD_VIEW_ROW_LOOP equ 0x196
|
||||||
CONSOLE_INIT equ 0x27E
|
CONSOLE_INIT equ 0x27B
|
||||||
CONSOLE_INIT_CTC equ 0x27E
|
CONSOLE_INIT_CTC equ 0x27B
|
||||||
CONSOLE_INIT_SIO equ 0x286
|
CONSOLE_INIT_SIO equ 0x283
|
||||||
DHEX_TO_BYTE equ 0x324
|
DHEX_TO_BYTE equ 0x321
|
||||||
DHEX_TO_BYTE_FAILED equ 0x340
|
DHEX_TO_BYTE_FAILED equ 0x33D
|
||||||
EXEC_RST_08 equ 0xEC4
|
EXEC_RST_08 equ 0xEC1
|
||||||
EXEC_RST_10 equ 0xEC8
|
EXEC_RST_10 equ 0xEC5
|
||||||
EXEC_RST_18 equ 0xED4
|
EXEC_RST_18 equ 0xED1
|
||||||
HEX_TO_BIN equ 0x344
|
HEX_TO_BIN equ 0x341
|
||||||
HEX_TO_BIN_2 equ 0x352
|
HEX_TO_BIN_2 equ 0x34F
|
||||||
HEX_TO_INVALID_2 equ 0x359
|
HEX_TO_INVALID_2 equ 0x356
|
||||||
INT_VEC equ 0x1B
|
INT_VEC equ 0x1B
|
||||||
Includes equ 0x27E
|
Includes equ 0x27B
|
||||||
MSG_CLEAR equ 0x30A
|
MSG_CLEAR equ 0x307
|
||||||
MSG_ERROR equ 0x108E
|
MSG_ERROR equ 0x1091
|
||||||
MSG_START equ 0x10A7
|
MSG_START equ 0x10AA
|
||||||
PROMPT_BEGIN equ 0x99
|
PROMPT_BEGIN equ 0x96
|
||||||
PROMPT_BEGIN_READ_BACKSPACE equ 0xD6
|
PROMPT_BEGIN_READ_BACKSPACE equ 0xD3
|
||||||
PROMPT_BEGIN_READ_LOOP equ 0xA5
|
PROMPT_BEGIN_READ_LOOP equ 0xA2
|
||||||
PROMPT_BEGIN_READ_PROCESS equ 0xFC
|
PROMPT_BEGIN_READ_PROCESS equ 0xF9
|
||||||
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 0x35B
|
STRCONV_BYTES_TO_HEX equ 0x358
|
||||||
STRCONV_BYTES_TO_HEX_1 equ 0x36A
|
STRCONV_BYTES_TO_HEX_1 equ 0x367
|
||||||
STRCONV_BYTES_TO_HEX_2 equ 0x374
|
STRCONV_BYTES_TO_HEX_2 equ 0x371
|
||||||
STR_Banner_Start equ 0xF00
|
STR_Banner_Start equ 0xF03
|
||||||
STR_HEXDUMP_HEADER equ 0xF30
|
STR_HEXDUMP_HEADER equ 0xF33
|
||||||
STR_SyntaxError equ 0xF26
|
STR_SyntaxError equ 0xF29
|
||||||
STR_Unknown equ 0xF2B
|
STR_Unknown equ 0xF2E
|
||||||
beep equ 0xED7
|
beep equ 0xED4
|
||||||
beep_pause equ 0xEF1
|
beep_loop equ 0xED7
|
||||||
dasm_00 equ 0xADC
|
beep_pause equ 0xEF4
|
||||||
dasm_01 equ 0xDC8
|
dasm_00 equ 0xAD9
|
||||||
dasm_02 equ 0xB62
|
dasm_01 equ 0xDC5
|
||||||
dasm_03 equ 0xD9A
|
dasm_02 equ 0xB5F
|
||||||
dasm_08 equ 0xBDF
|
dasm_03 equ 0xD97
|
||||||
dasm_09 equ 0xD6D
|
dasm_08 equ 0xBDC
|
||||||
dasm_0A equ 0xB44
|
dasm_09 equ 0xD6A
|
||||||
dasm_0B equ 0xDB1
|
dasm_0A equ 0xB41
|
||||||
dasm_10 equ 0xB24
|
dasm_0B equ 0xDAE
|
||||||
dasm_12 equ 0xB6D
|
dasm_10 equ 0xB21
|
||||||
dasm_18 equ 0xAE7
|
dasm_12 equ 0xB6A
|
||||||
dasm_1A equ 0xB4E
|
dasm_18 equ 0xAE4
|
||||||
dasm_20 equ 0xB01
|
dasm_1A equ 0xB4B
|
||||||
dasm_22 equ 0xE0E
|
dasm_20 equ 0xAFE
|
||||||
dasm_27 equ 0xBA7
|
dasm_22 equ 0xE0B
|
||||||
dasm_28 equ 0xAFA
|
dasm_27 equ 0xBA4
|
||||||
dasm_2A equ 0xDDF
|
dasm_28 equ 0xAF7
|
||||||
dasm_2F equ 0xBAB
|
dasm_2A equ 0xDDC
|
||||||
dasm_30 equ 0xAF2
|
dasm_2F equ 0xBA8
|
||||||
dasm_32 equ 0xB78
|
dasm_30 equ 0xAEF
|
||||||
dasm_37 equ 0xBB7
|
dasm_32 equ 0xB75
|
||||||
dasm_38 equ 0xAEB
|
dasm_37 equ 0xBB4
|
||||||
dasm_3A equ 0xB58
|
dasm_38 equ 0xAE8
|
||||||
dasm_3F equ 0xBB3
|
dasm_3A equ 0xB55
|
||||||
dasm_76 equ 0xBBB
|
dasm_3F equ 0xBB0
|
||||||
dasm_80C6 equ 0xC38
|
dasm_76 equ 0xBB8
|
||||||
dasm_BE equ 0xBD5
|
dasm_80C6 equ 0xC35
|
||||||
dasm_C3 equ 0xAE0
|
dasm_BE equ 0xBD2
|
||||||
dasm_C88E equ 0xC5E
|
dasm_C3 equ 0xADD
|
||||||
dasm_C9 equ 0xB30
|
dasm_C88E equ 0xC5B
|
||||||
dasm_CD equ 0xB2A
|
dasm_C9 equ 0xB2D
|
||||||
dasm_D9 equ 0xBEC
|
dasm_CD equ 0xB27
|
||||||
dasm_DD equ 0xB12
|
dasm_D9 equ 0xBE9
|
||||||
dasm_DD_01 equ 0xDCF
|
dasm_DD equ 0xB0F
|
||||||
dasm_DD_09 equ 0xD88
|
dasm_DD_01 equ 0xDCC
|
||||||
dasm_DD_22 equ 0xE24
|
dasm_DD_09 equ 0xD85
|
||||||
dasm_DD_23 equ 0xD9F
|
dasm_DD_22 equ 0xE21
|
||||||
dasm_DD_2A equ 0xDF6
|
dasm_DD_23 equ 0xD9C
|
||||||
dasm_DD_2B equ 0xDB6
|
dasm_DD_2A equ 0xDF3
|
||||||
dasm_DD_34 equ 0xD38
|
dasm_DD_2B equ 0xDB3
|
||||||
dasm_DD_35 equ 0xD55
|
dasm_DD_34 equ 0xD35
|
||||||
dasm_DD_86 equ 0xC40
|
dasm_DD_35 equ 0xD52
|
||||||
dasm_DD_8E equ 0xC66
|
dasm_DD_86 equ 0xC3D
|
||||||
dasm_DD_96 equ 0xC89
|
dasm_DD_8E equ 0xC63
|
||||||
dasm_DD_9E equ 0xCA9
|
dasm_DD_96 equ 0xC86
|
||||||
dasm_DD_A6 equ 0xCCA
|
dasm_DD_9E equ 0xCA6
|
||||||
dasm_DD_AE equ 0xD01
|
dasm_DD_A6 equ 0xCC7
|
||||||
dasm_DD_B6 equ 0xCE6
|
dasm_DD_AE equ 0xCFE
|
||||||
dasm_DD_BE equ 0xD1D
|
dasm_DD_B6 equ 0xCE3
|
||||||
dasm_DD_E1 equ 0xE76
|
dasm_DD_BE equ 0xD1A
|
||||||
dasm_DD_E3 equ 0xBFC
|
dasm_DD_E1 equ 0xE73
|
||||||
dasm_DD_E5 equ 0xE60
|
dasm_DD_E3 equ 0xBF9
|
||||||
dasm_DD_F9 equ 0xE46
|
dasm_DD_E5 equ 0xE5D
|
||||||
dasm_E1 equ 0xE70
|
dasm_DD_F9 equ 0xE43
|
||||||
dasm_E3 equ 0xBF0
|
dasm_E1 equ 0xE6D
|
||||||
dasm_E5 equ 0xE5A
|
dasm_E3 equ 0xBED
|
||||||
dasm_E9 equ 0xB09
|
dasm_E5 equ 0xE57
|
||||||
dasm_ED_42 equ 0xD7F
|
dasm_E9 equ 0xB06
|
||||||
dasm_ED_43 equ 0xE1A
|
dasm_ED_42 equ 0xD7C
|
||||||
dasm_ED_44 equ 0xBAF
|
dasm_ED_43 equ 0xE17
|
||||||
dasm_ED_45 equ 0xB3A
|
dasm_ED_44 equ 0xBAC
|
||||||
dasm_ED_46 equ 0xBC6
|
dasm_ED_45 equ 0xB37
|
||||||
dasm_ED_4A equ 0xD76
|
dasm_ED_46 equ 0xBC3
|
||||||
dasm_ED_4B equ 0xDEB
|
dasm_ED_4A equ 0xD73
|
||||||
dasm_ED_4D equ 0xB35
|
dasm_ED_4B equ 0xDE8
|
||||||
dasm_ED_56 equ 0xBCB
|
dasm_ED_4D equ 0xB32
|
||||||
dasm_ED_5E equ 0xBD0
|
dasm_ED_56 equ 0xBC8
|
||||||
dasm_ED_A0 equ 0xC14
|
dasm_ED_5E equ 0xBCD
|
||||||
dasm_ED_A1 equ 0xC26
|
dasm_ED_A0 equ 0xC11
|
||||||
dasm_ED_A8 equ 0xC1D
|
dasm_ED_A1 equ 0xC23
|
||||||
dasm_ED_A9 equ 0xC2F
|
dasm_ED_A8 equ 0xC1A
|
||||||
dasm_ED_B0 equ 0xC18
|
dasm_ED_A9 equ 0xC2C
|
||||||
dasm_ED_B1 equ 0xC2A
|
dasm_ED_B0 equ 0xC15
|
||||||
dasm_ED_B8 equ 0xC21
|
dasm_ED_B1 equ 0xC27
|
||||||
dasm_ED_B9 equ 0xC33
|
dasm_ED_B8 equ 0xC1E
|
||||||
dasm_F3 equ 0xBC0
|
dasm_ED_B9 equ 0xC30
|
||||||
dasm_F9 equ 0xE3C
|
dasm_F3 equ 0xBBD
|
||||||
dasm_FB equ 0xBC3
|
dasm_F9 equ 0xE39
|
||||||
dasm_FD equ 0xB1B
|
dasm_FB equ 0xBC0
|
||||||
dasm_FD_01 equ 0xDD7
|
dasm_FD equ 0xB18
|
||||||
dasm_FD_09 equ 0xD91
|
dasm_FD_01 equ 0xDD4
|
||||||
dasm_FD_22 equ 0xE30
|
dasm_FD_09 equ 0xD8E
|
||||||
dasm_FD_23 equ 0xDA8
|
dasm_FD_22 equ 0xE2D
|
||||||
dasm_FD_2A equ 0xE02
|
dasm_FD_23 equ 0xDA5
|
||||||
dasm_FD_2B equ 0xDBF
|
dasm_FD_2A equ 0xDFF
|
||||||
dasm_FD_34 equ 0xD44
|
dasm_FD_2B equ 0xDBC
|
||||||
dasm_FD_35 equ 0xD61
|
dasm_FD_34 equ 0xD41
|
||||||
dasm_FD_86 equ 0xC4F
|
dasm_FD_35 equ 0xD5E
|
||||||
dasm_FD_8E equ 0xC75
|
dasm_FD_86 equ 0xC4C
|
||||||
dasm_FD_96 equ 0xC95
|
dasm_FD_8E equ 0xC72
|
||||||
dasm_FD_9E equ 0xCB7
|
dasm_FD_96 equ 0xC92
|
||||||
dasm_FD_A6 equ 0xCD6
|
dasm_FD_9E equ 0xCB4
|
||||||
dasm_FD_AE equ 0xD0D
|
dasm_FD_A6 equ 0xCD3
|
||||||
dasm_FD_B6 equ 0xCF1
|
dasm_FD_AE equ 0xD0A
|
||||||
dasm_FD_BE equ 0xD28
|
dasm_FD_B6 equ 0xCEE
|
||||||
dasm_FD_E1 equ 0xE7E
|
dasm_FD_BE equ 0xD25
|
||||||
dasm_FD_E3 equ 0xC08
|
dasm_FD_E1 equ 0xE7B
|
||||||
dasm_FD_E5 equ 0xE68
|
dasm_FD_E3 equ 0xC05
|
||||||
dasm_FD_F9 equ 0xE50
|
dasm_FD_E5 equ 0xE65
|
||||||
dasm_FF equ 0xB3F
|
dasm_FD_F9 equ 0xE4D
|
||||||
dasm_UU equ 0xE86
|
dasm_FF equ 0xB3C
|
||||||
dasm_UW equ 0xE8A
|
dasm_UU equ 0xE83
|
||||||
dasm__AND equ 0xCC5
|
dasm_UW equ 0xE87
|
||||||
dasm__CP equ 0xD19
|
dasm__AND equ 0xCC2
|
||||||
dasm__DEC equ 0xD50
|
dasm__CP equ 0xD16
|
||||||
dasm__ED_47 equ 0xB97
|
dasm__DEC equ 0xD4D
|
||||||
dasm__ED_4F equ 0xB9F
|
dasm__ED_47 equ 0xB94
|
||||||
dasm__ED_57 equ 0xB87
|
dasm__ED_4F equ 0xB9C
|
||||||
dasm__ED_5F equ 0xB8F
|
dasm__ED_57 equ 0xB84
|
||||||
dasm__INC equ 0xD33
|
dasm__ED_5F equ 0xB8C
|
||||||
dasm__LD equ 0xB83
|
dasm__INC equ 0xD30
|
||||||
dasm__OR equ 0xCE2
|
dasm__LD equ 0xB80
|
||||||
dasm__SBC equ 0xCA1
|
dasm__OR equ 0xCDF
|
||||||
dasm__SUB equ 0xC84
|
dasm__SBC equ 0xC9E
|
||||||
dasm__XOR equ 0xCFC
|
dasm__SUB equ 0xC81
|
||||||
dasm_opcode_table equ 0x684
|
dasm__XOR equ 0xCF9
|
||||||
dasm_print16hex_addr equ 0x4B1
|
dasm_opcode_table equ 0x681
|
||||||
dasm_print8hex equ 0x4C9
|
dasm_print16hex_addr equ 0x4AE
|
||||||
dasm_printFlags_table equ 0xE8F
|
dasm_print8hex equ 0x4C6
|
||||||
dasm_printRegister8_table equ 0xE9F
|
dasm_printFlags_table equ 0xE8C
|
||||||
dasm_printRegister8_table_HL equ 0xEBF
|
dasm_printRegister8_table equ 0xE9C
|
||||||
dasm_printRegisterIX_table equ 0xEA7
|
dasm_printRegister8_table_HL equ 0xEBC
|
||||||
dasm_printRegisterIY_table equ 0xEAF
|
dasm_printRegisterIX_table equ 0xEA4
|
||||||
dasm_printRegisterSP_table equ 0xEB7
|
dasm_printRegisterIY_table equ 0xEAC
|
||||||
disassemble equ 0x375
|
dasm_printRegisterSP_table equ 0xEB4
|
||||||
disassemble_continue equ 0x45B
|
disassemble equ 0x372
|
||||||
disassemble_err equ 0x44B
|
disassemble_continue equ 0x458
|
||||||
disassemble_next equ 0x379
|
disassemble_err equ 0x448
|
||||||
disassemble_print_opcode_params_end equ 0x448
|
disassemble_next equ 0x376
|
||||||
disassemble_print_opcode_params_loop equ 0x3F4
|
disassemble_print_opcode_params_end equ 0x445
|
||||||
disassemble_print_opcode_raw equ 0x3B6
|
disassemble_print_opcode_params_loop equ 0x3F1
|
||||||
disassemble_print_opcode_raw_fill equ 0x3CA
|
disassemble_print_opcode_raw equ 0x3B3
|
||||||
disassemble_table_first_match equ 0x48D
|
disassemble_print_opcode_raw_fill equ 0x3C7
|
||||||
disassemble_table_found equ 0x4A7
|
disassemble_table_first_match equ 0x48A
|
||||||
disassemble_table_notfound equ 0x4AB
|
disassemble_table_found equ 0x4A4
|
||||||
disassemble_table_seek equ 0x469
|
disassemble_table_notfound equ 0x4A8
|
||||||
disassemble_table_seek_loop equ 0x46D
|
disassemble_table_seek equ 0x466
|
||||||
mon_start_complete equ 0x7E
|
disassemble_table_seek_loop equ 0x46A
|
||||||
|
mon_start_complete equ 0x7B
|
||||||
mon_start_init_ctc equ 0x50
|
mon_start_init_ctc equ 0x50
|
||||||
mon_start_init_serial equ 0x67
|
mon_start_init_serial equ 0x64
|
||||||
mon_start_init_sound equ 0x50
|
mon_start_init_sound equ 0x50
|
||||||
mon_start_ram equ 0x6A
|
mon_start_ram equ 0x67
|
||||||
mon_start_ram_loop equ 0x73
|
mon_start_ram_loop equ 0x70
|
||||||
mon_var_template equ 0x44
|
mon_var_template equ 0x44
|
||||||
mon_var_template_end equ 0x402A
|
mon_var_template_end equ 0x6E
|
||||||
param_01 equ 0x4D7
|
param_01 equ 0x4D4
|
||||||
param_02 equ 0x4FE
|
param_02 equ 0x4FB
|
||||||
param_03 equ 0x51B
|
param_03 equ 0x518
|
||||||
param_03_done equ 0x553
|
param_03_done equ 0x550
|
||||||
param_03_neg equ 0x53C
|
param_03_neg equ 0x539
|
||||||
param_04 equ 0x557
|
param_04 equ 0x554
|
||||||
param_04_i equ 0x567
|
param_04_i equ 0x564
|
||||||
param_05 equ 0x56D
|
param_05 equ 0x56A
|
||||||
param_06 equ 0x57A
|
param_06 equ 0x577
|
||||||
param_07 equ 0x594
|
param_07 equ 0x591
|
||||||
param_08 equ 0x5A1
|
param_08 equ 0x59E
|
||||||
param_09 equ 0x5B6
|
param_09 equ 0x5B3
|
||||||
param_09_0A equ 0x5BC
|
param_09_0A equ 0x5B9
|
||||||
param_0A equ 0x5AD
|
param_0A equ 0x5AA
|
||||||
param_10 equ 0x5CB
|
param_10 equ 0x5C8
|
||||||
param_11 equ 0x5DB
|
param_11 equ 0x5D8
|
||||||
param_11_12 equ 0x5EA
|
param_11_12 equ 0x5E7
|
||||||
param_11_12_all equ 0x60A
|
param_11_12_all equ 0x607
|
||||||
param_11_12_def equ 0x5FD
|
param_11_12_def equ 0x5FA
|
||||||
param_11_12_ix equ 0x602
|
param_11_12_ix equ 0x5FF
|
||||||
param_11_12_iy equ 0x607
|
param_11_12_iy equ 0x604
|
||||||
param_12 equ 0x5E3
|
param_12 equ 0x5E0
|
||||||
param_13 equ 0x61B
|
param_13 equ 0x618
|
||||||
param_80 equ 0x63A
|
param_80 equ 0x637
|
||||||
param_80_seek equ 0x641
|
param_80_seek equ 0x63E
|
||||||
param_81 equ 0x631
|
param_81 equ 0x62E
|
||||||
param_comma equ 0x675
|
param_comma equ 0x672
|
||||||
param_printRegister equ 0x650
|
param_printRegister equ 0x64D
|
||||||
param_printRegisterA equ 0x66E
|
param_printRegisterA equ 0x66B
|
||||||
param_printRegisterHL equ 0x666
|
param_printRegisterHL equ 0x663
|
||||||
print_a_hex equ 0x2E7
|
print_a_hex equ 0x2E4
|
||||||
print_char equ 0x2B7
|
print_char equ 0x2B4
|
||||||
print_clear equ 0x2CA
|
print_clear equ 0x2C7
|
||||||
print_newLine equ 0x2D1
|
print_newLine equ 0x2CE
|
||||||
print_str equ 0x2BF
|
print_str equ 0x2BC
|
||||||
print_str_end equ 0x2C9
|
print_str_end equ 0x2C6
|
||||||
print_wait_out equ 0x2DC
|
print_wait_out equ 0x2D9
|
||||||
read_char equ 0x2F8
|
read_char equ 0x2F5
|
||||||
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
|
||||||
@@ -243,23 +244,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 0x10C1
|
xmodem_ack equ 0x10C4
|
||||||
xmodem_await_conn equ 0xF7A
|
xmodem_await_conn equ 0xF7D
|
||||||
xmodem_end equ 0x1025
|
xmodem_end equ 0x1028
|
||||||
xmodem_err equ 0xFEB
|
xmodem_err equ 0xFEE
|
||||||
xmodem_init equ 0xF4C
|
xmodem_init equ 0xF4F
|
||||||
xmodem_int equ 0x102C
|
xmodem_int equ 0x102F
|
||||||
xmodem_int_cont equ 0x104B
|
xmodem_int_cont equ 0x104E
|
||||||
xmodem_nak equ 0x10CF
|
xmodem_nak equ 0x10D2
|
||||||
xmodem_out equ 0x107D
|
xmodem_out equ 0x1080
|
||||||
xmodem_packet equ 0xF85
|
xmodem_packet equ 0xF88
|
||||||
xmodem_packet_EOT equ 0xFE3
|
xmodem_packet_EOT equ 0xFE6
|
||||||
xmodem_packet_get equ 0xF97
|
xmodem_packet_get equ 0xF9A
|
||||||
xmodem_packet_get_crc equ 0xFD0
|
xmodem_packet_get_crc equ 0xFD3
|
||||||
xmodem_packet_get_data equ 0xFC1
|
xmodem_packet_get_data equ 0xFC4
|
||||||
xmodem_read_wait equ 0x1050
|
xmodem_read_wait equ 0x1053
|
||||||
xmodem_read_wait_loop equ 0x105E
|
xmodem_read_wait_loop equ 0x1061
|
||||||
xmodem_read_wait_timeout equ 0x107B
|
xmodem_read_wait_timeout equ 0x107E
|
||||||
xmodem_wait equ 0x10DD
|
xmodem_wait equ 0x10E0
|
||||||
xmodem_wait_1 equ 0x10E3
|
xmodem_wait_1 equ 0x10E6
|
||||||
xmodem_wait_out equ 0x1083
|
xmodem_wait_out equ 0x1086
|
||||||
|
|||||||
243
OperatingSystem/software/include/kdrv_ide8255.s
Normal file
243
OperatingSystem/software/include/kdrv_ide8255.s
Normal file
@@ -0,0 +1,243 @@
|
|||||||
|
;----------------------------------------------------------------
|
||||||
|
;BIOS Driver for IDE Interface 82C55
|
||||||
|
;by Dennis Gunia (01/2023)
|
||||||
|
;----------------------------------------------------------------
|
||||||
|
|
||||||
|
;================================================================
|
||||||
|
; I/O registers
|
||||||
|
;================================================================
|
||||||
|
CS_PIA_PA .EQU 0x30 ; D0-7
|
||||||
|
CS_PIA_PB .EQU 0x31 ; D8-15
|
||||||
|
CS_PIA_PC .EQU 0x32 ; Controll Lines
|
||||||
|
CS_PIA_CR .EQU 0x33
|
||||||
|
|
||||||
|
;================================================================
|
||||||
|
; I/O pins
|
||||||
|
;================================================================
|
||||||
|
IDE_WR .EQU 00100000b
|
||||||
|
IDE_RD .EQU 01000000b
|
||||||
|
IDE_RST .EQU 10000000b
|
||||||
|
|
||||||
|
;================================================================
|
||||||
|
; IDE registers
|
||||||
|
;================================================================
|
||||||
|
IDE_REG_DATA .EQU 01000b ;data I/O register (16-bits)
|
||||||
|
IDE_REG_ERROR .EQU 01001b ;error information register when read; write precompensation register when written.
|
||||||
|
IDE_REG_SECTOR .EQU 01010b ;Sector counter register
|
||||||
|
IDE_REG_SSECTOR .EQU 01011b ;Start sector register
|
||||||
|
IDE_REG_LCYL .EQU 01100b ;Low byte of the cylinder number
|
||||||
|
IDE_REG_HCYL .EQU 01101b ;High two bits of the cylinder number
|
||||||
|
IDE_REG_HEAD .EQU 01110b ;Head and device select register
|
||||||
|
IDE_REG_CMDSTS .EQU 01111b ;command/status register
|
||||||
|
IDE_REG_ALTSTS .EQU 10110b ;Alternate Status/Digital Output
|
||||||
|
IDE_REG_DRVADDR .EQU 10111b ;Drive Address
|
||||||
|
|
||||||
|
;================================================================
|
||||||
|
; I/O access functions
|
||||||
|
;================================================================
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; ide_reset
|
||||||
|
;
|
||||||
|
; resets drives on bus
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
ide_reset:
|
||||||
|
LD A, 10000000b ;CommandByte-A, Mode 0, PA Out, PC Out, PB Out
|
||||||
|
OUT (CS_PIA_CR), A ;Set Data direction to out
|
||||||
|
LD A, IDE_RST
|
||||||
|
OUT (CS_PIA_PC), A ;Reset IDE Device
|
||||||
|
NOP
|
||||||
|
XOR A
|
||||||
|
OUT (CS_PIA_PC), A ;end device reset
|
||||||
|
RET
|
||||||
|
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; ide_regwrite_8
|
||||||
|
;
|
||||||
|
; Sends data to the IDE device
|
||||||
|
; A contains DATA
|
||||||
|
; B contains register number
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
ide_regwrite_8:
|
||||||
|
PUSH AF ;store date to stack
|
||||||
|
; Prepare PIA Data Direction
|
||||||
|
LD A, 10000000b ;CommandByte-A, Mode 0, PA Out, PC Out, PB Out
|
||||||
|
OUT (CS_PIA_CR), A ;Set Data direction to out
|
||||||
|
; Write Data out
|
||||||
|
POP AF
|
||||||
|
OUT (CS_PIA_PA), A ;Write Data to bit 0-7
|
||||||
|
;Prepare Address
|
||||||
|
LD A, B ;Load register address
|
||||||
|
AND 00011111b ;Mask unused bits
|
||||||
|
OUT (CS_PIA_PC), A ;Write Data to bit controll lines
|
||||||
|
OR IDE_WR ;Set Write bit
|
||||||
|
OUT (CS_PIA_PC), A ;Set write signal
|
||||||
|
NOP ;delay to wait for processing
|
||||||
|
LD A, B ;Load register address
|
||||||
|
AND 00011111b ;Mask unused bits
|
||||||
|
OUT (CS_PIA_PC), A ;disable write signal
|
||||||
|
NOP
|
||||||
|
XOR A ;clear register A
|
||||||
|
OUT (CS_PIA_PC), A ;clear controll lines
|
||||||
|
RET
|
||||||
|
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; ide_regread_8
|
||||||
|
;
|
||||||
|
; Sends data to the IDE device
|
||||||
|
; B contains register number
|
||||||
|
; A returns data
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
ide_regread_8:
|
||||||
|
LD A, 10010010b ;CommandByte-A, Mode 0, PA IN, PC Out, PB IN
|
||||||
|
OUT (CS_PIA_CR), A ;Set Data direction to in
|
||||||
|
;Prepare Address
|
||||||
|
LD A, B ;Load register address
|
||||||
|
AND 00011111b ;Mask unused bits
|
||||||
|
OUT (CS_PIA_PC), A ;Write Data to bit controll lines
|
||||||
|
OR IDE_RD ;Set Write bit
|
||||||
|
OUT (CS_PIA_PC), A ;Write Data to bit controll lines
|
||||||
|
NOP ;delay to wait for processing
|
||||||
|
PUSH AF
|
||||||
|
POP AF
|
||||||
|
PUSH AF
|
||||||
|
POP AF
|
||||||
|
PUSH AF
|
||||||
|
POP AF
|
||||||
|
PUSH AF
|
||||||
|
POP AF
|
||||||
|
IN A,(CS_PIA_PA) ;read data from ide device to b (because a is used later)
|
||||||
|
PUSH AF
|
||||||
|
XOR A ;clear register A
|
||||||
|
OUT (CS_PIA_PC), A ;clear controll lines
|
||||||
|
POP AF ;put data in accumulator
|
||||||
|
RET
|
||||||
|
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; ide_readsector_256
|
||||||
|
;
|
||||||
|
; Reads IDE Data
|
||||||
|
; HL contains destination address
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
ide_readsector_256:
|
||||||
|
LD C,255 ;Setup counter for 256 words
|
||||||
|
|
||||||
|
ide_readsector_256_waitloop:
|
||||||
|
LD B, IDE_REG_CMDSTS
|
||||||
|
CALL ide_regread_8
|
||||||
|
BIT 0,a ;Error Bit set.
|
||||||
|
JP NZ, ide_printerror
|
||||||
|
BIT 3,a ;DRQ Bit set. If set, disk has data
|
||||||
|
JR Z, ide_readsector_256_waitloop ;If not set, wait
|
||||||
|
|
||||||
|
LD A, 10010010b ;CommandByte-A, Mode 0, PA IN, PC Out, PB IN
|
||||||
|
OUT (CS_PIA_CR), A ;Set Data direction to IN
|
||||||
|
LD A, IDE_REG_DATA ;CS0 and A=0 -> I/O register
|
||||||
|
OUT (CS_PIA_PC), A ;set register
|
||||||
|
OR IDE_RD ;Set Read bit
|
||||||
|
OUT (CS_PIA_PC), A ;Write Read to bit controll lines
|
||||||
|
NOP
|
||||||
|
NOP
|
||||||
|
NOP
|
||||||
|
IN A,(CS_PIA_PB) ;Load 16-Bit data to buffer
|
||||||
|
LD (HL), A
|
||||||
|
INC HL
|
||||||
|
IN A,(CS_PIA_PA)
|
||||||
|
LD (HL), A
|
||||||
|
INC HL
|
||||||
|
|
||||||
|
LD A,C
|
||||||
|
OR A
|
||||||
|
JP Z,ide_readsector_256_done
|
||||||
|
DEC C
|
||||||
|
JR ide_readsector_256_waitloop
|
||||||
|
|
||||||
|
ide_readsector_256_done:
|
||||||
|
RET
|
||||||
|
|
||||||
|
ide_readsector_256_inv:
|
||||||
|
LD C,255 ;Setup counter for 256 words
|
||||||
|
|
||||||
|
ide_readsector_256_inv_waitloop:
|
||||||
|
LD B, IDE_REG_CMDSTS
|
||||||
|
CALL ide_regread_8
|
||||||
|
BIT 0,a ;Error Bit set.
|
||||||
|
JP NZ, ide_printerror
|
||||||
|
BIT 3,a ;DRQ Bit set. If set, disk has data
|
||||||
|
JR Z, ide_readsector_256_inv_waitloop ;If not set, wait
|
||||||
|
|
||||||
|
LD A, 10010010b ;CommandByte-A, Mode 0, PA IN, PC Out, PB IN
|
||||||
|
OUT (CS_PIA_CR), A ;Set Data direction to IN
|
||||||
|
LD A, IDE_REG_DATA ;CS0 and A=0 -> I/O register
|
||||||
|
OUT (CS_PIA_PC), A ;set register
|
||||||
|
OR IDE_RD ;Set Read bit
|
||||||
|
OUT (CS_PIA_PC), A ;Write Read to bit controll lines
|
||||||
|
NOP
|
||||||
|
NOP
|
||||||
|
NOP
|
||||||
|
IN A,(CS_PIA_PA) ;Load 16-Bit data to buffer
|
||||||
|
LD (HL), A
|
||||||
|
INC HL
|
||||||
|
IN A,(CS_PIA_PB)
|
||||||
|
LD (HL), A
|
||||||
|
INC HL
|
||||||
|
|
||||||
|
LD A,C
|
||||||
|
OR A
|
||||||
|
JP Z,ide_readsector_256_done
|
||||||
|
DEC C
|
||||||
|
JR ide_readsector_256_inv_waitloop
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; ide_writesector_256
|
||||||
|
;
|
||||||
|
; Writes 512 bytes (256 words) of IDE Data
|
||||||
|
; HL contains data start address
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
ide_writesector_256:
|
||||||
|
RET ;NOT IMPLEMENTED
|
||||||
|
|
||||||
|
|
||||||
|
;================================================================
|
||||||
|
; utility functions
|
||||||
|
;================================================================
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; ide_printerror
|
||||||
|
;
|
||||||
|
; prints IDE error to console
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
ide_printerror:
|
||||||
|
LD HL, [str_error_start]
|
||||||
|
CALL print_str
|
||||||
|
LD B, IDE_REG_CMDSTS
|
||||||
|
CALL ide_regread_8
|
||||||
|
CALL print_a_hex
|
||||||
|
LD HL, [str_error_start1]
|
||||||
|
CALL print_str
|
||||||
|
LD A,(MEM_IDE_DEVICE)
|
||||||
|
CALL print_a_hex
|
||||||
|
LD HL, [str_error_start2]
|
||||||
|
CALL print_str
|
||||||
|
LD B, IDE_REG_ERROR
|
||||||
|
CALL ide_regread_8
|
||||||
|
CALL print_a_hex
|
||||||
|
LD A,10
|
||||||
|
CALL print_char
|
||||||
|
LD A,13
|
||||||
|
CALL print_char
|
||||||
|
|
||||||
|
RET
|
||||||
|
|
||||||
|
str_error_start:
|
||||||
|
db 13,10,"Disk I/O error. Status: 0x",0
|
||||||
|
str_error_start1:
|
||||||
|
db " Dev: 0x",0
|
||||||
|
str_error_start2:
|
||||||
|
db " Err: 0x",0
|
||||||
|
|
||||||
93
OperatingSystem/software/include/kdrv_ideif.s
Normal file
93
OperatingSystem/software/include/kdrv_ideif.s
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
;----------------------------------------------------------------
|
||||||
|
;BIOS Driver for IDE Access
|
||||||
|
;by Dennis Gunia (01/2023)
|
||||||
|
;----------------------------------------------------------------
|
||||||
|
|
||||||
|
;================================================================
|
||||||
|
; IDE commands
|
||||||
|
;================================================================
|
||||||
|
IDE_CMD_IDENT .EQU 0xEC ;Identify drive.
|
||||||
|
IDE_CMD_READSEC .EQU 0x20 ;Read sectors.
|
||||||
|
|
||||||
|
;================================================================
|
||||||
|
; IDE Variables
|
||||||
|
;================================================================
|
||||||
|
MEM_IDE_BASE .EQU 0x5000
|
||||||
|
MEM_IDE_DEVICE .EQU MEM_IDE_BASE ;1Byte: Device ID for IDE-Port, Controller and Master/Slave
|
||||||
|
MEM_IDE_STATUS .EQU MEM_IDE_BASE + 1 ;1Byte: 0x00 if status is okay
|
||||||
|
MEM_IDE_BUFFER .EQU MEM_IDE_BASE + 2 ;512Byte: buffer for read/write data
|
||||||
|
|
||||||
|
;================================================================
|
||||||
|
; IDE funtions
|
||||||
|
;================================================================
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; ideif_init_drive
|
||||||
|
;
|
||||||
|
; initializes drive
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
ideif_init_drive:
|
||||||
|
xor a
|
||||||
|
ld (MEM_IDE_DEVICE),A ;Set device to 0
|
||||||
|
ld (MEM_IDE_STATUS),A ;Set status to 0 (OK)
|
||||||
|
di ;disable interrupt
|
||||||
|
call ide_reset ;Reset drives on bus
|
||||||
|
ld hl, [str_dev_waitready]
|
||||||
|
call print_str ;print waiting message
|
||||||
|
ld DE, 0x1FFF ;preload timeout counter
|
||||||
|
ideif_init_drive_loop1:
|
||||||
|
ld b, IDE_REG_CMDSTS
|
||||||
|
call ide_regread_8 ;read drive status register
|
||||||
|
OR A
|
||||||
|
JR Z, ideif_init_drive_nodrv ;no drive found
|
||||||
|
BIT 6,A ;Wait for device ready
|
||||||
|
JR NZ, ideif_init_drive_detected
|
||||||
|
DEC DE ; decrement timeout
|
||||||
|
LD A,D
|
||||||
|
OR E
|
||||||
|
JR Z, ideif_init_drive_nodrv
|
||||||
|
|
||||||
|
JR ideif_init_drive_loop1
|
||||||
|
|
||||||
|
ideif_init_drive_nodrv:
|
||||||
|
ld hl, [str_dev_notfound]
|
||||||
|
call print_str
|
||||||
|
RET
|
||||||
|
|
||||||
|
ideif_init_drive_detected:
|
||||||
|
ld hl, [str_dev_ready]
|
||||||
|
call print_str
|
||||||
|
LD B, IDE_REG_CMDSTS ;Get drive identification
|
||||||
|
LD A, IDE_CMD_IDENT
|
||||||
|
call ide_regwrite_8 ;Write command to drive
|
||||||
|
LD HL,MEM_IDE_BUFFER ;set read/write buffer start address
|
||||||
|
call ide_readsector_256 ;read 256 words from device
|
||||||
|
LD HL,MEM_IDE_BUFFER + 20 ;print device serial
|
||||||
|
LD B, 20
|
||||||
|
CALL print_str_fixed
|
||||||
|
ld hl, [str_dev_ready2]
|
||||||
|
call print_str
|
||||||
|
LD HL,MEM_IDE_BUFFER + 54 ;print device name
|
||||||
|
LD B, 40
|
||||||
|
CALL print_str_fixed
|
||||||
|
LD A,10 ;New line
|
||||||
|
CALL print_char
|
||||||
|
LD A,13
|
||||||
|
CALL print_char
|
||||||
|
RET
|
||||||
|
|
||||||
|
|
||||||
|
;================================================================
|
||||||
|
; IDE strings
|
||||||
|
;===============================================================
|
||||||
|
|
||||||
|
str_dev_waitready:
|
||||||
|
db 13,10,"Seek HDD ... ",0
|
||||||
|
|
||||||
|
str_dev_ready:
|
||||||
|
db "Device Found!",13,10,"Serial: ",0
|
||||||
|
str_dev_ready2:
|
||||||
|
db " Name: ",0
|
||||||
|
|
||||||
|
str_dev_notfound:
|
||||||
|
db "no drive detected",13,10,0
|
||||||
90
OperatingSystem/software/include/prettydump.s
Normal file
90
OperatingSystem/software/include/prettydump.s
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
;----------------------------------------------------------------
|
||||||
|
;HEX and ASCII dump function
|
||||||
|
;by Dennis Gunia (01/2023)
|
||||||
|
;----------------------------------------------------------------
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; dump_pretty
|
||||||
|
;
|
||||||
|
; Dumps memory content
|
||||||
|
; B contains amount of rows
|
||||||
|
; HL contains start address
|
||||||
|
; Destroys BC, HL
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
dump_pretty:
|
||||||
|
PUSH HL
|
||||||
|
LD HL,[STR_PD_HEADER] ;Print header
|
||||||
|
CALL print_str
|
||||||
|
POP HL
|
||||||
|
dump_pretty_row:
|
||||||
|
LD A,B ;Check row counter
|
||||||
|
OR A
|
||||||
|
JP Z, dump_pretty_end ;If counter is 0, exit
|
||||||
|
DEC B ;Decrement row counter by 1
|
||||||
|
LD C, 16 ;Load column counter
|
||||||
|
LD A, H ;Print base address
|
||||||
|
CALL print_a_hex
|
||||||
|
LD A, L
|
||||||
|
CALL print_a_hex
|
||||||
|
LD A, ' '
|
||||||
|
CALL print_char
|
||||||
|
dump_pretty_col: ;Loop for column
|
||||||
|
LD A,(HL) ;Load byte to disply
|
||||||
|
CALL print_a_hex
|
||||||
|
LD A, ' '
|
||||||
|
CALL print_char
|
||||||
|
INC HL
|
||||||
|
DEC C ;Decrement column counter
|
||||||
|
JR NZ, dump_pretty_col ;Loop if not 0
|
||||||
|
dump_pretty_ascii:
|
||||||
|
PUSH BC
|
||||||
|
PUSH HL
|
||||||
|
LD B,0
|
||||||
|
LD C,16
|
||||||
|
SBC HL,BC ;Reset HL by column count
|
||||||
|
dump_pretty_ascii_loop:
|
||||||
|
LD A,(HL)
|
||||||
|
INC HL
|
||||||
|
CP 32
|
||||||
|
JP C, dump_pretty_ascii_none ;if less than 32, it is not a char
|
||||||
|
CP 127
|
||||||
|
JP NC, dump_pretty_ascii_none ;if greater or equal than 128, it is not a char
|
||||||
|
call print_char
|
||||||
|
jr dump_pretty_ascii_cont
|
||||||
|
dump_pretty_ascii_none:
|
||||||
|
LD A,'.'
|
||||||
|
call print_char
|
||||||
|
dump_pretty_ascii_cont:
|
||||||
|
DEC C
|
||||||
|
JP NZ, dump_pretty_ascii_loop
|
||||||
|
|
||||||
|
|
||||||
|
POP HL
|
||||||
|
POP BC
|
||||||
|
dump_pretty_nextrow:
|
||||||
|
LD A,10 ;New line
|
||||||
|
CALL print_char
|
||||||
|
LD A,13
|
||||||
|
CALL print_char
|
||||||
|
JR dump_pretty_row ;Else next line
|
||||||
|
dump_pretty_end:
|
||||||
|
RET
|
||||||
|
|
||||||
|
STR_PD_HEADER:
|
||||||
|
db 13,10,'BASE 0 1 2 3 4 5 6 7 8 9 A B C D E F ASCII',13,10,0
|
||||||
|
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; print_str_fixed
|
||||||
|
;
|
||||||
|
; Prints string with fixed length
|
||||||
|
; B contains length
|
||||||
|
; HL contains start address
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
print_str_fixed:
|
||||||
|
LD A,(HL)
|
||||||
|
INC HL
|
||||||
|
CALL print_char
|
||||||
|
DJNZ print_str_fixed
|
||||||
|
RET
|
||||||
|
|
||||||
@@ -1,327 +1,50 @@
|
|||||||
.include "extern_symbols.s" ;include monitor symbols.
|
.include "extern_symbols.s" ;include monitor symbols.
|
||||||
org 0xB000
|
org 0xB000
|
||||||
CS_PIO_BD .EQU 0xF5
|
;Testing code
|
||||||
CS_PIO_BC .EQU 0xF7
|
call ideif_init_drive
|
||||||
CS_PIO_AD .EQU 0xF4
|
|
||||||
CS_PIO_AC .EQU 0xF6
|
|
||||||
|
|
||||||
CS_I2C_S1 .EQU 0xF3
|
;testread sector
|
||||||
CS_I2C_SX .EQU 0xF2
|
LD A,1 ;read 1 sector
|
||||||
|
LD B,IDE_REG_SECTOR
|
||||||
|
CALL ide_regwrite_8
|
||||||
|
|
||||||
IIC_RTC equ 11010000b
|
LD A,1 ;read sector 0
|
||||||
|
LD B,IDE_REG_SSECTOR
|
||||||
|
CALL ide_regwrite_8
|
||||||
|
|
||||||
IIC_INIT:
|
LD A,0 ;read cylinder 0
|
||||||
LD A,0xCF
|
LD B,IDE_REG_LCYL
|
||||||
OUT (CS_PIO_AC), A
|
CALL ide_regwrite_8
|
||||||
LD A,11110101b
|
LD A,0
|
||||||
OUT (CS_PIO_AC), A
|
LD B,IDE_REG_HCYL
|
||||||
|
CALL ide_regwrite_8
|
||||||
|
|
||||||
LD A,00000000b ; Reset PCF8584 minimum 30 clock cycles
|
LD A,10100000b ;read head 0
|
||||||
OUT (CS_PIO_AD), A
|
LD B,IDE_REG_HEAD
|
||||||
LD BC,0x1000
|
CALL ide_regwrite_8
|
||||||
CALL PAUSE_LOOP
|
|
||||||
LD A,0000010b
|
|
||||||
OUT (CS_PIO_AD), A
|
|
||||||
|
|
||||||
NOP
|
LD A,IDE_CMD_READSEC ;send read command
|
||||||
NOP
|
LD B,IDE_REG_CMDSTS
|
||||||
NOP
|
CALL ide_regwrite_8
|
||||||
|
|
||||||
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 HL,MEM_IDE_BUFFER ;set read/write buffer start address
|
||||||
|
call ide_readsector_256_inv ;read 256 words from device
|
||||||
|
|
||||||
|
LD HL,MEM_IDE_BUFFER
|
||||||
|
LD B,32
|
||||||
|
call dump_pretty
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
.include "kdrv_ide8255.s" ;include ide interface driver.
|
||||||
; i2c_send
|
.include "kdrv_ideif.s" ;include ide driver.
|
||||||
;
|
.include "prettydump.s" ;include monitor symbols.
|
||||||
; 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
|
delay_small:
|
||||||
;the 'START' condition and clocks out the slave
|
PUSH AF
|
||||||
;address and the clock pulse for slave acknowledgement.
|
POP AF
|
||||||
OUT (CS_I2C_S1),A
|
PUSH AF
|
||||||
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
|
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
|
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
|
|
||||||
327
OperatingSystem/software/test_iic.asm
Normal file
327
OperatingSystem/software/test_iic.asm
Normal file
@@ -0,0 +1,327 @@
|
|||||||
|
.include "extern_symbols.s" ;include monitor symbols.
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
Binary file not shown.
@@ -1,20 +1,43 @@
|
|||||||
:10B000003ECFD3F63EF5D3F63E00D3F4010010CD8B
|
:10B00000CD47B13E01060ACD4BB03E01060BCD4BFC
|
||||||
:10B01000F6B03E02D3F40000003E80D3F3CD16B16B
|
:10B01000B03E00060CCD4BB03E00060DCD4BB03E11
|
||||||
:10B02000CD16B13E55D3F2CD16B13EA0D3F3CD1619
|
:10B02000A0060ECD4BB03E20060FCD4BB0210250F6
|
||||||
:10B03000B13E00D3F2CD16B13EC1D3F3CD16B1C3AC
|
:10B03000CDB5B02102500620CDEEB1C396003E80C2
|
||||||
:10B040009900010001CDF6B01100C03E001206D0FB
|
:10B04000D3333E80D33200AFD332C9F53E80D33301
|
||||||
:10B050003E01CD62B01110C006D03E07CD90B0C306
|
:10B05000F1D33078E61FD332F620D3320078E61FE2
|
||||||
:10B060009900C5F5CDE8B078D3F2CD16B13EC5D381
|
:10B06000D33200AFD332C93E92D33378E61FD33206
|
||||||
:10B07000F3F14F0CDBF3CB7F20FACB6720091A13D7
|
:10B07000F640D33200F5F1F5F1F5F1F5F1DB30F5FD
|
||||||
:10B080000D2804D3F218ED3EC3D3F3CD16B1C1C9D8
|
:10B08000AFD332F1C90EFF060FCD67B0CB47C2E593
|
||||||
:10B09000D5C5F578F601D3F2CD16B1CDE8B03EC5F1
|
:10B09000B0CB5F28F23E92D3333E08D332F640D392
|
||||||
:10B0A000D3F3F14F0CDBF3CB7F20FACB5F201C0DE9
|
:10B0A00032000000DB317723DB30772379B7CAB475
|
||||||
:10B0B000793D2806DBF2121318EB3E40D3F3CD1690
|
:10B0B000B00D18D3C90EFF060FCD67B0CB47C2E560
|
||||||
:10B0C000B1DBF21213DBF3CB7F20FA003EC3D3F3E4
|
:10B0C000B0CB5F28F23E92D3333E08D332F640D362
|
||||||
:10B0D000CD16B1DBF2CD16B112C1D1C9F5DBF3CB80
|
:10B0D00032000000DB307723DB31772379B7CAB445
|
||||||
:10B0E0007FCDE70220F7F1C9F5DBF3F5CDE702F1FB
|
:10B0E000B00D18D3C92118B1CDBC02060FCD67B081
|
||||||
:10B0F000CB4728F5F1C9F5C5C1C5C10B79B0C2F779
|
:10B0F000CDE4022135B1CDBC023A0050CDE40221AD
|
||||||
:10B10000B0F1C9E3F5C57EFE002806CDB7022318CD
|
:10B100003EB1CDBC020609CD67B0CDE4023E0ACD0A
|
||||||
:10B11000F523C1F1E3C90000000000000000C9DB15
|
:10B11000B4023E0DCDB402C90D0A4469736B2049D7
|
||||||
:0CB12000F3CB47C03EC3D3F3000018F38C
|
:10B120002F4F206572726F722E2053746174757385
|
||||||
|
:10B130003A20307800204465763A20307800204567
|
||||||
|
:10B1400072723A20307800AF320050320150F3CDA5
|
||||||
|
:10B150003EB021A9B1CDBC0211FF1F060FCD67B0D3
|
||||||
|
:10B16000B7280BCB77200E1B7AB3280218ED21DA13
|
||||||
|
:10B17000B1CDBC02C921B9B1CDBC02060F3EECCDA8
|
||||||
|
:10B180004BB0210250CD85B02116500614CD88B2A7
|
||||||
|
:10B1900021D1B1CDBC022138500628CD88B23E0A5B
|
||||||
|
:10B1A000CDB4023E0DCDB402C90D0A5365656B20C6
|
||||||
|
:10B1B000484444202E2E2E20004465766963652085
|
||||||
|
:10B1C000466F756E64210D0A53657269616C3A2091
|
||||||
|
:10B1D0000020204E616D653A20006E6F2064726918
|
||||||
|
:10B1E00076652064657465637465640D0A00E52105
|
||||||
|
:10B1F00049B2CDBC02E178B7CA48B2050E107CCD89
|
||||||
|
:10B20000E4027DCDE4023E20CDB4027ECDE4023ED8
|
||||||
|
:10B2100020CDB402230D20F3C5E506000E10ED424B
|
||||||
|
:10B220007E23FE20DA31B2FE7FD231B2CDB40218D5
|
||||||
|
:10B23000053E2ECDB4020DC220B2E1C13E0ACDB40E
|
||||||
|
:10B24000023E0DCDB40218AEC90D0A42415345204D
|
||||||
|
:10B25000302020312020322020332020342020357F
|
||||||
|
:10B26000202036202037202038202039202041205F
|
||||||
|
:10B27000204220204320204420204520204620201A
|
||||||
|
:10B2800041534349490D0A007E23CDB40210F9C948
|
||||||
|
:05B29000F5F1F5F1C924
|
||||||
:00000001FF
|
:00000001FF
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,19 +1,42 @@
|
|||||||
!B000 3E CF D3 F6 3E F5 D3 F6 3E 00 D3 F4 01 00 10 CD
|
!B000 CD 47 B1 3E 01 06 0A CD 4B B0 3E 01 06 0B CD 4B
|
||||||
!B010 F6 B0 3E 02 D3 F4 00 00 00 3E 80 D3 F3 CD 16 B1
|
!B010 B0 3E 00 06 0C CD 4B B0 3E 00 06 0D CD 4B B0 3E
|
||||||
!B020 CD 16 B1 3E 55 D3 F2 CD 16 B1 3E A0 D3 F3 CD 16
|
!B020 A0 06 0E CD 4B B0 3E 20 06 0F CD 4B B0 21 02 50
|
||||||
!B030 B1 3E 00 D3 F2 CD 16 B1 3E C1 D3 F3 CD 16 B1 C3
|
!B030 CD B5 B0 21 02 50 06 20 CD EE B1 C3 96 00 3E 80
|
||||||
!B040 99 00 01 00 01 CD F6 B0 11 00 C0 3E 00 12 06 D0
|
!B040 D3 33 3E 80 D3 32 00 AF D3 32 C9 F5 3E 80 D3 33
|
||||||
!B050 3E 01 CD 62 B0 11 10 C0 06 D0 3E 07 CD 90 B0 C3
|
!B050 F1 D3 30 78 E6 1F D3 32 F6 20 D3 32 00 78 E6 1F
|
||||||
!B060 99 00 C5 F5 CD E8 B0 78 D3 F2 CD 16 B1 3E C5 D3
|
!B060 D3 32 00 AF D3 32 C9 3E 92 D3 33 78 E6 1F D3 32
|
||||||
!B070 F3 F1 4F 0C DB F3 CB 7F 20 FA CB 67 20 09 1A 13
|
!B070 F6 40 D3 32 00 F5 F1 F5 F1 F5 F1 F5 F1 DB 30 F5
|
||||||
!B080 0D 28 04 D3 F2 18 ED 3E C3 D3 F3 CD 16 B1 C1 C9
|
!B080 AF D3 32 F1 C9 0E FF 06 0F CD 67 B0 CB 47 C2 E5
|
||||||
!B090 D5 C5 F5 78 F6 01 D3 F2 CD 16 B1 CD E8 B0 3E C5
|
!B090 B0 CB 5F 28 F2 3E 92 D3 33 3E 08 D3 32 F6 40 D3
|
||||||
!B0A0 D3 F3 F1 4F 0C DB F3 CB 7F 20 FA CB 5F 20 1C 0D
|
!B0A0 32 00 00 00 DB 31 77 23 DB 30 77 23 79 B7 CA B4
|
||||||
!B0B0 79 3D 28 06 DB F2 12 13 18 EB 3E 40 D3 F3 CD 16
|
!B0B0 B0 0D 18 D3 C9 0E FF 06 0F CD 67 B0 CB 47 C2 E5
|
||||||
!B0C0 B1 DB F2 12 13 DB F3 CB 7F 20 FA 00 3E C3 D3 F3
|
!B0C0 B0 CB 5F 28 F2 3E 92 D3 33 3E 08 D3 32 F6 40 D3
|
||||||
!B0D0 CD 16 B1 DB F2 CD 16 B1 12 C1 D1 C9 F5 DB F3 CB
|
!B0D0 32 00 00 00 DB 30 77 23 DB 31 77 23 79 B7 CA B4
|
||||||
!B0E0 7F CD E7 02 20 F7 F1 C9 F5 DB F3 F5 CD E7 02 F1
|
!B0E0 B0 0D 18 D3 C9 21 18 B1 CD BC 02 06 0F CD 67 B0
|
||||||
!B0F0 CB 47 28 F5 F1 C9 F5 C5 C1 C5 C1 0B 79 B0 C2 F7
|
!B0F0 CD E4 02 21 35 B1 CD BC 02 3A 00 50 CD E4 02 21
|
||||||
!B100 B0 F1 C9 E3 F5 C5 7E FE 00 28 06 CD B7 02 23 18
|
!B100 3E B1 CD BC 02 06 09 CD 67 B0 CD E4 02 3E 0A CD
|
||||||
!B110 F5 23 C1 F1 E3 C9 00 00 00 00 00 00 00 00 C9 DB
|
!B110 B4 02 3E 0D CD B4 02 C9 0D 0A 44 69 73 6B 20 49
|
||||||
!B120 F3 CB 47 C0 3E C3 D3 F3 00 00 18 F3
|
!B120 2F 4F 20 65 72 72 6F 72 2E 20 53 74 61 74 75 73
|
||||||
|
!B130 3A 20 30 78 00 20 44 65 76 3A 20 30 78 00 20 45
|
||||||
|
!B140 72 72 3A 20 30 78 00 AF 32 00 50 32 01 50 F3 CD
|
||||||
|
!B150 3E B0 21 A9 B1 CD BC 02 11 FF 1F 06 0F CD 67 B0
|
||||||
|
!B160 B7 28 0B CB 77 20 0E 1B 7A B3 28 02 18 ED 21 DA
|
||||||
|
!B170 B1 CD BC 02 C9 21 B9 B1 CD BC 02 06 0F 3E EC CD
|
||||||
|
!B180 4B B0 21 02 50 CD 85 B0 21 16 50 06 14 CD 88 B2
|
||||||
|
!B190 21 D1 B1 CD BC 02 21 38 50 06 28 CD 88 B2 3E 0A
|
||||||
|
!B1A0 CD B4 02 3E 0D CD B4 02 C9 0D 0A 53 65 65 6B 20
|
||||||
|
!B1B0 48 44 44 20 2E 2E 2E 20 00 44 65 76 69 63 65 20
|
||||||
|
!B1C0 46 6F 75 6E 64 21 0D 0A 53 65 72 69 61 6C 3A 20
|
||||||
|
!B1D0 00 20 20 4E 61 6D 65 3A 20 00 6E 6F 20 64 72 69
|
||||||
|
!B1E0 76 65 20 64 65 74 65 63 74 65 64 0D 0A 00 E5 21
|
||||||
|
!B1F0 49 B2 CD BC 02 E1 78 B7 CA 48 B2 05 0E 10 7C CD
|
||||||
|
!B200 E4 02 7D CD E4 02 3E 20 CD B4 02 7E CD E4 02 3E
|
||||||
|
!B210 20 CD B4 02 23 0D 20 F3 C5 E5 06 00 0E 10 ED 42
|
||||||
|
!B220 7E 23 FE 20 DA 31 B2 FE 7F D2 31 B2 CD B4 02 18
|
||||||
|
!B230 05 3E 2E CD B4 02 0D C2 20 B2 E1 C1 3E 0A CD B4
|
||||||
|
!B240 02 3E 0D CD B4 02 18 AE C9 0D 0A 42 41 53 45 20
|
||||||
|
!B250 30 20 20 31 20 20 32 20 20 33 20 20 34 20 20 35
|
||||||
|
!B260 20 20 36 20 20 37 20 20 38 20 20 39 20 20 41 20
|
||||||
|
!B270 20 42 20 20 43 20 20 44 20 20 45 20 20 46 20 20
|
||||||
|
!B280 41 53 43 49 49 0D 0A 00 7E 23 CD B4 02 10 F9 C9
|
||||||
|
!B290 F5 F1 F5 F1 C9
|
||||||
|
|||||||
BIN
PLDs/Z8C-IDE-Board-U8/CB327934
Normal file
BIN
PLDs/Z8C-IDE-Board-U8/CB327934
Normal file
Binary file not shown.
BIN
PLDs/Z8C-IDE-Board-U8/CB524544
Normal file
BIN
PLDs/Z8C-IDE-Board-U8/CB524544
Normal file
Binary file not shown.
BIN
PLDs/Z8C-IDE-Board-U8/CM459002
Normal file
BIN
PLDs/Z8C-IDE-Board-U8/CM459002
Normal file
Binary file not shown.
25
PLDs/Z8C-IDE-Board-U8/XXXXX.jed
Normal file
25
PLDs/Z8C-IDE-Board-U8/XXXXX.jed
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
CUPL(WM) 5.0a Serial# 60008009
|
||||||
|
Device g16v8as Library DLIB-h-40-2
|
||||||
|
Created Sun Jan 15 20:24:25 2023
|
||||||
|
Name XXXXX
|
||||||
|
Partno XXXXX
|
||||||
|
Revision XX
|
||||||
|
Date XX/XX/XX
|
||||||
|
Designer XXXXX
|
||||||
|
Company XXXXX
|
||||||
|
Assembly XXXXX
|
||||||
|
Location XXXXX
|
||||||
|
*QP20
|
||||||
|
*QF2194
|
||||||
|
*G0
|
||||||
|
*F0
|
||||||
|
*L01024 11101011111111111111111111111011
|
||||||
|
*L01792 11101111111111111111111110111111
|
||||||
|
*L02048 00100001010110000101100001011000
|
||||||
|
*L02080 01011000010110000000000000000000
|
||||||
|
*L02112 00000000110101101111111111111111
|
||||||
|
*L02144 11111111111111111111111111111111
|
||||||
|
*L02176 111111111111111110
|
||||||
|
*C1110
|
||||||
|
*84C9
|
||||||
BIN
PLDs/Z8C-IDE-Board-U8/Z8C-MAINBOARD.abs
Normal file
BIN
PLDs/Z8C-IDE-Board-U8/Z8C-MAINBOARD.abs
Normal file
Binary file not shown.
175
PLDs/Z8C-IDE-Board-U8/Z8C-MAINBOARD.pdf
Normal file
175
PLDs/Z8C-IDE-Board-U8/Z8C-MAINBOARD.pdf
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
{COMPONENT Z:\HOME\DENNISGUNIA\PROJECTS\Z8C-HOMEBREW-COMPUTER\PLDS\Z8C-IDE-BOARD-U8\Z8C-MAINBOARD.SYM
|
||||||
|
|
||||||
|
{ENVIRONMENT
|
||||||
|
{PDIFvrev 3.00}
|
||||||
|
{Program "CUPL(WM) Version 5.0a"}
|
||||||
|
{DBtype "Schematic"}
|
||||||
|
{DBvrev 1.01}
|
||||||
|
{DBtime "Sun Jan 15 20:24:25 2023 "}
|
||||||
|
{DBunit "MIL"}
|
||||||
|
{DBgrid 10}
|
||||||
|
{Lyrstr "WIRES" 1 "BUS" 1 "GATE" 2 "IEEE" 2 "PINFUN" 3 "PINNUM" 1
|
||||||
|
"PINNAM" 6 "PINCON" 4 "REFDES" 2 "ATTR" 6 "SDOT" 1
|
||||||
|
"DEVICE" 5 "OUTLIN" 5 "ATTR2" 6 "NOTES" 6 "NETNAM" 4
|
||||||
|
"CMPNAM" 5 "BORDER" 5}
|
||||||
|
}
|
||||||
|
|
||||||
|
{USER
|
||||||
|
{VIEW
|
||||||
|
{Mode SYMB}
|
||||||
|
{Nlst OPEN}
|
||||||
|
{Vw 0 0 2}
|
||||||
|
{Lv 12 2 2 2 0 0 2 2 2 2 0 0 2 1 2 0 0 0 0}
|
||||||
|
{Gs 10 10}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{DISPLAY
|
||||||
|
[Ly "PINNUM"]
|
||||||
|
[Ls "SOLID"][Wd 0]
|
||||||
|
[Ts 15][Tj "LC"][Tr 0][Tm "N"]
|
||||||
|
}
|
||||||
|
|
||||||
|
{SYMBOL
|
||||||
|
{PIN_DEF
|
||||||
|
[Ly "PINCON"]
|
||||||
|
{P CS {Pt "INPUT"}{Lq 0}{Ploc 100 240}}
|
||||||
|
{P A1 {Pt "INPUT"}{Lq 0}{Ploc 100 220}}
|
||||||
|
{P A2 {Pt "INPUT"}{Lq 0}{Ploc 100 200}}
|
||||||
|
{P A3 {Pt "INPUT"}{Lq 0}{Ploc 100 180}}
|
||||||
|
{P A4 {Pt "INPUT"}{Lq 0}{Ploc 100 160}}
|
||||||
|
{P RD {Pt "INPUT"}{Lq 0}{Ploc 100 140}}
|
||||||
|
{P IOREQ {Pt "INPUT"}{Lq 0}{Ploc 100 120}}
|
||||||
|
{P WR {Pt "INPUT"}{Lq 0}{Ploc 100 100}}
|
||||||
|
{P CS_LATCH {Pt "INPUT"}{Lq 0}{Ploc 100 80}}
|
||||||
|
{P CS_FDC {Pt "INPUT"}{Lq 0}{Ploc 100 60}}
|
||||||
|
{P CLK2 {Pt "INPUT"}{Lq 0}{Ploc 100 40}}
|
||||||
|
{P CLK4 {Pt "INPUT"}{Lq 0}{Ploc 100 20}}
|
||||||
|
{P BUSDIR {Pt "I/O"}{Lq 0}{Ploc 360 20}}
|
||||||
|
{P CS_IDE {Pt "I/O"}{Lq 0}{Ploc 360 40}}
|
||||||
|
{P BUS_WAIT {Pt "I/O"}{Lq 0}{Ploc 360 60}}
|
||||||
|
}
|
||||||
|
|
||||||
|
{PKG
|
||||||
|
[Ly "REFDES"]
|
||||||
|
[Ts 25][Tj "CB"][Tr 0][Tm "N"]
|
||||||
|
{Rdl 230 270}
|
||||||
|
|
||||||
|
[Ly "PINNUM"]
|
||||||
|
[Ts 15][Tj "RC"]
|
||||||
|
{Pnl 120 250}
|
||||||
|
{Pnl 120 230}
|
||||||
|
{Pnl 120 210}
|
||||||
|
{Pnl 120 190}
|
||||||
|
{Pnl 120 170}
|
||||||
|
{Pnl 120 150}
|
||||||
|
{Pnl 120 130}
|
||||||
|
{Pnl 120 110}
|
||||||
|
{Pnl 120 90}
|
||||||
|
{Pnl 120 70}
|
||||||
|
{Pnl 120 50}
|
||||||
|
{Pnl 120 30}
|
||||||
|
[Ts 15][Tj "LC"]
|
||||||
|
{Pnl 340 30}
|
||||||
|
{Pnl 340 50}
|
||||||
|
{Pnl 340 70}
|
||||||
|
|
||||||
|
{Sd A 1 2 3 4 5 8 9 11 13 14 18 19 12 15 17}
|
||||||
|
}
|
||||||
|
|
||||||
|
{PIC
|
||||||
|
[Ly "GATE"]
|
||||||
|
[Ts 15][Tj "LC"][Tr 0][Tm "N"]
|
||||||
|
{R 130 260 330 0}
|
||||||
|
{L 130 240 100 240}
|
||||||
|
{L 130 220 100 220}
|
||||||
|
{L 130 200 100 200}
|
||||||
|
{L 130 180 100 180}
|
||||||
|
{L 130 160 100 160}
|
||||||
|
{L 130 140 100 140}
|
||||||
|
{L 130 120 100 120}
|
||||||
|
{L 130 100 100 100}
|
||||||
|
{L 130 80 100 80}
|
||||||
|
{L 130 60 100 60}
|
||||||
|
{L 130 40 100 40}
|
||||||
|
{L 130 20 100 20}
|
||||||
|
{L 330 20 360 20}
|
||||||
|
{L 330 40 360 40}
|
||||||
|
{L 330 60 360 60}
|
||||||
|
[Ly "PINNAM"]
|
||||||
|
[Tj "LC"]
|
||||||
|
{T "CS" 140 240}
|
||||||
|
{T "A1" 140 220}
|
||||||
|
{T "A2" 140 200}
|
||||||
|
{T "A3" 140 180}
|
||||||
|
{T "A4" 140 160}
|
||||||
|
{T "RD" 140 140}
|
||||||
|
{T "IOREQ" 140 120}
|
||||||
|
{T "WR" 140 100}
|
||||||
|
{T "CS_LATCH" 140 80}
|
||||||
|
{T "CS_FDC" 140 60}
|
||||||
|
{T "CLK2" 140 40}
|
||||||
|
{T "CLK4" 140 20}
|
||||||
|
[Tj "RC"]
|
||||||
|
{T "BUSDIR" 320 20}
|
||||||
|
{T "CS_IDE" 320 40}
|
||||||
|
{T "BUS_WAIT" 320 60}
|
||||||
|
[Ly "DEVICE"]
|
||||||
|
[Tj "CT"]
|
||||||
|
{T "G16V8AS" 230 -10}
|
||||||
|
}
|
||||||
|
|
||||||
|
{ATR
|
||||||
|
{IN
|
||||||
|
{Org 100 20}
|
||||||
|
{Ty 255}
|
||||||
|
}
|
||||||
|
{EX
|
||||||
|
[Ly "ATTR2"]
|
||||||
|
[Ts 12][Tj "CT"][Tr 0][Tm "N"]
|
||||||
|
{At PLD Z:\HOME\DENNISGUNIA\PROJECTS\Z8C-HOMEBREW-COMPUTER\PLDS\Z8C-IDE-BOARD-U8\Z8C-MAINBOARD 230 260}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{DETAIL
|
||||||
|
{ANNOTATE
|
||||||
|
}
|
||||||
|
|
||||||
|
{NET_DEF
|
||||||
|
{N CS
|
||||||
|
}
|
||||||
|
{N A1
|
||||||
|
}
|
||||||
|
{N A2
|
||||||
|
}
|
||||||
|
{N A3
|
||||||
|
}
|
||||||
|
{N A4
|
||||||
|
}
|
||||||
|
{N RD
|
||||||
|
}
|
||||||
|
{N IOREQ
|
||||||
|
}
|
||||||
|
{N WR
|
||||||
|
}
|
||||||
|
{N CS_LATCH
|
||||||
|
}
|
||||||
|
{N CS_FDC
|
||||||
|
}
|
||||||
|
{N CLK2
|
||||||
|
}
|
||||||
|
{N CLK4
|
||||||
|
}
|
||||||
|
{N BUSDIR
|
||||||
|
}
|
||||||
|
{N CS_IDE
|
||||||
|
}
|
||||||
|
{N BUS_WAIT
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{SUBCOMP
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
32
PLDs/Z8C-IDE-Board-U8/Z8C-MAINBOARD.sim
Normal file
32
PLDs/Z8C-IDE-Board-U8/Z8C-MAINBOARD.sim
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
%SIGNAL
|
||||||
|
PIN 2 = A1
|
||||||
|
PIN 3 = A2
|
||||||
|
PIN 4 = A3
|
||||||
|
PIN 5 = A4
|
||||||
|
PIN 12 = BUSDIR
|
||||||
|
PIN 17 = BUS_WAIT
|
||||||
|
PIN 18 = CLK2
|
||||||
|
PIN 19 = CLK4
|
||||||
|
PIN 1 = CS
|
||||||
|
PIN 14 = CS_FDC
|
||||||
|
PIN 15 = CS_IDE
|
||||||
|
PIN 13 = CS_LATCH
|
||||||
|
PIN 9 = IOREQ
|
||||||
|
PIN 8 = RD
|
||||||
|
PIN 11 = WR
|
||||||
|
%END
|
||||||
|
|
||||||
|
%FIELD
|
||||||
|
%END
|
||||||
|
|
||||||
|
%EQUATION
|
||||||
|
BUSDIR =>
|
||||||
|
!CS & !RD
|
||||||
|
|
||||||
|
BUS_WAIT =>
|
||||||
|
0
|
||||||
|
|
||||||
|
CS_IDE =>
|
||||||
|
!A2 & !CS & !IOREQ
|
||||||
|
|
||||||
|
%END
|
||||||
32
PLDs/Z8C-IDE-Board-U8/Z8C-Mainboard.pld
Normal file
32
PLDs/Z8C-IDE-Board-U8/Z8C-Mainboard.pld
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
Name XXXXX;
|
||||||
|
Partno XXXXX;
|
||||||
|
Date XX/XX/XX;
|
||||||
|
Revision XX;
|
||||||
|
Designer XXXXX;
|
||||||
|
Company XXXXX;
|
||||||
|
Assembly XXXXX;
|
||||||
|
Location XXXXX;
|
||||||
|
DEVICE g16v8a;
|
||||||
|
|
||||||
|
Pin 1 = CS;
|
||||||
|
Pin 2 = A1;
|
||||||
|
Pin 3 = A2;
|
||||||
|
Pin 4 = A3;
|
||||||
|
Pin 5 = A4;
|
||||||
|
Pin 9 = IOREQ;
|
||||||
|
Pin 11 = WR;
|
||||||
|
Pin 8 = RD;
|
||||||
|
|
||||||
|
Pin 13 = CS_LATCH;
|
||||||
|
Pin 14 = CS_FDC;
|
||||||
|
Pin 15 = CS_IDE;
|
||||||
|
Pin 12 = BUSDIR;
|
||||||
|
|
||||||
|
Pin 17 = BUS_WAIT;
|
||||||
|
Pin 18 = CLK2;
|
||||||
|
Pin 19 = CLK4;
|
||||||
|
|
||||||
|
|
||||||
|
CS_IDE = !(!IOREQ & !CS & !A2 );
|
||||||
|
BUSDIR = !CS & !RD;
|
||||||
|
BUS_WAIT = 'b'0;
|
||||||
28
PLDs/Z8C-IDE-Board-U8/tmpcsim.im
Normal file
28
PLDs/Z8C-IDE-Board-U8/tmpcsim.im
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
CUPL(WM) 5.0a Serial# 60008009
|
||||||
|
Device g16v8as Library DLIB-h-40-2
|
||||||
|
Created Thu Oct 20 08:10:08 2022
|
||||||
|
Name XXXXX
|
||||||
|
Partno XXXXX
|
||||||
|
Revision XX
|
||||||
|
Date XX/XX/XX
|
||||||
|
Designer XXXXX
|
||||||
|
Company XXXXX
|
||||||
|
Assembly XXXXX
|
||||||
|
Location XXXXX
|
||||||
|
*QP20
|
||||||
|
*QF2194
|
||||||
|
*G0
|
||||||
|
*F0
|
||||||
|
*L00000 10011011101110111011101110111010
|
||||||
|
*L00512 11110111101110111011101110111011
|
||||||
|
*L00768 11111011011110111011101110111011
|
||||||
|
*L01024 10101011101110111011101110101011
|
||||||
|
*L02048 00000000010110000101100001011000
|
||||||
|
*L02080 01011000010110000000000000000000
|
||||||
|
*L02112 00000000010001111111111111111111
|
||||||
|
*L02144 11111111111111111111111111111111
|
||||||
|
*L02176 111111111111111110
|
||||||
|
*C16AE
|
||||||
|
*P 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
||||||
|
*
|
||||||
BIN
Schematics/Z80-GPU/Z80-GPU-backups/Z80-GPU-2023-01-15_174619.zip
Normal file
BIN
Schematics/Z80-GPU/Z80-GPU-backups/Z80-GPU-2023-01-15_174619.zip
Normal file
Binary file not shown.
BIN
Schematics/Z80-GPU/Z80-GPU-backups/Z80-GPU-2023-01-16_164625.zip
Normal file
BIN
Schematics/Z80-GPU/Z80-GPU-backups/Z80-GPU-2023-01-16_164625.zip
Normal file
Binary file not shown.
BIN
Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2023-01-15_202332.zip
Normal file
BIN
Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2023-01-15_202332.zip
Normal file
Binary file not shown.
BIN
Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2023-01-15_203352.zip
Normal file
BIN
Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2023-01-15_203352.zip
Normal file
Binary file not shown.
BIN
Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2023-01-15_230910.zip
Normal file
BIN
Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2023-01-15_230910.zip
Normal file
Binary file not shown.
BIN
Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2023-01-16_004103.zip
Normal file
BIN
Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2023-01-16_004103.zip
Normal file
Binary file not shown.
@@ -305,7 +305,6 @@
|
|||||||
(net 215 "Net-(RN1-Pad7)")
|
(net 215 "Net-(RN1-Pad7)")
|
||||||
(net 216 "unconnected-(U8-Pad6)")
|
(net 216 "unconnected-(U8-Pad6)")
|
||||||
(net 217 "unconnected-(U8-Pad7)")
|
(net 217 "unconnected-(U8-Pad7)")
|
||||||
(net 218 "unconnected-(U8-Pad8)")
|
|
||||||
|
|
||||||
(footprint "Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P2.54mm_Vertical" (layer "F.Cu")
|
(footprint "Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P2.54mm_Vertical" (layer "F.Cu")
|
||||||
(tedit 5AE5139B) (tstamp 02afcc90-60f8-46f6-9ded-5f6f43e29a84)
|
(tedit 5AE5139B) (tstamp 02afcc90-60f8-46f6-9ded-5f6f43e29a84)
|
||||||
@@ -2196,7 +2195,7 @@
|
|||||||
(effects (font (size 1 1) (thickness 0.15)))
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
(tstamp aac5ff4a-0e4e-4abd-950c-7111c38446c9)
|
(tstamp aac5ff4a-0e4e-4abd-950c-7111c38446c9)
|
||||||
)
|
)
|
||||||
(fp_text value "74HC14" (at 3.81 17.57) (layer "F.Fab")
|
(fp_text value "74HCT14" (at 3.81 17.57) (layer "F.Fab")
|
||||||
(effects (font (size 1 1) (thickness 0.15)))
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
(tstamp 0bc69c58-d590-446b-abd2-b9fcfe2b6b4d)
|
(tstamp 0bc69c58-d590-446b-abd2-b9fcfe2b6b4d)
|
||||||
)
|
)
|
||||||
@@ -4370,7 +4369,7 @@
|
|||||||
(pad "7" thru_hole oval (at 0 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)
|
(pad "7" thru_hole oval (at 0 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)
|
||||||
(net 217 "unconnected-(U8-Pad7)") (pinfunction "I7") (pintype "input") (tstamp ac597cd1-6bb6-4f56-a405-6b5667ac38a6))
|
(net 217 "unconnected-(U8-Pad7)") (pinfunction "I7") (pintype "input") (tstamp ac597cd1-6bb6-4f56-a405-6b5667ac38a6))
|
||||||
(pad "8" thru_hole oval (at 0 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)
|
(pad "8" thru_hole oval (at 0 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)
|
||||||
(net 218 "unconnected-(U8-Pad8)") (pinfunction "I8") (pintype "input") (tstamp 0413d1df-925c-4431-a7d6-e1bc717fa23c))
|
(net 115 "/~{#RD}") (pinfunction "I8") (pintype "input") (tstamp 0413d1df-925c-4431-a7d6-e1bc717fa23c))
|
||||||
(pad "9" thru_hole oval (at 0 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)
|
(pad "9" thru_hole oval (at 0 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)
|
||||||
(net 129 "/~{#IOREQ}") (pinfunction "I9") (pintype "input") (tstamp 35081c24-7cba-4478-990d-84371501c469))
|
(net 129 "/~{#IOREQ}") (pinfunction "I9") (pintype "input") (tstamp 35081c24-7cba-4478-990d-84371501c469))
|
||||||
(pad "10" thru_hole oval (at 0 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)
|
(pad "10" thru_hole oval (at 0 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask)
|
||||||
|
|||||||
@@ -5204,6 +5204,10 @@
|
|||||||
(stroke (width 0) (type default) (color 0 0 0 0))
|
(stroke (width 0) (type default) (color 0 0 0 0))
|
||||||
(uuid 6597e724-ffad-43f1-9619-cca25cced87f)
|
(uuid 6597e724-ffad-43f1-9619-cca25cced87f)
|
||||||
)
|
)
|
||||||
|
(bus_entry (at 112.522 164.084) (size 2.54 2.54)
|
||||||
|
(stroke (width 0) (type default) (color 0 0 0 0))
|
||||||
|
(uuid 69967772-4c76-4e10-bfb2-5b70e1c56a52)
|
||||||
|
)
|
||||||
(bus_entry (at 112.522 240.284) (size -2.54 2.54)
|
(bus_entry (at 112.522 240.284) (size -2.54 2.54)
|
||||||
(stroke (width 0) (type default) (color 0 0 0 0))
|
(stroke (width 0) (type default) (color 0 0 0 0))
|
||||||
(uuid 69e05192-f084-4bb3-aff6-f350c539f1a8)
|
(uuid 69e05192-f084-4bb3-aff6-f350c539f1a8)
|
||||||
@@ -7024,6 +7028,10 @@
|
|||||||
(stroke (width 0) (type default) (color 0 0 0 0))
|
(stroke (width 0) (type default) (color 0 0 0 0))
|
||||||
(uuid 913e209e-36b5-4ad8-a1f9-ca17572f57ee)
|
(uuid 913e209e-36b5-4ad8-a1f9-ca17572f57ee)
|
||||||
)
|
)
|
||||||
|
(wire (pts (xy 115.062 166.624) (xy 125.222 166.624))
|
||||||
|
(stroke (width 0) (type default) (color 0 0 0 0))
|
||||||
|
(uuid 91abda88-a077-44a4-be08-64ddde98a781)
|
||||||
|
)
|
||||||
(wire (pts (xy 97.79 68.072) (xy 107.95 68.072))
|
(wire (pts (xy 97.79 68.072) (xy 107.95 68.072))
|
||||||
(stroke (width 0) (type default) (color 0 0 0 0))
|
(stroke (width 0) (type default) (color 0 0 0 0))
|
||||||
(uuid 920d9b9c-684b-4682-a717-b08cbdebbcf3)
|
(uuid 920d9b9c-684b-4682-a717-b08cbdebbcf3)
|
||||||
@@ -9126,6 +9134,10 @@
|
|||||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
(uuid f7777655-8f50-4c74-b5ae-dc2b56bb3fde)
|
(uuid f7777655-8f50-4c74-b5ae-dc2b56bb3fde)
|
||||||
)
|
)
|
||||||
|
(label "~{#RD}" (at 116.332 166.624 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
(uuid f7edba16-03fb-48d4-9ada-50a21353a670)
|
||||||
|
)
|
||||||
(label "A17" (at 57.912 249.809 180)
|
(label "A17" (at 57.912 249.809 180)
|
||||||
(effects (font (size 1.27 1.27)) (justify right bottom))
|
(effects (font (size 1.27 1.27)) (justify right bottom))
|
||||||
(uuid f9570ec9-4338-4208-aee7-369a45a284f8)
|
(uuid f9570ec9-4338-4208-aee7-369a45a284f8)
|
||||||
@@ -10427,7 +10439,7 @@
|
|||||||
(symbol (lib_id "power:GND") (at 74.422 174.244 0) (unit 1)
|
(symbol (lib_id "power:GND") (at 74.422 174.244 0) (unit 1)
|
||||||
(in_bom yes) (on_board yes) (fields_autoplaced)
|
(in_bom yes) (on_board yes) (fields_autoplaced)
|
||||||
(uuid 27a26f87-3ba7-47e5-ad37-d7a8feb63205)
|
(uuid 27a26f87-3ba7-47e5-ad37-d7a8feb63205)
|
||||||
(property "Reference" "#PWR?" (id 0) (at 74.422 180.594 0)
|
(property "Reference" "#PWR0107" (id 0) (at 74.422 180.594 0)
|
||||||
(effects (font (size 1.27 1.27)) hide)
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
)
|
)
|
||||||
(property "Value" "GND" (id 1) (at 74.422 178.689 0))
|
(property "Value" "GND" (id 1) (at 74.422 178.689 0))
|
||||||
@@ -13887,7 +13899,7 @@
|
|||||||
(reference "#PWR0106") (unit 1) (value "+5V") (footprint "")
|
(reference "#PWR0106") (unit 1) (value "+5V") (footprint "")
|
||||||
)
|
)
|
||||||
(path "/27a26f87-3ba7-47e5-ad37-d7a8feb63205"
|
(path "/27a26f87-3ba7-47e5-ad37-d7a8feb63205"
|
||||||
(reference "#PWR?") (unit 1) (value "GND") (footprint "")
|
(reference "#PWR0107") (unit 1) (value "GND") (footprint "")
|
||||||
)
|
)
|
||||||
(path "/210c9332-d11d-4611-886e-5f8653605dbb"
|
(path "/210c9332-d11d-4611-886e-5f8653605dbb"
|
||||||
(reference "C1") (unit 1) (value "100nF") (footprint "Capacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mm")
|
(reference "C1") (unit 1) (value "100nF") (footprint "Capacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mm")
|
||||||
|
|||||||
14160
Schematics/Z80-IDE/Z80-IDE.kicad_sch-bak
Normal file
14160
Schematics/Z80-IDE/Z80-IDE.kicad_sch-bak
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Utility/galasm
Executable file
BIN
Utility/galasm
Executable file
Binary file not shown.
Reference in New Issue
Block a user