diff --git a/OperatingSystem/monitor_v2/include/addresses.s b/OperatingSystem/monitor_v2/include/addresses.s index 7ddad45..6f77458 100644 --- a/OperatingSystem/monitor_v2/include/addresses.s +++ b/OperatingSystem/monitor_v2/include/addresses.s @@ -40,12 +40,8 @@ VDP_MEM equ 0x80 PROG_ROM_START equ 0x0100 PROG_MEM_START equ 04000h -IO_PIO_0_A_D equ 0x60 -IO_PIO_0_A_C equ 0x61 -IO_PIO_0_B_D equ 0x62 -IO_PIO_0_B_C equ 0x63 -IO_PIO_1_A_D equ 0x64 ;PS2 -IO_PIO_1_A_C equ 0x65 -IO_PIO_1_B_D equ 0x66 -IO_PIO_1_B_C equ 0x67 +CS_PIO_BD .EQU 0xF5 +CS_PIO_BC .EQU 0xF7 +CS_PIO_AD .EQU 0xF4 +CS_PIO_AC .EQU 0xF6 diff --git a/OperatingSystem/monitor_v2/include/beep.s b/OperatingSystem/monitor_v2/include/beep.s new file mode 100644 index 0000000..af44c6b --- /dev/null +++ b/OperatingSystem/monitor_v2/include/beep.s @@ -0,0 +1,37 @@ +;------------------------------------------------------------------------------ +; beep +; +; Beeps the speaker +; DE sets duration +;------------------------------------------------------------------------------ +beep: + push AF + push BC + push DE + LD A,0x08 + OUT (CS_PIO_AD), A + LD BC, 0x28 + CALL beep_pause + LD A,0x00 + OUT (CS_PIO_AD), A + LD BC, 0x24 + CALL beep_pause + DEC DE + ld A,D + or E + jr NZ, beep + pop de + pop bc + pop af + ret + +beep_pause: + NEG ; 8 T-states + NEG ; 8 T-states + NEG ; 8 T-states + NEG ; 8 T-states + DEC BC ; 6 T-states + LD A,C ; 9 T-states + OR B ; 4 T-states + JP NZ,beep_pause ; 10 T-states + RET ; Pause complete, RETurn \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/include/console.s b/OperatingSystem/monitor_v2/include/console.s index 4708056..4d007dc 100644 --- a/OperatingSystem/monitor_v2/include/console.s +++ b/OperatingSystem/monitor_v2/include/console.s @@ -125,7 +125,7 @@ MSG_CLEAR: A_RTS_OFF: ld a,005h ;write into WR0: select WR5 out (CS_SIO_A_C),A - ld a,068h ;DTR inactiveh, TX 8bit, BREAK off, TX on, RTS inactive + ld a,068h ;DTR inactive, TX 8bit, BREAK off, TX on, RTS inactive out (CS_SIO_A_C),A ret A_RTS_ON: diff --git a/OperatingSystem/monitor_v2/main.asm b/OperatingSystem/monitor_v2/main.asm index 6247f5b..ffc520c 100644 --- a/OperatingSystem/monitor_v2/main.asm +++ b/OperatingSystem/monitor_v2/main.asm @@ -82,7 +82,7 @@ mon_start_init_sound: ;call AY0_WRITE_REG mon_start_init_ctc: - ld sp, 0xffff + ld sp, STACK_RAM_TOP ; Set CTC Ch2 Interrupt Vector ;LD A,40h ; it vector defined in bit 7­3,bit 2­1 don't care, bit 0 = 0 ;OUT (IO_CTC0_C0),A @@ -93,6 +93,13 @@ mon_start_init_ctc: ;LD A,0xFF ; 55Hz ISR ;OUT (IO_CTC0_C2),A + ;INIT PIO + LD A,0xCF + OUT (CS_PIO_AC), A + LD A,11110101b + OUT (CS_PIO_AC), A + + xor a ;ld i, a ;im 2 ;set int mode 2 @@ -144,6 +151,9 @@ mon_start_complete: ;halt + LD DE,0x40 + CALL beep + ;call vdp_cursor_on call PROMPT_BEGIN @@ -475,6 +485,7 @@ Includes: .include "disassembler.s" .include "disassembler_table.s" .include "rst.s" +.include "beep.s" ; Strings STR_Banner_Start: db "Z8C Monitor V2 by Dennis Gunia (2022)",0 diff --git a/OperatingSystem/monitor_v2/zout/main.bin b/OperatingSystem/monitor_v2/zout/main.bin index 19819ce..37d53df 100644 Binary files a/OperatingSystem/monitor_v2/zout/main.bin and b/OperatingSystem/monitor_v2/zout/main.bin differ diff --git a/OperatingSystem/monitor_v2/zout/main.hex b/OperatingSystem/monitor_v2/zout/main.hex index dd6e956..aa8673b 100644 --- a/OperatingSystem/monitor_v2/zout/main.hex +++ b/OperatingSystem/monitor_v2/zout/main.hex @@ -1,271 +1,274 @@ :03000000C35000EA -:03000800C3B60E6E -:03001000C3BA0E62 -:03001800C3C60E4E +:03000800C3C40E60 +:03001000C3C80E54 +:03001800C3D40E40 :1000440000000000000000000000000000000000AC :10005400000000000000000000000000000000009C :0A0064000000000000000000000092 -:1000500031FFFFAF3204403205403E20320640CD32 -:100060007002214400112A400100407E022303E572 -:10007000ED52E1C26B00CDBC0221C90ECDB102CD63 -:100080008B0076477AD34078D341C9CDC3023E3E38 -:10009000CDA902AF320040CDEA02CA9700F5F1FEC9 -:1000A0000DCAEE00FE0ACA9700FE08CAC800F52174 -:1000B000294016003A00405F193C320040F177CDEC -:1000C000A90223AF77C397003A0040A7CA97003D23 -:1000D0003200405F160021294019AF773E08CDA9B4 -:1000E000023E20CDA9023E08CDA902C397003A29BD -:1000F00040FE24CA2101FE3FCA4001FE21CAAA01D6 -:10010000FE69CA0F02FE6FCAE601FE64CA2B02FE38 -:1001100078CA150FCDC30221F40ECDB102C38B00F6 -:10012000C9AF322940212A40CD1603477BA7C264BC -:1001300002212C40CD16034F7BA7C264026069E9FF -:10014000CDC302212A40CD1603477BA7C2640221FA -:100150002C40CD16034F7BA7C264023A2E40FE20EE -:10016000C26402212F40CD1603F57BA7C264022191 -:10017000F90ECDB102F1606947CDC3027CCDD90241 -:100180007DCDD9023E20CDA9020E087ECDD9022315 -:10019000050D78A7CAA40179A7CA79013E20CDA987 -:1001A00002C38B01CDC302C38B00212A40CD1603AD -:1001B000477BA7C26402212C40CD16034F7BA7C208 -:1001C0006402212E407EFE00CAE001FE20C26402CD -:1001D00023CD1603027BA7C26402032323C3C501F8 -:1001E000CDC302C38B00212A40CD16034F7BA7C28B -:1001F00064023A2C40FE20C26402212D40CD160339 -:10020000F57BA7C26402F1ED79CDC302C38B002157 -:100210002A40CD16034F7BA7C26402ED78F5CDC30B -:1002200002F1CDD902CDC302C38B00CDC302212A76 -:1002300040CD1603477BA7C26402212C40CD160394 -:100240004F7BA7C264023A2E40FE20C26402212FD7 -:1002500040CD1603F57BA7C264026069F147CD6704 -:1002600003C38B00CDC30221EF0ECDB102C38B00BF -:100270003E4FD304DB01D3043E30D3093E18D309EB -:100280003E04D3093E44D3093E05D3093EE8D309D1 -:100290003E01D3093E04D3093E02D3093E00D309EF -:1002A0003E03D3093EC1D309C9F5D308CDCE02F12F -:1002B000C97EB72806CDA9022318F6C921FC02CDB4 -:1002C000B102C93E0ACDA9023E0DCDA902C9973C93 -:1002D000D309DB09CB4728F6C9F5C5D5CD4D037841 -:1002E000CDA90279CDA902D1C1F1CD0D0300AFD3C3 -:1002F00009DB09E601CD0403C8DB08C91B5B324AF0 -:100300001B5B48003E05D3093E68D309C93E05D3AF -:10031000093EEAD309C9E57ECD36033815CB27CB94 -:1003200027CB27CB2757237ECD36033805B2E11ED6 -:1003300000C91EFFE1C9D630EA4B03FE0A3805D6D4 -:1003400007EA4B03FE103003E60FC937C9F51F1F3C -:100350001F1FCD5C0347F1CD5C034FC9E60FC630CC -:10036000FE3AD8C607C9C978321A412210417E32F6 -:100370001441237E3215412BCD5B0478B1CA3D0474 -:10038000ED431241030303030A321641030A5F03DC -:100390000A57ED531741030A3219412A1041CDA3E0 -:1003A000043A1641472A10417ECDD9022310F93E66 -:1003B00068CDA9023A1641473E0690473E20CDA996 -:1003C000023E20CDA90210F43E20CDA902E52A1755 -:1003D00041CDB1023A1941B7CA3A042A1241010883 -:1003E00000093A1941477EFE01CCC904FE02CCF057 -:1003F00004FE03CC0D05FE04CC4905FE05CC5F05CB -:10040000FE06CC6C05FE07CC8605FE08CC9305FEE7 -:1004100009CCA805FE10CCBD05FE11CCCD05FE1201 -:10042000CCD505FE13CC0D06FE0ACC9F05FE80CC74 -:100430002C06FE81CC23062310ACE11810CDA304BA -:100440007ECDBB0423E521780ECDB102E1CDC30200 -:100450003A1A413D321A41C26B03C9E52176063A88 -:1004600014414F7EFEFFCA9D04F523462B79A04F11 -:10047000F1B9280B06000E07097E4F092318E02367 -:10048000234E233A154146A0B92B2B2B280B0600EF -:100490000E07097E4F092318C6444DE1C906000E18 -:1004A00000E1C93E24CDA9027CCDD9027DCDD9027F -:1004B0003E68CDA9023E20CDA902C9CDD9023E6831 -:1004C000CDA9023E20CDA902C9E5ED5B1041131A6A -:1004D0006F131A673E24CDA9027CCDD9027DCDD9F8 -:1004E000023E68CDA9023E20CDA902CD6706E1C932 -:1004F000C5ED5B10411A1F1FE60EE521810E0600B7 -:100500004F09CDB1023E20CDA902E1C1C9ED5B107A -:1005100041131AF5E680C22E053E24CDA9023E2BDA -:10052000CDA902F1CDD9023E68CDA90218173E240B -:10053000CDA9023E2DCDA902F1ED44CDD9023E68F0 -:10054000CDA9021800CD6706C9ED5B1041131AFE54 -:100550004D28063E4ECDA902C93E49CDA902C9C5C6 -:10056000ED5B10411AE638CDBB04C1C9C5ED5B1087 -:10057000411A1F1F1FE607CD42063E20CDA9023EAD -:100580002CCDA902C1C9C5ED5B10411AE607CD42C9 -:1005900006C1C9C5ED5B1041131ACDBB04C1C9E545 -:1005A000ED5B104113131806E5ED5B1041131A6F54 -:1005B000131A677CCDD9027DCDD902E1C9C5ED5BA7 -:1005C00010411A1F1F1FE607CD4206C1C9E5C5ED40 -:1005D0005B10411807E5C5ED5B1041131A1F1F1F83 -:1005E000E606F52A10417EFEDD2809FEFD280A21D7 -:1005F000910E180821990E180321A10EF106004F43 -:10060000097ECDA902237ECDA902C1E1C9E5C5EDD0 -:100610005B10411A1F1F1FE606F52A10417E21A913 -:100620000E18D9E5C52A174106021807E5C52A178D -:100630004106017E23A720FB05C23306CDB102C1CE -:10064000E1C9E5FE062811FE07281521910E0600D6 -:100650004F097ECDA902E1C921B10ECDB102E1C998 -:100660003E41CDA902E1C978FE01C83E20CDA902D4 -:100670003E2CCDA902C900FF000001CE0A0027FFD1 -:10068000000001990B002FFF0000019D0B00EDFF02 -:1006900044FF02A10B003FFF000001A50B0037FF44 -:1006A000000001A90B0076FF000001AD0B00F3FF75 -:1006B000000001B20B00FBFF000001B50B00EDFFD5 -:1006C00046FF02B80B00EDFF56FF02BD0B00EDFF29 -:1006D0005EFF02C20B00EBFF000001C70B0008FF2A -:1006E000000001D10B00D9FF000001DE0B00E3FF89 -:1006F000000001E20B00DDFFE3FF02EE0B00FDFF57 -:10070000E3FF02FA0B00EDFFA0FF02060C00EDFF75 -:10071000B0FF020A0C00EDFFA8FF020F0C00EDFF76 -:10072000B8FF02130C00EDFFA1FF02180C00EDFF53 -:10073000B1FF021C0C00EDFFA9FF02210C00EDFF30 -:10074000B9FF02250C00C3FF000003D20A0101C259 -:10075000C7000003D20A0302800118FF000002D97B -:100760000A010338FF000002DD0A010330FF000028 -:1007700002E40A010328FF000002EC0A010320FF43 -:10078000000002F30A0103E9FF000002FB0A00DD9A -:10079000FFE9FF02040B00FDFFE9FF020D0B001053 -:1007A000FF000002160B0103CDFF0000031C0B012C -:1007B00001C4C70000031C0B020201C9FF000001B5 -:1007C000220B00C0C7000001220B0102EDFF4DFF0C -:1007D00002270B00EDFF45FF022C0B00C7C70000EE -:1007E00001310B01050AFF000001360B001AFF0062 -:1007F0000001400B003AFF0000034A0B020980028F -:10080000FF000001540B0012FF0000015F0B0032DB -:10081000FF0000036A0B020980EDFF57FF02790B0E -:1008200000EDFF5FFF02810B00EDFF47FF02890B28 -:1008300000EDFF4FFF02910B0006C7000002750B91 -:1008400002060840C0000001750B02060780F80090 -:1008500000012A0C0107C6FF0000022A0C0108DD76 -:10086000FF86FF03320C020880FDFF86FF03410C68 -:10087000020880C8F8000001500C01078EF8000043 -:1008800002500C0108DDFF8EFF03580C020880FDAA -:10089000FF8EFF03670C02088090F8000001760CC1 -:1008A0000107D6FF000002760C0108DDFF96FF036A -:1008B0007B0C020880FDFF96FF03870C02088094E2 -:1008C000F8000001930C0107DEFF000002930C0109 -:1008D00008DDFF9EFF039B0C020880FDFF9EFF03C7 -:1008E000A90C020880A0F8000001B70C0107E6FF80 -:1008F000000002B70C0108DDFFA6FF03BC0C0208D4 -:1009000080FDFFA6FF03C80C020880B0F8000001BC -:10091000D40C0107F6FF000002D40C0108DDFFB67D -:10092000FF03D80C020880FDFFB6FF03E30C0208AA -:1009300080A8F8000001EE0C0107EEFF000002EEB7 -:100940000C0108DDFFAEFF03F30C020880FDFFAED3 -:10095000FF03FF0C020880B8F80000010B0D01072F -:10096000FEFF0000020B0D0108DDFFBEFF030F0DAF -:10097000020880FDFFBEFF031A0D02088004C700B5 -:100980000001250D0110DDFF34FF032A0D02088050 -:10099000FDFF34FF03360D02088005C70000014249 -:1009A0000D0110DDFF35FF03470D020880FDFF3507 -:1009B000FF03530D02088009CF0000015F0D0111F4 -:1009C000EDFF4ACF02680D0112EDFF42CF02710D1B -:1009D0000112DDFF09CF027A0D0112FDFF09CF02DE -:1009E000830D011203CF0000018C0D0111DDFF23E7 -:1009F000FF02910D00FDFF23FF029A0D000BCF00B7 -:100A00000001A30D0111DDFF2BFF02A80D00FDFF6A -:100A10002BFF02B10D0001CF000003BA0D031180BE -:100A200009DDFF21FF04C10D010AFDFF21FF04C9FB -:100A30000D010A2AFF000003D10D020980EDFF4BD2 -:100A4000CF04DD0D0412800A81DDFF2AFF04E80DCA -:100A5000010AFDFF2AFF04F40D010A22FF00000332 -:100A6000000E020A80EDFF43CF040C0E030A801231 -:100A7000DDFF22CF04160E020A80FDFF22CF0422E2 -:100A80000E020A80F9FF0000012E0E00DDFFF9FFC3 -:100A900002380E00FDFFF9FF02420E00C5CF000034 -:100AA000014C0E0113DDFFE5FF02520E00FDFFE5D4 -:100AB000FF025A0E00C1CF000001620E0113DDFFDC -:100AC000E1FF02680E00FDFFE1FF02700E004E4FD5 -:100AD00050004A5020002C20004A5220004A522048 -:100AE000432C20004A52204E432C20004A52205AC8 -:100AF0002C20004A52204E5A2C20004A50202848D0 -:100B00004C2920004A50202849582920004A5020CA -:100B1000284959292000444A4E5A200043414C4C50 -:100B20002000524554200052455449005245544E2D -:100B30000052535420004C4420412C2842432900A9 -:100B40004C4420412C28444529004C4420412C2869 -:100B5000006829004C4420284243292C2041004CA5 -:100B60004420284445292C2041004C44202800687A -:100B7000292C2041004C4420004C4420412C204989 -:100B8000004C4420412C2052004C4420492C204150 -:100B9000004C4420522C2041004441410043504C21 -:100BA000004E454700434346005343460048414CEE -:100BB0005400444900454900494D203000494D202A -:100BC0003100494D20320045582044452C20484CE6 -:100BD0000045582041462C204146E280B20045584D -:100BE0005800455820285350292C20484C0045587F -:100BF00020285350292C204958004558202853506C -:100C0000292C204959004C4449004C444952004C7D -:100C10004444004C4444520043504900435049521C -:100C20000043504400435044520041444420412C6E -:100C3000200041444420412C202849582B00682999 -:100C40000041444420412C202849592B00682900A8 -:100C500041444320412C200041444320412C202882 -:100C600049582B0068290041444320412C20284941 -:100C7000592B006829005355422000535542202823 -:100C800049582B00682900535542202849592B0008 -:100C900068290053424320412C2000534243204105 -:100CA0002C2849582B0068290053424320412C2806 -:100CB00049592B00682900414E442000414E4420F0 -:100CC0002849582B00682900414E44202849592BB7 -:100CD000006829004F5220004F52202849582B000D -:100CE0006829004F52202849592B00682900584F85 -:100CF000522000584F52202849582B00682900588C -:100D00004F52202849592B006829004350200043A6 -:100D100050202849582B0068290043502028495961 -:100D20002B00682900494E432000494E43202849A2 -:100D3000582B00682900494E43202849592B006848 -:100D400029004445432000444543202849582B00AE -:100D5000682900444543202849592B00682900414F -:100D6000444420484C2C200041444320484C2C2033 -:100D70000053424320484C2C200041444420495811 -:100D80002C20004144442049592C2000494E432046 -:100D900000494E432049582C2000494E43204959D0 -:100DA0002C200044454320004445432049582C2032 -:100DB000004445432049592C20004C4420002C205D -:100DC000004C442049582C20004C442049592C20E8 -:100DD000004C4420484C2C2028006829004C44201A -:100DE000002C2028006829004C442049582C202839 -:100DF000006829004C442049592C2028006829000B -:100E00004C4420280068292C20484C004C442028C1 -:100E10000068292C20004C4420280068292C2049F7 -:100E200058004C4420280068292C204959004C4483 -:100E30002053502C20484C004C442053502C204927 -:100E400058004C442053502C2049590050555348C9 -:100E500020005055534820495800505553482049C8 -:100E600059005055534820005055534820495800C8 -:100E700050555348204959002E3F2E002020202055 -:100E8000004E5A5A004E434300504F504550004DBB -:100E90000042434445484C5350424344454958530B -:100EA00050424344454959535042434445484C41BC -:100EB0004628484C2900CDA902C9C5D5E5CDEA028E -:100EC000F5F1E1D1C1C93E00C95A3843204D6F6EDA -:100ED00069746F722056322062792044656E6E69A3 -:100EE000732047756E6961202832303232290073D1 -:100EF000796E3F00636D643F0042415345203020CE -:100F00002031202032202033202034202035202082 -:100F10003620203700CD04033EA7D3063E0ED3066D -:100F20003E00D30421F50F22044221000022FC40A0 -:100F300022FE403E42ED47ED5E217010CDB102FB36 -:100F4000CDA6103E43CD4610CD1910DA430FFE0456 -:100F5000CAAC0FFE18CA430FFE01CA600FC3B40F1C -:100F6000CD1910DA98104732FB40CD1910DA9810DD -:100F700080FEFFC2B40F3D781FE67F67783D0FE625 -:100F8000806F1100441906800E00E5CD1910DA9823 -:100F900010E177230C05C28A0FCD1910DA9810578B -:100FA0000CCD1910DA98105F0CC38A103E06CD469E -:100FB00010C3EE0F3E18CD46103E18CD46103E1819 -:100FC000CD46103E18CD46103E18CD46103E18CDE9 -:100FD00046103E18CD46103E18CD46103E18CD4660 -:100FE000103E18CD46103E18215710CDB102F3CD5A -:100FF000C302C38B00F308D92AFC402322FC401112 -:101000000404ED52C2141021000022FC402AFE40CC -:101010002322FE4008D9FBED4DF321000022FC40C5 -:1010200022FE40FBCD0D032AFE407DFE03CA441084 -:10103000AFD309DB09E601CA2710DB08F5CD0403AD -:10104000F1373FC937C9D308CD4C10C9973CD309F4 -:10105000DB09CB4728F6C94572726F723A20756E6C -:10106000657870656374656420627974650D0A0043 -:10107000417761697420786D6F64656D20636F6E70 -:101080006E656374696F6E0D0A003E06CD4610CD25 -:101090001910DA8A10C34E0F3E15CD4610CD191027 -:1010A000DA9810C34E0F21FF00010100000000007C -:0510B000ED42C818F735 +:1000500031FFFF3ECFD3F63EF5D3F6AF3204403248 +:1000600005403E20320640CD7E02214400112A4048 +:100070000100407E022303E5ED52E1C27300CDCAC8 +:100080000221000FCDBF02114000CDD70ECD990047 +:1000900076477AD34078D341C9CDD1023E3ECDB721 +:1000A00002AF320040CDF802CAA500F5F1FE0DCA3C +:1000B000FC00FE0ACAA500FE08CAD600F5212940A8 +:1000C00016003A00405F193C320040F177CDB7028C +:1000D00023AF77C3A5003A0040A7CAA5003D320070 +:1000E000405F160021294019AF773E08CDB7023E88 +:1000F00020CDB7023E08CDB702C3A5003A2940FE85 +:1001000024CA2F01FE3FCA4E01FE21CAB801FE6972 +:10011000CA1D02FE6FCAF401FE64CA3902FE78CA23 +:100120004C0FCDD102212B0FCDBF02C39900C9AF17 +:10013000322940212A40CD2403477BA7C2720221E5 +:100140002C40CD24034F7BA7C272026069E9CDD158 +:1001500002212A40CD2403477BA7C27202212C40F2 +:10016000CD24034F7BA7C272023A2E40FE20C272FA +:1001700002212F40CD2403F57BA7C2720221300F4C +:10018000CDBF02F1606947CDD1027CCDE7027DCDC4 +:10019000E7023E20CDB7020E087ECDE70223050D13 +:1001A00078A7CAB20179A7CA87013E20CDB702C39A +:1001B0009901CDD102C39900212A40CD2403477B68 +:1001C000A7C27202212C40CD24034F7BA7C272022A +:1001D000212E407EFE00CAEE01FE20C2720223CD17 +:1001E0002403027BA7C27202032323C3D301CDD110 +:1001F00002C39900212A40CD24034F7BA7C272027B +:100200003A2C40FE20C27202212D40CD2403F57B02 +:10021000A7C27202F1ED79CDD102C39900212A4023 +:10022000CD24034F7BA7C27202ED78F5CDD102F148 +:10023000CDE702CDD102C39900CDD102212A40CD14 +:100240002403477BA7C27202212C40CD24034F7B9D +:10025000A7C272023A2E40FE20C27202212F40CD68 +:100260002403F57BA7C272026069F147CD7503C311 +:100270009900CDD10221260FCDBF02C399003E4F78 +:10028000D304DB01D3043E30D3093E18D3093E0426 +:10029000D3093E44D3093E05D3093EE8D3093E01C4 +:1002A000D3093E04D3093E02D3093E00D3093E03DD +:1002B000D3093EC1D309C9F5D308CDDC02F1C97E0B +:1002C000B72806CDB7022318F6C9210A03CDBF020D +:1002D000C93E0ACDB7023E0DCDB702C9973CD3093E +:1002E000DB09CB4728F6C9F5C5D5CD5B0378CDB77B +:1002F0000279CDB702D1C1F1CD1B0300AFD309DB29 +:1003000009E601CD1203C8DB08C91B5B324A1B5B3F +:1003100048003E05D3093E68D309C93E05D3093ECE +:10032000EAD309C9E57ECD44033815CB27CB27CBCB +:1003300027CB2757237ECD44033805B2E11E00C9E1 +:100340001EFFE1C9D630EA5903FE0A3805D607EA8E +:100350005903FE103003E60FC937C9F51F1F1F1FD1 +:10036000CD6A0347F1CD6A034FC9E60FC630FE3AA6 +:10037000D8C607C9C978321A412210417E321441C9 +:10038000237E3215412BCD690478B1CA4B04ED436D +:100390001241030303030A321641030A5F030A579B +:1003A000ED531741030A3219412A1041CDB1043AE5 +:1003B0001641472A10417ECDE7022310F93E68CD51 +:1003C000B7023A1641473E0690473E20CDB7023E5F +:1003D00020CDB70210F43E20CDB702E52A1741CD5B +:1003E000BF023A1941B7CA48042A1241010800095C +:1003F0003A1941477EFE01CCD704FE02CCFE04FE32 +:1004000003CC1B05FE04CC5705FE05CC6D05FE068E +:10041000CC7A05FE07CC9405FE08CCA105FE09CCDC +:10042000B605FE10CCCB05FE11CCDB05FE12CCE3ED +:1004300005FE13CC1B06FE0ACCAD05FE80CC3A06A9 +:10044000FE81CC31062310ACE11810CDB1047ECD75 +:10045000C90423E521860ECDBF02E1CDD1023A1AAF +:10046000413D321A41C27903C9E52184063A14415B +:100470004F7EFEFFCAAB04F523462B79A04FF1B99E +:10048000280B06000E07097E4F092318E023234E90 +:10049000233A154146A0B92B2B2B280B06000E073B +:1004A000097E4F092318C6444DE1C906000E00E13C +:1004B000C93E24CDB7027CCDE7027DCDE7023E6880 +:1004C000CDB7023E20CDB702C9CDE7023E68CDB719 +:1004D000023E20CDB702C9E5ED5B1041131A6F1340 +:1004E0001A673E24CDB7027CCDE7027DCDE7023E00 +:1004F00068CDB7023E20CDB702CD7506E1C9C5ED86 +:100500005B10411A1F1FE60EE5218F0E06004F09F2 +:10051000CDBF023E20CDB702E1C1C9ED5B10411352 +:100520001AF5E680C23C053E24CDB7023E2BCDB77E +:1005300002F1CDE7023E68CDB70218173E24CDB7D1 +:10054000023E2DCDB702F1ED44CDE7023E68CDB7B6 +:10055000021800CD7506C9ED5B1041131AFE4D2837 +:10056000063E4ECDB702C93E49CDB702C9C5ED5BC7 +:1005700010411AE638CDC904C1C9C5ED5B10411A56 +:100580001F1F1FE607CD50063E20CDB7023E2CCDE3 +:10059000B702C1C9C5ED5B10411AE607CD5006C1CF +:1005A000C9C5ED5B1041131ACDC904C1C9E5ED5BA6 +:1005B000104113131806E5ED5B1041131A6F131A5F +:1005C000677CCDE7027DCDE702E1C9C5ED5B104157 +:1005D0001A1F1F1FE607CD5006C1C9E5C5ED5B1008 +:1005E000411807E5C5ED5B1041131A1F1F1FE606F2 +:1005F000F52A10417EFEDD2809FEFD280A219F0E06 +:10060000180821A70E180321AF0EF106004F097E2E +:10061000CDB702237ECDB702C1E1C9E5C5ED5B10C0 +:10062000411A1F1F1FE606F52A10417E21B70E183A +:10063000D9E5C52A174106021807E5C52A1741065C +:10064000017E23A720FB05C24106CDBF02C1E1C93F +:10065000E5FE062811FE072815219F0E06004F090A +:100660007ECDB702E1C921BF0ECDBF02E1C93E4137 +:10067000CDB702E1C978FE01C83E20CDB7023E2CBD +:10068000CDB702C900FF000001DC0A0027FF00000F +:1006900001A70B002FFF000001AB0B00EDFF44FF93 +:1006A00002AF0B003FFF000001B30B0037FF00005B +:1006B00001B70B0076FF000001BB0B00F3FF000049 +:1006C00001C00B00FBFF000001C30B00EDFF46FF64 +:1006D00002C60B00EDFF56FF02CB0B00EDFF5EFFE5 +:1006E00002D00B00EBFF000001D50B0008FF00005B +:1006F00001DF0B00D9FF000001EC0B00E3FF00005D +:1007000001F00B00DDFFE3FF02FC0B00FDFFE3FF48 +:1007100002080C00EDFFA0FF02140C00EDFFB0FF7B +:1007200002180C00EDFFA8FF021D0C00EDFFB8FF42 +:1007300002210C00EDFFA1FF02260C00EDFFB1FF2E +:10074000022A0C00EDFFA9FF022F0C00EDFFB9FFFC +:1007500002330C00C3FF000003E00A0101C2C7001E +:100760000003E00A0302800118FF000002E70A010B +:100770000338FF000002EB0A010330FF000002F221 +:100780000A010328FF000002FA0A010320FF00000B +:1007900002010B0103E9FF000002090B00DDFFE984 +:1007A000FF02120B00FDFFE9FF021B0B0010FF0010 +:1007B0000002240B0103CDFF0000032A0B0101C43A +:1007C000C70000032A0B020201C9FF000001300B21 +:1007D00000C0C7000001300B0102EDFF4DFF0235E4 +:1007E0000B00EDFF45FF023A0B00C7C70000013FB9 +:1007F0000B01050AFF000001440B001AFF00000175 +:100800004E0B003AFF000003580B02098002FF0064 +:100810000001620B0012FF0000016D0B0032FF00AF +:100820000003780B020980EDFF57FF02870B00EDF4 +:10083000FF5FFF028F0B00EDFF47FF02970B00EDFC +:10084000FF4FFF029F0B0006C7000002830B02064A +:100850000840C0000001830B02060780F800000179 +:10086000380C0107C6FF000002380C0108DDFF86C6 +:10087000FF03400C020880FDFF86FF034F0C0208B7 +:1008800080C8F80000015E0C01078EF80000025ECF +:100890000C0108DDFF8EFF03660C020880FDFF8E51 +:1008A000FF03750C02088090F8000001840C01071A +:1008B000D6FF000002840C0108DDFF96FF03890CBF +:1008C000020880FDFF96FF03950C02088094F80053 +:1008D0000001A10C0107DEFF000002A10C0108DDF0 +:1008E000FF9EFF03A90C020880FDFF9EFF03B70CCB +:1008F000020880A0F8000001C50C0107E6FF000017 +:1009000002C50C0108DDFFA6FF03CA0C020880FD2A +:10091000FFA6FF03D60C020880B0F8000001E20C2D +:100920000107F6FF000002E20C0108DDFFB6FF033D +:10093000E60C020880FDFFB6FF03F10C020880A858 +:10094000F8000001FC0C0107EEFF000002FC0C01A6 +:1009500008DDFFAEFF03010D020880FDFFAEFF03BF +:100960000D0D020880B8F8000001190D0107FEFF07 +:10097000000002190D0108DDFFBEFF031D0D020876 +:1009800080FDFFBEFF03280D02088004C7000001A0 +:10099000330D0110DDFF34FF03380D020880FDFF29 +:1009A00034FF03440D02088005C7000001500D010B +:1009B00010DDFF35FF03550D020880FDFF35FF03F5 +:1009C000610D02088009CF0000016D0D0111EDFFDE +:1009D0004ACF02760D0112EDFF42CF027F0D0112C8 +:1009E000DDFF09CF02880D0112FDFF09CF02910D35 +:1009F000011203CF0000019A0D0111DDFF23FF0258 +:100A00009F0D00FDFF23FF02A80D000BCF0000018A +:100A1000B10D0111DDFF2BFF02B60D00FDFF2BFF15 +:100A200002BF0D0001CF000003C80D03118009DDD6 +:100A3000FF21FF04CF0D010AFDFF21FF04D70D01A7 +:100A40000A2AFF000003DF0D020980EDFF4BCF04EF +:100A5000EB0D0412800A81DDFF2AFF04F60D010A66 +:100A6000FDFF2AFF04020E010A22FF0000030E0E02 +:100A7000020A80EDFF43CF041A0E030A8012DDFF45 +:100A800022CF04240E020A80FDFF22CF04300E0282 +:100A90000A80F9FF0000013C0E00DDFFF9FF02466D +:100AA0000E00FDFFF9FF02500E00C5CF0000015AF5 +:100AB0000E0113DDFFE5FF02600E00FDFFE5FF0202 +:100AC000680E00C1CF000001700E0113DDFFE1FFD1 +:100AD00002760E00FDFFE1FF027E0E004E4F500039 +:100AE0004A5020002C20004A5220004A5220432C19 +:100AF00020004A52204E432C20004A52205A2C20DB +:100B0000004A52204E5A2C20004A502028484C2996 +:100B100020004A50202849582920004A50202849BE +:100B200059292000444A4E5A200043414C4C200091 +:100B3000524554200052455449005245544E0052EB +:100B4000535420004C4420412C28424329004C445B +:100B500020412C28444529004C4420412C28006881 +:100B600029004C4420284243292C2041004C442099 +:100B7000284445292C2041004C4420280068292C79 +:100B80002041004C4420004C4420412C2049004C82 +:100B90004420412C2052004C4420492C2041004C40 +:100BA0004420522C2041004441410043504C004E0F +:100BB000454700434346005343460048414C5400D8 +:100BC000444900454900494D203000494D2031003D +:100BD000494D20320045582044452C20484C0045C2 +:100BE000582041462C204146E280B200455858002A +:100BF000455820285350292C20484C00455820287F +:100C00005350292C20495800455820285350292C4E +:100C1000204959004C4449004C444952004C44443A +:100C2000004C444452004350490043504952004351 +:100C3000504400435044520041444420412C200081 +:100C400041444420412C202849582B006829004168 +:100C5000444420412C202849592B00682900414454 +:100C60004320412C200041444320412C2028495856 +:100C70002B0068290041444320412C202849592B4E +:100C800000682900535542200053554220284958F6 +:100C90002B00682900535542202849592B00682908 +:100CA0000053424320412C200053424320412C2832 +:100CB00049582B0068290053424320412C284959A8 +:100CC0002B00682900414E442000414E4420284911 +:100CD000582B00682900414E44202849592B0068B0 +:100CE00029004F5220004F52202849582B006829D4 +:100CF000004F52202849592B00682900584F522094 +:100D000000584F52202849582B00682900584F524C +:100D1000202849592B0068290043502000435020C7 +:100D20002849582B006829004350202849592B0096 +:100D3000682900494E432000494E43202849582B3A +:100D400000682900494E43202849592B0068290092 +:100D50004445432000444543202849582B00682936 +:100D600000444543202849592B0068290041444448 +:100D700020484C2C200041444320484C2C20005358 +:100D8000424320484C2C20004144442049582C2008 +:100D9000004144442049592C2000494E4320004939 +:100DA0004E432049582C2000494E432049592C20BD +:100DB0000044454320004445432049582C2000442A +:100DC00045432049592C20004C4420002C20004C45 +:100DD000442049582C20004C442049592C20004CD8 +:100DE0004420484C2C2028006829004C4420002C2A +:100DF0002028006829004C442049582C20280068ED +:100E000029004C442049592C2028006829004C44D2 +:100E100020280068292C20484C004C4420280068D9 +:100E2000292C20004C4420280068292C20495800F7 +:100E30004C4420280068292C204959004C44205358 +:100E4000502C20484C004C442053502C2049580032 +:100E50004C442053502C20495900505553482000F1 +:100E6000505553482049580050555348204959007F +:100E7000505553482000505553482049580050556C +:100E80005348204959002E3F2E0020202020004E9C +:100E90005A5A004E434300504F504550004D0042B7 +:100EA000434445484C5350424344454958535042AB +:100EB0004344454959535042434445484C414628D0 +:100EC000484C2900CDB702C9C5D5E5CDF802F5F1EA +:100ED000E1D1C1C93E00C93E08D3F4012800CDF1DB +:100EE0000E3E00D3F4012400CDF10E1B7AB320E7AF +:100EF000C9ED44ED44ED44ED440B79B0C2F10EC9A7 +:100F00005A3843204D6F6E69746F722056322062DA +:100F1000792044656E6E69732047756E696120287B +:100F200032303232290073796E3F00636D643F00C6 +:100F300042415345203020203120203220203320D0 +:100F4000203420203520203620203700CD12033ECB +:100F5000A7D3063E0ED3063E00D304212C10220454 +:100F60004221000022FC4022FE403E42ED47ED5E61 +:100F700021A710CDBF02FBCDDD103E43CD7D10CDAE +:100F80005010DA7A0FFE04CAE30FFE18CA7A0FFE79 +:100F900001CA970FC3EB0FCD5010DACF104732FBC9 +:100FA00040CD5010DACF1080FEFFC2EB0F3D781F0E +:100FB000E67F67783D0FE6806F1100441906800ECA +:100FC00000E5CD5010DACF10E177230C05C2C10F38 +:100FD000CD5010DACF10570CCD5010DACF105F0C77 +:100FE000C3C1103E06CD7D10C325103E18CD7D1027 +:100FF0003E18CD7D103E18CD7D103E18CD7D103EA3 +:1010000018CD7D103E18CD7D103E18CD7D103E18B8 +:10101000CD7D103E18CD7D103E18CD7D103E18219F +:101020008E10CDBF02F3CDD102C39900F308D92AA7 +:10103000FC402322FC40110404ED52C24B1021005D +:101040000022FC402AFE402322FE4008D9FBED4D41 +:10105000F321000022FC4022FE40FBCD1B032AFEB0 +:10106000407DFE03CA7B10AFD309DB09E601CA5EEF +:1010700010DB08F5CD1203F1373FC937C9D308CDCE +:101080008310C9973CD309DB09CB4728F6C94572C1 +:10109000726F723A20756E6578706563746564204E +:1010A000627974650D0A00417761697420786D6F0B +:1010B00064656D20636F6E6E656374696F6E0D0A93 +:1010C000003E06CD7D10CD5010DAC110C3850F3E15 +:1010D00015CD7D10CD5010DACF10C3850F21FF0044 +:0C10E00001010000000000ED42C818F7FC :00000001FF diff --git a/OperatingSystem/monitor_v2/zout/main.lst b/OperatingSystem/monitor_v2/zout/main.lst index 648494b..5373fc9 100644 --- a/OperatingSystem/monitor_v2/zout/main.lst +++ b/OperatingSystem/monitor_v2/zout/main.lst @@ -59,15 +59,11 @@ 40: - 0100 PROG_ROM_START equ 0x0100 41: - 4000 PROG_MEM_START equ 04000h 42: - 43: - 0060 IO_PIO_0_A_D equ 0x60 - 44: - 0061 IO_PIO_0_A_C equ 0x61 - 45: - 0062 IO_PIO_0_B_D equ 0x62 - 46: - 0063 IO_PIO_0_B_C equ 0x63 - 47: - 48: - 0064 IO_PIO_1_A_D equ 0x64 ;PS2 - 49: - 0065 IO_PIO_1_A_C equ 0x65 - 50: - 0066 IO_PIO_1_B_D equ 0x66 - 51: - 0067 IO_PIO_1_B_C equ 0x67 + 43: + 44: - 00F5 CS_PIO_BD .EQU 0xF5 + 45: - 00F7 CS_PIO_BC .EQU 0xF7 + 46: - 00F4 CS_PIO_AD .EQU 0xF4 + 47: - 00F6 CS_PIO_AC .EQU 0xF6 **** main.asm **** 19: 20: - 0000 org 0x0000 @@ -76,15 +72,15 @@ 23: 24: - 0008 org 0x0008 25: - 0008 RST_08 ;Print Char - 26: 10+10 0008 C3B60E jp EXEC_RST_08 + 26: 10+10 0008 C3C40E jp EXEC_RST_08 27: 28: - 0010 org 0x0010 29: - 0010 RST_10 ;receive char - 30: 20+10 0010 C3BA0E jp EXEC_RST_10 + 30: 20+10 0010 C3C80E jp EXEC_RST_10 31: 32: - 0018 org 0x0018 33: - 0018 RST_18 ;Buffer length - 34: 30+10 0018 C3C60E jp EXEC_RST_18 + 34: 30+10 0018 C3D40E jp EXEC_RST_18 35: 36: 37: - 001B INT_VEC: @@ -146,383 +142,393 @@ 93: ;LD A,0xFF ; 55Hz ISR 94: ;OUT (IO_CTC0_C2),A 95: - 96: 50+4 0053 AF xor a - 97: ;ld i, a - 98: ;im 2 ;set int mode 2 - 99: - 100: 54+13 0054 320440 ld (var_curserstate),a - 101: 67+13 0057 320540 ld (var_curseron),a - 102: 80+7 005A 3E20 ld a, " " - 103: 87+13 005C 320640 ld (var_curserchar),a - 104: - 105: - 106: ;ei ; Enable Interrupts - 107: - 108: ;jr mon_start_ram ;skip serial, cause not used atm - 109: - 005F mon_start_init_serial: - 110: 100+17 005F CD7002 call CONSOLE_INIT - 111: - 0062 mon_start_ram: - 112: 117+10 0062 214400 ld hl,mon_var_template - 113: 127+10 0065 112A40 ld de,mon_var_template_end - 114: 137+10 0068 010040 ld bc,SYS_RAM_START - 115: - 006B mon_start_ram_loop: - 116: 147+7 006B 7E ld a,(hl) ;copy values - 117: 154+7 006C 02 ld (bc),a - 118: 161+6 006D 23 inc hl - 119: 167+6 006E 03 inc bc - 120: 173+11 006F E5 push hl ;check if end is reached - 121: 184+15 0070 ED52 sbc hl,de - 122: 199+10 0072 E1 pop hl - 123: 209+10 0073 C26B00 jp nz, mon_start_ram_loop - 124: ;template copy done - 125: - 126: - 0076 mon_start_complete: - 127: - 128: ;call keyboard_init_io - 129: ;call vdpconsole_init - 130: - 131: ;call print_str - 132: - 133: - 134: ;jp splash_run - 135: - 136: ;jp ps2demo_run - 137: ;call debug_init - 138: ;call vdp_cursor_on - 139: ;jp COLD + 96: ;INIT PIO + 97: 50+7 0053 3ECF LD A,0xCF + 98: 57+11 0055 D3F6 OUT (CS_PIO_AC), A + 99: 68+7 0057 3EF5 LD A,11110101b + 100: 75+11 0059 D3F6 OUT (CS_PIO_AC), A + 101: + 102: + 103: 86+4 005B AF xor a + 104: ;ld i, a + 105: ;im 2 ;set int mode 2 + 106: + 107: 90+13 005C 320440 ld (var_curserstate),a + 108: 103+13 005F 320540 ld (var_curseron),a + 109: 116+7 0062 3E20 ld a, " " + 110: 123+13 0064 320640 ld (var_curserchar),a + 111: + 112: + 113: ;ei ; Enable Interrupts + 114: + 115: ;jr mon_start_ram ;skip serial, cause not used atm + 116: - 0067 mon_start_init_serial: + 117: 136+17 0067 CD7E02 call CONSOLE_INIT + 118: - 006A mon_start_ram: + 119: 153+10 006A 214400 ld hl,mon_var_template + 120: 163+10 006D 112A40 ld de,mon_var_template_end + 121: 173+10 0070 010040 ld bc,SYS_RAM_START + 122: - 0073 mon_start_ram_loop: + 123: 183+7 0073 7E ld a,(hl) ;copy values + 124: 190+7 0074 02 ld (bc),a + 125: 197+6 0075 23 inc hl + 126: 203+6 0076 03 inc bc + 127: 209+11 0077 E5 push hl ;check if end is reached + 128: 220+15 0078 ED52 sbc hl,de + 129: 235+10 007A E1 pop hl + 130: 245+10 007B C27300 jp nz, mon_start_ram_loop + 131: ;template copy done + 132: + 133: - 007E mon_start_complete: + 134: + 135: ;call keyboard_init_io + 136: ;call vdpconsole_init + 137: + 138: ;call print_str + 139: 140: - 141: 219+17 0076 CDBC02 call print_clear - 142: 236+10 0079 21C90E ld hl, [STR_Banner_Start] - 143: 246+17 007C CDB102 call print_str - 144: - 145: ;halt - 146: - 147: ;call vdp_cursor_on - 148: 263+17 007F CD8B00 call PROMPT_BEGIN - 149: - 150: ;halt CPU if prompt exits - 151: 280+4 0082 76 halt - 152: - 153: ; Misc Functions - 154: - 0083 AY0_WRITE_REG: - 155: 284+4 0083 47 LD B,A - 156: 288+4 0084 7A LD A,D - 157: 292+11 0085 D340 OUT (IO_AY0_ADDR),A - 158: 303+4 0087 78 LD A,B - 159: 307+11 0088 D341 OUT (IO_AY0_DATA),A - 160: 318+10 008A C9 RET - 161: - 162: - 008B PROMPT_BEGIN: - 163: 328+17 008B CDC302 call print_newLine - 164: ;call A_RTS_ON - 165: 345+7 008E 3E3E ld a,'>' - 166: 352+17 0090 CDA902 call print_char - 167: 369+4 0093 AF xor a ;reset buffer len - 168: 373+13 0094 320040 ld (var_buffer_len),a - 169: - 170: - 0097 PROMPT_BEGIN_READ_LOOP: - 171: 386+17 0097 CDEA02 call read_char - 172: ;call keybd_read_ascii - 173: 403+10 009A CA9700 jp z, PROMPT_BEGIN_READ_LOOP ; wait until char avail - 174: 413+11 009D F5 push af - 175: 424+10 009E F1 pop af - 176: ; process special ops - 177: 434+7 009F FE0D cp 13 ; enter - 178: 441+10 00A1 CAEE00 jp z,PROMPT_BEGIN_READ_PROCESS - 179: 451+7 00A4 FE0A cp 10 - 180: 458+10 00A6 CA9700 jp z, PROMPT_BEGIN_READ_LOOP; skip LF for file load - 181: 468+7 00A9 FE08 cp 0x08 ; backspace 0x08 VT102 0x7f Putty - 182: 475+10 00AB CAC800 jp z,PROMPT_BEGIN_READ_BACKSPACE - 183: - 184: 485+11 00AE F5 push af - 185: ; a contains latest char - 186: 496+10 00AF 212940 ld hl,[var_buffer] - 187: 506+7 00B2 1600 ld d,0 - 188: 513+13 00B4 3A0040 ld a,(var_buffer_len) - 189: 526+4 00B7 5F ld e,a - 190: 530+11 00B8 19 add hl,de ;hl now contains pointer to last position in buffer - 191: 541+4 00B9 3C inc a - 192: 545+13 00BA 320040 ld (var_buffer_len),a ;store incremented buffer length + 141: ;jp splash_run + 142: + 143: ;jp ps2demo_run + 144: ;call debug_init + 145: ;call vdp_cursor_on + 146: ;jp COLD + 147: + 148: 255+17 007E CDCA02 call print_clear + 149: 272+10 0081 21000F ld hl, [STR_Banner_Start] + 150: 282+17 0084 CDBF02 call print_str + 151: + 152: ;halt + 153: + 154: 299+10 0087 114000 LD DE,0x40 + 155: 309+17 008A CDD70E CALL beep + 156: + 157: ;call vdp_cursor_on + 158: 326+17 008D CD9900 call PROMPT_BEGIN + 159: + 160: ;halt CPU if prompt exits + 161: 343+4 0090 76 halt + 162: + 163: ; Misc Functions + 164: - 0091 AY0_WRITE_REG: + 165: 347+4 0091 47 LD B,A + 166: 351+4 0092 7A LD A,D + 167: 355+11 0093 D340 OUT (IO_AY0_ADDR),A + 168: 366+4 0095 78 LD A,B + 169: 370+11 0096 D341 OUT (IO_AY0_DATA),A + 170: 381+10 0098 C9 RET + 171: + 172: - 0099 PROMPT_BEGIN: + 173: 391+17 0099 CDD102 call print_newLine + 174: ;call A_RTS_ON + 175: 408+7 009C 3E3E ld a,'>' + 176: 415+17 009E CDB702 call print_char + 177: 432+4 00A1 AF xor a ;reset buffer len + 178: 436+13 00A2 320040 ld (var_buffer_len),a + 179: + 180: - 00A5 PROMPT_BEGIN_READ_LOOP: + 181: 449+17 00A5 CDF802 call read_char + 182: ;call keybd_read_ascii + 183: 466+10 00A8 CAA500 jp z, PROMPT_BEGIN_READ_LOOP ; wait until char avail + 184: 476+11 00AB F5 push af + 185: 487+10 00AC F1 pop af + 186: ; process special ops + 187: 497+7 00AD FE0D cp 13 ; enter + 188: 504+10 00AF CAFC00 jp z,PROMPT_BEGIN_READ_PROCESS + 189: 514+7 00B2 FE0A cp 10 + 190: 521+10 00B4 CAA500 jp z, PROMPT_BEGIN_READ_LOOP; skip LF for file load + 191: 531+7 00B7 FE08 cp 0x08 ; backspace 0x08 VT102 0x7f Putty + 192: 538+10 00B9 CAD600 jp z,PROMPT_BEGIN_READ_BACKSPACE 193: - 194: 558+10 00BD F1 pop af - 195: 568+7 00BE 77 ld (hl),a - 196: 575+17 00BF CDA902 call print_char - 197: 592+6 00C2 23 inc hl - 198: 598+4 00C3 AF xor a ;a = 0 - 199: 602+7 00C4 77 ld (hl),a ;always add null termination after last char - 200: 609+10 00C5 C39700 jp PROMPT_BEGIN_READ_LOOP - 201: - 202: - 00C8 PROMPT_BEGIN_READ_BACKSPACE: - 203: 619+13 00C8 3A0040 ld a,(var_buffer_len) - 204: 632+4 00CB A7 and a - 205: 636+10 00CC CA9700 jp z, PROMPT_BEGIN_READ_LOOP ; do not continue if already at char 0 - 206: 646+4 00CF 3D dec a ;decrement length - 207: 650+13 00D0 320040 ld (var_buffer_len),a ;and store it - 208: 663+4 00D3 5F ld e,a ;load de with decremented value - 209: 667+7 00D4 1600 ld d,0 - 210: 674+10 00D6 212940 ld hl,[var_buffer] - 211: 684+11 00D9 19 add hl,de ;hl now contains pointer to last position in buffer - 212: 695+4 00DA AF xor a ; store null byte to current location - 213: 699+7 00DB 77 ld (hl),a - 214: ;call print_delete - 215: 706+7 00DC 3E08 ld a, 0x08 - 216: 713+17 00DE CDA902 call print_char - 217: 730+7 00E1 3E20 ld a, 0x20 - 218: 737+17 00E3 CDA902 call print_char - 219: 754+7 00E6 3E08 ld a, 0x08 - 220: 761+17 00E8 CDA902 call print_char - 221: 778+10 00EB C39700 jp PROMPT_BEGIN_READ_LOOP - 222: - 223: - 00EE PROMPT_BEGIN_READ_PROCESS: - 224: ;call print_newLine - 225: ;ld hl,var_buffer - 226: ;call print_str - 227: - 228: 788+13 00EE 3A2940 ld a,([var_buffer]) - 229: 801+7 00F1 FE24 cp '$' ;jump to addr - 230: 808+10 00F3 CA2101 jp z, CMD_EXEC - 231: 818+7 00F6 FE3F cp '?' ;print hexdump - 232: 825+10 00F8 CA4001 jp z, CMD_VIEW - 233: 835+7 00FB FE21 cp '!' ;set memory - 234: 842+10 00FD CAAA01 jp z, CMD_SET - 235: 852+7 0100 FE69 cp 'i' ;in IO - 236: 859+10 0102 CA0F02 jp z, CMD_IO_READ - 237: 869+7 0105 FE6F cp 'o' ;out IO - 238: 876+10 0107 CAE601 jp z, CMD_IO_WRITE - 239: 886+7 010A FE64 cp 'd' ;disassemble - 240: 893+10 010C CA2B02 jp z, CMD_DASM - 241: 903+7 010F FE78 cp 'x' ;start xmodem - 242: 910+10 0111 CA150F jp z, xmodem_init - 243: - 244: - 245: 920+17 0114 CDC302 call print_newLine - 246: 937+10 0117 21F40E ld hl, [STR_Unknown] - 247: 947+17 011A CDB102 call print_str - 248: 964+10 011D C38B00 jp PROMPT_BEGIN - 249: - 250: 974+10 0120 C9 ret - 251: - 252: - 0121 CMD_EXEC: - 253: 984+4 0121 AF xor a ;write null byte to buffer pos 0 to prevent reexecute the last command - 254: 988+13 0122 322940 ld (var_buffer),a - 255: - 256: 1001+10 0125 212A40 ld hl,var_buffer+1 ;load 1st byte - 257: 1011+17 0128 CD1603 call DHEX_TO_BYTE - 258: 1028+4 012B 47 ld b,a ;store result in b - 259: 1032+4 012C 7B ld a,e ;check for error - 260: 1036+4 012D A7 and a - 261: 1040+10 012E C26402 jp nz, CMD_SYNTAX_ERROR - 262: - 263: 1050+10 0131 212C40 ld hl,var_buffer+3 ;load 2nd byte - 264: 1060+17 0134 CD1603 call DHEX_TO_BYTE - 265: 1077+4 0137 4F ld c,a - 266: 1081+4 0138 7B ld a,e ;check for error - 267: 1085+4 0139 A7 and a - 268: 1089+10 013A C26402 jp nz, CMD_SYNTAX_ERROR - 269: - 270: 1099+4 013D 60 ld h,b - 271: 1103+4 013E 69 ld l,c - 272: 1107+4 013F E9 jp (hl) - 273: - 274: - 0140 CMD_VIEW: - 275: 1111+17 0140 CDC302 call print_newLine - 276: 1128+10 0143 212A40 ld hl,var_buffer+1 ;load 1st byte - 277: 1138+17 0146 CD1603 call DHEX_TO_BYTE - 278: 1155+4 0149 47 ld b,a ;store result in b - 279: 1159+4 014A 7B ld a,e ;check for error - 280: 1163+4 014B A7 and a - 281: 1167+10 014C C26402 jp nz, CMD_SYNTAX_ERROR - 282: - 283: 1177+10 014F 212C40 ld hl,var_buffer+3 ;load 2nd byte - 284: 1187+17 0152 CD1603 call DHEX_TO_BYTE - 285: 1204+4 0155 4F ld c,a - 286: 1208+4 0156 7B ld a,e ;check for error - 287: 1212+4 0157 A7 and a - 288: 1216+10 0158 C26402 jp nz, CMD_SYNTAX_ERROR - 289: - 290: - 291: 1226+13 015B 3A2E40 ld a,(var_buffer+5) - 292: 1239+7 015E FE20 cp ' ' - 293: 1246+10 0160 C26402 jp nz, CMD_SYNTAX_ERROR - 294: - 295: 1256+10 0163 212F40 ld hl,var_buffer+6 ;load length - 296: 1266+17 0166 CD1603 call DHEX_TO_BYTE - 297: 1283+11 0169 F5 push af - 298: 1294+4 016A 7B ld a,e ;check for error - 299: 1298+4 016B A7 and a - 300: 1302+10 016C C26402 jp nz, CMD_SYNTAX_ERROR - 301: - 302: ;draw header - 303: 1312+10 016F 21F90E ld hl,[STR_HEXDUMP_HEADER] - 304: 1322+17 0172 CDB102 call print_str - 305: - 306: 1339+10 0175 F1 pop af - 307: ;loading vars done. display results - 308: 1349+4 0176 60 ld h, b ;pointer to current byte - 309: 1353+4 0177 69 ld l, c ;pointer to current byte - 310: 1357+4 0178 47 ld b, a ;bytes counter - 311: - 312: ;draw row - 313: - 0179 CMD_VIEW_ROW: - 314: 1361+17 0179 CDC302 call print_newLine - 315: 1378+4 017C 7C ld a,h ;print start - 316: 1382+17 017D CDD902 call print_a_hex - 317: 1399+4 0180 7D ld a,l - 318: 1403+17 0181 CDD902 call print_a_hex - 319: 1420+7 0184 3E20 ld a, ' ' - 320: 1427+17 0186 CDA902 call print_char - 321: 1444+7 0189 0E08 ld c, 8 ;column counter - 322: - 018B CMD_VIEW_ROW_LOOP: - 323: 1451+7 018B 7E ld a,(hl) - 324: 1458+17 018C CDD902 call print_a_hex - 325: - 326: 1475+6 018F 23 inc hl ;increment pointer - 327: 1481+4 0190 05 dec b ;decrement byte counter - 328: 1485+4 0191 0D dec c ;decrement column counter - 329: - 330: 1489+4 0192 78 ld a,b - 331: 1493+4 0193 A7 and a - 332: 1497+10 0194 CAA401 jp z,CMD_VIEW_END ;if byte counter = 0 -> end reached - 333: - 334: 1507+4 0197 79 ld a,c - 335: 1511+4 0198 A7 and a - 336: 1515+10 0199 CA7901 jp z,CMD_VIEW_ROW ;else if column counter = 0 -> 16 chars printed. next row - 337: - 338: 1525+7 019C 3E20 ld a, ' ' - 339: 1532+17 019E CDA902 call print_char - 340: 1549+10 01A1 C38B01 jp CMD_VIEW_ROW_LOOP ;else - 341: - 01A4 CMD_VIEW_END: - 342: 1559+17 01A4 CDC302 call print_newLine - 343: 1576+10 01A7 C38B00 jp PROMPT_BEGIN - 344: - 345: - 01AA CMD_SET: - 346: 1586+10 01AA 212A40 ld hl,var_buffer+1 ;load 1st byte - 347: 1596+17 01AD CD1603 call DHEX_TO_BYTE - 348: 1613+4 01B0 47 ld b,a ;store result in b - 349: 1617+4 01B1 7B ld a,e ;check for error - 350: 1621+4 01B2 A7 and a - 351: 1625+10 01B3 C26402 jp nz, CMD_SYNTAX_ERROR - 352: - 353: 1635+10 01B6 212C40 ld hl,var_buffer+3 ;load 2nd byte - 354: 1645+17 01B9 CD1603 call DHEX_TO_BYTE - 355: 1662+4 01BC 4F ld c,a - 356: 1666+4 01BD 7B ld a,e ;check for error - 357: 1670+4 01BE A7 and a - 358: 1674+10 01BF C26402 jp nz, CMD_SYNTAX_ERROR - 359: ;bc now contains the start address - 360: - 361: 1684+10 01C2 212E40 ld hl,var_buffer+5 - 362: - 01C5 CMD_SET_LOOP: - 363: 1694+7 01C5 7E ld a,(hl) - 364: 1701+7 01C6 FE00 cp 0 ;if 0 then end - 365: 1708+10 01C8 CAE001 jp z, CMD_SET_END - 366: 1718+7 01CB FE20 cp ' ' - 367: 1725+10 01CD C26402 jp nz, CMD_SYNTAX_ERROR - 368: 1735+6 01D0 23 inc hl ;next byte - 369: 1741+17 01D1 CD1603 call DHEX_TO_BYTE - 370: 1758+7 01D4 02 ld (bc),a ;load byte to - 371: 1765+4 01D5 7B ld a,e - 372: 1769+4 01D6 A7 and a - 373: 1773+10 01D7 C26402 jp nz, CMD_SYNTAX_ERROR - 374: 1783+6 01DA 03 inc bc - 375: 1789+6 01DB 23 inc hl - 376: 1795+6 01DC 23 inc hl - 377: 1801+10 01DD C3C501 jp CMD_SET_LOOP - 378: - 01E0 CMD_SET_END: - 379: 1811+17 01E0 CDC302 call print_newLine - 380: 1828+10 01E3 C38B00 jp PROMPT_BEGIN - 381: - 382: - 383: - 01E6 CMD_IO_WRITE: - 384: 1838+10 01E6 212A40 ld hl,var_buffer+1 ;load 1st byte - 385: 1848+17 01E9 CD1603 call DHEX_TO_BYTE - 386: 1865+4 01EC 4F ld c,a ;store result in b - 387: 1869+4 01ED 7B ld a,e ;check for error - 388: 1873+4 01EE A7 and a - 389: 1877+10 01EF C26402 jp nz, CMD_SYNTAX_ERROR - 390: - 391: 1887+13 01F2 3A2C40 ld a,(var_buffer+3) - 392: 1900+7 01F5 FE20 cp ' ' - 393: 1907+10 01F7 C26402 jp nz, CMD_SYNTAX_ERROR - 394: - 395: 1917+10 01FA 212D40 ld hl,var_buffer+4 ;load 1st byte - 396: 1927+17 01FD CD1603 call DHEX_TO_BYTE - 397: 1944+11 0200 F5 push af - 398: 1955+4 0201 7B ld a,e ;check for error - 399: 1959+4 0202 A7 and a - 400: 1963+10 0203 C26402 jp nz, CMD_SYNTAX_ERROR - 401: - 402: 1973+10 0206 F1 pop af - 403: 1983+12 0207 ED79 out (c),a - 404: 1995+17 0209 CDC302 call print_newLine - 405: 2012+10 020C C38B00 jp PROMPT_BEGIN - 406: - 407: - 020F CMD_IO_READ: - 408: 2022+10 020F 212A40 ld hl,var_buffer+1 ;load 1st byte - 409: 2032+17 0212 CD1603 call DHEX_TO_BYTE - 410: 2049+4 0215 4F ld c,a ;store result in b - 411: 2053+4 0216 7B ld a,e ;check for error - 412: 2057+4 0217 A7 and a - 413: 2061+10 0218 C26402 jp nz, CMD_SYNTAX_ERROR - 414: - 415: 2071+12 021B ED78 in a,(c) - 416: 2083+11 021D F5 push af - 417: 2094+17 021E CDC302 call print_newLine - 418: 2111+10 0221 F1 pop af - 419: 2121+17 0222 CDD902 call print_a_hex - 420: 2138+17 0225 CDC302 call print_newLine - 421: 2155+10 0228 C38B00 jp PROMPT_BEGIN - 422: - 423: - 022B CMD_DASM: - 424: 2165+17 022B CDC302 call print_newLine - 425: 2182+10 022E 212A40 ld hl,var_buffer+1 ;load 1st byte - 426: 2192+17 0231 CD1603 call DHEX_TO_BYTE - 427: 2209+4 0234 47 ld b,a ;store result in b - 428: 2213+4 0235 7B ld a,e ;check for error - 429: 2217+4 0236 A7 and a - 430: 2221+10 0237 C26402 jp nz, CMD_SYNTAX_ERROR - 431: - 432: 2231+10 023A 212C40 ld hl,var_buffer+3 ;load 2nd byte - 433: 2241+17 023D CD1603 call DHEX_TO_BYTE - 434: 2258+4 0240 4F ld c,a - 435: 2262+4 0241 7B ld a,e ;check for error - 436: 2266+4 0242 A7 and a - 437: 2270+10 0243 C26402 jp nz, CMD_SYNTAX_ERROR - 438: - 439: - 440: 2280+13 0246 3A2E40 ld a,(var_buffer+5) - 441: 2293+7 0249 FE20 cp ' ' - 442: 2300+10 024B C26402 jp nz, CMD_SYNTAX_ERROR - 443: - 444: 2310+10 024E 212F40 ld hl,var_buffer+6 ;load length - 445: 2320+17 0251 CD1603 call DHEX_TO_BYTE - 446: 2337+11 0254 F5 push af - 447: 2348+4 0255 7B ld a,e ;check for error - 448: 2352+4 0256 A7 and a - 449: 2356+10 0257 C26402 jp nz, CMD_SYNTAX_ERROR - 450: - 451: 2366+4 025A 60 ld h,b - 452: 2370+4 025B 69 ld l,c + 194: 548+11 00BC F5 push af + 195: ; a contains latest char + 196: 559+10 00BD 212940 ld hl,[var_buffer] + 197: 569+7 00C0 1600 ld d,0 + 198: 576+13 00C2 3A0040 ld a,(var_buffer_len) + 199: 589+4 00C5 5F ld e,a + 200: 593+11 00C6 19 add hl,de ;hl now contains pointer to last position in buffer + 201: 604+4 00C7 3C inc a + 202: 608+13 00C8 320040 ld (var_buffer_len),a ;store incremented buffer length + 203: + 204: 621+10 00CB F1 pop af + 205: 631+7 00CC 77 ld (hl),a + 206: 638+17 00CD CDB702 call print_char + 207: 655+6 00D0 23 inc hl + 208: 661+4 00D1 AF xor a ;a = 0 + 209: 665+7 00D2 77 ld (hl),a ;always add null termination after last char + 210: 672+10 00D3 C3A500 jp PROMPT_BEGIN_READ_LOOP + 211: + 212: - 00D6 PROMPT_BEGIN_READ_BACKSPACE: + 213: 682+13 00D6 3A0040 ld a,(var_buffer_len) + 214: 695+4 00D9 A7 and a + 215: 699+10 00DA CAA500 jp z, PROMPT_BEGIN_READ_LOOP ; do not continue if already at char 0 + 216: 709+4 00DD 3D dec a ;decrement length + 217: 713+13 00DE 320040 ld (var_buffer_len),a ;and store it + 218: 726+4 00E1 5F ld e,a ;load de with decremented value + 219: 730+7 00E2 1600 ld d,0 + 220: 737+10 00E4 212940 ld hl,[var_buffer] + 221: 747+11 00E7 19 add hl,de ;hl now contains pointer to last position in buffer + 222: 758+4 00E8 AF xor a ; store null byte to current location + 223: 762+7 00E9 77 ld (hl),a + 224: ;call print_delete + 225: 769+7 00EA 3E08 ld a, 0x08 + 226: 776+17 00EC CDB702 call print_char + 227: 793+7 00EF 3E20 ld a, 0x20 + 228: 800+17 00F1 CDB702 call print_char + 229: 817+7 00F4 3E08 ld a, 0x08 + 230: 824+17 00F6 CDB702 call print_char + 231: 841+10 00F9 C3A500 jp PROMPT_BEGIN_READ_LOOP + 232: + 233: - 00FC PROMPT_BEGIN_READ_PROCESS: + 234: ;call print_newLine + 235: ;ld hl,var_buffer + 236: ;call print_str + 237: + 238: 851+13 00FC 3A2940 ld a,([var_buffer]) + 239: 864+7 00FF FE24 cp '$' ;jump to addr + 240: 871+10 0101 CA2F01 jp z, CMD_EXEC + 241: 881+7 0104 FE3F cp '?' ;print hexdump + 242: 888+10 0106 CA4E01 jp z, CMD_VIEW + 243: 898+7 0109 FE21 cp '!' ;set memory + 244: 905+10 010B CAB801 jp z, CMD_SET + 245: 915+7 010E FE69 cp 'i' ;in IO + 246: 922+10 0110 CA1D02 jp z, CMD_IO_READ + 247: 932+7 0113 FE6F cp 'o' ;out IO + 248: 939+10 0115 CAF401 jp z, CMD_IO_WRITE + 249: 949+7 0118 FE64 cp 'd' ;disassemble + 250: 956+10 011A CA3902 jp z, CMD_DASM + 251: 966+7 011D FE78 cp 'x' ;start xmodem + 252: 973+10 011F CA4C0F jp z, xmodem_init + 253: + 254: + 255: 983+17 0122 CDD102 call print_newLine + 256: 1000+10 0125 212B0F ld hl, [STR_Unknown] + 257: 1010+17 0128 CDBF02 call print_str + 258: 1027+10 012B C39900 jp PROMPT_BEGIN + 259: + 260: 1037+10 012E C9 ret + 261: + 262: - 012F CMD_EXEC: + 263: 1047+4 012F AF xor a ;write null byte to buffer pos 0 to prevent reexecute the last command + 264: 1051+13 0130 322940 ld (var_buffer),a + 265: + 266: 1064+10 0133 212A40 ld hl,var_buffer+1 ;load 1st byte + 267: 1074+17 0136 CD2403 call DHEX_TO_BYTE + 268: 1091+4 0139 47 ld b,a ;store result in b + 269: 1095+4 013A 7B ld a,e ;check for error + 270: 1099+4 013B A7 and a + 271: 1103+10 013C C27202 jp nz, CMD_SYNTAX_ERROR + 272: + 273: 1113+10 013F 212C40 ld hl,var_buffer+3 ;load 2nd byte + 274: 1123+17 0142 CD2403 call DHEX_TO_BYTE + 275: 1140+4 0145 4F ld c,a + 276: 1144+4 0146 7B ld a,e ;check for error + 277: 1148+4 0147 A7 and a + 278: 1152+10 0148 C27202 jp nz, CMD_SYNTAX_ERROR + 279: + 280: 1162+4 014B 60 ld h,b + 281: 1166+4 014C 69 ld l,c + 282: 1170+4 014D E9 jp (hl) + 283: + 284: - 014E CMD_VIEW: + 285: 1174+17 014E CDD102 call print_newLine + 286: 1191+10 0151 212A40 ld hl,var_buffer+1 ;load 1st byte + 287: 1201+17 0154 CD2403 call DHEX_TO_BYTE + 288: 1218+4 0157 47 ld b,a ;store result in b + 289: 1222+4 0158 7B ld a,e ;check for error + 290: 1226+4 0159 A7 and a + 291: 1230+10 015A C27202 jp nz, CMD_SYNTAX_ERROR + 292: + 293: 1240+10 015D 212C40 ld hl,var_buffer+3 ;load 2nd byte + 294: 1250+17 0160 CD2403 call DHEX_TO_BYTE + 295: 1267+4 0163 4F ld c,a + 296: 1271+4 0164 7B ld a,e ;check for error + 297: 1275+4 0165 A7 and a + 298: 1279+10 0166 C27202 jp nz, CMD_SYNTAX_ERROR + 299: + 300: + 301: 1289+13 0169 3A2E40 ld a,(var_buffer+5) + 302: 1302+7 016C FE20 cp ' ' + 303: 1309+10 016E C27202 jp nz, CMD_SYNTAX_ERROR + 304: + 305: 1319+10 0171 212F40 ld hl,var_buffer+6 ;load length + 306: 1329+17 0174 CD2403 call DHEX_TO_BYTE + 307: 1346+11 0177 F5 push af + 308: 1357+4 0178 7B ld a,e ;check for error + 309: 1361+4 0179 A7 and a + 310: 1365+10 017A C27202 jp nz, CMD_SYNTAX_ERROR + 311: + 312: ;draw header + 313: 1375+10 017D 21300F ld hl,[STR_HEXDUMP_HEADER] + 314: 1385+17 0180 CDBF02 call print_str + 315: + 316: 1402+10 0183 F1 pop af + 317: ;loading vars done. display results + 318: 1412+4 0184 60 ld h, b ;pointer to current byte + 319: 1416+4 0185 69 ld l, c ;pointer to current byte + 320: 1420+4 0186 47 ld b, a ;bytes counter + 321: + 322: ;draw row + 323: - 0187 CMD_VIEW_ROW: + 324: 1424+17 0187 CDD102 call print_newLine + 325: 1441+4 018A 7C ld a,h ;print start + 326: 1445+17 018B CDE702 call print_a_hex + 327: 1462+4 018E 7D ld a,l + 328: 1466+17 018F CDE702 call print_a_hex + 329: 1483+7 0192 3E20 ld a, ' ' + 330: 1490+17 0194 CDB702 call print_char + 331: 1507+7 0197 0E08 ld c, 8 ;column counter + 332: - 0199 CMD_VIEW_ROW_LOOP: + 333: 1514+7 0199 7E ld a,(hl) + 334: 1521+17 019A CDE702 call print_a_hex + 335: + 336: 1538+6 019D 23 inc hl ;increment pointer + 337: 1544+4 019E 05 dec b ;decrement byte counter + 338: 1548+4 019F 0D dec c ;decrement column counter + 339: + 340: 1552+4 01A0 78 ld a,b + 341: 1556+4 01A1 A7 and a + 342: 1560+10 01A2 CAB201 jp z,CMD_VIEW_END ;if byte counter = 0 -> end reached + 343: + 344: 1570+4 01A5 79 ld a,c + 345: 1574+4 01A6 A7 and a + 346: 1578+10 01A7 CA8701 jp z,CMD_VIEW_ROW ;else if column counter = 0 -> 16 chars printed. next row + 347: + 348: 1588+7 01AA 3E20 ld a, ' ' + 349: 1595+17 01AC CDB702 call print_char + 350: 1612+10 01AF C39901 jp CMD_VIEW_ROW_LOOP ;else + 351: - 01B2 CMD_VIEW_END: + 352: 1622+17 01B2 CDD102 call print_newLine + 353: 1639+10 01B5 C39900 jp PROMPT_BEGIN + 354: + 355: - 01B8 CMD_SET: + 356: 1649+10 01B8 212A40 ld hl,var_buffer+1 ;load 1st byte + 357: 1659+17 01BB CD2403 call DHEX_TO_BYTE + 358: 1676+4 01BE 47 ld b,a ;store result in b + 359: 1680+4 01BF 7B ld a,e ;check for error + 360: 1684+4 01C0 A7 and a + 361: 1688+10 01C1 C27202 jp nz, CMD_SYNTAX_ERROR + 362: + 363: 1698+10 01C4 212C40 ld hl,var_buffer+3 ;load 2nd byte + 364: 1708+17 01C7 CD2403 call DHEX_TO_BYTE + 365: 1725+4 01CA 4F ld c,a + 366: 1729+4 01CB 7B ld a,e ;check for error + 367: 1733+4 01CC A7 and a + 368: 1737+10 01CD C27202 jp nz, CMD_SYNTAX_ERROR + 369: ;bc now contains the start address + 370: + 371: 1747+10 01D0 212E40 ld hl,var_buffer+5 + 372: - 01D3 CMD_SET_LOOP: + 373: 1757+7 01D3 7E ld a,(hl) + 374: 1764+7 01D4 FE00 cp 0 ;if 0 then end + 375: 1771+10 01D6 CAEE01 jp z, CMD_SET_END + 376: 1781+7 01D9 FE20 cp ' ' + 377: 1788+10 01DB C27202 jp nz, CMD_SYNTAX_ERROR + 378: 1798+6 01DE 23 inc hl ;next byte + 379: 1804+17 01DF CD2403 call DHEX_TO_BYTE + 380: 1821+7 01E2 02 ld (bc),a ;load byte to + 381: 1828+4 01E3 7B ld a,e + 382: 1832+4 01E4 A7 and a + 383: 1836+10 01E5 C27202 jp nz, CMD_SYNTAX_ERROR + 384: 1846+6 01E8 03 inc bc + 385: 1852+6 01E9 23 inc hl + 386: 1858+6 01EA 23 inc hl + 387: 1864+10 01EB C3D301 jp CMD_SET_LOOP + 388: - 01EE CMD_SET_END: + 389: 1874+17 01EE CDD102 call print_newLine + 390: 1891+10 01F1 C39900 jp PROMPT_BEGIN + 391: + 392: + 393: - 01F4 CMD_IO_WRITE: + 394: 1901+10 01F4 212A40 ld hl,var_buffer+1 ;load 1st byte + 395: 1911+17 01F7 CD2403 call DHEX_TO_BYTE + 396: 1928+4 01FA 4F ld c,a ;store result in b + 397: 1932+4 01FB 7B ld a,e ;check for error + 398: 1936+4 01FC A7 and a + 399: 1940+10 01FD C27202 jp nz, CMD_SYNTAX_ERROR + 400: + 401: 1950+13 0200 3A2C40 ld a,(var_buffer+3) + 402: 1963+7 0203 FE20 cp ' ' + 403: 1970+10 0205 C27202 jp nz, CMD_SYNTAX_ERROR + 404: + 405: 1980+10 0208 212D40 ld hl,var_buffer+4 ;load 1st byte + 406: 1990+17 020B CD2403 call DHEX_TO_BYTE + 407: 2007+11 020E F5 push af + 408: 2018+4 020F 7B ld a,e ;check for error + 409: 2022+4 0210 A7 and a + 410: 2026+10 0211 C27202 jp nz, CMD_SYNTAX_ERROR + 411: + 412: 2036+10 0214 F1 pop af + 413: 2046+12 0215 ED79 out (c),a + 414: 2058+17 0217 CDD102 call print_newLine + 415: 2075+10 021A C39900 jp PROMPT_BEGIN + 416: + 417: - 021D CMD_IO_READ: + 418: 2085+10 021D 212A40 ld hl,var_buffer+1 ;load 1st byte + 419: 2095+17 0220 CD2403 call DHEX_TO_BYTE + 420: 2112+4 0223 4F ld c,a ;store result in b + 421: 2116+4 0224 7B ld a,e ;check for error + 422: 2120+4 0225 A7 and a + 423: 2124+10 0226 C27202 jp nz, CMD_SYNTAX_ERROR + 424: + 425: 2134+12 0229 ED78 in a,(c) + 426: 2146+11 022B F5 push af + 427: 2157+17 022C CDD102 call print_newLine + 428: 2174+10 022F F1 pop af + 429: 2184+17 0230 CDE702 call print_a_hex + 430: 2201+17 0233 CDD102 call print_newLine + 431: 2218+10 0236 C39900 jp PROMPT_BEGIN + 432: + 433: - 0239 CMD_DASM: + 434: 2228+17 0239 CDD102 call print_newLine + 435: 2245+10 023C 212A40 ld hl,var_buffer+1 ;load 1st byte + 436: 2255+17 023F CD2403 call DHEX_TO_BYTE + 437: 2272+4 0242 47 ld b,a ;store result in b + 438: 2276+4 0243 7B ld a,e ;check for error + 439: 2280+4 0244 A7 and a + 440: 2284+10 0245 C27202 jp nz, CMD_SYNTAX_ERROR + 441: + 442: 2294+10 0248 212C40 ld hl,var_buffer+3 ;load 2nd byte + 443: 2304+17 024B CD2403 call DHEX_TO_BYTE + 444: 2321+4 024E 4F ld c,a + 445: 2325+4 024F 7B ld a,e ;check for error + 446: 2329+4 0250 A7 and a + 447: 2333+10 0251 C27202 jp nz, CMD_SYNTAX_ERROR + 448: + 449: + 450: 2343+13 0254 3A2E40 ld a,(var_buffer+5) + 451: 2356+7 0257 FE20 cp ' ' + 452: 2363+10 0259 C27202 jp nz, CMD_SYNTAX_ERROR 453: - 454: 2374+10 025C F1 pop af ;restore af - 455: 2384+4 025D 47 ld b,a - 456: - 457: 2388+17 025E CD6703 call disassemble - 458: - 459: - 460: 2405+10 0261 C38B00 jp PROMPT_BEGIN - 461: - 462: - 0264 CMD_SYNTAX_ERROR: - 463: 2415+17 0264 CDC302 call print_newLine - 464: 2432+10 0267 21EF0E ld hl, [STR_SyntaxError] - 465: 2442+17 026A CDB102 call print_str - 466: 2459+10 026D C38B00 jp PROMPT_BEGIN - 467: + 454: 2373+10 025C 212F40 ld hl,var_buffer+6 ;load length + 455: 2383+17 025F CD2403 call DHEX_TO_BYTE + 456: 2400+11 0262 F5 push af + 457: 2411+4 0263 7B ld a,e ;check for error + 458: 2415+4 0264 A7 and a + 459: 2419+10 0265 C27202 jp nz, CMD_SYNTAX_ERROR + 460: + 461: 2429+4 0268 60 ld h,b + 462: 2433+4 0269 69 ld l,c + 463: + 464: 2437+10 026A F1 pop af ;restore af + 465: 2447+4 026B 47 ld b,a + 466: + 467: 2451+17 026C CD7503 call disassemble 468: - 469: - 470: - 0270 Includes: - 471: ;.include "bootldr.s" - 472: .include "console.s" + 469: + 470: 2468+10 026F C39900 jp PROMPT_BEGIN + 471: + 472: - 0272 CMD_SYNTAX_ERROR: + 473: 2478+17 0272 CDD102 call print_newLine + 474: 2495+10 0275 21260F ld hl, [STR_SyntaxError] + 475: 2505+17 0278 CDBF02 call print_str + 476: 2522+10 027B C39900 jp PROMPT_BEGIN + 477: + 478: + 479: + 480: - 027E Includes: + 481: ;.include "bootldr.s" + 482: .include "console.s" **** include/console.s **** 1: ;DIP SWICTHES 2: ;1843200 CLK / x16 SIO CLOCK MODE = 115200 @@ -532,187 +538,187 @@ 6: ;9600 -> 12 / 00110000 7: ; 8: - 9: - 0270 CONSOLE_INIT: - 10: - 0270 CONSOLE_INIT_CTC: + 9: - 027E CONSOLE_INIT: + 10: - 027E CONSOLE_INIT_CTC: 11: ;LD A,00001111b ; Set /16 Divider, CPU Trigger, Time COnstant Follows - 12: 2469+7 0270 3E4F LD A,01001111b ; External Trigger, Time COnstant Follows - 13: 2476+11 0272 D304 OUT (CS_CTC_0),A - 14: 2487+11 0274 DB01 IN A,(CS_DIP) ; Read BAUD from DIP-Switches + 12: 2532+7 027E 3E4F LD A,01001111b ; External Trigger, Time COnstant Follows + 13: 2539+11 0280 D304 OUT (CS_CTC_0),A + 14: 2550+11 0282 DB01 IN A,(CS_DIP) ; Read BAUD from DIP-Switches 15: ;LD A,39 - 16: 2498+11 0276 D304 OUT (CS_CTC_0),A - 17: - 0278 CONSOLE_INIT_SIO: - 18: 2509+7 0278 3E30 LD A,00110000b ;write into WR0: error reset, select WR0 - 19: 2516+11 027A D309 OUT (CS_SIO_A_C),A - 20: 2527+7 027C 3E18 LD a,018h ;write into WR0: channel reset - 21: 2534+11 027E D309 OUT (CS_SIO_A_C),A - 22: 2545+7 0280 3E04 LD a,004h ;write into WR0: select WR4 - 23: 2552+11 0282 D309 OUT (CS_SIO_A_C),A - 24: 2563+7 0284 3E44 LD a,01000100b ;write into WR4: clkx16,1 stop bit, no parity - 25: 2570+11 0286 D309 OUT (CS_SIO_A_C),A - 26: 2581+7 0288 3E05 LD a,005h ;write into WR0: select WR5 - 27: 2588+11 028A D309 OUT (CS_SIO_A_C),A - 28: 2599+7 028C 3EE8 LD a,11101000b ;DTR inactive, TX 8bit, BREAK off, TX on, RTS inactive - 29: 2606+11 028E D309 OUT (CS_SIO_A_C),A - 30: 2617+7 0290 3E01 LD a,01h ;write into WR0: select WR1 - 31: 2624+11 0292 D309 OUT (CS_SIO_A_C),A - 32: 2635+7 0294 3E04 LD a,00000100b ;no interrupt in CH B, special RX condition affects vect - 33: 2642+11 0296 D309 OUT (CS_SIO_A_C),A - 34: 2653+7 0298 3E02 LD a,02h ;write into WR0: select WR2 - 35: 2660+11 029A D309 OUT (CS_SIO_A_C),A - 36: 2671+7 029C 3E00 LD a,0h ;write into WR2: cmd line int vect (see int vec table) + 16: 2561+11 0284 D304 OUT (CS_CTC_0),A + 17: - 0286 CONSOLE_INIT_SIO: + 18: 2572+7 0286 3E30 LD A,00110000b ;write into WR0: error reset, select WR0 + 19: 2579+11 0288 D309 OUT (CS_SIO_A_C),A + 20: 2590+7 028A 3E18 LD a,018h ;write into WR0: channel reset + 21: 2597+11 028C D309 OUT (CS_SIO_A_C),A + 22: 2608+7 028E 3E04 LD a,004h ;write into WR0: select WR4 + 23: 2615+11 0290 D309 OUT (CS_SIO_A_C),A + 24: 2626+7 0292 3E44 LD a,01000100b ;write into WR4: clkx16,1 stop bit, no parity + 25: 2633+11 0294 D309 OUT (CS_SIO_A_C),A + 26: 2644+7 0296 3E05 LD a,005h ;write into WR0: select WR5 + 27: 2651+11 0298 D309 OUT (CS_SIO_A_C),A + 28: 2662+7 029A 3EE8 LD a,11101000b ;DTR inactive, TX 8bit, BREAK off, TX on, RTS inactive + 29: 2669+11 029C D309 OUT (CS_SIO_A_C),A + 30: 2680+7 029E 3E01 LD a,01h ;write into WR0: select WR1 + 31: 2687+11 02A0 D309 OUT (CS_SIO_A_C),A + 32: 2698+7 02A2 3E04 LD a,00000100b ;no interrupt in CH B, special RX condition affects vect + 33: 2705+11 02A4 D309 OUT (CS_SIO_A_C),A + 34: 2716+7 02A6 3E02 LD a,02h ;write into WR0: select WR2 + 35: 2723+11 02A8 D309 OUT (CS_SIO_A_C),A + 36: 2734+7 02AA 3E00 LD a,0h ;write into WR2: cmd line int vect (see int vec table) 37: ;bits D3,D2,D1 are changed according to RX condition - 38: 2678+11 029E D309 OUT (CS_SIO_A_C),A - 39: 2689+7 02A0 3E03 LD a,003h ;write into WR0: select WR3 - 40: 2696+11 02A2 D309 OUT (CS_SIO_A_C),A - 41: 2707+7 02A4 3EC1 LD a,0C1h ;RX 8bit, auto enable off, RX on - 42: 2714+11 02A6 D309 OUT (CS_SIO_A_C),A + 38: 2741+11 02AC D309 OUT (CS_SIO_A_C),A + 39: 2752+7 02AE 3E03 LD a,003h ;write into WR0: select WR3 + 40: 2759+11 02B0 D309 OUT (CS_SIO_A_C),A + 41: 2770+7 02B2 3EC1 LD a,0C1h ;RX 8bit, auto enable off, RX on + 42: 2777+11 02B4 D309 OUT (CS_SIO_A_C),A 43: ;Channel A RX active - 44: 2725+10 02A8 C9 RET + 44: 2788+10 02B6 C9 RET 45: 46: ; A contains char 47: ; Destroys A - 48: - 02A9 print_char: - 49: 2735+11 02A9 F5 push af - 50: 2746+11 02AA D308 out (CS_SIO_A_D),a - 51: 2757+17 02AC CDCE02 call print_wait_out - 52: 2774+10 02AF F1 pop af + 48: - 02B7 print_char: + 49: 2798+11 02B7 F5 push af + 50: 2809+11 02B8 D308 out (CS_SIO_A_D),a + 51: 2820+17 02BA CDDC02 call print_wait_out + 52: 2837+10 02BD F1 pop af 53: ;call print_char - 54: 2784+10 02B0 C9 ret + 54: 2847+10 02BE C9 ret 55: ; HL contains pointer to string 56: ; Destroy A, HL 57: - 58: - 02B1 print_str: - 59: 2794+7 02B1 7E ld a, (hl) - 60: 2801+4 02B2 B7 or a - 61: 2805+7+5 02B3 2806 jr z,print_str_end - 62: 2812+17 02B5 CDA902 call print_char - 63: 2829+6 02B8 23 inc hl - 64: 2835+12 02B9 18F6 jr print_str - 65: - 02BB print_str_end: - 66: 2847+10 02BB C9 ret + 58: - 02BF print_str: + 59: 2857+7 02BF 7E ld a, (hl) + 60: 2864+4 02C0 B7 or a + 61: 2868+7+5 02C1 2806 jr z,print_str_end + 62: 2875+17 02C3 CDB702 call print_char + 63: 2892+6 02C6 23 inc hl + 64: 2898+12 02C7 18F6 jr print_str + 65: - 02C9 print_str_end: + 66: 2910+10 02C9 C9 ret 67: - 68: - 02BC print_clear: - 69: 2857+10 02BC 21FC02 ld hl, [MSG_CLEAR] - 70: 2867+17 02BF CDB102 call print_str - 71: 2884+10 02C2 C9 ret + 68: - 02CA print_clear: + 69: 2920+10 02CA 210A03 ld hl, [MSG_CLEAR] + 70: 2930+17 02CD CDBF02 call print_str + 71: 2947+10 02D0 C9 ret 72: - 73: - 02C3 print_newLine: - 74: 2894+7 02C3 3E0A ld a,10 - 75: 2901+17 02C5 CDA902 call print_char - 76: 2918+7 02C8 3E0D ld a,13 - 77: 2925+17 02CA CDA902 call print_char - 78: 2942+10 02CD C9 ret + 73: - 02D1 print_newLine: + 74: 2957+7 02D1 3E0A ld a,10 + 75: 2964+17 02D3 CDB702 call print_char + 76: 2981+7 02D6 3E0D ld a,13 + 77: 2988+17 02D8 CDB702 call print_char + 78: 3005+10 02DB C9 ret 79: ; destroys a - 80: - 02CE print_wait_out: + 80: - 02DC print_wait_out: 81: ; check for TX buffer empty - 82: 2952+4 02CE 97 sub a ;clear a, write into WR0: select RR0 - 83: 2956+4 02CF 3C inc a ;select RR1 - 84: 2960+11 02D0 D309 out (CS_SIO_A_C),A - 85: 2971+11 02D2 DB09 in A,(CS_SIO_A_C) ;read RRx - 86: 2982+8 02D4 CB47 bit 0,A - 87: 2990+7+5 02D6 28F6 jr z,print_wait_out - 88: 2997+10 02D8 C9 ret + 82: 3015+4 02DC 97 sub a ;clear a, write into WR0: select RR0 + 83: 3019+4 02DD 3C inc a ;select RR1 + 84: 3023+11 02DE D309 out (CS_SIO_A_C),A + 85: 3034+11 02E0 DB09 in A,(CS_SIO_A_C) ;read RRx + 86: 3045+8 02E2 CB47 bit 0,A + 87: 3053+7+5 02E4 28F6 jr z,print_wait_out + 88: 3060+10 02E6 C9 ret 89: - 90: - 02D9 print_a_hex: - 91: 3007+11 02D9 F5 push af - 92: 3018+11 02DA C5 push bc - 93: 3029+11 02DB D5 push de - 94: 3040+17 02DC CD4D03 call STRCONV_BYTES_TO_HEX - 95: 3057+4 02DF 78 ld a,b - 96: 3061+17 02E0 CDA902 call print_char - 97: 3078+4 02E3 79 ld a,c - 98: 3082+17 02E4 CDA902 call print_char - 99: 3099+10 02E7 D1 pop de - 100: 3109+10 02E8 C1 pop bc - 101: 3119+10 02E9 F1 pop af + 90: - 02E7 print_a_hex: + 91: 3070+11 02E7 F5 push af + 92: 3081+11 02E8 C5 push bc + 93: 3092+11 02E9 D5 push de + 94: 3103+17 02EA CD5B03 call STRCONV_BYTES_TO_HEX + 95: 3120+4 02ED 78 ld a,b + 96: 3124+17 02EE CDB702 call print_char + 97: 3141+4 02F1 79 ld a,c + 98: 3145+17 02F2 CDB702 call print_char + 99: 3162+10 02F5 D1 pop de + 100: 3172+10 02F6 C1 pop bc + 101: 3182+10 02F7 F1 pop af 102: - 103: - 02EA read_char: - 104: 3129+17 02EA CD0D03 call A_RTS_ON - 105: 3146+4 02ED 00 nop - 106: 3150+4 02EE AF xor a ; a = 0 - 107: 3154+11 02EF D309 out (CS_SIO_A_C), a ; select reg 0 - 108: 3165+11 02F1 DB09 in a, (CS_SIO_A_C) ; read reg 0 - 109: 3176+7 02F3 E601 and 1 ; mask D0 (recieve char available) - 110: 3183+17 02F5 CD0403 call A_RTS_OFF - 111: 3200+5+6 02F8 C8 ret Z ; return 0 if no char - 112: 3205+11 02F9 DB08 in a, (CS_SIO_A_D) ; read char if avail - 113: 3216+10 02FB C9 ret ; return + 103: - 02F8 read_char: + 104: 3192+17 02F8 CD1B03 call A_RTS_ON + 105: 3209+4 02FB 00 nop + 106: 3213+4 02FC AF xor a ; a = 0 + 107: 3217+11 02FD D309 out (CS_SIO_A_C), a ; select reg 0 + 108: 3228+11 02FF DB09 in a, (CS_SIO_A_C) ; read reg 0 + 109: 3239+7 0301 E601 and 1 ; mask D0 (recieve char available) + 110: 3246+17 0303 CD1203 call A_RTS_OFF + 111: 3263+5+6 0306 C8 ret Z ; return 0 if no char + 112: 3268+11 0307 DB08 in a, (CS_SIO_A_D) ; read char if avail + 113: 3279+10 0309 C9 ret ; return 114: 115: ;MSG_CRSR_0: 116: ; db 0x1B, "[?25h",0 117: ;MSG_CRSR_1: 118: ; db 0x1B, "[?25l",0 - 119: - 02FC MSG_CLEAR: - 120: - 02FC 1B5B324A db 27, '[2J', 27, '[H',0 + 119: - 030A MSG_CLEAR: + 120: - 030A 1B5B324A db 27, '[2J', 27, '[H',0 1B5B4800 121: 122: 123: 124: ; Serial Util Functions - 125: - 0304 A_RTS_OFF: - 126: 3226+7 0304 3E05 ld a,005h ;write into WR0: select WR5 - 127: 3233+11 0306 D309 out (CS_SIO_A_C),A - 128: 3244+7 0308 3E68 ld a,068h ;DTR inactiveh, TX 8bit, BREAK off, TX on, RTS inactive - 129: 3251+11 030A D309 out (CS_SIO_A_C),A - 130: 3262+10 030C C9 ret - 131: - 030D A_RTS_ON: - 132: 3272+7 030D 3E05 ld a,005h ;write into WR0: select WR5 - 133: 3279+11 030F D309 out (CS_SIO_A_C),A - 134: 3290+7 0311 3EEA ld a,0EAh ;DTR active, TX 8bit, BREAK off, TX on, RTS active - 135: 3297+11 0313 D309 out (CS_SIO_A_C),A + 125: - 0312 A_RTS_OFF: + 126: 3289+7 0312 3E05 ld a,005h ;write into WR0: select WR5 + 127: 3296+11 0314 D309 out (CS_SIO_A_C),A + 128: 3307+7 0316 3E68 ld a,068h ;DTR inactiveh, TX 8bit, BREAK off, TX on, RTS inactive + 129: 3314+11 0318 D309 out (CS_SIO_A_C),A + 130: 3325+10 031A C9 ret + 131: - 031B A_RTS_ON: + 132: 3335+7 031B 3E05 ld a,005h ;write into WR0: select WR5 + 133: 3342+11 031D D309 out (CS_SIO_A_C),A + 134: 3353+7 031F 3EEA ld a,0EAh ;DTR active, TX 8bit, BREAK off, TX on, RTS active + 135: 3360+11 0321 D309 out (CS_SIO_A_C),A **** main.asm **** - 473: 3308+10 0315 C9 ret - 474: .include "conversions.s" + 483: 3371+10 0323 C9 ret + 484: .include "conversions.s" **** include/conversions.s **** 1: ; HL Contains Address to string 2: ; E is 0xFF if error 3: ; E is 0x00 if okay 4: ; A returns byte 5: ; A,DE are destroyed - 6: - 0316 DHEX_TO_BYTE: - 7: 3318+11 0316 E5 PUSH HL ;Backup pointer + 6: - 0324 DHEX_TO_BYTE: + 7: 3381+11 0324 E5 PUSH HL ;Backup pointer 8: ; Load First Byte - 9: 3329+7 0317 7E LD A,(HL) ;Load first char (high) - 10: 3336+17 0318 CD3603 CALL HEX_TO_BIN ;Conv chart to 4bit - 11: 3353+7+5 031B 3815 jr C, DHEX_TO_BYTE_FAILED ;If error jmp to DHEX_TO_BYTE_FAILED - 12: 3360+8 031D CB27 SLA A ;shift result to upper 4 bits - 13: 3368+8 031F CB27 SLA A - 14: 3376+8 0321 CB27 SLA A - 15: 3384+8 0323 CB27 SLA A - 16: 3392+4 0325 57 LD D,A ;store result in D + 9: 3392+7 0325 7E LD A,(HL) ;Load first char (high) + 10: 3399+17 0326 CD4403 CALL HEX_TO_BIN ;Conv chart to 4bit + 11: 3416+7+5 0329 3815 jr C, DHEX_TO_BYTE_FAILED ;If error jmp to DHEX_TO_BYTE_FAILED + 12: 3423+8 032B CB27 SLA A ;shift result to upper 4 bits + 13: 3431+8 032D CB27 SLA A + 14: 3439+8 032F CB27 SLA A + 15: 3447+8 0331 CB27 SLA A + 16: 3455+4 0333 57 LD D,A ;store result in D 17: - 18: 3396+6 0326 23 INC HL ;next byte - 19: 3402+7 0327 7E LD A,(HL) ;load 2nd char (lower) - 20: 3409+17 0328 CD3603 CALL HEX_TO_BIN ;Conv chart to 4bit - 21: 3426+7+5 032B 3805 jr C, DHEX_TO_BYTE_FAILED ;If error jmp to DHEX_TO_BYTE_FAILED - 22: 3433+4 032D B2 OR D ;merge D with accumulator + 18: 3459+6 0334 23 INC HL ;next byte + 19: 3465+7 0335 7E LD A,(HL) ;load 2nd char (lower) + 20: 3472+17 0336 CD4403 CALL HEX_TO_BIN ;Conv chart to 4bit + 21: 3489+7+5 0339 3805 jr C, DHEX_TO_BYTE_FAILED ;If error jmp to DHEX_TO_BYTE_FAILED + 22: 3496+4 033B B2 OR D ;merge D with accumulator 23: - 24: 3437+10 032E E1 POP HL ;restor original pointer - 25: 3447+7 032F 1E00 LD E,0x00 ;set error to 0x00 = no error - 26: 3454+10 0331 C9 RET - 27: - 0332 DHEX_TO_BYTE_FAILED: - 28: 3464+7 0332 1EFF LD E,0xFF ;set error to oxFF + 24: 3500+10 033C E1 POP HL ;restor original pointer + 25: 3510+7 033D 1E00 LD E,0x00 ;set error to 0x00 = no error + 26: 3517+10 033F C9 RET + 27: - 0340 DHEX_TO_BYTE_FAILED: + 28: 3527+7 0340 1EFF LD E,0xFF ;set error to oxFF 29: ;LD A,0x00 - 30: 3471+10 0334 E1 POP HL - 31: 3481+10 0335 C9 RET + 30: 3534+10 0342 E1 POP HL + 31: 3544+10 0343 C9 RET 32: 33: ; REG A Contains CHAR-Low 34: ; If failed, Carry is set - 35: - 0336 HEX_TO_BIN: - 36: 3491+7 0336 D630 SUB 48 ; 0 is 0 - 37: 3498+10 0338 EA4B03 jp PE, HEX_TO_INVALID_2; to low (SUB overflow) - 38: 3508+7 033B FE0A CP 10 ; Value is between 0 and 9 - 39: 3515+7+5 033D 3805 JR C, HEX_TO_BIN_2 - 40: 3522+7 033F D607 SUB 7 - 41: 3529+10 0341 EA4B03 jp PE, HEX_TO_INVALID_2; to low (SUB overflow) - 42: - 0344 HEX_TO_BIN_2: - 43: 3539+7 0344 FE10 CP 16 - 44: 3546+7+5 0346 3003 JR NC, HEX_TO_INVALID_2; if bigger than 15-> fail - 45: 3553+7 0348 E60F AND 0x0F - 46: 3560+10 034A C9 RET - 47: - 034B HEX_TO_INVALID_2: - 48: 3570+4 034B 37 SCF ;set carry flag - 49: 3574+10 034C C9 RET + 35: - 0344 HEX_TO_BIN: + 36: 3554+7 0344 D630 SUB 48 ; 0 is 0 + 37: 3561+10 0346 EA5903 jp PE, HEX_TO_INVALID_2; to low (SUB overflow) + 38: 3571+7 0349 FE0A CP 10 ; Value is between 0 and 9 + 39: 3578+7+5 034B 3805 JR C, HEX_TO_BIN_2 + 40: 3585+7 034D D607 SUB 7 + 41: 3592+10 034F EA5903 jp PE, HEX_TO_INVALID_2; to low (SUB overflow) + 42: - 0352 HEX_TO_BIN_2: + 43: 3602+7 0352 FE10 CP 16 + 44: 3609+7+5 0354 3003 JR NC, HEX_TO_INVALID_2; if bigger than 15-> fail + 45: 3616+7 0356 E60F AND 0x0F + 46: 3623+10 0358 C9 RET + 47: - 0359 HEX_TO_INVALID_2: + 48: 3633+4 0359 37 SCF ;set carry flag + 49: 3637+10 035A C9 RET 50: 51: 52: ;***************** @@ -725,37 +731,37 @@ 59: ;Outputs: BC contains 2 Bytes of ASCII (HEX) 60: ; 61: ;Destroys: A, BC, - 62: - 034D STRCONV_BYTES_TO_HEX: - 63: 3584+11 034D F5 PUSH AF;Backup A Register - 64: 3595+4 034E 1F RRA - 65: 3599+4 034F 1F RRA - 66: 3603+4 0350 1F RRA - 67: 3607+4 0351 1F RRA - 68: 3611+17 0352 CD5C03 CALL STRCONV_BYTES_TO_HEX_1 + 62: - 035B STRCONV_BYTES_TO_HEX: + 63: 3647+11 035B F5 PUSH AF;Backup A Register + 64: 3658+4 035C 1F RRA + 65: 3662+4 035D 1F RRA + 66: 3666+4 035E 1F RRA + 67: 3670+4 035F 1F RRA + 68: 3674+17 0360 CD6A03 CALL STRCONV_BYTES_TO_HEX_1 69: ;LD A,D - 70: 3628+4 0355 47 LD B,A - 71: 3632+10 0356 F1 POP AF ; Reload first Byte - 72: 3642+17 0357 CD5C03 CALL STRCONV_BYTES_TO_HEX_1 + 70: 3691+4 0363 47 LD B,A + 71: 3695+10 0364 F1 POP AF ; Reload first Byte + 72: 3705+17 0365 CD6A03 CALL STRCONV_BYTES_TO_HEX_1 73: ;LD A,D - 74: 3659+4 035A 4F LD C,A - 75: 3663+10 035B C9 RET + 74: 3722+4 0368 4F LD C,A + 75: 3726+10 0369 C9 RET 76: - 77: - 035C STRCONV_BYTES_TO_HEX_1: - 78: 3673+7 035C E60F AND 0x0F - 79: 3680+7 035E C630 ADD 48 - 80: 3687+7 0360 FE3A CP 58 ; Check if less than 58 (less than ASCII 9) + 77: - 036A STRCONV_BYTES_TO_HEX_1: + 78: 3736+7 036A E60F AND 0x0F + 79: 3743+7 036C C630 ADD 48 + 80: 3750+7 036E FE3A CP 58 ; Check if less than 58 (less than ASCII 9) 81: ;JR C, STRCONV_BYTES_TO_HEX_2 - 82: 3694+5+6 0362 D8 RET C - 83: 3699+7 0363 C607 ADD 7 ; A-F - 84: 3706+10 0365 C9 RET - 85: - 0366 STRCONV_BYTES_TO_HEX_2: + 82: 3757+5+6 0370 D8 RET C + 83: 3762+7 0371 C607 ADD 7 ; A-F + 84: 3769+10 0373 C9 RET + 85: - 0374 STRCONV_BYTES_TO_HEX_2: 86: ;LD D,A - 87: 3716+10 0366 C9 RET + 87: 3779+10 0374 C9 RET 88: 89: **** main.asm **** - 475: ;.include "basic.s" - 476: .include "disassembler.s" + 485: ;.include "basic.s" + 486: .include "disassembler.s" **** include/disassembler.s **** 1: - 4110 var_opcode_start equ PRG_RAM_START ;16 bit pointer to opcode in mem 2: - 4112 var_opcode_table equ PRG_RAM_START+2 ;16 bit pointer to opcode in table @@ -767,253 +773,253 @@ 8: - 411A var_bytes_count equ PRG_RAM_START+10 ;bytes to examine 9: ; HL contains start address 10: ; B contains length - 11: - 0367 disassemble: - 12: 3726+4 0367 78 ld a,b - 13: 3730+13 0368 321A41 ld (var_bytes_count),a - 14: - 036B disassemble_next: + 11: - 0375 disassemble: + 12: 3789+4 0375 78 ld a,b + 13: 3793+13 0376 321A41 ld (var_bytes_count),a + 14: - 0379 disassemble_next: 15: 16: - 17: 3743+16 036B 221041 ld (var_opcode_start), hl ;16 bit pointer to opcode in mem - 18: 3759+7 036E 7E ld a,(hl) ;load opcode to find in A - 19: 3766+13 036F 321441 ld (var_opcode), a ;8 bit opcode value - 20: 3779+6 0372 23 inc hl - 21: 3785+7 0373 7E ld a,(hl) ;load opcode to find in A - 22: 3792+13 0374 321541 ld (var_opcode_x), a ;8 bit opcode extended value - 23: 3805+6 0377 2B dec hl - 24: 3811+17 0378 CD5B04 call disassemble_table_seek - 25: 3828+4 037B 78 ld a,b - 26: 3832+4 037C B1 or c - 27: 3836+10 037D CA3D04 jp z, disassemble_err ;if bc==0000h + 17: 3806+16 0379 221041 ld (var_opcode_start), hl ;16 bit pointer to opcode in mem + 18: 3822+7 037C 7E ld a,(hl) ;load opcode to find in A + 19: 3829+13 037D 321441 ld (var_opcode), a ;8 bit opcode value + 20: 3842+6 0380 23 inc hl + 21: 3848+7 0381 7E ld a,(hl) ;load opcode to find in A + 22: 3855+13 0382 321541 ld (var_opcode_x), a ;8 bit opcode extended value + 23: 3868+6 0385 2B dec hl + 24: 3874+17 0386 CD6904 call disassemble_table_seek + 25: 3891+4 0389 78 ld a,b + 26: 3895+4 038A B1 or c + 27: 3899+10 038B CA4B04 jp z, disassemble_err ;if bc==0000h 28: - 29: 3846+20 0380 ED431241 ld (var_opcode_table), bc ;16 bit pointer to opcode in table + 29: 3909+20 038E ED431241 ld (var_opcode_table), bc ;16 bit pointer to opcode in table 30: 31: ;load params - 32: 3866+6 0384 03 inc bc - 33: 3872+6 0385 03 inc bc - 34: 3878+6 0386 03 inc bc - 35: 3884+6 0387 03 inc bc - 36: 3890+7 0388 0A ld a,(bc) - 37: 3897+13 0389 321641 ld (var_opcode_length),A ;8 bit opcode length (in bytes) - 38: 3910+6 038C 03 inc bc - 39: 3916+7 038D 0A ld a, (bc) - 40: 3923+4 038E 5F ld e,a - 41: 3927+6 038F 03 inc bc - 42: 3933+7 0390 0A ld a, (bc) - 43: 3940+4 0391 57 ld d,a - 44: 3944+20 0392 ED531741 ld (var_opcode_string),de ;16 bit pointer to opcode string - 45: 3964+6 0396 03 inc bc - 46: 3970+7 0397 0A ld a,(bc) - 47: 3977+13 0398 321941 ld (var_opcode_pcount),A ;8 bit opcode param count + 32: 3929+6 0392 03 inc bc + 33: 3935+6 0393 03 inc bc + 34: 3941+6 0394 03 inc bc + 35: 3947+6 0395 03 inc bc + 36: 3953+7 0396 0A ld a,(bc) + 37: 3960+13 0397 321641 ld (var_opcode_length),A ;8 bit opcode length (in bytes) + 38: 3973+6 039A 03 inc bc + 39: 3979+7 039B 0A ld a, (bc) + 40: 3986+4 039C 5F ld e,a + 41: 3990+6 039D 03 inc bc + 42: 3996+7 039E 0A ld a, (bc) + 43: 4003+4 039F 57 ld d,a + 44: 4007+20 03A0 ED531741 ld (var_opcode_string),de ;16 bit pointer to opcode string + 45: 4027+6 03A4 03 inc bc + 46: 4033+7 03A5 0A ld a,(bc) + 47: 4040+13 03A6 321941 ld (var_opcode_pcount),A ;8 bit opcode param count 48: 49: ;values are prepared. Continue with print 50: - 51: 3990+16 039B 2A1041 ld hl,(var_opcode_start) ;print address - 52: 4006+17 039E CDA304 call dasm_print16hex_addr + 51: 4053+16 03A9 2A1041 ld hl,(var_opcode_start) ;print address + 52: 4069+17 03AC CDB104 call dasm_print16hex_addr 53: - 54: 4023+13 03A1 3A1641 ld a,(var_opcode_length) - 55: 4036+4 03A4 47 ld b, a + 54: 4086+13 03AF 3A1641 ld a,(var_opcode_length) + 55: 4099+4 03B2 47 ld b, a 56: 57: ;print up to 4 opcode bytes - 58: 4040+16 03A5 2A1041 ld hl,(var_opcode_start) + 58: 4103+16 03B3 2A1041 ld hl,(var_opcode_start) 59: - 60: - 03A8 disassemble_print_opcode_raw - 61: 4056+7 03A8 7E ld a,(hl) ;load first byte - 62: 4063+17 03A9 CDD902 call print_a_hex - 63: 4080+6 03AC 23 inc hl - 64: 4086+8+5 03AD 10F9 djnz disassemble_print_opcode_raw + 60: - 03B6 disassemble_print_opcode_raw + 61: 4119+7 03B6 7E ld a,(hl) ;load first byte + 62: 4126+17 03B7 CDE702 call print_a_hex + 63: 4143+6 03BA 23 inc hl + 64: 4149+8+5 03BB 10F9 djnz disassemble_print_opcode_raw 65: - 66: 4094+7 03AF 3E68 ld a,"h" - 67: 4101+17 03B1 CDA902 call print_char + 66: 4157+7 03BD 3E68 ld a,"h" + 67: 4164+17 03BF CDB702 call print_char 68: ;fill empty spots - 69: 4118+13 03B4 3A1641 ld a,(var_opcode_length) - 70: 4131+4 03B7 47 ld b,a - 71: 4135+7 03B8 3E06 ld a,6 - 72: 4142+4 03BA 90 sub b - 73: 4146+4 03BB 47 ld b,a + 69: 4181+13 03C2 3A1641 ld a,(var_opcode_length) + 70: 4194+4 03C5 47 ld b,a + 71: 4198+7 03C6 3E06 ld a,6 + 72: 4205+4 03C8 90 sub b + 73: 4209+4 03C9 47 ld b,a 74: - 75: - 03BC disassemble_print_opcode_raw_fill: - 76: 4150+7 03BC 3E20 ld a," " - 77: 4157+17 03BE CDA902 call print_char - 78: 4174+7 03C1 3E20 ld a," " - 79: 4181+17 03C3 CDA902 call print_char - 80: 4198+8+5 03C6 10F4 djnz disassemble_print_opcode_raw_fill - 81: 4206+7 03C8 3E20 ld a," " - 82: 4213+17 03CA CDA902 call print_char + 75: - 03CA disassemble_print_opcode_raw_fill: + 76: 4213+7 03CA 3E20 ld a," " + 77: 4220+17 03CC CDB702 call print_char + 78: 4237+7 03CF 3E20 ld a," " + 79: 4244+17 03D1 CDB702 call print_char + 80: 4261+8+5 03D4 10F4 djnz disassemble_print_opcode_raw_fill + 81: 4269+7 03D6 3E20 ld a," " + 82: 4276+17 03D8 CDB702 call print_char 83: - 84: 4230+11 03CD E5 push hl + 84: 4293+11 03DB E5 push hl 85: ;print opcode - 86: 4241+16 03CE 2A1741 ld hl,(var_opcode_string) - 87: 4257+17 03D1 CDB102 call print_str + 86: 4304+16 03DC 2A1741 ld hl,(var_opcode_string) + 87: 4320+17 03DF CDBF02 call print_str 88: 89: 90: ;print params - 91: 4274+13 03D4 3A1941 ld a,(var_opcode_pcount) - 92: 4287+4 03D7 B7 or a - 93: 4291+10 03D8 CA3A04 jp z, disassemble_print_opcode_params_end ;skip if no params + 91: 4337+13 03E2 3A1941 ld a,(var_opcode_pcount) + 92: 4350+4 03E5 B7 or a + 93: 4354+10 03E6 CA4804 jp z, disassemble_print_opcode_params_end ;skip if no params 94: - 95: 4301+16 03DB 2A1241 ld hl,(var_opcode_table) - 96: 4317+10 03DE 010800 ld bc, 8 - 97: 4327+11 03E1 09 add hl,bc ;hl now has address of first param - 98: 4338+13 03E2 3A1941 ld a,(var_opcode_pcount) - 99: 4351+4 03E5 47 ld b,a - 100: - 03E6 disassemble_print_opcode_params_loop: + 95: 4364+16 03E9 2A1241 ld hl,(var_opcode_table) + 96: 4380+10 03EC 010800 ld bc, 8 + 97: 4390+11 03EF 09 add hl,bc ;hl now has address of first param + 98: 4401+13 03F0 3A1941 ld a,(var_opcode_pcount) + 99: 4414+4 03F3 47 ld b,a + 100: - 03F4 disassemble_print_opcode_params_loop: 101: ;ld a,(hl) ;load param 102: ;call print_a_hex - 103: 4355+7 03E6 7E ld a,(hl) ;load param + 103: 4418+7 03F4 7E ld a,(hl) ;load param 104: - 105: 4362+7 03E7 FE01 cp 0x01 - 106: 4369+10+7 03E9 CCC904 call z, param_01 - 107: 4379+7 03EC FE02 cp 0x02 - 108: 4386+10+7 03EE CCF004 call z, param_02 - 109: 4396+7 03F1 FE03 cp 0x03 - 110: 4403+10+7 03F3 CC0D05 call z, param_03 - 111: 4413+7 03F6 FE04 cp 0x04 - 112: 4420+10+7 03F8 CC4905 call z, param_04 - 113: 4430+7 03FB FE05 cp 0x05 - 114: 4437+10+7 03FD CC5F05 call z, param_05 - 115: 4447+7 0400 FE06 cp 0x06 - 116: 4454+10+7 0402 CC6C05 call z, param_06 - 117: 4464+7 0405 FE07 cp 0x07 - 118: 4471+10+7 0407 CC8605 call z, param_07 - 119: 4481+7 040A FE08 cp 0x08 - 120: 4488+10+7 040C CC9305 call z, param_08 - 121: 4498+7 040F FE09 cp 0x09 - 122: 4505+10+7 0411 CCA805 call z, param_09 - 123: 4515+7 0414 FE10 cp 0x10 - 124: 4522+10+7 0416 CCBD05 call z, param_10 - 125: 4532+7 0419 FE11 cp 0x11 - 126: 4539+10+7 041B CCCD05 call z, param_11 - 127: 4549+7 041E FE12 cp 0x12 - 128: 4556+10+7 0420 CCD505 call z, param_12 - 129: 4566+7 0423 FE13 cp 0x13 - 130: 4573+10+7 0425 CC0D06 call z, param_13 - 131: 4583+7 0428 FE0A cp 0x0A - 132: 4590+10+7 042A CC9F05 call z, param_0A + 105: 4425+7 03F5 FE01 cp 0x01 + 106: 4432+10+7 03F7 CCD704 call z, param_01 + 107: 4442+7 03FA FE02 cp 0x02 + 108: 4449+10+7 03FC CCFE04 call z, param_02 + 109: 4459+7 03FF FE03 cp 0x03 + 110: 4466+10+7 0401 CC1B05 call z, param_03 + 111: 4476+7 0404 FE04 cp 0x04 + 112: 4483+10+7 0406 CC5705 call z, param_04 + 113: 4493+7 0409 FE05 cp 0x05 + 114: 4500+10+7 040B CC6D05 call z, param_05 + 115: 4510+7 040E FE06 cp 0x06 + 116: 4517+10+7 0410 CC7A05 call z, param_06 + 117: 4527+7 0413 FE07 cp 0x07 + 118: 4534+10+7 0415 CC9405 call z, param_07 + 119: 4544+7 0418 FE08 cp 0x08 + 120: 4551+10+7 041A CCA105 call z, param_08 + 121: 4561+7 041D FE09 cp 0x09 + 122: 4568+10+7 041F CCB605 call z, param_09 + 123: 4578+7 0422 FE10 cp 0x10 + 124: 4585+10+7 0424 CCCB05 call z, param_10 + 125: 4595+7 0427 FE11 cp 0x11 + 126: 4602+10+7 0429 CCDB05 call z, param_11 + 127: 4612+7 042C FE12 cp 0x12 + 128: 4619+10+7 042E CCE305 call z, param_12 + 129: 4629+7 0431 FE13 cp 0x13 + 130: 4636+10+7 0433 CC1B06 call z, param_13 + 131: 4646+7 0436 FE0A cp 0x0A + 132: 4653+10+7 0438 CCAD05 call z, param_0A 133: ;strings - 134: 4600+7 042D FE80 cp 0x80 - 135: 4607+10+7 042F CC2C06 call z, param_80 - 136: 4617+7 0432 FE81 cp 0x81 - 137: 4624+10+7 0434 CC2306 call z, param_81 - 138: 4634+6 0437 23 inc hl - 139: 4640+8+5 0438 10AC djnz disassemble_print_opcode_params_loop - 140: - 043A disassemble_print_opcode_params_end: - 141: 4648+10 043A E1 pop hl - 142: 4658+12 043B 1810 jr disassemble_continue + 134: 4663+7 043B FE80 cp 0x80 + 135: 4670+10+7 043D CC3A06 call z, param_80 + 136: 4680+7 0440 FE81 cp 0x81 + 137: 4687+10+7 0442 CC3106 call z, param_81 + 138: 4697+6 0445 23 inc hl + 139: 4703+8+5 0446 10AC djnz disassemble_print_opcode_params_loop + 140: - 0448 disassemble_print_opcode_params_end: + 141: 4711+10 0448 E1 pop hl + 142: 4721+12 0449 1810 jr disassemble_continue 143: 144: - 145: - 043D disassemble_err: - 146: 4670+17 043D CDA304 call dasm_print16hex_addr - 147: 4687+7 0440 7E ld a,(hl) - 148: 4694+17 0441 CDBB04 call dasm_print8hex ;print value - 149: 4711+6 0444 23 inc hl - 150: 4717+11 0445 E5 push hl - 151: 4728+10 0446 21780E ld hl, [dasm_UU] - 152: 4738+17 0449 CDB102 call print_str - 153: 4755+10 044C E1 pop hl + 145: - 044B disassemble_err: + 146: 4733+17 044B CDB104 call dasm_print16hex_addr + 147: 4750+7 044E 7E ld a,(hl) + 148: 4757+17 044F CDC904 call dasm_print8hex ;print value + 149: 4774+6 0452 23 inc hl + 150: 4780+11 0453 E5 push hl + 151: 4791+10 0454 21860E ld hl, [dasm_UU] + 152: 4801+17 0457 CDBF02 call print_str + 153: 4818+10 045A E1 pop hl 154: - 155: - 044D disassemble_continue: + 155: - 045B disassemble_continue: 156: - 157: 4765+17 044D CDC302 call print_newLine + 157: 4828+17 045B CDD102 call print_newLine 158: ;inc hl - 159: 4782+13 0450 3A1A41 ld a,(var_bytes_count) - 160: 4795+4 0453 3D dec a - 161: 4799+13 0454 321A41 ld (var_bytes_count),a - 162: 4812+10 0457 C26B03 jp nz, disassemble_next - 163: 4822+10 045A C9 ret + 159: 4845+13 045E 3A1A41 ld a,(var_bytes_count) + 160: 4858+4 0461 3D dec a + 161: 4862+13 0462 321A41 ld (var_bytes_count),a + 162: 4875+10 0465 C27903 jp nz, disassemble_next + 163: 4885+10 0468 C9 ret 164: 165: 166: 167: ;A contains opcode 168: ;BC contains returned position - 169: - 045B disassemble_table_seek: - 170: 4832+11 045B E5 push hl - 171: 4843+10 045C 217606 ld hl, [dasm_opcode_table] - 172: - 045F disassemble_table_seek_loop: - 173: 4853+13 045F 3A1441 ld a,(var_opcode) - 174: 4866+4 0462 4F ld c,a - 175: 4870+7 0463 7E ld a,(hl) - 176: 4877+7 0464 FEFF cp 0xFF ; if null - 177: 4884+10 0466 CA9D04 jp z, disassemble_table_notfound + 169: - 0469 disassemble_table_seek: + 170: 4895+11 0469 E5 push hl + 171: 4906+10 046A 218406 ld hl, [dasm_opcode_table] + 172: - 046D disassemble_table_seek_loop: + 173: 4916+13 046D 3A1441 ld a,(var_opcode) + 174: 4929+4 0470 4F ld c,a + 175: 4933+7 0471 7E ld a,(hl) + 176: 4940+7 0472 FEFF cp 0xFF ; if null + 177: 4947+10 0474 CAAB04 jp z, disassemble_table_notfound 178: 179: ;apply mask - 180: 4894+11 0469 F5 push af - 181: 4905+6 046A 23 inc hl - 182: 4911+7 046B 46 ld b,(hl) ;load mask - 183: 4918+6 046C 2B dec hl - 184: 4924+4 046D 79 ld a,c - 185: 4928+4 046E A0 and b ;apply mask - 186: 4932+4 046F 4F ld c,a - 187: 4936+10 0470 F1 pop af + 180: 4957+11 0477 F5 push af + 181: 4968+6 0478 23 inc hl + 182: 4974+7 0479 46 ld b,(hl) ;load mask + 183: 4981+6 047A 2B dec hl + 184: 4987+4 047B 79 ld a,c + 185: 4991+4 047C A0 and b ;apply mask + 186: 4995+4 047D 4F ld c,a + 187: 4999+10 047E F1 pop af 188: - 189: 4946+4 0471 B9 cp c ; if match - 190: 4950+7+5 0472 280B jr z, disassemble_table_first_match - 191: 4957+7 0474 0600 ld b,0 - 192: 4964+7 0476 0E07 ld c,7 - 193: 4971+11 0478 09 add hl,bc - 194: 4982+7 0479 7E ld a,(hl) - 195: 4989+4 047A 4F ld c,a - 196: 4993+11 047B 09 add hl,bc - 197: 5004+6 047C 23 inc hl - 198: 5010+12 047D 18E0 jr disassemble_table_seek_loop + 189: 5009+4 047F B9 cp c ; if match + 190: 5013+7+5 0480 280B jr z, disassemble_table_first_match + 191: 5020+7 0482 0600 ld b,0 + 192: 5027+7 0484 0E07 ld c,7 + 193: 5034+11 0486 09 add hl,bc + 194: 5045+7 0487 7E ld a,(hl) + 195: 5052+4 0488 4F ld c,a + 196: 5056+11 0489 09 add hl,bc + 197: 5067+6 048A 23 inc hl + 198: 5073+12 048B 18E0 jr disassemble_table_seek_loop 199: - 200: - 047F disassemble_table_first_match - 201: 5022+6 047F 23 inc hl - 202: 5028+6 0480 23 inc hl - 203: 5034+7 0481 4E ld c,(hl) ;load opcode x from table - 204: 5041+6 0482 23 inc hl - 205: 5047+13 0483 3A1541 ld a,(var_opcode_x) ;load current opcode x - 206: 5060+7 0486 46 ld b,(hl) ;load mask - 207: 5067+4 0487 A0 and b ;apply mask - 208: 5071+4 0488 B9 cp c ;compare to table - 209: 5075+6 0489 2B dec hl - 210: 5081+6 048A 2B dec hl - 211: 5087+6 048B 2B dec hl - 212: 5093+7+5 048C 280B jr z, disassemble_table_found ;IF FOUND - 213: 5100+7 048E 0600 ld b,0 ;else continue with next + 200: - 048D disassemble_table_first_match + 201: 5085+6 048D 23 inc hl + 202: 5091+6 048E 23 inc hl + 203: 5097+7 048F 4E ld c,(hl) ;load opcode x from table + 204: 5104+6 0490 23 inc hl + 205: 5110+13 0491 3A1541 ld a,(var_opcode_x) ;load current opcode x + 206: 5123+7 0494 46 ld b,(hl) ;load mask + 207: 5130+4 0495 A0 and b ;apply mask + 208: 5134+4 0496 B9 cp c ;compare to table + 209: 5138+6 0497 2B dec hl + 210: 5144+6 0498 2B dec hl + 211: 5150+6 0499 2B dec hl + 212: 5156+7+5 049A 280B jr z, disassemble_table_found ;IF FOUND + 213: 5163+7 049C 0600 ld b,0 ;else continue with next 214: - 215: 5107+7 0490 0E07 ld c,7 - 216: 5114+11 0492 09 add hl,bc - 217: 5125+7 0493 7E ld a,(hl) - 218: 5132+4 0494 4F ld c,a - 219: 5136+11 0495 09 add hl,bc - 220: 5147+6 0496 23 inc hl - 221: 5153+12 0497 18C6 jr disassemble_table_seek_loop + 215: 5170+7 049E 0E07 ld c,7 + 216: 5177+11 04A0 09 add hl,bc + 217: 5188+7 04A1 7E ld a,(hl) + 218: 5195+4 04A2 4F ld c,a + 219: 5199+11 04A3 09 add hl,bc + 220: 5210+6 04A4 23 inc hl + 221: 5216+12 04A5 18C6 jr disassemble_table_seek_loop 222: - 223: - 0499 disassemble_table_found - 224: 5165+4 0499 44 ld b,H - 225: 5169+4 049A 4D ld c,l - 226: 5173+10 049B E1 pop hl - 227: 5183+10 049C C9 ret + 223: - 04A7 disassemble_table_found + 224: 5228+4 04A7 44 ld b,H + 225: 5232+4 04A8 4D ld c,l + 226: 5236+10 04A9 E1 pop hl + 227: 5246+10 04AA C9 ret 228: - 229: - 049D disassemble_table_notfound - 230: 5193+7 049D 0600 ld b,0 - 231: 5200+7 049F 0E00 ld c,0 - 232: 5207+10 04A1 E1 pop hl - 233: 5217+10 04A2 C9 ret + 229: - 04AB disassemble_table_notfound + 230: 5256+7 04AB 0600 ld b,0 + 231: 5263+7 04AD 0E00 ld c,0 + 232: 5270+10 04AF E1 pop hl + 233: 5280+10 04B0 C9 ret 234: 235: 236: 237: - 238: - 04A3 dasm_print16hex_addr: - 239: 5227+7 04A3 3E24 ld a,"$" - 240: 5234+17 04A5 CDA902 call print_char - 241: 5251+4 04A8 7C ld a,h - 242: 5255+17 04A9 CDD902 call print_a_hex - 243: 5272+4 04AC 7D ld a,l - 244: 5276+17 04AD CDD902 call print_a_hex - 245: 5293+7 04B0 3E68 ld a,"h" - 246: 5300+17 04B2 CDA902 call print_char - 247: 5317+7 04B5 3E20 ld a," " - 248: 5324+17 04B7 CDA902 call print_char - 249: 5341+10 04BA C9 ret + 238: - 04B1 dasm_print16hex_addr: + 239: 5290+7 04B1 3E24 ld a,"$" + 240: 5297+17 04B3 CDB702 call print_char + 241: 5314+4 04B6 7C ld a,h + 242: 5318+17 04B7 CDE702 call print_a_hex + 243: 5335+4 04BA 7D ld a,l + 244: 5339+17 04BB CDE702 call print_a_hex + 245: 5356+7 04BE 3E68 ld a,"h" + 246: 5363+17 04C0 CDB702 call print_char + 247: 5380+7 04C3 3E20 ld a," " + 248: 5387+17 04C5 CDB702 call print_char + 249: 5404+10 04C8 C9 ret 250: - 251: - 04BB dasm_print8hex: - 252: 5351+17 04BB CDD902 call print_a_hex - 253: 5368+7 04BE 3E68 ld a,"h" - 254: 5375+17 04C0 CDA902 call print_char - 255: 5392+7 04C3 3E20 ld a," " - 256: 5399+17 04C5 CDA902 call print_char - 257: 5416+10 04C8 C9 ret + 251: - 04C9 dasm_print8hex: + 252: 5414+17 04C9 CDE702 call print_a_hex + 253: 5431+7 04CC 3E68 ld a,"h" + 254: 5438+17 04CE CDB702 call print_char + 255: 5455+7 04D1 3E20 ld a," " + 256: 5462+17 04D3 CDB702 call print_char + 257: 5479+10 04D6 C9 ret 258: 259: 260: @@ -1021,317 +1027,317 @@ 262: 263: 264: - 265: - 04C9 param_01: ; 0x01 16bit address pointer - 266: 5426+11 04C9 E5 push hl - 267: 5437+20 04CA ED5B1041 ld de,(var_opcode_start) - 268: 5457+6 04CE 13 inc de - 269: 5463+7 04CF 1A ld a,(de) - 270: 5470+4 04D0 6F ld l,a - 271: 5474+6 04D1 13 inc de - 272: 5480+7 04D2 1A ld a,(de) - 273: 5487+4 04D3 67 ld h,a + 265: - 04D7 param_01: ; 0x01 16bit address pointer + 266: 5489+11 04D7 E5 push hl + 267: 5500+20 04D8 ED5B1041 ld de,(var_opcode_start) + 268: 5520+6 04DC 13 inc de + 269: 5526+7 04DD 1A ld a,(de) + 270: 5533+4 04DE 6F ld l,a + 271: 5537+6 04DF 13 inc de + 272: 5543+7 04E0 1A ld a,(de) + 273: 5550+4 04E1 67 ld h,a 274: - 275: 5491+7 04D4 3E24 ld a,"$" - 276: 5498+17 04D6 CDA902 call print_char - 277: 5515+4 04D9 7C ld a,h - 278: 5519+17 04DA CDD902 call print_a_hex - 279: 5536+4 04DD 7D ld a,l - 280: 5540+17 04DE CDD902 call print_a_hex - 281: 5557+7 04E1 3E68 ld a,"h" - 282: 5564+17 04E3 CDA902 call print_char - 283: 5581+7 04E6 3E20 ld a," " - 284: 5588+17 04E8 CDA902 call print_char - 285: 5605+17 04EB CD6706 call param_comma - 286: 5622+10 04EE E1 pop hl - 287: 5632+10 04EF C9 ret + 275: 5554+7 04E2 3E24 ld a,"$" + 276: 5561+17 04E4 CDB702 call print_char + 277: 5578+4 04E7 7C ld a,h + 278: 5582+17 04E8 CDE702 call print_a_hex + 279: 5599+4 04EB 7D ld a,l + 280: 5603+17 04EC CDE702 call print_a_hex + 281: 5620+7 04EF 3E68 ld a,"h" + 282: 5627+17 04F1 CDB702 call print_char + 283: 5644+7 04F4 3E20 ld a," " + 284: 5651+17 04F6 CDB702 call print_char + 285: 5668+17 04F9 CD7506 call param_comma + 286: 5685+10 04FC E1 pop hl + 287: 5695+10 04FD C9 ret 288: - 289: - 04F0 param_02: - 290: 5642+11 04F0 C5 push bc - 291: 5653+20 04F1 ED5B1041 ld de,(var_opcode_start) - 292: 5673+7 04F5 1A ld a,(de) - 293: 5680+4 04F6 1F rra - 294: 5684+4 04F7 1F rra - 295: 5688+7 04F8 E60E and 0x0E + 289: - 04FE param_02: + 290: 5705+11 04FE C5 push bc + 291: 5716+20 04FF ED5B1041 ld de,(var_opcode_start) + 292: 5736+7 0503 1A ld a,(de) + 293: 5743+4 0504 1F rra + 294: 5747+4 0505 1F rra + 295: 5751+7 0506 E60E and 0x0E 296: - 297: 5695+11 04FA E5 push hl - 298: 5706+10 04FB 21810E ld hl, [dasm_printFlags_table] - 299: 5716+7 04FE 0600 ld b,0 - 300: 5723+4 0500 4F ld c,a - 301: 5727+11 0501 09 add hl,bc - 302: 5738+17 0502 CDB102 call print_str - 303: 5755+7 0505 3E20 ld a, " " - 304: 5762+17 0507 CDA902 call print_char - 305: 5779+10 050A E1 pop hl - 306: 5789+10 050B C1 pop bc - 307: 5799+10 050C C9 ret + 297: 5758+11 0508 E5 push hl + 298: 5769+10 0509 218F0E ld hl, [dasm_printFlags_table] + 299: 5779+7 050C 0600 ld b,0 + 300: 5786+4 050E 4F ld c,a + 301: 5790+11 050F 09 add hl,bc + 302: 5801+17 0510 CDBF02 call print_str + 303: 5818+7 0513 3E20 ld a, " " + 304: 5825+17 0515 CDB702 call print_char + 305: 5842+10 0518 E1 pop hl + 306: 5852+10 0519 C1 pop bc + 307: 5862+10 051A C9 ret 308: 309: - 310: - 050D param_03: - 311: 5809+20 050D ED5B1041 ld de,(var_opcode_start) - 312: 5829+6 0511 13 inc de - 313: 5835+7 0512 1A ld a,(de) + 310: - 051B param_03: + 311: 5872+20 051B ED5B1041 ld de,(var_opcode_start) + 312: 5892+6 051F 13 inc de + 313: 5898+7 0520 1A ld a,(de) 314: - 315: 5842+11 0513 F5 push af - 316: 5853+7 0514 E680 and 0x80 - 317: 5860+10 0516 C22E05 jp nz, param_03_neg - 318: 5870+7 0519 3E24 ld a,"$" - 319: 5877+17 051B CDA902 call print_char - 320: 5894+7 051E 3E2B ld a,"+" - 321: 5901+17 0520 CDA902 call print_char - 322: 5918+10 0523 F1 pop af - 323: 5928+17 0524 CDD902 call print_a_hex - 324: 5945+7 0527 3E68 ld a,"h" - 325: 5952+17 0529 CDA902 call print_char - 326: 5969+12 052C 1817 jr param_03_done + 315: 5905+11 0521 F5 push af + 316: 5916+7 0522 E680 and 0x80 + 317: 5923+10 0524 C23C05 jp nz, param_03_neg + 318: 5933+7 0527 3E24 ld a,"$" + 319: 5940+17 0529 CDB702 call print_char + 320: 5957+7 052C 3E2B ld a,"+" + 321: 5964+17 052E CDB702 call print_char + 322: 5981+10 0531 F1 pop af + 323: 5991+17 0532 CDE702 call print_a_hex + 324: 6008+7 0535 3E68 ld a,"h" + 325: 6015+17 0537 CDB702 call print_char + 326: 6032+12 053A 1817 jr param_03_done 327: - 328: - 052E param_03_neg: - 329: 5981+7 052E 3E24 ld a,"$" - 330: 5988+17 0530 CDA902 call print_char - 331: 6005+7 0533 3E2D ld a,"-" - 332: 6012+17 0535 CDA902 call print_char - 333: 6029+10 0538 F1 pop af - 334: 6039+8 0539 ED44 neg - 335: 6047+17 053B CDD902 call print_a_hex - 336: 6064+7 053E 3E68 ld a,"h" - 337: 6071+17 0540 CDA902 call print_char - 338: 6088+12 0543 1800 jr param_03_done + 328: - 053C param_03_neg: + 329: 6044+7 053C 3E24 ld a,"$" + 330: 6051+17 053E CDB702 call print_char + 331: 6068+7 0541 3E2D ld a,"-" + 332: 6075+17 0543 CDB702 call print_char + 333: 6092+10 0546 F1 pop af + 334: 6102+8 0547 ED44 neg + 335: 6110+17 0549 CDE702 call print_a_hex + 336: 6127+7 054C 3E68 ld a,"h" + 337: 6134+17 054E CDB702 call print_char + 338: 6151+12 0551 1800 jr param_03_done 339: - 340: - 0545 param_03_done: - 341: 6100+17 0545 CD6706 call param_comma - 342: 6117+10 0548 C9 ret + 340: - 0553 param_03_done: + 341: 6163+17 0553 CD7506 call param_comma + 342: 6180+10 0556 C9 ret 343: 344: - 345: - 0549 param_04: - 346: 6127+20 0549 ED5B1041 ld de,(var_opcode_start) - 347: 6147+6 054D 13 inc de - 348: 6153+7 054E 1A ld a,(de) - 349: 6160+7 054F FE4D cp 0x4D - 350: 6167+7+5 0551 2806 jr z,param_04_i - 351: 6174+7 0553 3E4E ld a,"N" - 352: 6181+17 0555 CDA902 call print_char - 353: 6198+10 0558 C9 ret - 354: - 0559 param_04_i: - 355: 6208+7 0559 3E49 ld a,"I" - 356: 6215+17 055B CDA902 call print_char - 357: 6232+10 055E C9 ret + 345: - 0557 param_04: + 346: 6190+20 0557 ED5B1041 ld de,(var_opcode_start) + 347: 6210+6 055B 13 inc de + 348: 6216+7 055C 1A ld a,(de) + 349: 6223+7 055D FE4D cp 0x4D + 350: 6230+7+5 055F 2806 jr z,param_04_i + 351: 6237+7 0561 3E4E ld a,"N" + 352: 6244+17 0563 CDB702 call print_char + 353: 6261+10 0566 C9 ret + 354: - 0567 param_04_i: + 355: 6271+7 0567 3E49 ld a,"I" + 356: 6278+17 0569 CDB702 call print_char + 357: 6295+10 056C C9 ret 358: - 359: - 055F param_05: - 360: 6242+11 055F C5 push bc - 361: 6253+20 0560 ED5B1041 ld de,(var_opcode_start) - 362: 6273+7 0564 1A ld a,(de) - 363: 6280+7 0565 E638 and 0x38 + 359: - 056D param_05: + 360: 6305+11 056D C5 push bc + 361: 6316+20 056E ED5B1041 ld de,(var_opcode_start) + 362: 6336+7 0572 1A ld a,(de) + 363: 6343+7 0573 E638 and 0x38 364: ; print hex char - 365: 6287+17 0567 CDBB04 call dasm_print8hex - 366: 6304+10 056A C1 pop bc - 367: 6314+10 056B C9 ret + 365: 6350+17 0575 CDC904 call dasm_print8hex + 366: 6367+10 0578 C1 pop bc + 367: 6377+10 0579 C9 ret 368: 369: - 370: - 056C param_06: - 371: 6324+11 056C C5 push bc - 372: 6335+20 056D ED5B1041 ld de,(var_opcode_start) - 373: 6355+7 0571 1A ld a,(de) - 374: 6362+4 0572 1F rra - 375: 6366+4 0573 1F rra - 376: 6370+4 0574 1F rra - 377: 6374+7 0575 E607 and 0x07 - 378: 6381+17 0577 CD4206 call param_printRegister - 379: 6398+7 057A 3E20 ld a," " - 380: 6405+17 057C CDA902 call print_char - 381: 6422+7 057F 3E2C ld a,"," - 382: 6429+17 0581 CDA902 call print_char - 383: 6446+10 0584 C1 pop bc - 384: 6456+10 0585 C9 ret + 370: - 057A param_06: + 371: 6387+11 057A C5 push bc + 372: 6398+20 057B ED5B1041 ld de,(var_opcode_start) + 373: 6418+7 057F 1A ld a,(de) + 374: 6425+4 0580 1F rra + 375: 6429+4 0581 1F rra + 376: 6433+4 0582 1F rra + 377: 6437+7 0583 E607 and 0x07 + 378: 6444+17 0585 CD5006 call param_printRegister + 379: 6461+7 0588 3E20 ld a," " + 380: 6468+17 058A CDB702 call print_char + 381: 6485+7 058D 3E2C ld a,"," + 382: 6492+17 058F CDB702 call print_char + 383: 6509+10 0592 C1 pop bc + 384: 6519+10 0593 C9 ret 385: - 386: - 0586 param_07: - 387: 6466+11 0586 C5 push bc - 388: 6477+20 0587 ED5B1041 ld de,(var_opcode_start) - 389: 6497+7 058B 1A ld a,(de) - 390: 6504+7 058C E607 and 0x07 + 386: - 0594 param_07: + 387: 6529+11 0594 C5 push bc + 388: 6540+20 0595 ED5B1041 ld de,(var_opcode_start) + 389: 6560+7 0599 1A ld a,(de) + 390: 6567+7 059A E607 and 0x07 391: - 392: 6511+17 058E CD4206 call param_printRegister - 393: 6528+10 0591 C1 pop bc - 394: 6538+10 0592 C9 ret + 392: 6574+17 059C CD5006 call param_printRegister + 393: 6591+10 059F C1 pop bc + 394: 6601+10 05A0 C9 ret 395: - 396: - 0593 param_08: - 397: 6548+11 0593 C5 push bc - 398: 6559+20 0594 ED5B1041 ld de,(var_opcode_start) - 399: 6579+6 0598 13 inc de - 400: 6585+7 0599 1A ld a,(de) - 401: 6592+17 059A CDBB04 call dasm_print8hex - 402: 6609+10 059D C1 pop bc - 403: 6619+10 059E C9 ret + 396: - 05A1 param_08: + 397: 6611+11 05A1 C5 push bc + 398: 6622+20 05A2 ED5B1041 ld de,(var_opcode_start) + 399: 6642+6 05A6 13 inc de + 400: 6648+7 05A7 1A ld a,(de) + 401: 6655+17 05A8 CDC904 call dasm_print8hex + 402: 6672+10 05AB C1 pop bc + 403: 6682+10 05AC C9 ret 404: 405: - 406: - 059F param_0A: - 407: 6629+11 059F E5 push hl - 408: 6640+20 05A0 ED5B1041 ld de,(var_opcode_start) - 409: 6660+6 05A4 13 inc de - 410: 6666+6 05A5 13 inc de - 411: 6672+12 05A6 1806 jr param_09_0A - 412: - 05A8 param_09: - 413: 6684+11 05A8 E5 push hl - 414: 6695+20 05A9 ED5B1041 ld de,(var_opcode_start) - 415: 6715+6 05AD 13 inc de - 416: - 05AE param_09_0A: - 417: 6721+7 05AE 1A ld a,(de) - 418: 6728+4 05AF 6F ld l,a - 419: 6732+6 05B0 13 inc de - 420: 6738+7 05B1 1A ld a,(de) - 421: 6745+4 05B2 67 ld h,a - 422: 6749+4 05B3 7C ld a,h - 423: 6753+17 05B4 CDD902 call print_a_hex - 424: 6770+4 05B7 7D ld a,l - 425: 6774+17 05B8 CDD902 call print_a_hex - 426: 6791+10 05BB E1 pop hl - 427: 6801+10 05BC C9 ret + 406: - 05AD param_0A: + 407: 6692+11 05AD E5 push hl + 408: 6703+20 05AE ED5B1041 ld de,(var_opcode_start) + 409: 6723+6 05B2 13 inc de + 410: 6729+6 05B3 13 inc de + 411: 6735+12 05B4 1806 jr param_09_0A + 412: - 05B6 param_09: + 413: 6747+11 05B6 E5 push hl + 414: 6758+20 05B7 ED5B1041 ld de,(var_opcode_start) + 415: 6778+6 05BB 13 inc de + 416: - 05BC param_09_0A: + 417: 6784+7 05BC 1A ld a,(de) + 418: 6791+4 05BD 6F ld l,a + 419: 6795+6 05BE 13 inc de + 420: 6801+7 05BF 1A ld a,(de) + 421: 6808+4 05C0 67 ld h,a + 422: 6812+4 05C1 7C ld a,h + 423: 6816+17 05C2 CDE702 call print_a_hex + 424: 6833+4 05C5 7D ld a,l + 425: 6837+17 05C6 CDE702 call print_a_hex + 426: 6854+10 05C9 E1 pop hl + 427: 6864+10 05CA C9 ret 428: - 429: - 05BD param_10: - 430: 6811+11 05BD C5 push bc - 431: 6822+20 05BE ED5B1041 ld de,(var_opcode_start) - 432: 6842+7 05C2 1A ld a,(de) - 433: 6849+4 05C3 1F rra - 434: 6853+4 05C4 1F rra - 435: 6857+4 05C5 1F rra - 436: 6861+7 05C6 E607 and 0x07 - 437: 6868+17 05C8 CD4206 call param_printRegister - 438: 6885+10 05CB C1 pop bc - 439: 6895+10 05CC C9 ret + 429: - 05CB param_10: + 430: 6874+11 05CB C5 push bc + 431: 6885+20 05CC ED5B1041 ld de,(var_opcode_start) + 432: 6905+7 05D0 1A ld a,(de) + 433: 6912+4 05D1 1F rra + 434: 6916+4 05D2 1F rra + 435: 6920+4 05D3 1F rra + 436: 6924+7 05D4 E607 and 0x07 + 437: 6931+17 05D6 CD5006 call param_printRegister + 438: 6948+10 05D9 C1 pop bc + 439: 6958+10 05DA C9 ret 440: 441: - 442: - 05CD param_11: - 443: 6905+11 05CD E5 push hl - 444: 6916+11 05CE C5 push bc - 445: 6927+20 05CF ED5B1041 ld de,(var_opcode_start) - 446: 6947+12 05D3 1807 jr param_11_12 - 447: - 05D5 param_12: - 448: 6959+11 05D5 E5 push hl - 449: 6970+11 05D6 C5 push bc - 450: 6981+20 05D7 ED5B1041 ld de,(var_opcode_start) - 451: 7001+6 05DB 13 inc de + 442: - 05DB param_11: + 443: 6968+11 05DB E5 push hl + 444: 6979+11 05DC C5 push bc + 445: 6990+20 05DD ED5B1041 ld de,(var_opcode_start) + 446: 7010+12 05E1 1807 jr param_11_12 + 447: - 05E3 param_12: + 448: 7022+11 05E3 E5 push hl + 449: 7033+11 05E4 C5 push bc + 450: 7044+20 05E5 ED5B1041 ld de,(var_opcode_start) + 451: 7064+6 05E9 13 inc de 452: - 453: - 05DC param_11_12: - 454: 7007+7 05DC 1A ld a,(de) - 455: 7014+4 05DD 1F rra - 456: 7018+4 05DE 1F rra - 457: 7022+4 05DF 1F rra - 458: 7026+7 05E0 E606 and 0x06 - 459: 7033+11 05E2 F5 push af + 453: - 05EA param_11_12: + 454: 7070+7 05EA 1A ld a,(de) + 455: 7077+4 05EB 1F rra + 456: 7081+4 05EC 1F rra + 457: 7085+4 05ED 1F rra + 458: 7089+7 05EE E606 and 0x06 + 459: 7096+11 05F0 F5 push af 460: ;check which table to use - 461: 7044+16 05E3 2A1041 ld hl, (var_opcode_start) - 462: 7060+7 05E6 7E ld a,(hl) - 463: 7067+7 05E7 FEDD cp 0xDD - 464: 7074+7+5 05E9 2809 jr z,param_11_12_ix - 465: 7081+7 05EB FEFD cp 0xFD - 466: 7088+7+5 05ED 280A jr z,param_11_12_iy - 467: - 05EF param_11_12_def: - 468: 7095+10 05EF 21910E ld hl, [dasm_printRegister8_table] - 469: 7105+12 05F2 1808 jr param_11_12_all - 470: - 05F4 param_11_12_ix: - 471: 7117+10 05F4 21990E ld hl, [dasm_printRegisterIX_table] - 472: 7127+12 05F7 1803 jr param_11_12_all - 473: - 05F9 param_11_12_iy: - 474: 7139+10 05F9 21A10E ld hl, [dasm_printRegisterIY_table] - 475: - 05FC param_11_12_all: - 476: 7149+10 05FC F1 pop af - 477: 7159+7 05FD 0600 ld b,0 - 478: 7166+4 05FF 4F ld c,a - 479: 7170+11 0600 09 add hl, bc - 480: 7181+7 0601 7E ld a,(hl) - 481: 7188+17 0602 CDA902 call print_char - 482: 7205+6 0605 23 inc hl - 483: 7211+7 0606 7E ld a,(hl) - 484: 7218+17 0607 CDA902 call print_char - 485: 7235+10 060A C1 pop bc - 486: 7245+10 060B E1 pop hl - 487: 7255+10 060C C9 ret + 461: 7107+16 05F1 2A1041 ld hl, (var_opcode_start) + 462: 7123+7 05F4 7E ld a,(hl) + 463: 7130+7 05F5 FEDD cp 0xDD + 464: 7137+7+5 05F7 2809 jr z,param_11_12_ix + 465: 7144+7 05F9 FEFD cp 0xFD + 466: 7151+7+5 05FB 280A jr z,param_11_12_iy + 467: - 05FD param_11_12_def: + 468: 7158+10 05FD 219F0E ld hl, [dasm_printRegister8_table] + 469: 7168+12 0600 1808 jr param_11_12_all + 470: - 0602 param_11_12_ix: + 471: 7180+10 0602 21A70E ld hl, [dasm_printRegisterIX_table] + 472: 7190+12 0605 1803 jr param_11_12_all + 473: - 0607 param_11_12_iy: + 474: 7202+10 0607 21AF0E ld hl, [dasm_printRegisterIY_table] + 475: - 060A param_11_12_all: + 476: 7212+10 060A F1 pop af + 477: 7222+7 060B 0600 ld b,0 + 478: 7229+4 060D 4F ld c,a + 479: 7233+11 060E 09 add hl, bc + 480: 7244+7 060F 7E ld a,(hl) + 481: 7251+17 0610 CDB702 call print_char + 482: 7268+6 0613 23 inc hl + 483: 7274+7 0614 7E ld a,(hl) + 484: 7281+17 0615 CDB702 call print_char + 485: 7298+10 0618 C1 pop bc + 486: 7308+10 0619 E1 pop hl + 487: 7318+10 061A C9 ret 488: - 489: - 060D param_13: - 490: 7265+11 060D E5 push hl - 491: 7276+11 060E C5 push bc - 492: 7287+20 060F ED5B1041 ld de,(var_opcode_start) - 493: 7307+7 0613 1A ld a,(de) - 494: 7314+4 0614 1F rra - 495: 7318+4 0615 1F rra - 496: 7322+4 0616 1F rra - 497: 7326+7 0617 E606 and 0x06 - 498: 7333+11 0619 F5 push af + 489: - 061B param_13: + 490: 7328+11 061B E5 push hl + 491: 7339+11 061C C5 push bc + 492: 7350+20 061D ED5B1041 ld de,(var_opcode_start) + 493: 7370+7 0621 1A ld a,(de) + 494: 7377+4 0622 1F rra + 495: 7381+4 0623 1F rra + 496: 7385+4 0624 1F rra + 497: 7389+7 0625 E606 and 0x06 + 498: 7396+11 0627 F5 push af 499: ;check which table to use - 500: 7344+16 061A 2A1041 ld hl, (var_opcode_start) - 501: 7360+7 061D 7E ld a,(hl) - 502: 7367+10 061E 21A90E ld hl, [dasm_printRegisterSP_table] - 503: 7377+12 0621 18D9 jr param_11_12_all ;reuse code from 11_12 + 500: 7407+16 0628 2A1041 ld hl, (var_opcode_start) + 501: 7423+7 062B 7E ld a,(hl) + 502: 7430+10 062C 21B70E ld hl, [dasm_printRegisterSP_table] + 503: 7440+12 062F 18D9 jr param_11_12_all ;reuse code from 11_12 504: 505: - 506: - 0623 param_81: - 507: 7389+11 0623 E5 push hl - 508: 7400+11 0624 C5 push bc - 509: 7411+16 0625 2A1741 ld hl, (var_opcode_string) - 510: 7427+7 0628 0602 ld b,2 - 511: 7434+12 062A 1807 jr param_80_seek - 512: - 062C param_80: - 513: 7446+11 062C E5 push hl - 514: 7457+11 062D C5 push bc - 515: 7468+16 062E 2A1741 ld hl, (var_opcode_string) - 516: 7484+7 0631 0601 ld b,1 - 517: - 0633 param_80_seek: - 518: 7491+7 0633 7E ld a,(hl) - 519: 7498+6 0634 23 inc hl - 520: 7504+4 0635 A7 and a - 521: 7508+7+5 0636 20FB jr nz, param_80_seek + 506: - 0631 param_81: + 507: 7452+11 0631 E5 push hl + 508: 7463+11 0632 C5 push bc + 509: 7474+16 0633 2A1741 ld hl, (var_opcode_string) + 510: 7490+7 0636 0602 ld b,2 + 511: 7497+12 0638 1807 jr param_80_seek + 512: - 063A param_80: + 513: 7509+11 063A E5 push hl + 514: 7520+11 063B C5 push bc + 515: 7531+16 063C 2A1741 ld hl, (var_opcode_string) + 516: 7547+7 063F 0601 ld b,1 + 517: - 0641 param_80_seek: + 518: 7554+7 0641 7E ld a,(hl) + 519: 7561+6 0642 23 inc hl + 520: 7567+4 0643 A7 and a + 521: 7571+7+5 0644 20FB jr nz, param_80_seek 522: ;found - 523: 7515+4 0638 05 dec b ;found but counter too high - 524: 7519+10 0639 C23306 jp nz, param_80_seek + 523: 7578+4 0646 05 dec b ;found but counter too high + 524: 7582+10 0647 C24106 jp nz, param_80_seek 525: - 526: 7529+17 063C CDB102 call print_str - 527: 7546+10 063F C1 pop bc - 528: 7556+10 0640 E1 pop hl - 529: 7566+10 0641 C9 ret + 526: 7592+17 064A CDBF02 call print_str + 527: 7609+10 064D C1 pop bc + 528: 7619+10 064E E1 pop hl + 529: 7629+10 064F C9 ret 530: 531: 532: - 533: - 0642 param_printRegister: - 534: 7576+11 0642 E5 push hl - 535: 7587+7 0643 FE06 cp 0x06 - 536: 7594+7+5 0645 2811 jr z, param_printRegisterHL - 537: 7601+7 0647 FE07 cp 0x07 - 538: 7608+7+5 0649 2815 jr z, param_printRegisterA - 539: 7615+10 064B 21910E ld hl, [dasm_printRegister8_table] - 540: 7625+7 064E 0600 ld b,0 - 541: 7632+4 0650 4F ld c,a - 542: 7636+11 0651 09 add hl,bc - 543: 7647+7 0652 7E ld a, (hl) - 544: 7654+17 0653 CDA902 call print_char - 545: 7671+10 0656 E1 pop hl - 546: 7681+10 0657 C9 ret + 533: - 0650 param_printRegister: + 534: 7639+11 0650 E5 push hl + 535: 7650+7 0651 FE06 cp 0x06 + 536: 7657+7+5 0653 2811 jr z, param_printRegisterHL + 537: 7664+7 0655 FE07 cp 0x07 + 538: 7671+7+5 0657 2815 jr z, param_printRegisterA + 539: 7678+10 0659 219F0E ld hl, [dasm_printRegister8_table] + 540: 7688+7 065C 0600 ld b,0 + 541: 7695+4 065E 4F ld c,a + 542: 7699+11 065F 09 add hl,bc + 543: 7710+7 0660 7E ld a, (hl) + 544: 7717+17 0661 CDB702 call print_char + 545: 7734+10 0664 E1 pop hl + 546: 7744+10 0665 C9 ret 547: - 548: - 0658 param_printRegisterHL: - 549: 7691+10 0658 21B10E ld hl, [dasm_printRegister8_table_HL] - 550: 7701+17 065B CDB102 call print_str - 551: 7718+10 065E E1 pop hl - 552: 7728+10 065F C9 ret + 548: - 0666 param_printRegisterHL: + 549: 7754+10 0666 21BF0E ld hl, [dasm_printRegister8_table_HL] + 550: 7764+17 0669 CDBF02 call print_str + 551: 7781+10 066C E1 pop hl + 552: 7791+10 066D C9 ret 553: - 554: - 0660 param_printRegisterA: - 555: 7738+7 0660 3E41 ld a,"A" - 556: 7745+17 0662 CDA902 call print_char - 557: 7762+10 0665 E1 pop hl - 558: 7772+10 0666 C9 ret + 554: - 066E param_printRegisterA: + 555: 7801+7 066E 3E41 ld a,"A" + 556: 7808+17 0670 CDB702 call print_char + 557: 7825+10 0673 E1 pop hl + 558: 7835+10 0674 C9 ret 559: 560: - 561: - 0667 param_comma: - 562: 7782+4 0667 78 ld a,b - 563: 7786+7 0668 FE01 cp 1 - 564: 7793+5+6 066A C8 ret z - 565: 7798+7 066B 3E20 ld a," " - 566: 7805+17 066D CDA902 call print_char - 567: 7822+7 0670 3E2C ld a,"," - 568: 7829+17 0672 CDA902 call print_char + 561: - 0675 param_comma: + 562: 7845+4 0675 78 ld a,b + 563: 7849+7 0676 FE01 cp 1 + 564: 7856+5+6 0678 C8 ret z + 565: 7861+7 0679 3E20 ld a," " + 566: 7868+17 067B CDB702 call print_char + 567: 7885+7 067E 3E2C ld a,"," + 568: 7892+17 0680 CDB702 call print_char **** main.asm **** - 477: 7846+10 0675 C9 ret - 478: .include "disassembler_table.s" + 487: 7909+10 0683 C9 ret + 488: .include "disassembler_table.s" **** include/disassembler_table.s **** 1: ;disassembler tables 2: - 3: - 0676 dasm_opcode_table: + 3: - 0684 dasm_opcode_table: 4: ;byte 0 = opcode 5: ;byte 1 = opcode mask 6: ;byte 2 = opcode extended @@ -1356,699 +1362,733 @@ 25: ; 0x13 push/pop register lookup 26: ; 0x80 print string suffix 27: ; 0x81 print string suffix 2 - 28: - 0676 00FF0000 defb 0x00, 0xFF, 0x00, 0x00, 1, [dasm_00], [dasm_00]>>8,0 ;NOP - 01CE0A00 + 28: - 0684 00FF0000 defb 0x00, 0xFF, 0x00, 0x00, 1, [dasm_00], [dasm_00]>>8,0 ;NOP + 01DC0A00 29: ;General-Purpose Arithmetic and CPU Control Groups - 30: - 067E 27FF0000 defb 0x27, 0xFF, 0x00, 0x00, 1, [dasm_27], [dasm_27]>>8, 0 ;DAA - 01990B00 - 31: - 0686 2FFF0000 defb 0x2F, 0xFF, 0x00, 0x00, 1, [dasm_2F], [dasm_2F]>>8, 0 ;CPL - 019D0B00 - 32: - 068E EDFF44FF defb 0xED, 0xFF, 0x44, 0xFF, 2, [dasm_ED_44], [dasm_ED_44]>>8, 0 ;NEG - 02A10B00 - 33: - 0696 3FFF0000 defb 0x3f, 0xFF, 0x00, 0x00, 1, [dasm_3F], [dasm_3F]>>8, 0 ;CCF - 01A50B00 - 34: - 069E 37FF0000 defb 0x37, 0xFF, 0x00, 0x00, 1, [dasm_37], [dasm_37]>>8, 0 ;SCF - 01A90B00 + 30: - 068C 27FF0000 defb 0x27, 0xFF, 0x00, 0x00, 1, [dasm_27], [dasm_27]>>8, 0 ;DAA + 01A70B00 + 31: - 0694 2FFF0000 defb 0x2F, 0xFF, 0x00, 0x00, 1, [dasm_2F], [dasm_2F]>>8, 0 ;CPL + 01AB0B00 + 32: - 069C EDFF44FF defb 0xED, 0xFF, 0x44, 0xFF, 2, [dasm_ED_44], [dasm_ED_44]>>8, 0 ;NEG + 02AF0B00 + 33: - 06A4 3FFF0000 defb 0x3f, 0xFF, 0x00, 0x00, 1, [dasm_3F], [dasm_3F]>>8, 0 ;CCF + 01B30B00 + 34: - 06AC 37FF0000 defb 0x37, 0xFF, 0x00, 0x00, 1, [dasm_37], [dasm_37]>>8, 0 ;SCF + 01B70B00 35: ;defb 0x00, 0xFF, 0x00, 0x00, 1, [dasm_00], [dasm_00]>>8,0 ;NOP -> already at top for performance reasons - 36: - 06A6 76FF0000 defb 0x76, 0xFF, 0x00, 0x00, 1, [dasm_76], [dasm_76]>>8, 0 ;HALT - 01AD0B00 - 37: - 06AE F3FF0000 defb 0xF3, 0xFF, 0x00, 0x00, 1, [dasm_F3], [dasm_F3]>>8, 0 ;DI - 01B20B00 - 38: - 06B6 FBFF0000 defb 0xFB, 0xFF, 0x00, 0x00, 1, [dasm_FB], [dasm_FB]>>8, 0 ;EI - 01B50B00 - 39: - 06BE EDFF46FF defb 0xED, 0xFF, 0x46, 0xFF, 2, [dasm_ED_46], [dasm_ED_46]>>8, 0 ;IM 0 - 02B80B00 - 40: - 06C6 EDFF56FF defb 0xED, 0xFF, 0x56, 0xFF, 2, [dasm_ED_56], [dasm_ED_56]>>8, 0 ;IM 1 - 02BD0B00 - 41: - 06CE EDFF5EFF defb 0xED, 0xFF, 0x5E, 0xFF, 2, [dasm_ED_5E], [dasm_ED_5E]>>8, 0 ;IM 2 - 02C20B00 + 36: - 06B4 76FF0000 defb 0x76, 0xFF, 0x00, 0x00, 1, [dasm_76], [dasm_76]>>8, 0 ;HALT + 01BB0B00 + 37: - 06BC F3FF0000 defb 0xF3, 0xFF, 0x00, 0x00, 1, [dasm_F3], [dasm_F3]>>8, 0 ;DI + 01C00B00 + 38: - 06C4 FBFF0000 defb 0xFB, 0xFF, 0x00, 0x00, 1, [dasm_FB], [dasm_FB]>>8, 0 ;EI + 01C30B00 + 39: - 06CC EDFF46FF defb 0xED, 0xFF, 0x46, 0xFF, 2, [dasm_ED_46], [dasm_ED_46]>>8, 0 ;IM 0 + 02C60B00 + 40: - 06D4 EDFF56FF defb 0xED, 0xFF, 0x56, 0xFF, 2, [dasm_ED_56], [dasm_ED_56]>>8, 0 ;IM 1 + 02CB0B00 + 41: - 06DC EDFF5EFF defb 0xED, 0xFF, 0x5E, 0xFF, 2, [dasm_ED_5E], [dasm_ED_5E]>>8, 0 ;IM 2 + 02D00B00 42: 43: ;Exchange, Block Transfer, and Search Group - 44: - 06D6 EBFF0000 defb 0xEB, 0xFF, 0x00, 0x00, 1, [dasm_BE], [dasm_BE]>>8, 0 ;EX DE, HL - 01C70B00 - 45: - 06DE 08FF0000 defb 0x08, 0xFF, 0x00, 0x00, 1, [dasm_08], [dasm_08]>>8, 0 ;EX AF, AF′ - 01D10B00 - 46: - 06E6 D9FF0000 defb 0xD9, 0xFF, 0x00, 0x00, 1, [dasm_D9], [dasm_D9]>>8, 0 ;EXX - 01DE0B00 - 47: - 06EE E3FF0000 defb 0xE3, 0xFF, 0x00, 0x00, 1, [dasm_E3], [dasm_E3]>>8, 0 ;EX (SP), HL - 01E20B00 - 48: - 06F6 DDFFE3FF defb 0xDD, 0xFF, 0xE3, 0xFF, 2, [dasm_DD_E3], [dasm_DD_E3]>>8, 0 ;EX (SP), IX - 02EE0B00 - 49: - 06FE FDFFE3FF defb 0xFD, 0xFF, 0xE3, 0xFF, 2, [dasm_FD_E3], [dasm_FD_E3]>>8, 0 ;EX (SP), IY - 02FA0B00 - 50: - 0706 EDFFA0FF defb 0xED, 0xFF, 0xA0, 0xFF, 2, [dasm_ED_A0], [dasm_ED_A0]>>8, 0 ;LDI - 02060C00 - 51: - 070E EDFFB0FF defb 0xED, 0xFF, 0xB0, 0xFF, 2, [dasm_ED_B0], [dasm_ED_B0]>>8, 0 ;LDIR - 020A0C00 - 52: - 0716 EDFFA8FF defb 0xED, 0xFF, 0xA8, 0xFF, 2, [dasm_ED_A8], [dasm_ED_A8]>>8, 0 ;LDD - 020F0C00 - 53: - 071E EDFFB8FF defb 0xED, 0xFF, 0xB8, 0xFF, 2, [dasm_ED_B8], [dasm_ED_B8]>>8, 0 ;LDDR - 02130C00 - 54: - 0726 EDFFA1FF defb 0xED, 0xFF, 0xA1, 0xFF, 2, [dasm_ED_A1], [dasm_ED_A1]>>8, 0 ;CPI + 44: - 06E4 EBFF0000 defb 0xEB, 0xFF, 0x00, 0x00, 1, [dasm_BE], [dasm_BE]>>8, 0 ;EX DE, HL + 01D50B00 + 45: - 06EC 08FF0000 defb 0x08, 0xFF, 0x00, 0x00, 1, [dasm_08], [dasm_08]>>8, 0 ;EX AF, AF′ + 01DF0B00 + 46: - 06F4 D9FF0000 defb 0xD9, 0xFF, 0x00, 0x00, 1, [dasm_D9], [dasm_D9]>>8, 0 ;EXX + 01EC0B00 + 47: - 06FC E3FF0000 defb 0xE3, 0xFF, 0x00, 0x00, 1, [dasm_E3], [dasm_E3]>>8, 0 ;EX (SP), HL + 01F00B00 + 48: - 0704 DDFFE3FF defb 0xDD, 0xFF, 0xE3, 0xFF, 2, [dasm_DD_E3], [dasm_DD_E3]>>8, 0 ;EX (SP), IX + 02FC0B00 + 49: - 070C FDFFE3FF defb 0xFD, 0xFF, 0xE3, 0xFF, 2, [dasm_FD_E3], [dasm_FD_E3]>>8, 0 ;EX (SP), IY + 02080C00 + 50: - 0714 EDFFA0FF defb 0xED, 0xFF, 0xA0, 0xFF, 2, [dasm_ED_A0], [dasm_ED_A0]>>8, 0 ;LDI + 02140C00 + 51: - 071C EDFFB0FF defb 0xED, 0xFF, 0xB0, 0xFF, 2, [dasm_ED_B0], [dasm_ED_B0]>>8, 0 ;LDIR 02180C00 - 55: - 072E EDFFB1FF defb 0xED, 0xFF, 0xB1, 0xFF, 2, [dasm_ED_B1], [dasm_ED_B1]>>8, 0 ;CPIR - 021C0C00 - 56: - 0736 EDFFA9FF defb 0xED, 0xFF, 0xA9, 0xFF, 2, [dasm_ED_A9], [dasm_ED_A9]>>8, 0 ;CPD + 52: - 0724 EDFFA8FF defb 0xED, 0xFF, 0xA8, 0xFF, 2, [dasm_ED_A8], [dasm_ED_A8]>>8, 0 ;LDD + 021D0C00 + 53: - 072C EDFFB8FF defb 0xED, 0xFF, 0xB8, 0xFF, 2, [dasm_ED_B8], [dasm_ED_B8]>>8, 0 ;LDDR 02210C00 - 57: - 073E EDFFB9FF defb 0xED, 0xFF, 0xB9, 0xFF, 2, [dasm_ED_B9], [dasm_ED_B9]>>8, 0 ;CPDR - 02250C00 + 54: - 0734 EDFFA1FF defb 0xED, 0xFF, 0xA1, 0xFF, 2, [dasm_ED_A1], [dasm_ED_A1]>>8, 0 ;CPI + 02260C00 + 55: - 073C EDFFB1FF defb 0xED, 0xFF, 0xB1, 0xFF, 2, [dasm_ED_B1], [dasm_ED_B1]>>8, 0 ;CPIR + 022A0C00 + 56: - 0744 EDFFA9FF defb 0xED, 0xFF, 0xA9, 0xFF, 2, [dasm_ED_A9], [dasm_ED_A9]>>8, 0 ;CPD + 022F0C00 + 57: - 074C EDFFB9FF defb 0xED, 0xFF, 0xB9, 0xFF, 2, [dasm_ED_B9], [dasm_ED_B9]>>8, 0 ;CPDR + 02330C00 58: 59: ;JUMP Group - 60: - 0746 C3FF0000 defb 0xC3, 0xFF, 0x00, 0x00, 3, [dasm_C3], [dasm_C3]>>8,1, 0x01 ;JP nn - 03D20A01 + 60: - 0754 C3FF0000 defb 0xC3, 0xFF, 0x00, 0x00, 3, [dasm_C3], [dasm_C3]>>8,1, 0x01 ;JP nn + 03E00A01 01 - 61: - 074F C2C70000 defb 0xC2, 0xC7, 0x00, 0x00, 3, [dasm_C3], [dasm_C3]>>8,3, 0x02, 0x80, 0x01 ;JP cc,nn - 03D20A03 + 61: - 075D C2C70000 defb 0xC2, 0xC7, 0x00, 0x00, 3, [dasm_C3], [dasm_C3]>>8,3, 0x02, 0x80, 0x01 ;JP cc,nn + 03E00A03 028001 - 62: - 075A 18FF0000 defb 0x18, 0xFF, 0x00, 0x00, 2, [dasm_18], [dasm_18]>>8,1, 0x03 ;JR e - 02D90A01 + 62: - 0768 18FF0000 defb 0x18, 0xFF, 0x00, 0x00, 2, [dasm_18], [dasm_18]>>8,1, 0x03 ;JR e + 02E70A01 03 - 63: - 0763 38FF0000 defb 0x38, 0xFF, 0x00, 0x00, 2, [dasm_38], [dasm_38]>>8,1, 0x03 ;JR C,e - 02DD0A01 + 63: - 0771 38FF0000 defb 0x38, 0xFF, 0x00, 0x00, 2, [dasm_38], [dasm_38]>>8,1, 0x03 ;JR C,e + 02EB0A01 03 - 64: - 076C 30FF0000 defb 0x30, 0xFF, 0x00, 0x00, 2, [dasm_30], [dasm_30]>>8,1, 0x03 ;JR NC,e - 02E40A01 + 64: - 077A 30FF0000 defb 0x30, 0xFF, 0x00, 0x00, 2, [dasm_30], [dasm_30]>>8,1, 0x03 ;JR NC,e + 02F20A01 03 - 65: - 0775 28FF0000 defb 0x28, 0xFF, 0x00, 0x00, 2, [dasm_28], [dasm_28]>>8,1, 0x03 ;JR Z,e - 02EC0A01 + 65: - 0783 28FF0000 defb 0x28, 0xFF, 0x00, 0x00, 2, [dasm_28], [dasm_28]>>8,1, 0x03 ;JR Z,e + 02FA0A01 03 - 66: - 077E 20FF0000 defb 0x20, 0xFF, 0x00, 0x00, 2, [dasm_20], [dasm_20]>>8,1, 0x03 ;JR NZ,e - 02F30A01 + 66: - 078C 20FF0000 defb 0x20, 0xFF, 0x00, 0x00, 2, [dasm_20], [dasm_20]>>8,1, 0x03 ;JR NZ,e + 02010B01 03 - 67: - 0787 E9FF0000 defb 0xE9, 0xFF, 0x00, 0x00, 2, [dasm_E9], [dasm_E9]>>8,0 ;JP (HL) - 02FB0A00 - 68: - 078F DDFFE9FF defb 0xDD, 0xFF, 0xE9, 0xFF, 2, [dasm_DD], [dasm_DD]>>8,0 ;JP (IX) - 02040B00 - 69: - 0797 FDFFE9FF defb 0xFD, 0xFF, 0xE9, 0xFF, 2, [dasm_FD], [dasm_FD]>>8,0 ;JP (IY) - 020D0B00 - 70: - 079F 10FF0000 defb 0x10, 0xFF, 0x00, 0x00, 2, [dasm_10], [dasm_10]>>8,1, 0x03 ;DJNZ, e - 02160B01 + 67: - 0795 E9FF0000 defb 0xE9, 0xFF, 0x00, 0x00, 2, [dasm_E9], [dasm_E9]>>8,0 ;JP (HL) + 02090B00 + 68: - 079D DDFFE9FF defb 0xDD, 0xFF, 0xE9, 0xFF, 2, [dasm_DD], [dasm_DD]>>8,0 ;JP (IX) + 02120B00 + 69: - 07A5 FDFFE9FF defb 0xFD, 0xFF, 0xE9, 0xFF, 2, [dasm_FD], [dasm_FD]>>8,0 ;JP (IY) + 021B0B00 + 70: - 07AD 10FF0000 defb 0x10, 0xFF, 0x00, 0x00, 2, [dasm_10], [dasm_10]>>8,1, 0x03 ;DJNZ, e + 02240B01 03 71: ;Call and Return Group - 72: - 07A8 CDFF0000 defb 0xCD, 0xFF, 0x00, 0x00, 3, [dasm_CD], [dasm_CD]>>8,1, 0x01 ;CALL nn - 031C0B01 + 72: - 07B6 CDFF0000 defb 0xCD, 0xFF, 0x00, 0x00, 3, [dasm_CD], [dasm_CD]>>8,1, 0x01 ;CALL nn + 032A0B01 01 - 73: - 07B1 C4C70000 defb 0xC4, 0xC7, 0x00, 0x00, 3, [dasm_CD], [dasm_CD]>>8,2, 0x02, 0x01 ;CALL cc,nn - 031C0B02 + 73: - 07BF C4C70000 defb 0xC4, 0xC7, 0x00, 0x00, 3, [dasm_CD], [dasm_CD]>>8,2, 0x02, 0x01 ;CALL cc,nn + 032A0B02 0201 - 74: - 07BB C9FF0000 defb 0xC9, 0xFF, 0x00, 0x00, 1, [dasm_C9], [dasm_C9]>>8,0 ;RET - 01220B00 - 75: - 07C3 C0C70000 defb 0xC0, 0xC7, 0x00, 0x00, 1, [dasm_C9], [dasm_C9]>>8,1, 0x02 ;RET cc - 01220B01 + 74: - 07C9 C9FF0000 defb 0xC9, 0xFF, 0x00, 0x00, 1, [dasm_C9], [dasm_C9]>>8,0 ;RET + 01300B00 + 75: - 07D1 C0C70000 defb 0xC0, 0xC7, 0x00, 0x00, 1, [dasm_C9], [dasm_C9]>>8,1, 0x02 ;RET cc + 01300B01 02 - 76: - 07CC EDFF4DFF defb 0xED, 0xFF, 0x4D, 0xFF, 2, [dasm_ED_4D], [dasm_ED_4D]>>8,0 ;RETI - 02270B00 - 77: - 07D4 EDFF45FF defb 0xED, 0xFF, 0x45, 0xFF, 2, [dasm_ED_45], [dasm_ED_45]>>8,0 ;RETN - 022C0B00 + 76: - 07DA EDFF4DFF defb 0xED, 0xFF, 0x4D, 0xFF, 2, [dasm_ED_4D], [dasm_ED_4D]>>8,0 ;RETI + 02350B00 + 77: - 07E2 EDFF45FF defb 0xED, 0xFF, 0x45, 0xFF, 2, [dasm_ED_45], [dasm_ED_45]>>8,0 ;RETN + 023A0B00 78: - 79: - 07DC C7C70000 defb 0xC7, 0xC7, 0x00, 0x00, 1, [dasm_FF], [dasm_FF]>>8,1, 0x05 ;RST - 01310B01 + 79: - 07EA C7C70000 defb 0xC7, 0xC7, 0x00, 0x00, 1, [dasm_FF], [dasm_FF]>>8,1, 0x05 ;RST + 013F0B01 05 80: ;8-Bit load group - 81: - 07E5 0AFF0000 defb 0x0A, 0xFF, 0x00, 0x00, 1, [dasm_0A], [dasm_0A]>>8, 0 ;LD A, (BC) - 01360B00 - 82: - 07ED 1AFF0000 defb 0x1A, 0xFF, 0x00, 0x00, 1, [dasm_1A], [dasm_1A]>>8, 0 ;LD A, (DE) - 01400B00 - 83: - 07F5 3AFF0000 defb 0x3A, 0xFF, 0x00, 0x00, 3, [dasm_3A], [dasm_3A]>>8, 2, 0x09, 0x80 ;LD A, (nn) - 034A0B02 + 81: - 07F3 0AFF0000 defb 0x0A, 0xFF, 0x00, 0x00, 1, [dasm_0A], [dasm_0A]>>8, 0 ;LD A, (BC) + 01440B00 + 82: - 07FB 1AFF0000 defb 0x1A, 0xFF, 0x00, 0x00, 1, [dasm_1A], [dasm_1A]>>8, 0 ;LD A, (DE) + 014E0B00 + 83: - 0803 3AFF0000 defb 0x3A, 0xFF, 0x00, 0x00, 3, [dasm_3A], [dasm_3A]>>8, 2, 0x09, 0x80 ;LD A, (nn) + 03580B02 0980 - 84: - 07FF 02FF0000 defb 0x02, 0xFF, 0x00, 0x00, 1, [dasm_02], [dasm_02]>>8, 0 ;LD (BC), A - 01540B00 - 85: - 0807 12FF0000 defb 0x12, 0xFF, 0x00, 0x00, 1, [dasm_12], [dasm_12]>>8, 0 ;LD (DE), A - 015F0B00 - 86: - 080F 32FF0000 defb 0x32, 0xFF, 0x00, 0x00, 3, [dasm_32], [dasm_32]>>8, 2, 0x09, 0x80 ;LD (nn), A - 036A0B02 + 84: - 080D 02FF0000 defb 0x02, 0xFF, 0x00, 0x00, 1, [dasm_02], [dasm_02]>>8, 0 ;LD (BC), A + 01620B00 + 85: - 0815 12FF0000 defb 0x12, 0xFF, 0x00, 0x00, 1, [dasm_12], [dasm_12]>>8, 0 ;LD (DE), A + 016D0B00 + 86: - 081D 32FF0000 defb 0x32, 0xFF, 0x00, 0x00, 3, [dasm_32], [dasm_32]>>8, 2, 0x09, 0x80 ;LD (nn), A + 03780B02 0980 - 87: - 0819 EDFF57FF defb 0xED, 0xFF, 0x57, 0xFF, 2, [dasm__ED_57], [dasm__ED_57]>>8, 0 ;LD A, I - 02790B00 - 88: - 0821 EDFF5FFF defb 0xED, 0xFF, 0x5F, 0xFF, 2, [dasm__ED_5F], [dasm__ED_5F]>>8, 0 ;LD A, R - 02810B00 - 89: - 0829 EDFF47FF defb 0xED, 0xFF, 0x47, 0xFF, 2, [dasm__ED_47], [dasm__ED_47]>>8, 0 ;LD I, A - 02890B00 - 90: - 0831 EDFF4FFF defb 0xED, 0xFF, 0x4F, 0xFF, 2, [dasm__ED_4F], [dasm__ED_4F]>>8, 0 ;LD R, A - 02910B00 + 87: - 0827 EDFF57FF defb 0xED, 0xFF, 0x57, 0xFF, 2, [dasm__ED_57], [dasm__ED_57]>>8, 0 ;LD A, I + 02870B00 + 88: - 082F EDFF5FFF defb 0xED, 0xFF, 0x5F, 0xFF, 2, [dasm__ED_5F], [dasm__ED_5F]>>8, 0 ;LD A, R + 028F0B00 + 89: - 0837 EDFF47FF defb 0xED, 0xFF, 0x47, 0xFF, 2, [dasm__ED_47], [dasm__ED_47]>>8, 0 ;LD I, A + 02970B00 + 90: - 083F EDFF4FFF defb 0xED, 0xFF, 0x4F, 0xFF, 2, [dasm__ED_4F], [dasm__ED_4F]>>8, 0 ;LD R, A + 029F0B00 91: - 92: - 0839 06C70000 defb 0x06, 0xC7, 0x00, 0x00, 2, [dasm__LD], [dasm__LD]>>8, 2, 0x06, 0x08 ;LD r, n - 02750B02 + 92: - 0847 06C70000 defb 0x06, 0xC7, 0x00, 0x00, 2, [dasm__LD], [dasm__LD]>>8, 2, 0x06, 0x08 ;LD r, n + 02830B02 0608 - 93: - 0843 40C00000 defb 0x40, 0xC0, 0x00, 0x00, 1, [dasm__LD], [dasm__LD]>>8, 2, 0x06, 0x07 ;LD r, r' / LD r, (HL) / LD (HL), r - 01750B02 + 93: - 0851 40C00000 defb 0x40, 0xC0, 0x00, 0x00, 1, [dasm__LD], [dasm__LD]>>8, 2, 0x06, 0x07 ;LD r, r' / LD r, (HL) / LD (HL), r + 01830B02 0607 94: 95: ;8-Bit Arithmetic Group - 96: - 084D 80F80000 defb 0x80, 0xF8, 0x00, 0x00, 1, [dasm_80C6], [dasm_80C6]>>8, 1, 0x07 ;ADD A, r / ADD A, (HL) - 012A0C01 + 96: - 085B 80F80000 defb 0x80, 0xF8, 0x00, 0x00, 1, [dasm_80C6], [dasm_80C6]>>8, 1, 0x07 ;ADD A, r / ADD A, (HL) + 01380C01 07 - 97: - 0856 C6FF0000 defb 0xC6, 0xFF, 0x00, 0x00, 2, [dasm_80C6], [dasm_80C6]>>8, 1, 0x08 ;ADD A, n - 022A0C01 + 97: - 0864 C6FF0000 defb 0xC6, 0xFF, 0x00, 0x00, 2, [dasm_80C6], [dasm_80C6]>>8, 1, 0x08 ;ADD A, n + 02380C01 08 - 98: - 085F DDFF86FF defb 0xDD, 0xFF, 0x86, 0xFF, 3, [dasm_DD_86], [dasm_DD_86]>>8, 2, 0x08, 0x80 ;ADD A, (IX + d) - 03320C02 + 98: - 086D DDFF86FF defb 0xDD, 0xFF, 0x86, 0xFF, 3, [dasm_DD_86], [dasm_DD_86]>>8, 2, 0x08, 0x80 ;ADD A, (IX + d) + 03400C02 0880 - 99: - 0869 FDFF86FF defb 0xFD, 0xFF, 0x86, 0xFF, 3, [dasm_FD_86], [dasm_FD_86]>>8, 2, 0x08, 0x80 ;ADD A, (IY + d) - 03410C02 + 99: - 0877 FDFF86FF defb 0xFD, 0xFF, 0x86, 0xFF, 3, [dasm_FD_86], [dasm_FD_86]>>8, 2, 0x08, 0x80 ;ADD A, (IY + d) + 034F0C02 0880 - 100: - 0873 C8F80000 defb 0xC8, 0xF8, 0x00, 0x00, 1, [dasm_C88E], [dasm_C88E]>>8, 1, 0x07 ;ADC A, r / ADC A, (HL) - 01500C01 + 100: - 0881 C8F80000 defb 0xC8, 0xF8, 0x00, 0x00, 1, [dasm_C88E], [dasm_C88E]>>8, 1, 0x07 ;ADC A, r / ADC A, (HL) + 015E0C01 07 - 101: - 087C 8EF80000 defb 0x8E, 0xF8, 0x00, 0x00, 2, [dasm_C88E], [dasm_C88E]>>8, 1, 0x08 ;ADC A, n - 02500C01 + 101: - 088A 8EF80000 defb 0x8E, 0xF8, 0x00, 0x00, 2, [dasm_C88E], [dasm_C88E]>>8, 1, 0x08 ;ADC A, n + 025E0C01 08 - 102: - 0885 DDFF8EFF defb 0xDD, 0xFF, 0x8E, 0xFF, 3, [dasm_DD_8E], [dasm_DD_8E]>>8, 2, 0x08, 0x80 ;ADC A, (IX + d) - 03580C02 + 102: - 0893 DDFF8EFF defb 0xDD, 0xFF, 0x8E, 0xFF, 3, [dasm_DD_8E], [dasm_DD_8E]>>8, 2, 0x08, 0x80 ;ADC A, (IX + d) + 03660C02 0880 - 103: - 088F FDFF8EFF defb 0xFD, 0xFF, 0x8E, 0xFF, 3, [dasm_FD_8E], [dasm_FD_8E]>>8, 2, 0x08, 0x80 ;ADC A, (IY + d) - 03670C02 + 103: - 089D FDFF8EFF defb 0xFD, 0xFF, 0x8E, 0xFF, 3, [dasm_FD_8E], [dasm_FD_8E]>>8, 2, 0x08, 0x80 ;ADC A, (IY + d) + 03750C02 0880 - 104: - 0899 90F80000 defb 0x90, 0xF8, 0x00, 0x00, 1, [dasm__SUB], [dasm__SUB]>>8, 1, 0x07 ;SUB r / SUB A, (HL) - 01760C01 + 104: - 08A7 90F80000 defb 0x90, 0xF8, 0x00, 0x00, 1, [dasm__SUB], [dasm__SUB]>>8, 1, 0x07 ;SUB r / SUB A, (HL) + 01840C01 07 - 105: - 08A2 D6FF0000 defb 0xD6, 0xFF, 0x00, 0x00, 2, [dasm__SUB], [dasm__SUB]>>8, 1, 0x08 ;SUB n - 02760C01 + 105: - 08B0 D6FF0000 defb 0xD6, 0xFF, 0x00, 0x00, 2, [dasm__SUB], [dasm__SUB]>>8, 1, 0x08 ;SUB n + 02840C01 08 - 106: - 08AB DDFF96FF defb 0xDD, 0xFF, 0x96, 0xFF, 3, [dasm_DD_96], [dasm_DD_96]>>8, 2, 0x08, 0x80 ;SUB (IX + d) - 037B0C02 + 106: - 08B9 DDFF96FF defb 0xDD, 0xFF, 0x96, 0xFF, 3, [dasm_DD_96], [dasm_DD_96]>>8, 2, 0x08, 0x80 ;SUB (IX + d) + 03890C02 0880 - 107: - 08B5 FDFF96FF defb 0xFD, 0xFF, 0x96, 0xFF, 3, [dasm_FD_96], [dasm_FD_96]>>8, 2, 0x08, 0x80 ;SUB (IY + d) - 03870C02 + 107: - 08C3 FDFF96FF defb 0xFD, 0xFF, 0x96, 0xFF, 3, [dasm_FD_96], [dasm_FD_96]>>8, 2, 0x08, 0x80 ;SUB (IY + d) + 03950C02 0880 - 108: - 08BF 94F80000 defb 0x94, 0xF8, 0x00, 0x00, 1, [dasm__SBC], [dasm__SBC]>>8, 1, 0x07 ;SBC A,r / SBC A, (HL) - 01930C01 + 108: - 08CD 94F80000 defb 0x94, 0xF8, 0x00, 0x00, 1, [dasm__SBC], [dasm__SBC]>>8, 1, 0x07 ;SBC A,r / SBC A, (HL) + 01A10C01 07 - 109: - 08C8 DEFF0000 defb 0xDE, 0xFF, 0x00, 0x00, 2, [dasm__SBC], [dasm__SBC]>>8, 1, 0x08 ;SBC A,n - 02930C01 + 109: - 08D6 DEFF0000 defb 0xDE, 0xFF, 0x00, 0x00, 2, [dasm__SBC], [dasm__SBC]>>8, 1, 0x08 ;SBC A,n + 02A10C01 08 - 110: - 08D1 DDFF9EFF defb 0xDD, 0xFF, 0x9E, 0xFF, 3, [dasm_DD_9E], [dasm_DD_9E]>>8, 2, 0x08, 0x80 ;SBC A,(IX + d) - 039B0C02 - 0880 - 111: - 08DB FDFF9EFF defb 0xFD, 0xFF, 0x9E, 0xFF, 3, [dasm_FD_9E], [dasm_FD_9E]>>8, 2, 0x08, 0x80 ;SBC A,(IY + d) + 110: - 08DF DDFF9EFF defb 0xDD, 0xFF, 0x9E, 0xFF, 3, [dasm_DD_9E], [dasm_DD_9E]>>8, 2, 0x08, 0x80 ;SBC A,(IX + d) 03A90C02 0880 - 112: - 08E5 A0F80000 defb 0xA0, 0xF8, 0x00, 0x00, 1, [dasm__AND], [dasm__AND]>>8, 1, 0x07 ;AND A,r / AND A, (HL) - 01B70C01 + 111: - 08E9 FDFF9EFF defb 0xFD, 0xFF, 0x9E, 0xFF, 3, [dasm_FD_9E], [dasm_FD_9E]>>8, 2, 0x08, 0x80 ;SBC A,(IY + d) + 03B70C02 + 0880 + 112: - 08F3 A0F80000 defb 0xA0, 0xF8, 0x00, 0x00, 1, [dasm__AND], [dasm__AND]>>8, 1, 0x07 ;AND A,r / AND A, (HL) + 01C50C01 07 - 113: - 08EE E6FF0000 defb 0xE6, 0xFF, 0x00, 0x00, 2, [dasm__AND], [dasm__AND]>>8, 1, 0x08 ;AND A,n - 02B70C01 + 113: - 08FC E6FF0000 defb 0xE6, 0xFF, 0x00, 0x00, 2, [dasm__AND], [dasm__AND]>>8, 1, 0x08 ;AND A,n + 02C50C01 08 - 114: - 08F7 DDFFA6FF defb 0xDD, 0xFF, 0xA6, 0xFF, 3, [dasm_DD_A6], [dasm_DD_A6]>>8, 2, 0x08, 0x80 ;AND A,(IX + d) - 03BC0C02 + 114: - 0905 DDFFA6FF defb 0xDD, 0xFF, 0xA6, 0xFF, 3, [dasm_DD_A6], [dasm_DD_A6]>>8, 2, 0x08, 0x80 ;AND A,(IX + d) + 03CA0C02 0880 - 115: - 0901 FDFFA6FF defb 0xFD, 0xFF, 0xA6, 0xFF, 3, [dasm_FD_A6], [dasm_FD_A6]>>8, 2, 0x08, 0x80 ;AND A,(IY + d) - 03C80C02 + 115: - 090F FDFFA6FF defb 0xFD, 0xFF, 0xA6, 0xFF, 3, [dasm_FD_A6], [dasm_FD_A6]>>8, 2, 0x08, 0x80 ;AND A,(IY + d) + 03D60C02 0880 - 116: - 090B B0F80000 defb 0xB0, 0xF8, 0x00, 0x00, 1, [dasm__OR], [dasm__OR]>>8, 1, 0x07 ;OR A,r / OR A, (HL) - 01D40C01 + 116: - 0919 B0F80000 defb 0xB0, 0xF8, 0x00, 0x00, 1, [dasm__OR], [dasm__OR]>>8, 1, 0x07 ;OR A,r / OR A, (HL) + 01E20C01 07 - 117: - 0914 F6FF0000 defb 0xF6, 0xFF, 0x00, 0x00, 2, [dasm__OR], [dasm__OR]>>8, 1, 0x08 ;OR A,n - 02D40C01 + 117: - 0922 F6FF0000 defb 0xF6, 0xFF, 0x00, 0x00, 2, [dasm__OR], [dasm__OR]>>8, 1, 0x08 ;OR A,n + 02E20C01 08 - 118: - 091D DDFFB6FF defb 0xDD, 0xFF, 0xB6, 0xFF, 3, [dasm_DD_B6], [dasm_DD_B6]>>8, 2, 0x08, 0x80 ;OR A,(IX + d) - 03D80C02 + 118: - 092B DDFFB6FF defb 0xDD, 0xFF, 0xB6, 0xFF, 3, [dasm_DD_B6], [dasm_DD_B6]>>8, 2, 0x08, 0x80 ;OR A,(IX + d) + 03E60C02 0880 - 119: - 0927 FDFFB6FF defb 0xFD, 0xFF, 0xB6, 0xFF, 3, [dasm_FD_B6], [dasm_FD_B6]>>8, 2, 0x08, 0x80 ;OR A,(IY + d) - 03E30C02 + 119: - 0935 FDFFB6FF defb 0xFD, 0xFF, 0xB6, 0xFF, 3, [dasm_FD_B6], [dasm_FD_B6]>>8, 2, 0x08, 0x80 ;OR A,(IY + d) + 03F10C02 0880 - 120: - 0931 A8F80000 defb 0xA8, 0xF8, 0x00, 0x00, 1, [dasm__XOR], [dasm__XOR]>>8, 1, 0x07 ;XOR A,r / XOR A, (HL) - 01EE0C01 + 120: - 093F A8F80000 defb 0xA8, 0xF8, 0x00, 0x00, 1, [dasm__XOR], [dasm__XOR]>>8, 1, 0x07 ;XOR A,r / XOR A, (HL) + 01FC0C01 07 - 121: - 093A EEFF0000 defb 0xEE, 0xFF, 0x00, 0x00, 2, [dasm__XOR], [dasm__XOR]>>8, 1, 0x08 ;XOR A,n - 02EE0C01 + 121: - 0948 EEFF0000 defb 0xEE, 0xFF, 0x00, 0x00, 2, [dasm__XOR], [dasm__XOR]>>8, 1, 0x08 ;XOR A,n + 02FC0C01 08 - 122: - 0943 DDFFAEFF defb 0xDD, 0xFF, 0xAE, 0xFF, 3, [dasm_DD_AE], [dasm_DD_AE]>>8, 2, 0x08, 0x80 ;XOR A,(IX + d) - 03F30C02 + 122: - 0951 DDFFAEFF defb 0xDD, 0xFF, 0xAE, 0xFF, 3, [dasm_DD_AE], [dasm_DD_AE]>>8, 2, 0x08, 0x80 ;XOR A,(IX + d) + 03010D02 0880 - 123: - 094D FDFFAEFF defb 0xFD, 0xFF, 0xAE, 0xFF, 3, [dasm_FD_AE], [dasm_FD_AE]>>8, 2, 0x08, 0x80 ;XOR A,(IY + d) - 03FF0C02 + 123: - 095B FDFFAEFF defb 0xFD, 0xFF, 0xAE, 0xFF, 3, [dasm_FD_AE], [dasm_FD_AE]>>8, 2, 0x08, 0x80 ;XOR A,(IY + d) + 030D0D02 0880 - 124: - 0957 B8F80000 defb 0xB8, 0xF8, 0x00, 0x00, 1, [dasm__CP], [dasm__CP]>>8, 1, 0x07 ;CP A,r / CP A, (HL) - 010B0D01 + 124: - 0965 B8F80000 defb 0xB8, 0xF8, 0x00, 0x00, 1, [dasm__CP], [dasm__CP]>>8, 1, 0x07 ;CP A,r / CP A, (HL) + 01190D01 07 - 125: - 0960 FEFF0000 defb 0xFE, 0xFF, 0x00, 0x00, 2, [dasm__CP], [dasm__CP]>>8, 1, 0x08 ;CP A,n - 020B0D01 + 125: - 096E FEFF0000 defb 0xFE, 0xFF, 0x00, 0x00, 2, [dasm__CP], [dasm__CP]>>8, 1, 0x08 ;CP A,n + 02190D01 08 - 126: - 0969 DDFFBEFF defb 0xDD, 0xFF, 0xBE, 0xFF, 3, [dasm_DD_BE], [dasm_DD_BE]>>8, 2, 0x08, 0x80 ;CP A,(IX + d) - 030F0D02 + 126: - 0977 DDFFBEFF defb 0xDD, 0xFF, 0xBE, 0xFF, 3, [dasm_DD_BE], [dasm_DD_BE]>>8, 2, 0x08, 0x80 ;CP A,(IX + d) + 031D0D02 0880 - 127: - 0973 FDFFBEFF defb 0xFD, 0xFF, 0xBE, 0xFF, 3, [dasm_FD_BE], [dasm_FD_BE]>>8, 2, 0x08, 0x80 ;CP A,(IY + d) - 031A0D02 + 127: - 0981 FDFFBEFF defb 0xFD, 0xFF, 0xBE, 0xFF, 3, [dasm_FD_BE], [dasm_FD_BE]>>8, 2, 0x08, 0x80 ;CP A,(IY + d) + 03280D02 0880 - 128: - 097D 04C70000 defb 0x04, 0xC7, 0x00, 0x00, 1, [dasm__INC], [dasm__INC]>>8, 1, 0x10 ;INC r / INC (HL) - 01250D01 + 128: - 098B 04C70000 defb 0x04, 0xC7, 0x00, 0x00, 1, [dasm__INC], [dasm__INC]>>8, 1, 0x10 ;INC r / INC (HL) + 01330D01 10 - 129: - 0986 DDFF34FF defb 0xDD, 0xFF, 0x34, 0xFF, 3, [dasm_DD_34], [dasm_DD_34]>>8, 2, 0x08, 0x80 ;INC (IX + d) - 032A0D02 + 129: - 0994 DDFF34FF defb 0xDD, 0xFF, 0x34, 0xFF, 3, [dasm_DD_34], [dasm_DD_34]>>8, 2, 0x08, 0x80 ;INC (IX + d) + 03380D02 0880 - 130: - 0990 FDFF34FF defb 0xFD, 0xFF, 0x34, 0xFF, 3, [dasm_FD_34], [dasm_FD_34]>>8, 2, 0x08, 0x80 ;INC (IY + d) - 03360D02 + 130: - 099E FDFF34FF defb 0xFD, 0xFF, 0x34, 0xFF, 3, [dasm_FD_34], [dasm_FD_34]>>8, 2, 0x08, 0x80 ;INC (IY + d) + 03440D02 0880 - 131: - 099A 05C70000 defb 0x05, 0xC7, 0x00, 0x00, 1, [dasm__DEC], [dasm__DEC]>>8, 1, 0x10 ;DEC r / DEC (HL) - 01420D01 + 131: - 09A8 05C70000 defb 0x05, 0xC7, 0x00, 0x00, 1, [dasm__DEC], [dasm__DEC]>>8, 1, 0x10 ;DEC r / DEC (HL) + 01500D01 10 - 132: - 09A3 DDFF35FF defb 0xDD, 0xFF, 0x35, 0xFF, 3, [dasm_DD_35], [dasm_DD_35]>>8, 2, 0x08, 0x80 ;DEC (IX + d) - 03470D02 + 132: - 09B1 DDFF35FF defb 0xDD, 0xFF, 0x35, 0xFF, 3, [dasm_DD_35], [dasm_DD_35]>>8, 2, 0x08, 0x80 ;DEC (IX + d) + 03550D02 0880 - 133: - 09AD FDFF35FF defb 0xFD, 0xFF, 0x35, 0xFF, 3, [dasm_FD_35], [dasm_FD_35]>>8, 2, 0x08, 0x80 ;DEC (IY + d) - 03530D02 + 133: - 09BB FDFF35FF defb 0xFD, 0xFF, 0x35, 0xFF, 3, [dasm_FD_35], [dasm_FD_35]>>8, 2, 0x08, 0x80 ;DEC (IY + d) + 03610D02 0880 134: ;16-Bit Arithmetic Group - 135: - 09B7 09CF0000 defb 0x09, 0xCF, 0x00, 0x00, 1, [dasm_09], [dasm_09]>>8, 1, 0x11 ;ADD HL, ss - 015F0D01 + 135: - 09C5 09CF0000 defb 0x09, 0xCF, 0x00, 0x00, 1, [dasm_09], [dasm_09]>>8, 1, 0x11 ;ADD HL, ss + 016D0D01 11 - 136: - 09C0 EDFF4ACF defb 0xED, 0xFF, 0x4A, 0xCF, 2, [dasm_ED_4A], [dasm_ED_4A]>>8, 1, 0x12 ;ADC HL, ss - 02680D01 + 136: - 09CE EDFF4ACF defb 0xED, 0xFF, 0x4A, 0xCF, 2, [dasm_ED_4A], [dasm_ED_4A]>>8, 1, 0x12 ;ADC HL, ss + 02760D01 12 - 137: - 09C9 EDFF42CF defb 0xED, 0xFF, 0x42, 0xCF, 2, [dasm_ED_42], [dasm_ED_42]>>8, 1, 0x12 ;SBC HL, ss - 02710D01 + 137: - 09D7 EDFF42CF defb 0xED, 0xFF, 0x42, 0xCF, 2, [dasm_ED_42], [dasm_ED_42]>>8, 1, 0x12 ;SBC HL, ss + 027F0D01 12 - 138: - 09D2 DDFF09CF defb 0xDD, 0xFF, 0x09, 0xCF, 2, [dasm_DD_09], [dasm_DD_09]>>8, 1, 0x12 ;ADD IX, ss - 027A0D01 + 138: - 09E0 DDFF09CF defb 0xDD, 0xFF, 0x09, 0xCF, 2, [dasm_DD_09], [dasm_DD_09]>>8, 1, 0x12 ;ADD IX, ss + 02880D01 12 - 139: - 09DB FDFF09CF defb 0xFD, 0xFF, 0x09, 0xCF, 2, [dasm_FD_09], [dasm_FD_09]>>8, 1, 0x12 ;ADD IY, ss - 02830D01 + 139: - 09E9 FDFF09CF defb 0xFD, 0xFF, 0x09, 0xCF, 2, [dasm_FD_09], [dasm_FD_09]>>8, 1, 0x12 ;ADD IY, ss + 02910D01 12 - 140: - 09E4 03CF0000 defb 0x03, 0xCF, 0x00, 0x00, 1, [dasm_03], [dasm_03]>>8, 1, 0x11 ;INC ss - 018C0D01 + 140: - 09F2 03CF0000 defb 0x03, 0xCF, 0x00, 0x00, 1, [dasm_03], [dasm_03]>>8, 1, 0x11 ;INC ss + 019A0D01 11 - 141: - 09ED DDFF23FF defb 0xDD, 0xFF, 0x23, 0xFF, 2, [dasm_DD_23], [dasm_DD_23]>>8, 0 ;INC IX - 02910D00 - 142: - 09F5 FDFF23FF defb 0xFD, 0xFF, 0x23, 0xFF, 2, [dasm_FD_23], [dasm_FD_23]>>8, 0 ;INC IY - 029A0D00 - 143: - 09FD 0BCF0000 defb 0x0B, 0xCF, 0x00, 0x00, 1, [dasm_0B], [dasm_0B]>>8, 1, 0x11 ;DEC ss - 01A30D01 - 11 - 144: - 0A06 DDFF2BFF defb 0xDD, 0xFF, 0x2B, 0xFF, 2, [dasm_DD_2B], [dasm_DD_2B]>>8, 0 ;DEC IX + 141: - 09FB DDFF23FF defb 0xDD, 0xFF, 0x23, 0xFF, 2, [dasm_DD_23], [dasm_DD_23]>>8, 0 ;INC IX + 029F0D00 + 142: - 0A03 FDFF23FF defb 0xFD, 0xFF, 0x23, 0xFF, 2, [dasm_FD_23], [dasm_FD_23]>>8, 0 ;INC IY 02A80D00 - 145: - 0A0E FDFF2BFF defb 0xFD, 0xFF, 0x2B, 0xFF, 2, [dasm_FD_2B], [dasm_FD_2B]>>8, 0 ;DEC IY - 02B10D00 + 143: - 0A0B 0BCF0000 defb 0x0B, 0xCF, 0x00, 0x00, 1, [dasm_0B], [dasm_0B]>>8, 1, 0x11 ;DEC ss + 01B10D01 + 11 + 144: - 0A14 DDFF2BFF defb 0xDD, 0xFF, 0x2B, 0xFF, 2, [dasm_DD_2B], [dasm_DD_2B]>>8, 0 ;DEC IX + 02B60D00 + 145: - 0A1C FDFF2BFF defb 0xFD, 0xFF, 0x2B, 0xFF, 2, [dasm_FD_2B], [dasm_FD_2B]>>8, 0 ;DEC IY + 02BF0D00 146: ;16-Bit Load Group - 147: - 0A16 01CF0000 defb 0x01, 0xCF, 0x00, 0x00, 3, [dasm_01], [dasm_01]>>8, 3, 0x11, 0x80, 0x09 ;LD dd, nn - 03BA0D03 + 147: - 0A24 01CF0000 defb 0x01, 0xCF, 0x00, 0x00, 3, [dasm_01], [dasm_01]>>8, 3, 0x11, 0x80, 0x09 ;LD dd, nn + 03C80D03 118009 - 148: - 0A21 DDFF21FF defb 0xDD, 0xFF, 0x21, 0xFF, 4, [dasm_DD_01], [dasm_DD_01]>>8, 1, 0x0A ;LD IX, nn - 04C10D01 + 148: - 0A2F DDFF21FF defb 0xDD, 0xFF, 0x21, 0xFF, 4, [dasm_DD_01], [dasm_DD_01]>>8, 1, 0x0A ;LD IX, nn + 04CF0D01 0A - 149: - 0A2A FDFF21FF defb 0xFD, 0xFF, 0x21, 0xFF, 4, [dasm_FD_01], [dasm_FD_01]>>8, 1, 0x0A ;LD IY, nn - 04C90D01 + 149: - 0A38 FDFF21FF defb 0xFD, 0xFF, 0x21, 0xFF, 4, [dasm_FD_01], [dasm_FD_01]>>8, 1, 0x0A ;LD IY, nn + 04D70D01 0A - 150: - 0A33 2AFF0000 defb 0x2A, 0xFF, 0x00, 0x00, 3, [dasm_2A], [dasm_2A]>>8, 2, 0x09, 0x80 ;LD HL, (nn) - 03D10D02 + 150: - 0A41 2AFF0000 defb 0x2A, 0xFF, 0x00, 0x00, 3, [dasm_2A], [dasm_2A]>>8, 2, 0x09, 0x80 ;LD HL, (nn) + 03DF0D02 0980 - 151: - 0A3D EDFF4BCF defb 0xED, 0xFF, 0x4B, 0xCF, 4, [dasm_ED_4B], [dasm_ED_4B]>>8, 4, 0x12, 0x80, 0x0A, 0x81 ;LD dd, (nn) - 04DD0D04 + 151: - 0A4B EDFF4BCF defb 0xED, 0xFF, 0x4B, 0xCF, 4, [dasm_ED_4B], [dasm_ED_4B]>>8, 4, 0x12, 0x80, 0x0A, 0x81 ;LD dd, (nn) + 04EB0D04 12800A81 - 152: - 0A49 DDFF2AFF defb 0xDD, 0xFF, 0x2A, 0xFF, 4, [dasm_DD_2A], [dasm_DD_2A]>>8, 1, 0x0A ;LD IX, (nn) - 04E80D01 + 152: - 0A57 DDFF2AFF defb 0xDD, 0xFF, 0x2A, 0xFF, 4, [dasm_DD_2A], [dasm_DD_2A]>>8, 1, 0x0A ;LD IX, (nn) + 04F60D01 0A - 153: - 0A52 FDFF2AFF defb 0xFD, 0xFF, 0x2A, 0xFF, 4, [dasm_FD_2A], [dasm_FD_2A]>>8, 1, 0x0A ;LD IY, (nn) - 04F40D01 + 153: - 0A60 FDFF2AFF defb 0xFD, 0xFF, 0x2A, 0xFF, 4, [dasm_FD_2A], [dasm_FD_2A]>>8, 1, 0x0A ;LD IY, (nn) + 04020E01 0A - 154: - 0A5B 22FF0000 defb 0x22, 0xFF, 0x00, 0x00, 3, [dasm_22], [dasm_22]>>8, 2, 0x0A, 0x80 ;LD (nn), HL - 03000E02 + 154: - 0A69 22FF0000 defb 0x22, 0xFF, 0x00, 0x00, 3, [dasm_22], [dasm_22]>>8, 2, 0x0A, 0x80 ;LD (nn), HL + 030E0E02 0A80 - 155: - 0A65 EDFF43CF defb 0xED, 0xFF, 0x43, 0xCF, 4, [dasm_ED_43], [dasm_ED_43]>>8, 3, 0x0A, 0x80, 0x12 ;LD (nn), dd - 040C0E03 + 155: - 0A73 EDFF43CF defb 0xED, 0xFF, 0x43, 0xCF, 4, [dasm_ED_43], [dasm_ED_43]>>8, 3, 0x0A, 0x80, 0x12 ;LD (nn), dd + 041A0E03 0A8012 - 156: - 0A70 DDFF22CF defb 0xDD, 0xFF, 0x22, 0xCF, 4, [dasm_DD_22], [dasm_DD_22]>>8, 2, 0x0A, 0x80 ;LD (nn), IX - 04160E02 + 156: - 0A7E DDFF22CF defb 0xDD, 0xFF, 0x22, 0xCF, 4, [dasm_DD_22], [dasm_DD_22]>>8, 2, 0x0A, 0x80 ;LD (nn), IX + 04240E02 0A80 - 157: - 0A7A FDFF22CF defb 0xFD, 0xFF, 0x22, 0xCF, 4, [dasm_FD_22], [dasm_FD_22]>>8, 2, 0x0A, 0x80 ;LD (nn), IY - 04220E02 + 157: - 0A88 FDFF22CF defb 0xFD, 0xFF, 0x22, 0xCF, 4, [dasm_FD_22], [dasm_FD_22]>>8, 2, 0x0A, 0x80 ;LD (nn), IY + 04300E02 0A80 - 158: - 0A84 F9FF0000 defb 0xF9, 0xFF, 0x00, 0x00, 1, [dasm_F9], [dasm_F9]>>8, 0 ;LD SP, HL - 012E0E00 - 159: - 0A8C DDFFF9FF defb 0xDD, 0xFF, 0xF9, 0xFF, 2, [dasm_DD_F9], [dasm_DD_F9]>>8, 0 ;LD SP, IX - 02380E00 - 160: - 0A94 FDFFF9FF defb 0xFD, 0xFF, 0xF9, 0xFF, 2, [dasm_FD_F9], [dasm_FD_F9]>>8, 0 ;LD SP, IY - 02420E00 - 161: - 0A9C C5CF0000 defb 0xC5, 0xCF, 0x00, 0x00, 1, [dasm_E5], [dasm_E5]>>8, 1, 0x13 ;PUSH qq - 014C0E01 + 158: - 0A92 F9FF0000 defb 0xF9, 0xFF, 0x00, 0x00, 1, [dasm_F9], [dasm_F9]>>8, 0 ;LD SP, HL + 013C0E00 + 159: - 0A9A DDFFF9FF defb 0xDD, 0xFF, 0xF9, 0xFF, 2, [dasm_DD_F9], [dasm_DD_F9]>>8, 0 ;LD SP, IX + 02460E00 + 160: - 0AA2 FDFFF9FF defb 0xFD, 0xFF, 0xF9, 0xFF, 2, [dasm_FD_F9], [dasm_FD_F9]>>8, 0 ;LD SP, IY + 02500E00 + 161: - 0AAA C5CF0000 defb 0xC5, 0xCF, 0x00, 0x00, 1, [dasm_E5], [dasm_E5]>>8, 1, 0x13 ;PUSH qq + 015A0E01 13 - 162: - 0AA5 DDFFE5FF defb 0xDD, 0xFF, 0xE5, 0xFF, 2, [dasm_DD_E5], [dasm_DD_E5]>>8, 0 ;PUSH IX - 02520E00 - 163: - 0AAD FDFFE5FF defb 0xFD, 0xFF, 0xE5, 0xFF, 2, [dasm_FD_E5], [dasm_FD_E5]>>8, 0 ;PUSH IY - 025A0E00 - 164: - 0AB5 C1CF0000 defb 0xC1, 0xCF, 0x00, 0x00, 1, [dasm_E1], [dasm_E1]>>8, 1, 0x13 ;POP qq - 01620E01 - 13 - 165: - 0ABE DDFFE1FF defb 0xDD, 0xFF, 0xE1, 0xFF, 2, [dasm_DD_E1], [dasm_DD_E1]>>8, 0 ;POP IX + 162: - 0AB3 DDFFE5FF defb 0xDD, 0xFF, 0xE5, 0xFF, 2, [dasm_DD_E5], [dasm_DD_E5]>>8, 0 ;PUSH IX + 02600E00 + 163: - 0ABB FDFFE5FF defb 0xFD, 0xFF, 0xE5, 0xFF, 2, [dasm_FD_E5], [dasm_FD_E5]>>8, 0 ;PUSH IY 02680E00 - 166: - 0AC6 FDFFE1FF defb 0xFD, 0xFF, 0xE1, 0xFF, 2, [dasm_FD_E1], [dasm_FD_E1]>>8, 0 ;POP IY - 02700E00 + 164: - 0AC3 C1CF0000 defb 0xC1, 0xCF, 0x00, 0x00, 1, [dasm_E1], [dasm_E1]>>8, 1, 0x13 ;POP qq + 01700E01 + 13 + 165: - 0ACC DDFFE1FF defb 0xDD, 0xFF, 0xE1, 0xFF, 2, [dasm_DD_E1], [dasm_DD_E1]>>8, 0 ;POP IX + 02760E00 + 166: - 0AD4 FDFFE1FF defb 0xFD, 0xFF, 0xE1, 0xFF, 2, [dasm_FD_E1], [dasm_FD_E1]>>8, 0 ;POP IY + 027E0E00 167: 168: - 169: - 0ACE 4E4F5000 dasm_00: db "NOP",0x00 + 169: - 0ADC 4E4F5000 dasm_00: db "NOP",0x00 170: ;JUMP Group - 171: - 0AD2 4A502000 dasm_C3: db "JP ",0x00,", ",0x00 + 171: - 0AE0 4A502000 dasm_C3: db "JP ",0x00,", ",0x00 2C2000 - 172: - 0AD9 4A522000 dasm_18: db "JR ",0x00 - 173: - 0ADD 4A522043 dasm_38: db "JR C, ",0x00 + 172: - 0AE7 4A522000 dasm_18: db "JR ",0x00 + 173: - 0AEB 4A522043 dasm_38: db "JR C, ",0x00 2C2000 - 174: - 0AE4 4A52204E dasm_30: db "JR NC, ",0x00 + 174: - 0AF2 4A52204E dasm_30: db "JR NC, ",0x00 432C2000 - 175: - 0AEC 4A52205A dasm_28: db "JR Z, ",0x00 + 175: - 0AFA 4A52205A dasm_28: db "JR Z, ",0x00 2C2000 - 176: - 0AF3 4A52204E dasm_20: db "JR NZ, ",0x00 + 176: - 0B01 4A52204E dasm_20: db "JR NZ, ",0x00 5A2C2000 - 177: - 0AFB 4A502028 dasm_E9: db "JP (HL) ",0x00 + 177: - 0B09 4A502028 dasm_E9: db "JP (HL) ",0x00 484C2920 00 - 178: - 0B04 4A502028 dasm_DD: db "JP (IX) ",0x00 + 178: - 0B12 4A502028 dasm_DD: db "JP (IX) ",0x00 49582920 00 - 179: - 0B0D 4A502028 dasm_FD: db "JP (IY) ",0x00 + 179: - 0B1B 4A502028 dasm_FD: db "JP (IY) ",0x00 49592920 00 - 180: - 0B16 444A4E5A dasm_10: db "DJNZ ",0x00 + 180: - 0B24 444A4E5A dasm_10: db "DJNZ ",0x00 2000 181: ;Call and Return Group - 182: - 0B1C 43414C4C dasm_CD: db "CALL ",0x00 + 182: - 0B2A 43414C4C dasm_CD: db "CALL ",0x00 2000 - 183: - 0B22 52455420 dasm_C9: db "RET ",0x00 + 183: - 0B30 52455420 dasm_C9: db "RET ",0x00 00 - 184: - 0B27 52455449 dasm_ED_4D: db "RETI",0x00 + 184: - 0B35 52455449 dasm_ED_4D: db "RETI",0x00 00 - 185: - 0B2C 5245544E dasm_ED_45: db "RETN",0x00 + 185: - 0B3A 5245544E dasm_ED_45: db "RETN",0x00 00 - 186: - 0B31 52535420 dasm_FF: db "RST ",0x00 + 186: - 0B3F 52535420 dasm_FF: db "RST ",0x00 00 187: ;8-Bit load group - 188: - 0B36 4C442041 dasm_0A: db "LD A,(BC)",0x00 + 188: - 0B44 4C442041 dasm_0A: db "LD A,(BC)",0x00 2C284243 2900 - 189: - 0B40 4C442041 dasm_1A: db "LD A,(DE)",0x00 + 189: - 0B4E 4C442041 dasm_1A: db "LD A,(DE)",0x00 2C284445 2900 - 190: - 0B4A 4C442041 dasm_3A: db "LD A,(",0x00, "h)",0x00 + 190: - 0B58 4C442041 dasm_3A: db "LD A,(",0x00, "h)",0x00 2C280068 2900 - 191: - 0B54 4C442028 dasm_02: db "LD (BC), A",0x00 + 191: - 0B62 4C442028 dasm_02: db "LD (BC), A",0x00 4243292C 204100 - 192: - 0B5F 4C442028 dasm_12: db "LD (DE), A",0x00 + 192: - 0B6D 4C442028 dasm_12: db "LD (DE), A",0x00 4445292C 204100 - 193: - 0B6A 4C442028 dasm_32: db "LD (",0x00, "h), A",0x00 + 193: - 0B78 4C442028 dasm_32: db "LD (",0x00, "h), A",0x00 0068292C 204100 - 194: - 0B75 4C442000 dasm__LD: db "LD ",0x00 - 195: - 0B79 4C442041 dasm__ED_57: db "LD A, I",0x00 + 194: - 0B83 4C442000 dasm__LD: db "LD ",0x00 + 195: - 0B87 4C442041 dasm__ED_57: db "LD A, I",0x00 2C204900 - 196: - 0B81 4C442041 dasm__ED_5F: db "LD A, R",0x00 + 196: - 0B8F 4C442041 dasm__ED_5F: db "LD A, R",0x00 2C205200 - 197: - 0B89 4C442049 dasm__ED_47: db "LD I, A",0x00 + 197: - 0B97 4C442049 dasm__ED_47: db "LD I, A",0x00 2C204100 - 198: - 0B91 4C442052 dasm__ED_4F: db "LD R, A",0x00 + 198: - 0B9F 4C442052 dasm__ED_4F: db "LD R, A",0x00 2C204100 199: ;General-Purpose Arithmetic and CPU Control Groups - 200: - 0B99 44414100 dasm_27: db "DAA",0x00 - 201: - 0B9D 43504C00 dasm_2F: db "CPL",0x00 - 202: - 0BA1 4E454700 dasm_ED_44: db "NEG",0x00 - 203: - 0BA5 43434600 dasm_3F: db "CCF",0x00 - 204: - 0BA9 53434600 dasm_37: db "SCF",0x00 - 205: - 0BAD 48414C54 dasm_76: db "HALT",0x00 + 200: - 0BA7 44414100 dasm_27: db "DAA",0x00 + 201: - 0BAB 43504C00 dasm_2F: db "CPL",0x00 + 202: - 0BAF 4E454700 dasm_ED_44: db "NEG",0x00 + 203: - 0BB3 43434600 dasm_3F: db "CCF",0x00 + 204: - 0BB7 53434600 dasm_37: db "SCF",0x00 + 205: - 0BBB 48414C54 dasm_76: db "HALT",0x00 00 - 206: - 0BB2 444900 dasm_F3: db "DI",0x00 - 207: - 0BB5 454900 dasm_FB: db "EI",0x00 - 208: - 0BB8 494D2030 dasm_ED_46: db "IM 0",0x00 + 206: - 0BC0 444900 dasm_F3: db "DI",0x00 + 207: - 0BC3 454900 dasm_FB: db "EI",0x00 + 208: - 0BC6 494D2030 dasm_ED_46: db "IM 0",0x00 00 - 209: - 0BBD 494D2031 dasm_ED_56: db "IM 1",0x00 + 209: - 0BCB 494D2031 dasm_ED_56: db "IM 1",0x00 00 - 210: - 0BC2 494D2032 dasm_ED_5E: db "IM 2",0x00 + 210: - 0BD0 494D2032 dasm_ED_5E: db "IM 2",0x00 00 211: ;Exchange, Block Transfer, and Search Group - 212: - 0BC7 45582044 dasm_BE: db "EX DE, HL",0x00 + 212: - 0BD5 45582044 dasm_BE: db "EX DE, HL",0x00 452C2048 4C00 - 213: - 0BD1 45582041 dasm_08: db "EX AF, AF′",0x00 + 213: - 0BDF 45582041 dasm_08: db "EX AF, AF′",0x00 462C2041 46E280B2 00 - 214: - 0BDE 45585800 dasm_D9: db "EXX",0x00 - 215: - 0BE2 45582028 dasm_E3: db "EX (SP), HL",0x00 + 214: - 0BEC 45585800 dasm_D9: db "EXX",0x00 + 215: - 0BF0 45582028 dasm_E3: db "EX (SP), HL",0x00 5350292C 20484C00 - 216: - 0BEE 45582028 dasm_DD_E3: db "EX (SP), IX",0x00 + 216: - 0BFC 45582028 dasm_DD_E3: db "EX (SP), IX",0x00 5350292C 20495800 - 217: - 0BFA 45582028 dasm_FD_E3: db "EX (SP), IY",0x00 + 217: - 0C08 45582028 dasm_FD_E3: db "EX (SP), IY",0x00 5350292C 20495900 - 218: - 0C06 4C444900 dasm_ED_A0: db "LDI",0x00 - 219: - 0C0A 4C444952 dasm_ED_B0: db "LDIR",0x00 + 218: - 0C14 4C444900 dasm_ED_A0: db "LDI",0x00 + 219: - 0C18 4C444952 dasm_ED_B0: db "LDIR",0x00 00 - 220: - 0C0F 4C444400 dasm_ED_A8: db "LDD",0x00 - 221: - 0C13 4C444452 dasm_ED_B8: db "LDDR",0x00 + 220: - 0C1D 4C444400 dasm_ED_A8: db "LDD",0x00 + 221: - 0C21 4C444452 dasm_ED_B8: db "LDDR",0x00 00 - 222: - 0C18 43504900 dasm_ED_A1: db "CPI",0x00 - 223: - 0C1C 43504952 dasm_ED_B1: db "CPIR",0x00 + 222: - 0C26 43504900 dasm_ED_A1: db "CPI",0x00 + 223: - 0C2A 43504952 dasm_ED_B1: db "CPIR",0x00 00 - 224: - 0C21 43504400 dasm_ED_A9: db "CPD",0x00 - 225: - 0C25 43504452 dasm_ED_B9: db "CPDR",0x00 + 224: - 0C2F 43504400 dasm_ED_A9: db "CPD",0x00 + 225: - 0C33 43504452 dasm_ED_B9: db "CPDR",0x00 00 226: ;8-Bit Arithmetic Group - 227: - 0C2A 41444420 dasm_80C6: db "ADD A, ", 0x00 + 227: - 0C38 41444420 dasm_80C6: db "ADD A, ", 0x00 412C2000 - 228: - 0C32 41444420 dasm_DD_86: db "ADD A, (IX+", 0x00, "h)",0x00 + 228: - 0C40 41444420 dasm_DD_86: db "ADD A, (IX+", 0x00, "h)",0x00 412C2028 49582B00 682900 - 229: - 0C41 41444420 dasm_FD_86: db "ADD A, (IY+", 0x00, "h)",0x00 + 229: - 0C4F 41444420 dasm_FD_86: db "ADD A, (IY+", 0x00, "h)",0x00 412C2028 49592B00 682900 - 230: - 0C50 41444320 dasm_C88E: db "ADC A, ", 0x00 + 230: - 0C5E 41444320 dasm_C88E: db "ADC A, ", 0x00 412C2000 - 231: - 0C58 41444320 dasm_DD_8E: db "ADC A, (IX+", 0x00, "h)",0x00 + 231: - 0C66 41444320 dasm_DD_8E: db "ADC A, (IX+", 0x00, "h)",0x00 412C2028 49582B00 682900 - 232: - 0C67 41444320 dasm_FD_8E: db "ADC A, (IY+", 0x00, "h)",0x00 + 232: - 0C75 41444320 dasm_FD_8E: db "ADC A, (IY+", 0x00, "h)",0x00 412C2028 49592B00 682900 - 233: - 0C76 53554220 dasm__SUB: db "SUB ", 0x00 + 233: - 0C84 53554220 dasm__SUB: db "SUB ", 0x00 00 - 234: - 0C7B 53554220 dasm_DD_96: db "SUB (IX+", 0x00, "h)",0x00 + 234: - 0C89 53554220 dasm_DD_96: db "SUB (IX+", 0x00, "h)",0x00 2849582B 00682900 - 235: - 0C87 53554220 dasm_FD_96: db "SUB (IY+", 0x00, "h)",0x00 + 235: - 0C95 53554220 dasm_FD_96: db "SUB (IY+", 0x00, "h)",0x00 2849592B 00682900 - 236: - 0C93 53424320 dasm__SBC: db "SBC A, ", 0x00 + 236: - 0CA1 53424320 dasm__SBC: db "SBC A, ", 0x00 412C2000 - 237: - 0C9B 53424320 dasm_DD_9E: db "SBC A,(IX+", 0x00, "h)",0x00 + 237: - 0CA9 53424320 dasm_DD_9E: db "SBC A,(IX+", 0x00, "h)",0x00 412C2849 582B0068 2900 - 238: - 0CA9 53424320 dasm_FD_9E: db "SBC A,(IY+", 0x00, "h)",0x00 + 238: - 0CB7 53424320 dasm_FD_9E: db "SBC A,(IY+", 0x00, "h)",0x00 412C2849 592B0068 2900 - 239: - 0CB7 414E4420 dasm__AND: db "AND ", 0x00 + 239: - 0CC5 414E4420 dasm__AND: db "AND ", 0x00 00 - 240: - 0CBC 414E4420 dasm_DD_A6: db "AND (IX+", 0x00, "h)",0x00 + 240: - 0CCA 414E4420 dasm_DD_A6: db "AND (IX+", 0x00, "h)",0x00 2849582B 00682900 - 241: - 0CC8 414E4420 dasm_FD_A6: db "AND (IY+", 0x00, "h)",0x00 + 241: - 0CD6 414E4420 dasm_FD_A6: db "AND (IY+", 0x00, "h)",0x00 2849592B 00682900 - 242: - 0CD4 4F522000 dasm__OR: db "OR ", 0x00 - 243: - 0CD8 4F522028 dasm_DD_B6: db "OR (IX+", 0x00, "h)",0x00 + 242: - 0CE2 4F522000 dasm__OR: db "OR ", 0x00 + 243: - 0CE6 4F522028 dasm_DD_B6: db "OR (IX+", 0x00, "h)",0x00 49582B00 682900 - 244: - 0CE3 4F522028 dasm_FD_B6: db "OR (IY+", 0x00, "h)",0x00 + 244: - 0CF1 4F522028 dasm_FD_B6: db "OR (IY+", 0x00, "h)",0x00 49592B00 682900 - 245: - 0CEE 584F5220 dasm__XOR: db "XOR ", 0x00 + 245: - 0CFC 584F5220 dasm__XOR: db "XOR ", 0x00 00 - 246: - 0CF3 584F5220 dasm_DD_AE: db "XOR (IX+", 0x00, "h)",0x00 + 246: - 0D01 584F5220 dasm_DD_AE: db "XOR (IX+", 0x00, "h)",0x00 2849582B 00682900 - 247: - 0CFF 584F5220 dasm_FD_AE: db "XOR (IY+", 0x00, "h)",0x00 + 247: - 0D0D 584F5220 dasm_FD_AE: db "XOR (IY+", 0x00, "h)",0x00 2849592B 00682900 - 248: - 0D0B 43502000 dasm__CP: db "CP ", 0x00 - 249: - 0D0F 43502028 dasm_DD_BE: db "CP (IX+", 0x00, "h)",0x00 + 248: - 0D19 43502000 dasm__CP: db "CP ", 0x00 + 249: - 0D1D 43502028 dasm_DD_BE: db "CP (IX+", 0x00, "h)",0x00 49582B00 682900 - 250: - 0D1A 43502028 dasm_FD_BE: db "CP (IY+", 0x00, "h)",0x00 + 250: - 0D28 43502028 dasm_FD_BE: db "CP (IY+", 0x00, "h)",0x00 49592B00 682900 - 251: - 0D25 494E4320 dasm__INC: db "INC ", 0x00 + 251: - 0D33 494E4320 dasm__INC: db "INC ", 0x00 00 - 252: - 0D2A 494E4320 dasm_DD_34: db "INC (IX+", 0x00, "h)",0x00 + 252: - 0D38 494E4320 dasm_DD_34: db "INC (IX+", 0x00, "h)",0x00 2849582B 00682900 - 253: - 0D36 494E4320 dasm_FD_34: db "INC (IY+", 0x00, "h)",0x00 + 253: - 0D44 494E4320 dasm_FD_34: db "INC (IY+", 0x00, "h)",0x00 2849592B 00682900 - 254: - 0D42 44454320 dasm__DEC: db "DEC ", 0x00 + 254: - 0D50 44454320 dasm__DEC: db "DEC ", 0x00 00 - 255: - 0D47 44454320 dasm_DD_35: db "DEC (IX+", 0x00, "h)",0x00 + 255: - 0D55 44454320 dasm_DD_35: db "DEC (IX+", 0x00, "h)",0x00 2849582B 00682900 - 256: - 0D53 44454320 dasm_FD_35: db "DEC (IY+", 0x00, "h)",0x00 + 256: - 0D61 44454320 dasm_FD_35: db "DEC (IY+", 0x00, "h)",0x00 2849592B 00682900 257: ;16-Bit Arithmetic Group - 258: - 0D5F 41444420 dasm_09: db "ADD HL, ",0x00 + 258: - 0D6D 41444420 dasm_09: db "ADD HL, ",0x00 484C2C20 00 - 259: - 0D68 41444320 dasm_ED_4A: db "ADC HL, ",0x00 + 259: - 0D76 41444320 dasm_ED_4A: db "ADC HL, ",0x00 484C2C20 00 - 260: - 0D71 53424320 dasm_ED_42: db "SBC HL, ",0x00 + 260: - 0D7F 53424320 dasm_ED_42: db "SBC HL, ",0x00 484C2C20 00 - 261: - 0D7A 41444420 dasm_DD_09: db "ADD IX, ",0x00 + 261: - 0D88 41444420 dasm_DD_09: db "ADD IX, ",0x00 49582C20 00 - 262: - 0D83 41444420 dasm_FD_09: db "ADD IY, ",0x00 + 262: - 0D91 41444420 dasm_FD_09: db "ADD IY, ",0x00 49592C20 00 - 263: - 0D8C 494E4320 dasm_03: db "INC ",0x00 + 263: - 0D9A 494E4320 dasm_03: db "INC ",0x00 00 - 264: - 0D91 494E4320 dasm_DD_23: db "INC IX, ",0x00 + 264: - 0D9F 494E4320 dasm_DD_23: db "INC IX, ",0x00 49582C20 00 - 265: - 0D9A 494E4320 dasm_FD_23: db "INC IY, ",0x00 + 265: - 0DA8 494E4320 dasm_FD_23: db "INC IY, ",0x00 49592C20 00 - 266: - 0DA3 44454320 dasm_0B: db "DEC ",0x00 + 266: - 0DB1 44454320 dasm_0B: db "DEC ",0x00 00 - 267: - 0DA8 44454320 dasm_DD_2B: db "DEC IX, ",0x00 + 267: - 0DB6 44454320 dasm_DD_2B: db "DEC IX, ",0x00 49582C20 00 - 268: - 0DB1 44454320 dasm_FD_2B: db "DEC IY, ",0x00 + 268: - 0DBF 44454320 dasm_FD_2B: db "DEC IY, ",0x00 49592C20 00 269: ;16-Bit Load Group - 270: - 0DBA 4C442000 dasm_01: db "LD ",0x00, ", ",0x00 + 270: - 0DC8 4C442000 dasm_01: db "LD ",0x00, ", ",0x00 2C2000 - 271: - 0DC1 4C442049 dasm_DD_01: db "LD IX, ",0x00 + 271: - 0DCF 4C442049 dasm_DD_01: db "LD IX, ",0x00 582C2000 - 272: - 0DC9 4C442049 dasm_FD_01: db "LD IY, ",0x00 + 272: - 0DD7 4C442049 dasm_FD_01: db "LD IY, ",0x00 592C2000 - 273: - 0DD1 4C442048 dasm_2A: db "LD HL, (",0x00,"h)",0x00 + 273: - 0DDF 4C442048 dasm_2A: db "LD HL, (",0x00,"h)",0x00 4C2C2028 00682900 - 274: - 0DDD 4C442000 dasm_ED_4B: db "LD ",0x00,", (",0x00,"h)",0x00 + 274: - 0DEB 4C442000 dasm_ED_4B: db "LD ",0x00,", (",0x00,"h)",0x00 2C202800 682900 - 275: - 0DE8 4C442049 dasm_DD_2A: db "LD IX, (",0x00,"h)",0x00 + 275: - 0DF6 4C442049 dasm_DD_2A: db "LD IX, (",0x00,"h)",0x00 582C2028 00682900 - 276: - 0DF4 4C442049 dasm_FD_2A: db "LD IY, (",0x00,"h)",0x00 + 276: - 0E02 4C442049 dasm_FD_2A: db "LD IY, (",0x00,"h)",0x00 592C2028 00682900 - 277: - 0E00 4C442028 dasm_22: db "LD (",0x00,"h), HL",0x00 + 277: - 0E0E 4C442028 dasm_22: db "LD (",0x00,"h), HL",0x00 0068292C 20484C00 - 278: - 0E0C 4C442028 dasm_ED_43: db "LD (",0x00,"h), ",0x00 + 278: - 0E1A 4C442028 dasm_ED_43: db "LD (",0x00,"h), ",0x00 0068292C 2000 - 279: - 0E16 4C442028 dasm_DD_22: db "LD (",0x00,"h), IX",0x00 + 279: - 0E24 4C442028 dasm_DD_22: db "LD (",0x00,"h), IX",0x00 0068292C 20495800 - 280: - 0E22 4C442028 dasm_FD_22: db "LD (",0x00,"h), IY",0x00 + 280: - 0E30 4C442028 dasm_FD_22: db "LD (",0x00,"h), IY",0x00 0068292C 20495900 - 281: - 0E2E 4C442053 dasm_F9: db "LD SP, HL",0x00 + 281: - 0E3C 4C442053 dasm_F9: db "LD SP, HL",0x00 502C2048 4C00 - 282: - 0E38 4C442053 dasm_DD_F9: db "LD SP, IX",0x00 + 282: - 0E46 4C442053 dasm_DD_F9: db "LD SP, IX",0x00 502C2049 5800 - 283: - 0E42 4C442053 dasm_FD_F9: db "LD SP, IY",0x00 + 283: - 0E50 4C442053 dasm_FD_F9: db "LD SP, IY",0x00 502C2049 5900 - 284: - 0E4C 50555348 dasm_E5: db "PUSH ",0x00 + 284: - 0E5A 50555348 dasm_E5: db "PUSH ",0x00 2000 - 285: - 0E52 50555348 dasm_DD_E5: db "PUSH IX",0x00 + 285: - 0E60 50555348 dasm_DD_E5: db "PUSH IX",0x00 20495800 - 286: - 0E5A 50555348 dasm_FD_E5: db "PUSH IY",0x00 + 286: - 0E68 50555348 dasm_FD_E5: db "PUSH IY",0x00 20495900 - 287: - 0E62 50555348 dasm_E1: db "PUSH ",0x00 + 287: - 0E70 50555348 dasm_E1: db "PUSH ",0x00 2000 - 288: - 0E68 50555348 dasm_DD_E1: db "PUSH IX",0x00 + 288: - 0E76 50555348 dasm_DD_E1: db "PUSH IX",0x00 20495800 - 289: - 0E70 50555348 dasm_FD_E1: db "PUSH IY",0x00 + 289: - 0E7E 50555348 dasm_FD_E1: db "PUSH IY",0x00 20495900 290: 291: ;Misc - 292: - 0E78 2E3F2E00 dasm_UU: db ".?.",0x00 - 293: - 0E7C 20202020 dasm_UW: db " ",0x00 + 292: - 0E86 2E3F2E00 dasm_UU: db ".?.",0x00 + 293: - 0E8A 20202020 dasm_UW: db " ",0x00 00 294: - 295: - 0E81 dasm_printFlags_table: - 296: - 0E81 4E5A db "NZ" - 297: - 0E83 5A00 db "Z",0 - 298: - 0E85 4E43 db "NC" - 299: - 0E87 4300 db "C",0 - 300: - 0E89 504F db "PO" - 301: - 0E8B 5045 db "PE" - 302: - 0E8D 5000 db "P",0 - 303: - 0E8F 4D00 db "M",0 + 295: - 0E8F dasm_printFlags_table: + 296: - 0E8F 4E5A db "NZ" + 297: - 0E91 5A00 db "Z",0 + 298: - 0E93 4E43 db "NC" + 299: - 0E95 4300 db "C",0 + 300: - 0E97 504F db "PO" + 301: - 0E99 5045 db "PE" + 302: - 0E9B 5000 db "P",0 + 303: - 0E9D 4D00 db "M",0 304: - 305: - 0E91 dasm_printRegister8_table: - 306: - 0E91 42 db "B" - 307: - 0E92 43 db "C" - 308: - 0E93 44 db "D" - 309: - 0E94 45 db "E" - 310: - 0E95 48 db "H" - 311: - 0E96 4C db "L" - 312: - 0E97 53 db "S" ;only 18 bit (SP) - 313: - 0E98 50 db "P" ;only 18 bit (SP) + 305: - 0E9F dasm_printRegister8_table: + 306: - 0E9F 42 db "B" + 307: - 0EA0 43 db "C" + 308: - 0EA1 44 db "D" + 309: - 0EA2 45 db "E" + 310: - 0EA3 48 db "H" + 311: - 0EA4 4C db "L" + 312: - 0EA5 53 db "S" ;only 18 bit (SP) + 313: - 0EA6 50 db "P" ;only 18 bit (SP) 314: - 315: - 0E99 dasm_printRegisterIX_table: - 316: - 0E99 4243 db "BC" - 317: - 0E9B 4445 db "DE" - 318: - 0E9D 4958 db "IX" - 319: - 0E9F 5350 db "SP" - 320: - 0EA1 dasm_printRegisterIY_table: - 321: - 0EA1 4243 db "BC" - 322: - 0EA3 4445 db "DE" - 323: - 0EA5 4959 db "IY" - 324: - 0EA7 5350 db "SP" + 315: - 0EA7 dasm_printRegisterIX_table: + 316: - 0EA7 4243 db "BC" + 317: - 0EA9 4445 db "DE" + 318: - 0EAB 4958 db "IX" + 319: - 0EAD 5350 db "SP" + 320: - 0EAF dasm_printRegisterIY_table: + 321: - 0EAF 4243 db "BC" + 322: - 0EB1 4445 db "DE" + 323: - 0EB3 4959 db "IY" + 324: - 0EB5 5350 db "SP" 325: - 326: - 0EA9 dasm_printRegisterSP_table: - 327: - 0EA9 4243 db "BC" - 328: - 0EAB 4445 db "DE" - 329: - 0EAD 484C db "HL" - 330: - 0EAF 4146 db "AF" + 326: - 0EB7 dasm_printRegisterSP_table: + 327: - 0EB7 4243 db "BC" + 328: - 0EB9 4445 db "DE" + 329: - 0EBB 484C db "HL" + 330: - 0EBD 4146 db "AF" 331: - 332: - 0EB1 dasm_printRegister8_table_HL: + 332: - 0EBF dasm_printRegister8_table_HL: **** main.asm **** - 479: - 0EB1 28484C29 db "(HL)", 0 + 489: - 0EBF 28484C29 db "(HL)", 0 00 - 480: .include "rst.s" + 490: .include "rst.s" **** include/rst.s **** - 1: - 0EB6 EXEC_RST_08: - 2: 7856+17 0EB6 CDA902 call print_char - 3: 7873+10 0EB9 C9 ret + 1: - 0EC4 EXEC_RST_08: + 2: 7919+17 0EC4 CDB702 call print_char + 3: 7936+10 0EC7 C9 ret 4: 5: - 6: - 0EBA EXEC_RST_10: - 7: 7883+11 0EBA C5 push bc - 8: 7894+11 0EBB D5 push de - 9: 7905+11 0EBC E5 push hl + 6: - 0EC8 EXEC_RST_10: + 7: 7946+11 0EC8 C5 push bc + 8: 7957+11 0EC9 D5 push de + 9: 7968+11 0ECA E5 push hl 10: ;call vdp_cursor_on - 11: 7916+17 0EBD CDEA02 call read_char - 12: 7933+11 0EC0 F5 push af + 11: 7979+17 0ECB CDF802 call read_char + 12: 7996+11 0ECE F5 push af 13: ;call vdp_cursor_off - 14: 7944+10 0EC1 F1 pop af - 15: 7954+10 0EC2 E1 pop hl - 16: 7964+10 0EC3 D1 pop de - 17: 7974+10 0EC4 C1 pop bc - 18: 7984+10 0EC5 C9 ret + 14: 8007+10 0ECF F1 pop af + 15: 8017+10 0ED0 E1 pop hl + 16: 8027+10 0ED1 D1 pop de + 17: 8037+10 0ED2 C1 pop bc + 18: 8047+10 0ED3 C9 ret 19: - 20: - 0EC6 EXEC_RST_18: - 21: 7994+7 0EC6 3E00 ld a,0 - 22: 8001+10 0EC8 C9 ret + 20: - 0ED4 EXEC_RST_18: + 21: 8057+7 0ED4 3E00 ld a,0 + 22: 8064+10 0ED6 C9 ret **** main.asm **** - 481: ; Strings - 482: - 0EC9 STR_Banner_Start: - 483: - 0EC9 5A384320 db "Z8C Monitor V2 by Dennis Gunia (2022)",0 + 491: .include "beep.s" +**** include/beep.s **** + 1: ;------------------------------------------------------------------------------ + 2: ; beep + 3: ; + 4: ; Beeps the speaker + 5: ; DE sets duration + 6: ;------------------------------------------------------------------------------ + 7: - 0ED7 beep: + 8: 8074+7 0ED7 3E08 LD A,0x08 + 9: 8081+11 0ED9 D3F4 OUT (CS_PIO_AD), A + 10: 8092+10 0EDB 012800 LD BC, 0x28 + 11: 8102+17 0EDE CDF10E CALL beep_pause + 12: 8119+7 0EE1 3E00 LD A,0x00 + 13: 8126+11 0EE3 D3F4 OUT (CS_PIO_AD), A + 14: 8137+10 0EE5 012400 LD BC, 0x24 + 15: 8147+17 0EE8 CDF10E CALL beep_pause + 16: 8164+6 0EEB 1B DEC DE + 17: 8170+4 0EEC 7A LD A,D + 18: 8174+4 0EED B3 OR E + 19: 8178+7+5 0EEE 20E7 JR NZ, beep + 20: 8185+10 0EF0 C9 RET + 21: + 22: - 0EF1 beep_pause: + 23: 8195+8 0EF1 ED44 NEG ; 8 T-states + 24: 8203+8 0EF3 ED44 NEG ; 8 T-states + 25: 8211+8 0EF5 ED44 NEG ; 8 T-states + 26: 8219+8 0EF7 ED44 NEG ; 8 T-states + 27: 8227+6 0EF9 0B DEC BC ; 6 T-states + 28: 8233+4 0EFA 79 LD A,C ; 9 T-states + 29: 8237+4 0EFB B0 OR B ; 4 T-states + 30: 8241+10 0EFC C2F10E JP NZ,beep_pause ; 10 T-states +**** main.asm **** + 492: 8251+10 0EFF C9 RET ; Pause complete, RETurn + 493: ; Strings + 494: - 0F00 STR_Banner_Start: + 495: - 0F00 5A384320 db "Z8C Monitor V2 by Dennis Gunia (2022)",0 4D6F6E69 746F7220 56322062 @@ -2058,22 +2098,22 @@ 69612028 32303232 2900 - 484: - 0EEF STR_SyntaxError: - 485: - 0EEF 73796E3F db "syn?",0 + 496: - 0F26 STR_SyntaxError: + 497: - 0F26 73796E3F db "syn?",0 00 - 486: - 0EF4 STR_Unknown: - 487: - 0EF4 636D643F db "cmd?",0 + 498: - 0F2B STR_Unknown: + 499: - 0F2B 636D643F db "cmd?",0 00 - 488: - 0EF9 STR_HEXDUMP_HEADER: - 489: - 0EF9 42415345 db 'BASE 0 1 2 3 4 5 6 7',0 + 500: - 0F30 STR_HEXDUMP_HEADER: + 501: - 0F30 42415345 db 'BASE 0 1 2 3 4 5 6 7',0 20302020 31202032 20203320 20342020 35202036 20203700 - 490: - 491: .include "xmodem.s" + 502: + 503: .include "xmodem.s" **** include/xmodem.s **** 1: ;------------------------------------------------------------------------- 2: ; Z80 XMODEM implementation by Dennis Gunia @@ -2101,177 +2141,177 @@ 24: - 4400 MEM_LOC_LOAD equ 0x4400 ;load location for program 25: 26: ;XMODEM routine - 27: - 0F15 xmodem_init: - 28: 8011+17 0F15 CD0403 call A_RTS_OFF + 27: - 0F4C xmodem_init: + 28: 8261+17 0F4C CD1203 call A_RTS_OFF 29: - 30: 8028+7 0F18 3EA7 LD A,10100111b ; Init CTC Channel 3 - 31: 8035+11 0F1A D306 OUT (CS_CTC_2),A - 32: 8046+7 0F1C 3E0E LD A,14 ; 1028.57Hz ISR - 33: 8053+11 0F1E D306 OUT (CS_CTC_2),A - 34: 8064+7 0F20 3E00 LD A,00h ; Set CTC Ch3 Interrupt Vector - 35: 8071+11 0F22 D304 OUT (CS_CTC_0),A + 30: 8278+7 0F4F 3EA7 LD A,10100111b ; Init CTC Channel 3 + 31: 8285+11 0F51 D306 OUT (CS_CTC_2),A + 32: 8296+7 0F53 3E0E LD A,14 ; 1028.57Hz ISR + 33: 8303+11 0F55 D306 OUT (CS_CTC_2),A + 34: 8314+7 0F57 3E00 LD A,00h ; Set CTC Ch3 Interrupt Vector + 35: 8321+11 0F59 D304 OUT (CS_CTC_0),A 36: ;load int vector to ram - 37: 8082+10 0F24 21F50F ld hl,xmodem_int ;CTC Ch3 INT routine - 38: 8092+16 0F27 220442 ld (0x4200 + 0x04),hl + 37: 8332+10 0F5B 212C10 ld hl,xmodem_int ;CTC Ch3 INT routine + 38: 8342+16 0F5E 220442 ld (0x4200 + 0x04),hl 39: ;reset timer vars - 40: 8108+10 0F2A 210000 ld hl,0x0000 - 41: 8118+16 0F2D 22FC40 ld (MEM_VAR_TIMEA),hl - 42: 8134+16 0F30 22FE40 ld (MEM_VAR_TIMER),hl + 40: 8358+10 0F61 210000 ld hl,0x0000 + 41: 8368+16 0F64 22FC40 ld (MEM_VAR_TIMEA),hl + 42: 8384+16 0F67 22FE40 ld (MEM_VAR_TIMER),hl 43: - 44: 8150+7 0F33 3E42 ld a,0x42 ; Set interrupt vector register - 45: 8157+9 0F35 ED47 ld i,a - 46: 8166+8 0F37 ED5E im 2 ; Z80 Interrupt mode + 44: 8400+7 0F6A 3E42 ld a,0x42 ; Set interrupt vector register + 45: 8407+9 0F6C ED47 ld i,a + 46: 8416+8 0F6E ED5E im 2 ; Z80 Interrupt mode 47: - 48: 8174+10 0F39 217010 ld hl,MSG_START ; Print start banner - 49: 8184+17 0F3C CDB102 call print_str - 50: 8201+4 0F3F FB ei ; Enable interrupts + 48: 8424+10 0F70 21A710 ld hl,MSG_START ; Print start banner + 49: 8434+17 0F73 CDBF02 call print_str + 50: 8451+4 0F76 FB ei ; Enable interrupts 51: ; init done. Continue with xmodem_await_conn - 52: 8205+17 0F40 CDA610 call xmodem_wait + 52: 8455+17 0F77 CDDD10 call xmodem_wait 53: - 54: - 0F43 xmodem_await_conn: ;Wait for initial connection - 55: 8222+7 0F43 3E43 ld a, SYM_C ;Send C to notify sender, that we want CRC - 56: 8229+17 0F45 CD4610 call xmodem_out - 57: 8246+17 0F48 CD1910 call xmodem_read_wait ;Read with timeout - 58: 8263+10 0F4B DA430F jp c, xmodem_await_conn ;Carry flag set = timeout -> repeat + 54: - 0F7A xmodem_await_conn: ;Wait for initial connection + 55: 8472+7 0F7A 3E43 ld a, SYM_C ;Send C to notify sender, that we want CRC + 56: 8479+17 0F7C CD7D10 call xmodem_out + 57: 8496+17 0F7F CD5010 call xmodem_read_wait ;Read with timeout + 58: 8513+10 0F82 DA7A0F jp c, xmodem_await_conn ;Carry flag set = timeout -> repeat 59: ;else continue 60: - 61: - 0F4E xmodem_packet: ;XmodemCRC packet start + 61: - 0F85 xmodem_packet: ;XmodemCRC packet start 62: ;use 1st byte to decide further processing - 63: 8273+7 0F4E FE04 cp SYM_EOT ;End of Transmission - 64: 8280+10 0F50 CAAC0F jp z, xmodem_packet_EOT - 65: 8290+7 0F53 FE18 cp SYM_CAN ;Cancel (Force receiver to start sending C's) - 66: 8297+10 0F55 CA430F jp z, xmodem_await_conn - 67: 8307+7 0F58 FE01 cp SYM_SOH ;Start of - 68: 8314+10 0F5A CA600F jp z, xmodem_packet_get + 63: 8523+7 0F85 FE04 cp SYM_EOT ;End of Transmission + 64: 8530+10 0F87 CAE30F jp z, xmodem_packet_EOT + 65: 8540+7 0F8A FE18 cp SYM_CAN ;Cancel (Force receiver to start sending C's) + 66: 8547+10 0F8C CA7A0F jp z, xmodem_await_conn + 67: 8557+7 0F8F FE01 cp SYM_SOH ;Start of + 68: 8564+10 0F91 CA970F jp z, xmodem_packet_get 69: - 70: 8324+10 0F5D C3B40F jp xmodem_err ;anything else is an error -> abort transmission + 70: 8574+10 0F94 C3EB0F jp xmodem_err ;anything else is an error -> abort transmission 71: - 72: - 0F60 xmodem_packet_get: ;if first byte == SYM_SOH -> receive block - 73: 8334+17 0F60 CD1910 call xmodem_read_wait ;get byte 2 => block ID - 74: 8351+10 0F63 DA9810 jp c, xmodem_nak - 75: 8361+4 0F66 47 ld b,a - 76: 8365+13 0F67 32FB40 ld (MEM_VAR_BLOCK), a ;store block id to memory - 77: 8378+17 0F6A CD1910 call xmodem_read_wait ;get byte 3 => block ID complement - 78: 8395+10 0F6D DA9810 jp c, xmodem_nak - 79: 8405+4 0F70 80 add b - 80: 8409+7 0F71 FEFF cp 255 ;both size infos should always sum to 255 - 81: 8416+10 0F73 C2B40F jp nz,xmodem_err ;if not 255 then its an error + 72: - 0F97 xmodem_packet_get: ;if first byte == SYM_SOH -> receive block + 73: 8584+17 0F97 CD5010 call xmodem_read_wait ;get byte 2 => block ID + 74: 8601+10 0F9A DACF10 jp c, xmodem_nak + 75: 8611+4 0F9D 47 ld b,a + 76: 8615+13 0F9E 32FB40 ld (MEM_VAR_BLOCK), a ;store block id to memory + 77: 8628+17 0FA1 CD5010 call xmodem_read_wait ;get byte 3 => block ID complement + 78: 8645+10 0FA4 DACF10 jp c, xmodem_nak + 79: 8655+4 0FA7 80 add b + 80: 8659+7 0FA8 FEFF cp 255 ;both size infos should always sum to 255 + 81: 8666+10 0FAA C2EB0F jp nz,xmodem_err ;if not 255 then its an error 82: 83: ;calculate block start address in RAM 84: ;multiply by 128 85: ;use more efficient bit-wise operations - 86: 8426+4 0F76 3D dec a ;a-1 to remove 1 sector offset - 87: 8430+4 0F77 78 ld a,b - 88: 8434+4 0F78 1F rra ;shift 1 bit to the right - 89: 8438+7 0F79 E67F and 0x7F - 90: 8445+4 0F7B 67 ld h,a - 91: 8449+4 0F7C 78 ld a,b - 92: 8453+4 0F7D 3D dec a ;a-1 to remove 1 sector offset - 93: 8457+4 0F7E 0F rrca ;shift bit0 to bit 7 - 94: 8461+7 0F7F E680 and 0x80 ;mask out all other bits - 95: 8468+4 0F81 6F ld l,a + 86: 8676+4 0FAD 3D dec a ;a-1 to remove 1 sector offset + 87: 8680+4 0FAE 78 ld a,b + 88: 8684+4 0FAF 1F rra ;shift 1 bit to the right + 89: 8688+7 0FB0 E67F and 0x7F + 90: 8695+4 0FB2 67 ld h,a + 91: 8699+4 0FB3 78 ld a,b + 92: 8703+4 0FB4 3D dec a ;a-1 to remove 1 sector offset + 93: 8707+4 0FB5 0F rrca ;shift bit0 to bit 7 + 94: 8711+7 0FB6 E680 and 0x80 ;mask out all other bits + 95: 8718+4 0FB8 6F ld l,a 96: ;result: 97: ;hl = 0aaaaaaa a000000 98: - 99: 8472+10 0F82 110044 ld de,MEM_LOC_LOAD - 100: 8482+11 0F85 19 add hl,de ;add calculated offset to base address + 99: 8722+10 0FB9 110044 ld de,MEM_LOC_LOAD + 100: 8732+11 0FBC 19 add hl,de ;add calculated offset to base address 101: ;hl now contains the true start address of this sector 102: - 103: 8493+7 0F86 0680 ld b,128 ;preload counter for data baytes - 104: 8500+7 0F88 0E00 ld c,0 ;packet length counter ( used for overflow error ) + 103: 8743+7 0FBD 0680 ld b,128 ;preload counter for data baytes + 104: 8750+7 0FBF 0E00 ld c,0 ;packet length counter ( used for overflow error ) 105: - 106: - 0F8A xmodem_packet_get_data: ;get 128 data bytes (loop) - 107: 8507+11 0F8A E5 push hl ;push hl onto stack because xmodem_read_wait destroys hl - 108: 8518+17 0F8B CD1910 call xmodem_read_wait ;read byte or timeout - 109: 8535+10 0F8E DA9810 jp c, xmodem_nak ;if timeout -> nak and retry - 110: 8545+10 0F91 E1 pop hl ;restore hl - 111: 8555+7 0F92 77 ld (hl), a ;store received byte in memory - 112: 8562+6 0F93 23 inc hl ;increment pointer - 113: 8568+4 0F94 0C inc c ;increment packet length counter - 114: 8572+4 0F95 05 dec b ;decerment data bytes remmaining - 115: 8576+10 0F96 C28A0F jp nz, xmodem_packet_get_data ;if bytes remaining, loop + 106: - 0FC1 xmodem_packet_get_data: ;get 128 data bytes (loop) + 107: 8757+11 0FC1 E5 push hl ;push hl onto stack because xmodem_read_wait destroys hl + 108: 8768+17 0FC2 CD5010 call xmodem_read_wait ;read byte or timeout + 109: 8785+10 0FC5 DACF10 jp c, xmodem_nak ;if timeout -> nak and retry + 110: 8795+10 0FC8 E1 pop hl ;restore hl + 111: 8805+7 0FC9 77 ld (hl), a ;store received byte in memory + 112: 8812+6 0FCA 23 inc hl ;increment pointer + 113: 8818+4 0FCB 0C inc c ;increment packet length counter + 114: 8822+4 0FCC 05 dec b ;decerment data bytes remmaining + 115: 8826+10 0FCD C2C10F jp nz, xmodem_packet_get_data ;if bytes remaining, loop 116: ;else continue with crc bytes 117: - 118: - 0F99 xmodem_packet_get_crc: ;get 16-Bit CRC - 119: 8586+17 0F99 CD1910 call xmodem_read_wait - 120: 8603+10 0F9C DA9810 jp c, xmodem_nak - 121: 8613+4 0F9F 57 ld d,a - 122: 8617+4 0FA0 0C inc c - 123: 8621+17 0FA1 CD1910 call xmodem_read_wait - 124: 8638+10 0FA4 DA9810 jp c, xmodem_nak - 125: 8648+4 0FA7 5F ld e,a - 126: 8652+4 0FA8 0C inc c + 118: - 0FD0 xmodem_packet_get_crc: ;get 16-Bit CRC + 119: 8836+17 0FD0 CD5010 call xmodem_read_wait + 120: 8853+10 0FD3 DACF10 jp c, xmodem_nak + 121: 8863+4 0FD6 57 ld d,a + 122: 8867+4 0FD7 0C inc c + 123: 8871+17 0FD8 CD5010 call xmodem_read_wait + 124: 8888+10 0FDB DACF10 jp c, xmodem_nak + 125: 8898+4 0FDE 5F ld e,a + 126: 8902+4 0FDF 0C inc c 127: ;de now contains CRC value 128: ;check if c is not bigger than 130 byte (128 data + 2crc) 129: ;TODO if so NACK 130: 131: ;de contains 16-bit CRC 132: ;TODO if crc error NACK - 133: 8656+10 0FA9 C38A10 jp xmodem_ack ;ack block -> then jump to start again + 133: 8906+10 0FE0 C3C110 jp xmodem_ack ;ack block -> then jump to start again 134: - 135: - 0FAC xmodem_packet_EOT: ;End of transmission SUB. - 136: 8666+7 0FAC 3E06 ld a, SYM_ACK ;Acknowledge EOT - 137: 8673+17 0FAE CD4610 call xmodem_out - 138: 8690+10 0FB1 C3EE0F jp xmodem_end ;and end xmodem + 135: - 0FE3 xmodem_packet_EOT: ;End of transmission SUB. + 136: 8916+7 0FE3 3E06 ld a, SYM_ACK ;Acknowledge EOT + 137: 8923+17 0FE5 CD7D10 call xmodem_out + 138: 8940+10 0FE8 C32510 jp xmodem_end ;and end xmodem 139: 140: 141: - 142: - 0FB4 xmodem_err: ;non recoverable error -> abort - 143: 8700+7 0FB4 3E18 ld a, SYM_CAN - 144: 8707+17 0FB6 CD4610 call xmodem_out - 145: 8724+7 0FB9 3E18 ld a, SYM_CAN - 146: 8731+17 0FBB CD4610 call xmodem_out - 147: 8748+7 0FBE 3E18 ld a, SYM_CAN - 148: 8755+17 0FC0 CD4610 call xmodem_out - 149: 8772+7 0FC3 3E18 ld a, SYM_CAN - 150: 8779+17 0FC5 CD4610 call xmodem_out - 151: 8796+7 0FC8 3E18 ld a, SYM_CAN - 152: 8803+17 0FCA CD4610 call xmodem_out - 153: 8820+7 0FCD 3E18 ld a, SYM_CAN - 154: 8827+17 0FCF CD4610 call xmodem_out - 155: 8844+7 0FD2 3E18 ld a, SYM_CAN - 156: 8851+17 0FD4 CD4610 call xmodem_out - 157: 8868+7 0FD7 3E18 ld a, SYM_CAN - 158: 8875+17 0FD9 CD4610 call xmodem_out - 159: 8892+7 0FDC 3E18 ld a, SYM_CAN - 160: 8899+17 0FDE CD4610 call xmodem_out - 161: 8916+7 0FE1 3E18 ld a, SYM_CAN - 162: 8923+17 0FE3 CD4610 call xmodem_out - 163: 8940+7 0FE6 3E18 ld a, SYM_CAN + 142: - 0FEB xmodem_err: ;non recoverable error -> abort + 143: 8950+7 0FEB 3E18 ld a, SYM_CAN + 144: 8957+17 0FED CD7D10 call xmodem_out + 145: 8974+7 0FF0 3E18 ld a, SYM_CAN + 146: 8981+17 0FF2 CD7D10 call xmodem_out + 147: 8998+7 0FF5 3E18 ld a, SYM_CAN + 148: 9005+17 0FF7 CD7D10 call xmodem_out + 149: 9022+7 0FFA 3E18 ld a, SYM_CAN + 150: 9029+17 0FFC CD7D10 call xmodem_out + 151: 9046+7 0FFF 3E18 ld a, SYM_CAN + 152: 9053+17 1001 CD7D10 call xmodem_out + 153: 9070+7 1004 3E18 ld a, SYM_CAN + 154: 9077+17 1006 CD7D10 call xmodem_out + 155: 9094+7 1009 3E18 ld a, SYM_CAN + 156: 9101+17 100B CD7D10 call xmodem_out + 157: 9118+7 100E 3E18 ld a, SYM_CAN + 158: 9125+17 1010 CD7D10 call xmodem_out + 159: 9142+7 1013 3E18 ld a, SYM_CAN + 160: 9149+17 1015 CD7D10 call xmodem_out + 161: 9166+7 1018 3E18 ld a, SYM_CAN + 162: 9173+17 101A CD7D10 call xmodem_out + 163: 9190+7 101D 3E18 ld a, SYM_CAN 164: - 165: 8947+10 0FE8 215710 ld hl, MSG_ERROR - 166: 8957+17 0FEB CDB102 call print_str + 165: 9197+10 101F 218E10 ld hl, MSG_ERROR + 166: 9207+17 1022 CDBF02 call print_str 167: 168: ;overflow to end - 169: - 0FEE xmodem_end: - 170: 8974+4 0FEE F3 di ;disable interrupts - 171: 8978+17 0FEF CDC302 call print_newLine ;print new line - 172: 8995+10 0FF2 C38B00 jp PROMPT_BEGIN ;return ti prompt + 169: - 1025 xmodem_end: + 170: 9224+4 1025 F3 di ;disable interrupts + 171: 9228+17 1026 CDD102 call print_newLine ;print new line + 172: 9245+10 1029 C39900 jp PROMPT_BEGIN ;return ti prompt 173: 174: ;isr is used as counter for timeouts - 175: - 0FF5 xmodem_int: - 176: 9005+4 0FF5 F3 di ;setup ISR (disable further interrupts, exchange registers) - 177: 9009+4 0FF6 08 ex AF,AF' - 178: 9013+4 0FF7 D9 exx + 175: - 102C xmodem_int: + 176: 9255+4 102C F3 di ;setup ISR (disable further interrupts, exchange registers) + 177: 9259+4 102D 08 ex AF,AF' + 178: 9263+4 102E D9 exx 179: - 180: 9017+16 0FF8 2AFC40 ld hl,(MEM_VAR_TIMEA) ;millis counter - 181: 9033+6 0FFB 23 inc hl - 182: 9039+16 0FFC 22FC40 ld (MEM_VAR_TIMEA),hl + 180: 9267+16 102F 2AFC40 ld hl,(MEM_VAR_TIMEA) ;millis counter + 181: 9283+6 1032 23 inc hl + 182: 9289+16 1033 22FC40 ld (MEM_VAR_TIMEA),hl 183: - 184: 9055+10 0FFF 110404 ld de,1028 ;every 1028 millis counter - 185: 9065+15 1002 ED52 sbc hl,de - 186: 9080+10 1004 C21410 jp nz, xmodem_int_cont ;if less than 1028 millis, loop + 184: 9305+10 1036 110404 ld de,1028 ;every 1028 millis counter + 185: 9315+15 1039 ED52 sbc hl,de + 186: 9330+10 103B C24B10 jp nz, xmodem_int_cont ;if less than 1028 millis, loop 187: - 188: 9090+10 1007 210000 ld hl,0 ;reset millis - 189: 9100+16 100A 22FC40 ld (MEM_VAR_TIMEA),hl - 190: 9116+16 100D 2AFE40 ld hl,(MEM_VAR_TIMER) ;incement seconds - 191: 9132+6 1010 23 inc hl - 192: 9138+16 1011 22FE40 ld (MEM_VAR_TIMER),hl - 193: - 1014 xmodem_int_cont: ;end isr - 194: 9154+4 1014 08 ex AF,AF' ;restore registers - 195: 9158+4 1015 D9 exx - 196: 9162+4 1016 FB EI ;enable interrupts - 197: 9166+14 1017 ED4D reti ;exit ISR + 188: 9340+10 103E 210000 ld hl,0 ;reset millis + 189: 9350+16 1041 22FC40 ld (MEM_VAR_TIMEA),hl + 190: 9366+16 1044 2AFE40 ld hl,(MEM_VAR_TIMER) ;incement seconds + 191: 9382+6 1047 23 inc hl + 192: 9388+16 1048 22FE40 ld (MEM_VAR_TIMER),hl + 193: - 104B xmodem_int_cont: ;end isr + 194: 9404+4 104B 08 ex AF,AF' ;restore registers + 195: 9408+4 104C D9 exx + 196: 9412+4 104D FB EI ;enable interrupts + 197: 9416+14 104E ED4D reti ;exit ISR 198: 199: 200: @@ -2280,57 +2320,57 @@ 203: ; A returns char 204: ; Carry is set if timeout 205: - 0003 xmodem_read_timeount equ 3 ;3 seconds timeout - 206: - 1019 xmodem_read_wait: - 207: 9180+4 1019 F3 di - 208: 9184+10 101A 210000 ld hl,0 - 209: 9194+16 101D 22FC40 ld (MEM_VAR_TIMEA),hl - 210: 9210+16 1020 22FE40 ld (MEM_VAR_TIMER),hl - 211: 9226+4 1023 FB ei - 212: 9230+17 1024 CD0D03 call A_RTS_ON - 213: - 1027 xmodem_read_wait_loop: + 206: - 1050 xmodem_read_wait: + 207: 9430+4 1050 F3 di + 208: 9434+10 1051 210000 ld hl,0 + 209: 9444+16 1054 22FC40 ld (MEM_VAR_TIMEA),hl + 210: 9460+16 1057 22FE40 ld (MEM_VAR_TIMER),hl + 211: 9476+4 105A FB ei + 212: 9480+17 105B CD1B03 call A_RTS_ON + 213: - 105E xmodem_read_wait_loop: 214: ;check timeout - 215: 9247+16 1027 2AFE40 ld hl,(MEM_VAR_TIMER) - 216: 9263+4 102A 7D ld a, l - 217: 9267+7 102B FE03 cp xmodem_read_timeount - 218: 9274+10 102D CA4410 jp z, xmodem_read_wait_timeout ;if timeout retry + 215: 9497+16 105E 2AFE40 ld hl,(MEM_VAR_TIMER) + 216: 9513+4 1061 7D ld a, l + 217: 9517+7 1062 FE03 cp xmodem_read_timeount + 218: 9524+10 1064 CA7B10 jp z, xmodem_read_wait_timeout ;if timeout retry 219: 220: ; if no timeout - 221: 9284+4 1030 AF xor a ; a = 0 - 222: 9288+11 1031 D309 out (CS_SIO_A_C), a ; select reg 0 - 223: 9299+11 1033 DB09 in a, (CS_SIO_A_C) ; read reg 0 - 224: 9310+7 1035 E601 and 1 ; mask D0 (recieve char available) - 225: 9317+10 1037 CA2710 jp Z,xmodem_read_wait_loop ; wait if no char + 221: 9534+4 1067 AF xor a ; a = 0 + 222: 9538+11 1068 D309 out (CS_SIO_A_C), a ; select reg 0 + 223: 9549+11 106A DB09 in a, (CS_SIO_A_C) ; read reg 0 + 224: 9560+7 106C E601 and 1 ; mask D0 (recieve char available) + 225: 9567+10 106E CA5E10 jp Z,xmodem_read_wait_loop ; wait if no char 226: 227: ; if char avail - 228: 9327+11 103A DB08 in a, (CS_SIO_A_D) ; read char + 228: 9577+11 1071 DB08 in a, (CS_SIO_A_D) ; read char 229: ;call debug_a_hex - 230: 9338+11 103C F5 push af - 231: 9349+17 103D CD0403 call A_RTS_OFF - 232: 9366+10 1040 F1 pop af - 233: 9376+4 1041 37 scf - 234: 9380+4 1042 3F ccf - 235: 9384+10 1043 C9 ret ; return - 236: - 1044 xmodem_read_wait_timeout: - 237: 9394+4 1044 37 scf - 238: 9398+10 1045 C9 ret + 230: 9588+11 1073 F5 push af + 231: 9599+17 1074 CD1203 call A_RTS_OFF + 232: 9616+10 1077 F1 pop af + 233: 9626+4 1078 37 scf + 234: 9630+4 1079 3F ccf + 235: 9634+10 107A C9 ret ; return + 236: - 107B xmodem_read_wait_timeout: + 237: 9644+4 107B 37 scf + 238: 9648+10 107C C9 ret 239: 240: - 241: - 1046 xmodem_out: - 242: 9408+11 1046 D308 out (CS_SIO_A_D), a - 243: 9419+17 1048 CD4C10 call xmodem_wait_out - 244: 9436+10 104B C9 ret + 241: - 107D xmodem_out: + 242: 9658+11 107D D308 out (CS_SIO_A_D), a + 243: 9669+17 107F CD8310 call xmodem_wait_out + 244: 9686+10 1082 C9 ret 245: - 246: - 104C xmodem_wait_out: - 247: 9446+4 104C 97 sub a ;clear a, write into WR0: select RR0 - 248: 9450+4 104D 3C inc a ;select RR1 - 249: 9454+11 104E D309 out (CS_SIO_A_C),A - 250: 9465+11 1050 DB09 in A,(CS_SIO_A_C) ;read RRx - 251: 9476+8 1052 CB47 bit 0,A - 252: 9484+7+5 1054 28F6 jr z,xmodem_wait_out - 253: 9491+10 1056 C9 ret + 246: - 1083 xmodem_wait_out: + 247: 9696+4 1083 97 sub a ;clear a, write into WR0: select RR0 + 248: 9700+4 1084 3C inc a ;select RR1 + 249: 9704+11 1085 D309 out (CS_SIO_A_C),A + 250: 9715+11 1087 DB09 in A,(CS_SIO_A_C) ;read RRx + 251: 9726+8 1089 CB47 bit 0,A + 252: 9734+7+5 108B 28F6 jr z,xmodem_wait_out + 253: 9741+10 108D C9 ret 254: - 255: - 1057 MSG_ERROR: - 256: - 1057 4572726F db "Error: unexpected byte",13,10,0 + 255: - 108E MSG_ERROR: + 256: - 108E 4572726F db "Error: unexpected byte",13,10,0 723A2075 6E657870 65637465 @@ -2338,8 +2378,8 @@ 74650D0A 00 257: - 258: - 1070 MSG_START: - 259: - 1070 41776169 db "Await xmodem connection",13,10,0 + 258: - 10A7 MSG_START: + 259: - 10A7 41776169 db "Await xmodem connection",13,10,0 7420786D 6F64656D 20636F6E @@ -2348,34 +2388,34 @@ 0A00 260: 261: - 262: - 108A xmodem_ack: ;ack routine. Only use when expecting transmission afterwards. - 263: 9501+7 108A 3E06 ld a, SYM_ACK ;send ACK - 264: 9508+17 108C CD4610 call xmodem_out - 265: 9525+17 108F CD1910 call xmodem_read_wait ;wait for response - 266: 9542+10 1092 DA8A10 jp c, xmodem_ack ;if timeout repeat - 267: 9552+10 1095 C34E0F jp xmodem_packet ;if received, continue with new packet + 262: - 10C1 xmodem_ack: ;ack routine. Only use when expecting transmission afterwards. + 263: 9751+7 10C1 3E06 ld a, SYM_ACK ;send ACK + 264: 9758+17 10C3 CD7D10 call xmodem_out + 265: 9775+17 10C6 CD5010 call xmodem_read_wait ;wait for response + 266: 9792+10 10C9 DAC110 jp c, xmodem_ack ;if timeout repeat + 267: 9802+10 10CC C3850F jp xmodem_packet ;if received, continue with new packet 268: - 269: - 1098 xmodem_nak: ;nak routine. Only use when expecting transmission afterwards. - 270: 9562+7 1098 3E15 ld a, SYM_NAK ;send NAK - 271: 9569+17 109A CD4610 call xmodem_out - 272: 9586+17 109D CD1910 call xmodem_read_wait ;wait for response - 273: 9603+10 10A0 DA9810 jp c, xmodem_nak ;if timeout repeat - 274: 9613+10 10A3 C34E0F jp xmodem_packet ;if received, continue with new packet + 269: - 10CF xmodem_nak: ;nak routine. Only use when expecting transmission afterwards. + 270: 9812+7 10CF 3E15 ld a, SYM_NAK ;send NAK + 271: 9819+17 10D1 CD7D10 call xmodem_out + 272: 9836+17 10D4 CD5010 call xmodem_read_wait ;wait for response + 273: 9853+10 10D7 DACF10 jp c, xmodem_nak ;if timeout repeat + 274: 9863+10 10DA C3850F jp xmodem_packet ;if received, continue with new packet 275: - 276: - 10A6 xmodem_wait: - 277: 9623+10 10A6 21FF00 ld hl, 0xFF - 278: 9633+10 10A9 010100 ld bc, 0x01 - 279: - 10AC xmodem_wait_1: - 280: 9643+4 10AC 00 nop - 281: 9647+4 10AD 00 nop - 282: 9651+4 10AE 00 nop - 283: 9655+4 10AF 00 nop - 284: 9659+15 10B0 ED42 sbc hl,bc - 285: 9674+5+6 10B2 C8 ret Z + 276: - 10DD xmodem_wait: + 277: 9873+10 10DD 21FF00 ld hl, 0xFF + 278: 9883+10 10E0 010100 ld bc, 0x01 + 279: - 10E3 xmodem_wait_1: + 280: 9893+4 10E3 00 nop + 281: 9897+4 10E4 00 nop + 282: 9901+4 10E5 00 nop + 283: 9905+4 10E6 00 nop + 284: 9909+15 10E7 ED42 sbc hl,bc + 285: 9924+5+6 10E9 C8 ret Z **** main.asm **** - 492: 9679+12 10B3 18F7 jr xmodem_wait_1 + 504: 9929+12 10EA 18F7 jr xmodem_wait_1 **** main.asm **** - 493: ;.include "debug.s" + 505: ;.include "debug.s" @@ -2383,62 +2423,58 @@ Statistics: 4 passes 0 jr promotions - 332 symbols - 4251 bytes + 330 symbols + 4306 bytes Symbol Table: -AY0_WRITE_REG 83 131 -A_RTS_OFF 304 772 -A_RTS_ON 30D 781 -CMD_DASM 22B 555 -CMD_EXEC 121 289 -CMD_IO_READ 20F 527 -CMD_IO_WRITE 1E6 486 -CMD_SET 1AA 426 -CMD_SET_END 1E0 480 -CMD_SET_LOOP 1C5 453 -CMD_SYNTAX_ERROR 264 612 -CMD_VIEW 140 320 -CMD_VIEW_END 1A4 420 -CMD_VIEW_ROW 179 377 -CMD_VIEW_ROW_LOOP 18B 395 -CONSOLE_INIT 270 624 -CONSOLE_INIT_CTC 270 624 -CONSOLE_INIT_SIO 278 632 +AY0_WRITE_REG 91 145 +A_RTS_OFF 312 786 +A_RTS_ON 31B 795 +CMD_DASM 239 569 +CMD_EXEC 12F 303 +CMD_IO_READ 21D 541 +CMD_IO_WRITE 1F4 500 +CMD_SET 1B8 440 +CMD_SET_END 1EE 494 +CMD_SET_LOOP 1D3 467 +CMD_SYNTAX_ERROR 272 626 +CMD_VIEW 14E 334 +CMD_VIEW_END 1B2 434 +CMD_VIEW_ROW 187 391 +CMD_VIEW_ROW_LOOP 199 409 +CONSOLE_INIT 27E 638 +CONSOLE_INIT_CTC 27E 638 +CONSOLE_INIT_SIO 286 646 CS_BANK =00 0 CS_CTC_0 =04 4 CS_CTC_1 =05 5 CS_CTC_2 =06 6 CS_CTC_3 =07 7 CS_DIP =01 1 +CS_PIO_AC =F6 246 +CS_PIO_AD =F4 244 +CS_PIO_BC =F7 247 +CS_PIO_BD =F5 245 CS_SIO_A_C =09 9 CS_SIO_A_D =08 8 CS_SIO_B_C =0B 11 CS_SIO_B_D =0A 10 -DHEX_TO_BYTE 316 790 -DHEX_TO_BYTE_FAILED 332 818 -EXEC_RST_08 EB6 3766 -EXEC_RST_10 EBA 3770 -EXEC_RST_18 EC6 3782 -HEX_TO_BIN 336 822 -HEX_TO_BIN_2 344 836 -HEX_TO_INVALID_2 34B 843 +DHEX_TO_BYTE 324 804 +DHEX_TO_BYTE_FAILED 340 832 +EXEC_RST_08 EC4 3780 +EXEC_RST_10 EC8 3784 +EXEC_RST_18 ED4 3796 +HEX_TO_BIN 344 836 +HEX_TO_BIN_2 352 850 +HEX_TO_INVALID_2 359 857 INT_VEC 1B 27 IO_AY0_ADDR =40 64 IO_AY0_DATA =41 65 IO_AY1_ADDR =42 66 IO_AY1_DATA =43 67 -IO_PIO_0_A_C =61 97 -IO_PIO_0_A_D =60 96 -IO_PIO_0_B_C =63 99 -IO_PIO_0_B_D =62 98 -IO_PIO_1_A_C =65 101 -IO_PIO_1_A_D =64 100 -IO_PIO_1_B_C =67 103 -IO_PIO_1_B_D =66 102 IO_REG0 =20 32 IO_RTC_AMPM =25 37 IO_RTC_CTR_D =2D 45 @@ -2456,36 +2492,36 @@ IO_RTC_SEC1 =21 33 IO_RTC_WEEK =2C 44 IO_RTC_YEAR1 =2B 43 IO_RTC_YERR0 =2A 42 -Includes 270 624 +Includes 27E 638 MEM_INT_VEC_T =40FE 16638 MEM_LOC_LOAD =4400 17408 MEM_VAR_BLOCK =40FB 16635 MEM_VAR_TIMEA =40FC 16636 MEM_VAR_TIMER =40FE 16638 -MSG_CLEAR 2FC 764 -MSG_ERROR 1057 4183 -MSG_START 1070 4208 +MSG_CLEAR 30A 778 +MSG_ERROR 108E 4238 +MSG_START 10A7 4263 PRG_RAM_START =4110 16656 PRG_RAM_TOP =FF00 65280 PROG_MEM_START =4000 16384 PROG_ROM_START = 100 256 -PROMPT_BEGIN 8B 139 -PROMPT_BEGIN_READ_BACKSPACE C8 200 -PROMPT_BEGIN_READ_LOOP 97 151 -PROMPT_BEGIN_READ_PROCESS EE 238 +PROMPT_BEGIN 99 153 +PROMPT_BEGIN_READ_BACKSPACE D6 214 +PROMPT_BEGIN_READ_LOOP A5 165 +PROMPT_BEGIN_READ_PROCESS FC 252 RST_00 00 0 RST_08 08 8 RST_10 10 16 RST_18 18 24 STACK_RAM_TOP =FFFF 65535 START_ROM =00 0 -STRCONV_BYTES_TO_HEX 34D 845 -STRCONV_BYTES_TO_HEX_1 35C 860 -STRCONV_BYTES_TO_HEX_2 366 870 -STR_Banner_Start EC9 3785 -STR_HEXDUMP_HEADER EF9 3833 -STR_SyntaxError EEF 3823 -STR_Unknown EF4 3828 +STRCONV_BYTES_TO_HEX 35B 859 +STRCONV_BYTES_TO_HEX_1 36A 874 +STRCONV_BYTES_TO_HEX_2 374 884 +STR_Banner_Start F00 3840 +STR_HEXDUMP_HEADER F30 3888 +STR_SyntaxError F26 3878 +STR_Unknown F2B 3883 SYM_ACK =06 6 SYM_C =43 67 SYM_CAN =18 24 @@ -2499,189 +2535,191 @@ VAR_CONSOLE_BAUD=18 24 VAR_CONSOLE_CONF=0F 15 VDP_MEM =80 128 VDP_REG =81 129 -dasm_00 ACE 2766 -dasm_01 DBA 3514 -dasm_02 B54 2900 -dasm_03 D8C 3468 -dasm_08 BD1 3025 -dasm_09 D5F 3423 -dasm_0A B36 2870 -dasm_0B DA3 3491 -dasm_10 B16 2838 -dasm_12 B5F 2911 -dasm_18 AD9 2777 -dasm_1A B40 2880 -dasm_20 AF3 2803 -dasm_22 E00 3584 -dasm_27 B99 2969 -dasm_28 AEC 2796 -dasm_2A DD1 3537 -dasm_2F B9D 2973 -dasm_30 AE4 2788 -dasm_32 B6A 2922 -dasm_37 BA9 2985 -dasm_38 ADD 2781 -dasm_3A B4A 2890 -dasm_3F BA5 2981 -dasm_76 BAD 2989 -dasm_80C6 C2A 3114 -dasm_BE BC7 3015 -dasm_C3 AD2 2770 -dasm_C88E C50 3152 -dasm_C9 B22 2850 -dasm_CD B1C 2844 -dasm_D9 BDE 3038 -dasm_DD B04 2820 -dasm_DD_01 DC1 3521 -dasm_DD_09 D7A 3450 -dasm_DD_22 E16 3606 -dasm_DD_23 D91 3473 -dasm_DD_2A DE8 3560 -dasm_DD_2B DA8 3496 -dasm_DD_34 D2A 3370 -dasm_DD_35 D47 3399 -dasm_DD_86 C32 3122 -dasm_DD_8E C58 3160 -dasm_DD_96 C7B 3195 -dasm_DD_9E C9B 3227 -dasm_DD_A6 CBC 3260 -dasm_DD_AE CF3 3315 -dasm_DD_B6 CD8 3288 -dasm_DD_BE D0F 3343 -dasm_DD_E1 E68 3688 -dasm_DD_E3 BEE 3054 -dasm_DD_E5 E52 3666 -dasm_DD_F9 E38 3640 -dasm_E1 E62 3682 -dasm_E3 BE2 3042 -dasm_E5 E4C 3660 -dasm_E9 AFB 2811 -dasm_ED_42 D71 3441 -dasm_ED_43 E0C 3596 -dasm_ED_44 BA1 2977 -dasm_ED_45 B2C 2860 -dasm_ED_46 BB8 3000 -dasm_ED_4A D68 3432 -dasm_ED_4B DDD 3549 -dasm_ED_4D B27 2855 -dasm_ED_56 BBD 3005 -dasm_ED_5E BC2 3010 -dasm_ED_A0 C06 3078 -dasm_ED_A1 C18 3096 -dasm_ED_A8 C0F 3087 -dasm_ED_A9 C21 3105 -dasm_ED_B0 C0A 3082 -dasm_ED_B1 C1C 3100 -dasm_ED_B8 C13 3091 -dasm_ED_B9 C25 3109 -dasm_F3 BB2 2994 -dasm_F9 E2E 3630 -dasm_FB BB5 2997 -dasm_FD B0D 2829 -dasm_FD_01 DC9 3529 -dasm_FD_09 D83 3459 -dasm_FD_22 E22 3618 -dasm_FD_23 D9A 3482 -dasm_FD_2A DF4 3572 -dasm_FD_2B DB1 3505 -dasm_FD_34 D36 3382 -dasm_FD_35 D53 3411 -dasm_FD_86 C41 3137 -dasm_FD_8E C67 3175 -dasm_FD_96 C87 3207 -dasm_FD_9E CA9 3241 -dasm_FD_A6 CC8 3272 -dasm_FD_AE CFF 3327 -dasm_FD_B6 CE3 3299 -dasm_FD_BE D1A 3354 -dasm_FD_E1 E70 3696 -dasm_FD_E3 BFA 3066 -dasm_FD_E5 E5A 3674 -dasm_FD_F9 E42 3650 -dasm_FF B31 2865 -dasm_UU E78 3704 -dasm_UW E7C 3708 -dasm__AND CB7 3255 -dasm__CP D0B 3339 -dasm__DEC D42 3394 -dasm__ED_47 B89 2953 -dasm__ED_4F B91 2961 -dasm__ED_57 B79 2937 -dasm__ED_5F B81 2945 -dasm__INC D25 3365 -dasm__LD B75 2933 -dasm__OR CD4 3284 -dasm__SBC C93 3219 -dasm__SUB C76 3190 -dasm__XOR CEE 3310 -dasm_opcode_table 676 1654 -dasm_print16hex_addr 4A3 1187 -dasm_print8hex 4BB 1211 -dasm_printFlags_table E81 3713 -dasm_printRegister8_table E91 3729 -dasm_printRegister8_table_HL EB1 3761 -dasm_printRegisterIX_table E99 3737 -dasm_printRegisterIY_table EA1 3745 -dasm_printRegisterSP_table EA9 3753 -disassemble 367 871 -disassemble_continue 44D 1101 -disassemble_err 43D 1085 -disassemble_next 36B 875 -disassemble_print_opcode_params_end 43A 1082 -disassemble_print_opcode_params_loop 3E6 998 -disassemble_print_opcode_raw 3A8 936 -disassemble_print_opcode_raw_fill 3BC 956 -disassemble_table_first_match 47F 1151 -disassemble_table_found 499 1177 -disassemble_table_notfound 49D 1181 -disassemble_table_seek 45B 1115 -disassemble_table_seek_loop 45F 1119 -mon_start_complete 76 118 +beep ED7 3799 +beep_pause EF1 3825 +dasm_00 ADC 2780 +dasm_01 DC8 3528 +dasm_02 B62 2914 +dasm_03 D9A 3482 +dasm_08 BDF 3039 +dasm_09 D6D 3437 +dasm_0A B44 2884 +dasm_0B DB1 3505 +dasm_10 B24 2852 +dasm_12 B6D 2925 +dasm_18 AE7 2791 +dasm_1A B4E 2894 +dasm_20 B01 2817 +dasm_22 E0E 3598 +dasm_27 BA7 2983 +dasm_28 AFA 2810 +dasm_2A DDF 3551 +dasm_2F BAB 2987 +dasm_30 AF2 2802 +dasm_32 B78 2936 +dasm_37 BB7 2999 +dasm_38 AEB 2795 +dasm_3A B58 2904 +dasm_3F BB3 2995 +dasm_76 BBB 3003 +dasm_80C6 C38 3128 +dasm_BE BD5 3029 +dasm_C3 AE0 2784 +dasm_C88E C5E 3166 +dasm_C9 B30 2864 +dasm_CD B2A 2858 +dasm_D9 BEC 3052 +dasm_DD B12 2834 +dasm_DD_01 DCF 3535 +dasm_DD_09 D88 3464 +dasm_DD_22 E24 3620 +dasm_DD_23 D9F 3487 +dasm_DD_2A DF6 3574 +dasm_DD_2B DB6 3510 +dasm_DD_34 D38 3384 +dasm_DD_35 D55 3413 +dasm_DD_86 C40 3136 +dasm_DD_8E C66 3174 +dasm_DD_96 C89 3209 +dasm_DD_9E CA9 3241 +dasm_DD_A6 CCA 3274 +dasm_DD_AE D01 3329 +dasm_DD_B6 CE6 3302 +dasm_DD_BE D1D 3357 +dasm_DD_E1 E76 3702 +dasm_DD_E3 BFC 3068 +dasm_DD_E5 E60 3680 +dasm_DD_F9 E46 3654 +dasm_E1 E70 3696 +dasm_E3 BF0 3056 +dasm_E5 E5A 3674 +dasm_E9 B09 2825 +dasm_ED_42 D7F 3455 +dasm_ED_43 E1A 3610 +dasm_ED_44 BAF 2991 +dasm_ED_45 B3A 2874 +dasm_ED_46 BC6 3014 +dasm_ED_4A D76 3446 +dasm_ED_4B DEB 3563 +dasm_ED_4D B35 2869 +dasm_ED_56 BCB 3019 +dasm_ED_5E BD0 3024 +dasm_ED_A0 C14 3092 +dasm_ED_A1 C26 3110 +dasm_ED_A8 C1D 3101 +dasm_ED_A9 C2F 3119 +dasm_ED_B0 C18 3096 +dasm_ED_B1 C2A 3114 +dasm_ED_B8 C21 3105 +dasm_ED_B9 C33 3123 +dasm_F3 BC0 3008 +dasm_F9 E3C 3644 +dasm_FB BC3 3011 +dasm_FD B1B 2843 +dasm_FD_01 DD7 3543 +dasm_FD_09 D91 3473 +dasm_FD_22 E30 3632 +dasm_FD_23 DA8 3496 +dasm_FD_2A E02 3586 +dasm_FD_2B DBF 3519 +dasm_FD_34 D44 3396 +dasm_FD_35 D61 3425 +dasm_FD_86 C4F 3151 +dasm_FD_8E C75 3189 +dasm_FD_96 C95 3221 +dasm_FD_9E CB7 3255 +dasm_FD_A6 CD6 3286 +dasm_FD_AE D0D 3341 +dasm_FD_B6 CF1 3313 +dasm_FD_BE D28 3368 +dasm_FD_E1 E7E 3710 +dasm_FD_E3 C08 3080 +dasm_FD_E5 E68 3688 +dasm_FD_F9 E50 3664 +dasm_FF B3F 2879 +dasm_UU E86 3718 +dasm_UW E8A 3722 +dasm__AND CC5 3269 +dasm__CP D19 3353 +dasm__DEC D50 3408 +dasm__ED_47 B97 2967 +dasm__ED_4F B9F 2975 +dasm__ED_57 B87 2951 +dasm__ED_5F B8F 2959 +dasm__INC D33 3379 +dasm__LD B83 2947 +dasm__OR CE2 3298 +dasm__SBC CA1 3233 +dasm__SUB C84 3204 +dasm__XOR CFC 3324 +dasm_opcode_table 684 1668 +dasm_print16hex_addr 4B1 1201 +dasm_print8hex 4C9 1225 +dasm_printFlags_table E8F 3727 +dasm_printRegister8_table E9F 3743 +dasm_printRegister8_table_HL EBF 3775 +dasm_printRegisterIX_table EA7 3751 +dasm_printRegisterIY_table EAF 3759 +dasm_printRegisterSP_table EB7 3767 +disassemble 375 885 +disassemble_continue 45B 1115 +disassemble_err 44B 1099 +disassemble_next 379 889 +disassemble_print_opcode_params_end 448 1096 +disassemble_print_opcode_params_loop 3F4 1012 +disassemble_print_opcode_raw 3B6 950 +disassemble_print_opcode_raw_fill 3CA 970 +disassemble_table_first_match 48D 1165 +disassemble_table_found 4A7 1191 +disassemble_table_notfound 4AB 1195 +disassemble_table_seek 469 1129 +disassemble_table_seek_loop 46D 1133 +mon_start_complete 7E 126 mon_start_init_ctc 50 80 -mon_start_init_serial 5F 95 +mon_start_init_serial 67 103 mon_start_init_sound 50 80 -mon_start_ram 62 98 -mon_start_ram_loop 6B 107 +mon_start_ram 6A 106 +mon_start_ram_loop 73 115 mon_var_template 44 68 mon_var_template_end 402A 16426 -param_01 4C9 1225 -param_02 4F0 1264 -param_03 50D 1293 -param_03_done 545 1349 -param_03_neg 52E 1326 -param_04 549 1353 -param_04_i 559 1369 -param_05 55F 1375 -param_06 56C 1388 -param_07 586 1414 -param_08 593 1427 -param_09 5A8 1448 -param_09_0A 5AE 1454 -param_0A 59F 1439 -param_10 5BD 1469 -param_11 5CD 1485 -param_11_12 5DC 1500 -param_11_12_all 5FC 1532 -param_11_12_def 5EF 1519 -param_11_12_ix 5F4 1524 -param_11_12_iy 5F9 1529 -param_12 5D5 1493 -param_13 60D 1549 -param_80 62C 1580 -param_80_seek 633 1587 -param_81 623 1571 -param_comma 667 1639 -param_printRegister 642 1602 -param_printRegisterA 660 1632 -param_printRegisterHL 658 1624 -print_a_hex 2D9 729 -print_char 2A9 681 -print_clear 2BC 700 -print_newLine 2C3 707 -print_str 2B1 689 -print_str_end 2BB 699 -print_wait_out 2CE 718 -read_char 2EA 746 +param_01 4D7 1239 +param_02 4FE 1278 +param_03 51B 1307 +param_03_done 553 1363 +param_03_neg 53C 1340 +param_04 557 1367 +param_04_i 567 1383 +param_05 56D 1389 +param_06 57A 1402 +param_07 594 1428 +param_08 5A1 1441 +param_09 5B6 1462 +param_09_0A 5BC 1468 +param_0A 5AD 1453 +param_10 5CB 1483 +param_11 5DB 1499 +param_11_12 5EA 1514 +param_11_12_all 60A 1546 +param_11_12_def 5FD 1533 +param_11_12_ix 602 1538 +param_11_12_iy 607 1543 +param_12 5E3 1507 +param_13 61B 1563 +param_80 63A 1594 +param_80_seek 641 1601 +param_81 631 1585 +param_comma 675 1653 +param_printRegister 650 1616 +param_printRegisterA 66E 1646 +param_printRegisterHL 666 1638 +print_a_hex 2E7 743 +print_char 2B7 695 +print_clear 2CA 714 +print_newLine 2D1 721 +print_str 2BF 703 +print_str_end 2C9 713 +print_wait_out 2DC 732 +read_char 2F8 760 var_buffer 4029 16425 var_buffer_len 4000 16384 var_bytes_count=411A 16666 @@ -2701,24 +2739,24 @@ var_opcode_table=4112 16658 var_opcode_x =4115 16661 var_ps2mem 4019 16409 var_scratch 4009 16393 -xmodem_ack 108A 4234 -xmodem_await_conn F43 3907 -xmodem_end FEE 4078 -xmodem_err FB4 4020 -xmodem_init F15 3861 -xmodem_int FF5 4085 -xmodem_int_cont 1014 4116 -xmodem_nak 1098 4248 -xmodem_out 1046 4166 -xmodem_packet F4E 3918 -xmodem_packet_EOT FAC 4012 -xmodem_packet_get F60 3936 -xmodem_packet_get_crc F99 3993 -xmodem_packet_get_data F8A 3978 +xmodem_ack 10C1 4289 +xmodem_await_conn F7A 3962 +xmodem_end 1025 4133 +xmodem_err FEB 4075 +xmodem_init F4C 3916 +xmodem_int 102C 4140 +xmodem_int_cont 104B 4171 +xmodem_nak 10CF 4303 +xmodem_out 107D 4221 +xmodem_packet F85 3973 +xmodem_packet_EOT FE3 4067 +xmodem_packet_get F97 3991 +xmodem_packet_get_crc FD0 4048 +xmodem_packet_get_data FC1 4033 xmodem_read_timeount=03 3 -xmodem_read_wait 1019 4121 -xmodem_read_wait_loop 1027 4135 -xmodem_read_wait_timeout 1044 4164 -xmodem_wait 10A6 4262 -xmodem_wait_1 10AC 4268 -xmodem_wait_out 104C 4172 +xmodem_read_wait 1050 4176 +xmodem_read_wait_loop 105E 4190 +xmodem_read_wait_timeout 107B 4219 +xmodem_wait 10DD 4317 +xmodem_wait_1 10E3 4323 +xmodem_wait_out 1083 4227 diff --git a/OperatingSystem/monitor_v2/zout/symbols.s b/OperatingSystem/monitor_v2/zout/symbols.s index b345c6f..28c78ae 100644 --- a/OperatingSystem/monitor_v2/zout/symbols.s +++ b/OperatingSystem/monitor_v2/zout/symbols.s @@ -1,235 +1,237 @@ ;This file is generated by the build script. ;Do not make any changes here! -AY0_WRITE_REG equ 0x83 -A_RTS_OFF equ 0x304 -A_RTS_ON equ 0x30D -CMD_DASM equ 0x22B -CMD_EXEC equ 0x121 -CMD_IO_READ equ 0x20F -CMD_IO_WRITE equ 0x1E6 -CMD_SET equ 0x1AA -CMD_SET_END equ 0x1E0 -CMD_SET_LOOP equ 0x1C5 -CMD_SYNTAX_ERROR equ 0x264 -CMD_VIEW equ 0x140 -CMD_VIEW_END equ 0x1A4 -CMD_VIEW_ROW equ 0x179 -CMD_VIEW_ROW_LOOP equ 0x18B -CONSOLE_INIT equ 0x270 -CONSOLE_INIT_CTC equ 0x270 -CONSOLE_INIT_SIO equ 0x278 -DHEX_TO_BYTE equ 0x316 -DHEX_TO_BYTE_FAILED equ 0x332 -EXEC_RST_08 equ 0xEB6 -EXEC_RST_10 equ 0xEBA -EXEC_RST_18 equ 0xEC6 -HEX_TO_BIN equ 0x336 -HEX_TO_BIN_2 equ 0x344 -HEX_TO_INVALID_2 equ 0x34B +AY0_WRITE_REG equ 0x91 +A_RTS_OFF equ 0x312 +A_RTS_ON equ 0x31B +CMD_DASM equ 0x239 +CMD_EXEC equ 0x12F +CMD_IO_READ equ 0x21D +CMD_IO_WRITE equ 0x1F4 +CMD_SET equ 0x1B8 +CMD_SET_END equ 0x1EE +CMD_SET_LOOP equ 0x1D3 +CMD_SYNTAX_ERROR equ 0x272 +CMD_VIEW equ 0x14E +CMD_VIEW_END equ 0x1B2 +CMD_VIEW_ROW equ 0x187 +CMD_VIEW_ROW_LOOP equ 0x199 +CONSOLE_INIT equ 0x27E +CONSOLE_INIT_CTC equ 0x27E +CONSOLE_INIT_SIO equ 0x286 +DHEX_TO_BYTE equ 0x324 +DHEX_TO_BYTE_FAILED equ 0x340 +EXEC_RST_08 equ 0xEC4 +EXEC_RST_10 equ 0xEC8 +EXEC_RST_18 equ 0xED4 +HEX_TO_BIN equ 0x344 +HEX_TO_BIN_2 equ 0x352 +HEX_TO_INVALID_2 equ 0x359 INT_VEC equ 0x1B -Includes equ 0x270 -MSG_CLEAR equ 0x2FC -MSG_ERROR equ 0x1057 -MSG_START equ 0x1070 -PROMPT_BEGIN equ 0x8B -PROMPT_BEGIN_READ_BACKSPACE equ 0xC8 -PROMPT_BEGIN_READ_LOOP equ 0x97 -PROMPT_BEGIN_READ_PROCESS equ 0xEE +Includes equ 0x27E +MSG_CLEAR equ 0x30A +MSG_ERROR equ 0x108E +MSG_START equ 0x10A7 +PROMPT_BEGIN equ 0x99 +PROMPT_BEGIN_READ_BACKSPACE equ 0xD6 +PROMPT_BEGIN_READ_LOOP equ 0xA5 +PROMPT_BEGIN_READ_PROCESS equ 0xFC RST_00 equ 0x00 RST_08 equ 0x08 RST_10 equ 0x10 RST_18 equ 0x18 -STRCONV_BYTES_TO_HEX equ 0x34D -STRCONV_BYTES_TO_HEX_1 equ 0x35C -STRCONV_BYTES_TO_HEX_2 equ 0x366 -STR_Banner_Start equ 0xEC9 -STR_HEXDUMP_HEADER equ 0xEF9 -STR_SyntaxError equ 0xEEF -STR_Unknown equ 0xEF4 -dasm_00 equ 0xACE -dasm_01 equ 0xDBA -dasm_02 equ 0xB54 -dasm_03 equ 0xD8C -dasm_08 equ 0xBD1 -dasm_09 equ 0xD5F -dasm_0A equ 0xB36 -dasm_0B equ 0xDA3 -dasm_10 equ 0xB16 -dasm_12 equ 0xB5F -dasm_18 equ 0xAD9 -dasm_1A equ 0xB40 -dasm_20 equ 0xAF3 -dasm_22 equ 0xE00 -dasm_27 equ 0xB99 -dasm_28 equ 0xAEC -dasm_2A equ 0xDD1 -dasm_2F equ 0xB9D -dasm_30 equ 0xAE4 -dasm_32 equ 0xB6A -dasm_37 equ 0xBA9 -dasm_38 equ 0xADD -dasm_3A equ 0xB4A -dasm_3F equ 0xBA5 -dasm_76 equ 0xBAD -dasm_80C6 equ 0xC2A -dasm_BE equ 0xBC7 -dasm_C3 equ 0xAD2 -dasm_C88E equ 0xC50 -dasm_C9 equ 0xB22 -dasm_CD equ 0xB1C -dasm_D9 equ 0xBDE -dasm_DD equ 0xB04 -dasm_DD_01 equ 0xDC1 -dasm_DD_09 equ 0xD7A -dasm_DD_22 equ 0xE16 -dasm_DD_23 equ 0xD91 -dasm_DD_2A equ 0xDE8 -dasm_DD_2B equ 0xDA8 -dasm_DD_34 equ 0xD2A -dasm_DD_35 equ 0xD47 -dasm_DD_86 equ 0xC32 -dasm_DD_8E equ 0xC58 -dasm_DD_96 equ 0xC7B -dasm_DD_9E equ 0xC9B -dasm_DD_A6 equ 0xCBC -dasm_DD_AE equ 0xCF3 -dasm_DD_B6 equ 0xCD8 -dasm_DD_BE equ 0xD0F -dasm_DD_E1 equ 0xE68 -dasm_DD_E3 equ 0xBEE -dasm_DD_E5 equ 0xE52 -dasm_DD_F9 equ 0xE38 -dasm_E1 equ 0xE62 -dasm_E3 equ 0xBE2 -dasm_E5 equ 0xE4C -dasm_E9 equ 0xAFB -dasm_ED_42 equ 0xD71 -dasm_ED_43 equ 0xE0C -dasm_ED_44 equ 0xBA1 -dasm_ED_45 equ 0xB2C -dasm_ED_46 equ 0xBB8 -dasm_ED_4A equ 0xD68 -dasm_ED_4B equ 0xDDD -dasm_ED_4D equ 0xB27 -dasm_ED_56 equ 0xBBD -dasm_ED_5E equ 0xBC2 -dasm_ED_A0 equ 0xC06 -dasm_ED_A1 equ 0xC18 -dasm_ED_A8 equ 0xC0F -dasm_ED_A9 equ 0xC21 -dasm_ED_B0 equ 0xC0A -dasm_ED_B1 equ 0xC1C -dasm_ED_B8 equ 0xC13 -dasm_ED_B9 equ 0xC25 -dasm_F3 equ 0xBB2 -dasm_F9 equ 0xE2E -dasm_FB equ 0xBB5 -dasm_FD equ 0xB0D -dasm_FD_01 equ 0xDC9 -dasm_FD_09 equ 0xD83 -dasm_FD_22 equ 0xE22 -dasm_FD_23 equ 0xD9A -dasm_FD_2A equ 0xDF4 -dasm_FD_2B equ 0xDB1 -dasm_FD_34 equ 0xD36 -dasm_FD_35 equ 0xD53 -dasm_FD_86 equ 0xC41 -dasm_FD_8E equ 0xC67 -dasm_FD_96 equ 0xC87 -dasm_FD_9E equ 0xCA9 -dasm_FD_A6 equ 0xCC8 -dasm_FD_AE equ 0xCFF -dasm_FD_B6 equ 0xCE3 -dasm_FD_BE equ 0xD1A -dasm_FD_E1 equ 0xE70 -dasm_FD_E3 equ 0xBFA -dasm_FD_E5 equ 0xE5A -dasm_FD_F9 equ 0xE42 -dasm_FF equ 0xB31 -dasm_UU equ 0xE78 -dasm_UW equ 0xE7C -dasm__AND equ 0xCB7 -dasm__CP equ 0xD0B -dasm__DEC equ 0xD42 -dasm__ED_47 equ 0xB89 -dasm__ED_4F equ 0xB91 -dasm__ED_57 equ 0xB79 -dasm__ED_5F equ 0xB81 -dasm__INC equ 0xD25 -dasm__LD equ 0xB75 -dasm__OR equ 0xCD4 -dasm__SBC equ 0xC93 -dasm__SUB equ 0xC76 -dasm__XOR equ 0xCEE -dasm_opcode_table equ 0x676 -dasm_print16hex_addr equ 0x4A3 -dasm_print8hex equ 0x4BB -dasm_printFlags_table equ 0xE81 -dasm_printRegister8_table equ 0xE91 -dasm_printRegister8_table_HL equ 0xEB1 -dasm_printRegisterIX_table equ 0xE99 -dasm_printRegisterIY_table equ 0xEA1 -dasm_printRegisterSP_table equ 0xEA9 -disassemble equ 0x367 -disassemble_continue equ 0x44D -disassemble_err equ 0x43D -disassemble_next equ 0x36B -disassemble_print_opcode_params_end equ 0x43A -disassemble_print_opcode_params_loop equ 0x3E6 -disassemble_print_opcode_raw equ 0x3A8 -disassemble_print_opcode_raw_fill equ 0x3BC -disassemble_table_first_match equ 0x47F -disassemble_table_found equ 0x499 -disassemble_table_notfound equ 0x49D -disassemble_table_seek equ 0x45B -disassemble_table_seek_loop equ 0x45F -mon_start_complete equ 0x76 +STRCONV_BYTES_TO_HEX equ 0x35B +STRCONV_BYTES_TO_HEX_1 equ 0x36A +STRCONV_BYTES_TO_HEX_2 equ 0x374 +STR_Banner_Start equ 0xF00 +STR_HEXDUMP_HEADER equ 0xF30 +STR_SyntaxError equ 0xF26 +STR_Unknown equ 0xF2B +beep equ 0xED7 +beep_pause equ 0xEF1 +dasm_00 equ 0xADC +dasm_01 equ 0xDC8 +dasm_02 equ 0xB62 +dasm_03 equ 0xD9A +dasm_08 equ 0xBDF +dasm_09 equ 0xD6D +dasm_0A equ 0xB44 +dasm_0B equ 0xDB1 +dasm_10 equ 0xB24 +dasm_12 equ 0xB6D +dasm_18 equ 0xAE7 +dasm_1A equ 0xB4E +dasm_20 equ 0xB01 +dasm_22 equ 0xE0E +dasm_27 equ 0xBA7 +dasm_28 equ 0xAFA +dasm_2A equ 0xDDF +dasm_2F equ 0xBAB +dasm_30 equ 0xAF2 +dasm_32 equ 0xB78 +dasm_37 equ 0xBB7 +dasm_38 equ 0xAEB +dasm_3A equ 0xB58 +dasm_3F equ 0xBB3 +dasm_76 equ 0xBBB +dasm_80C6 equ 0xC38 +dasm_BE equ 0xBD5 +dasm_C3 equ 0xAE0 +dasm_C88E equ 0xC5E +dasm_C9 equ 0xB30 +dasm_CD equ 0xB2A +dasm_D9 equ 0xBEC +dasm_DD equ 0xB12 +dasm_DD_01 equ 0xDCF +dasm_DD_09 equ 0xD88 +dasm_DD_22 equ 0xE24 +dasm_DD_23 equ 0xD9F +dasm_DD_2A equ 0xDF6 +dasm_DD_2B equ 0xDB6 +dasm_DD_34 equ 0xD38 +dasm_DD_35 equ 0xD55 +dasm_DD_86 equ 0xC40 +dasm_DD_8E equ 0xC66 +dasm_DD_96 equ 0xC89 +dasm_DD_9E equ 0xCA9 +dasm_DD_A6 equ 0xCCA +dasm_DD_AE equ 0xD01 +dasm_DD_B6 equ 0xCE6 +dasm_DD_BE equ 0xD1D +dasm_DD_E1 equ 0xE76 +dasm_DD_E3 equ 0xBFC +dasm_DD_E5 equ 0xE60 +dasm_DD_F9 equ 0xE46 +dasm_E1 equ 0xE70 +dasm_E3 equ 0xBF0 +dasm_E5 equ 0xE5A +dasm_E9 equ 0xB09 +dasm_ED_42 equ 0xD7F +dasm_ED_43 equ 0xE1A +dasm_ED_44 equ 0xBAF +dasm_ED_45 equ 0xB3A +dasm_ED_46 equ 0xBC6 +dasm_ED_4A equ 0xD76 +dasm_ED_4B equ 0xDEB +dasm_ED_4D equ 0xB35 +dasm_ED_56 equ 0xBCB +dasm_ED_5E equ 0xBD0 +dasm_ED_A0 equ 0xC14 +dasm_ED_A1 equ 0xC26 +dasm_ED_A8 equ 0xC1D +dasm_ED_A9 equ 0xC2F +dasm_ED_B0 equ 0xC18 +dasm_ED_B1 equ 0xC2A +dasm_ED_B8 equ 0xC21 +dasm_ED_B9 equ 0xC33 +dasm_F3 equ 0xBC0 +dasm_F9 equ 0xE3C +dasm_FB equ 0xBC3 +dasm_FD equ 0xB1B +dasm_FD_01 equ 0xDD7 +dasm_FD_09 equ 0xD91 +dasm_FD_22 equ 0xE30 +dasm_FD_23 equ 0xDA8 +dasm_FD_2A equ 0xE02 +dasm_FD_2B equ 0xDBF +dasm_FD_34 equ 0xD44 +dasm_FD_35 equ 0xD61 +dasm_FD_86 equ 0xC4F +dasm_FD_8E equ 0xC75 +dasm_FD_96 equ 0xC95 +dasm_FD_9E equ 0xCB7 +dasm_FD_A6 equ 0xCD6 +dasm_FD_AE equ 0xD0D +dasm_FD_B6 equ 0xCF1 +dasm_FD_BE equ 0xD28 +dasm_FD_E1 equ 0xE7E +dasm_FD_E3 equ 0xC08 +dasm_FD_E5 equ 0xE68 +dasm_FD_F9 equ 0xE50 +dasm_FF equ 0xB3F +dasm_UU equ 0xE86 +dasm_UW equ 0xE8A +dasm__AND equ 0xCC5 +dasm__CP equ 0xD19 +dasm__DEC equ 0xD50 +dasm__ED_47 equ 0xB97 +dasm__ED_4F equ 0xB9F +dasm__ED_57 equ 0xB87 +dasm__ED_5F equ 0xB8F +dasm__INC equ 0xD33 +dasm__LD equ 0xB83 +dasm__OR equ 0xCE2 +dasm__SBC equ 0xCA1 +dasm__SUB equ 0xC84 +dasm__XOR equ 0xCFC +dasm_opcode_table equ 0x684 +dasm_print16hex_addr equ 0x4B1 +dasm_print8hex equ 0x4C9 +dasm_printFlags_table equ 0xE8F +dasm_printRegister8_table equ 0xE9F +dasm_printRegister8_table_HL equ 0xEBF +dasm_printRegisterIX_table equ 0xEA7 +dasm_printRegisterIY_table equ 0xEAF +dasm_printRegisterSP_table equ 0xEB7 +disassemble equ 0x375 +disassemble_continue equ 0x45B +disassemble_err equ 0x44B +disassemble_next equ 0x379 +disassemble_print_opcode_params_end equ 0x448 +disassemble_print_opcode_params_loop equ 0x3F4 +disassemble_print_opcode_raw equ 0x3B6 +disassemble_print_opcode_raw_fill equ 0x3CA +disassemble_table_first_match equ 0x48D +disassemble_table_found equ 0x4A7 +disassemble_table_notfound equ 0x4AB +disassemble_table_seek equ 0x469 +disassemble_table_seek_loop equ 0x46D +mon_start_complete equ 0x7E mon_start_init_ctc equ 0x50 -mon_start_init_serial equ 0x5F +mon_start_init_serial equ 0x67 mon_start_init_sound equ 0x50 -mon_start_ram equ 0x62 -mon_start_ram_loop equ 0x6B +mon_start_ram equ 0x6A +mon_start_ram_loop equ 0x73 mon_var_template equ 0x44 mon_var_template_end equ 0x402A -param_01 equ 0x4C9 -param_02 equ 0x4F0 -param_03 equ 0x50D -param_03_done equ 0x545 -param_03_neg equ 0x52E -param_04 equ 0x549 -param_04_i equ 0x559 -param_05 equ 0x55F -param_06 equ 0x56C -param_07 equ 0x586 -param_08 equ 0x593 -param_09 equ 0x5A8 -param_09_0A equ 0x5AE -param_0A equ 0x59F -param_10 equ 0x5BD -param_11 equ 0x5CD -param_11_12 equ 0x5DC -param_11_12_all equ 0x5FC -param_11_12_def equ 0x5EF -param_11_12_ix equ 0x5F4 -param_11_12_iy equ 0x5F9 -param_12 equ 0x5D5 -param_13 equ 0x60D -param_80 equ 0x62C -param_80_seek equ 0x633 -param_81 equ 0x623 -param_comma equ 0x667 -param_printRegister equ 0x642 -param_printRegisterA equ 0x660 -param_printRegisterHL equ 0x658 -print_a_hex equ 0x2D9 -print_char equ 0x2A9 -print_clear equ 0x2BC -print_newLine equ 0x2C3 -print_str equ 0x2B1 -print_str_end equ 0x2BB -print_wait_out equ 0x2CE -read_char equ 0x2EA +param_01 equ 0x4D7 +param_02 equ 0x4FE +param_03 equ 0x51B +param_03_done equ 0x553 +param_03_neg equ 0x53C +param_04 equ 0x557 +param_04_i equ 0x567 +param_05 equ 0x56D +param_06 equ 0x57A +param_07 equ 0x594 +param_08 equ 0x5A1 +param_09 equ 0x5B6 +param_09_0A equ 0x5BC +param_0A equ 0x5AD +param_10 equ 0x5CB +param_11 equ 0x5DB +param_11_12 equ 0x5EA +param_11_12_all equ 0x60A +param_11_12_def equ 0x5FD +param_11_12_ix equ 0x602 +param_11_12_iy equ 0x607 +param_12 equ 0x5E3 +param_13 equ 0x61B +param_80 equ 0x63A +param_80_seek equ 0x641 +param_81 equ 0x631 +param_comma equ 0x675 +param_printRegister equ 0x650 +param_printRegisterA equ 0x66E +param_printRegisterHL equ 0x666 +print_a_hex equ 0x2E7 +print_char equ 0x2B7 +print_clear equ 0x2CA +print_newLine equ 0x2D1 +print_str equ 0x2BF +print_str_end equ 0x2C9 +print_wait_out equ 0x2DC +read_char equ 0x2F8 var_buffer equ 0x4029 var_buffer_len equ 0x4000 var_curserchar equ 0x4006 @@ -241,23 +243,23 @@ var_cursery equ 0x4003 var_last_char equ 0x4001 var_ps2mem equ 0x4019 var_scratch equ 0x4009 -xmodem_ack equ 0x108A -xmodem_await_conn equ 0xF43 -xmodem_end equ 0xFEE -xmodem_err equ 0xFB4 -xmodem_init equ 0xF15 -xmodem_int equ 0xFF5 -xmodem_int_cont equ 0x1014 -xmodem_nak equ 0x1098 -xmodem_out equ 0x1046 -xmodem_packet equ 0xF4E -xmodem_packet_EOT equ 0xFAC -xmodem_packet_get equ 0xF60 -xmodem_packet_get_crc equ 0xF99 -xmodem_packet_get_data equ 0xF8A -xmodem_read_wait equ 0x1019 -xmodem_read_wait_loop equ 0x1027 -xmodem_read_wait_timeout equ 0x1044 -xmodem_wait equ 0x10A6 -xmodem_wait_1 equ 0x10AC -xmodem_wait_out equ 0x104C +xmodem_ack equ 0x10C1 +xmodem_await_conn equ 0xF7A +xmodem_end equ 0x1025 +xmodem_err equ 0xFEB +xmodem_init equ 0xF4C +xmodem_int equ 0x102C +xmodem_int_cont equ 0x104B +xmodem_nak equ 0x10CF +xmodem_out equ 0x107D +xmodem_packet equ 0xF85 +xmodem_packet_EOT equ 0xFE3 +xmodem_packet_get equ 0xF97 +xmodem_packet_get_crc equ 0xFD0 +xmodem_packet_get_data equ 0xFC1 +xmodem_read_wait equ 0x1050 +xmodem_read_wait_loop equ 0x105E +xmodem_read_wait_timeout equ 0x107B +xmodem_wait equ 0x10DD +xmodem_wait_1 equ 0x10E3 +xmodem_wait_out equ 0x1083 diff --git a/OperatingSystem/software/include/regdump.s b/OperatingSystem/software/include/regdump.s new file mode 100644 index 0000000..ddd7d89 --- /dev/null +++ b/OperatingSystem/software/include/regdump.s @@ -0,0 +1,34 @@ +regdump: + + PUSH BC + PUSH DE + PUSH HL + PUSH AF + + CALL PRINTINLINE + defb "REGDUMP",10,13,"A: 0x",0 + call print_a_hex + CALL PRINTINLINE + defb " F: 0x",0 + POP BC + PUSH BC + LD A,C + call print_a_hex + + CALL PRINTINLINE + defb 13,10,"BC: 0x",0 + + + + ld a,b + call print_a_hex + ld a,c + call print_a_hex + CALL PRINTINLINE + defb 13,10,0 + + POP AF + POP HL + POP DE + POP BC + \ No newline at end of file diff --git a/OperatingSystem/software/test.asm b/OperatingSystem/software/test.asm index f2178da..008e25b 100644 --- a/OperatingSystem/software/test.asm +++ b/OperatingSystem/software/test.asm @@ -1,10 +1,327 @@ .include "extern_symbols.s" ;include monitor symbols. - org 0x8000 + org 0xB000 +CS_PIO_BD .EQU 0xF5 +CS_PIO_BC .EQU 0xF7 +CS_PIO_AD .EQU 0xF4 +CS_PIO_AC .EQU 0xF6 + +CS_I2C_S1 .EQU 0xF3 +CS_I2C_SX .EQU 0xF2 + +IIC_RTC equ 11010000b + +IIC_INIT: + LD A,0xCF + OUT (CS_PIO_AC), A + LD A,11110101b + OUT (CS_PIO_AC), A + + LD A,00000000b ; Reset PCF8584 minimum 30 clock cycles + OUT (CS_PIO_AD), A + LD BC,0x1000 + CALL PAUSE_LOOP + LD A,0000010b + OUT (CS_PIO_AD), A + + NOP + NOP + NOP + + LD A, 0x80 ;S1 -> Select S0, PIN disabled, ESO = 0, Interrupt disabled, STA, STA, ACK = 0 + OUT (CS_I2C_S1),A + CALL SlowAccess + CALL SlowAccess + + LD A,0x55 ;S0 -> Loads byte 55H into register S0'; effective own address becomes AAH + OUT (CS_I2C_SX),A + CALL SlowAccess + + LD A, 0xA0 ;S1 -> Loads byte A0H into register S1, i.e. next byte will be loaded into the clock control register S2. + OUT (CS_I2C_S1),A + CALL SlowAccess + + + LD A,0x00 ;Load 18H into S2 register (clock control - 8 MHz, 90 KHz) + OUT (CS_I2C_SX),A + CALL SlowAccess + + LD A,0xC1 ;S1 -> loads byte C1H into register S1; register enable + ;serial interface, set I 2C-bus into idle mode; + ;SDA and SCL are HIGH. The next write or read + ;operation will be to/from data transfer register + ;S0 if A0 = LOW.; + OUT (CS_I2C_S1),A + CALL SlowAccess + + + + ;CALL force_stop + JP PROMPT_BEGIN + + LD BC,$0100 + CALL PAUSE_LOOP + + + ; Send test message to RTC + + LD DE, 0xC000 ; Set I2C Buffer Location + LD A,0x00 + LD (DE),A + ;call regdump + + LD B, IIC_RTC ; Set I2C Address + LD A, 1 ; Set I2C Buffer length + call i2c_send + + LD DE, 0xC010 + LD B, IIC_RTC + LD A, 7 + call i2c_read + + - LD A,4 - LD B,5 - ADD A,b - LD (0x8010),A JP PROMPT_BEGIN +;CLK_ENABLE: +; LD DE, 0xC000 ; Set I2C Buffer Location +; LD A,0x00 +; LD (0xC000),A +; LD (0xC001),A +; ;call regdump +; +; LD B, IIC_RTC ; Set I2C Address +; LD A, 2 ; Set I2C Buffer length +; call i2c_send +; JP PROMPT_BEGIN + +;------------------------------------------------------------------------------ +; i2c_send +; +; Sends data over the i2c bus +; A contains BYTE COUNTER +; B contains ADDRESS +; DE contains location of Data Buffer +;------------------------------------------------------------------------------ +i2c_send: +; CALL PRINTINLINE; +; defb "SEND A",10,13,0 + PUSH BC + PUSH AF + CALL i2c_bus_rdy +; CALL PRINTINLINE +; defb "SEND START",10,13,0 + LD A,B ;Load 'slave address' into S0 register: + OUT (CS_I2C_SX),A + CALL SlowAccess + + LD A, 0xC5 ;Load C5H into S1. 'C5H' = PCF8584 generates + ;the 'START' condition and clocks out the slave + ;address and the clock pulse for slave acknowledgement. + OUT (CS_I2C_S1),A + POP AF + LD C,A + INC C +i2c_send_1: ; LOOP 1 : Wait for bus ready + IN A,(CS_I2C_S1) ; Read byte from S1 register + BIT 7,A ; Is bus free? (S1 ~BB=1?) + JR NZ,i2c_send_1 ; No - loop + BIT 4,A ; slave acknowledged? (LRB = 0?) + JR NZ, i2c_send_stop ; if not, cancel transmission + LD A,(DE) ; Load next byte from buffer + INC DE + DEC C + JR Z, i2c_send_stop ; if counter = 0, exit loop + OUT (CS_I2C_SX),A ; Send byte + JR i2c_send_1 ; if counter > 0, loop again +i2c_send_stop: + LD A, 0xC3 ;STOP + OUT (CS_I2C_S1),A + CALL SlowAccess + POP BC + RET + + +;------------------------------------------------------------------------------ +; i2c_read +; +; Sends data over the i2c bus +; A contains BYTE COUNTER +; B contains ADDRESS +; DE contains location of Data Buffer +;------------------------------------------------------------------------------ +i2c_read: + PUSH DE + PUSH BC + PUSH AF + LD A,B ;Load 'slave address' into S0 register: + OR 0x01 ;Set RW Bit for read operation + OUT (CS_I2C_SX),A + CALL SlowAccess + CALL i2c_bus_rdy ; Is bus ready + LD A, 0xC5 ;Load C5H into S1. 'C5H' = PCF8584 generates + ;the 'START' condition and clocks out the slave + ;address and the clock pulse for slave acknowledgement. + OUT (CS_I2C_S1),A + ;Setup counter + POP AF + LD C,A ; Load BYTE COUNTER into C + INC C ; Offset C by 1 +i2c_read_1: ;Wait for PIN = 0 + IN A,(CS_I2C_S1) ; Read byte from S1 register + BIT 7,A ; S1 PIN=1? + JR NZ,i2c_read_1 ; No - loop + BIT 3,A ; S1 LRB=0? slave ACK? + JR NZ, i2c_read_error ; No ACK -> an error has occured + DEC C + LD A, C + DEC A ;If n = m − 1? + JR Z, i2c_read_last + IN A,(CS_I2C_SX) + LD (DE),A + INC DE + JR i2c_read_1 +i2c_read_last: ;read last byte + LD A, 0x40 + OUT (CS_I2C_S1),A + CALL SlowAccess + IN A,(CS_I2C_SX) ;receives the final data byte. Neg. ACK is also sent. + LD (DE),A + INC DE +i2c_read_last_1: + IN A,(CS_I2C_S1) ; Read byte from S1 register + BIT 7,A ; S1 PIN=1? + JR NZ,i2c_read_last_1 ; No - loop + +i2c_read_error: + NOP +i2c_read_stop: + LD A, 0xC3 + OUT (CS_I2C_S1),A + CALL SlowAccess + IN A,(CS_I2C_SX) ;transfers the final data byte from the + ;data buffer to accumulator. + CALL SlowAccess + LD (DE),A + POP BC + POP DE + RET + + +i2c_stop_force: + +;------------------------------------------------------------------------------ +; i2c_rdy +; +; Waits until the PCF8584 signals a byte transmission/reception is complete. +;------------------------------------------------------------------------------ +i2c_rdy: + PUSH AF +i2c_rlp: + IN A,(CS_I2C_S1) ; Read byte from S1 register + BIT 7,A ; Is Tx/Rx complete? (S1 PIN=0?) + call print_a_hex + JR NZ,i2c_rlp ; No - loop +i2crlpex: + POP AF + RET + +;------------------------------------------------------------------------------ +; i2c_bus_rdy +; +; Waits until the I2C bus is free before RETurning +;------------------------------------------------------------------------------ +i2c_bus_rdy: + PUSH AF +i2c_blp: + IN A,(CS_I2C_S1) ; Read byte from S1 register + PUSH AF + call print_a_hex + POP AF + BIT 0,A ; Is bus free? (S1 ~BB=1?) + JR Z,i2c_blp ; No - loop +i2cblpex: + POP AF + RET + +;------------------------------------------------------------------------------ +; PAUSE_LOOP +; +; Timer function +; +; 16-bit (BC) decrement counter, performing 4xNEG loop until BC +; reaches zero. +; +; 61 T-states in loop = 15.25uS per loop @ 4 MHz - near enough +; a second delay for 65,535 iterations. +; +; Set iteration count in BC before calling this function. +; Destroys: BC +;------------------------------------------------------------------------------ +PAUSE_LOOP: + PUSH AF ; 11 T-states +pau_lp: + ;NEG ; 8 T-states + ;NEG ; 8 T-states + ;NEG ; 8 T-states + ;NEG ; 8 T-states + PUSH BC ; 11 T-states + POP BC ; 10 T-states + PUSH BC ; 11 T-states + POP BC ; 10 T-states + DEC BC ; 6 T-states + LD A,C ; 9 T-states + OR B ; 4 T-states + JP NZ,pau_lp ; 10 T-states + POP AF ; 10 T-states + RET ; Pause complete, RETurn + +;------------------------------------------------------------------------------ +; PRINTINLINE +; +; String output function +; +; Prints in-line data (bytes immediately following the PRINTINLINE call) +; until a string terminator is encountered (0 - null char). +;------------------------------------------------------------------------------ +PRINTINLINE: + EX (SP),HL ; PUSH HL and put RET ADDress into HL + PUSH AF + PUSH BC +nxtILC: + LD A,(HL) + CP 0 + JR Z,endPrint + CALL print_char + INC HL + JR nxtILC +endPrint: + INC HL ; Get past "null" terminator + POP BC + POP AF + EX (SP),HL ; PUSH new RET ADDress on stack and restore HL + RET + +SlowAccess: + NOP + NOP + NOP + NOP + NOP + NOP + NOP + NOP + RET + + + ;.include "regdump.s" + +force_stop: + IN A,(CS_I2C_S1) + BIT 0, A + RET NZ + LD A, 11000011b + OUT (CS_I2C_S1),A + NOP + NOP + JR force_stop \ No newline at end of file diff --git a/OperatingSystem/software/zout/test.bin b/OperatingSystem/software/zout/test.bin index ec3955f..7249af4 100644 Binary files a/OperatingSystem/software/zout/test.bin and b/OperatingSystem/software/zout/test.bin differ diff --git a/OperatingSystem/software/zout/test.hex b/OperatingSystem/software/zout/test.hex index 4408072..a827420 100644 --- a/OperatingSystem/software/zout/test.hex +++ b/OperatingSystem/software/zout/test.hex @@ -1,2 +1,20 @@ -:0B8000003E04060580321080C38B0098 +:10B000003ECFD3F63EF5D3F63E00D3F4010010CD8B +:10B01000F6B03E02D3F40000003E80D3F3CD16B16B +:10B02000CD16B13E55D3F2CD16B13EA0D3F3CD1619 +:10B03000B13E00D3F2CD16B13EC1D3F3CD16B1C3AC +:10B040009900010001CDF6B01100C03E001206D0FB +:10B050003E01CD62B01110C006D03E07CD90B0C306 +:10B060009900C5F5CDE8B078D3F2CD16B13EC5D381 +:10B07000F3F14F0CDBF3CB7F20FACB6720091A13D7 +:10B080000D2804D3F218ED3EC3D3F3CD16B1C1C9D8 +:10B09000D5C5F578F601D3F2CD16B1CDE8B03EC5F1 +:10B0A000D3F3F14F0CDBF3CB7F20FACB5F201C0DE9 +:10B0B000793D2806DBF2121318EB3E40D3F3CD1690 +:10B0C000B1DBF21213DBF3CB7F20FA003EC3D3F3E4 +:10B0D000CD16B1DBF2CD16B112C1D1C9F5DBF3CB80 +:10B0E0007FCDE70220F7F1C9F5DBF3F5CDE702F1FB +:10B0F000CB4728F5F1C9F5C5C1C5C10B79B0C2F779 +:10B10000B0F1C9E3F5C57EFE002806CDB7022318CD +:10B11000F523C1F1E3C90000000000000000C9DB15 +:0CB12000F3CB47C03EC3D3F3000018F38C :00000001FF diff --git a/OperatingSystem/software/zout/test.lst b/OperatingSystem/software/zout/test.lst index cc7b9f3..51ef588 100644 --- a/OperatingSystem/software/zout/test.lst +++ b/OperatingSystem/software/zout/test.lst @@ -3,519 +3,872 @@ 1: ;This file is generated by the build script. 2: ;Do not make any changes here! 3: - 4: - 0083 AY0_WRITE_REG equ 0x83 - 5: - 0304 A_RTS_OFF equ 0x304 - 6: - 030D A_RTS_ON equ 0x30D - 7: - 022B CMD_DASM equ 0x22B - 8: - 0121 CMD_EXEC equ 0x121 - 9: - 020F CMD_IO_READ equ 0x20F - 10: - 01E6 CMD_IO_WRITE equ 0x1E6 - 11: - 01AA CMD_SET equ 0x1AA - 12: - 01E0 CMD_SET_END equ 0x1E0 - 13: - 01C5 CMD_SET_LOOP equ 0x1C5 - 14: - 0264 CMD_SYNTAX_ERROR equ 0x264 - 15: - 0140 CMD_VIEW equ 0x140 - 16: - 01A4 CMD_VIEW_END equ 0x1A4 - 17: - 0179 CMD_VIEW_ROW equ 0x179 - 18: - 018B CMD_VIEW_ROW_LOOP equ 0x18B - 19: - 0270 CONSOLE_INIT equ 0x270 - 20: - 0270 CONSOLE_INIT_CTC equ 0x270 - 21: - 0278 CONSOLE_INIT_SIO equ 0x278 - 22: - 0316 DHEX_TO_BYTE equ 0x316 - 23: - 0332 DHEX_TO_BYTE_FAILED equ 0x332 - 24: - 0EB6 EXEC_RST_08 equ 0xEB6 - 25: - 0EBA EXEC_RST_10 equ 0xEBA - 26: - 0EC6 EXEC_RST_18 equ 0xEC6 - 27: - 0336 HEX_TO_BIN equ 0x336 - 28: - 0344 HEX_TO_BIN_2 equ 0x344 - 29: - 034B HEX_TO_INVALID_2 equ 0x34B + 4: - 0091 AY0_WRITE_REG equ 0x91 + 5: - 0312 A_RTS_OFF equ 0x312 + 6: - 031B A_RTS_ON equ 0x31B + 7: - 0239 CMD_DASM equ 0x239 + 8: - 012F CMD_EXEC equ 0x12F + 9: - 021D CMD_IO_READ equ 0x21D + 10: - 01F4 CMD_IO_WRITE equ 0x1F4 + 11: - 01B8 CMD_SET equ 0x1B8 + 12: - 01EE CMD_SET_END equ 0x1EE + 13: - 01D3 CMD_SET_LOOP equ 0x1D3 + 14: - 0272 CMD_SYNTAX_ERROR equ 0x272 + 15: - 014E CMD_VIEW equ 0x14E + 16: - 01B2 CMD_VIEW_END equ 0x1B2 + 17: - 0187 CMD_VIEW_ROW equ 0x187 + 18: - 0199 CMD_VIEW_ROW_LOOP equ 0x199 + 19: - 027E CONSOLE_INIT equ 0x27E + 20: - 027E CONSOLE_INIT_CTC equ 0x27E + 21: - 0286 CONSOLE_INIT_SIO equ 0x286 + 22: - 0324 DHEX_TO_BYTE equ 0x324 + 23: - 0340 DHEX_TO_BYTE_FAILED equ 0x340 + 24: - 0EC4 EXEC_RST_08 equ 0xEC4 + 25: - 0EC8 EXEC_RST_10 equ 0xEC8 + 26: - 0ED4 EXEC_RST_18 equ 0xED4 + 27: - 0344 HEX_TO_BIN equ 0x344 + 28: - 0352 HEX_TO_BIN_2 equ 0x352 + 29: - 0359 HEX_TO_INVALID_2 equ 0x359 30: - 001B INT_VEC equ 0x1B - 31: - 0270 Includes equ 0x270 - 32: - 02FC MSG_CLEAR equ 0x2FC - 33: - 1057 MSG_ERROR equ 0x1057 - 34: - 1070 MSG_START equ 0x1070 - 35: - 008B PROMPT_BEGIN equ 0x8B - 36: - 00C8 PROMPT_BEGIN_READ_BACKSPACE equ 0xC8 - 37: - 0097 PROMPT_BEGIN_READ_LOOP equ 0x97 - 38: - 00EE PROMPT_BEGIN_READ_PROCESS equ 0xEE + 31: - 027E Includes equ 0x27E + 32: - 030A MSG_CLEAR equ 0x30A + 33: - 108E MSG_ERROR equ 0x108E + 34: - 10A7 MSG_START equ 0x10A7 + 35: - 0099 PROMPT_BEGIN equ 0x99 + 36: - 00D6 PROMPT_BEGIN_READ_BACKSPACE equ 0xD6 + 37: - 00A5 PROMPT_BEGIN_READ_LOOP equ 0xA5 + 38: - 00FC PROMPT_BEGIN_READ_PROCESS equ 0xFC 39: - 0000 RST_00 equ 0x00 40: - 0008 RST_08 equ 0x08 41: - 0010 RST_10 equ 0x10 42: - 0018 RST_18 equ 0x18 - 43: - 034D STRCONV_BYTES_TO_HEX equ 0x34D - 44: - 035C STRCONV_BYTES_TO_HEX_1 equ 0x35C - 45: - 0366 STRCONV_BYTES_TO_HEX_2 equ 0x366 - 46: - 0EC9 STR_Banner_Start equ 0xEC9 - 47: - 0EF9 STR_HEXDUMP_HEADER equ 0xEF9 - 48: - 0EEF STR_SyntaxError equ 0xEEF - 49: - 0EF4 STR_Unknown equ 0xEF4 - 50: - 0ACE dasm_00 equ 0xACE - 51: - 0DBA dasm_01 equ 0xDBA - 52: - 0B54 dasm_02 equ 0xB54 - 53: - 0D8C dasm_03 equ 0xD8C - 54: - 0BD1 dasm_08 equ 0xBD1 - 55: - 0D5F dasm_09 equ 0xD5F - 56: - 0B36 dasm_0A equ 0xB36 - 57: - 0DA3 dasm_0B equ 0xDA3 - 58: - 0B16 dasm_10 equ 0xB16 - 59: - 0B5F dasm_12 equ 0xB5F - 60: - 0AD9 dasm_18 equ 0xAD9 - 61: - 0B40 dasm_1A equ 0xB40 - 62: - 0AF3 dasm_20 equ 0xAF3 - 63: - 0E00 dasm_22 equ 0xE00 - 64: - 0B99 dasm_27 equ 0xB99 - 65: - 0AEC dasm_28 equ 0xAEC - 66: - 0DD1 dasm_2A equ 0xDD1 - 67: - 0B9D dasm_2F equ 0xB9D - 68: - 0AE4 dasm_30 equ 0xAE4 - 69: - 0B6A dasm_32 equ 0xB6A - 70: - 0BA9 dasm_37 equ 0xBA9 - 71: - 0ADD dasm_38 equ 0xADD - 72: - 0B4A dasm_3A equ 0xB4A - 73: - 0BA5 dasm_3F equ 0xBA5 - 74: - 0BAD dasm_76 equ 0xBAD - 75: - 0C2A dasm_80C6 equ 0xC2A - 76: - 0BC7 dasm_BE equ 0xBC7 - 77: - 0AD2 dasm_C3 equ 0xAD2 - 78: - 0C50 dasm_C88E equ 0xC50 - 79: - 0B22 dasm_C9 equ 0xB22 - 80: - 0B1C dasm_CD equ 0xB1C - 81: - 0BDE dasm_D9 equ 0xBDE - 82: - 0B04 dasm_DD equ 0xB04 - 83: - 0DC1 dasm_DD_01 equ 0xDC1 - 84: - 0D7A dasm_DD_09 equ 0xD7A - 85: - 0E16 dasm_DD_22 equ 0xE16 - 86: - 0D91 dasm_DD_23 equ 0xD91 - 87: - 0DE8 dasm_DD_2A equ 0xDE8 - 88: - 0DA8 dasm_DD_2B equ 0xDA8 - 89: - 0D2A dasm_DD_34 equ 0xD2A - 90: - 0D47 dasm_DD_35 equ 0xD47 - 91: - 0C32 dasm_DD_86 equ 0xC32 - 92: - 0C58 dasm_DD_8E equ 0xC58 - 93: - 0C7B dasm_DD_96 equ 0xC7B - 94: - 0C9B dasm_DD_9E equ 0xC9B - 95: - 0CBC dasm_DD_A6 equ 0xCBC - 96: - 0CF3 dasm_DD_AE equ 0xCF3 - 97: - 0CD8 dasm_DD_B6 equ 0xCD8 - 98: - 0D0F dasm_DD_BE equ 0xD0F - 99: - 0E68 dasm_DD_E1 equ 0xE68 - 100: - 0BEE dasm_DD_E3 equ 0xBEE - 101: - 0E52 dasm_DD_E5 equ 0xE52 - 102: - 0E38 dasm_DD_F9 equ 0xE38 - 103: - 0E62 dasm_E1 equ 0xE62 - 104: - 0BE2 dasm_E3 equ 0xBE2 - 105: - 0E4C dasm_E5 equ 0xE4C - 106: - 0AFB dasm_E9 equ 0xAFB - 107: - 0D71 dasm_ED_42 equ 0xD71 - 108: - 0E0C dasm_ED_43 equ 0xE0C - 109: - 0BA1 dasm_ED_44 equ 0xBA1 - 110: - 0B2C dasm_ED_45 equ 0xB2C - 111: - 0BB8 dasm_ED_46 equ 0xBB8 - 112: - 0D68 dasm_ED_4A equ 0xD68 - 113: - 0DDD dasm_ED_4B equ 0xDDD - 114: - 0B27 dasm_ED_4D equ 0xB27 - 115: - 0BBD dasm_ED_56 equ 0xBBD - 116: - 0BC2 dasm_ED_5E equ 0xBC2 - 117: - 0C06 dasm_ED_A0 equ 0xC06 - 118: - 0C18 dasm_ED_A1 equ 0xC18 - 119: - 0C0F dasm_ED_A8 equ 0xC0F - 120: - 0C21 dasm_ED_A9 equ 0xC21 - 121: - 0C0A dasm_ED_B0 equ 0xC0A - 122: - 0C1C dasm_ED_B1 equ 0xC1C - 123: - 0C13 dasm_ED_B8 equ 0xC13 - 124: - 0C25 dasm_ED_B9 equ 0xC25 - 125: - 0BB2 dasm_F3 equ 0xBB2 - 126: - 0E2E dasm_F9 equ 0xE2E - 127: - 0BB5 dasm_FB equ 0xBB5 - 128: - 0B0D dasm_FD equ 0xB0D - 129: - 0DC9 dasm_FD_01 equ 0xDC9 - 130: - 0D83 dasm_FD_09 equ 0xD83 - 131: - 0E22 dasm_FD_22 equ 0xE22 - 132: - 0D9A dasm_FD_23 equ 0xD9A - 133: - 0DF4 dasm_FD_2A equ 0xDF4 - 134: - 0DB1 dasm_FD_2B equ 0xDB1 - 135: - 0D36 dasm_FD_34 equ 0xD36 - 136: - 0D53 dasm_FD_35 equ 0xD53 - 137: - 0C41 dasm_FD_86 equ 0xC41 - 138: - 0C67 dasm_FD_8E equ 0xC67 - 139: - 0C87 dasm_FD_96 equ 0xC87 - 140: - 0CA9 dasm_FD_9E equ 0xCA9 - 141: - 0CC8 dasm_FD_A6 equ 0xCC8 - 142: - 0CFF dasm_FD_AE equ 0xCFF - 143: - 0CE3 dasm_FD_B6 equ 0xCE3 - 144: - 0D1A dasm_FD_BE equ 0xD1A - 145: - 0E70 dasm_FD_E1 equ 0xE70 - 146: - 0BFA dasm_FD_E3 equ 0xBFA - 147: - 0E5A dasm_FD_E5 equ 0xE5A - 148: - 0E42 dasm_FD_F9 equ 0xE42 - 149: - 0B31 dasm_FF equ 0xB31 - 150: - 0E78 dasm_UU equ 0xE78 - 151: - 0E7C dasm_UW equ 0xE7C - 152: - 0CB7 dasm__AND equ 0xCB7 - 153: - 0D0B dasm__CP equ 0xD0B - 154: - 0D42 dasm__DEC equ 0xD42 - 155: - 0B89 dasm__ED_47 equ 0xB89 - 156: - 0B91 dasm__ED_4F equ 0xB91 - 157: - 0B79 dasm__ED_57 equ 0xB79 - 158: - 0B81 dasm__ED_5F equ 0xB81 - 159: - 0D25 dasm__INC equ 0xD25 - 160: - 0B75 dasm__LD equ 0xB75 - 161: - 0CD4 dasm__OR equ 0xCD4 - 162: - 0C93 dasm__SBC equ 0xC93 - 163: - 0C76 dasm__SUB equ 0xC76 - 164: - 0CEE dasm__XOR equ 0xCEE - 165: - 0676 dasm_opcode_table equ 0x676 - 166: - 04A3 dasm_print16hex_addr equ 0x4A3 - 167: - 04BB dasm_print8hex equ 0x4BB - 168: - 0E81 dasm_printFlags_table equ 0xE81 - 169: - 0E91 dasm_printRegister8_table equ 0xE91 - 170: - 0EB1 dasm_printRegister8_table_HL equ 0xEB1 - 171: - 0E99 dasm_printRegisterIX_table equ 0xE99 - 172: - 0EA1 dasm_printRegisterIY_table equ 0xEA1 - 173: - 0EA9 dasm_printRegisterSP_table equ 0xEA9 - 174: - 0367 disassemble equ 0x367 - 175: - 044D disassemble_continue equ 0x44D - 176: - 043D disassemble_err equ 0x43D - 177: - 036B disassemble_next equ 0x36B - 178: - 043A disassemble_print_opcode_params_end equ 0x43A - 179: - 03E6 disassemble_print_opcode_params_loop equ 0x3E6 - 180: - 03A8 disassemble_print_opcode_raw equ 0x3A8 - 181: - 03BC disassemble_print_opcode_raw_fill equ 0x3BC - 182: - 047F disassemble_table_first_match equ 0x47F - 183: - 0499 disassemble_table_found equ 0x499 - 184: - 049D disassemble_table_notfound equ 0x49D - 185: - 045B disassemble_table_seek equ 0x45B - 186: - 045F disassemble_table_seek_loop equ 0x45F - 187: - 0076 mon_start_complete equ 0x76 - 188: - 0050 mon_start_init_ctc equ 0x50 - 189: - 005F mon_start_init_serial equ 0x5F - 190: - 0050 mon_start_init_sound equ 0x50 - 191: - 0062 mon_start_ram equ 0x62 - 192: - 006B mon_start_ram_loop equ 0x6B - 193: - 0044 mon_var_template equ 0x44 - 194: - 402A mon_var_template_end equ 0x402A - 195: - 04C9 param_01 equ 0x4C9 - 196: - 04F0 param_02 equ 0x4F0 - 197: - 050D param_03 equ 0x50D - 198: - 0545 param_03_done equ 0x545 - 199: - 052E param_03_neg equ 0x52E - 200: - 0549 param_04 equ 0x549 - 201: - 0559 param_04_i equ 0x559 - 202: - 055F param_05 equ 0x55F - 203: - 056C param_06 equ 0x56C - 204: - 0586 param_07 equ 0x586 - 205: - 0593 param_08 equ 0x593 - 206: - 05A8 param_09 equ 0x5A8 - 207: - 05AE param_09_0A equ 0x5AE - 208: - 059F param_0A equ 0x59F - 209: - 05BD param_10 equ 0x5BD - 210: - 05CD param_11 equ 0x5CD - 211: - 05DC param_11_12 equ 0x5DC - 212: - 05FC param_11_12_all equ 0x5FC - 213: - 05EF param_11_12_def equ 0x5EF - 214: - 05F4 param_11_12_ix equ 0x5F4 - 215: - 05F9 param_11_12_iy equ 0x5F9 - 216: - 05D5 param_12 equ 0x5D5 - 217: - 060D param_13 equ 0x60D - 218: - 062C param_80 equ 0x62C - 219: - 0633 param_80_seek equ 0x633 - 220: - 0623 param_81 equ 0x623 - 221: - 0667 param_comma equ 0x667 - 222: - 0642 param_printRegister equ 0x642 - 223: - 0660 param_printRegisterA equ 0x660 - 224: - 0658 param_printRegisterHL equ 0x658 - 225: - 02D9 print_a_hex equ 0x2D9 - 226: - 02A9 print_char equ 0x2A9 - 227: - 02BC print_clear equ 0x2BC - 228: - 02C3 print_newLine equ 0x2C3 - 229: - 02B1 print_str equ 0x2B1 - 230: - 02BB print_str_end equ 0x2BB - 231: - 02CE print_wait_out equ 0x2CE - 232: - 02EA read_char equ 0x2EA - 233: - 4029 var_buffer equ 0x4029 - 234: - 4000 var_buffer_len equ 0x4000 - 235: - 4006 var_curserchar equ 0x4006 - 236: - 4007 var_curserlastaddr equ 0x4007 - 237: - 4005 var_curseron equ 0x4005 - 238: - 4004 var_curserstate equ 0x4004 - 239: - 4002 var_curserx equ 0x4002 - 240: - 4003 var_cursery equ 0x4003 - 241: - 4001 var_last_char equ 0x4001 - 242: - 4019 var_ps2mem equ 0x4019 - 243: - 4009 var_scratch equ 0x4009 - 244: - 108A xmodem_ack equ 0x108A - 245: - 0F43 xmodem_await_conn equ 0xF43 - 246: - 0FEE xmodem_end equ 0xFEE - 247: - 0FB4 xmodem_err equ 0xFB4 - 248: - 0F15 xmodem_init equ 0xF15 - 249: - 0FF5 xmodem_int equ 0xFF5 - 250: - 1014 xmodem_int_cont equ 0x1014 - 251: - 1098 xmodem_nak equ 0x1098 - 252: - 1046 xmodem_out equ 0x1046 - 253: - 0F4E xmodem_packet equ 0xF4E - 254: - 0FAC xmodem_packet_EOT equ 0xFAC - 255: - 0F60 xmodem_packet_get equ 0xF60 - 256: - 0F99 xmodem_packet_get_crc equ 0xF99 - 257: - 0F8A xmodem_packet_get_data equ 0xF8A - 258: - 1019 xmodem_read_wait equ 0x1019 - 259: - 1027 xmodem_read_wait_loop equ 0x1027 - 260: - 1044 xmodem_read_wait_timeout equ 0x1044 - 261: - 10A6 xmodem_wait equ 0x10A6 - 262: - 10AC xmodem_wait_1 equ 0x10AC - 263: - 104C xmodem_wait_out equ 0x104C + 43: - 035B STRCONV_BYTES_TO_HEX equ 0x35B + 44: - 036A STRCONV_BYTES_TO_HEX_1 equ 0x36A + 45: - 0374 STRCONV_BYTES_TO_HEX_2 equ 0x374 + 46: - 0F00 STR_Banner_Start equ 0xF00 + 47: - 0F30 STR_HEXDUMP_HEADER equ 0xF30 + 48: - 0F26 STR_SyntaxError equ 0xF26 + 49: - 0F2B STR_Unknown equ 0xF2B + 50: - 0ED7 beep equ 0xED7 + 51: - 0EF1 beep_pause equ 0xEF1 + 52: - 0ADC dasm_00 equ 0xADC + 53: - 0DC8 dasm_01 equ 0xDC8 + 54: - 0B62 dasm_02 equ 0xB62 + 55: - 0D9A dasm_03 equ 0xD9A + 56: - 0BDF dasm_08 equ 0xBDF + 57: - 0D6D dasm_09 equ 0xD6D + 58: - 0B44 dasm_0A equ 0xB44 + 59: - 0DB1 dasm_0B equ 0xDB1 + 60: - 0B24 dasm_10 equ 0xB24 + 61: - 0B6D dasm_12 equ 0xB6D + 62: - 0AE7 dasm_18 equ 0xAE7 + 63: - 0B4E dasm_1A equ 0xB4E + 64: - 0B01 dasm_20 equ 0xB01 + 65: - 0E0E dasm_22 equ 0xE0E + 66: - 0BA7 dasm_27 equ 0xBA7 + 67: - 0AFA dasm_28 equ 0xAFA + 68: - 0DDF dasm_2A equ 0xDDF + 69: - 0BAB dasm_2F equ 0xBAB + 70: - 0AF2 dasm_30 equ 0xAF2 + 71: - 0B78 dasm_32 equ 0xB78 + 72: - 0BB7 dasm_37 equ 0xBB7 + 73: - 0AEB dasm_38 equ 0xAEB + 74: - 0B58 dasm_3A equ 0xB58 + 75: - 0BB3 dasm_3F equ 0xBB3 + 76: - 0BBB dasm_76 equ 0xBBB + 77: - 0C38 dasm_80C6 equ 0xC38 + 78: - 0BD5 dasm_BE equ 0xBD5 + 79: - 0AE0 dasm_C3 equ 0xAE0 + 80: - 0C5E dasm_C88E equ 0xC5E + 81: - 0B30 dasm_C9 equ 0xB30 + 82: - 0B2A dasm_CD equ 0xB2A + 83: - 0BEC dasm_D9 equ 0xBEC + 84: - 0B12 dasm_DD equ 0xB12 + 85: - 0DCF dasm_DD_01 equ 0xDCF + 86: - 0D88 dasm_DD_09 equ 0xD88 + 87: - 0E24 dasm_DD_22 equ 0xE24 + 88: - 0D9F dasm_DD_23 equ 0xD9F + 89: - 0DF6 dasm_DD_2A equ 0xDF6 + 90: - 0DB6 dasm_DD_2B equ 0xDB6 + 91: - 0D38 dasm_DD_34 equ 0xD38 + 92: - 0D55 dasm_DD_35 equ 0xD55 + 93: - 0C40 dasm_DD_86 equ 0xC40 + 94: - 0C66 dasm_DD_8E equ 0xC66 + 95: - 0C89 dasm_DD_96 equ 0xC89 + 96: - 0CA9 dasm_DD_9E equ 0xCA9 + 97: - 0CCA dasm_DD_A6 equ 0xCCA + 98: - 0D01 dasm_DD_AE equ 0xD01 + 99: - 0CE6 dasm_DD_B6 equ 0xCE6 + 100: - 0D1D dasm_DD_BE equ 0xD1D + 101: - 0E76 dasm_DD_E1 equ 0xE76 + 102: - 0BFC dasm_DD_E3 equ 0xBFC + 103: - 0E60 dasm_DD_E5 equ 0xE60 + 104: - 0E46 dasm_DD_F9 equ 0xE46 + 105: - 0E70 dasm_E1 equ 0xE70 + 106: - 0BF0 dasm_E3 equ 0xBF0 + 107: - 0E5A dasm_E5 equ 0xE5A + 108: - 0B09 dasm_E9 equ 0xB09 + 109: - 0D7F dasm_ED_42 equ 0xD7F + 110: - 0E1A dasm_ED_43 equ 0xE1A + 111: - 0BAF dasm_ED_44 equ 0xBAF + 112: - 0B3A dasm_ED_45 equ 0xB3A + 113: - 0BC6 dasm_ED_46 equ 0xBC6 + 114: - 0D76 dasm_ED_4A equ 0xD76 + 115: - 0DEB dasm_ED_4B equ 0xDEB + 116: - 0B35 dasm_ED_4D equ 0xB35 + 117: - 0BCB dasm_ED_56 equ 0xBCB + 118: - 0BD0 dasm_ED_5E equ 0xBD0 + 119: - 0C14 dasm_ED_A0 equ 0xC14 + 120: - 0C26 dasm_ED_A1 equ 0xC26 + 121: - 0C1D dasm_ED_A8 equ 0xC1D + 122: - 0C2F dasm_ED_A9 equ 0xC2F + 123: - 0C18 dasm_ED_B0 equ 0xC18 + 124: - 0C2A dasm_ED_B1 equ 0xC2A + 125: - 0C21 dasm_ED_B8 equ 0xC21 + 126: - 0C33 dasm_ED_B9 equ 0xC33 + 127: - 0BC0 dasm_F3 equ 0xBC0 + 128: - 0E3C dasm_F9 equ 0xE3C + 129: - 0BC3 dasm_FB equ 0xBC3 + 130: - 0B1B dasm_FD equ 0xB1B + 131: - 0DD7 dasm_FD_01 equ 0xDD7 + 132: - 0D91 dasm_FD_09 equ 0xD91 + 133: - 0E30 dasm_FD_22 equ 0xE30 + 134: - 0DA8 dasm_FD_23 equ 0xDA8 + 135: - 0E02 dasm_FD_2A equ 0xE02 + 136: - 0DBF dasm_FD_2B equ 0xDBF + 137: - 0D44 dasm_FD_34 equ 0xD44 + 138: - 0D61 dasm_FD_35 equ 0xD61 + 139: - 0C4F dasm_FD_86 equ 0xC4F + 140: - 0C75 dasm_FD_8E equ 0xC75 + 141: - 0C95 dasm_FD_96 equ 0xC95 + 142: - 0CB7 dasm_FD_9E equ 0xCB7 + 143: - 0CD6 dasm_FD_A6 equ 0xCD6 + 144: - 0D0D dasm_FD_AE equ 0xD0D + 145: - 0CF1 dasm_FD_B6 equ 0xCF1 + 146: - 0D28 dasm_FD_BE equ 0xD28 + 147: - 0E7E dasm_FD_E1 equ 0xE7E + 148: - 0C08 dasm_FD_E3 equ 0xC08 + 149: - 0E68 dasm_FD_E5 equ 0xE68 + 150: - 0E50 dasm_FD_F9 equ 0xE50 + 151: - 0B3F dasm_FF equ 0xB3F + 152: - 0E86 dasm_UU equ 0xE86 + 153: - 0E8A dasm_UW equ 0xE8A + 154: - 0CC5 dasm__AND equ 0xCC5 + 155: - 0D19 dasm__CP equ 0xD19 + 156: - 0D50 dasm__DEC equ 0xD50 + 157: - 0B97 dasm__ED_47 equ 0xB97 + 158: - 0B9F dasm__ED_4F equ 0xB9F + 159: - 0B87 dasm__ED_57 equ 0xB87 + 160: - 0B8F dasm__ED_5F equ 0xB8F + 161: - 0D33 dasm__INC equ 0xD33 + 162: - 0B83 dasm__LD equ 0xB83 + 163: - 0CE2 dasm__OR equ 0xCE2 + 164: - 0CA1 dasm__SBC equ 0xCA1 + 165: - 0C84 dasm__SUB equ 0xC84 + 166: - 0CFC dasm__XOR equ 0xCFC + 167: - 0684 dasm_opcode_table equ 0x684 + 168: - 04B1 dasm_print16hex_addr equ 0x4B1 + 169: - 04C9 dasm_print8hex equ 0x4C9 + 170: - 0E8F dasm_printFlags_table equ 0xE8F + 171: - 0E9F dasm_printRegister8_table equ 0xE9F + 172: - 0EBF dasm_printRegister8_table_HL equ 0xEBF + 173: - 0EA7 dasm_printRegisterIX_table equ 0xEA7 + 174: - 0EAF dasm_printRegisterIY_table equ 0xEAF + 175: - 0EB7 dasm_printRegisterSP_table equ 0xEB7 + 176: - 0375 disassemble equ 0x375 + 177: - 045B disassemble_continue equ 0x45B + 178: - 044B disassemble_err equ 0x44B + 179: - 0379 disassemble_next equ 0x379 + 180: - 0448 disassemble_print_opcode_params_end equ 0x448 + 181: - 03F4 disassemble_print_opcode_params_loop equ 0x3F4 + 182: - 03B6 disassemble_print_opcode_raw equ 0x3B6 + 183: - 03CA disassemble_print_opcode_raw_fill equ 0x3CA + 184: - 048D disassemble_table_first_match equ 0x48D + 185: - 04A7 disassemble_table_found equ 0x4A7 + 186: - 04AB disassemble_table_notfound equ 0x4AB + 187: - 0469 disassemble_table_seek equ 0x469 + 188: - 046D disassemble_table_seek_loop equ 0x46D + 189: - 007E mon_start_complete equ 0x7E + 190: - 0050 mon_start_init_ctc equ 0x50 + 191: - 0067 mon_start_init_serial equ 0x67 + 192: - 0050 mon_start_init_sound equ 0x50 + 193: - 006A mon_start_ram equ 0x6A + 194: - 0073 mon_start_ram_loop equ 0x73 + 195: - 0044 mon_var_template equ 0x44 + 196: - 402A mon_var_template_end equ 0x402A + 197: - 04D7 param_01 equ 0x4D7 + 198: - 04FE param_02 equ 0x4FE + 199: - 051B param_03 equ 0x51B + 200: - 0553 param_03_done equ 0x553 + 201: - 053C param_03_neg equ 0x53C + 202: - 0557 param_04 equ 0x557 + 203: - 0567 param_04_i equ 0x567 + 204: - 056D param_05 equ 0x56D + 205: - 057A param_06 equ 0x57A + 206: - 0594 param_07 equ 0x594 + 207: - 05A1 param_08 equ 0x5A1 + 208: - 05B6 param_09 equ 0x5B6 + 209: - 05BC param_09_0A equ 0x5BC + 210: - 05AD param_0A equ 0x5AD + 211: - 05CB param_10 equ 0x5CB + 212: - 05DB param_11 equ 0x5DB + 213: - 05EA param_11_12 equ 0x5EA + 214: - 060A param_11_12_all equ 0x60A + 215: - 05FD param_11_12_def equ 0x5FD + 216: - 0602 param_11_12_ix equ 0x602 + 217: - 0607 param_11_12_iy equ 0x607 + 218: - 05E3 param_12 equ 0x5E3 + 219: - 061B param_13 equ 0x61B + 220: - 063A param_80 equ 0x63A + 221: - 0641 param_80_seek equ 0x641 + 222: - 0631 param_81 equ 0x631 + 223: - 0675 param_comma equ 0x675 + 224: - 0650 param_printRegister equ 0x650 + 225: - 066E param_printRegisterA equ 0x66E + 226: - 0666 param_printRegisterHL equ 0x666 + 227: - 02E7 print_a_hex equ 0x2E7 + 228: - 02B7 print_char equ 0x2B7 + 229: - 02CA print_clear equ 0x2CA + 230: - 02D1 print_newLine equ 0x2D1 + 231: - 02BF print_str equ 0x2BF + 232: - 02C9 print_str_end equ 0x2C9 + 233: - 02DC print_wait_out equ 0x2DC + 234: - 02F8 read_char equ 0x2F8 + 235: - 4029 var_buffer equ 0x4029 + 236: - 4000 var_buffer_len equ 0x4000 + 237: - 4006 var_curserchar equ 0x4006 + 238: - 4007 var_curserlastaddr equ 0x4007 + 239: - 4005 var_curseron equ 0x4005 + 240: - 4004 var_curserstate equ 0x4004 + 241: - 4002 var_curserx equ 0x4002 + 242: - 4003 var_cursery equ 0x4003 + 243: - 4001 var_last_char equ 0x4001 + 244: - 4019 var_ps2mem equ 0x4019 + 245: - 4009 var_scratch equ 0x4009 + 246: - 10C1 xmodem_ack equ 0x10C1 + 247: - 0F7A xmodem_await_conn equ 0xF7A + 248: - 1025 xmodem_end equ 0x1025 + 249: - 0FEB xmodem_err equ 0xFEB + 250: - 0F4C xmodem_init equ 0xF4C + 251: - 102C xmodem_int equ 0x102C + 252: - 104B xmodem_int_cont equ 0x104B + 253: - 10CF xmodem_nak equ 0x10CF + 254: - 107D xmodem_out equ 0x107D + 255: - 0F85 xmodem_packet equ 0xF85 + 256: - 0FE3 xmodem_packet_EOT equ 0xFE3 + 257: - 0F97 xmodem_packet_get equ 0xF97 + 258: - 0FD0 xmodem_packet_get_crc equ 0xFD0 + 259: - 0FC1 xmodem_packet_get_data equ 0xFC1 + 260: - 1050 xmodem_read_wait equ 0x1050 + 261: - 105E xmodem_read_wait_loop equ 0x105E + 262: - 107B xmodem_read_wait_timeout equ 0x107B + 263: - 10DD xmodem_wait equ 0x10DD + 264: - 10E3 xmodem_wait_1 equ 0x10E3 + 265: - 1083 xmodem_wait_out equ 0x1083 **** test.asm **** - 2: - 8000 org 0x8000 - 3: - 4: 0+7 8000 3E04 LD A,4 - 5: 7+7 8002 0605 LD B,5 - 6: 14+4 8004 80 ADD A,b - 7: 18+13 8005 321080 LD (0x8010),A - 8: 31+10 8008 C38B00 JP PROMPT_BEGIN - 9: + 2: - B000 org 0xB000 + 3: - 00F5 CS_PIO_BD .EQU 0xF5 + 4: - 00F7 CS_PIO_BC .EQU 0xF7 + 5: - 00F4 CS_PIO_AD .EQU 0xF4 + 6: - 00F6 CS_PIO_AC .EQU 0xF6 + 7: + 8: - 00F3 CS_I2C_S1 .EQU 0xF3 + 9: - 00F2 CS_I2C_SX .EQU 0xF2 10: + 11: - 00D0 IIC_RTC equ 11010000b + 12: + 13: - B000 IIC_INIT: + 14: 0+7 B000 3ECF LD A,0xCF + 15: 7+11 B002 D3F6 OUT (CS_PIO_AC), A + 16: 18+7 B004 3EF5 LD A,11110101b + 17: 25+11 B006 D3F6 OUT (CS_PIO_AC), A + 18: + 19: 36+7 B008 3E00 LD A,00000000b ; Reset PCF8584 minimum 30 clock cycles + 20: 43+11 B00A D3F4 OUT (CS_PIO_AD), A + 21: 54+10 B00C 010010 LD BC,0x1000 + 22: 64+17 B00F CDF6B0 CALL PAUSE_LOOP + 23: 81+7 B012 3E02 LD A,0000010b + 24: 88+11 B014 D3F4 OUT (CS_PIO_AD), A + 25: + 26: 99+4 B016 00 NOP + 27: 103+4 B017 00 NOP + 28: 107+4 B018 00 NOP + 29: + 30: 111+7 B019 3E80 LD A, 0x80 ;S1 -> Select S0, PIN disabled, ESO = 0, Interrupt disabled, STA, STA, ACK = 0 + 31: 118+11 B01B D3F3 OUT (CS_I2C_S1),A + 32: 129+17 B01D CD16B1 CALL SlowAccess + 33: 146+17 B020 CD16B1 CALL SlowAccess + 34: + 35: 163+7 B023 3E55 LD A,0x55 ;S0 -> Loads byte 55H into register S0'; effective own address becomes AAH + 36: 170+11 B025 D3F2 OUT (CS_I2C_SX),A + 37: 181+17 B027 CD16B1 CALL SlowAccess + 38: + 39: 198+7 B02A 3EA0 LD A, 0xA0 ;S1 -> Loads byte A0H into register S1, i.e. next byte will be loaded into the clock control register S2. + 40: 205+11 B02C D3F3 OUT (CS_I2C_S1),A + 41: 216+17 B02E CD16B1 CALL SlowAccess + 42: + 43: + 44: 233+7 B031 3E00 LD A,0x00 ;Load 18H into S2 register (clock control - 8 MHz, 90 KHz) + 45: 240+11 B033 D3F2 OUT (CS_I2C_SX),A + 46: 251+17 B035 CD16B1 CALL SlowAccess + 47: + 48: 268+7 B038 3EC1 LD A,0xC1 ;S1 -> loads byte C1H into register S1; register enable + 49: ;serial interface, set I 2C-bus into idle mode; + 50: ;SDA and SCL are HIGH. The next write or read + 51: ;operation will be to/from data transfer register + 52: ;S0 if A0 = LOW.; + 53: 275+11 B03A D3F3 OUT (CS_I2C_S1),A + 54: 286+17 B03C CD16B1 CALL SlowAccess + 55: + 56: + 57: + 58: ;CALL force_stop + 59: 303+10 B03F C39900 JP PROMPT_BEGIN + 60: + 61: 313+10 B042 010001 LD BC,$0100 + 62: 323+17 B045 CDF6B0 CALL PAUSE_LOOP + 63: + 64: + 65: ; Send test message to RTC + 66: + 67: 340+10 B048 1100C0 LD DE, 0xC000 ; Set I2C Buffer Location + 68: 350+7 B04B 3E00 LD A,0x00 + 69: 357+7 B04D 12 LD (DE),A + 70: ;call regdump + 71: + 72: 364+7 B04E 06D0 LD B, IIC_RTC ; Set I2C Address + 73: 371+7 B050 3E01 LD A, 1 ; Set I2C Buffer length + 74: 378+17 B052 CD62B0 call i2c_send + 75: + 76: 395+10 B055 1110C0 LD DE, 0xC010 + 77: 405+7 B058 06D0 LD B, IIC_RTC + 78: 412+7 B05A 3E07 LD A, 7 + 79: 419+17 B05C CD90B0 call i2c_read + 80: + 81: + 82: + 83: 436+10 B05F C39900 JP PROMPT_BEGIN + 84: + 85: + 86: ;CLK_ENABLE: + 87: ; LD DE, 0xC000 ; Set I2C Buffer Location + 88: ; LD A,0x00 + 89: ; LD (0xC000),A + 90: ; LD (0xC001),A + 91: ; ;call regdump + 92: ; + 93: ; LD B, IIC_RTC ; Set I2C Address + 94: ; LD A, 2 ; Set I2C Buffer length + 95: ; call i2c_send + 96: ; JP PROMPT_BEGIN + 97: + 98: ;------------------------------------------------------------------------------ + 99: ; i2c_send + 100: ; + 101: ; Sends data over the i2c bus + 102: ; A contains BYTE COUNTER + 103: ; B contains ADDRESS + 104: ; DE contains location of Data Buffer + 105: ;------------------------------------------------------------------------------ + 106: - B062 i2c_send: + 107: ; CALL PRINTINLINE; + 108: ; defb "SEND A",10,13,0 + 109: 446+11 B062 C5 PUSH BC + 110: 457+11 B063 F5 PUSH AF + 111: 468+17 B064 CDE8B0 CALL i2c_bus_rdy + 112: ; CALL PRINTINLINE + 113: ; defb "SEND START",10,13,0 + 114: 485+4 B067 78 LD A,B ;Load 'slave address' into S0 register: + 115: 489+11 B068 D3F2 OUT (CS_I2C_SX),A + 116: 500+17 B06A CD16B1 CALL SlowAccess + 117: + 118: 517+7 B06D 3EC5 LD A, 0xC5 ;Load C5H into S1. 'C5H' = PCF8584 generates + 119: ;the 'START' condition and clocks out the slave + 120: ;address and the clock pulse for slave acknowledgement. + 121: 524+11 B06F D3F3 OUT (CS_I2C_S1),A + 122: 535+10 B071 F1 POP AF + 123: 545+4 B072 4F LD C,A + 124: 549+4 B073 0C INC C + 125: - B074 i2c_send_1: ; LOOP 1 : Wait for bus ready + 126: 553+11 B074 DBF3 IN A,(CS_I2C_S1) ; Read byte from S1 register + 127: 564+8 B076 CB7F BIT 7,A ; Is bus free? (S1 ~BB=1?) + 128: 572+7+5 B078 20FA JR NZ,i2c_send_1 ; No - loop + 129: 579+8 B07A CB67 BIT 4,A ; slave acknowledged? (LRB = 0?) + 130: 587+7+5 B07C 2009 JR NZ, i2c_send_stop ; if not, cancel transmission + 131: 594+7 B07E 1A LD A,(DE) ; Load next byte from buffer + 132: 601+6 B07F 13 INC DE + 133: 607+4 B080 0D DEC C + 134: 611+7+5 B081 2804 JR Z, i2c_send_stop ; if counter = 0, exit loop + 135: 618+11 B083 D3F2 OUT (CS_I2C_SX),A ; Send byte + 136: 629+12 B085 18ED JR i2c_send_1 ; if counter > 0, loop again + 137: - B087 i2c_send_stop: + 138: 641+7 B087 3EC3 LD A, 0xC3 ;STOP + 139: 648+11 B089 D3F3 OUT (CS_I2C_S1),A + 140: 659+17 B08B CD16B1 CALL SlowAccess + 141: 676+10 B08E C1 POP BC + 142: 686+10 B08F C9 RET + 143: + 144: + 145: ;------------------------------------------------------------------------------ + 146: ; i2c_read + 147: ; + 148: ; Sends data over the i2c bus + 149: ; A contains BYTE COUNTER + 150: ; B contains ADDRESS + 151: ; DE contains location of Data Buffer + 152: ;------------------------------------------------------------------------------ + 153: - B090 i2c_read: + 154: 696+11 B090 D5 PUSH DE + 155: 707+11 B091 C5 PUSH BC + 156: 718+11 B092 F5 PUSH AF + 157: 729+4 B093 78 LD A,B ;Load 'slave address' into S0 register: + 158: 733+7 B094 F601 OR 0x01 ;Set RW Bit for read operation + 159: 740+11 B096 D3F2 OUT (CS_I2C_SX),A + 160: 751+17 B098 CD16B1 CALL SlowAccess + 161: 768+17 B09B CDE8B0 CALL i2c_bus_rdy ; Is bus ready + 162: 785+7 B09E 3EC5 LD A, 0xC5 ;Load C5H into S1. 'C5H' = PCF8584 generates + 163: ;the 'START' condition and clocks out the slave + 164: ;address and the clock pulse for slave acknowledgement. + 165: 792+11 B0A0 D3F3 OUT (CS_I2C_S1),A + 166: ;Setup counter + 167: 803+10 B0A2 F1 POP AF + 168: 813+4 B0A3 4F LD C,A ; Load BYTE COUNTER into C + 169: 817+4 B0A4 0C INC C ; Offset C by 1 + 170: - B0A5 i2c_read_1: ;Wait for PIN = 0 + 171: 821+11 B0A5 DBF3 IN A,(CS_I2C_S1) ; Read byte from S1 register + 172: 832+8 B0A7 CB7F BIT 7,A ; S1 PIN=1? + 173: 840+7+5 B0A9 20FA JR NZ,i2c_read_1 ; No - loop + 174: 847+8 B0AB CB5F BIT 3,A ; S1 LRB=0? slave ACK? + 175: 855+7+5 B0AD 201C JR NZ, i2c_read_error ; No ACK -> an error has occured + 176: 862+4 B0AF 0D DEC C + 177: 866+4 B0B0 79 LD A, C + 178: 870+4 B0B1 3D DEC A ;If n = m − 1? + 179: 874+7+5 B0B2 2806 JR Z, i2c_read_last + 180: 881+11 B0B4 DBF2 IN A,(CS_I2C_SX) + 181: 892+7 B0B6 12 LD (DE),A + 182: 899+6 B0B7 13 INC DE + 183: 905+12 B0B8 18EB JR i2c_read_1 + 184: - B0BA i2c_read_last: ;read last byte + 185: 917+7 B0BA 3E40 LD A, 0x40 + 186: 924+11 B0BC D3F3 OUT (CS_I2C_S1),A + 187: 935+17 B0BE CD16B1 CALL SlowAccess + 188: 952+11 B0C1 DBF2 IN A,(CS_I2C_SX) ;receives the final data byte. Neg. ACK is also sent. + 189: 963+7 B0C3 12 LD (DE),A + 190: 970+6 B0C4 13 INC DE + 191: - B0C5 i2c_read_last_1: + 192: 976+11 B0C5 DBF3 IN A,(CS_I2C_S1) ; Read byte from S1 register + 193: 987+8 B0C7 CB7F BIT 7,A ; S1 PIN=1? + 194: 995+7+5 B0C9 20FA JR NZ,i2c_read_last_1 ; No - loop + 195: + 196: - B0CB i2c_read_error: + 197: 1002+4 B0CB 00 NOP + 198: - B0CC i2c_read_stop: + 199: 1006+7 B0CC 3EC3 LD A, 0xC3 + 200: 1013+11 B0CE D3F3 OUT (CS_I2C_S1),A + 201: 1024+17 B0D0 CD16B1 CALL SlowAccess + 202: 1041+11 B0D3 DBF2 IN A,(CS_I2C_SX) ;transfers the final data byte from the + 203: ;data buffer to accumulator. + 204: 1052+17 B0D5 CD16B1 CALL SlowAccess + 205: 1069+7 B0D8 12 LD (DE),A + 206: 1076+10 B0D9 C1 POP BC + 207: 1086+10 B0DA D1 POP DE + 208: 1096+10 B0DB C9 RET + 209: + 210: + 211: - B0DC i2c_stop_force: + 212: + 213: ;------------------------------------------------------------------------------ + 214: ; i2c_rdy + 215: ; + 216: ; Waits until the PCF8584 signals a byte transmission/reception is complete. + 217: ;------------------------------------------------------------------------------ + 218: - B0DC i2c_rdy: + 219: 1106+11 B0DC F5 PUSH AF + 220: - B0DD i2c_rlp: + 221: 1117+11 B0DD DBF3 IN A,(CS_I2C_S1) ; Read byte from S1 register + 222: 1128+8 B0DF CB7F BIT 7,A ; Is Tx/Rx complete? (S1 PIN=0?) + 223: 1136+17 B0E1 CDE702 call print_a_hex + 224: 1153+7+5 B0E4 20F7 JR NZ,i2c_rlp ; No - loop + 225: - B0E6 i2crlpex: + 226: 1160+10 B0E6 F1 POP AF + 227: 1170+10 B0E7 C9 RET + 228: + 229: ;------------------------------------------------------------------------------ + 230: ; i2c_bus_rdy + 231: ; + 232: ; Waits until the I2C bus is free before RETurning + 233: ;------------------------------------------------------------------------------ + 234: - B0E8 i2c_bus_rdy: + 235: 1180+11 B0E8 F5 PUSH AF + 236: - B0E9 i2c_blp: + 237: 1191+11 B0E9 DBF3 IN A,(CS_I2C_S1) ; Read byte from S1 register + 238: 1202+11 B0EB F5 PUSH AF + 239: 1213+17 B0EC CDE702 call print_a_hex + 240: 1230+10 B0EF F1 POP AF + 241: 1240+8 B0F0 CB47 BIT 0,A ; Is bus free? (S1 ~BB=1?) + 242: 1248+7+5 B0F2 28F5 JR Z,i2c_blp ; No - loop + 243: - B0F4 i2cblpex: + 244: 1255+10 B0F4 F1 POP AF + 245: 1265+10 B0F5 C9 RET + 246: + 247: ;------------------------------------------------------------------------------ + 248: ; PAUSE_LOOP + 249: ; + 250: ; Timer function + 251: ; + 252: ; 16-bit (BC) decrement counter, performing 4xNEG loop until BC + 253: ; reaches zero. + 254: ; + 255: ; 61 T-states in loop = 15.25uS per loop @ 4 MHz - near enough + 256: ; a second delay for 65,535 iterations. + 257: ; + 258: ; Set iteration count in BC before calling this function. + 259: ; Destroys: BC + 260: ;------------------------------------------------------------------------------ + 261: - B0F6 PAUSE_LOOP: + 262: 1275+11 B0F6 F5 PUSH AF ; 11 T-states + 263: - B0F7 pau_lp: + 264: ;NEG ; 8 T-states + 265: ;NEG ; 8 T-states + 266: ;NEG ; 8 T-states + 267: ;NEG ; 8 T-states + 268: 1286+11 B0F7 C5 PUSH BC ; 11 T-states + 269: 1297+10 B0F8 C1 POP BC ; 10 T-states + 270: 1307+11 B0F9 C5 PUSH BC ; 11 T-states + 271: 1318+10 B0FA C1 POP BC ; 10 T-states + 272: 1328+6 B0FB 0B DEC BC ; 6 T-states + 273: 1334+4 B0FC 79 LD A,C ; 9 T-states + 274: 1338+4 B0FD B0 OR B ; 4 T-states + 275: 1342+10 B0FE C2F7B0 JP NZ,pau_lp ; 10 T-states + 276: 1352+10 B101 F1 POP AF ; 10 T-states + 277: 1362+10 B102 C9 RET ; Pause complete, RETurn + 278: + 279: ;------------------------------------------------------------------------------ + 280: ; PRINTINLINE + 281: ; + 282: ; String output function + 283: ; + 284: ; Prints in-line data (bytes immediately following the PRINTINLINE call) + 285: ; until a string terminator is encountered (0 - null char). + 286: ;------------------------------------------------------------------------------ + 287: - B103 PRINTINLINE: + 288: 1372+19 B103 E3 EX (SP),HL ; PUSH HL and put RET ADDress into HL + 289: 1391+11 B104 F5 PUSH AF + 290: 1402+11 B105 C5 PUSH BC + 291: - B106 nxtILC: + 292: 1413+7 B106 7E LD A,(HL) + 293: 1420+7 B107 FE00 CP 0 + 294: 1427+7+5 B109 2806 JR Z,endPrint + 295: 1434+17 B10B CDB702 CALL print_char + 296: 1451+6 B10E 23 INC HL + 297: 1457+12 B10F 18F5 JR nxtILC + 298: - B111 endPrint: + 299: 1469+6 B111 23 INC HL ; Get past "null" terminator + 300: 1475+10 B112 C1 POP BC + 301: 1485+10 B113 F1 POP AF + 302: 1495+19 B114 E3 EX (SP),HL ; PUSH new RET ADDress on stack and restore HL + 303: 1514+10 B115 C9 RET + 304: + 305: - B116 SlowAccess: + 306: 1524+4 B116 00 NOP + 307: 1528+4 B117 00 NOP + 308: 1532+4 B118 00 NOP + 309: 1536+4 B119 00 NOP + 310: 1540+4 B11A 00 NOP + 311: 1544+4 B11B 00 NOP + 312: 1548+4 B11C 00 NOP + 313: 1552+4 B11D 00 NOP + 314: 1556+10 B11E C9 RET + 315: + 316: + 317: ;.include "regdump.s" + 318: + 319: - B11F force_stop: + 320: 1566+11 B11F DBF3 IN A,(CS_I2C_S1) + 321: 1577+8 B121 CB47 BIT 0, A + 322: 1585+5+6 B123 C0 RET NZ + 323: 1590+7 B124 3EC3 LD A, 11000011b + 324: 1597+11 B126 D3F3 OUT (CS_I2C_S1),A + 325: 1608+4 B128 00 NOP + 326: 1612+4 B129 00 NOP +**** test.asm **** + 327: 1616+12 B12A 18F3 JR force_stop Statistics: - 3 passes + 4 passes 0 jr promotions - 260 symbols - 11 bytes + 293 symbols + 300 bytes Symbol Table: -AY0_WRITE_REG =83 131 -A_RTS_OFF = 304 772 -A_RTS_ON = 30D 781 -CMD_DASM = 22B 555 -CMD_EXEC = 121 289 -CMD_IO_READ = 20F 527 -CMD_IO_WRITE = 1E6 486 -CMD_SET = 1AA 426 -CMD_SET_END = 1E0 480 -CMD_SET_LOOP = 1C5 453 -CMD_SYNTAX_ERROR= 264 612 -CMD_VIEW = 140 320 -CMD_VIEW_END = 1A4 420 -CMD_VIEW_ROW = 179 377 -CMD_VIEW_ROW_LOOP= 18B 395 -CONSOLE_INIT = 270 624 -CONSOLE_INIT_CTC= 270 624 -CONSOLE_INIT_SIO= 278 632 -DHEX_TO_BYTE = 316 790 -DHEX_TO_BYTE_FAILED= 332 818 -EXEC_RST_08 = EB6 3766 -EXEC_RST_10 = EBA 3770 -EXEC_RST_18 = EC6 3782 -HEX_TO_BIN = 336 822 -HEX_TO_BIN_2 = 344 836 -HEX_TO_INVALID_2= 34B 843 +AY0_WRITE_REG =91 145 +A_RTS_OFF = 312 786 +A_RTS_ON = 31B 795 +CMD_DASM = 239 569 +CMD_EXEC = 12F 303 +CMD_IO_READ = 21D 541 +CMD_IO_WRITE = 1F4 500 +CMD_SET = 1B8 440 +CMD_SET_END = 1EE 494 +CMD_SET_LOOP = 1D3 467 +CMD_SYNTAX_ERROR= 272 626 +CMD_VIEW = 14E 334 +CMD_VIEW_END = 1B2 434 +CMD_VIEW_ROW = 187 391 +CMD_VIEW_ROW_LOOP= 199 409 +CONSOLE_INIT = 27E 638 +CONSOLE_INIT_CTC= 27E 638 +CONSOLE_INIT_SIO= 286 646 +CS_I2C_S1 =F3 243 +CS_I2C_SX =F2 242 +CS_PIO_AC =F6 246 +CS_PIO_AD =F4 244 +CS_PIO_BC =F7 247 +CS_PIO_BD =F5 245 +DHEX_TO_BYTE = 324 804 +DHEX_TO_BYTE_FAILED= 340 832 +EXEC_RST_08 = EC4 3780 +EXEC_RST_10 = EC8 3784 +EXEC_RST_18 = ED4 3796 +HEX_TO_BIN = 344 836 +HEX_TO_BIN_2 = 352 850 +HEX_TO_INVALID_2= 359 857 +IIC_INIT B000 45056 +IIC_RTC =D0 208 INT_VEC =1B 27 -Includes = 270 624 -MSG_CLEAR = 2FC 764 -MSG_ERROR =1057 4183 -MSG_START =1070 4208 -PROMPT_BEGIN =8B 139 -PROMPT_BEGIN_READ_BACKSPACE=C8 200 -PROMPT_BEGIN_READ_LOOP=97 151 -PROMPT_BEGIN_READ_PROCESS=EE 238 +Includes = 27E 638 +MSG_CLEAR = 30A 778 +MSG_ERROR =108E 4238 +MSG_START =10A7 4263 +PAUSE_LOOP B0F6 45302 +PRINTINLINE B103 45315 +PROMPT_BEGIN =99 153 +PROMPT_BEGIN_READ_BACKSPACE=D6 214 +PROMPT_BEGIN_READ_LOOP=A5 165 +PROMPT_BEGIN_READ_PROCESS=FC 252 RST_00 =00 0 RST_08 =08 8 RST_10 =10 16 RST_18 =18 24 -STRCONV_BYTES_TO_HEX= 34D 845 -STRCONV_BYTES_TO_HEX_1= 35C 860 -STRCONV_BYTES_TO_HEX_2= 366 870 -STR_Banner_Start= EC9 3785 -STR_HEXDUMP_HEADER= EF9 3833 -STR_SyntaxError= EEF 3823 -STR_Unknown = EF4 3828 -dasm_00 = ACE 2766 -dasm_01 = DBA 3514 -dasm_02 = B54 2900 -dasm_03 = D8C 3468 -dasm_08 = BD1 3025 -dasm_09 = D5F 3423 -dasm_0A = B36 2870 -dasm_0B = DA3 3491 -dasm_10 = B16 2838 -dasm_12 = B5F 2911 -dasm_18 = AD9 2777 -dasm_1A = B40 2880 -dasm_20 = AF3 2803 -dasm_22 = E00 3584 -dasm_27 = B99 2969 -dasm_28 = AEC 2796 -dasm_2A = DD1 3537 -dasm_2F = B9D 2973 -dasm_30 = AE4 2788 -dasm_32 = B6A 2922 -dasm_37 = BA9 2985 -dasm_38 = ADD 2781 -dasm_3A = B4A 2890 -dasm_3F = BA5 2981 -dasm_76 = BAD 2989 -dasm_80C6 = C2A 3114 -dasm_BE = BC7 3015 -dasm_C3 = AD2 2770 -dasm_C88E = C50 3152 -dasm_C9 = B22 2850 -dasm_CD = B1C 2844 -dasm_D9 = BDE 3038 -dasm_DD = B04 2820 -dasm_DD_01 = DC1 3521 -dasm_DD_09 = D7A 3450 -dasm_DD_22 = E16 3606 -dasm_DD_23 = D91 3473 -dasm_DD_2A = DE8 3560 -dasm_DD_2B = DA8 3496 -dasm_DD_34 = D2A 3370 -dasm_DD_35 = D47 3399 -dasm_DD_86 = C32 3122 -dasm_DD_8E = C58 3160 -dasm_DD_96 = C7B 3195 -dasm_DD_9E = C9B 3227 -dasm_DD_A6 = CBC 3260 -dasm_DD_AE = CF3 3315 -dasm_DD_B6 = CD8 3288 -dasm_DD_BE = D0F 3343 -dasm_DD_E1 = E68 3688 -dasm_DD_E3 = BEE 3054 -dasm_DD_E5 = E52 3666 -dasm_DD_F9 = E38 3640 -dasm_E1 = E62 3682 -dasm_E3 = BE2 3042 -dasm_E5 = E4C 3660 -dasm_E9 = AFB 2811 -dasm_ED_42 = D71 3441 -dasm_ED_43 = E0C 3596 -dasm_ED_44 = BA1 2977 -dasm_ED_45 = B2C 2860 -dasm_ED_46 = BB8 3000 -dasm_ED_4A = D68 3432 -dasm_ED_4B = DDD 3549 -dasm_ED_4D = B27 2855 -dasm_ED_56 = BBD 3005 -dasm_ED_5E = BC2 3010 -dasm_ED_A0 = C06 3078 -dasm_ED_A1 = C18 3096 -dasm_ED_A8 = C0F 3087 -dasm_ED_A9 = C21 3105 -dasm_ED_B0 = C0A 3082 -dasm_ED_B1 = C1C 3100 -dasm_ED_B8 = C13 3091 -dasm_ED_B9 = C25 3109 -dasm_F3 = BB2 2994 -dasm_F9 = E2E 3630 -dasm_FB = BB5 2997 -dasm_FD = B0D 2829 -dasm_FD_01 = DC9 3529 -dasm_FD_09 = D83 3459 -dasm_FD_22 = E22 3618 -dasm_FD_23 = D9A 3482 -dasm_FD_2A = DF4 3572 -dasm_FD_2B = DB1 3505 -dasm_FD_34 = D36 3382 -dasm_FD_35 = D53 3411 -dasm_FD_86 = C41 3137 -dasm_FD_8E = C67 3175 -dasm_FD_96 = C87 3207 -dasm_FD_9E = CA9 3241 -dasm_FD_A6 = CC8 3272 -dasm_FD_AE = CFF 3327 -dasm_FD_B6 = CE3 3299 -dasm_FD_BE = D1A 3354 -dasm_FD_E1 = E70 3696 -dasm_FD_E3 = BFA 3066 -dasm_FD_E5 = E5A 3674 -dasm_FD_F9 = E42 3650 -dasm_FF = B31 2865 -dasm_UU = E78 3704 -dasm_UW = E7C 3708 -dasm__AND = CB7 3255 -dasm__CP = D0B 3339 -dasm__DEC = D42 3394 -dasm__ED_47 = B89 2953 -dasm__ED_4F = B91 2961 -dasm__ED_57 = B79 2937 -dasm__ED_5F = B81 2945 -dasm__INC = D25 3365 -dasm__LD = B75 2933 -dasm__OR = CD4 3284 -dasm__SBC = C93 3219 -dasm__SUB = C76 3190 -dasm__XOR = CEE 3310 -dasm_opcode_table= 676 1654 -dasm_print16hex_addr= 4A3 1187 -dasm_print8hex = 4BB 1211 -dasm_printFlags_table= E81 3713 -dasm_printRegister8_table= E91 3729 -dasm_printRegister8_table_HL= EB1 3761 -dasm_printRegisterIX_table= E99 3737 -dasm_printRegisterIY_table= EA1 3745 -dasm_printRegisterSP_table= EA9 3753 -disassemble = 367 871 -disassemble_continue= 44D 1101 -disassemble_err= 43D 1085 -disassemble_next= 36B 875 -disassemble_print_opcode_params_end= 43A 1082 -disassemble_print_opcode_params_loop= 3E6 998 -disassemble_print_opcode_raw= 3A8 936 -disassemble_print_opcode_raw_fill= 3BC 956 -disassemble_table_first_match= 47F 1151 -disassemble_table_found= 499 1177 -disassemble_table_notfound= 49D 1181 -disassemble_table_seek= 45B 1115 -disassemble_table_seek_loop= 45F 1119 -mon_start_complete=76 118 +STRCONV_BYTES_TO_HEX= 35B 859 +STRCONV_BYTES_TO_HEX_1= 36A 874 +STRCONV_BYTES_TO_HEX_2= 374 884 +STR_Banner_Start= F00 3840 +STR_HEXDUMP_HEADER= F30 3888 +STR_SyntaxError= F26 3878 +STR_Unknown = F2B 3883 +SlowAccess B116 45334 +beep = ED7 3799 +beep_pause = EF1 3825 +dasm_00 = ADC 2780 +dasm_01 = DC8 3528 +dasm_02 = B62 2914 +dasm_03 = D9A 3482 +dasm_08 = BDF 3039 +dasm_09 = D6D 3437 +dasm_0A = B44 2884 +dasm_0B = DB1 3505 +dasm_10 = B24 2852 +dasm_12 = B6D 2925 +dasm_18 = AE7 2791 +dasm_1A = B4E 2894 +dasm_20 = B01 2817 +dasm_22 = E0E 3598 +dasm_27 = BA7 2983 +dasm_28 = AFA 2810 +dasm_2A = DDF 3551 +dasm_2F = BAB 2987 +dasm_30 = AF2 2802 +dasm_32 = B78 2936 +dasm_37 = BB7 2999 +dasm_38 = AEB 2795 +dasm_3A = B58 2904 +dasm_3F = BB3 2995 +dasm_76 = BBB 3003 +dasm_80C6 = C38 3128 +dasm_BE = BD5 3029 +dasm_C3 = AE0 2784 +dasm_C88E = C5E 3166 +dasm_C9 = B30 2864 +dasm_CD = B2A 2858 +dasm_D9 = BEC 3052 +dasm_DD = B12 2834 +dasm_DD_01 = DCF 3535 +dasm_DD_09 = D88 3464 +dasm_DD_22 = E24 3620 +dasm_DD_23 = D9F 3487 +dasm_DD_2A = DF6 3574 +dasm_DD_2B = DB6 3510 +dasm_DD_34 = D38 3384 +dasm_DD_35 = D55 3413 +dasm_DD_86 = C40 3136 +dasm_DD_8E = C66 3174 +dasm_DD_96 = C89 3209 +dasm_DD_9E = CA9 3241 +dasm_DD_A6 = CCA 3274 +dasm_DD_AE = D01 3329 +dasm_DD_B6 = CE6 3302 +dasm_DD_BE = D1D 3357 +dasm_DD_E1 = E76 3702 +dasm_DD_E3 = BFC 3068 +dasm_DD_E5 = E60 3680 +dasm_DD_F9 = E46 3654 +dasm_E1 = E70 3696 +dasm_E3 = BF0 3056 +dasm_E5 = E5A 3674 +dasm_E9 = B09 2825 +dasm_ED_42 = D7F 3455 +dasm_ED_43 = E1A 3610 +dasm_ED_44 = BAF 2991 +dasm_ED_45 = B3A 2874 +dasm_ED_46 = BC6 3014 +dasm_ED_4A = D76 3446 +dasm_ED_4B = DEB 3563 +dasm_ED_4D = B35 2869 +dasm_ED_56 = BCB 3019 +dasm_ED_5E = BD0 3024 +dasm_ED_A0 = C14 3092 +dasm_ED_A1 = C26 3110 +dasm_ED_A8 = C1D 3101 +dasm_ED_A9 = C2F 3119 +dasm_ED_B0 = C18 3096 +dasm_ED_B1 = C2A 3114 +dasm_ED_B8 = C21 3105 +dasm_ED_B9 = C33 3123 +dasm_F3 = BC0 3008 +dasm_F9 = E3C 3644 +dasm_FB = BC3 3011 +dasm_FD = B1B 2843 +dasm_FD_01 = DD7 3543 +dasm_FD_09 = D91 3473 +dasm_FD_22 = E30 3632 +dasm_FD_23 = DA8 3496 +dasm_FD_2A = E02 3586 +dasm_FD_2B = DBF 3519 +dasm_FD_34 = D44 3396 +dasm_FD_35 = D61 3425 +dasm_FD_86 = C4F 3151 +dasm_FD_8E = C75 3189 +dasm_FD_96 = C95 3221 +dasm_FD_9E = CB7 3255 +dasm_FD_A6 = CD6 3286 +dasm_FD_AE = D0D 3341 +dasm_FD_B6 = CF1 3313 +dasm_FD_BE = D28 3368 +dasm_FD_E1 = E7E 3710 +dasm_FD_E3 = C08 3080 +dasm_FD_E5 = E68 3688 +dasm_FD_F9 = E50 3664 +dasm_FF = B3F 2879 +dasm_UU = E86 3718 +dasm_UW = E8A 3722 +dasm__AND = CC5 3269 +dasm__CP = D19 3353 +dasm__DEC = D50 3408 +dasm__ED_47 = B97 2967 +dasm__ED_4F = B9F 2975 +dasm__ED_57 = B87 2951 +dasm__ED_5F = B8F 2959 +dasm__INC = D33 3379 +dasm__LD = B83 2947 +dasm__OR = CE2 3298 +dasm__SBC = CA1 3233 +dasm__SUB = C84 3204 +dasm__XOR = CFC 3324 +dasm_opcode_table= 684 1668 +dasm_print16hex_addr= 4B1 1201 +dasm_print8hex = 4C9 1225 +dasm_printFlags_table= E8F 3727 +dasm_printRegister8_table= E9F 3743 +dasm_printRegister8_table_HL= EBF 3775 +dasm_printRegisterIX_table= EA7 3751 +dasm_printRegisterIY_table= EAF 3759 +dasm_printRegisterSP_table= EB7 3767 +disassemble = 375 885 +disassemble_continue= 45B 1115 +disassemble_err= 44B 1099 +disassemble_next= 379 889 +disassemble_print_opcode_params_end= 448 1096 +disassemble_print_opcode_params_loop= 3F4 1012 +disassemble_print_opcode_raw= 3B6 950 +disassemble_print_opcode_raw_fill= 3CA 970 +disassemble_table_first_match= 48D 1165 +disassemble_table_found= 4A7 1191 +disassemble_table_notfound= 4AB 1195 +disassemble_table_seek= 469 1129 +disassemble_table_seek_loop= 46D 1133 +endPrint B111 45329 +force_stop B11F 45343 +i2c_blp B0E9 45289 +i2c_bus_rdy B0E8 45288 +i2c_rdy B0DC 45276 +i2c_read B090 45200 +i2c_read_1 B0A5 45221 +i2c_read_error B0CB 45259 +i2c_read_last B0BA 45242 +i2c_read_last_1 B0C5 45253 +i2c_read_stop B0CC 45260 +i2c_rlp B0DD 45277 +i2c_send B062 45154 +i2c_send_1 B074 45172 +i2c_send_stop B087 45191 +i2c_stop_force B0DC 45276 +i2cblpex B0F4 45300 +i2crlpex B0E6 45286 +mon_start_complete=7E 126 mon_start_init_ctc=50 80 -mon_start_init_serial=5F 95 +mon_start_init_serial=67 103 mon_start_init_sound=50 80 -mon_start_ram =62 98 -mon_start_ram_loop=6B 107 +mon_start_ram =6A 106 +mon_start_ram_loop=73 115 mon_var_template=44 68 mon_var_template_end=402A 16426 -param_01 = 4C9 1225 -param_02 = 4F0 1264 -param_03 = 50D 1293 -param_03_done = 545 1349 -param_03_neg = 52E 1326 -param_04 = 549 1353 -param_04_i = 559 1369 -param_05 = 55F 1375 -param_06 = 56C 1388 -param_07 = 586 1414 -param_08 = 593 1427 -param_09 = 5A8 1448 -param_09_0A = 5AE 1454 -param_0A = 59F 1439 -param_10 = 5BD 1469 -param_11 = 5CD 1485 -param_11_12 = 5DC 1500 -param_11_12_all= 5FC 1532 -param_11_12_def= 5EF 1519 -param_11_12_ix = 5F4 1524 -param_11_12_iy = 5F9 1529 -param_12 = 5D5 1493 -param_13 = 60D 1549 -param_80 = 62C 1580 -param_80_seek = 633 1587 -param_81 = 623 1571 -param_comma = 667 1639 -param_printRegister= 642 1602 -param_printRegisterA= 660 1632 -param_printRegisterHL= 658 1624 -print_a_hex = 2D9 729 -print_char = 2A9 681 -print_clear = 2BC 700 -print_newLine = 2C3 707 -print_str = 2B1 689 -print_str_end = 2BB 699 -print_wait_out = 2CE 718 -read_char = 2EA 746 +nxtILC B106 45318 +param_01 = 4D7 1239 +param_02 = 4FE 1278 +param_03 = 51B 1307 +param_03_done = 553 1363 +param_03_neg = 53C 1340 +param_04 = 557 1367 +param_04_i = 567 1383 +param_05 = 56D 1389 +param_06 = 57A 1402 +param_07 = 594 1428 +param_08 = 5A1 1441 +param_09 = 5B6 1462 +param_09_0A = 5BC 1468 +param_0A = 5AD 1453 +param_10 = 5CB 1483 +param_11 = 5DB 1499 +param_11_12 = 5EA 1514 +param_11_12_all= 60A 1546 +param_11_12_def= 5FD 1533 +param_11_12_ix = 602 1538 +param_11_12_iy = 607 1543 +param_12 = 5E3 1507 +param_13 = 61B 1563 +param_80 = 63A 1594 +param_80_seek = 641 1601 +param_81 = 631 1585 +param_comma = 675 1653 +param_printRegister= 650 1616 +param_printRegisterA= 66E 1646 +param_printRegisterHL= 666 1638 +pau_lp B0F7 45303 +print_a_hex = 2E7 743 +print_char = 2B7 695 +print_clear = 2CA 714 +print_newLine = 2D1 721 +print_str = 2BF 703 +print_str_end = 2C9 713 +print_wait_out = 2DC 732 +read_char = 2F8 760 var_buffer =4029 16425 var_buffer_len =4000 16384 var_curserchar =4006 16390 @@ -527,23 +880,23 @@ var_cursery =4003 16387 var_last_char =4001 16385 var_ps2mem =4019 16409 var_scratch =4009 16393 -xmodem_ack =108A 4234 -xmodem_await_conn= F43 3907 -xmodem_end = FEE 4078 -xmodem_err = FB4 4020 -xmodem_init = F15 3861 -xmodem_int = FF5 4085 -xmodem_int_cont=1014 4116 -xmodem_nak =1098 4248 -xmodem_out =1046 4166 -xmodem_packet = F4E 3918 -xmodem_packet_EOT= FAC 4012 -xmodem_packet_get= F60 3936 -xmodem_packet_get_crc= F99 3993 -xmodem_packet_get_data= F8A 3978 -xmodem_read_wait=1019 4121 -xmodem_read_wait_loop=1027 4135 -xmodem_read_wait_timeout=1044 4164 -xmodem_wait =10A6 4262 -xmodem_wait_1 =10AC 4268 -xmodem_wait_out=104C 4172 +xmodem_ack =10C1 4289 +xmodem_await_conn= F7A 3962 +xmodem_end =1025 4133 +xmodem_err = FEB 4075 +xmodem_init = F4C 3916 +xmodem_int =102C 4140 +xmodem_int_cont=104B 4171 +xmodem_nak =10CF 4303 +xmodem_out =107D 4221 +xmodem_packet = F85 3973 +xmodem_packet_EOT= FE3 4067 +xmodem_packet_get= F97 3991 +xmodem_packet_get_crc= FD0 4048 +xmodem_packet_get_data= FC1 4033 +xmodem_read_wait=1050 4176 +xmodem_read_wait_loop=105E 4190 +xmodem_read_wait_timeout=107B 4219 +xmodem_wait =10DD 4317 +xmodem_wait_1 =10E3 4323 +xmodem_wait_out=1083 4227 diff --git a/OperatingSystem/software/zout/test.mon b/OperatingSystem/software/zout/test.mon index ce710f6..41e5581 100644 --- a/OperatingSystem/software/zout/test.mon +++ b/OperatingSystem/software/zout/test.mon @@ -1 +1,19 @@ -!8000 3E 04 06 05 80 32 10 80 C3 8B 00 +!B000 3E CF D3 F6 3E F5 D3 F6 3E 00 D3 F4 01 00 10 CD +!B010 F6 B0 3E 02 D3 F4 00 00 00 3E 80 D3 F3 CD 16 B1 +!B020 CD 16 B1 3E 55 D3 F2 CD 16 B1 3E A0 D3 F3 CD 16 +!B030 B1 3E 00 D3 F2 CD 16 B1 3E C1 D3 F3 CD 16 B1 C3 +!B040 99 00 01 00 01 CD F6 B0 11 00 C0 3E 00 12 06 D0 +!B050 3E 01 CD 62 B0 11 10 C0 06 D0 3E 07 CD 90 B0 C3 +!B060 99 00 C5 F5 CD E8 B0 78 D3 F2 CD 16 B1 3E C5 D3 +!B070 F3 F1 4F 0C DB F3 CB 7F 20 FA CB 67 20 09 1A 13 +!B080 0D 28 04 D3 F2 18 ED 3E C3 D3 F3 CD 16 B1 C1 C9 +!B090 D5 C5 F5 78 F6 01 D3 F2 CD 16 B1 CD E8 B0 3E C5 +!B0A0 D3 F3 F1 4F 0C DB F3 CB 7F 20 FA CB 5F 20 1C 0D +!B0B0 79 3D 28 06 DB F2 12 13 18 EB 3E 40 D3 F3 CD 16 +!B0C0 B1 DB F2 12 13 DB F3 CB 7F 20 FA 00 3E C3 D3 F3 +!B0D0 CD 16 B1 DB F2 CD 16 B1 12 C1 D1 C9 F5 DB F3 CB +!B0E0 7F CD E7 02 20 F7 F1 C9 F5 DB F3 F5 CD E7 02 F1 +!B0F0 CB 47 28 F5 F1 C9 F5 C5 C1 C5 C1 0B 79 B0 C2 F7 +!B100 B0 F1 C9 E3 F5 C5 7E FE 00 28 06 CD B7 02 23 18 +!B110 F5 23 C1 F1 E3 C9 00 00 00 00 00 00 00 00 C9 DB +!B120 F3 CB 47 C0 3E C3 D3 F3 00 00 18 F3 diff --git a/Schematics/Z80-GPU/Z80-GPU-backups/Z80-GPU-2022-12-19_222518.zip b/Schematics/Z80-GPU/Z80-GPU-backups/Z80-GPU-2022-12-19_222518.zip new file mode 100644 index 0000000..a39463b Binary files /dev/null and b/Schematics/Z80-GPU/Z80-GPU-backups/Z80-GPU-2022-12-19_222518.zip differ diff --git a/Schematics/Z80-GPU/Z80-GPU-backups/Z80-GPU-2022-12-20_132259.zip b/Schematics/Z80-GPU/Z80-GPU-backups/Z80-GPU-2022-12-20_132259.zip new file mode 100644 index 0000000..a39463b Binary files /dev/null and b/Schematics/Z80-GPU/Z80-GPU-backups/Z80-GPU-2022-12-20_132259.zip differ diff --git a/Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_132957.zip b/Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_132957.zip new file mode 100644 index 0000000..665b890 Binary files /dev/null and b/Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_132957.zip differ diff --git a/Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_133540.zip b/Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_133540.zip new file mode 100644 index 0000000..6b6f72f Binary files /dev/null and b/Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_133540.zip differ diff --git a/Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_145735.zip b/Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_145735.zip new file mode 100644 index 0000000..2ade608 Binary files /dev/null and b/Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_145735.zip differ diff --git a/Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_192619.zip b/Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_192619.zip new file mode 100644 index 0000000..72af854 Binary files /dev/null and b/Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_192619.zip differ diff --git a/Schematics/Z80-X86CPU/Z80-X86CPU.kicad_sch b/Schematics/Z80-X86CPU/Z80-X86CPU.kicad_sch index 256ac2c..2dbbae5 100644 --- a/Schematics/Z80-X86CPU/Z80-X86CPU.kicad_sch +++ b/Schematics/Z80-X86CPU/Z80-X86CPU.kicad_sch @@ -63,7 +63,7 @@ (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type none)) ) - (arc (start -0.6096 -3.81) (mid 2.1842 -2.5851) (end 3.81 0) + (arc (start -0.6096 -3.81) (mid 2.1855 -2.584) (end 3.81 0) (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type background)) ) @@ -101,7 +101,7 @@ (stroke (width -25.4) (type default) (color 0 0 0 0)) (fill (type background)) ) - (arc (start 3.81 0) (mid 2.1915 2.5936) (end -0.6096 3.81) + (arc (start 3.81 0) (mid 2.1928 2.5925) (end -0.6096 3.81) (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type background)) ) @@ -151,7 +151,7 @@ (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type none)) ) - (arc (start -0.6096 -3.81) (mid 2.1842 -2.5851) (end 3.81 0) + (arc (start -0.6096 -3.81) (mid 2.1855 -2.584) (end 3.81 0) (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type background)) ) @@ -189,7 +189,7 @@ (stroke (width -25.4) (type default) (color 0 0 0 0)) (fill (type background)) ) - (arc (start 3.81 0) (mid 2.1915 2.5936) (end -0.6096 3.81) + (arc (start 3.81 0) (mid 2.1928 2.5925) (end -0.6096 3.81) (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type background)) ) @@ -239,7 +239,7 @@ (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type none)) ) - (arc (start -0.6096 -3.81) (mid 2.1842 -2.5851) (end 3.81 0) + (arc (start -0.6096 -3.81) (mid 2.1855 -2.584) (end 3.81 0) (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type background)) ) @@ -277,7 +277,7 @@ (stroke (width -25.4) (type default) (color 0 0 0 0)) (fill (type background)) ) - (arc (start 3.81 0) (mid 2.1915 2.5936) (end -0.6096 3.81) + (arc (start 3.81 0) (mid 2.1928 2.5925) (end -0.6096 3.81) (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type background)) ) @@ -327,7 +327,7 @@ (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type none)) ) - (arc (start -0.6096 -3.81) (mid 2.1842 -2.5851) (end 3.81 0) + (arc (start -0.6096 -3.81) (mid 2.1855 -2.584) (end 3.81 0) (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type background)) ) @@ -365,7 +365,7 @@ (stroke (width -25.4) (type default) (color 0 0 0 0)) (fill (type background)) ) - (arc (start 3.81 0) (mid 2.1915 2.5936) (end -0.6096 3.81) + (arc (start 3.81 0) (mid 2.1928 2.5925) (end -0.6096 3.81) (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type background)) ) @@ -399,6 +399,266 @@ ) ) ) + (symbol "74xx:74LS04" (in_bom yes) (on_board yes) + (property "Reference" "U" (id 0) (at 0 1.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "74LS04" (id 1) (at 0 -1.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS04" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_locked" "" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "ki_keywords" "TTL not inv" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Hex Inverter" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "DIP*W7.62mm* SSOP?14* TSSOP?14*" (id 7) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "74LS04_1_0" + (polyline + (pts + (xy -3.81 3.81) + (xy -3.81 -3.81) + (xy 3.81 0) + (xy -3.81 3.81) + ) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (pin input line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin output inverted (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_2_0" + (polyline + (pts + (xy -3.81 3.81) + (xy -3.81 -3.81) + (xy 3.81 0) + (xy -3.81 3.81) + ) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (pin input line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin output inverted (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_3_0" + (polyline + (pts + (xy -3.81 3.81) + (xy -3.81 -3.81) + (xy 3.81 0) + (xy -3.81 3.81) + ) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (pin input line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin output inverted (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_4_0" + (polyline + (pts + (xy -3.81 3.81) + (xy -3.81 -3.81) + (xy 3.81 0) + (xy -3.81 3.81) + ) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (pin output inverted (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_5_0" + (polyline + (pts + (xy -3.81 3.81) + (xy -3.81 -3.81) + (xy 3.81 0) + (xy -3.81 3.81) + ) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (pin output inverted (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_6_0" + (polyline + (pts + (xy -3.81 3.81) + (xy -3.81 -3.81) + (xy 3.81 0) + (xy -3.81 3.81) + ) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + (pin output inverted (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_7_0" + (pin power_in line (at 0 12.7 270) (length 5.08) + (name "VCC" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 -12.7 90) (length 5.08) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_7_1" + (rectangle (start -5.08 7.62) (end 5.08 -7.62) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + ) + ) + (symbol "74xx:74LS157" (pin_names (offset 1.016)) (in_bom yes) (on_board yes) + (property "Reference" "U" (id 0) (at -7.62 19.05 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "74LS157" (id 1) (at -7.62 -21.59 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS157" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_locked" "" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "ki_keywords" "TTL MUX MUX2" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Quad 2 to 1 line Multiplexer" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "DIP?16*" (id 7) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "74LS157_1_0" + (pin input line (at -12.7 -15.24 0) (length 5.08) + (name "S" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 -2.54 0) (length 5.08) + (name "I1c" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 0 0) (length 5.08) + (name "I0c" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin output line (at 12.7 -7.62 180) (length 5.08) + (name "Zd" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 -10.16 0) (length 5.08) + (name "I1d" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 -7.62 0) (length 5.08) + (name "I0d" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin input inverted (at -12.7 -17.78 0) (length 5.08) + (name "E" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 22.86 270) (length 5.08) + (name "VCC" (effects (font (size 1.27 1.27)))) + (number "16" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 15.24 0) (length 5.08) + (name "I0a" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 12.7 0) (length 5.08) + (name "I1a" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin output line (at 12.7 15.24 180) (length 5.08) + (name "Za" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 7.62 0) (length 5.08) + (name "I0b" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -12.7 5.08 0) (length 5.08) + (name "I1b" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin output line (at 12.7 7.62 180) (length 5.08) + (name "Zb" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 -25.4 90) (length 5.08) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin output line (at 12.7 0 180) (length 5.08) + (name "Zc" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS157_1_1" + (rectangle (start -7.62 17.78) (end 7.62 -20.32) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + ) + ) (symbol "74xx:74LS245" (pin_names (offset 1.016)) (in_bom yes) (on_board yes) (property "Reference" "U" (id 0) (at -7.62 16.51 0) (effects (font (size 1.27 1.27))) @@ -646,6 +906,128 @@ ) ) ) + (symbol "Device:C_Small" (pin_numbers hide) (pin_names (offset 0.254) hide) (in_bom yes) (on_board yes) + (property "Reference" "C" (id 0) (at 0.254 1.778 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "C_Small" (id 1) (at 0.254 -2.032 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "capacitor cap" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Unpolarized capacitor, small symbol" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "C_*" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "C_Small_0_1" + (polyline + (pts + (xy -1.524 -0.508) + (xy 1.524 -0.508) + ) + (stroke (width 0.3302) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.524 0.508) + (xy 1.524 0.508) + ) + (stroke (width 0.3048) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "C_Small_1_1" + (pin passive line (at 0 2.54 270) (length 2.032) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -2.54 90) (length 2.032) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:Crystal" (pin_numbers hide) (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "Y" (id 0) (at 0 3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Crystal" (id 1) (at 0 -3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "quartz ceramic resonator oscillator" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Two pin crystal" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Crystal*" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Crystal_0_1" + (rectangle (start -1.143 2.54) (end 1.143 -2.54) + (stroke (width 0.3048) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.54 0) + (xy -1.905 0) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.905 -1.27) + (xy -1.905 1.27) + ) + (stroke (width 0.508) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy 1.905 -1.27) + (xy 1.905 1.27) + ) + (stroke (width 0.508) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (polyline + (pts + (xy 2.54 0) + (xy 1.905 0) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "Crystal_1_1" + (pin passive line (at -3.81 0 0) (length 1.27) + (name "1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 3.81 0 180) (length 1.27) + (name "2" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) (symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) (property "Reference" "R" (id 0) (at 2.032 0 90) (effects (font (size 1.27 1.27))) @@ -1130,6 +1512,223 @@ ) ) ) + (symbol "Memory_RAM:IS61C5128AS-25QLI" (in_bom yes) (on_board yes) + (property "Reference" "U" (id 0) (at -10.16 31.75 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "IS61C5128AS-25QLI" (id 1) (at 12.7 31.75 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_SO:SSOP-32_11.305x20.495mm_P1.27mm" (id 2) (at -12.7 29.21 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.issi.com/WW/pdf/61-64C5128AL.pdf" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "SRAM MEMORY" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "512K x 8 HIGH-SPEED CMOS STATIC RAM, 25ns, SOP-32" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "SSOP*11.305x20.495mm*P1.27mm*" (id 6) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "IS61C5128AS-25QLI_0_1" + (rectangle (start -12.7 30.48) (end 12.7 -30.48) + (stroke (width 0.254) (type default) (color 0 0 0 0)) + (fill (type background)) + ) + ) + (symbol "IS61C5128AS-25QLI_1_1" + (pin input line (at -15.24 -15.24 0) (length 2.54) + (name "A17" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 22.86 0) (length 2.54) + (name "A2" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 25.4 0) (length 2.54) + (name "A1" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 27.94 0) (length 2.54) + (name "A0" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 15.24 27.94 180) (length 2.54) + (name "I/O0" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 15.24 25.4 180) (length 2.54) + (name "I/O1" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 15.24 22.86 180) (length 2.54) + (name "I/O2" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 -33.02 90) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "16" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 15.24 20.32 180) (length 2.54) + (name "I/O3" (effects (font (size 1.27 1.27)))) + (number "17" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 15.24 17.78 180) (length 2.54) + (name "I/O4" (effects (font (size 1.27 1.27)))) + (number "18" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 15.24 15.24 180) (length 2.54) + (name "I/O5" (effects (font (size 1.27 1.27)))) + (number "19" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 -12.7 0) (length 2.54) + (name "A16" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 15.24 12.7 180) (length 2.54) + (name "I/O6" (effects (font (size 1.27 1.27)))) + (number "20" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 15.24 10.16 180) (length 2.54) + (name "I/O7" (effects (font (size 1.27 1.27)))) + (number "21" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 -22.86 0) (length 2.54) + (name "~{CE}" (effects (font (size 1.27 1.27)))) + (number "22" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 2.54 0) (length 2.54) + (name "A10" (effects (font (size 1.27 1.27)))) + (number "23" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 -25.4 0) (length 2.54) + (name "~{OE}" (effects (font (size 1.27 1.27)))) + (number "24" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 0 0) (length 2.54) + (name "A11" (effects (font (size 1.27 1.27)))) + (number "25" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 5.08 0) (length 2.54) + (name "A9" (effects (font (size 1.27 1.27)))) + (number "26" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 7.62 0) (length 2.54) + (name "A8" (effects (font (size 1.27 1.27)))) + (number "27" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 -5.08 0) (length 2.54) + (name "A13" (effects (font (size 1.27 1.27)))) + (number "28" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 -27.94 0) (length 2.54) + (name "~{WE}" (effects (font (size 1.27 1.27)))) + (number "29" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 -7.62 0) (length 2.54) + (name "A14" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 -17.78 0) (length 2.54) + (name "A18" (effects (font (size 1.27 1.27)))) + (number "30" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 -10.16 0) (length 2.54) + (name "A15" (effects (font (size 1.27 1.27)))) + (number "31" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 33.02 270) (length 2.54) + (name "VDD" (effects (font (size 1.27 1.27)))) + (number "32" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 -2.54 0) (length 2.54) + (name "A12" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 10.16 0) (length 2.54) + (name "A7" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 12.7 0) (length 2.54) + (name "A6" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 15.24 0) (length 2.54) + (name "A5" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 17.78 0) (length 2.54) + (name "A4" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -15.24 20.32 0) (length 2.54) + (name "A3" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Switch:SW_SPDT" (pin_names (offset 0) hide) (in_bom yes) (on_board yes) + (property "Reference" "SW" (id 0) (at 0 4.318 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "SW_SPDT" (id 1) (at 0 -5.08 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (id 2) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "switch single-pole double-throw spdt ON-ON" (id 4) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Switch, single pole double throw" (id 5) (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "SW_SPDT_0_0" + (circle (center -2.032 0) (radius 0.508) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 2.032 -2.54) (radius 0.508) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "SW_SPDT_0_1" + (polyline + (pts + (xy -1.524 0.254) + (xy 1.651 2.286) + ) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + (circle (center 2.032 2.54) (radius 0.508) + (stroke (width 0) (type default) (color 0 0 0 0)) + (fill (type none)) + ) + ) + (symbol "SW_SPDT_1_1" + (pin passive line (at 5.08 2.54 180) (length 2.54) + (name "A" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at -5.08 0 0) (length 2.54) + (name "B" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 5.08 -2.54 180) (length 2.54) + (name "C" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + ) + ) (symbol "Timer:8284" (in_bom yes) (on_board yes) (property "Reference" "U" (id 0) (at -3.81 19.05 0) (effects (font (size 1.27 1.27)) (justify right)) @@ -1327,1449 +1926,2971 @@ ) ) - (junction (at 194.945 113.03) (diameter 0) (color 0 0 0 0) + (junction (at 53.975 59.69) (diameter 0) (color 0 0 0 0) + (uuid 016e3177-075a-497c-a1d9-e98b568db6ed) + ) + (junction (at 229.235 123.825) (diameter 0) (color 0 0 0 0) (uuid 35597cba-8a9e-4418-85e6-fac387763e7c) ) - (junction (at 194.945 157.48) (diameter 0) (color 0 0 0 0) + (junction (at 229.235 168.275) (diameter 0) (color 0 0 0 0) (uuid 5e1c44b2-b532-460a-9d35-15ad6343421d) ) - (junction (at 193.04 154.94) (diameter 0) (color 0 0 0 0) + (junction (at 227.33 165.735) (diameter 0) (color 0 0 0 0) (uuid 5f64a16e-2fe5-47d5-8dff-c19bf4a8f810) ) - (junction (at 185.42 271.78) (diameter 0) (color 0 0 0 0) + (junction (at 40.005 41.91) (diameter 0) (color 0 0 0 0) + (uuid 907bcb9e-96eb-477b-9fc6-d2bce38d6454) + ) + (junction (at 219.71 282.575) (diameter 0) (color 0 0 0 0) (uuid 91429b36-eb5b-4a89-90b4-b2723bb057b4) ) - (junction (at 185.42 53.975) (diameter 0) (color 0 0 0 0) + (junction (at 46.355 41.91) (diameter 0) (color 0 0 0 0) + (uuid a5ad1dbf-eb59-4638-b54b-64a2817e7981) + ) + (junction (at 53.975 62.23) (diameter 0) (color 0 0 0 0) + (uuid acf8f0e5-102f-4807-90b0-a2970c146295) + ) + (junction (at 81.28 66.04) (diameter 0) (color 0 0 0 0) + (uuid b2d70b61-fbfb-4ffd-b94b-ef69649b4a0a) + ) + (junction (at 219.71 64.77) (diameter 0) (color 0 0 0 0) (uuid cb3661a5-5176-4662-9390-29857ae7b231) ) - (junction (at 193.04 110.49) (diameter 0) (color 0 0 0 0) + (junction (at 227.33 121.285) (diameter 0) (color 0 0 0 0) (uuid df83a10d-fee6-4c19-b29c-7c700d80a66d) ) - (no_connect (at 313.055 50.8) (uuid e8869dbf-fb5c-4855-a645-928af4cb4e68)) - (no_connect (at 313.055 53.34) (uuid e8869dbf-fb5c-4855-a645-928af4cb4e68)) - (no_connect (at 313.055 55.88) (uuid e8869dbf-fb5c-4855-a645-928af4cb4e68)) + (no_connect (at 177.8 53.34) (uuid 020ded06-f9c1-454d-9280-2cea832287e8)) + (no_connect (at 142.24 73.66) (uuid 020ded06-f9c1-454d-9280-2cea832287e8)) + (no_connect (at 55.88 72.39) (uuid 8ef75935-4249-4bf5-941b-72b1651913c5)) + (no_connect (at 34.925 36.83) (uuid 9653e5d7-d4eb-4675-bd21-2ec370f8ba59)) + (no_connect (at 347.345 61.595) (uuid e8869dbf-fb5c-4855-a645-928af4cb4e68)) + (no_connect (at 347.345 64.135) (uuid e8869dbf-fb5c-4855-a645-928af4cb4e69)) + (no_connect (at 347.345 66.675) (uuid e8869dbf-fb5c-4855-a645-928af4cb4e6a)) - (bus_entry (at 247.65 259.715) (size 2.54 -2.54) + (bus_entry (at 509.905 60.96) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 008414f5-b8c3-4b4b-b425-56217c4476cb) + ) + (bus_entry (at 281.94 270.51) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 00c91286-ac24-4432-9047-40b58c47f064) ) - (bus_entry (at 265.43 66.04) (size -2.54 -2.54) + (bus_entry (at 299.72 76.835) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 021d6378-55b5-47c0-a9c4-326e281e1db5) ) - (bus_entry (at 160.655 55.245) (size 2.54 -2.54) + (bus_entry (at 440.055 73.66) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 026486fb-1e8a-4f54-9e25-4f359546ffd9) + ) + (bus_entry (at 194.945 66.04) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 02f60d65-219d-48b1-83a8-a9767f256dc5) ) - (bus_entry (at 265.43 68.58) (size -2.54 -2.54) + (bus_entry (at 605.79 66.675) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 049d938c-9eeb-4930-9047-d143f0169ead) + ) + (bus_entry (at 299.72 79.375) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 04ae560d-70ac-4ce2-b0f0-d6fc25a8e845) ) - (bus_entry (at 187.96 92.71) (size -2.54 -2.54) + (bus_entry (at 509.905 55.88) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 053f6328-f707-4504-af35-f5d11ad9dbb9) + ) + (bus_entry (at 222.25 103.505) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 05bd945b-55d5-4863-b53e-b735ac55d67a) ) - (bus_entry (at 160.655 106.045) (size 2.54 -2.54) + (bus_entry (at 504.825 45.72) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 05e1d6b4-12e2-40bd-b8c7-d2795114d306) + ) + (bus_entry (at 440.055 76.2) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 09475088-51e3-4abf-95cc-641b07390bfb) + ) + (bus_entry (at 194.945 116.84) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 0f7c5969-7860-408b-95f4-fcc76e120755) ) - (bus_entry (at 247.65 244.475) (size 2.54 -2.54) + (bus_entry (at 281.94 255.27) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 105f11fe-8107-4bdc-80ca-e94fb3b6dfe4) ) - (bus_entry (at 160.655 65.405) (size 2.54 -2.54) + (bus_entry (at 194.945 76.2) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 14873186-f4ae-4073-b010-d513bbd7468b) ) - (bus_entry (at 187.96 259.715) (size -2.54 -2.54) + (bus_entry (at 605.79 125.095) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 162d5ab0-a150-473d-a499-5f32b8b42056) + ) + (bus_entry (at 222.25 270.51) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 16ebdbbc-9606-458f-8b7c-c2c873e87670) ) - (bus_entry (at 265.43 27.94) (size -2.54 -2.54) + (bus_entry (at 574.675 43.18) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 1a0a87bc-7224-47c0-9407-ab9e0a172409) + ) + (bus_entry (at 299.72 38.735) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 1b143149-cbf6-430e-84fc-2d201f7267dd) ) - (bus_entry (at 187.96 102.87) (size -2.54 -2.54) + (bus_entry (at 605.79 71.755) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 1d88dd8d-1bdb-4fae-be9f-56d2e6b45fe0) + ) + (bus_entry (at 222.25 113.665) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 20b35e3e-6db9-48b8-a03b-dd0a8530795b) ) - (bus_entry (at 182.88 51.435) (size -2.54 -2.54) + (bus_entry (at 509.905 53.34) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 22c2462d-1d3b-4db1-bed1-44d481da3ed8) + ) + (bus_entry (at 217.17 62.23) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 22f244c7-70f7-4488-a532-10723698890e) ) - (bus_entry (at 160.655 88.265) (size 2.54 -2.54) + (bus_entry (at 440.055 33.02) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 23354fc3-e769-48da-b431-58d1a714f5eb) + ) + (bus_entry (at 574.675 48.26) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 235b53c5-bcc5-4209-a0dd-ec146cc49541) + ) + (bus_entry (at 194.945 99.06) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 265acb2f-f291-4084-bd20-f86d2930ba55) ) - (bus_entry (at 187.96 252.095) (size -2.54 -2.54) + (bus_entry (at 440.055 66.04) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 266436b2-2936-4f3c-a93b-0218e7df70d4) + ) + (bus_entry (at 509.905 50.8) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 28c7870e-4cc7-45fb-ac1b-346aca37620b) + ) + (bus_entry (at 222.25 262.89) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2956b7ca-7b25-43bd-9165-5895a9e154ed) ) - (bus_entry (at 247.65 185.42) (size 2.54 -2.54) + (bus_entry (at 281.94 196.215) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2a8c6ef1-4d2d-4301-9042-58641d426954) ) - (bus_entry (at 187.96 244.475) (size -2.54 -2.54) + (bus_entry (at 222.25 255.27) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2b3d025e-fdde-4695-b466-3984a53bd848) ) - (bus_entry (at 160.655 70.485) (size 2.54 -2.54) + (bus_entry (at 194.945 81.28) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2b7973eb-d742-41c0-a999-5c90827e57fd) ) - (bus_entry (at 247.65 252.095) (size 2.54 -2.54) + (bus_entry (at 281.94 262.89) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2ecf62ae-911b-4844-b229-0f9ed2dd79b4) ) - (bus_entry (at 180.34 31.115) (size 2.54 2.54) + (bus_entry (at 574.675 40.64) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 2f12436f-3311-48c2-a612-6276c03ceef1) + ) + (bus_entry (at 214.63 41.91) (size 2.54 2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2ffe12a1-fdff-427e-89af-c2d95df33b31) ) - (bus_entry (at 247.65 257.175) (size 2.54 -2.54) + (bus_entry (at 281.94 267.97) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 30808bfc-21b9-4b00-aec5-4146ee4aa231) ) - (bus_entry (at 247.65 144.78) (size 2.54 -2.54) + (bus_entry (at 605.79 48.895) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 319e41f6-703e-41fd-bbf2-4534aee002af) + ) + (bus_entry (at 281.94 155.575) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 320d7fa5-719f-4e50-a856-35f7a6aed6a1) ) - (bus_entry (at 247.65 100.33) (size 2.54 -2.54) + (bus_entry (at 440.055 48.26) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 322e8216-f1ef-4997-958a-adec1a69f7fb) + ) + (bus_entry (at 281.94 111.125) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 335f5f79-f540-4568-8380-6c0664cf0fe9) ) - (bus_entry (at 247.65 142.24) (size 2.54 -2.54) + (bus_entry (at 574.675 50.8) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 35311a31-4ca9-436f-bb65-fb86eacf4a67) + ) + (bus_entry (at 281.94 153.035) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 3547f9c0-c19f-41b9-95c5-fe7d53432857) ) - (bus_entry (at 187.96 95.25) (size -2.54 -2.54) + (bus_entry (at 222.25 106.045) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 35d1ac7a-37bd-4d37-aa4a-18da09a5b927) ) - (bus_entry (at 187.96 134.62) (size -2.54 -2.54) + (bus_entry (at 222.25 145.415) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 36569673-0212-4042-a185-27ac3ed782f0) ) - (bus_entry (at 90.805 37.465) (size -2.54 -2.54) + (bus_entry (at 574.675 45.72) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3867a696-0b9f-485f-95f7-d43557700272) + ) + (bus_entry (at 440.055 60.96) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3906fde6-75e1-46d2-9302-9bc684398c8c) + ) + (bus_entry (at 125.095 48.26) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 399e09df-5031-4da8-924d-c8a839020aa4) ) - (bus_entry (at 187.96 180.34) (size -2.54 -2.54) + (bus_entry (at 222.25 191.135) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 3ba72d15-0f56-462c-8fea-66dddef839b0) ) - (bus_entry (at 160.655 111.125) (size 2.54 -2.54) + (bus_entry (at 194.945 121.92) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 3d2382cc-aca7-4d7d-9962-41cb83530271) ) - (bus_entry (at 187.96 177.8) (size -2.54 -2.54) + (bus_entry (at 440.055 68.58) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3efa8276-0f13-4896-8a6b-6801f2fbd767) + ) + (bus_entry (at 605.79 159.385) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 443f4745-4ded-4762-997b-a58d17d77296) + ) + (bus_entry (at 440.055 83.82) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 4653d649-949d-4507-916a-b36cd132bb9c) + ) + (bus_entry (at 509.905 71.12) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 476fa935-f2df-445b-a110-65c812d8ae15) + ) + (bus_entry (at 222.25 188.595) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 47e9214b-fc09-4abe-b15c-d7be92ab04fc) ) - (bus_entry (at 160.655 57.785) (size 2.54 -2.54) + (bus_entry (at 194.945 68.58) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 47fa301f-7391-4d02-badc-831793882d59) ) - (bus_entry (at 160.655 80.645) (size 2.54 -2.54) + (bus_entry (at 194.945 91.44) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 48c77c8e-f9ec-4ba8-87d7-c0d47f740b77) ) - (bus_entry (at 160.655 85.725) (size 2.54 -2.54) + (bus_entry (at 605.79 164.465) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 49a04f0d-5be9-492a-9484-cb7499d2b3c9) + ) + (bus_entry (at 605.79 120.015) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 4ab1b018-2b82-4cb3-b913-2123520de664) + ) + (bus_entry (at 194.945 96.52) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 4bc3d327-13af-4950-a1a1-b2699a2f246e) ) - (bus_entry (at 247.65 102.87) (size 2.54 -2.54) + (bus_entry (at 281.94 113.665) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 4e5b114a-3416-4fe1-ba53-7665b930dff7) ) - (bus_entry (at 180.34 28.575) (size 2.54 2.54) + (bus_entry (at 214.63 39.37) (size 2.54 2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 5003e115-7231-46b3-93d9-c2267ed5a1ff) ) - (bus_entry (at 160.655 98.425) (size 2.54 -2.54) + (bus_entry (at 194.945 109.22) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 50627cdc-82fb-4ae1-9196-08f53083ee22) ) - (bus_entry (at 247.65 97.79) (size 2.54 -2.54) + (bus_entry (at 281.94 108.585) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 507a3975-7268-4a57-a166-b24338bc1d9f) ) - (bus_entry (at 160.655 60.325) (size 2.54 -2.54) + (bus_entry (at 194.945 71.12) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 51e91ff0-2145-407d-82f8-759c165e0a29) ) - (bus_entry (at 247.65 132.08) (size 2.54 -2.54) + (bus_entry (at 281.94 142.875) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 52567af9-1f82-4491-9207-9e1eea81b826) ) - (bus_entry (at 160.655 37.465) (size 2.54 -2.54) + (bus_entry (at 194.945 48.26) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 52d1fb62-4b7b-4ab9-87a4-7e84235ba5ba) ) - (bus_entry (at 180.34 26.035) (size 2.54 2.54) + (bus_entry (at 214.63 36.83) (size 2.54 2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 532577a3-6b4d-49a4-ba7d-123ccfc1613f) ) - (bus_entry (at 160.655 83.185) (size 2.54 -2.54) + (bus_entry (at 194.945 93.98) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 533cfb76-c118-430e-ba55-957f27e3c759) ) - (bus_entry (at 247.65 147.32) (size 2.54 -2.54) + (bus_entry (at 281.94 158.115) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 54da1a8d-a40a-4053-9334-4164a5605488) ) - (bus_entry (at 247.65 247.015) (size 2.54 -2.54) + (bus_entry (at 281.94 257.81) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 56043b61-5e05-444e-9337-7a6072e50ee7) ) - (bus_entry (at 90.805 57.785) (size -2.54 -2.54) + (bus_entry (at 509.905 76.2) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 56fa4054-d10b-498f-ac96-0cc629565a0c) + ) + (bus_entry (at 125.095 68.58) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 5937fb2c-05a2-4ecc-9bd4-7cdb42a89578) ) - (bus_entry (at 187.96 105.41) (size -2.54 -2.54) + (bus_entry (at 222.25 116.205) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 5aa6e90a-a965-49b8-b434-09d89ac1274e) ) - (bus_entry (at 187.96 257.175) (size -2.54 -2.54) + (bus_entry (at 440.055 43.18) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 5cd9d2f6-7fe0-406b-8731-4b333b9b174b) + ) + (bus_entry (at 440.055 106.045) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 5d0eac2c-4e1e-4ee7-b63f-d0fc20f698cf) + ) + (bus_entry (at 222.25 267.97) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 5df6e7f5-fc69-4fee-a1ac-5648420950d4) ) - (bus_entry (at 265.43 38.1) (size -2.54 -2.54) + (bus_entry (at 605.79 51.435) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 5ecb35d9-d9d1-48de-9685-c9d2772c6182) + ) + (bus_entry (at 504.825 35.56) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 5f4593f8-f1cc-4670-95c6-fdf815814f81) + ) + (bus_entry (at 93.345 46.99) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 65227d30-744c-4e1f-8127-e7f102ea8816) + ) + (bus_entry (at 299.72 48.895) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 65be7b2f-7814-4453-98cc-95ec7b24211a) ) - (bus_entry (at 265.43 43.18) (size -2.54 -2.54) + (bus_entry (at 509.905 38.1) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 65e5b18e-05e0-4209-9d3c-20d4178408aa) + ) + (bus_entry (at 440.055 71.12) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 667b5bfd-84c3-4fed-93cd-e3f9ef678347) + ) + (bus_entry (at 605.79 112.395) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 66894d81-3bb5-4662-b9ac-29f1bbf2819e) + ) + (bus_entry (at 440.055 35.56) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 679ba56f-a708-409f-bbb3-625e9648284a) + ) + (bus_entry (at 299.72 53.975) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 6946c256-f315-43a6-b4e3-2e7c9659c882) ) - (bus_entry (at 160.655 93.345) (size 2.54 -2.54) + (bus_entry (at 509.905 48.26) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 6e659451-002f-430b-8bc4-98d2970265bc) + ) + (bus_entry (at 509.905 35.56) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 6e86188b-4b50-44d0-aa00-11652eff12ef) + ) + (bus_entry (at 194.945 104.14) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 70643c9f-700b-4887-b974-c8595c070e13) ) - (bus_entry (at 252.73 43.815) (size 2.54 -2.54) + (bus_entry (at 574.675 33.02) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 70934544-fe9f-4e40-965c-b5f4c2f25a62) + ) + (bus_entry (at 605.79 156.845) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7339357e-886e-40c6-b80f-e5aa076d76fb) + ) + (bus_entry (at 287.02 54.61) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 73b9235b-1dbb-43c3-b0fb-d073d240161b) ) - (bus_entry (at 265.43 58.42) (size -2.54 -2.54) + (bus_entry (at 299.72 69.215) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7501ab67-c88c-4f75-8a8b-45ea7baf481d) ) - (bus_entry (at 252.73 41.275) (size 2.54 -2.54) + (bus_entry (at 605.79 117.475) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 75ce2ba6-5105-45bc-9e54-b7eede664888) + ) + (bus_entry (at 287.02 52.07) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 79a48776-5a15-4f59-aeb3-f24edaacfc28) ) - (bus_entry (at 265.43 45.72) (size -2.54 -2.54) + (bus_entry (at 299.72 56.515) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7b43e1dc-f0e7-4f07-90fb-b134c616cede) ) - (bus_entry (at 187.96 87.63) (size -2.54 -2.54) + (bus_entry (at 222.25 98.425) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7b97f61c-8e1c-4d62-96a1-26a76c1e2edd) ) - (bus_entry (at 265.43 33.02) (size -2.54 -2.54) + (bus_entry (at 440.055 55.88) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7be8d60d-ec60-4743-bede-a24c30d02878) + ) + (bus_entry (at 125.095 58.42) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7bf9530b-06c6-4ae5-a90d-919ad1abf7c9) + ) + (bus_entry (at 299.72 43.815) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7da9d3c5-f653-4350-8a0d-829501d9fc4b) ) - (bus_entry (at 160.655 95.885) (size 2.54 -2.54) + (bus_entry (at 93.345 57.15) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7f42efdd-090e-474d-9e2d-79c74784ab65) + ) + (bus_entry (at 194.945 106.68) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7f6e69d4-f2e6-46ae-8005-3c744d190768) ) - (bus_entry (at 247.65 134.62) (size 2.54 -2.54) + (bus_entry (at 93.345 41.91) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8012a88b-741b-497c-b2fc-98d8d2fc038e) + ) + (bus_entry (at 281.94 145.415) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 85a9da4f-7a16-4d1d-a9f9-e6a440cbea44) ) - (bus_entry (at 187.96 249.555) (size -2.54 -2.54) + (bus_entry (at 222.25 260.35) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 86900947-a696-4d50-a006-edb5cbfc3773) ) - (bus_entry (at 265.43 35.56) (size -2.54 -2.54) + (bus_entry (at 299.72 46.355) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 890a854a-a67f-4ae5-93fa-74b277b96e8e) ) - (bus_entry (at 247.65 180.34) (size 2.54 -2.54) + (bus_entry (at 281.94 191.135) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 8f03d1cf-4b89-4968-827c-2d1370e8f17e) ) - (bus_entry (at 247.65 137.16) (size 2.54 -2.54) + (bus_entry (at 605.79 102.235) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8f921619-c266-4e31-8b57-b99700ce6493) + ) + (bus_entry (at 281.94 147.955) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 8f9adf5d-07a5-430e-bb72-b9cda01dde3d) ) - (bus_entry (at 187.96 144.78) (size -2.54 -2.54) + (bus_entry (at 509.905 40.64) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 90e533fb-3062-429b-a4ea-2143c769ccb7) + ) + (bus_entry (at 440.055 50.8) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 9343f534-a87b-4b20-8507-68921ad30140) + ) + (bus_entry (at 440.055 40.64) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 964b631d-09f8-47ac-8771-0b884439f8ae) + ) + (bus_entry (at 509.905 33.02) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 96942401-dc50-483b-a34b-58410a59851e) + ) + (bus_entry (at 222.25 155.575) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 97e89486-9e89-40b7-9d39-13bb4e02b0c5) ) - (bus_entry (at 160.655 100.965) (size 2.54 -2.54) + (bus_entry (at 440.055 38.1) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 98553fb4-c7fa-40bc-8e2c-7f7c0357914a) + ) + (bus_entry (at 440.055 45.72) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 9a658e5e-b067-4e7e-922e-169ffa1d7169) + ) + (bus_entry (at 194.945 111.76) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 9c94167d-0f47-4028-83e6-5a52b4142020) ) - (bus_entry (at 265.43 60.96) (size -2.54 -2.54) + (bus_entry (at 509.905 45.72) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 9e62f1ae-6489-4010-83bf-a4e32adac8ee) + ) + (bus_entry (at 299.72 71.755) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 9fa8562b-2aa4-4ede-936a-d1e37f445b72) ) - (bus_entry (at 187.96 100.33) (size -2.54 -2.54) + (bus_entry (at 222.25 111.125) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a17a40c8-b687-4c9d-869d-df6e76b7ea98) ) - (bus_entry (at 247.65 139.7) (size 2.54 -2.54) + (bus_entry (at 281.94 150.495) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a3a1b068-b143-47e6-a2ce-5c82463867a2) ) - (bus_entry (at 160.655 62.865) (size 2.54 -2.54) + (bus_entry (at 194.945 73.66) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a3f2eda1-ae1a-452f-bf57-38d728576178) ) - (bus_entry (at 160.655 40.005) (size 2.54 -2.54) + (bus_entry (at 194.945 50.8) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a4dc6caf-b167-4179-b6fc-f87da0aed1f2) ) - (bus_entry (at 247.65 182.88) (size 2.54 -2.54) + (bus_entry (at 509.905 63.5) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a6c500b4-8283-4a97-913b-774c739ffa67) + ) + (bus_entry (at 287.02 46.99) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a8d5ad74-ab93-4b98-b6e2-90da654b30de) + ) + (bus_entry (at 281.94 193.675) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid b05fc76f-dcd8-4069-83de-7870e5b1ffa3) ) - (bus_entry (at 187.96 254.635) (size -2.54 -2.54) + (bus_entry (at 509.905 43.18) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b095f40d-46ce-4b35-a676-0d736facf702) + ) + (bus_entry (at 222.25 265.43) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid b25c2245-158b-42eb-9dab-7a51ae278aca) ) - (bus_entry (at 187.96 185.42) (size -2.54 -2.54) + (bus_entry (at 222.25 196.215) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid b2a219bb-23b9-436f-87c8-e5ff9f152caf) ) - (bus_entry (at 247.65 177.8) (size 2.54 -2.54) + (bus_entry (at 281.94 188.595) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid b2eae270-bd21-438d-974d-1da18f2cb3fb) ) - (bus_entry (at 160.655 52.705) (size 2.54 -2.54) + (bus_entry (at 509.905 78.74) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b35700e2-ef24-497d-9c49-b68dd12644b1) + ) + (bus_entry (at 605.79 167.005) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b495ed32-e7b5-4fcf-bbfa-48076d2c50a8) + ) + (bus_entry (at 605.79 74.295) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b551689e-93b3-4776-b10c-c5aa8f77421c) + ) + (bus_entry (at 504.825 33.02) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b6663dc0-08da-497c-b183-19b0a0471464) + ) + (bus_entry (at 194.945 63.5) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid b6756551-47a7-49a9-a4d1-b8d8da3a83d1) ) - (bus_entry (at 160.655 47.625) (size 2.54 -2.54) + (bus_entry (at 504.825 48.26) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b8c9c8c8-6c3f-4e01-8b75-aebb0bd03638) + ) + (bus_entry (at 509.905 66.04) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b9088bec-6414-4e46-88d7-a901d198a64f) + ) + (bus_entry (at 504.825 40.64) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid bc979deb-36c1-42c7-8c5f-e95134b8c58d) + ) + (bus_entry (at 194.945 58.42) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid bdafff4c-0ea1-42f6-849e-2382dae065aa) ) - (bus_entry (at 265.43 40.64) (size -2.54 -2.54) + (bus_entry (at 299.72 51.435) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid bf677463-4902-4bcc-8ab7-ef1982be2b9a) ) - (bus_entry (at 247.65 90.17) (size 2.54 -2.54) + (bus_entry (at 504.825 38.1) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c0ac7ac4-d04e-437a-b266-79e321d1a933) + ) + (bus_entry (at 440.055 53.34) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c1a82603-95e7-4e5c-b501-e12a67ed03aa) + ) + (bus_entry (at 574.675 35.56) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c213bd6d-3277-42fe-a55c-7be215491b28) + ) + (bus_entry (at 281.94 100.965) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c47bd00e-a615-4553-bf41-72afdf0cf087) ) - (bus_entry (at 160.655 108.585) (size 2.54 -2.54) + (bus_entry (at 194.945 119.38) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c4ef68fa-05be-43cb-85ad-286821fa35f0) ) - (bus_entry (at 247.65 87.63) (size 2.54 -2.54) + (bus_entry (at 281.94 98.425) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c8b92a1e-6fc7-40f4-be73-677fbd1b89fe) ) - (bus_entry (at 187.96 97.79) (size -2.54 -2.54) + (bus_entry (at 222.25 108.585) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c8c921d9-6524-4500-9f1d-534b8eed20a0) ) - (bus_entry (at 160.655 75.565) (size 2.54 -2.54) + (bus_entry (at 194.945 86.36) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c9bff03c-399e-4878-a100-e5b4a229dff4) ) - (bus_entry (at 187.96 137.16) (size -2.54 -2.54) + (bus_entry (at 222.25 147.955) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ca09b46c-f624-4621-8ff9-c57995a6af2b) ) - (bus_entry (at 247.65 105.41) (size 2.54 -2.54) + (bus_entry (at 605.79 59.055) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid cc5c1719-6494-4a4c-b18f-208958c455cc) + ) + (bus_entry (at 440.055 78.74) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ccac76bc-c47b-40b0-aa9d-bd0354387c4f) + ) + (bus_entry (at 605.79 127.635) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ccc74b1c-9607-458d-a6f8-1dbe68933fe2) + ) + (bus_entry (at 605.79 64.135) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid cdb4d42e-9473-45ab-a97c-197590bf571b) + ) + (bus_entry (at 605.79 109.855) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ce63fe5a-05f9-46ca-87bd-5e727c1bb359) + ) + (bus_entry (at 509.905 58.42) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d0ad9d31-8a4e-44a4-ad27-33c6ee205f5c) + ) + (bus_entry (at 93.345 52.07) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d255128f-f0a9-40fd-ade2-753b6f1ac40b) + ) + (bus_entry (at 281.94 116.205) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d26fa6ca-72a0-4031-9800-bcf47d11ace3) ) - (bus_entry (at 187.96 247.015) (size -2.54 -2.54) + (bus_entry (at 125.095 53.34) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d4530966-697e-424b-8fb8-dc1c8214bf8b) + ) + (bus_entry (at 222.25 257.81) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d5f93709-8057-456a-8ae8-d9be69498afc) ) - (bus_entry (at 187.96 90.17) (size -2.54 -2.54) + (bus_entry (at 222.25 100.965) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d7290704-b7dd-4b03-ac3b-5fe6eff55217) ) - (bus_entry (at 187.96 182.88) (size -2.54 -2.54) + (bus_entry (at 222.25 193.675) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d74d757a-67ee-4c96-a622-2088a9531f6a) ) - (bus_entry (at 247.65 95.25) (size 2.54 -2.54) + (bus_entry (at 440.055 63.5) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d79fa25d-cd42-4320-bbf9-fa735f763573) + ) + (bus_entry (at 574.675 38.1) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d81ad5b2-e28b-4f2a-9366-1205f8f2a33d) + ) + (bus_entry (at 509.905 88.9) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid da5911b3-68ac-4848-adc5-db66e8a09f0c) + ) + (bus_entry (at 281.94 106.045) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid dfebfd86-9ed7-4fb1-a5fc-a339e4fb00f8) ) - (bus_entry (at 252.73 33.655) (size 2.54 -2.54) + (bus_entry (at 287.02 44.45) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e00c608b-e097-4cc9-8804-62680f710eb4) ) - (bus_entry (at 160.655 73.025) (size 2.54 -2.54) + (bus_entry (at 194.945 83.82) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e0f1bf95-1974-484c-b11b-df413261f619) ) - (bus_entry (at 187.96 262.255) (size -2.54 -2.54) + (bus_entry (at 509.905 68.58) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e1b2e131-21cb-47b4-a0f5-a7d261bd4011) + ) + (bus_entry (at 222.25 273.05) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e2052b2b-7244-4499-b4e0-ef16db56c04d) ) - (bus_entry (at 247.65 254.635) (size 2.54 -2.54) + (bus_entry (at 440.055 58.42) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e23c0cbc-3b54-4d4a-9c66-7b6f00323b98) + ) + (bus_entry (at 281.94 265.43) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e2f020ea-2799-4396-b464-3db6c0ad52c1) ) - (bus_entry (at 187.96 139.7) (size -2.54 -2.54) + (bus_entry (at 222.25 150.495) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e4690c02-dd69-458c-b65b-56c7fba11065) ) - (bus_entry (at 265.43 30.48) (size -2.54 -2.54) + (bus_entry (at 299.72 41.275) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e477cbee-73ee-4738-b159-a6e710e059ad) ) - (bus_entry (at 187.96 142.24) (size -2.54 -2.54) + (bus_entry (at 222.25 153.035) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e4a127de-6ba9-42c8-bb54-799a1b3914a0) ) - (bus_entry (at 247.65 262.255) (size 2.54 -2.54) + (bus_entry (at 509.905 73.66) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e5272cc9-e133-4ae5-9fc5-f5047cd14167) + ) + (bus_entry (at 504.825 50.8) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e6a454a2-f0d2-4156-b39f-4ed586c6bc6a) + ) + (bus_entry (at 281.94 273.05) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e8784b85-e72f-4ec1-8775-325bf841edb8) ) - (bus_entry (at 187.96 149.86) (size -2.54 -2.54) + (bus_entry (at 222.25 160.655) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e9c49425-f318-4275-bcd9-02f0071718a4) ) - (bus_entry (at 187.96 147.32) (size -2.54 -2.54) + (bus_entry (at 93.345 59.69) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ec25433d-6df0-436c-addf-1354345ee1f4) + ) + (bus_entry (at 222.25 158.115) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ed9c6e62-6114-4847-a71e-179f0e7b087e) ) - (bus_entry (at 247.65 149.86) (size 2.54 -2.54) + (bus_entry (at 281.94 160.655) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid edfa0876-a48e-41c5-815a-5667613ad335) ) - (bus_entry (at 265.43 50.8) (size -2.54 -2.54) + (bus_entry (at 440.055 88.9) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ee9e85fe-94d7-4484-874a-5817269a7b48) + ) + (bus_entry (at 299.72 61.595) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid f09daafb-6026-41d7-bd79-4bccfcf681b3) ) - (bus_entry (at 160.655 78.105) (size 2.54 -2.54) + (bus_entry (at 194.945 88.9) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid f35246ad-aba2-457f-ab58-02ff743cec0c) ) - (bus_entry (at 187.96 132.08) (size -2.54 -2.54) + (bus_entry (at 222.25 142.875) (size -2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid f3babbe4-a69f-44d2-86ba-5d2572be67cd) ) - (bus_entry (at 247.65 249.555) (size 2.54 -2.54) + (bus_entry (at 605.79 56.515) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f4aa12c9-21b6-4d3d-b219-f574a2f2a696) + ) + (bus_entry (at 281.94 260.35) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid f4f76a0b-5e7b-48c7-9476-97777d1b090a) ) - (bus_entry (at 247.65 92.71) (size 2.54 -2.54) + (bus_entry (at 440.055 86.36) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f55d70bd-74a8-40c2-ac8e-83281e7d1267) + ) + (bus_entry (at 504.825 43.18) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f8c37e82-7b90-49ba-8893-a0b54b40e949) + ) + (bus_entry (at 281.94 103.505) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid f958ff54-464e-4c12-bb17-9544dcc3d975) ) - (bus_entry (at 160.655 50.165) (size 2.54 -2.54) + (bus_entry (at 194.945 60.96) (size 2.54 -2.54) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid f99e3eb3-5293-43f8-a126-11d93157f228) ) + (bus_entry (at 287.02 49.53) (size 2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid fa110894-4920-4981-82b3-87da0e8d58dd) + ) + (bus_entry (at 605.79 104.775) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid fc92dbb5-4628-42f6-87ed-e171ab1c35bc) + ) + (bus_entry (at 509.905 86.36) (size -2.54 -2.54) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid fe66f8a7-1c3b-42b0-a22f-721a4e7928c5) + ) - (wire (pts (xy 143.51 55.245) (xy 160.655 55.245)) + (bus (pts (xy 437.515 58.42) (xy 437.515 60.96)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0106b1a0-3b54-4faf-a4ac-d23435261840) + ) + + (wire (pts (xy 527.05 71.12) (xy 509.905 71.12)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 042d6ab3-ed02-46e1-a10f-137529b4f837) + ) + (wire (pts (xy 177.8 66.04) (xy 194.945 66.04)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 05050c25-2f3b-4cbe-88d1-be281f972ec7) ) - (wire (pts (xy 240.665 71.12) (xy 240.665 59.055)) + (wire (pts (xy 274.955 81.915) (xy 274.955 69.85)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 068b57ef-9140-4a79-9432-8f656e88bba9) ) - (wire (pts (xy 143.51 60.325) (xy 160.655 60.325)) + (bus (pts (xy 507.365 71.12) (xy 507.365 68.58)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 06c7ee86-f804-454d-a23a-b235e23190d1) + ) + + (wire (pts (xy 457.2 83.82) (xy 440.055 83.82)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 071489db-db83-4888-b1db-6e1a50e7fbfd) + ) + (wire (pts (xy 177.8 71.12) (xy 194.945 71.12)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 0855bf71-b125-4988-a2e7-95b6f684d8f8) ) - (wire (pts (xy 200.025 48.895) (xy 185.42 48.895)) + (wire (pts (xy 234.315 59.69) (xy 219.71 59.69)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 08a5055e-402a-4e38-b66b-6747b5aa3d80) ) - (wire (pts (xy 191.77 64.135) (xy 194.945 64.135)) + (wire (pts (xy 622.935 159.385) (xy 605.79 159.385)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0946f695-6ef3-4134-8555-2d13165122f1) + ) + (wire (pts (xy 226.06 74.93) (xy 229.235 74.93)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 0a052b40-1ea8-4f72-ae19-c3f0c4b0cbbf) ) - (wire (pts (xy 235.585 53.975) (xy 244.475 53.975)) + (bus (pts (xy 437.515 55.88) (xy 437.515 58.42)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0a577c40-0a3c-4765-a4c1-a68cb4fe3b84) + ) + + (wire (pts (xy 269.875 64.77) (xy 278.765 64.77)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 0b7f839b-be72-4280-83b1-f526f9475246) ) - (wire (pts (xy 235.585 33.655) (xy 252.73 33.655)) + (wire (pts (xy 527.05 40.64) (xy 509.905 40.64)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0ba57389-cd06-4c89-8958-d14506723e72) + ) + (wire (pts (xy 557.53 38.1) (xy 574.675 38.1)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0bd2e24f-ed93-4514-b538-5349a38b8c89) + ) + (wire (pts (xy 527.05 86.36) (xy 509.905 86.36)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0bf6670d-cf62-483c-b75d-af4fd92a25f6) + ) + (wire (pts (xy 269.875 44.45) (xy 287.02 44.45)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 0c3e9563-b504-475f-94f4-cf93781a9783) ) - (wire (pts (xy 282.575 38.1) (xy 265.43 38.1)) + (wire (pts (xy 316.865 48.895) (xy 299.72 48.895)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 0cf69440-39cb-4908-a93e-8cb116129bdf) ) - (wire (pts (xy 107.95 57.785) (xy 90.805 57.785)) + (wire (pts (xy 457.2 76.2) (xy 440.055 76.2)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0d51b024-ca51-4c24-bc0a-19b197950162) + ) + (wire (pts (xy 527.05 50.8) (xy 509.905 50.8)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 0e0cbff3-9207-4b43-8f28-f36d7989fa81) + ) + (wire (pts (xy 142.24 68.58) (xy 125.095 68.58)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 12e43415-3573-432f-b942-c90e3be5d55a) ) - (wire (pts (xy 182.88 31.115) (xy 200.025 31.115)) + (wire (pts (xy 491.49 83.82) (xy 507.365 83.82)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 131e3db0-2362-41ca-9182-1ad2832a1789) + ) + (wire (pts (xy 53.975 59.69) (xy 53.975 62.23)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 13c1c8ef-836b-4be3-a856-8e786337edf9) + ) + (wire (pts (xy 457.2 73.66) (xy 440.055 73.66)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 15f9f8d4-e30c-4003-9203-ae097c25d031) + ) + (wire (pts (xy 217.17 41.91) (xy 234.315 41.91)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 166bc786-31b9-4b82-88fe-b1f1aa6f3b5c) ) - (wire (pts (xy 185.42 53.975) (xy 200.025 53.975)) + (wire (pts (xy 219.71 64.77) (xy 234.315 64.77)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 179ac3d7-0e66-4fbd-b0a3-f651cbdaa698) ) - (wire (pts (xy 194.945 113.03) (xy 194.945 157.48)) + (wire (pts (xy 137.795 83.82) (xy 142.24 83.82)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 180953c8-9f2f-4fe4-89dd-9e069dc18179) + ) + (wire (pts (xy 229.235 123.825) (xy 229.235 168.275)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 19bdf0e6-f63f-465c-a888-9974ae9da0ad) ) - (wire (pts (xy 244.475 53.975) (xy 244.475 74.93)) + (wire (pts (xy 40.005 41.91) (xy 46.355 41.91)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 1d4e3ced-2696-4021-b55c-0d8198c80862) + ) + (bus (pts (xy 437.515 60.96) (xy 437.515 63.5)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 1d694e92-4769-40f8-a8f8-04dce71c111b) + ) + (bus (pts (xy 507.365 83.82) (xy 507.365 76.2)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 1dd76bda-90d8-425a-8425-c8c23feebc1b) + ) + + (wire (pts (xy 527.05 38.1) (xy 509.905 38.1)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 1eb2a727-e700-40e9-b68d-fa0ff48edfb0) + ) + (wire (pts (xy 457.2 58.42) (xy 440.055 58.42)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 2027757b-f2bc-426c-a5d8-7038fb84499c) + ) + (wire (pts (xy 557.53 48.26) (xy 574.675 48.26)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 206e6a5b-d688-45cb-9cd6-fe8b214cbc5c) + ) + (wire (pts (xy 457.2 48.26) (xy 440.055 48.26)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 20710443-3216-431c-b967-9b47b50d2481) + ) + (wire (pts (xy 278.765 64.77) (xy 278.765 85.725)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 21372717-95a3-4c6b-a57e-dc2f99468ebb) ) - (wire (pts (xy 143.51 78.105) (xy 160.655 78.105)) + (wire (pts (xy 457.2 55.88) (xy 440.055 55.88)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 21725cd7-65c4-4f97-85c8-90ba389a4e65) + ) + (wire (pts (xy 177.8 88.9) (xy 194.945 88.9)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 21c4a65c-31ee-4832-b5c3-eddb62e755fa) ) - (wire (pts (xy 282.575 33.02) (xy 265.43 33.02)) + (wire (pts (xy 487.68 48.26) (xy 504.825 48.26)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 21d39492-7701-49b0-a7be-72270ee72baa) + ) + (wire (pts (xy 487.68 40.64) (xy 504.825 40.64)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 22bab657-28ec-47e3-9657-6c45ed63fcb1) + ) + (wire (pts (xy 316.865 43.815) (xy 299.72 43.815)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2345e4aa-2e05-435c-a53a-10d1110dd080) ) - (wire (pts (xy 143.51 106.045) (xy 160.655 106.045)) + (wire (pts (xy 177.8 116.84) (xy 194.945 116.84)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 237384a8-b88b-40e0-8456-d20b5263c2a4) ) - (wire (pts (xy 189.23 71.12) (xy 240.665 71.12)) + (wire (pts (xy 223.52 81.915) (xy 274.955 81.915)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2411eb6e-4b94-48fa-962f-7971cd83ef97) ) - (wire (pts (xy 282.575 45.72) (xy 265.43 45.72)) + (wire (pts (xy 316.865 56.515) (xy 299.72 56.515)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 24ca5b5b-d05f-461e-bc0f-a45d30575cfa) ) - (wire (pts (xy 143.51 70.485) (xy 160.655 70.485)) + (bus (pts (xy 437.515 66.04) (xy 437.515 68.58)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 24d9c221-eaf7-4458-9e19-3b9c5ea78716) + ) + + (wire (pts (xy 177.8 81.28) (xy 194.945 81.28)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 24de625a-8427-4d93-a79c-655cc198d2ca) ) - (wire (pts (xy 193.04 154.94) (xy 193.04 200.66)) + (wire (pts (xy 227.33 165.735) (xy 227.33 211.455)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 257e3800-42ee-45f9-9ad8-0bb89dd88049) ) - (wire (pts (xy 230.505 252.095) (xy 247.65 252.095)) + (wire (pts (xy 40.005 39.37) (xy 40.005 41.91)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 26cc6d31-c113-48bb-9f1c-2b3e5de2762f) + ) + (bus (pts (xy 437.515 43.18) (xy 437.515 45.72)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 272b4f64-f64d-4f34-b04e-6ca05a86cbec) + ) + (bus (pts (xy 437.515 86.36) (xy 437.515 103.505)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 2908d017-93b9-459d-8162-1fa2e5ff1c94) + ) + (bus (pts (xy 507.365 53.34) (xy 507.365 50.8)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 2a9b7790-e061-4cb7-8be5-f0cfa965097e) + ) + + (wire (pts (xy 264.795 262.89) (xy 281.94 262.89)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2b393853-52f9-4168-b4d6-b0e6ecc56915) ) - (wire (pts (xy 230.505 137.16) (xy 247.65 137.16)) + (wire (pts (xy 457.2 60.96) (xy 440.055 60.96)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 2b4b6e12-207d-4dc4-98f3-7dfd65200fc0) + ) + (wire (pts (xy 527.05 66.04) (xy 509.905 66.04)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 2b7122ef-36ad-4bde-9a3f-e1f71b849b21) + ) + (wire (pts (xy 264.795 147.955) (xy 281.94 147.955)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2ca4ce35-c870-478f-b5a1-24c43e021652) ) - (wire (pts (xy 143.51 88.265) (xy 160.655 88.265)) + (wire (pts (xy 53.975 62.23) (xy 55.88 62.23)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 2cadfc40-f19d-40d7-891b-b5451b59da76) + ) + (wire (pts (xy 177.8 99.06) (xy 194.945 99.06)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2cdf1726-ecd4-42cc-b2ce-db5b467561d5) ) - (wire (pts (xy 194.945 64.135) (xy 194.945 113.03)) + (wire (pts (xy 229.235 74.93) (xy 229.235 123.825)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 2dcc2039-d190-4aeb-9239-ec08a004b5d6) ) - (wire (pts (xy 205.105 177.8) (xy 187.96 177.8)) + (wire (pts (xy 557.53 40.64) (xy 574.675 40.64)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 2ee46bb8-d1c4-4a63-ba2d-224b75af7334) + ) + (wire (pts (xy 457.2 40.64) (xy 440.055 40.64)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 2f299527-5db5-423c-84ad-d56ae6128130) + ) + (wire (pts (xy 52.07 54.61) (xy 55.88 54.61)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 2f55a00c-7e9b-45b5-a56c-b13214df6d91) + ) + (wire (pts (xy 76.2 72.39) (xy 76.2 73.66)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 319e2c46-5707-4f8c-9660-c5d21368210c) + ) + (wire (pts (xy 142.24 53.34) (xy 125.095 53.34)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 31cf339e-5604-4658-aa99-e692cd77e58d) + ) + (wire (pts (xy 239.395 188.595) (xy 222.25 188.595)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 329ba30f-e553-429f-91ff-34fe3180484b) ) - (wire (pts (xy 202.565 274.32) (xy 205.105 274.32)) + (bus (pts (xy 507.365 43.18) (xy 507.365 40.64)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 329f8c86-736d-44dc-bf27-ba2bbc143ad8) + ) + + (wire (pts (xy 236.855 285.115) (xy 239.395 285.115)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 3331c83e-7792-4b6b-a0f2-d518545aac25) ) - (wire (pts (xy 191.135 267.335) (xy 205.105 267.335)) + (wire (pts (xy 527.05 48.26) (xy 509.905 48.26)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3347ab65-8f0f-447c-a3c2-1bd8cddb61d5) + ) + (wire (pts (xy 457.2 71.12) (xy 440.055 71.12)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 33fcec84-c538-415d-9ff9-e3ada4cd47b3) + ) + (wire (pts (xy 457.2 63.5) (xy 440.055 63.5)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3447070d-c906-49c6-9410-bbca6dfbe98a) + ) + (wire (pts (xy 557.53 33.02) (xy 574.675 33.02)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 34efcfc5-9523-4a75-b2af-ce4c51384bbe) + ) + (wire (pts (xy 225.425 278.13) (xy 239.395 278.13)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 351d11cd-e2ca-440d-a834-c719ef170cd0) ) - (wire (pts (xy 240.665 59.055) (xy 235.585 59.055)) + (wire (pts (xy 457.2 50.8) (xy 440.055 50.8)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 35920211-aa78-484c-8356-65de61e27a1f) + ) + (wire (pts (xy 622.935 51.435) (xy 605.79 51.435)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 35df7a53-f863-413d-bb0b-a89e21ed9625) + ) + (wire (pts (xy 274.955 69.85) (xy 269.875 69.85)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 3611a03d-82c9-4b29-a880-15b8fa6412b4) ) - (wire (pts (xy 230.505 87.63) (xy 247.65 87.63)) + (bus (pts (xy 437.515 76.2) (xy 437.515 81.28)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 365f9063-3c4a-4224-b616-2a2b777ce018) + ) + (bus (pts (xy 507.365 73.66) (xy 507.365 71.12)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3683d76a-4d9a-472d-b181-0cac2fd182e7) + ) + (bus (pts (xy 437.515 68.58) (xy 437.515 71.12)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3714a8b4-3d51-4086-8b81-52981fc821e1) + ) + (bus (pts (xy 437.515 83.82) (xy 437.515 86.36)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 37c785c4-c6e7-4543-a8d2-91a58b4c335e) + ) + + (wire (pts (xy 527.05 55.88) (xy 509.905 55.88)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3944fa21-3424-43b5-86ae-b5c82fc5b007) + ) + (wire (pts (xy 622.935 74.295) (xy 605.79 74.295)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 395a31a7-8900-4ec0-bd1d-7c5a53d23035) + ) + (wire (pts (xy 264.795 98.425) (xy 281.94 98.425)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 3a072c17-531c-4f0e-a42e-21deeda52e88) ) - (wire (pts (xy 242.57 51.435) (xy 235.585 51.435)) + (wire (pts (xy 622.935 112.395) (xy 605.79 112.395)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3ac65b82-e290-497b-b9e0-60c4c2c726b3) + ) + (wire (pts (xy 527.05 73.66) (xy 509.905 73.66)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3bb0103d-8294-46df-b7e0-f8958f9ebcd8) + ) + (wire (pts (xy 276.86 62.23) (xy 269.875 62.23)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 3d40c38a-a6eb-49a2-9c42-8d1b7f488c4c) ) - (wire (pts (xy 143.51 108.585) (xy 160.655 108.585)) + (wire (pts (xy 622.935 120.015) (xy 605.79 120.015)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3db27ffe-1ab9-46fc-8ff9-2b02c7de7061) + ) + (wire (pts (xy 457.2 78.74) (xy 440.055 78.74)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3dc493ec-9515-490d-86f9-bc693c839010) + ) + (bus (pts (xy 507.365 76.2) (xy 507.365 73.66)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3e3abcb9-9a27-42f4-a4b7-9955150b35b2) + ) + + (wire (pts (xy 177.8 119.38) (xy 194.945 119.38)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 3e68f9e5-1af8-4923-89ea-adcc495701e7) ) - (wire (pts (xy 191.135 267.335) (xy 191.135 73.025)) + (wire (pts (xy 225.425 278.13) (xy 225.425 83.82)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 3e7e0e2c-a420-49f8-bd44-f979702242dd) ) - (wire (pts (xy 230.505 247.015) (xy 247.65 247.015)) + (wire (pts (xy 52.07 43.815) (xy 52.07 54.61)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3f6815ad-bc52-4b6b-995a-f1ece67efe91) + ) + (wire (pts (xy 457.2 86.36) (xy 440.055 86.36)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 3f837d4b-ce0b-4c38-8b2f-d2cb22c38663) + ) + (wire (pts (xy 264.795 257.81) (xy 281.94 257.81)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 413a98d3-c866-4d5c-b24a-acdd32ec56ee) ) - (wire (pts (xy 205.105 95.25) (xy 187.96 95.25)) + (wire (pts (xy 239.395 106.045) (xy 222.25 106.045)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 42442343-71e9-4fd8-af53-d327066ba410) ) - (wire (pts (xy 205.105 247.015) (xy 187.96 247.015)) + (wire (pts (xy 239.395 257.81) (xy 222.25 257.81)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 43b8ab97-6a63-4d7d-8ffc-04e9a3d0842c) ) - (wire (pts (xy 230.505 185.42) (xy 247.65 185.42)) + (wire (pts (xy 264.795 196.215) (xy 281.94 196.215)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 4529d38e-d0ed-4f36-aba5-05468a00903e) ) - (wire (pts (xy 194.945 203.2) (xy 205.105 203.2)) + (wire (pts (xy 527.05 58.42) (xy 509.905 58.42)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 47fa9d04-6fd9-4d9b-bda6-fcf21f057267) + ) + (wire (pts (xy 229.235 213.995) (xy 239.395 213.995)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 49e24433-4bb2-453d-a00e-5cb711122e97) ) - (wire (pts (xy 230.505 259.715) (xy 247.65 259.715)) + (wire (pts (xy 46.355 30.48) (xy 46.355 33.02)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 4bb3832f-49fb-495a-ab87-53a8e35ef1e8) + ) + (wire (pts (xy 527.05 63.5) (xy 509.905 63.5)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 4eef18e5-7699-453f-b411-404e35624a38) + ) + (wire (pts (xy 264.795 270.51) (xy 281.94 270.51)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 4f93e9fe-f8d4-4f76-92c8-cdc0ed23c638) ) - (wire (pts (xy 282.575 43.18) (xy 265.43 43.18)) + (wire (pts (xy 457.2 38.1) (xy 440.055 38.1)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 50897b52-4417-4c0e-9fe0-17a4ee0f2c72) + ) + (wire (pts (xy 316.865 53.975) (xy 299.72 53.975)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 529a9c6f-9d8d-4fb6-bc92-c6a71955fd96) ) - (wire (pts (xy 194.945 157.48) (xy 194.945 203.2)) + (wire (pts (xy 622.935 59.055) (xy 605.79 59.055)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 53218284-bc1e-4059-9690-51518faadd62) + ) + (wire (pts (xy 76.2 57.15) (xy 93.345 57.15)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 54ea3c91-f824-4ee5-a744-4634dc7b3e93) + ) + (wire (pts (xy 229.235 168.275) (xy 229.235 213.995)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 56694811-9ab6-4f78-8ccd-cf05125e8408) ) - (wire (pts (xy 143.51 57.785) (xy 160.655 57.785)) + (wire (pts (xy 457.2 68.58) (xy 440.055 68.58)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 59f78ac9-0713-4554-9c54-2024103e4b1e) + ) + (wire (pts (xy 177.8 68.58) (xy 194.945 68.58)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 5bf6c281-d00e-4e03-ac7d-c204d1ab2f0c) ) - (wire (pts (xy 143.51 65.405) (xy 160.655 65.405)) + (wire (pts (xy 622.935 127.635) (xy 605.79 127.635)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 5e573cb6-6d9d-46c9-8c2e-78ec2a13584a) + ) + (wire (pts (xy 177.8 76.2) (xy 194.945 76.2)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 5e6d9e2d-d3bb-494a-8dff-670caa10c883) ) - (wire (pts (xy 230.505 144.78) (xy 247.65 144.78)) + (wire (pts (xy 457.2 106.045) (xy 440.055 106.045)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 5e9fc3ee-740a-46f2-961e-807172869351) + ) + (wire (pts (xy 264.795 155.575) (xy 281.94 155.575)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 5f1d0eb2-96b5-4d47-884e-08e22dfd50c5) ) - (wire (pts (xy 282.575 60.96) (xy 265.43 60.96)) + (wire (pts (xy 76.2 41.91) (xy 93.345 41.91)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 5f7d5f52-567b-4f40-aee2-ea5bf6b2be0c) + ) + (wire (pts (xy 316.865 71.755) (xy 299.72 71.755)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 60eca67a-3c43-42aa-8db1-cc60eb73ec48) ) - (wire (pts (xy 205.105 254.635) (xy 187.96 254.635)) + (wire (pts (xy 239.395 265.43) (xy 222.25 265.43)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 61e1db8e-6ca9-44f2-b17c-38c8fd0bcb6f) ) - (wire (pts (xy 205.105 149.86) (xy 187.96 149.86)) + (wire (pts (xy 53.975 43.815) (xy 52.07 43.815)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 632afc35-f6fd-41d1-9f8e-589d720c0d70) + ) + (wire (pts (xy 239.395 160.655) (xy 222.25 160.655)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 64454887-efb3-48a0-b3ae-d496e458318b) ) - (wire (pts (xy 205.105 252.095) (xy 187.96 252.095)) + (wire (pts (xy 557.53 43.18) (xy 574.675 43.18)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 65630262-5a0c-49bc-873f-665e3ec9fab1) + ) + (wire (pts (xy 239.395 262.89) (xy 222.25 262.89)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 663aaa6c-426f-46fa-9f64-7dbe20974119) ) - (wire (pts (xy 143.51 47.625) (xy 160.655 47.625)) + (wire (pts (xy 622.935 117.475) (xy 605.79 117.475)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 664b7ed3-3248-40ef-91d0-358b7802d682) + ) + (wire (pts (xy 457.2 88.9) (xy 440.055 88.9)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 6881c996-fd70-4625-a2e0-4cd1650d1e3a) + ) + (bus (pts (xy 437.515 35.56) (xy 437.515 38.1)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 689249e0-59bd-4af2-9045-41f225b56b1c) + ) + (bus (pts (xy 437.515 63.5) (xy 437.515 66.04)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 6a79e40e-5e0f-4ff9-821e-7c668aef7e4f) + ) + + (wire (pts (xy 93.98 66.04) (xy 93.98 68.58)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 6ad46659-3353-427f-863a-56692985a2fb) + ) + (wire (pts (xy 622.935 156.845) (xy 605.79 156.845)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 6b3cc214-3aa3-429a-9174-efa9868f24dd) + ) + (wire (pts (xy 457.2 66.04) (xy 440.055 66.04)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 6b82cc19-000c-4357-960e-874428925c75) + ) + (wire (pts (xy 177.8 58.42) (xy 194.945 58.42)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 6eafc8de-0794-4f92-b73a-063d468b3894) ) - (wire (pts (xy 205.105 147.32) (xy 187.96 147.32)) + (wire (pts (xy 239.395 158.115) (xy 222.25 158.115)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 6fa8e6b4-6731-4402-970e-d91e6cab712b) ) - (wire (pts (xy 282.575 68.58) (xy 265.43 68.58)) + (wire (pts (xy 622.935 48.895) (xy 605.79 48.895)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7081579e-fa83-4445-b84d-5d6bf138d195) + ) + (wire (pts (xy 316.865 79.375) (xy 299.72 79.375)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 71ce2057-1c0e-4db3-a3f1-cc8e683e5325) ) - (wire (pts (xy 185.42 271.78) (xy 185.42 267.335)) + (bus (pts (xy 437.515 45.72) (xy 437.515 48.26)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 71e1f893-9163-4168-b25f-05773454e8c4) + ) + + (wire (pts (xy 46.355 41.91) (xy 55.88 41.91)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 72380cce-a6a8-4aa0-9f70-8a8fa19918c0) + ) + (wire (pts (xy 53.975 59.69) (xy 55.88 59.69)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 72d56414-8d3f-4e1a-95dd-fc29ed145c44) + ) + (wire (pts (xy 219.71 282.575) (xy 219.71 278.13)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 72fba573-95c6-4dff-9eca-49be2ccda457) ) - (wire (pts (xy 230.505 97.79) (xy 247.65 97.79)) + (wire (pts (xy 264.795 108.585) (xy 281.94 108.585)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7329f8ff-85d8-46d1-a9d6-a4fd887458b9) ) - (wire (pts (xy 235.585 43.815) (xy 252.73 43.815)) + (wire (pts (xy 269.875 54.61) (xy 287.02 54.61)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7388b08e-618d-409a-b0a0-8ae77f282d0b) ) - (wire (pts (xy 143.51 85.725) (xy 160.655 85.725)) + (wire (pts (xy 177.8 96.52) (xy 194.945 96.52)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 744b57d1-d1c4-4d56-a75d-b72886598678) ) - (wire (pts (xy 230.505 134.62) (xy 247.65 134.62)) + (wire (pts (xy 487.68 50.8) (xy 504.825 50.8)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 757b1df0-f412-43db-ac0f-e319f836cbfe) + ) + (wire (pts (xy 487.68 35.56) (xy 504.825 35.56)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 762f6950-528b-4e3c-a25e-80ab4082d6b4) + ) + (wire (pts (xy 264.795 145.415) (xy 281.94 145.415)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 77694694-895c-40d4-9cb8-378656083f10) ) - (wire (pts (xy 194.945 157.48) (xy 205.105 157.48)) + (wire (pts (xy 20.955 39.37) (xy 24.765 39.37)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7812657a-77a5-4738-bb49-ebee91b9814f) + ) + (wire (pts (xy 229.235 168.275) (xy 239.395 168.275)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7834c660-876d-43a3-b8b6-8f9330abc616) ) - (wire (pts (xy 205.105 249.555) (xy 187.96 249.555)) + (bus (pts (xy 437.515 38.1) (xy 437.515 40.64)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7982b153-4f04-4c66-8eb9-91394cbc8c97) + ) + (bus (pts (xy 437.515 48.26) (xy 437.515 50.8)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 798f90be-aee3-4e50-bd4f-b3fa2ed1ac5a) + ) + + (wire (pts (xy 239.395 260.35) (xy 222.25 260.35)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 79a9e8b2-215c-4eeb-ab92-62e9dc00949b) ) - (wire (pts (xy 282.575 50.8) (xy 265.43 50.8)) + (wire (pts (xy 316.865 61.595) (xy 299.72 61.595)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 79f41e79-7593-42a0-8118-3bca65357f2b) ) - (wire (pts (xy 185.42 276.86) (xy 187.325 276.86)) + (wire (pts (xy 219.71 287.655) (xy 221.615 287.655)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7a4cff40-29f5-4fd6-ad40-c775ca3437a9) ) - (wire (pts (xy 282.575 58.42) (xy 265.43 58.42)) + (wire (pts (xy 316.865 69.215) (xy 299.72 69.215)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7a6338a7-0d7e-4021-b6fb-f86fd5ca18fa) ) - (wire (pts (xy 185.42 48.895) (xy 185.42 53.975)) + (bus (pts (xy 507.365 35.56) (xy 507.365 33.02)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7c9cd19f-412c-4d0a-8ef6-21f2a9a6667a) + ) + + (wire (pts (xy 622.935 56.515) (xy 605.79 56.515)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7f144fbb-4e23-4b09-ac18-506b645aea6f) + ) + (wire (pts (xy 219.71 59.69) (xy 219.71 64.77)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 7f7ffe5c-3b29-420e-95d0-f28693f41a03) ) - (wire (pts (xy 230.505 95.25) (xy 247.65 95.25)) + (wire (pts (xy 142.24 99.06) (xy 137.795 99.06)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 7fb45d50-1d67-404e-97a5-1af0329df359) + ) + (wire (pts (xy 264.795 106.045) (xy 281.94 106.045)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 802ba593-1d52-435a-8b2f-d0a3cdb23ddd) ) - (wire (pts (xy 282.575 66.04) (xy 265.43 66.04)) + (wire (pts (xy 316.865 76.835) (xy 299.72 76.835)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 805852f3-c74e-484b-a847-39785b83676f) ) - (wire (pts (xy 143.51 37.465) (xy 160.655 37.465)) + (bus (pts (xy 437.515 40.64) (xy 437.515 43.18)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 81ab3bf7-d038-4cff-a6ea-f884616d95e9) + ) + + (wire (pts (xy 177.8 48.26) (xy 194.945 48.26)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 821b579e-a362-4b86-a54b-62f70ff6ad5e) ) - (wire (pts (xy 143.51 98.425) (xy 160.655 98.425)) + (wire (pts (xy 177.8 109.22) (xy 194.945 109.22)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 837df04b-e32c-40a9-ba54-edac590fdf3c) ) - (wire (pts (xy 143.51 40.005) (xy 160.655 40.005)) + (wire (pts (xy 557.53 35.56) (xy 574.675 35.56)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 83de31c6-4169-453b-a3b2-63e31b7b7b9a) + ) + (wire (pts (xy 527.05 33.02) (xy 509.905 33.02)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 83e3d091-23bd-4888-8984-8ff1a2cdfb15) + ) + (wire (pts (xy 527.05 53.34) (xy 509.905 53.34)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8427ff58-d38e-4c86-8f10-2f337da64950) + ) + (wire (pts (xy 55.88 49.53) (xy 53.975 49.53)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 84d08006-e32f-4ef3-94ac-07f5010be94e) + ) + (wire (pts (xy 177.8 50.8) (xy 194.945 50.8)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 89a57dd9-501d-4f51-a717-2a2e61295aee) ) - (wire (pts (xy 205.105 105.41) (xy 187.96 105.41)) + (wire (pts (xy 53.975 49.53) (xy 53.975 59.69)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8abbce1b-739c-48e4-b0d7-80268de588ac) + ) + (wire (pts (xy 239.395 116.205) (xy 222.25 116.205)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 8ad33409-bb97-4cd6-990f-89d6ba26e5af) ) - (wire (pts (xy 143.51 50.165) (xy 160.655 50.165)) + (wire (pts (xy 177.8 60.96) (xy 194.945 60.96)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 8ae422bd-0299-4862-a13c-7618589a88c0) ) - (wire (pts (xy 205.105 180.34) (xy 187.96 180.34)) + (wire (pts (xy 622.935 104.775) (xy 605.79 104.775)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8b63aca1-4ffb-459e-bcd3-bf0fd3937bfa) + ) + (wire (pts (xy 239.395 191.135) (xy 222.25 191.135)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 8b9b7ae3-683b-4c28-af19-668bf5ebbb9a) ) - (wire (pts (xy 205.105 90.17) (xy 187.96 90.17)) + (wire (pts (xy 239.395 100.965) (xy 222.25 100.965)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 8badf1cb-c18d-4848-9da7-4d5fa73b9a2c) ) - (wire (pts (xy 194.945 113.03) (xy 205.105 113.03)) + (wire (pts (xy 20.955 41.91) (xy 20.955 39.37)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8d798e5f-7af2-4a30-8002-eedb96565b41) + ) + (wire (pts (xy 229.235 123.825) (xy 239.395 123.825)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 8e128b60-37e7-4eb7-9e73-ee23aa295a85) ) - (wire (pts (xy 193.04 110.49) (xy 193.04 154.94)) + (wire (pts (xy 227.33 121.285) (xy 227.33 165.735)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 8eb4b592-d0e4-4048-b8d3-0b0086ecf902) ) - (wire (pts (xy 230.505 105.41) (xy 247.65 105.41)) + (wire (pts (xy 53.975 30.48) (xy 53.975 43.815)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8ef1f22b-2c94-4d8c-a08f-1bf850b9f881) + ) + (wire (pts (xy 264.795 116.205) (xy 281.94 116.205)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 8f02a347-4c9b-4f51-b553-8b2c4f08e181) ) - (wire (pts (xy 185.42 271.78) (xy 185.42 276.86)) + (wire (pts (xy 219.71 282.575) (xy 219.71 287.655)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 8f2d7ef9-1232-4e99-a444-372ea2136c7f) ) - (wire (pts (xy 200.025 33.655) (xy 182.88 33.655)) + (bus (pts (xy 437.515 103.505) (xy 437.515 107.315)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8f5d2448-20cb-4c23-88ee-17fba13af8d4) + ) + + (wire (pts (xy 622.935 102.235) (xy 605.79 102.235)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 8fd9c2e4-52f9-4686-9617-315c3e130f1d) + ) + (wire (pts (xy 234.315 44.45) (xy 217.17 44.45)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 90340f04-29e5-4c7d-973b-346ed6ce2675) ) - (wire (pts (xy 193.04 200.66) (xy 205.105 200.66)) + (wire (pts (xy 227.33 211.455) (xy 239.395 211.455)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 906abd05-1668-4553-9e75-7ab31f7c4ce7) ) - (wire (pts (xy 143.51 73.025) (xy 160.655 73.025)) + (wire (pts (xy 177.8 83.82) (xy 194.945 83.82)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 9099f1d3-e7df-4d31-b94c-3b4b3ea9ee3e) ) - (wire (pts (xy 230.505 180.34) (xy 247.65 180.34)) + (bus (pts (xy 507.365 45.72) (xy 507.365 43.18)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 92849387-ed90-4ef0-942a-91ef3ace554b) + ) + + (wire (pts (xy 622.935 66.675) (xy 605.79 66.675)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 9348c357-db91-48c1-9526-d164501cb60c) + ) + (wire (pts (xy 264.795 191.135) (xy 281.94 191.135)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 96548746-de43-4d58-b3f3-426342d07f69) ) - (wire (pts (xy 242.57 73.025) (xy 242.57 51.435)) + (bus (pts (xy 507.365 48.26) (xy 507.365 45.72)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 96a3fb50-2344-4a79-a819-df8232293919) + ) + + (wire (pts (xy 276.86 83.82) (xy 276.86 62.23)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 96a87ab7-7a93-4b86-b38e-e9f4c0c5e4ce) ) - (wire (pts (xy 143.51 95.885) (xy 160.655 95.885)) + (bus (pts (xy 507.365 58.42) (xy 507.365 55.88)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 96d785c1-f83f-46f9-9092-406f3de7d66b) + ) + + (wire (pts (xy 487.68 45.72) (xy 504.825 45.72)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 97756068-efbb-4228-89e1-b350a53031bc) + ) + (wire (pts (xy 527.05 76.2) (xy 509.905 76.2)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 985419c3-ef22-4aab-8f63-8b4f0f8c6e55) + ) + (wire (pts (xy 76.2 59.69) (xy 93.345 59.69)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 992e5d00-f762-4d05-b1d5-e50af59ee7dc) + ) + (wire (pts (xy 177.8 106.68) (xy 194.945 106.68)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 99a5d0e4-76ca-4345-8ce2-cb03eee2ab3d) ) - (wire (pts (xy 230.505 139.7) (xy 247.65 139.7)) + (wire (pts (xy 264.795 150.495) (xy 281.94 150.495)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 9b526e1f-3025-4220-8b42-3a919bb8ed5f) ) - (wire (pts (xy 143.51 62.865) (xy 160.655 62.865)) + (wire (pts (xy 177.8 73.66) (xy 194.945 73.66)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 9b652e5a-faaa-4e40-a9cc-3e521d1d0c55) ) - (wire (pts (xy 235.585 41.275) (xy 252.73 41.275)) + (wire (pts (xy 269.875 52.07) (xy 287.02 52.07)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 9bda69d1-98ce-44e9-a390-3559add57b5d) ) - (wire (pts (xy 230.505 262.255) (xy 247.65 262.255)) + (bus (pts (xy 507.365 33.02) (xy 507.365 30.48)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 9be09cf6-d350-4c0e-bc76-205cb2516bef) + ) + + (wire (pts (xy 264.795 273.05) (xy 281.94 273.05)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid 9cdd8e60-4387-4cb8-b6e7-ed45caf36eec) ) - (wire (pts (xy 107.95 37.465) (xy 90.805 37.465)) + (bus (pts (xy 507.365 86.36) (xy 507.365 83.82)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 9dafe698-0ec0-4086-aac6-39194848176a) + ) + + (wire (pts (xy 457.2 33.02) (xy 440.055 33.02)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 9df3953f-74b6-4716-b825-913d6f6c42f8) + ) + (wire (pts (xy 269.875 49.53) (xy 287.02 49.53)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid 9ed95662-a569-47e6-9e6b-e7819cd9f873) + ) + (wire (pts (xy 142.24 48.26) (xy 125.095 48.26)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a0878465-ee4f-4468-9298-245fbdf2981e) ) - (wire (pts (xy 143.51 100.965) (xy 160.655 100.965)) + (wire (pts (xy 177.8 111.76) (xy 194.945 111.76)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a08786cc-1b39-4ad9-98c0-26b1967f3d5c) ) - (wire (pts (xy 205.105 257.175) (xy 187.96 257.175)) + (wire (pts (xy 239.395 267.97) (xy 222.25 267.97)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a0c0836a-0bab-4c81-b2e3-8706c36bbd0f) ) - (wire (pts (xy 200.025 28.575) (xy 182.88 28.575)) + (wire (pts (xy 487.68 38.1) (xy 504.825 38.1)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a1696b6c-5414-4934-a476-54f45bf29428) + ) + (bus (pts (xy 507.365 60.96) (xy 507.365 58.42)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a25c0bf8-1a08-40a4-b23d-25e80ac92944) + ) + (bus (pts (xy 437.515 33.02) (xy 437.515 35.56)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a2c6765a-1540-42e0-af62-9f9e67c745b3) + ) + + (wire (pts (xy 234.315 39.37) (xy 217.17 39.37)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a301302e-3956-45be-817d-57fb404606be) ) - (wire (pts (xy 230.505 147.32) (xy 247.65 147.32)) + (wire (pts (xy 457.2 45.72) (xy 440.055 45.72)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a6593dd2-2dbd-4cc3-858a-2be2c0226938) + ) + (wire (pts (xy 34.925 41.91) (xy 40.005 41.91)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a663ca1a-0ef1-4e29-804f-1c95031cff29) + ) + (wire (pts (xy 264.795 158.115) (xy 281.94 158.115)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a82063d0-cc13-491e-89d1-5c2f6950aa07) ) - (wire (pts (xy 230.505 90.17) (xy 247.65 90.17)) + (wire (pts (xy 264.795 100.965) (xy 281.94 100.965)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a8c1ea2e-bb6e-4d44-8414-b9ff4573365f) ) - (wire (pts (xy 191.135 73.025) (xy 242.57 73.025)) + (wire (pts (xy 90.17 66.04) (xy 93.98 66.04)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a8da67c0-078f-4ad4-8360-dd85d053804f) + ) + (wire (pts (xy 225.425 83.82) (xy 276.86 83.82)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid a8e49c44-616e-4611-840d-c3effe7641f1) ) - (wire (pts (xy 193.04 154.94) (xy 205.105 154.94)) + (wire (pts (xy 487.68 33.02) (xy 504.825 33.02)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid a92cb723-9af0-49e9-9062-6591a5d3f559) + ) + (wire (pts (xy 227.33 165.735) (xy 239.395 165.735)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid aada73cf-2a0c-457c-90c4-d7eea8cd90cc) ) - (wire (pts (xy 143.51 80.645) (xy 160.655 80.645)) + (bus (pts (xy 507.365 30.48) (xy 507.365 19.05)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ab664694-d7b4-46d4-be2e-3ee4cf42db95) + ) + + (wire (pts (xy 177.8 91.44) (xy 194.945 91.44)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ab6e0c5e-d98f-419e-b689-00f07123122e) ) - (wire (pts (xy 205.105 97.79) (xy 187.96 97.79)) + (wire (pts (xy 239.395 108.585) (xy 222.25 108.585)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ac2ac453-4539-45e4-afb3-fa055b76ce2f) ) - (wire (pts (xy 205.105 182.88) (xy 187.96 182.88)) + (wire (pts (xy 239.395 193.675) (xy 222.25 193.675)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ad68954f-50cd-4163-b303-d362f3020dee) ) - (wire (pts (xy 205.105 102.87) (xy 187.96 102.87)) + (bus (pts (xy 507.365 38.1) (xy 507.365 35.56)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid aee1b019-8a36-4f79-abd4-a9a8eea11ce9) + ) + + (wire (pts (xy 457.2 53.34) (xy 440.055 53.34)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid afa12724-4ae2-4f50-8d29-182663c5bb9f) + ) + (wire (pts (xy 239.395 113.665) (xy 222.25 113.665)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid b1a84de8-9026-4ea0-81aa-69302ece7dee) ) - (wire (pts (xy 205.105 144.78) (xy 187.96 144.78)) + (wire (pts (xy 557.53 45.72) (xy 574.675 45.72)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b342143d-808d-4306-95b0-d43bae165845) + ) + (wire (pts (xy 239.395 155.575) (xy 222.25 155.575)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid b5e4b71c-8243-46f9-9456-df4158c786bc) ) - (wire (pts (xy 230.505 182.88) (xy 247.65 182.88)) + (wire (pts (xy 557.53 50.8) (xy 574.675 50.8)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid b6ca4e27-d5a1-4bd9-afd7-bf8915e222e1) + ) + (wire (pts (xy 264.795 193.675) (xy 281.94 193.675)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid b752bda3-13c7-4a57-9e66-fac5ed0b3f84) ) - (wire (pts (xy 205.105 132.08) (xy 187.96 132.08)) + (wire (pts (xy 53.975 67.31) (xy 53.975 62.23)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ba6bfaa9-6773-403c-8b0b-eaa456fca084) + ) + (wire (pts (xy 239.395 142.875) (xy 222.25 142.875)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid bada804b-e605-4f7d-b903-bc2eab3f9499) ) - (wire (pts (xy 230.505 177.8) (xy 247.65 177.8)) + (wire (pts (xy 491.49 106.045) (xy 491.49 83.82)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid bb2c4621-0f5f-4748-b890-295847d4bc23) + ) + (wire (pts (xy 264.795 188.595) (xy 281.94 188.595)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid bb6c5bd1-da83-47da-948e-ea156867336c) ) - (wire (pts (xy 282.575 40.64) (xy 265.43 40.64)) + (wire (pts (xy 622.935 125.095) (xy 605.79 125.095)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid bba2ccc0-d693-4d58-9986-e30d3e39e4aa) + ) + (wire (pts (xy 457.2 35.56) (xy 440.055 35.56)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid bbd7dfe6-e253-45b1-8562-2bb036a763d0) + ) + (wire (pts (xy 316.865 51.435) (xy 299.72 51.435)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid be87fb86-69f9-4651-8e8f-3227d341079c) ) - (wire (pts (xy 193.04 110.49) (xy 205.105 110.49)) + (wire (pts (xy 227.33 121.285) (xy 239.395 121.285)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid be94060c-4d4e-49b1-84a1-72f3ad4d119b) ) - (wire (pts (xy 205.105 87.63) (xy 187.96 87.63)) + (bus (pts (xy 507.365 68.58) (xy 507.365 66.04)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid beb1de16-9b73-44fa-aa3e-57906b624cd0) + ) + + (wire (pts (xy 76.2 67.31) (xy 76.2 66.04)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid bf829bfc-ee97-4500-b663-1ffc0c014b58) + ) + (wire (pts (xy 239.395 98.425) (xy 222.25 98.425)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid bfffbb99-2b05-49b5-8139-8a7d60e600af) ) - (wire (pts (xy 189.23 267.335) (xy 189.23 71.12)) + (wire (pts (xy 622.935 64.135) (xy 605.79 64.135)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c0a90d72-9365-47b7-9bd9-1326592271f9) + ) + (wire (pts (xy 223.52 278.13) (xy 223.52 81.915)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c14ad296-2197-4509-8c34-2c812c32aed7) ) - (wire (pts (xy 193.04 74.93) (xy 193.04 110.49)) + (bus (pts (xy 507.365 19.05) (xy 437.515 19.05)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c2df2ed3-c235-4f1c-9564-8237cec542cc) + ) + + (wire (pts (xy 40.005 30.48) (xy 40.005 31.75)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c330cea6-3f2e-4a89-9a7a-6c739fdc810f) + ) + (wire (pts (xy 622.935 167.005) (xy 605.79 167.005)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c3fc2756-be4f-4f99-8bd2-5467f9e49e99) + ) + (wire (pts (xy 227.33 85.725) (xy 227.33 121.285)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c70962f4-f3fb-4e07-aac5-5458b2f153e3) ) - (wire (pts (xy 282.575 27.94) (xy 265.43 27.94)) + (wire (pts (xy 622.935 71.755) (xy 605.79 71.755)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c7abe1c5-f916-4997-977a-443e7d72b678) + ) + (wire (pts (xy 507.365 83.82) (xy 527.05 83.82)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid c84627a4-8672-425b-ad5a-5b2de77c35b1) + ) + (wire (pts (xy 316.865 38.735) (xy 299.72 38.735)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid c851dc67-ac9d-4f57-aa2c-46df0ff7d4ae) ) - (wire (pts (xy 143.51 52.705) (xy 160.655 52.705)) + (bus (pts (xy 507.365 66.04) (xy 507.365 63.5)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid cc985ca3-09b5-4673-afd6-ed740dab67e0) + ) + + (wire (pts (xy 177.8 63.5) (xy 194.945 63.5)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ced4f553-fa3a-4791-812d-140d7be242f5) ) - (wire (pts (xy 230.505 102.87) (xy 247.65 102.87)) + (wire (pts (xy 76.2 46.99) (xy 93.345 46.99)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d0401389-33b9-44bf-8092-08ba1a258ecf) + ) + (wire (pts (xy 264.795 113.665) (xy 281.94 113.665)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d08932cc-df72-405a-b09e-4fe2140b5921) ) - (wire (pts (xy 200.025 51.435) (xy 182.88 51.435)) + (wire (pts (xy 142.24 58.42) (xy 125.095 58.42)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d1491f9b-32e7-41ad-b52c-22cfaa19ea5f) + ) + (bus (pts (xy 507.365 40.64) (xy 507.365 38.1)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d1e16eef-32ec-497b-ab6e-8bafbb720c5e) + ) + + (wire (pts (xy 234.315 62.23) (xy 217.17 62.23)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d2376a4e-30b6-45e9-bff9-35d32c37ba35) ) - (wire (pts (xy 230.505 100.33) (xy 247.65 100.33)) + (wire (pts (xy 264.795 111.125) (xy 281.94 111.125)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d2cc9d2b-89b8-4d13-9c20-a7965ca7049d) ) - (wire (pts (xy 185.42 53.975) (xy 185.42 60.96)) + (wire (pts (xy 219.71 64.77) (xy 219.71 71.755)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d371dbd1-2648-4e9a-b32b-aa5278c89f31) ) - (wire (pts (xy 187.96 46.99) (xy 187.96 56.515)) + (wire (pts (xy 222.25 57.785) (xy 222.25 67.31)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d556dde8-ec74-45bc-b974-e44c92fad0f6) ) - (wire (pts (xy 205.105 92.71) (xy 187.96 92.71)) + (bus (pts (xy 437.515 71.12) (xy 437.515 73.66)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d6fe3b7b-effe-4478-9939-811d4c09e6c5) + ) + + (wire (pts (xy 239.395 103.505) (xy 222.25 103.505)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d8bc005c-f336-42bc-9ffa-cceb89979220) ) - (wire (pts (xy 143.51 111.125) (xy 160.655 111.125)) + (wire (pts (xy 177.8 121.92) (xy 194.945 121.92)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid d8f7c1b8-cfbc-46a0-a4fb-bfe0b0c79e64) ) - (wire (pts (xy 230.505 254.635) (xy 247.65 254.635)) + (wire (pts (xy 76.2 66.04) (xy 81.28 66.04)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid d98a7a63-9cfc-47c4-aebd-6845c13f71de) + ) + (wire (pts (xy 527.05 43.18) (xy 509.905 43.18)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid da0457b2-e14c-42df-8d08-a344fb4b2894) + ) + (wire (pts (xy 264.795 265.43) (xy 281.94 265.43)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid da49fc63-961d-44cf-a0eb-a3fc4bc6ee60) ) - (wire (pts (xy 205.105 100.33) (xy 187.96 100.33)) + (wire (pts (xy 239.395 111.125) (xy 222.25 111.125)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid db5037f7-6c72-4e00-9981-b50bb21bfe5b) ) - (wire (pts (xy 230.505 142.24) (xy 247.65 142.24)) + (wire (pts (xy 264.795 153.035) (xy 281.94 153.035)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid dcd7c117-9361-4a59-8e5a-64d036d54a50) ) - (wire (pts (xy 187.96 56.515) (xy 200.025 56.515)) + (wire (pts (xy 222.25 67.31) (xy 234.315 67.31)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid dd75ae20-75c1-4915-bdac-41d134c82599) ) - (wire (pts (xy 143.51 83.185) (xy 160.655 83.185)) + (wire (pts (xy 46.355 38.1) (xy 46.355 41.91)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid dd868df3-ece6-41d5-8b44-6aabd284b709) + ) + (wire (pts (xy 177.8 93.98) (xy 194.945 93.98)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid dfbc26b3-0137-48ac-a64d-f1f79fa9ee6e) ) - (wire (pts (xy 230.505 132.08) (xy 247.65 132.08)) + (bus (pts (xy 507.365 63.5) (xy 507.365 60.96)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e034ae57-6f29-4b8c-bbd3-6f024fee187c) + ) + + (wire (pts (xy 264.795 142.875) (xy 281.94 142.875)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e198a765-e0b7-4a71-ac7e-66a8ff1dd95f) ) - (wire (pts (xy 230.505 149.86) (xy 247.65 149.86)) + (wire (pts (xy 264.795 160.655) (xy 281.94 160.655)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e3aa1f1e-5365-4d6f-abfe-73c73c8ad868) ) - (wire (pts (xy 205.105 185.42) (xy 187.96 185.42)) + (wire (pts (xy 622.935 164.465) (xy 605.79 164.465)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e44dc5d7-25e5-4d8c-9a36-8abd7fa66cfe) + ) + (wire (pts (xy 239.395 196.215) (xy 222.25 196.215)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e53d697f-f594-47f2-ba59-6398c166e57f) ) - (wire (pts (xy 205.105 244.475) (xy 187.96 244.475)) + (bus (pts (xy 437.515 81.28) (xy 437.515 83.82)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e5413c21-e5a6-4e07-b4a7-37b9af2b8a27) + ) + + (wire (pts (xy 239.395 255.27) (xy 222.25 255.27)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e55d9010-51f0-4834-9d0f-6797dcccfd6a) ) - (wire (pts (xy 205.105 134.62) (xy 187.96 134.62)) + (wire (pts (xy 81.28 66.04) (xy 85.09 66.04)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e5d08c0e-316e-4f10-8ff2-72a4e4b9e780) + ) + (bus (pts (xy 437.515 73.66) (xy 437.515 76.2)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e5dbefa5-7b8c-4ee9-8615-d31656d7fffc) + ) + + (wire (pts (xy 239.395 145.415) (xy 222.25 145.415)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e6d8f938-48c5-4d69-be9a-5a9e7f68d200) ) - (wire (pts (xy 205.105 142.24) (xy 187.96 142.24)) + (wire (pts (xy 239.395 153.035) (xy 222.25 153.035)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e734ad59-b452-4b44-9d11-eb0d2d2e6515) ) - (wire (pts (xy 230.505 257.175) (xy 247.65 257.175)) + (wire (pts (xy 527.05 88.9) (xy 509.905 88.9)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e76e0e1c-ddef-47d2-8a79-ce7553d26c1c) + ) + (wire (pts (xy 264.795 267.97) (xy 281.94 267.97)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid e9501178-59f7-4011-87bd-6934032e33b9) ) - (wire (pts (xy 282.575 35.56) (xy 265.43 35.56)) + (bus (pts (xy 437.515 30.48) (xy 437.515 33.02)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e9ead6fa-4065-4ec5-a8b9-deda7752c260) + ) + + (wire (pts (xy 527.05 78.74) (xy 509.905 78.74)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid e9f3ed98-4f95-407e-8d45-a275a3aa83e2) + ) + (wire (pts (xy 50.8 62.23) (xy 53.975 62.23)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ea51d65f-1cb5-437b-a1ef-4bea1a6f1b14) + ) + (wire (pts (xy 472.44 106.045) (xy 491.49 106.045)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ea9cafba-5d1d-4304-ac85-c55c64f468f7) + ) + (wire (pts (xy 527.05 45.72) (xy 509.905 45.72)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid eace1eb4-68f0-46ad-a3af-a61255885dba) + ) + (wire (pts (xy 316.865 46.355) (xy 299.72 46.355)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid eacef1c7-1eaf-43bc-a698-a71c158d1c52) ) - (wire (pts (xy 230.505 249.555) (xy 247.65 249.555)) + (wire (pts (xy 264.795 260.35) (xy 281.94 260.35)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid eaff96df-66df-4f50-9258-e3f7537efc85) ) - (wire (pts (xy 205.105 137.16) (xy 187.96 137.16)) + (bus (pts (xy 437.515 50.8) (xy 437.515 53.34)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ed2f0134-8ab4-4151-b052-61eda2def606) + ) + (bus (pts (xy 437.515 53.34) (xy 437.515 55.88)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ed851644-c20f-4860-a498-44d6f41967d8) + ) + + (wire (pts (xy 239.395 147.955) (xy 222.25 147.955)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid eeb67ff0-5fd6-4227-ac52-84fb9931cfe3) ) - (wire (pts (xy 185.42 267.335) (xy 189.23 267.335)) + (bus (pts (xy 437.515 19.05) (xy 437.515 30.48)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ef1790e5-6e92-4c94-98ab-3e9770113155) + ) + + (wire (pts (xy 622.935 109.855) (xy 605.79 109.855)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ef41af43-a6ee-40db-adfa-f5a2614903f2) + ) + (wire (pts (xy 269.875 46.99) (xy 287.02 46.99)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ef5f5bb7-fa97-4056-b9dc-b99b6c8cb1b5) + ) + (wire (pts (xy 219.71 278.13) (xy 223.52 278.13)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ef7177c4-0b5e-4d75-8e8c-b505a2071983) ) - (wire (pts (xy 205.105 259.715) (xy 187.96 259.715)) + (wire (pts (xy 239.395 270.51) (xy 222.25 270.51)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid ef780080-ea3e-45f5-9314-6e46f5046245) ) - (wire (pts (xy 143.51 75.565) (xy 160.655 75.565)) + (wire (pts (xy 177.8 86.36) (xy 194.945 86.36)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid efbd5eca-df21-4dba-bb9e-94f64f7da21f) ) - (wire (pts (xy 230.505 92.71) (xy 247.65 92.71)) + (bus (pts (xy 507.365 55.88) (xy 507.365 53.34)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f042d841-0e36-44da-b902-aecd098e2a9e) + ) + + (wire (pts (xy 55.88 67.31) (xy 53.975 67.31)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f0efd7d9-5329-435f-b120-2377b48fb3c9) + ) + (wire (pts (xy 76.2 52.07) (xy 93.345 52.07)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f1a1efb1-ada5-4a47-9af9-cba43e3a607b) + ) + (bus (pts (xy 507.365 50.8) (xy 507.365 48.26)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f1ae254f-8ce6-42b7-a311-04f141c58f8b) + ) + + (wire (pts (xy 264.795 103.505) (xy 281.94 103.505)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid f1d5924d-510b-4cb5-9455-aa810932a3c4) ) - (wire (pts (xy 244.475 74.93) (xy 193.04 74.93)) + (wire (pts (xy 487.68 43.18) (xy 504.825 43.18)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f272e07e-2cbe-4638-b1df-156db24a3a44) + ) + (wire (pts (xy 278.765 85.725) (xy 227.33 85.725)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid f2b7e646-89f5-4b4d-a243-10d59da1ac42) ) - (wire (pts (xy 230.505 244.475) (xy 247.65 244.475)) + (wire (pts (xy 264.795 255.27) (xy 281.94 255.27)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid f4d0b791-d8e4-4533-8c28-bfcaea91d56f) ) - (wire (pts (xy 143.51 93.345) (xy 160.655 93.345)) + (wire (pts (xy 177.8 104.14) (xy 194.945 104.14)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid f4f420a2-284b-4ec0-b83f-831419a39940) ) - (wire (pts (xy 205.105 139.7) (xy 187.96 139.7)) + (wire (pts (xy 527.05 68.58) (xy 509.905 68.58)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid f6981373-dbb7-4002-a1ab-ce975fa0bef1) + ) + (wire (pts (xy 239.395 150.495) (xy 222.25 150.495)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid f6eac902-2f91-45a4-a551-85b887611364) ) - (wire (pts (xy 205.105 262.255) (xy 187.96 262.255)) + (wire (pts (xy 76.2 73.66) (xy 81.28 73.66)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid fae18970-0eb5-4b3d-885b-108e72d45e32) + ) + (wire (pts (xy 239.395 273.05) (xy 222.25 273.05)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid fb3bfb21-13c5-4658-be40-bd65d4f87561) ) - (wire (pts (xy 187.325 271.78) (xy 185.42 271.78)) + (wire (pts (xy 457.2 43.18) (xy 440.055 43.18)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid fb4ee264-1374-42fe-b849-878def596b48) + ) + (wire (pts (xy 527.05 35.56) (xy 509.905 35.56)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid fc62f448-b75d-43d9-8b4e-72893b1530dc) + ) + (wire (pts (xy 221.615 282.575) (xy 219.71 282.575)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid fdbd792e-d580-4257-b112-1ab271add75f) ) - (wire (pts (xy 282.575 30.48) (xy 265.43 30.48)) + (wire (pts (xy 316.865 41.275) (xy 299.72 41.275)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid fe8a5dcd-d80a-47f2-a462-46725d763b57) ) - (wire (pts (xy 205.105 274.32) (xy 205.105 269.875)) + (wire (pts (xy 239.395 285.115) (xy 239.395 280.67)) (stroke (width 0) (type default) (color 0 0 0 0)) (uuid fef9c52e-18d7-4654-8312-0893cd129369) ) + (wire (pts (xy 527.05 60.96) (xy 509.905 60.96)) + (stroke (width 0) (type default) (color 0 0 0 0)) + (uuid ff40089f-dbf2-4a25-b49f-038b14311d44) + ) - (label "CPU_AA13" (at 203.835 144.78 180) + (text "RESET\n" (at 19.685 26.67 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid db183807-9233-46f7-a1b3-43aa1a97677c) + ) + + (label "CPU_PCLK" (at 77.47 57.15 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 0072c40f-f7fc-4400-8484-f252a5e88685) + ) + (label "CPU_A2" (at 621.665 64.135 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 03921cba-071c-4515-81d1-007d3da52387) + ) + (label "CPU_D1" (at 558.8 35.56 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 05584bcb-f8af-4bd2-8e89-72bd0375d6d3) + ) + (label "CPU_A5" (at 621.665 109.855 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 0652087a-bdac-44b7-9372-51bd32dc504a) + ) + (label "CPU_AA13" (at 238.125 155.575 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 076b6a0c-4903-470d-9ce8-4b2a26d8b06c) ) - (label "CPU_D1" (at 231.775 247.015 0) + (label "CPU_D1" (at 266.065 257.81 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 085c18d7-d5f8-4a0d-bf5e-45083fbe4956) ) - (label "CPU_AD0" (at 203.835 244.475 180) + (label "CPU_AD0" (at 238.125 255.27 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 09a4db91-a30f-4ab4-99bc-5a651d9ab276) ) - (label "CPU_A13" (at 231.775 144.78 0) + (label "CPU_A13" (at 266.065 155.575 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 0a5e5e32-9619-4a7b-820b-aa97d2f01393) ) - (label "CPU_~{S0}" (at 144.78 40.005 0) + (label "CPU_~{S0}" (at 179.07 50.8 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 0ba11904-efb4-40d4-8539-71fa165802c6) ) - (label "CPU_D4" (at 231.775 254.635 0) + (label "CPU_A12" (at 455.93 63.5 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 0c05e5b4-7ae9-4d63-bef5-15e0f285d024) + ) + (label "CPU_~{MRDC}" (at 271.145 49.53 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 0dee2c3a-989b-4cf2-978f-3b85efa26bba) + ) + (label "CPU_A4" (at 525.78 43.18 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 0ee5db85-ada4-421e-89d6-f5469fd576e3) + ) + (label "CPU_D4" (at 266.065 265.43 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 103f1009-4273-45bc-81af-507e5ab22b39) ) - (label "CPU_A8" (at 231.775 132.08 0) + (label "CPU_A13" (at 525.78 66.04 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 1219775c-0905-4b7a-9d29-a9b57680e5d5) + ) + (label "CPU_A8" (at 266.065 142.875 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 12c9cae2-2f94-49a5-a9ef-ebb2d1532cb5) ) - (label "CPU_~{WR}" (at 144.78 108.585 0) + (label "CPU_~{MWTC}" (at 525.78 88.9 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 12f368ab-90b3-43ae-b1c1-9a3367e8deea) + ) + (label "CPU_A3" (at 455.93 40.64 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 157bef0a-4b00-46dd-9619-94876445745a) + ) + (label "CPU_D7" (at 558.8 50.8 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 17b01d24-7f13-4634-a3ca-171b0b885ab3) + ) + (label "CPU_~{WR}" (at 179.07 119.38 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 187f76da-d4fe-4dd2-8954-f1d619b47e9b) ) - (label "CPU_D1" (at 281.305 30.48 180) + (label "CPU_A3" (at 621.665 71.755 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 1965d59c-bdb0-4091-8fba-2825e80311b1) + ) + (label "CPU_D1" (at 315.595 41.275 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 1a525c98-868a-4880-afd4-f0c6a5d6e214) ) - (label "CPU_AD6" (at 144.78 62.865 0) + (label "CPU_AD6" (at 179.07 73.66 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 1a7f6bb1-7569-4d9b-9990-319e4fe7070b) ) - (label "CPU_AD4" (at 144.78 57.785 0) + (label "CPU_A8" (at 455.93 53.34 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 1d092188-9c4f-4f7f-b7f6-602e56454436) + ) + (label "CPU_AD4" (at 179.07 68.58 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 1f063535-e14e-45fa-893c-13da30b4430d) ) - (label "CPU_~{S2}" (at 198.755 33.655 180) + (label "CPU_~{S2}" (at 233.045 44.45 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 1f72a00b-25f7-4dca-8312-516644df28d2) ) - (label "CPU_AD5" (at 144.78 60.325 0) + (label "CPU_D4" (at 488.95 43.18 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 203e9c3c-f49f-45a7-b2e7-650611696a7a) + ) + (label "CPU_D4" (at 558.8 43.18 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 254a36a1-2487-473c-9379-18efe386310b) + ) + (label "CPU_AD5" (at 179.07 71.12 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 25c28839-794d-4864-b865-b8f1d320f488) ) - (label "CPU_D2" (at 231.775 249.555 0) + (label "CPU_A6" (at 455.93 48.26 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 26748f48-433c-49ca-8840-cf8ca5aa23f1) + ) + (label "CPU_D2" (at 266.065 260.35 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 29bcdb70-51f4-4f11-bba8-ff1ef5e23ed1) ) - (label "CPU_AD1" (at 203.835 247.015 180) + (label "CPU_A12" (at 525.78 63.5 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 2a9586e0-c929-4505-961a-cdb4f613c90f) + ) + (label "CPU_AD1" (at 238.125 257.81 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 2ad40d41-eba0-418a-9288-c46f56307989) ) - (label "CPU_AD5" (at 203.835 257.175 180) + (label "CPU_A11" (at 455.93 60.96 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 2c51a82e-945a-4140-81a0-80684613775b) + ) + (label "CPU_A6" (at 525.78 48.26 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 2d1da315-bed9-43de-ac25-fe6d516f1af8) + ) + (label "CPU_A7" (at 455.93 50.8 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 2e8ba587-4a41-4033-a990-ae36252750b7) + ) + (label "CPU_AD5" (at 238.125 267.97 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 2fb375da-7ec6-4652-aff1-e84f02cf4dbe) ) - (label "CPU_A1" (at 231.775 90.17 0) + (label "CPU_A1" (at 266.065 100.965 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 31480246-7f93-4c03-93c0-aadcd43c6a9b) ) - (label "CPU_~{IORC}" (at 236.855 41.275 0) + (label "CPU_A16" (at 455.93 73.66 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 315eb87e-7f49-42b8-972e-f12726491981) + ) + (label "CPU_A2" (at 525.78 38.1 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 316e517a-5f54-4122-af95-16e9fb2f8d59) + ) + (label "CPU_~{IORC}" (at 271.145 52.07 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 321bb370-cf49-4c08-b806-04189d6d64d1) ) - (label "CPU_CLK" (at 106.68 37.465 180) + (label "CPU_A17" (at 455.93 76.2 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 327eec7f-c9d9-4d03-9e76-7618065acaf5) + ) + (label "CPU_A19" (at 621.665 167.005 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 34531d22-3bb6-44b6-ae04-b8ae38196856) + ) + (label "CPU_CLK" (at 140.97 48.26 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 3605a1ee-cabc-4b2c-bf16-6df1cd4af195) ) - (label "CPU_AD2" (at 203.835 249.555 180) + (label "CPU_A13" (at 455.93 66.04 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 39e246c1-0360-4fa9-a06d-3b6c55d23bc7) + ) + (label "CPU_A8" (at 621.665 156.845 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 3ae0ca23-17e0-46d9-9b24-71067311cfc6) + ) + (label "CPU_AD2" (at 238.125 260.35 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 3bc7362d-184a-4842-9193-4a2c58b7f93c) ) - (label "CPU_D2" (at 281.305 33.02 180) + (label "CPU_D2" (at 315.595 43.815 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 3e1b4025-a572-487b-bb60-15defbaa474d) ) - (label "CPU_A14" (at 231.775 147.32 0) + (label "CPU_A14" (at 266.065 158.115 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 3e5419a1-224b-4eda-a32c-6065cba93dec) ) - (label "CPU_AD3" (at 203.835 252.095 180) + (label "CPU_A17" (at 525.78 76.2 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 3f54b8c4-299a-499e-ba60-4070148829ed) + ) + (label "CPU_A14" (at 455.93 68.58 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 42ec733b-b24c-4f20-b233-25264f1ce670) + ) + (label "CPU_AD3" (at 238.125 262.89 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 432c5a06-5fff-46f2-af16-a3fe010b5d4e) ) - (label "CPU_~{INTA}" (at 236.855 43.815 0) + (label "CPU_A19" (at 455.93 83.82 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 43fa2722-542f-43b5-b32b-bd6670650c05) + ) + (label "CPU_~{INTA}" (at 271.145 54.61 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 4474a92b-2ebd-4e29-8435-f090a1e76b22) ) - (label "CPU_AD0" (at 203.835 87.63 180) + (label "CPU_AD0" (at 238.125 98.425 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 44c5bf06-8289-46ec-ab97-b552d80c9145) ) - (label "CPU_~{IORC}" (at 281.305 60.96 180) + (label "CPU_A0" (at 455.93 33.02 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 4881cfa1-4a6e-4705-9834-b51718c8090e) + ) + (label "CPU_A1" (at 621.665 56.515 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 4a38e1f3-430f-4d67-b3ea-b5dc66d72c0a) + ) + (label "CPU_A11" (at 621.665 59.055 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 4b12aa30-4cc0-4f87-a846-0a6a371b2e16) + ) + (label "CPU_A4" (at 455.93 43.18 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 4b3da78f-e816-433f-a8ab-4ee4a2803ea4) + ) + (label "CPU_~{MRDC}" (at 525.78 86.36 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 4c33cec6-304d-49b9-b2e0-9a8315850c23) + ) + (label "CPU_~{IORC}" (at 315.595 71.755 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 4ca95deb-2a9b-49bc-8083-5b649feffa66) ) - (label "CPU_AA14" (at 144.78 85.725 0) + (label "CPU_AA14" (at 179.07 96.52 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 4d87c861-d1bd-4b00-8728-221ee5960db0) ) - (label "CPU_A10" (at 231.775 137.16 0) + (label "CPU_A10" (at 266.065 147.955 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 4e562aa5-5c90-4bcb-9be0-40d53b86b30a) ) - (label "CPU_A5" (at 231.775 100.33 0) + (label "CPU_A19" (at 455.93 106.045 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 4f517a97-d2a1-4a87-a669-0931337a3e35) + ) + (label "CPU_A5" (at 266.065 111.125 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 4fcbcc7f-d361-499b-8cf2-0e0b0d3a579b) ) - (label "CPU_AD6" (at 203.835 102.87 180) + (label "CPU_AD6" (at 238.125 113.665 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 518ac707-fe33-4f8a-8052-5e9b507ce07e) ) - (label "CPU_AA16{slash}S3" (at 203.835 177.8 180) + (label "CPU_AA16{slash}S3" (at 238.125 188.595 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 518ae76a-789a-45cb-9c92-6f05cc43efed) ) - (label "CPU_D0" (at 231.775 244.475 0) + (label "CPU_D0" (at 266.065 255.27 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 5469d214-7f8c-40d4-9a7d-2a50297aa688) ) - (label "CPU_AD7" (at 203.835 262.255 180) + (label "CPU_AD7" (at 238.125 273.05 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 58633d81-52eb-49ab-bdc6-2d6f4816e1ef) ) - (label "CPU_AA12" (at 144.78 80.645 0) + (label "CPU_A18" (at 621.665 159.385 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 58ba6b10-271d-4d1c-8b95-5fdf63d4e7f8) + ) + (label "CPU_AA12" (at 179.07 91.44 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 59921764-dd38-4cf2-8956-d27183054e3e) ) - (label "CPU_A7" (at 231.775 105.41 0) + (label "CPU_A7" (at 266.065 116.205 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 5a45bce5-f284-4c6c-a8a2-835128900c5b) ) - (label "CPU_AA18{slash}S5" (at 144.78 98.425 0) + (label "CPU_AA18{slash}S5" (at 179.07 109.22 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 5a75ab27-4a4a-4e6e-8c04-eed5f64f68b1) ) - (label "CPU_AA10" (at 144.78 75.565 0) + (label "CPU_AA10" (at 179.07 86.36 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 5b830539-ea37-4f2c-bc8a-c61fe3c0e920) ) - (label "CPU_AD2" (at 203.835 92.71 180) + (label "CPU_A0" (at 621.665 48.895 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 5d0ca7ae-4aa6-4fce-a4df-0cb55427b4d4) + ) + (label "CPU_A5" (at 525.78 45.72 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 5d47e6ee-6c5e-49c6-ba38-a4b1689971c3) + ) + (label "CPU_AD2" (at 238.125 103.505 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 5ecad1b0-487f-4032-a102-cf9d020d7923) ) - (label "CPU_AD6" (at 203.835 259.715 180) + (label "CPU_AD6" (at 238.125 270.51 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 6118bf2d-fb81-481c-851e-49ed04d7b074) ) - (label "CPU_AA8" (at 203.835 132.08 180) + (label "CPU_D1" (at 488.95 35.56 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 62bde937-6a31-4ce4-afe6-e7b928e1c744) + ) + (label "CPU_AA8" (at 238.125 142.875 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 62c7e8ca-2ca3-4b04-aa22-bf71457fbbff) ) - (label "CPU_AD5" (at 203.835 100.33 180) + (label "CPU_D2" (at 488.95 38.1 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 636ea019-0b82-4670-ba39-bed045ea3584) + ) + (label "CPU_~{MWTC}" (at 271.145 46.99 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 63e3898d-6571-4d69-8f5a-a05ab204414b) + ) + (label "CPU_AD5" (at 238.125 111.125 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 643aaaa1-f328-4af2-8155-9a8e48a45be9) ) - (label "CPU_A6" (at 231.775 102.87 0) + (label "CPU_A3" (at 525.78 40.64 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 65799c66-53d7-43f7-a023-391314005eaf) + ) + (label "CPU_A6" (at 266.065 113.665 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 66ef1a0e-80d9-4244-a717-b7136927ccba) ) - (label "CPU_AD1" (at 144.78 50.165 0) + (label "CPU_D5" (at 488.95 45.72 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 670d5513-c46f-4c69-a9c8-76f10d65ae19) + ) + (label "CPU_AD1" (at 179.07 60.96 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 67125bde-6ada-4e9d-a918-90f9fa02a43c) ) - (label "CPU_AD7" (at 203.835 105.41 180) + (label "CPU_A5" (at 455.93 45.72 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 675bbba5-eae1-4995-8de9-637afe98994e) + ) + (label "CPU_AD7" (at 238.125 116.205 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 67ce31bd-8f13-4b84-9ea2-18303111a78c) ) - (label "CPU_AA8" (at 144.78 70.485 0) + (label "CPU_D6" (at 488.95 48.26 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 68c2ccbf-b1dc-478d-8fe3-6bf824c91e2d) + ) + (label "CPU_AA8" (at 179.07 81.28 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 68e2c1d4-6854-4d9b-8420-2eb8ca9d6d46) ) - (label "CPU_A3" (at 231.775 95.25 0) + (label "CPU_OSC" (at 77.47 59.69 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 6a4c2658-5121-4e98-b0b1-07bc4ad71508) + ) + (label "CPU_A3" (at 266.065 106.045 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 6a6004d0-ba84-488f-8967-dbcedc42d16c) ) - (label "CPU_AA14" (at 203.835 147.32 180) + (label "CPU_A11" (at 525.78 60.96 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 6a853b4e-2340-4769-9bd0-821f4da458dc) + ) + (label "CPU_AA14" (at 238.125 158.115 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 6b2cc1a6-6303-4652-9825-4d1ad0b4c66f) ) - (label "CPU_AA10" (at 203.835 137.16 180) + (label "CPU_AA10" (at 238.125 147.955 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 6c0c8ef4-5782-432a-ac37-a9ffc08ea009) ) - (label "CPU_AA18{slash}S5" (at 203.835 182.88 180) + (label "CPU_AA18{slash}S5" (at 238.125 193.675 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 6cda4fa1-2850-4ecd-bf66-8c140758256a) ) - (label "CPU_A12" (at 231.775 142.24 0) + (label "CPU_A12" (at 266.065 153.035 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 6d1ddeb6-bb5a-48c3-8637-16978976a98c) ) - (label "CPU_AA17{slash}S4" (at 203.835 180.34 180) + (label "CPU_AA17{slash}S4" (at 238.125 191.135 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 6f32e943-24b8-4848-99b6-dd52a8f3555f) ) - (label "CPU_D7" (at 231.775 262.255 0) + (label "CPU_CLK" (at 77.47 41.91 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 70582fd4-fcea-47ea-85b2-fe4c9825cf79) + ) + (label "CPU_D7" (at 266.065 273.05 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 7065755f-c64c-4389-8123-758a9fc67597) ) - (label "CPU_D0" (at 281.305 27.94 180) + (label "CPU_RESET" (at 77.47 52.07 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 70d2395d-b64d-4730-8030-efac87384ad1) + ) + (label "CPU_D3" (at 488.95 40.64 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 71041a63-b692-483a-9e43-c7464fc7bb62) + ) + (label "CPU_D0" (at 315.595 38.735 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 7216e992-5c53-4698-9fcc-395f76c6d352) ) - (label "CPU_AA9" (at 203.835 134.62 180) + (label "CPU_A10" (at 455.93 58.42 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 730b7c31-e5d1-4ef1-aa86-ff074a96697c) + ) + (label "CPU_A9" (at 525.78 55.88 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 7852081a-27d2-404f-9c7f-e4f337ff04ef) + ) + (label "CPU_AA9" (at 238.125 145.415 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 7f87643d-6502-4393-97ed-3df19c7d6935) ) - (label "CPU_AA12" (at 203.835 142.24 180) + (label "CPU_AA12" (at 238.125 153.035 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 80c6b14f-424a-4b1d-a4c6-c4f13d460916) ) - (label "CPU_D6" (at 281.305 43.18 180) + (label "CPU_A1" (at 455.93 35.56 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 820fad73-f40e-482e-9512-8129ed46dfc0) + ) + (label "CPU_D6" (at 315.595 53.975 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 83d475e1-e6c1-47aa-aadf-643973b37feb) ) - (label "CPU_A0" (at 281.305 50.8 180) + (label "CPU_A0" (at 315.595 61.595 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 847bf8fb-31d2-4b9f-ba49-d303510c33ee) ) - (label "CPU_D4" (at 281.305 38.1 180) + (label "CPU_A15" (at 621.665 112.395 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 8562dede-3d55-46c5-a770-9e5bf683a0dc) + ) + (label "CPU_D4" (at 315.595 48.895 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 86ffd511-1523-4931-b82d-eec70a1b4a4a) ) - (label "CPU_D6" (at 231.775 259.715 0) + (label "CPU_A18" (at 525.78 78.74 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 87514b24-e445-4599-b0c0-698e04d5261f) + ) + (label "CPU_D6" (at 266.065 270.51 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 88355357-561c-466a-94e3-9c08a5afeea3) ) - (label "CPU_AD7" (at 144.78 65.405 0) + (label "CPU_AD7" (at 179.07 76.2 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 8d15e3c9-6318-4396-b375-1cc3184c65c7) ) - (label "CPU_~{RD}" (at 144.78 111.125 0) + (label "CPU_~{RD}" (at 179.07 121.92 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 92cebfcf-f47e-4eb5-83db-404d486aed57) ) - (label "CPU_~{S2}" (at 144.78 106.045 0) + (label "CPU_A16" (at 621.665 120.015 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 92d273c5-7a8d-4e55-8b2e-d7ea93888c70) + ) + (label "CPU_A7" (at 621.665 125.095 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 93f27239-b8c2-40f0-a4d2-ff872146e067) + ) + (label "CPU_~{S2}" (at 179.07 116.84 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 958129d5-96e5-4a67-9cba-d937feb88adf) ) - (label "CPU_AD1" (at 203.835 90.17 180) + (label "CPU_A18" (at 455.93 78.74 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 95cbaadd-239f-4b0e-a472-0baee21e8f04) + ) + (label "CPU_A17" (at 621.665 127.635 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 96557aad-81f4-4196-b2ff-3dbdb3fb134d) + ) + (label "CPU_A9" (at 455.93 55.88 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 97783a9f-b6dd-4a53-adda-53492cafb5fe) + ) + (label "CPU_AD1" (at 238.125 100.965 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 9b8d3e91-6eb4-4129-a316-2d46ed0c04de) ) - (label "CPU_AA11" (at 144.78 78.105 0) + (label "CPU_A6" (at 621.665 117.475 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid 9e021e29-a729-43be-88d6-89363f09fc71) + ) + (label "CPU_D5" (at 558.8 45.72 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 9e90feda-799d-42d5-ab70-b166f9760cff) + ) + (label "CPU_D3" (at 558.8 40.64 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid a0836a60-2f3f-4334-be13-da229dc58f9d) + ) + (label "CPU_AA11" (at 179.07 88.9 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid a1097a92-cef9-42d6-b9c8-a5124e584eca) ) - (label "CPU_AA13" (at 144.78 83.185 0) + (label "CPU_AA13" (at 179.07 93.98 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid a1371df8-7ef5-4a3e-bd2e-28e0ca47634e) ) - (label "CPU_AA9" (at 144.78 73.025 0) + (label "CPU_AA9" (at 179.07 83.82 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid a273376d-5814-4ba9-ab94-7ad712a5e229) ) - (label "CPU_A15" (at 231.775 149.86 0) + (label "CPU_A15" (at 266.065 160.655 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid a3477200-22a9-45a7-9664-af3a6661c9d0) ) - (label "CPU_~{INTA}" (at 281.305 68.58 180) + (label "CPU_~{INTA}" (at 315.595 79.375 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid a69b1be4-9d3b-4a3b-9844-652a0cd190b9) ) - (label "CPU_~{S0}" (at 198.755 28.575 180) + (label "CPU_~{S0}" (at 233.045 39.37 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid a7251b33-a947-4c12-9a89-5ac17e1075db) ) - (label "CPU_~{S1}" (at 144.78 37.465 0) + (label "CPU_A14" (at 525.78 68.58 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid a7607479-4d5f-4557-a7ec-0a2487b7c803) + ) + (label "CPU_D6" (at 558.8 48.26 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid a9005c94-c7d4-46c7-8e83-83b66ccb14f7) + ) + (label "CPU_D0" (at 488.95 33.02 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid aa084b95-2f88-473e-a9be-3bfb31c58558) + ) + (label "CPU_~{S1}" (at 179.07 48.26 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid ab61b520-871a-4ca6-aab7-57a980af9074) ) - (label "CPU_A9" (at 231.775 134.62 0) + (label "CPU_A9" (at 266.065 145.415 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid ad883eb0-fd19-4168-b746-915b4d8ea552) ) - (label "CPU_D3" (at 231.775 252.095 0) + (label "CPU_~{MWTC}" (at 455.93 88.9 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid ae6d33c7-42a3-4b6c-b203-7a2188907c54) + ) + (label "CPU_A15" (at 525.78 71.12 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid b0b5a257-6333-4321-a764-6442c6915a85) + ) + (label "CPU_D3" (at 266.065 262.89 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid b0d6b919-3360-4726-bd71-61f7ceef3608) ) - (label "CPU_~{IOWC}" (at 236.855 33.655 0) + (label "CPU_~{IOWC}" (at 271.145 44.45 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid b1dc4dcc-69f0-4ab6-a31c-dcc0b6336449) ) - (label "CPU_INT" (at 106.68 57.785 180) + (label "CPU_INT" (at 140.97 68.58 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid b2635960-f4c1-4e7d-bb8d-236a51aebcbe) ) - (label "CPU_A0" (at 231.775 87.63 0) + (label "CPU_A0" (at 266.065 98.425 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid b44ddc9b-9ccf-4f9b-b5f2-6c7feb277bf4) ) - (label "CPU_A18" (at 231.775 182.88 0) + (label "CPU_A8" (at 525.78 53.34 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid b454fbaf-62f3-4c04-ba62-31c7de0559e3) + ) + (label "CPU_D2" (at 558.8 38.1 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid b5e17e2e-8bba-48bd-b02d-793658feb97d) + ) + (label "CPU_A18" (at 266.065 193.675 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid b7b9a9bf-6283-46a9-a9c6-8b15a127af3f) ) - (label "CPU_AD4" (at 203.835 97.79 180) + (label "CPU_AD4" (at 238.125 108.585 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid bbe8a2ba-1a1f-4f5e-af8d-e55a9e3f27f3) ) - (label "CPU_A16" (at 231.775 177.8 0) + (label "CPU_A16" (at 266.065 188.595 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid bc1fc47c-62ed-4273-adfc-e65a3860c0da) ) - (label "CPU_AA17{slash}S4" (at 144.78 95.885 0) + (label "CPU_D0" (at 558.8 33.02 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid bc2b54ef-3237-4804-a3f1-8acbf591e1f4) + ) + (label "CPU_AA17{slash}S4" (at 179.07 106.68 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid bd0e5ab6-65e5-43e4-bd20-3cf4757ec064) ) - (label "CPU_INT" (at 281.305 66.04 180) + (label "CPU_A1" (at 525.78 35.56 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid bd850f4b-4d15-4a44-940d-b18285d95044) + ) + (label "CPU_INT" (at 315.595 76.835 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid bf35644d-2820-461f-9c04-7285d693a5a6) ) - (label "CPU_A2" (at 231.775 92.71 0) + (label "~{CPU_A19}" (at 481.33 106.045 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid bffe2bf9-d6a0-48ce-8fcc-5632517a36e1) + ) + (label "CPU_A2" (at 266.065 103.505 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid c04ed281-7721-44e4-ae80-ad98ce512949) ) - (label "CPU_A11" (at 231.775 139.7 0) + (label "CPU_A11" (at 266.065 150.495 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid c1f9bff7-d2e3-4e31-b820-4e0a8408fcbc) ) - (label "CPU_AA15" (at 203.835 149.86 180) + (label "CPU_AA15" (at 238.125 160.655 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid c33ba54c-6d87-4f75-89c5-9dc14ce9f8df) ) - (label "CPU_AD4" (at 203.835 254.635 180) + (label "CPU_A4" (at 621.665 102.235 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid c3433ec6-66a4-483f-abe3-c615b90ca340) + ) + (label "CPU_AD4" (at 238.125 265.43 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid c46aa6a6-9dee-4671-af1b-a4929d729f72) ) - (label "CPU_~{S1}" (at 198.755 31.115 180) + (label "CPU_~{S1}" (at 233.045 41.91 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid c4d4acf4-2cc3-44d1-baa9-b73f0bdf7ab1) ) - (label "CPU_AD3" (at 144.78 55.245 0) + (label "CPU_AD3" (at 179.07 66.04 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid c5af6ac2-80f3-46e9-8983-04bb10fa213e) ) - (label "CPU_AD3" (at 203.835 95.25 180) + (label "CPU_AD3" (at 238.125 106.045 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid c891badc-3286-4324-aa5f-f8c53044814c) ) - (label "CPU_A4" (at 231.775 97.79 0) + (label "CPU_A4" (at 266.065 108.585 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid cb344f93-a3cb-4fd0-85ed-4ec358408343) ) - (label "CPU_AA19{slash}S6" (at 203.835 185.42 180) + (label "CPU_A15" (at 455.93 71.12 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid cc2f3354-1752-4f80-8450-c25a88ba0ef5) + ) + (label "CPU_A12" (at 621.665 66.675 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid cd5f78bd-785d-4591-be0e-39e2ec030ed1) + ) + (label "CPU_D7" (at 488.95 50.8 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid d05fe9a0-1316-494e-bdc3-5cdb2f6a6557) + ) + (label "CPU_A10" (at 621.665 51.435 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid d09d54cd-211d-4de2-8de7-d75089a6fae3) + ) + (label "CPU_~{MRDC}" (at 455.93 86.36 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid d2d6755b-c612-4474-b42f-e6d79bee2b26) + ) + (label "CPU_AA19{slash}S6" (at 238.125 196.215 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid d374ddf2-acc2-475c-8961-cf44cfd58cf7) ) - (label "CPU_A19" (at 231.775 185.42 0) + (label "CPU_A19" (at 266.065 196.215 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid d799792b-e5bf-4263-9bda-5438d754a393) ) - (label "CPU_AA16{slash}S3" (at 144.78 93.345 0) + (label "CPU_AA16{slash}S3" (at 179.07 104.14 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid d8267ede-9f13-4f97-a73d-e433f4a60051) ) - (label "CPU_AD2" (at 144.78 52.705 0) + (label "CPU_A16" (at 525.78 73.66 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid d864024d-e725-4bf8-b383-ac638e3c2f15) + ) + (label "CPU_A2" (at 455.93 38.1 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid dae53c2e-b885-4f06-a779-3d140b27175b) + ) + (label "CPU_AD2" (at 179.07 63.5 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid db162064-650e-4209-a883-4ac2439083b9) ) - (label "CPU_AA11" (at 203.835 139.7 180) + (label "CPU_AA11" (at 238.125 150.495 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid dc20bbcc-d11b-4c12-9b3e-b20c271832ba) ) - (label "CPU_D3" (at 281.305 35.56 180) + (label "CPU_D3" (at 315.595 46.355 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid dc645e02-99cd-435e-9166-2ad890ffd3c2) ) - (label "CPU_A17" (at 231.775 180.34 0) + (label "CPU_A17" (at 266.065 191.135 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid dcf7056f-9bbb-4b8b-aa30-0db5438e5a95) ) - (label "CPU_~{IOWC}" (at 281.305 58.42 180) + (label "CPU_A7" (at 525.78 50.8 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid df107074-5e36-464c-893d-3cc46d052f4d) + ) + (label "CPU_~{IOWC}" (at 315.595 69.215 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid e4df874c-cfcc-4874-be91-4fa9519c4ed6) ) - (label "CPU_AA19{slash}S6" (at 144.78 100.965 0) + (label "CPU_READY" (at 140.97 53.34 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid e5eaedcb-1849-4cf1-b733-342f00f990f6) + ) + (label "CPU_A13" (at 621.665 74.295 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid e98d468e-d65c-429c-b0ad-953ef1f02dd6) + ) + (label "CPU_AA19{slash}S6" (at 179.07 111.76 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid ec224a73-95f7-4bf4-bf36-be67f1147a19) ) - (label "CPU_D7" (at 281.305 45.72 180) + (label "CPU_A14" (at 621.665 104.775 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid ecccd561-3ac9-4883-94f3-c091e103e253) + ) + (label "CPU_READY" (at 77.47 46.99 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid ef824455-edb6-4dbb-8c30-0a3506a658a0) + ) + (label "CPU_D7" (at 315.595 56.515 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid f1643ee1-a8ab-4e59-83e6-0cec912b6a08) ) - (label "CPU_CLK" (at 198.755 51.435 180) + (label "CPU_A0" (at 525.78 33.02 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid f5c004f9-6685-4caa-8a7e-2a9bf7c790c2) + ) + (label "CPU_CLK" (at 233.045 62.23 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid f6b16f97-4d39-4f9b-83dc-bee07124221c) ) - (label "CPU_D5" (at 231.775 257.175 0) + (label "CPU_A10" (at 525.78 58.42 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid fb37dc49-bde2-4fc0-8c57-dde04e3e5660) + ) + (label "CPU_D5" (at 266.065 267.97 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid fd4ae6cd-bcfe-4025-be3a-6ebcf6e25e91) ) - (label "CPU_AD0" (at 144.78 47.625 0) + (label "CPU_A9" (at 621.665 164.465 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid fe5d0a6d-5e08-49d8-b7b9-bc4c0e8cc50c) + ) + (label "CPU_AD0" (at 179.07 58.42 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid fe8f7238-24a0-43df-83ca-3ac076abf355) ) - (label "CPU_D5" (at 281.305 40.64 180) + (label "CPU_D5" (at 315.595 51.435 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid ff413d93-25d3-4f5b-8134-bbdf00f8775c) ) - (label "CPU_AA15" (at 144.78 88.265 0) + (label "CPU_RESET" (at 140.97 58.42 180) + (effects (font (size 1.27 1.27)) (justify right bottom)) + (uuid ff645db3-17cc-4da1-b2f9-b2a9e3c74afc) + ) + (label "CPU_AA15" (at 179.07 99.06 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid ff6910c2-a649-4d70-bb64-3c7a50072820) ) - (symbol (lib_id "power:+5V") (at 187.96 46.99 0) (unit 1) + (symbol (lib_id "power:+5V") (at 46.355 30.48 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 00abf296-d051-417e-9b7a-30a3971d4903) + (property "Reference" "#PWR?" (id 0) (at 46.355 34.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+5V" (id 1) (at 46.355 25.4 0)) + (property "Footprint" "" (id 2) (at 46.355 30.48 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 46.355 30.48 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ec662c8c-8321-4e2d-94b1-517e95b720c1)) + ) + + (symbol (lib_id "Device:C_Small") (at 87.63 66.04 90) (unit 1) + (in_bom yes) (on_board yes) + (uuid 0212d326-ea69-42d3-8d15-ca402f44435a) + (property "Reference" "C?" (id 0) (at 86.36 64.135 90) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100nF" (id 1) (at 94.615 64.77 90) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mm" (id 2) (at 87.63 66.04 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 87.63 66.04 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 44e948a5-7560-461a-ba94-263202597874)) + (pin "2" (uuid 6c1e9270-4497-433a-99b1-3836c1f6f625)) + ) + + (symbol (lib_id "Device:R") (at 40.005 35.56 0) (unit 1) + (in_bom yes) (on_board yes) + (uuid 107b0a24-6e9b-4df7-bad8-8cd51fc1f8aa) + (property "Reference" "R?" (id 0) (at 41.275 33.02 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "4.7k" (id 1) (at 41.275 39.37 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P2.54mm_Vertical" (id 2) (at 38.227 35.56 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 40.005 35.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a4d102c6-80eb-4a3b-a198-40649859d2fd)) + (pin "2" (uuid 1d54e8c8-c40b-40d2-9571-85f408fcbed6)) + ) + + (symbol (lib_id "power:+5V") (at 222.25 57.785 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 10c3c2d9-42cd-41c3-9e8e-d7ec381abaec) - (property "Reference" "#PWR?" (id 0) (at 187.96 50.8 0) + (property "Reference" "#PWR?" (id 0) (at 222.25 61.595 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Value" "" (id 1) (at 187.96 41.275 0)) - (property "Footprint" "" (id 2) (at 187.96 46.99 0) + (property "Value" "+5V" (id 1) (at 222.25 52.07 0)) + (property "Footprint" "" (id 2) (at 222.25 57.785 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "" (id 3) (at 187.96 46.99 0) + (property "Datasheet" "" (id 3) (at 222.25 57.785 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 543afed4-8f67-44ec-87da-fbc332c0a9ea)) ) - (symbol (lib_id "MCU_Intel:8088") (at 125.73 75.565 0) (unit 1) + (symbol (lib_id "power:GND") (at 542.29 93.98 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 1842fcea-8ee6-4290-a7bd-373260b8677a) + (property "Reference" "#PWR?" (id 0) (at 542.29 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 542.29 98.425 0)) + (property "Footprint" "" (id 2) (at 542.29 93.98 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 542.29 93.98 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 47523a95-a58a-4b38-855d-683a98fa6b40)) + ) + + (symbol (lib_id "MCU_Intel:8088") (at 160.02 86.36 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 29fce808-6d36-40d4-9602-9f4120d8ea77) - (property "Reference" "U?" (id 0) (at 127.7494 28.448 0) + (property "Reference" "U?" (id 0) (at 162.0394 39.243 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "" (id 1) (at 127.7494 30.988 0) + (property "Value" "8088" (id 1) (at 162.0394 41.783 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "" (id 2) (at 127 73.025 0) + (property "Footprint" "Package_DIP:DIP-40_W15.24mm" (id 2) (at 161.29 83.82 0) (effects (font (size 1.27 1.27) italic) hide) ) - (property "Datasheet" "http://datasheets.chipdb.org/Intel/x86/808x/datashts/8088/231456-006.pdf" (id 3) (at 125.73 74.295 0) + (property "Datasheet" "http://datasheets.chipdb.org/Intel/x86/808x/datashts/8088/231456-006.pdf" (id 3) (at 160.02 85.09 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 976c9ba6-a413-4b99-894e-8441516220e8)) @@ -2814,19 +4935,19 @@ (pin "9" (uuid 0f18acd3-b4c7-4d09-b05d-f1b375bbc670)) ) - (symbol (lib_id "74xx:74LS573") (at 217.805 144.78 0) (unit 1) + (symbol (lib_id "74xx:74LS573") (at 252.095 155.575 0) (unit 1) (in_bom yes) (on_board yes) (uuid 2d9d0858-478d-4f9c-936a-899aee661b4d) - (property "Reference" "U?" (id 0) (at 219.8244 124.714 0) + (property "Reference" "U?" (id 0) (at 254.1144 135.509 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "74HCT573" (id 1) (at 219.8243 127.254 0) + (property "Value" "74HCT573" (id 1) (at 254.1143 138.049 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "" (id 2) (at 217.805 144.78 0) + (property "Footprint" "" (id 2) (at 252.095 155.575 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "74xx/74hc573.pdf" (id 3) (at 217.805 144.78 0) + (property "Datasheet" "74xx/74hc573.pdf" (id 3) (at 252.095 155.575 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid e70e95a7-6dfc-4062-bdb7-d3ac3f6d3958)) @@ -2851,19 +4972,35 @@ (pin "9" (uuid 655d0ae4-7f4a-4964-9b7f-fff94c68558d)) ) - (symbol (lib_id "Interface:8259") (at 297.815 48.26 0) (unit 1) + (symbol (lib_id "Switch:SW_SPDT") (at 29.845 39.37 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 34f7490a-f55b-4e20-8acf-1022ef68f4e4) + (property "Reference" "SW?" (id 0) (at 29.845 31.75 0)) + (property "Value" "SW_SPDT" (id 1) (at 29.845 34.29 0)) + (property "Footprint" "digikey-footprints:Toggle_Switch_100SP1T2B4M6QE" (id 2) (at 29.845 39.37 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 29.845 39.37 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 9179873c-a076-4861-a9c3-ac3523e4fdfe)) + (pin "2" (uuid 07191767-04f5-4837-9ca1-40f06835cb37)) + (pin "3" (uuid d9bcacac-e58f-403a-a6af-506e0f27101b)) + ) + + (symbol (lib_id "Interface:8259") (at 332.105 59.055 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 363b6211-7d36-410c-adaf-3da025771576) - (property "Reference" "U?" (id 0) (at 299.8344 19.05 0) + (property "Reference" "U?" (id 0) (at 334.1244 29.845 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "" (id 1) (at 299.8344 21.59 0) + (property "Value" "8259" (id 1) (at 334.1244 32.385 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "" (id 2) (at 297.815 48.26 0) + (property "Footprint" "Package_DIP:DIP-28_W15.24mm" (id 2) (at 332.105 59.055 0) (effects (font (size 1.27 1.27) italic) hide) ) - (property "Datasheet" "http://pdos.csail.mit.edu/6.828/2005/readings/hardware/8259A.pdf" (id 3) (at 297.815 48.26 0) + (property "Datasheet" "http://pdos.csail.mit.edu/6.828/2005/readings/hardware/8259A.pdf" (id 3) (at 332.105 59.055 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid d342c9ee-8e86-4b19-bc3a-fb9638a94d70)) @@ -2896,35 +5033,35 @@ (pin "9" (uuid 4ce8bc74-d49f-4e87-8e0e-93a00c711f88)) ) - (symbol (lib_id "power:GND") (at 191.77 64.135 0) (unit 1) + (symbol (lib_id "power:GND") (at 226.06 74.93 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 395e635a-2103-4087-8116-ba9dd68ecc15) - (property "Reference" "#PWR?" (id 0) (at 191.77 70.485 0) + (property "Reference" "#PWR?" (id 0) (at 226.06 81.28 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Value" "GND" (id 1) (at 191.77 68.58 0)) - (property "Footprint" "" (id 2) (at 191.77 64.135 0) + (property "Value" "GND" (id 1) (at 226.06 79.375 0)) + (property "Footprint" "" (id 2) (at 226.06 74.93 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "" (id 3) (at 191.77 64.135 0) + (property "Datasheet" "" (id 3) (at 226.06 74.93 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 67c9e461-cff3-4d23-86ad-ac6b99857c1d)) ) - (symbol (lib_id "74xx:74LS245") (at 217.805 257.175 0) (unit 1) + (symbol (lib_id "74xx:74LS245") (at 252.095 267.97 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 3c5a979a-5615-4727-87a6-345ff2175440) - (property "Reference" "U?" (id 0) (at 219.8244 236.855 0) + (property "Reference" "U?" (id 0) (at 254.1144 247.65 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "" (id 1) (at 219.8244 239.395 0) + (property "Value" "74LS245" (id 1) (at 254.1144 250.19 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "" (id 2) (at 217.805 257.175 0) + (property "Footprint" "" (id 2) (at 252.095 267.97 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS245" (id 3) (at 217.805 257.175 0) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS245" (id 3) (at 252.095 267.97 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 73f665df-8ca5-4885-822b-87974f63d88a)) @@ -2949,19 +5086,19 @@ (pin "9" (uuid 537ade33-8493-45df-9357-c0c76eeca1a8)) ) - (symbol (lib_id "74xx:74LS573") (at 217.805 190.5 0) (unit 1) + (symbol (lib_id "74xx:74LS573") (at 252.095 201.295 0) (unit 1) (in_bom yes) (on_board yes) (uuid 3efae74d-6661-4a80-8c1b-33ca308c3c32) - (property "Reference" "U?" (id 0) (at 219.8244 170.434 0) + (property "Reference" "U?" (id 0) (at 254.1144 181.229 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "74HCT573" (id 1) (at 219.8243 172.974 0) + (property "Value" "74HCT573" (id 1) (at 254.1143 183.769 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "" (id 2) (at 217.805 190.5 0) + (property "Footprint" "" (id 2) (at 252.095 201.295 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "74xx/74hc573.pdf" (id 3) (at 217.805 190.5 0) + (property "Datasheet" "74xx/74hc573.pdf" (id 3) (at 252.095 201.295 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 3a7ec64b-46fd-43a2-b4ea-2a738201488f)) @@ -2986,19 +5123,35 @@ (pin "9" (uuid c6bba93f-4d8a-4e23-aeb9-a9c33b0c67db)) ) - (symbol (lib_id "Timer:8284") (at -65.532 69.723 0) (unit 1) + (symbol (lib_id "power:+5V") (at 542.29 27.94 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 4009a862-0e37-4549-a93f-06ce1006a5f4) + (property "Reference" "#PWR?" (id 0) (at 542.29 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+5V" (id 1) (at 542.29 22.225 0)) + (property "Footprint" "" (id 2) (at 542.29 27.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 542.29 27.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 5ed64291-89ea-4116-841e-8ccf60ef2791)) + ) + + (symbol (lib_id "Timer:8284") (at 66.04 57.15 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 408e23ac-92c0-42b0-943c-19fe687ae4ac) - (property "Reference" "U?" (id 0) (at -63.5126 47.244 0) + (property "Reference" "U?" (id 0) (at 68.0594 34.671 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "" (id 1) (at -63.5126 49.784 0) + (property "Value" "8284" (id 1) (at 68.0594 37.211 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "" (id 2) (at -65.532 69.723 0) + (property "Footprint" "Package_DIP:DIP-18_W7.62mm" (id 2) (at 66.04 57.15 0) (effects (font (size 1.27 1.27) italic) hide) ) - (property "Datasheet" "http://www.cpu-galaxy.at/cpu/ram%20rom%20eprom/other_intel_chips/other_intel-Dateien/D8284A_Datasheet.pdf" (id 3) (at -65.532 69.723 0) + (property "Datasheet" "http://www.cpu-galaxy.at/cpu/ram%20rom%20eprom/other_intel_chips/other_intel-Dateien/D8284A_Datasheet.pdf" (id 3) (at 66.04 57.15 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 1956ba7e-0a93-45be-9c69-139634e97103)) @@ -3021,35 +5174,148 @@ (pin "9" (uuid 8ed37bbe-d24b-4e17-8c07-72be45dc9310)) ) - (symbol (lib_id "power:GND") (at 185.42 60.96 0) (unit 1) + (symbol (lib_id "power:GND") (at 20.955 41.91 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 51c37ad9-917f-49f1-bef8-d1a178a14e24) + (property "Reference" "#PWR?" (id 0) (at 20.955 48.26 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 20.955 46.99 0)) + (property "Footprint" "" (id 2) (at 20.955 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 20.955 41.91 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 402dfac4-a7fd-45fc-9b9e-e40b939062d5)) + ) + + (symbol (lib_id "Memory_RAM:IS61C5128AS-25QLI") (at 542.29 60.96 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 5e7e96e6-d6dd-4e14-8c6f-4e60259d1a8a) + (property "Reference" "U?" (id 0) (at 544.3094 24.765 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "IS61C5128AS-25QLI" (id 1) (at 544.3094 27.305 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_SO:SSOP-32_11.305x20.495mm_P1.27mm" (id 2) (at 529.59 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.issi.com/WW/pdf/61-64C5128AL.pdf" (id 3) (at 542.29 60.96 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid b05be71f-6260-49a4-a7c3-0ac1b5c3c0cc)) + (pin "10" (uuid d2f07a2a-db8a-4eda-ae90-92aa14aed019)) + (pin "11" (uuid b3cca754-6f7c-4020-8161-79953157fef7)) + (pin "12" (uuid 572a2b40-77ca-45fb-9387-2d5e2f8d177a)) + (pin "13" (uuid 7d2c825b-0926-4b05-9929-4ebe0a1d7291)) + (pin "14" (uuid 3beb1208-071b-458e-ac9d-11c1eb69a5b0)) + (pin "15" (uuid 326a9985-2b49-44af-aa53-84fe485f6f83)) + (pin "16" (uuid c1bda09a-d66f-479e-9b6d-ee1aec5ebf73)) + (pin "17" (uuid a3ad0764-db35-4df9-b518-e80ca992feed)) + (pin "18" (uuid 3aa6985b-6812-40a1-95a6-baf381f6a05b)) + (pin "19" (uuid 874e3a81-169b-4fbd-a449-79985403f83c)) + (pin "2" (uuid 3890a69c-dfda-4c58-b3c2-fbb62b454f76)) + (pin "20" (uuid 57cb0bd2-ce34-4775-9a83-21d95ef5e397)) + (pin "21" (uuid c14ff7df-daae-4e87-bd11-79b8988e68c9)) + (pin "22" (uuid e7c44e20-9e94-4204-a8eb-fd9fcbf4453a)) + (pin "23" (uuid b53f5c47-d7d5-483e-9c21-b88daa1a6c25)) + (pin "24" (uuid 6cd41a29-677c-4a2e-b77e-06b1b33a51e8)) + (pin "25" (uuid 836a4ae1-d540-44f8-99d6-5fe19d245c2e)) + (pin "26" (uuid be1c9f9a-523c-4382-91d1-e6720f560d77)) + (pin "27" (uuid 046f4552-4db1-4e60-bc3c-ce097587e01d)) + (pin "28" (uuid f365e0de-ea18-414f-a0ae-37f01a86ccc4)) + (pin "29" (uuid 6861ae33-664d-4917-b984-dcfe567941da)) + (pin "3" (uuid c45d5d57-e58a-4ab0-97b9-cfd78ddb9fe7)) + (pin "30" (uuid 9d03a458-7ad4-477c-95db-ac1a63cb6119)) + (pin "31" (uuid 1571b50f-5de1-41c7-86b8-e969cc8d3341)) + (pin "32" (uuid 736dea84-8c1b-4bf6-b889-82330a6b7929)) + (pin "4" (uuid b1fadb03-c9dc-49d2-8938-f1fd9dbf6bc3)) + (pin "5" (uuid e55c32cf-0736-47e3-944e-cbad68447b74)) + (pin "6" (uuid 896bdea2-09a3-4414-bd80-e999d5515292)) + (pin "7" (uuid c84d1568-a5aa-457f-8b3d-422b1eff0993)) + (pin "8" (uuid 72137371-d61c-4b08-b45f-8cbbd4cc303a)) + (pin "9" (uuid 18c76924-dba5-4403-8352-94097d6774bd)) + ) + + (symbol (lib_id "power:GND") (at 219.71 71.755 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 693ab812-87a4-425a-9d21-aec3576ba7b1) - (property "Reference" "#PWR?" (id 0) (at 185.42 67.31 0) + (property "Reference" "#PWR?" (id 0) (at 219.71 78.105 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Value" "" (id 1) (at 185.42 65.405 0)) - (property "Footprint" "" (id 2) (at 185.42 60.96 0) + (property "Value" "GND" (id 1) (at 219.71 76.2 0)) + (property "Footprint" "" (id 2) (at 219.71 71.755 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "" (id 3) (at 185.42 60.96 0) + (property "Datasheet" "" (id 3) (at 219.71 71.755 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 8ff9f465-115b-43eb-8fe3-3e0ea14ba581)) ) - (symbol (lib_id "Interface:8288") (at 217.805 43.815 0) (unit 1) + (symbol (lib_id "74xx:74LS04") (at 464.82 106.045 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 6c0370a5-5bd4-40b4-bc3e-b7eec7cca629) + (property "Reference" "U?" (id 0) (at 464.82 97.155 0)) + (property "Value" "74LS04" (id 1) (at 464.82 99.695 0)) + (property "Footprint" "" (id 2) (at 464.82 106.045 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS04" (id 3) (at 464.82 106.045 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid a9b43ceb-c830-4872-96bf-c7b330debb04)) + (pin "2" (uuid d3b0f0c5-3af3-4112-98ad-a549a745f741)) + ) + + (symbol (lib_id "74xx:74LS157") (at 635.635 64.135 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 72145143-3443-4156-b66a-6ff25a6dbf3c) + (property "Reference" "U?" (id 0) (at 637.6544 41.275 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "74LS157" (id 1) (at 637.6544 43.815 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (id 2) (at 635.635 64.135 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS157" (id 3) (at 635.635 64.135 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid bc0a38a3-b4c5-4de8-a204-0f16ff2f0724)) + (pin "10" (uuid 2e665236-b857-4fdd-afc8-2342969e3ea4)) + (pin "11" (uuid 03146440-638b-4d4a-b8e9-6558e5fcc1da)) + (pin "12" (uuid 7c00d2d3-ea55-4575-a56d-6889875bb6e3)) + (pin "13" (uuid cb7b460c-3696-4f6a-9841-de403149c2e3)) + (pin "14" (uuid 563bafec-bcb5-43d3-bd7a-5c9de3de21d1)) + (pin "15" (uuid 19d199d0-60b6-45a7-9926-31d9d5caf88d)) + (pin "16" (uuid 135d3e2c-da1a-4834-b50a-95e2436bbd8d)) + (pin "2" (uuid b2987fc2-38b2-4a43-9884-a5ba9d4190ac)) + (pin "3" (uuid 34462c83-ac46-4647-807e-750e20986650)) + (pin "4" (uuid f385f003-2400-4524-be4e-97d939e28def)) + (pin "5" (uuid 40f56faa-769b-4379-bee8-df6f01fef12e)) + (pin "6" (uuid fa92d131-4c94-4d28-b559-d395f95a2606)) + (pin "7" (uuid 5a5469d5-3acf-4cde-b353-84be0957786d)) + (pin "8" (uuid 90871916-e227-49a3-a036-b1e4f47413ff)) + (pin "9" (uuid fda43eb0-4694-4fdf-8082-ced7b9611520)) + ) + + (symbol (lib_id "Interface:8288") (at 252.095 54.61 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 744ddd60-1a17-4afc-9566-f772021ca53f) - (property "Reference" "U?" (id 0) (at 219.8244 19.558 0) + (property "Reference" "U?" (id 0) (at 254.1144 30.353 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "" (id 1) (at 219.8244 22.098 0) + (property "Value" "8288" (id 1) (at 254.1144 32.893 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "" (id 2) (at 217.805 43.815 0) + (property "Footprint" "Package_DIP:DIP-20_W7.62mm" (id 2) (at 252.095 54.61 0) (effects (font (size 1.27 1.27) italic) hide) ) - (property "Datasheet" "http://www.datasheets360.com/pdf/7208679415653955300" (id 3) (at 203.835 23.495 0) + (property "Datasheet" "http://www.datasheets360.com/pdf/7208679415653955300" (id 3) (at 238.125 34.29 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 0e8b75bd-5724-4e32-aae7-693beabfe10e)) @@ -3074,46 +5340,35 @@ (pin "9" (uuid d74a104a-35da-4cb0-a175-88b67893caa9)) ) - (symbol (lib_id "74xx:74LS00") (at 194.945 274.32 0) (unit 1) + (symbol (lib_id "74xx:74LS00") (at 229.235 285.115 0) (unit 1) (in_bom yes) (on_board yes) (uuid 7dad2358-4248-43cc-a88f-fa49e75d731f) - (property "Reference" "U?" (id 0) (at 194.945 281.305 0)) - (property "Value" "" (id 1) (at 194.945 279.4 0)) - (property "Footprint" "" (id 2) (at 194.945 274.32 0) + (property "Reference" "U?" (id 0) (at 229.235 292.1 0)) + (property "Value" "74LS00" (id 1) (at 229.235 290.195 0)) + (property "Footprint" "" (id 2) (at 229.235 285.115 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "http://www.ti.com/lit/gpn/sn74ls00" (id 3) (at 194.945 274.32 0) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74ls00" (id 3) (at 229.235 285.115 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid e65bbb65-869d-447d-bc7d-98612a8ba4b3)) (pin "2" (uuid e7698b81-3427-4bf1-972b-09cb9c04bf7b)) (pin "3" (uuid 9d0f5a9b-8f9e-47d2-83f4-d134b399e613)) - (pin "4" (uuid d2806bdf-2219-45b7-bb49-df09ee7d59e6)) - (pin "5" (uuid b2d2d388-81c2-4f90-9940-1ded99c4f3ff)) - (pin "6" (uuid 3dd0cf51-61ba-453b-8675-106731dd770e)) - (pin "10" (uuid 478b9c15-ceaf-4401-9ec0-8d5ccb2085b7)) - (pin "8" (uuid 034294d1-b685-4043-bb3d-09710d0f5687)) - (pin "9" (uuid e13a246b-1803-4a0e-ac93-2218b0d048ff)) - (pin "11" (uuid 95a56669-ea2a-4335-b87b-fdba76aff6c1)) - (pin "12" (uuid c563cddc-7762-4579-ace0-cf5d74c8fbfc)) - (pin "13" (uuid bf8f1568-2c8d-4060-a4eb-1917ad1b674a)) - (pin "14" (uuid 6caa692b-ef14-4499-a422-f00aeb9035ea)) - (pin "7" (uuid f4f7404f-ed53-46e0-b8ee-8eda77900ff3)) ) - (symbol (lib_id "74xx:74LS573") (at 217.805 100.33 0) (unit 1) + (symbol (lib_id "74xx:74LS573") (at 252.095 111.125 0) (unit 1) (in_bom yes) (on_board yes) (uuid 888d3aca-9be6-49a3-bde9-3b6c4466fb0b) - (property "Reference" "U?" (id 0) (at 219.8244 80.264 0) + (property "Reference" "U?" (id 0) (at 254.1144 91.059 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "" (id 1) (at 219.8243 82.804 0) + (property "Value" "74HCT573" (id 1) (at 254.1143 93.599 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "" (id 2) (at 217.805 100.33 0) + (property "Footprint" "" (id 2) (at 252.095 111.125 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "74xx/74hc573.pdf" (id 3) (at 217.805 100.33 0) + (property "Datasheet" "74xx/74hc573.pdf" (id 3) (at 252.095 111.125 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 63b896b0-8656-46a4-be5f-7a59b18b2756)) @@ -3138,59 +5393,388 @@ (pin "9" (uuid 3406e6be-0bd0-463f-a4a2-e65bb01b6e82)) ) - (symbol (lib_id "Device:R") (at 316.865 60.96 90) (unit 1) - (in_bom yes) (on_board yes) - (uuid e9376621-5bcf-4751-b4bf-8913aa82106d) - (property "Reference" "R?" (id 0) (at 316.865 59.055 90)) - (property "Value" "" (id 1) (at 316.865 60.96 90)) - (property "Footprint" "" (id 2) (at 316.865 62.738 90) + (symbol (lib_id "power:+5V") (at 53.975 30.48 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 8aafc401-ffae-448b-9e3c-dcbafa8ee4ae) + (property "Reference" "#PWR?" (id 0) (at 53.975 34.29 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "~" (id 3) (at 316.865 60.96 0) + (property "Value" "+5V" (id 1) (at 53.975 25.4 0)) + (property "Footprint" "" (id 2) (at 53.975 30.48 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 53.975 30.48 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2516f2c7-b85b-4b40-acb5-9e86864bd998)) + ) + + (symbol (lib_id "Memory_RAM:IS61C5128AS-25QLI") (at 472.44 60.96 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 8bf4a162-f18e-412e-afe7-53bb0a7791c9) + (property "Reference" "U?" (id 0) (at 474.4594 24.765 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "IS61C5128AS-25QLI" (id 1) (at 474.4594 27.305 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_SO:SSOP-32_11.305x20.495mm_P1.27mm" (id 2) (at 459.74 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.issi.com/WW/pdf/61-64C5128AL.pdf" (id 3) (at 472.44 60.96 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0fa30ec6-af69-4f69-9af6-d6deb7f548a5)) + (pin "10" (uuid 85684b63-cb1d-4ca6-b9ae-04475d6ba341)) + (pin "11" (uuid fc664b22-3130-4a7d-8463-a835fe323b20)) + (pin "12" (uuid 9bf9fe4e-2b0e-411a-8a37-025fbc68c0dc)) + (pin "13" (uuid bd8c9bbe-3faa-45b1-b703-abaec6a30176)) + (pin "14" (uuid 30272065-46f7-4058-9a65-cbc555ef0057)) + (pin "15" (uuid 97d0c71b-23f6-4fbd-9a4e-113028593c21)) + (pin "16" (uuid 28678d31-d573-4cd2-803f-b963fca9311c)) + (pin "17" (uuid 52de839d-6eab-4c17-bf03-0401cd785096)) + (pin "18" (uuid 011b53b3-66c7-43ba-98f2-914592da5dd0)) + (pin "19" (uuid d2b4f502-1333-4cb6-a456-4bcdd408a242)) + (pin "2" (uuid 46459392-5e6d-4990-b9a2-f7c6ffedaf3a)) + (pin "20" (uuid 7df0cc85-012b-4d5d-a4c2-cdca9833a7dd)) + (pin "21" (uuid ea191d4c-6975-4bd4-9f01-bd3f2d791869)) + (pin "22" (uuid 26911dfe-de6f-433c-9dae-273aba0bff15)) + (pin "23" (uuid 48e0308e-7763-4dd8-a513-06a81b222f91)) + (pin "24" (uuid 1933a18e-0c6a-4a45-8bff-1aaafb2fb7fd)) + (pin "25" (uuid c536d0f2-6832-447e-960c-3b7aa99feeb1)) + (pin "26" (uuid fe42d64c-0a4e-4de8-8d3a-420b18659b04)) + (pin "27" (uuid 41f45f3a-7954-4dc7-a08e-253b7226d870)) + (pin "28" (uuid 2b695463-ec4c-4080-a29a-d408fb8de0cf)) + (pin "29" (uuid 5d5d1dfa-dbf9-4bb3-8af4-2588d86c4486)) + (pin "3" (uuid 74225e76-e8ba-45ac-b4de-b24d226529e2)) + (pin "30" (uuid 5333f5b9-57ae-400c-83f3-bdf54eb4bf7d)) + (pin "31" (uuid e3876da7-a951-4cbf-b97a-7aa3479d1249)) + (pin "32" (uuid fe2a99d4-b01e-4f47-bb3b-2be88ad23feb)) + (pin "4" (uuid 1528e1ba-c52b-46a5-bce5-deea58d8985a)) + (pin "5" (uuid f22f6b20-8724-490c-b44b-a00088cf1920)) + (pin "6" (uuid 40612519-28be-4216-823c-8d620c74de1e)) + (pin "7" (uuid b65c98f6-a215-4cb8-96bc-b797a5cd07fa)) + (pin "8" (uuid 3fdc7bb6-32e2-4c0a-995f-ec557c12f692)) + (pin "9" (uuid 36f7f778-0406-46f2-8b6f-69a19b29a9bf)) + ) + + (symbol (lib_id "power:GND") (at 50.8 62.23 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid 8fd057dd-85a3-4b7a-b589-5b9877391b0e) + (property "Reference" "#PWR?" (id 0) (at 50.8 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 50.8 67.31 0)) + (property "Footprint" "" (id 2) (at 50.8 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 50.8 62.23 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 367afd26-be8b-422a-ab8f-fbd169ddcc5a)) + ) + + (symbol (lib_id "power:+5V") (at 137.795 83.82 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid a2c91d06-3618-4eec-84ee-28c5b074b022) + (property "Reference" "#PWR?" (id 0) (at 137.795 87.63 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+5V" (id 1) (at 137.795 78.74 0)) + (property "Footprint" "" (id 2) (at 137.795 83.82 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 137.795 83.82 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ebc0415f-1693-4d57-8358-50a7a38b1fd6)) + ) + + (symbol (lib_id "power:+5V") (at 40.005 30.48 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid af3e7e9b-2033-44e8-a6bb-5fdca06a24c5) + (property "Reference" "#PWR?" (id 0) (at 40.005 34.29 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+5V" (id 1) (at 40.005 25.4 0)) + (property "Footprint" "" (id 2) (at 40.005 30.48 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 40.005 30.48 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d376c477-b400-4c8d-be11-f1eefcd4ff95)) + ) + + (symbol (lib_id "74xx:74LS157") (at 635.635 172.085 0) (unit 1) + (in_bom yes) (on_board yes) + (uuid af519c5d-9952-428d-b692-46f76c4a267d) + (property "Reference" "U?" (id 0) (at 637.6544 149.225 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "74LS157" (id 1) (at 637.6544 151.765 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (id 2) (at 635.635 172.085 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS157" (id 3) (at 635.635 172.085 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e437670e-6d18-4922-ac8f-1f1427b8f0d3)) + (pin "10" (uuid c90ca480-b9f9-4373-8eab-2a535527c02c)) + (pin "11" (uuid a3d83000-dc7b-4874-8158-538de3754c57)) + (pin "12" (uuid c917c664-bb0c-446a-8c46-4fd3e5ab23ff)) + (pin "13" (uuid 7cfb811b-a009-4cc6-b43f-833cec449faa)) + (pin "14" (uuid 89b13884-cc12-40d3-abdd-1a3bc71812dd)) + (pin "15" (uuid 762e53c7-8803-4745-a92b-38fe5ac12960)) + (pin "16" (uuid 307db6c1-e325-4a5c-b3fe-784bd3030dcf)) + (pin "2" (uuid 83485fd2-a3c8-41b0-8f13-51bf319b131b)) + (pin "3" (uuid 438fad12-ccfa-4696-9373-8af54a28b0e8)) + (pin "4" (uuid 3dcb588a-7ab3-42ff-b15b-81216a92f34c)) + (pin "5" (uuid 06d56029-c268-415d-bc15-322ae67002fd)) + (pin "6" (uuid 00285d37-d374-4617-8b2d-1d5faaaa4265)) + (pin "7" (uuid 5320ba81-4867-40bd-a799-c5aa3bc7c694)) + (pin "8" (uuid d6842322-0dc7-4669-b4d7-d5c0213978c8)) + (pin "9" (uuid 6f315f74-4898-473b-af00-a3f57b398b67)) + ) + + (symbol (lib_id "power:GND") (at 137.795 99.06 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid b0c4d8dd-fe76-460d-955a-8f5a044bf0af) + (property "Reference" "#PWR?" (id 0) (at 137.795 105.41 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 137.795 104.14 0)) + (property "Footprint" "" (id 2) (at 137.795 99.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 137.795 99.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid cd8c5905-6e15-4dcd-bd11-449fcd2b6277)) + ) + + (symbol (lib_id "power:+5V") (at 472.44 27.94 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid bce4a6fa-0360-4931-a29b-badf9057c26e) + (property "Reference" "#PWR?" (id 0) (at 472.44 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+5V" (id 1) (at 472.44 22.225 0)) + (property "Footprint" "" (id 2) (at 472.44 27.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 472.44 27.94 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 89a65e04-0a77-43cb-850c-a2f069ea9fd0)) + ) + + (symbol (lib_id "Device:Crystal") (at 81.28 69.85 90) (mirror x) (unit 1) + (in_bom yes) (on_board yes) + (uuid c9f05bda-27aa-45f5-bbb0-43bbd466a33b) + (property "Reference" "Y?" (id 0) (at 85.09 69.85 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "24MHz" (id 1) (at 82.55 73.025 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (id 2) (at 81.28 69.85 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 81.28 69.85 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid cf5b3a06-9528-42e4-9861-f0ec827c0ab5)) + (pin "2" (uuid 7ff684fb-0f57-4268-90ca-eb7a837149a2)) + ) + + (symbol (lib_id "Device:C_Small") (at 46.355 35.56 0) (unit 1) + (in_bom yes) (on_board yes) + (uuid d3bff59c-3f07-44b7-8e46-15145da7dc0c) + (property "Reference" "C?" (id 0) (at 47.625 33.02 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "100nF" (id 1) (at 46.99 39.37 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mm" (id 2) (at 46.355 35.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 46.355 35.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 3b864285-40c3-4142-a97e-623c082c887b)) + (pin "2" (uuid 772c8d05-277f-47fb-8366-eef07bca8052)) + ) + + (symbol (lib_id "power:GND") (at 472.44 93.98 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid e7301aa0-4de1-4447-8540-628e5fa2c2d1) + (property "Reference" "#PWR?" (id 0) (at 472.44 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 472.44 98.425 0)) + (property "Footprint" "" (id 2) (at 472.44 93.98 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 472.44 93.98 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid ce98ed63-d3f4-4607-875c-ba80aaa7aa64)) + ) + + (symbol (lib_id "Device:R") (at 351.155 71.755 90) (unit 1) + (in_bom yes) (on_board yes) + (uuid e9376621-5bcf-4751-b4bf-8913aa82106d) + (property "Reference" "R?" (id 0) (at 351.155 69.85 90)) + (property "Value" "4.7K" (id 1) (at 351.155 71.755 90)) + (property "Footprint" "" (id 2) (at 351.155 73.533 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (id 3) (at 351.155 71.755 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid da1f741d-bfc0-4763-a78c-de27e4cd5381)) (pin "2" (uuid 5ba85a75-27e4-4ec0-8419-c8abdb6e465d)) ) - (symbol (lib_id "power:+5V") (at 320.675 60.96 270) (unit 1) - (in_bom yes) (on_board yes) (fields_autoplaced) - (uuid f58e3362-e163-43b1-82f5-07057c81b288) - (property "Reference" "#PWR?" (id 0) (at 316.865 60.96 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+5V" (id 1) (at 323.85 60.9599 90) + (symbol (lib_id "74xx:74LS157") (at 635.635 117.475 0) (unit 1) + (in_bom yes) (on_board yes) + (uuid f4441571-7278-4367-852d-9d93d3c67fed) + (property "Reference" "U?" (id 0) (at 637.6544 94.615 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "" (id 2) (at 320.675 60.96 0) + (property "Value" "74LS157" (id 1) (at 637.6544 97.155 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (id 2) (at 635.635 117.475 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "" (id 3) (at 320.675 60.96 0) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS157" (id 3) (at 635.635 117.475 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 56f16717-f603-42d3-809a-ac3861f5b1dc)) + (pin "10" (uuid 05555626-fcf6-4165-9467-706b626b90ed)) + (pin "11" (uuid 9d76de12-7c8a-4fe9-be74-b7b7d7c8a5b8)) + (pin "12" (uuid ad553aaa-51cb-44a5-b2c2-f2c456a446ed)) + (pin "13" (uuid 4659273d-d3e6-44f8-b2fa-e445cf828bf4)) + (pin "14" (uuid 5dc91de2-a7a6-419a-8d78-dd9ff4296d1a)) + (pin "15" (uuid 7e5f1de1-52e8-4e90-b0e4-67c16a4896ae)) + (pin "16" (uuid 8012b4bd-fcd3-4ffa-8884-555bb851f54a)) + (pin "2" (uuid 205e5900-89d1-4f3b-8de0-94dc820cf3c5)) + (pin "3" (uuid cc301900-a44b-4664-99e4-3303716c1981)) + (pin "4" (uuid c7c109e5-d490-4122-828d-fe6a1e770ebb)) + (pin "5" (uuid 1c9715da-3300-46d2-849e-3514e2eb93d5)) + (pin "6" (uuid cea399f7-f137-470b-8b8e-3ed48cf6a87d)) + (pin "7" (uuid 35628fc9-8251-4fb1-977b-04501bc449a4)) + (pin "8" (uuid 56cc0aab-bb94-4b2d-9bca-d02fb0a3e6c9)) + (pin "9" (uuid f585ecef-9ad8-479c-8d2c-e8cc38e588c6)) + ) + + (symbol (lib_id "power:+5V") (at 354.965 71.755 270) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid f58e3362-e163-43b1-82f5-07057c81b288) + (property "Reference" "#PWR?" (id 0) (at 351.155 71.755 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+5V" (id 1) (at 358.14 71.7549 90) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (id 2) (at 354.965 71.755 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 354.965 71.755 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 8c304425-138b-4ac2-b8f8-d1a3b3375cb5)) ) + (symbol (lib_id "power:GND") (at 93.98 68.58 0) (unit 1) + (in_bom yes) (on_board yes) (fields_autoplaced) + (uuid ff6d825c-4531-44cb-b3bd-248babeabddf) + (property "Reference" "#PWR?" (id 0) (at 93.98 74.93 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (id 1) (at 93.98 73.66 0)) + (property "Footprint" "" (id 2) (at 93.98 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (id 3) (at 93.98 68.58 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e2684355-3986-42c8-b21b-5b6d340cc1e7)) + ) + (sheet_instances (path "/" (page "1")) ) (symbol_instances + (path "/00abf296-d051-417e-9b7a-30a3971d4903" + (reference "#PWR?") (unit 1) (value "+5V") (footprint "") + ) (path "/10c3c2d9-42cd-41c3-9e8e-d7ec381abaec" (reference "#PWR?") (unit 1) (value "+5V") (footprint "") ) + (path "/1842fcea-8ee6-4290-a7bd-373260b8677a" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) (path "/395e635a-2103-4087-8116-ba9dd68ecc15" (reference "#PWR?") (unit 1) (value "GND") (footprint "") ) + (path "/4009a862-0e37-4549-a93f-06ce1006a5f4" + (reference "#PWR?") (unit 1) (value "+5V") (footprint "") + ) + (path "/51c37ad9-917f-49f1-bef8-d1a178a14e24" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) (path "/693ab812-87a4-425a-9d21-aec3576ba7b1" (reference "#PWR?") (unit 1) (value "GND") (footprint "") ) + (path "/8aafc401-ffae-448b-9e3c-dcbafa8ee4ae" + (reference "#PWR?") (unit 1) (value "+5V") (footprint "") + ) + (path "/8fd057dd-85a3-4b7a-b589-5b9877391b0e" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) + (path "/a2c91d06-3618-4eec-84ee-28c5b074b022" + (reference "#PWR?") (unit 1) (value "+5V") (footprint "") + ) + (path "/af3e7e9b-2033-44e8-a6bb-5fdca06a24c5" + (reference "#PWR?") (unit 1) (value "+5V") (footprint "") + ) + (path "/b0c4d8dd-fe76-460d-955a-8f5a044bf0af" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) + (path "/bce4a6fa-0360-4931-a29b-badf9057c26e" + (reference "#PWR?") (unit 1) (value "+5V") (footprint "") + ) + (path "/e7301aa0-4de1-4447-8540-628e5fa2c2d1" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) (path "/f58e3362-e163-43b1-82f5-07057c81b288" (reference "#PWR?") (unit 1) (value "+5V") (footprint "") ) + (path "/ff6d825c-4531-44cb-b3bd-248babeabddf" + (reference "#PWR?") (unit 1) (value "GND") (footprint "") + ) + (path "/0212d326-ea69-42d3-8d15-ca402f44435a" + (reference "C?") (unit 1) (value "100nF") (footprint "Capacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mm") + ) + (path "/d3bff59c-3f07-44b7-8e46-15145da7dc0c" + (reference "C?") (unit 1) (value "100nF") (footprint "Capacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mm") + ) + (path "/107b0a24-6e9b-4df7-bad8-8cd51fc1f8aa" + (reference "R?") (unit 1) (value "4.7k") (footprint "Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P2.54mm_Vertical") + ) (path "/e9376621-5bcf-4751-b4bf-8913aa82106d" (reference "R?") (unit 1) (value "4.7K") (footprint "") ) + (path "/34f7490a-f55b-4e20-8acf-1022ef68f4e4" + (reference "SW?") (unit 1) (value "SW_SPDT") (footprint "digikey-footprints:Toggle_Switch_100SP1T2B4M6QE") + ) (path "/29fce808-6d36-40d4-9602-9f4120d8ea77" (reference "U?") (unit 1) (value "8088") (footprint "Package_DIP:DIP-40_W15.24mm") ) @@ -3209,6 +5793,15 @@ (path "/408e23ac-92c0-42b0-943c-19fe687ae4ac" (reference "U?") (unit 1) (value "8284") (footprint "Package_DIP:DIP-18_W7.62mm") ) + (path "/5e7e96e6-d6dd-4e14-8c6f-4e60259d1a8a" + (reference "U?") (unit 1) (value "IS61C5128AS-25QLI") (footprint "Package_SO:SSOP-32_11.305x20.495mm_P1.27mm") + ) + (path "/6c0370a5-5bd4-40b4-bc3e-b7eec7cca629" + (reference "U?") (unit 1) (value "74LS04") (footprint "") + ) + (path "/72145143-3443-4156-b66a-6ff25a6dbf3c" + (reference "U?") (unit 1) (value "74LS157") (footprint "") + ) (path "/744ddd60-1a17-4afc-9566-f772021ca53f" (reference "U?") (unit 1) (value "8288") (footprint "Package_DIP:DIP-20_W7.62mm") ) @@ -3218,5 +5811,17 @@ (path "/888d3aca-9be6-49a3-bde9-3b6c4466fb0b" (reference "U?") (unit 1) (value "74HCT573") (footprint "") ) + (path "/8bf4a162-f18e-412e-afe7-53bb0a7791c9" + (reference "U?") (unit 1) (value "IS61C5128AS-25QLI") (footprint "Package_SO:SSOP-32_11.305x20.495mm_P1.27mm") + ) + (path "/af519c5d-9952-428d-b692-46f76c4a267d" + (reference "U?") (unit 1) (value "74LS157") (footprint "") + ) + (path "/f4441571-7278-4367-852d-9d93d3c67fed" + (reference "U?") (unit 1) (value "74LS157") (footprint "") + ) + (path "/c9f05bda-27aa-45f5-bbb0-43bbd466a33b" + (reference "Y?") (unit 1) (value "24MHz") (footprint "") + ) ) )