From 265342e7f754e86c74f6fb82f173c9b63667eb80 Mon Sep 17 00:00:00 2001 From: Dennis Gunia Date: Tue, 20 Dec 2022 19:29:01 +0100 Subject: [PATCH] added i2c controller tests --- .../monitor_v2/include/addresses.s | 12 +- OperatingSystem/monitor_v2/include/beep.s | 37 + OperatingSystem/monitor_v2/include/console.s | 2 +- OperatingSystem/monitor_v2/main.asm | 13 +- OperatingSystem/monitor_v2/zout/main.bin | Bin 4277 -> 4332 bytes OperatingSystem/monitor_v2/zout/main.hex | 535 +-- OperatingSystem/monitor_v2/zout/main.lst | 3820 +++++++++-------- OperatingSystem/monitor_v2/zout/symbols.s | 482 +-- OperatingSystem/software/include/regdump.s | 34 + OperatingSystem/software/test.asm | 327 +- OperatingSystem/software/zout/test.bin | Bin 11 -> 300 bytes OperatingSystem/software/zout/test.hex | 20 +- OperatingSystem/software/zout/test.lst | 1365 +++--- OperatingSystem/software/zout/test.mon | 20 +- .../Z80-GPU-2022-12-19_222518.zip | Bin 0 -> 118439 bytes .../Z80-GPU-2022-12-20_132259.zip | Bin 0 -> 118439 bytes .../Z80-X86CPU-2022-12-20_132957.zip | Bin 0 -> 28443 bytes .../Z80-X86CPU-2022-12-20_133540.zip | Bin 0 -> 29305 bytes .../Z80-X86CPU-2022-12-20_145735.zip | Bin 0 -> 38587 bytes .../Z80-X86CPU-2022-12-20_192619.zip | Bin 0 -> 45069 bytes Schematics/Z80-X86CPU/Z80-X86CPU.kicad_sch | 3507 +++++++++++++-- 21 files changed, 6803 insertions(+), 3371 deletions(-) create mode 100644 OperatingSystem/monitor_v2/include/beep.s create mode 100644 OperatingSystem/software/include/regdump.s create mode 100644 Schematics/Z80-GPU/Z80-GPU-backups/Z80-GPU-2022-12-19_222518.zip create mode 100644 Schematics/Z80-GPU/Z80-GPU-backups/Z80-GPU-2022-12-20_132259.zip create mode 100644 Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_132957.zip create mode 100644 Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_133540.zip create mode 100644 Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_145735.zip create mode 100644 Schematics/Z80-X86CPU/Z80-X86CPU-backups/Z80-X86CPU-2022-12-20_192619.zip 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 19819cefeb70cdf339a2ff186ca939015c66891f..37d53df01c5fe9f84c4f11899e9e7b6bd6189e19 100644 GIT binary patch literal 4332 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 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 ec3955fc3532317235c89accd3acfae2c688cacf..7249af456b8ecb53c114d7b686f765bd7bb20e26 100644 GIT binary patch literal 300 zcmcCJfBBo;S0HA%{DqN0;Ow^zc1)MQFfcIKHC+CDR%{~>*@a&I1fmvz1%L{{yn|rg z;h7AK42(csf(!@j7=+j^*fE|>+8`)!0LWrLJ7EJ*{^-}UFE&&_G#$PC`J+G2?a!y{ z6@HygSKyQq=G9=i{7K@i-C?kC2Txu-`nBR4BUm+1n;nXVcm)~WN?Q%K+no_5#x3gjIcp#Q<(B+vx+10Zu57$iOe0GI%zb^rhX literal 11 ScmcCxVPkDD5@V!mmIB@Y 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 0000000000000000000000000000000000000000..a39463b99b00ee36c0468aff55ff32703dee2005 GIT binary patch literal 118439 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

|y3ku;tk*DAti&8252OyV5&B_w? z0tXs!*9C|UbPFd`7*&eYGjPRUk6kLDO!p%;^4i6O97viC<>YQ=`4M;pC9vNVK`mD4r28q9zv1_Ki zsh3#%r)038tq|kV)~XE-s9J#gX#mmcg0_@qo68>CK{za03*zji6w{qfrW>QFbU&ptQRa|ymzL?d-IR-Ah=2r-n_&YEUjE@R*6R z&e10j`GURfKbp4whw(rE*v4=F`Iq1Q`LE;O|N6&2|7rYn{N9v%Gl?`6L z8Er1Fu=NL^K}R$OyF@UhLVXuN1A0Ub5M1YKPDX#shyMA$@2Y9vZ!2futMqUR`gO~g zf4wh;;gjk6*EuvieZLZ?Z(Xh8Q!jQ6-STekO~q@>-c5nId#+duw>Lt5MaBtccV`T z0{rTW?P6e$W%hxfM_KVeRS?Ji8DU*$=p28Lsi(^+M7?V3E#*K*=Ny92jKPU00oWlP zmhp*O&__f)ofV5d=jrM4H=*gLeZwbM`mep#{kc}K)~8|=uriGvJax50=EO|xeHa_# zN0V4Lc`14Az;raUGv93Dh|`H6uxfg|*Q9g>IQFfwTuJ@B5INyi-K>Y~e6KeOni=&& zKi)faDY@^!ynZ@ftUu=F`)-L&-Z!6}I=y}sclzzzZ7qPOId~kB?dUv-LC$JEDeT~0 zY|9PLagoP^Xqq;u!f`|p+(>~<&QuoAo0*$l+4V-5wi$3+2|Oxjn*cg8y5wvqCN%O+ z2l{sSQ^m&4ihY}O&YrJ6E5m5{&bK+HV znrn*~UnjUO))!eR44|FWY%Azu8JqQT*YcvBUbGcu(hOz@J7431$UEbDqEu6(DTklj z3#m5Nt?@)bnafUR>`kkwHPK-|DBJ1X%tNx;+E4;WCY=r}MHWQfPE!lz^k?UH?LxnS z+`!I_k0Xk8W!3iCeGPcx^erQlq-tvI1L-kiBjX_fY5K>cTBne+j#IV4>H)r{D%oR4 zS~?6_k?5Z)dtL?m7@$mc-&}SV@87gNeXbkuSxBwc>9EyE5)ZjJWgV#)W~JcO4_S|6 zA@%i65lOQBJfz+W_T4`HI?Qq)q`q6DpBhu&3HF_NKlecuuWrYV2OIKyWIX7eGE}3D zM$urd)jtlZVMI3vUc5<;>zgjLIbz8(>SBY_+APSC76hd35a0&;#M9PdUWb~Yg+T?i zx-&>RBG^|S2h}G8`xb%$p9}WweAf>N_T|U%_zA(j`8XawA=sA}LG=m2zNH8H=YoB! zp!$Sh->Opigkayo1N{lXzK_PaABeF86E0YCWG1lSAJk&Oei_kY#hbxn^K)cm{-PDW zhU-1WDW9Bf?hli`-xG!TKN$&nFU4~GLh+*0v5}ztT6{t5JWGh>yj#8RkTSFS2vn0C z_09n>z+Mq$$3%pZsU_$|&1qzCl8je9MpoZhqrooU2KYxo&>S%>bXY2OP1yQXg(U$X z8hiU0wg**^_37Ta+8yYOJNWQTMZl4= z2hlxB)2wAPFRi`<&Ut3aL9^CHRVYsI9)K!DIAXw2k!fjUVvM*Ji_3K`szM1*0FO1$ zhYwGc9sHSHq1a{&^^i*Ubz#&c13S%zhRh|~Ap>@w zNv!SAdTS<@cOU2II6Y`nX~Z9Q71zhaJ{LwT(2hC$cprK;|j3^O|sm2ESlf_6pI_!GASN6?) z@d?`NwWzcBSZVoFBaG{ke&sR6i5I(z>DD(6mGdZ=9a?R2UUg2o47NN?Iq!N1yu0}1ueWuiiQxK; z!X?>*hpz9J*&ZCE_-YWIZ; zS4RkwA(4~I-5{;GMqBnWX^JX-9NKGQ@Ywt}!R_WBZe00n+W{la2t*@^4WWR(*meWJ z6U;U8WYGJgqp()e#oFtAf9|m>Nqg++HwF`iv;)0n~Q`)ssML;($}8CP=T)Gc$sil zane_JjwregpAVH6yu?cqdWv2og->g_{4#gBTk-|_?3=iYi^l@nel>nJ$(Q@?g7a?Y zKCj186HD({XiD?usA?HbMOU2o0^U|uE(@S2AlwD?dbrKpx`7Fhqs8L0Xxn6OT5#LD zI&Sh&_`o1h4^~xjJV1#OIV#&~UvPZyGOe?_l4f{(e~0gS&D76 zG4-x^4zFkn7By}pm<7l8VZ;gEtAMa+nPeJ;Vj`z7TN+q`vGbq3_0K1KLaHbb38bT( zvq}ym+G!4@nh4IlP&F^v^yG5Et_wnkb&!%YyK=x(CHw5+&dKan1u1NZHiNK~8e?4) z@TOH}kic{PvMt&R49^8J*lUk$OhDYiW1+=woeo*FMQo+V9N%OgM@W;0l9Bf6iQcFc zd%;QpOX)o?&M1qv({ZkF#){zRrbEKEi3M_t-Q2U0Bg&&eU$UhwC#d4Ncs5BK^fQVQ z%6Gf*pt+gYWsaEO{Kvyx59S2E-)jgL|J88zdM$sk2hr@iCH+cdaN@=82L_7+p2`et z!oZ9;nKxftJ8}!%V#^-EvbR>=bcv@l$uUw~cDYD75mX74uI)U8b>+f*#ikrHs91>~&80TuKD0E5fpE_VZSRg;dKEtq4bEQN6Kj5TeLq^4|+t$AfFv zr3bc1W4lqpsBu76^OVe)E_f(49tD)%2=deQ#=i8>$ZJ6im$$3%lPXoa<^N*Gh4U`9 zn~jMEyxH+_XUaKK%8J7T;1hz4K09aaZ2amq3^rwNo!}lh(Bm8Qse5pX zL^g~G#RgF#TV)41G>wR8uIWsY^7Q+1-L3Hhc?WcJD6QFNAMx%Z;{sO891hp)Zr_e~ zE1V78O3PK5#LQ>d$$=GP4^b4nk5Wa3IJLu@jF8NMm=^D=JDRxjvJq-V-Z*jkBqMo$QoIT>P>dU@~vS z&TKIWz%dy;sR>8z2}AY~!Z2foy=VMQ;;)v9U6EB}QPImNDsTP%Rsb)CuWjdbYp?q- zv({HA=+?4+k@%~5HbsVp704{)KgPKx21zVm4dOAtk->5(!a4w1?KQTh7mYwRP02n| zxixKyc@%TULdVfU?0^TwFIsMc#E6)t@z$_GrVfB3`r^!iuR5vU<>WEW^%W$;rbMwu zOGp$boH8h!qJy4MPqz^ENY-L=v)J6(A~{Ut1jdU{V6AC3*A~sX5y-Mo{&2=XeI(0i zE4*zIXbujv?|0wxHppO1)D-E~?CJ8=0c8)|GSI!QVqJChBP*;&eyQGHqRpFnwn=Yh zNe?yYcL8pr(s}MYZ`wxB+?)z;Q?uEaVdgQz)azZnYGofH$gdx_RE2nKxcb4F^?pJA zjtTOaH+z@Cp72avh&4UonHnDl4vAUQG7v-)AwlRo8f;HaY+@EEV~ zy4sieOahryV0ECJh;`n!$ARMsg4`Yljwc9mdHni6L68@({}Tjx}iYEy2Y6R*Df?OZR^d|^%eTI!V`+5u$s7qtN#e7MpnsW6Ph2b90ll@P! z9Z^|8sn$%l73myC6VBeBsl0yHT@F?w-!0EiCIqiv#GQUS_YFh{ z6}1CQ1=p!TEOhcImagX-VGR(v&BxI+I=m$mj1@xV*```>HAV!3W)_oAX@cK6Dx6vh*kwdVY^IEl18q96gg6({ceX?=RfD`F z&l6W3XOE5`6%e4T&H%CDaWqBj!%K-bO`=1-;ecPI{@s{y>pM@fl)kfZfNk+4JF+{U zdcsBUiynBFt>MYNc^rtvjS?JUHu#F+G(p9>BFP23Q}~I|#ofUCtsxsP82+nK!YO~B zI+c@f_n}C!QgP4w&WKyVqxd>Y87d~~$7RHs8WNx?U}Op$7}aeNO*3*%<}d*GB}Y5U zR1A{1b5Hfef<;^zLRB-J*QuyBYiHLw2p%)L&~^}Okg-yWXj+{0;0jvFq<{izwJM^hP9G9H|onJ!e@?5qcuH7)eytWZ?%z*!^q>;-uhU?*L2K2!Fjw@#J2 zs;r^JKiE4RW{E*Kr-DTf;b@QM^=3`DIRDjVn%9fDi+2YPgx;;{SC$dayxRSVPAV-S zLV+=|6UXMR3KF5B#D|Zy=vqD>k$BTS;c%as+J)|Dr~0RRZ2%i0uxjt+#WODf5#q)4 z)*Bx?qU^!FcDvbp@%D>5GjA757ZZ+6NxWaxuiR^AUhTdwP8`S)>qcGE>{$negizF| zZ6L~8UB*)ro!5a*>+;1QNNi=Gm1Hv zQTG8m;{I|Wj+~L=>l3epCnIf z4r^>1pZD~>*=s&toc(5kz8G_+@%Bi7pjx7e+OyGLc$#Lra$O{tfgj#p zoA>=rU!{ak+-cb(#Urou#_5rzW8Xh878fbTVwa*AnKjY8_A!-k2ZpR&MmYjwt zfF2&sasaL)z_~Kq26SYnq-5Tx|LJN6r&?Uzrk>aqnwyHFfScEz;$H3JcJ@^pr7#`n z78TAl@-|0Ml|D zGXO`$Vkj3WX z_uz{Uqm6f^x~Uf}w6*Kl=}RAkPljfRnIlj#u|%oQX!W9n7Hc442;yrcrlxXX@Bq4{ z1Y27~+Dr@j(1XP)S$@00c7{q{X8bl7@or{ueW5X8S~SJ8gjIOq(pYK;ph>JS4D7A6 z(gD-1>%?`@iH#7N^074*JYN#U3mrLAxP}KaI~2;NxR6CO#@Qr6Nt{H!gsJY z)MxqTL|@hUkN1X-JeuuF%Pg!Un1SG%hv3|9su_B>t>1_-5(T5_cmUlMdGA+P1Z*|X^&$VarZm)<=PI{ z_80F@zxH~EzIzlu8^pY>gggI+?zVBVy|OEja$)Rn-ZW0g3404O*FXo<1&WEI)xkHw zW){7AorumUDU*;_LU0;Cd4XaQbyu3tDsJ=4JfX}KvWzLZ){?Vz4@GWWgQjUmlTvmF z(vEnlNyX}kZznP9a*Xt zi%&V0s)voppTJJREKrOKqf+Bt%|xX&NkdhuovMkrDEcmYJK}4O?v`DJpiUw*Jg~?z z^aNJHd!LQN58d^V-d4$pw^(5{I{{ntg_*P92c=Sh$fEU&21!kmTk6nH?Wki+sMpyr zrFCf8QeApHMlmjli$wriV&+!rk!HkL_rMj{#1hsadx=gY zgz6rn7|9;6*+x7DdXaU5r;;<9pi2WT0sxxjF^bVC>Eh@f&#&kk4a{g3FbjgRP1U-7 zP#8Xki$_f6s9x4@QilIDWqd}30Up6_@C+tlaM5%^(uw-C6R$uiba_6IMy_|7%*Ca{ z!tmEmFJc=_rmZe-p_qsf1hqzO&xJMEJ&FuRr~_}(NhC1D6Tw?7FjGP zokt|+tK_4lw-iqnf)8mR0GVtbM+?^qUV1jvm&kztkl54*ZXq~tsx@N$j|;;ux+0$t zhF|C^J|PUh>f?Dr7=F=E`MEHB){n!*6TMvCxqeSBEdc(48J-uc|sUI zJ`Uth2*V#SZu7=%x`m+J7cki$<%Uz^*;#N^hksGk>9G? zvLz3!;;pcF@^&XF+xeazYSpeM?17@uhkLS&0QXP!-NDy#h!~(xPc<|j!^eiOd|=d^ zKShf;$DGntpNuD9wUC|Mbv8qjbsOQ2S1npnjRWxekM|#}*tFYk&2Yk3cD^5&v|Cv) zpX*~_E?czoEj`qrT~F9U-zgGp?tFNi?0d?I_KbzIoI{GJxXY#z#s>q`93WT9S68&m z8P-u*AJ~oBV0mK*0A8tUH(hPv<9tvn^V9gDu`Gnm`^Tp(tF$K<_o>YX8}v`c$k+Rv zhkOn>g~o1?QOFrN>rfJtQR0j)aFlZX==B~KbV|)9r{Y5X)O%ObSt&3?H`~L+|JEV0 z?c{&XSvj#Bx0sl^w3gK@QG3G4cHvoY14O>i>aqbMUtreR0Ff^>@oj*}@??l?o(z%Y z=@8jJ9U|waL*z?@1REf7elkSfK)Cz$SNAj~cSUJApJKWy9LYB8R+iwESuD>&-l7$D zH3ozIO?_VtjBNqWAZwYG82rZ45wqG@*2W*Ke=zU4-~uyxgHBiBz% zFhUoMMa(JLWSmNag9$@`rz`LxT2CVe*xvR_>?N&t_5cM{3`yh!kg`lz92gtoH_~LE z+0^@@67jgtFrsm(3WhmTHRzp6NQ#bUVVJcUe#_0&y2*ft zXCHh|Ya3hWokn;xdi6kJWs-yBBJ3=;)1Ce5eXC@e(Zlq@&=l6PR7mZRulYI|gLm<) z8wdI}7OnXo}%BFa{=GbI^QhxJ$jSUY%w;9(gZ>*+Ep4g}vEO2pY@eW`6W z2Y6CW2X1xoSfsu5xPQUpM09P%y9Qr`g+@nu8)qh!?W$O|-YcYSkm3 z5;;+;dN^vAV9U%fwzS7fj6T4&#_5y3D$&=>Il|tE0z~3dG`Yxqc35V2xZ2*&xwq=* z?px!@9X&hYPF6S>yRSj-gDw3BVB2d5dsq&QLmF^XsuaEfYYsHx$gGs3Cp&s}vg^6R zhEoaoGm{Ds(^a8uF(m%zYM8{)Fu3xhZCB2~q<8j*#*Y^gt>o%%KQ_CQxmIoP#TSgb zo$)8TPGkGg`k#lpdT6%piqanHS{QZEU>70WH7U_YB{h%L?3v7VSA^v3$?Ti6 z@u;pXqpIPKT4r8x!fKC(o1ry)zhnd+dt2P^KNg!Cugt5xrfZ8Zn@)P?8^njZdbF-x zOWMQg1DAX>js(J$69PIZhuIb52@sB@8oM-QXIT zn(uAUgY@66^xc#9J{@f4JFxleW&3HoS;w4r2Z^6OVh-UgdD*W+PQN^Va~l1Be;1)M zfw=XKzU+6)?yazuUG3u@La~voHNha9)YbCQ3!yh#LT4V)SLmO$XLULEWL!XI23!1a?8s(R~5bI0vkE@T8?^LpNPT zcI10t6@EEBy1Ej8d2pF8m7UCLOxHcAQHaF4OG+9^2#roAYO<4GDm&430H6%u`mPbU z*G}k%kHG4&e|i9BTw<#pQOGefR9m{QE7M!8Am-<&)REXLo-bfs?KF@9w$)g-Fv%f~ zPMpz74$A=iI6}ODb*0Ve8i~#whpF^HR>zQ(0isNfygz468~0c@CU071=D{_>R541# zI@M%`5=@YJ)}sC%*3I5Fa^uuNe3MD@>wE;16hr(N>lu!_$GXkA+4=aI9d~#FaTc)_ zXH^^!tLuGUn7bRp7{LGwaVju7w*l+P{n}wSy@*V) zx#n`tQ14(K;$3^Ehdxxk6*UzQm~p&u!Zum9#~5egEM3>LA(eM}7)EE>9U zRB=`_xsGUW3NF>dU%k`Anyl8-FGZffBHbEQb09Hr9yyF;ihsDn_g7An096`(v{3nH zQQ7*+T)*YGrBu=dHpJ3f!Zm>gWEbCd^X3ron=&e(y-y)O1nBpL)Wje&WHlxqH3oAv z&QPhK3(Yqd&K_^>wn&fe*jW#m>>ws{BqGZMb%pEdSXFRa?7cTSKV zDs|`Ul<88s(CZW;P+r6J4sX+bETH8?@>XLRHiRf=X}`OBI`#0T7g2(1N#(~nr*jHO zU#CGv$o#Qv{aV!S!)G@86RyxTqbG?a3l6a*zDGDf43=?our^jWec)uV{XzTkt@)I$ zorqYA*(nR4tLS}+h!3{(=!pGF!X8ElqgX4+D+KOvecBeXgI1VKD>8h5pMTJo&2PJT z{^IqUiqm`j?l0Ci|MS`Bzx$m3_Lspw{()j%_!VsiR9v!Zlezfn`L>yhBC8!+N35yw z^V^lax>cH6ow?WH&;I4FJm0r@CTi^MnPC?nF8-a|XkxY5s9Bjk3uUqdzbo8F&h^Wt zNjXIB7S$8BUxyfAH;<5u(*&$RFyxqs1uTOZLYSd+OQD*K_y=*+ zA#&Xi0|&tY8Z1U<@2v!-3taPbUZNSt$dxde@|cE<*%m=o_5R?UVbi%=0n9 z4#A)Gk-W;xjYM{N2kU|7bg;cU#Qys(@Wur@hZx=S&C`<48Foss(O->VW3UK@U|9~4 z+sf>~UrGwsTN+~F!DnVaQ%yOy*$y$3u*<-22G}Zc$SNP&3ZHD@5&~eAh1EL5A$grx z(lb>OplqMChs|KE(I~a_GOO5qinUd4fd`1*;XntF!$bg*C41Gf)B$Hybni!;FHRKU zcV1Qw1=XFeR8+1w^i}RdB7wF zl!5PR11D_@`PZ5;&g}~*)ke9!hS4}zqH`2U5@FqhX8XMW=??71A@(Y`2z<%WwgXG` z4x3%-OiH@wo?2-$?pyCxxj0>utyV6Om~p14@-(6hcA<q3jqBQ>y62CWQ-`C*~bG*p-9)O60~bDitT2f+>PsvQ-IH`QO;_FRXRtQ zW@Zw)A-8p(J?{%BH_A=$?2`^iN5mRFk;P^t)(VOxS!ICxKSXZI(U_LijLc3J=_+@Y z=1wLxbqb@`L*%xWI~g>sVM_zzW>u4}Wd7ugH-XhU#4jW`TWc0=Vg_wSfqibAv!TQA z9$~!=N5~}|Q-J2G()g@DD&rjTgG}2EA`e%5K16Pea0U^liWnXD2#{2k(atH^$z*V~ zJMEP_xlK1Xr|PQ_vKs=BdCty&+f52saQM`%NIqt#TM(f7!7^LUqfZO;?y4i4ox=!_ z@gdMGcNa3N?sO%GcLYSLOuo0)2kA9>@`qTCJOFY7u54qCC3cpUgQK!TZa!9chk1x6 zEIQ(^ccYA?!2-+3F)o~v5<)RC#yJo1NJUo`Ba>r0lPg`Es?5Gam1`{}x?B&jlm%8} zR(O7nu%ldnvZ##;RxI3t2V^`XbylqKk-w25gO4(B`o+O~m^yWWvxr6?v(Jdwt8VN~ z<={0tGDm21HAhQ)tjpaW63G@A4UUphmNU&f>1Imy9gz<7EX$039OC&)tJTc{q!JQ6 zA#8PJSq$uUHd%&u$E4266oGk2YGjs(PSUZ@?r_L)x>$mR$2dZ6jRIdNWu1966pR+Y z$Cg1D5^82rM)+_nhB7_x^eRxpzp4otj}&t{*KT3}UT=kxbTJjDS}Sl4H>BZ?1(W zj-9;E0!4|9%^Qr!l1}cbk$n$`1Lf8oq|@2dMbDnD41eS1Hr4WPuq)N~l$=VVc4{??N=S;f$4+$9Uo;u44 z2Cj>#2ow1c#_<>5Eq?%V2u{1gqs1pzXB=3ddO&FU#HF8&$Xtn!fkkK6lxi_ZnRY@# z5a1D0KW}q~OrP>=1m_39J_MqY+o`A+y=aE# zSb?s0_zs``!SFK$57&)<7Tj%|4Ws)MXX`i@Hf|(~hz7Idf9CURG^IdJ!p(lZ&<1R* zvtxztN8F&GRkWU9Yq1L*)C|@D^4xyLO`*s4&zge#jjMH1AhB#ELuLGqIbU@z+8HJ} zhX#96HjfXgM~M#Y4J4cwRT?;j5z4E#q2YOOKkFbxN-L0Smu*tu4mu)I|31 zs$n4L$cVkK68R%#$MOz37_v-vQ21syIg98(>6q6#SU#x#X#;Qq7K4lsDc99vixPas z?{O22%|VEo$O+8zNc^7XdxzmKGh=Q~;X<)@E6W)r%9VNd@7wtiHpvnk+~?==h7||u zzbMy^n&7Jt@ULQ-*rq!|PmOUPRMe1-qPpvrz=Hnh7%QI^PsC1FWQOU(V6N?%&#qJ$ zIG?}0CUq>y->m)}VQm)|t6JIC5I%R;x>zd7ua3Sgw~~X^E?^)P3dJnCuV6`o4`O!q z(pwin9zD{<_AUx5aymMExsdWPtS{fk8Qk_vA~Bxr`;Sc7ho z!lD~r&JZ1BX;e2BLiP}lwmzQDna2k$vXb|mV(<+jNkBX? zK)41xt8P}7&fUWR2xnNQF%M_9sPs%g8z(A=NfF=PZ;=ZT>Ndwiatx-FN8P!AYZ24P zE9d)0IF#Ht*b~6zebvD~`{5|_w4!8G9_k&lDF3`0OiZbo{UXrb(s9M>@j{97VhW1y zzI%+w&FV=k3tJ?!(`)nYpo$;bqhB0gbr0IoER!wHvgfgw3a9;b?rI`*)-@GYOGu|9 zNh0SHcP@@HoeANRo66RU#*;KiO5z!93}v&a(f~~>NZlmRM~fzh3%qTZ9d*yr!*f3| zOn%7Z#g9@1`0~i84bM2r?uw;$p3-5x!Qt8A{s{{7_09@4_2ipCjA|%uWlA}q2}ZkC z#&D;bL&w7}UKoU>b73ao>(+s2v(vORJof4+iS8C8x>G^8(YCZxHe1=tI`H-@QXo^y z(}np{`+@i0=W4L>=7kI-ci~Df?u^K=z}%&bhWM|dq1D_8llIYTZj!8Hz>At)>?8nU#=2=TbIRqzIM_YP4gsC zZ95}TE$(+fM#x!H*gg&MN5soE&F5+%+ex{PjqEa6#trg@#>70pCFdp_VHMvQybwlo z$HA3lLzom%XHDUSAuxu)3K;6WZCKJ$tO>bu#xa3y(W~0?2zMdKRcEnZ?i&*kgA77s zU~ejxqTu?~xGwIE>v5zWs(ZMa-H|lU<{dwv*TX-a7u@Uz0_jpbeX0O~AlqU@aA}j7 zH2Ekm&wz2H==Z`85R`5*c-Zv5<0*pi{8D}Rv{YqQ@~(GH&*gzrYwhm()B{uYn%-U` zjxx`zg8nOL8+=p{m#@c5*~-txr?zN~i!Z;JFniRG@b>DeYp~f?+;m#FeZ84+(PvQB zCF;zaz-uOl3RO^boU#qUqwf8%+n#!IT*JCsAzv2<+RhgyC$!SS*`-@?c^T@?O3Q^^ zlj+WCn;3b6F!GrV0-%}#meH+1Jmk8smGgyZwyIE}&>8RGmYuSzMx$R}Y1v!jt-9aK zM|sumI;`v82A5KJTED(Y9Lx9r3#O;m6kKknRO@JBH0^Zvk0}(Vb6n2(Cq6HQymydT z1G+%Ta*j%QL|{j*zV zjH^#W&CKv*vvv((Ht~Nrou}cx3Of&nC8sKB2%Cx|o@L^VDmarkp=#qBKi?0%hQ-jf zDG9kI!&~=i_#ml0oL!Pl@J#G%BU_*MvVtbcI3G2@CC0-9qh3dZ{3Bf6kd0eSt%#wS z2TdDH>Hay>o-duP9Wvx>IW{cWfa{r?c<7 zA=W%FktEMs+qn%L%zS%6mu2DY^trpTOLZ$*n8!33y}6XM`(42NoHQ}FfnDw~R!fRu zUF;VXs%7rZJfVPoi#W4gh^Yy;INGA#!Dt*r9UOmu@;!2c8r;#bXXZfJ-Rjvg8pIqQ z_9Vl5I&yFkQB|0O-1(o&$4sV1Ow1Pm0)Sug_`b8HB>Ziq;z|6=_IHwt<(U5; xNB=jDD@d~xCwR|%#igEtd{0RH+xW9{ssS(?$U*oZ!=;4XaB%gE+_!nQ&5v2eC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..665b890ea91bb01718288aea11b5979b32fb15ba GIT binary patch literal 28443 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6b6f72f1ee846237de0afaa88a041d1ba565a21f GIT binary patch literal 29305 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 T{MT7vKQq)%@S~37e{KCgEG_Rb literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2ade608947b35bfe107997225829d83ec2691d44 GIT binary patch literal 38587 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 a5l|Mk>Pm#5f3hU_+wc6neR|?QyZ->(L~LjP literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..72af8547f5c5ff0479e1462a427e1a4cffa50c36 GIT binary patch literal 45069 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 Q`R(g~`O5yP_CHtu1I#{^=l}o! literal 0 HcmV?d00001 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 "") + ) ) )

|y3ku;tk*DAti&8252OyV5&B_w? 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a39463b99b00ee36c0468aff55ff32703dee2005 GIT binary patch literal 118439 zcmZsC1yCHpvpyQ!2@VG&f#B|P5S$=MfZ*=#?h*)kxLa^{cM0z99PV<5JCFR{U+Pu8 ztJFNFU6&?W}=HD;O(m>@i-*_SW8~%6Uyj>c+tV~khRG2Nz4fTz5 z?FEjg6I!laBJUsj-c*gT9lk1LfOT8)H{GRJw2fX9DE^ zOaO8plgWaGfpJFoUng*|vR3Z?(Zh<}e)(Q*VmMkE=NWb&jgW<1frb+;vQC~>{hQI9 zYhyHH;_$Ci&$Qdb1;&smw{)hA8yZg%z=1!7v%d>c$+RaVNWnI^%0dW1#GsaOO4A9o zotgV+goH6vtn=4k;yjU=GCa|5H80jSW|d76e!_2a<6QtT3z`ZCVH|4Qin(8XLW*+V zO66%8X`rm4h3XaE8FLGhAj|CDg199Veo4YgHtfLR#mVW)4hj|#MEp?8+2NmVVPOMo z4Z$?ngdS|zwGNn?wxndNmX#~h1n^$)lP#xJoeq8PM$x_qWs@atyc!!Q2%&G1BB`NP zhV)-~sD)L+d)}W~RgIv=M>;ZYp(yC&eJP+;?9-+{Q({x>`vB-fu8!5C>(&V9LnsX; zR>jh){-uXCL~+5+gsxFp__Q{e`^)X}9S9rn ziL1HQ{Dt`X^A2vgIAc2SqE!ow-{3|-J=YLF8@r0>6Hozq`+P_y30-_h?0Df1P+Qbg zl9SRT?*-*$6q;#JCPYXo@_K#lTP4gSH$p=Vf(p=Jg<6fZVr5mLt^8SGm6e9NzD~yc z2u1i#%=L)&J<7GT?tX*yr&0q8j*uu;`VE%b`!-UPhlsQtl1Wk08rsCD#hUO%DpUL8 zMTlZImNLw+!VjI24{oHKXjO&E#KwB&M0iM(nA_t^F&t7DMx3sdKPOotOW?}e9h%+N zEJrNniaeDIc8?p#kQix`2#2l;JW{weUBCn1OXOBvZ(<{bEgY^1aD!;!+<@`-?RH7|_#O ze^R!o?pxzujj=dP#BdnU4mq(W<{_@P;_0y+EW+Ag)A$sgK)ITngYRCY9vp`_F{Nqb zRs%b#lyGe_N*OK+>W$~fLNGZ7Pg{?}P8{`IJKBIT8`niG<#O&}cTiyX311@4|3p3#dDGqb!@= zKG4K_s>&Xdi^$~zO%dDf?{68L>26cEM~5cWC+MPU(9h}CEBDsN18{j2l0!CdseTcP z6F$mZH%lvY`1IRyr4ChJFw_C;Yx+$RX3T%}94g;GR=2_YhQp0gBf|S~&pNx3{KDSZ zTp`?edH=M4ZMBFwxyIZ2l%V&6%)-d7AVj#DZ`@l1Dy&(n)wpe5=#W8iH7u)&?nNi}Aj4m;L&Hf&2ufPCw3(2u9WUGfM#4UdyMUCAR?p)o>X zzuF#mvN<-hoQx*u#-Dk=m%`0p5EVS@X>AWHadKN?{n#gP;x1t$CsaSS`<`=HEr=J*0g+7N4yyH)7>t*XhU9)+bq8q73{P4Qy0rhN((LO0_eqVz3~t`3Y7V3 zrk5Swn~jw!<TS1!O^Sl@6>=FH8VepD+K zLOCAJ@4j3K8QZJvmgh+`YF+YDE*q?Z{oARQ!kwn5=6eX>nGlkN~1 z(cD|EDnv4%f!>reZ+hmQM%5P1lV8J}JhisXuG4osu;lH~n7Ib5(7$2TEv)5@T7qvg z9ok;2i46MDT+x=)=(=uy+}~?DnpB!p`U>;^*XOv*Xce07{p6%RSQxC2sQ=6B+|khN zr2W|8!$LLloi7ma3m%)kyYk$z&(vSCkXfdsOv7T^n%hhv&m2STPd2qf!XH;+qYNLp z_WbwyXlhYmU~$7g<6Ge9k?MzA;UXNBsxWYLjwU35pRO63?#}q1I3LHr({tBLyL}Nj zl61yTmrJ%ja)gJ&Yg#&EKLR>s&e!%|FIZ}qY=wOU!#QkHl600N#VbhkRV>iIH$&Hv z;+%db*1k*to3IWoZkAL}YG3v*IbP2m7H(fIo=ALxbgzJ;!ZTY*x*fAySQ9DHS>2E0 z%CGh-1AK_wHg#BEzF;0Yi31xW9wmyHU8Tf^H>x2e*vO-EyuwG-=k z=@ruw(ph7|j~rf%dbAK`R}M?3(#439pFi&Ao-!co@s6lGc1vFF_VAGL7t?^R9Bbb9 zPnUhVHcj)otM^iEVr(^1*%wV7Zu+{x$J0#q6fzYyXtW@Owc&YVr1hRmi z)W|5Qy}$YOiR<~{a#y7-IQ(hz-jxMB-tls|LhS3gZS%wTyZZ4Swe<4bQV1!wMAO}f z-S&8E_^aJ6bA=ec7~8W!e;Ve<$;I|q2#9Avh(-lX=>@`^l>zQbfSnEpc07=O=saa9 zrfu6PCph4q5_pL6a(RpaFi-dj0b8XH>e!4g=qblFR{fl0y?BRSFo~En$ zd}~`_TfzLAYSMXs&$#|HTO5<73(QlOTk;m{^au3r@)dn$*Nv&a?ZM5QczxNrpe}E_ zyZ^m%l2~h(gvHz~#$fjtf!PRSN?2Qqwm8e76|7_bV}7eWHnHR^cK>ios;R{)RJ|33 z1g(l=%=hu3_Vl9jWgK)awEVechV;Da#qQp*#RKV8jhePLI3}?+WexN37Tie`nR){M zxOa52=3FSB*z|}fmCa$%Aoi*OlI&OrAdIQ~8KyrtXSP%J&Ve1ho-8tTK}5)_xzB8) zwcU{tvMJ!z=&Xs@u~JKd+(ug==6Bv8uj+qJLjv!AE9-@Qv8LQhf3Y?@^=)S@iK@$W zroXgnOt{Ol)ZGOZ9ZJ*3HL_HkSl*T8%R$nV;ntV7@(G{^kz%>i;rEJbJ}(!VSrL8R zy}z6)D&)Q$3p2x1JDUpNtB0D~IB&u%=5lS$78Ewu3&HDw8U&R{Gxz4_vHXOVrxmST z_Lgmt_onJBECOfBCKq9wq~aFaPvnVjC(DJFt%*!+D1LKJCP??b_bO|>g9`p>Jg!L8 z|FXo6&Xpg|nu=LPRoSvodfVuKdkslBtTxgcdLrN zyXNGa(KFV^n<3U)%tPk0589B(Ahwdc=i&s{^INtpz~a27;XmyvRloJf>4^jkZDU+~ z?cCDyRCdO5Y7$AhJ-TAYp)PhZOl4Rkf!aC!3?n|TeeR2QXQhhU1r%+Cw60&%^s$=2 zA-Zw6#=6)Q+#Pa6N>%MC)M+}VgTSeJgTykkH$so+UW?fVhRoVaW82YH{QsDOU8#hNF5$O-?hA`os*Vh}^_ z6@bJCT0*|hRN~^>YY&ip_CI4f5N@ibaBXXRe}f>%%&0{3*=e-enx*s3j$#`9xKj8t zmU0d1s$S!xJH!RknPyzk&FY7tAFxx0zui(GtX@_V}Cqw|rAlWnHge*WmN??W# zFCMSgYZ^T+i)b%Ye_g`MAelDU{ako|Ei~ll6Ho)FAU;^D{3wM9=c^{S^6uo^Peng&5Agx#DnNsFARBEZqXbEE<=n z_mcQpZ1(f;2Oa`u*Q(=rCJ;l~XJBMV?OkgL!YsaH+|=`Gaa15t#Ea+awGZYi7DCoR zjOo#YsEx$zoNV2LM<5lNp*Lcq zS;`c^)%PyK%}pm^vH-5MSFFRNCBWmC`BE|Ci;49P@B1TH`+xBN$d$E$4;MFHHtOlw=td@nfXuSRvd$A*>wi~sr`seMtc(?|+%OUCpXHq4W zY@e`$<;KV*a!=cG7pUa#@Qt*0`Sp=t$Pix76w? zfnApu$}_dq9q)XG-digk(uuWO(j!q^uEAI~FF~s217GhRT~%M5Ex6klLXq8K*$Nsj zFR?;oVw=+Dt2I|v7PeQ`6^0jG%r|Zg1ozs%B#^SjQTYw+_ur(Yc;x{kapD%n~_yW zx7I%179ZNqJ17QIbs}^Q59LR`?LiHk7Pb$|M<6sul~TEx>s{z)>aQM7g?oo%BVBvb zERtfG>rLqOOu3|A6>T+wH4~?@3k9tX$%hn+Od(n8xEDd5?sPq5E2c>VHrl zl-0cG8HL{y5ZWFptF`4u3ce=*hRx|_o&Eegx9hb1eHT{#_1z+Ai8F2g^TbL>Ywh!i zIOM$Dh59b!B+#QoG`Z%TKJyN3fUjK1p*SRKkSPQCC3GVT`NgQjmwx$fUWhm3OWo*1eNP+ftM&1<7!!t9 z+GGkL@s;&#wr=lrR_aCi0e38`pLQk@`7A`}w1xR*;^#u2aC1w=IZNdt>~XVBhx?U7 zMMZ#RgT|~%b9#8fNV5XP&QPGBd-Sd*zk4(-*2QO`!2v9CRS+3KHFRK-$^p+XbK2Qx z7j3EntLwa4C%W8C0c!x@aJnuX%Bky1^~;m3E%Dj;Z+=>h|uZv_06)>ceDYz z<{Ns>4T9d@rryCo;}|3cRkuu{mw%Iodlq58Ah7$ugy|Nhm-6>z{hSWp)q1m9&K+%- zZbv>|AMpFrcFtW0)yVr20l*)%Eg5cuth&E}2@HaYA75XPC_rOEAB`)N=TthmABMPe zGS%i4ceMtT#`}b;9hk4{Mw(}VDtrs47`|V2wFr|k)Kl7@qM0*wGl3Sy3jj|?mpN^( zcdEb;5O6lTVwg+&=&bC4?&&qeZQ(h2>}^eQlXV%0p;F-+(}{n_ecU=}`%}$d%GJ0Z zT0LE1RH)s2&jx&{ShXa%_~W|EYoW26@KndZ1Kb+`Cp^~g3PUQ=*$cn6;}vSVr-R%d z$^uKMxpvv|T1c~aPluOcPKHtM1)SBPyc$}|Nk?@oJiw*E^O3{jvg5N6y6xtp4BC$o;DRc+Gr1iD*bZ!M zPFd5+c)l}idEore5)Yirx6F+Fph2}$pyhWDxT*w%g`Ff;IAa~tw|hYP3a*Zp>B&*} zR-|ncC(ekrr$})o-rvR`{sDYhoekE~|7dgS4V@6iZJepbx}DZlsZK^S^rxsOR9980 zY28(?3@~Og{6b~&VKHD$xLEv{Hh12&r99;P=x}YeW4`q%XDgz6p^zOiSgGEU{xoL$^#{wR3w^*x} z12ONnAKZrGT|B+@?Q!wmYAz4ornm7n3`xI%Kk?>p$;qR%{xGdSYGROQ^g%s2DaK@c zXY$iV-}S;L>!Un>Jd65fdRYsHy5X?8b7_Naz!WV9Tgwf9|v1sM*rLo%D)}8R?i>=2#1$ zsIWXMJSU%Jaj)bFDZjU2Q04OCM*@c)QJ%CifsIZeuqQQr1?GWW=M7$^8?=gnseynB z3RkU8705Q`T0?+o-mci(sLgRBst*~E1pzFukzoMFd;s{q20tyBEyiUMU#+iXFn={( zbP_zV?>PKPP!$+KA;E73@=*BIsQ+S7r=cH5A#jro9f29mz2;5hRB|)+M28Xbaa3L; z&p4uh@!;$=@Kk@4M@P$Dsm~QDi^>2fe3v{w;oq@9GT_w!&8lB)>ijjc_!06G<91bY zCYC?GgaaDrckc4s-kY)F7pGt3+Ipw#|AItxvT?nRA(F4>OX%Uw+p&6!BVizn#X2G2 zRO8bA;c7}e`PwkPbR3?#;Zu#|n1w4|BXmbXRe4$VkxsRO+2#?CUi z^W|W}-37XpS>}y2?Rv8*_#N$cL_BX)RXmRXY=f>%Ge4&cu_|xcD>0bMt zlJT)yn7>AXTXfV{Uk3$(n_h(|qykPYlHCShh_F0afF>L#!YPJb6vQBp3)F}?q zaw^C>3iU-=$}p2Ux~fAUShIgB`xcejO8B8~&}c0VOlN?6%pk;g1U=7npUJC+7h-go zTpGDv6eX1B?OF8qi2td2Y5cuBkIMkbqJ49YTFSj=gxvT<#M{HVGSl}J{^hnQqjLSl z1IMSOrLF17O$aX%*qYJ}cy-%d?{uXQU&+#LD%CZe5bd%N?$Zm{>J3Ec{k;x+d09(? z4(!i(>cA5ZUfTNbn&B?D=#zQDTzYs(j$g6;>i&CpefP0QhF1O5t>f;Y%H7me4@+pm zTS!>UKFn~6E#f=`s&jwU9mFhie29n_9Gsrn>ETcvM40P(brsY82RcZY>paj6hr%Lh zc^KG-qZ7d$@*cr%L#F@IR`RRfFV-)Gr%}97tPgj)0AJthF*6;0V@lCAYkp1Ck9yG# zOwp6CdqnUkAa;2B%rrLrpIsi5`rf!(z^}Lg4_A9s9p3P-JRnlZyF*6s=z1PtqQagi zr(3#*uomlVI3ug@a_K%lJWCILnX^x4R6Ck5%Tut5me$sg9`Pomv!S4NE7^3yk6o*22U zUWLZy@Y;s=m5~_Pqy2HL5S!QSa_k%m*nM0OQ)RV0S=STGr3yJy#w`}jeYhv+B*K(nGZQC2mTjg@4}$}eHy zK}D9y!Ao)lwC)fU(KV8DmaLgf-H2|)U3w)lvAW!m{| zYHV()^;jWo)xHX8W~@?*r+k@3Pgz`;mlJY*K%@WI7b!a!BGKAG0hnAI(PjEW(XqOn ztK;cj{%NDv_0E5pI>`^~rm2%cH>5u4RRc~~FzV|1?nhaB`XcqkpE)&MP-TCKGpdfj zcZ1H%LDHXIjgsvlp}Z7j@m8IQgS&GS!KXjkb+F- z@{E)`pC(#r>@M#x9kWveboyVkusNNi8ghWOa)p1lnXFQI+S|rfAV}w`Qyj`U3X8Hea0$yuI47G3Pjey?umO z{-AgJ9v!LF?*5fXiMK%`W=yFwq3Rr>&kbdK>NVyka_uDV6$*()VBTmKQX3oP#ckqr1 zF{x}5uij!=VTY?j6afL8r`#XkX#-xxZQjCs#ed-`tqnRv8o@X0Fc>5Y86a0ouzm~t z!QQ9h5X-OkRLCzohH_b%RhMsJF#UUH>N~}q#Q#LKSuov|6N!ZxVo)Lir)h;r(6*#} zveqo|GhT1!<1(J<-CXm@)oI9!fTm}5s(ADYCt*p;4_TQhx zs&>s=D}g^Wrt+-QC`MvZZw_?cb_DGUneT>x`0ANorm1wRk*iiwMM#PkInd=cdoOn|0p1} zs^ctq*i8!hrG?i>3Tp0f$c>ttqug^@NPv%Xc7wPlSE8?D zcIN!!)r&V*hvnRrw^Q05rTp~>DWPY|On)X+oyc>m235u1J+fHoCYL6HN9~yQ+CS^hLR!m(_XU;p3Vt2ETfmmMBN=-+auko*_6-k`?zD4tHqfW9WST- zTEgd@hE;hRPc+SE-;8#?uBQg@3xmzf?Kwju83}uDxjeurk2Q>>w2KQ?wZSPn?x1ko8BgG#I@s7A~!yoJq` zpR3FEbY!3XmQBKlb_^|VP{{if>b-DDVzIu)9Y!Sun+<&!i958z!rt1Jjz7#Cm{E*( z_i?v}?P951e-_rxE3Jimdf6k_@5F|l8AqIV+-tVDQL;`62yf@&z3yu`<#=LVnt|iH zL&t8NNQ)1It>4bcO8moo1$8Lo)lO2S#H$cCV)8R+FH3!(+GB_k+$ogwZicuInA+*`jM(AXZ?fjO*ZKGquI{_J1agyK$mn=} zJ84)<&$?%Dy|%oB?wve65PQ)-ZKXWAIimR9TZNu1?SoQgYw@?hKKCoGCrRMvGwnXk zOpKbkImE-=uXR5!j9a*iq$IBbQ=?^n{t+xi0M!RnbQzZakV3#>9=Kv^c^SwRU0|7q z)9#Fwg16COuVSpVR36zCm4nbk2<53P9UNRke@kK6sqlOFNqwO7CLav*y1I*!6zBIU z#hu<1h>vzcSk>0edbW0+mX>OHmx$2@SHt6zx~LP?tG$ZodIh_YJMsJWE7MZjhS7!v zNZ4+T!KB)~K1Ah$@@PsX>5(rfEy=@79vu#l(c7dd;&JI<`x{5d&&x?+Lr0x7|5ImL zBNPTQMd#v~Z-bxs^g=d*6n##hvm(IUm`gaZ)XI|t?0i&efz{nyYcy3|-~kwd>a zPQp%EuH`(uY3fa;FhEARP(H^1(`>$E??#U1SM%QMeYRBsAH820m&<#~B1?N^7?}~( z?Vn@<7G!uL1^yXjk`;1aqhzI%gKSG-j2S?((nOZmCDC0IH$_1~-H58c5PS%vK7GVb zzWl$!;lv75l&8_Rk)L@zO25DX({gcfWi@K(KSDSJ=&7d4)e>;lj&gBhW}pLyciY$- z50MQp3+Fw#unTC1a9S+gZ(gq0BskbZg}7~86BwXW@=y-IS2k9Cb!&$erf?GyQ|~!O z8J+4%<7mrQI7Hcib{!L6;OZ!5gOGI2^%*y>F$dp7LUo_o*8K%Y+#Io7VQtS~09b9p zU#fx@kg%hWbO8EqI^bE~)PlY-ZC=BcZTp*Qc8KsOMrM}_sTmIZXz91ms!`>lF#JGZz)wlx(*yN|7!8|V023NJfdOe<1xoQgvJw?n329m$_`Q!H}% zXa`JtE=j%+H%|TGH`3?bHxdH<8)-ZKAF1SoszQR^^Y;K=*+06$x)p^!(e zMQS4HK7pl>$Nq`G?g0p}99iUv)1cDVUuHkGHjUfSN`Q=0m@4_X)=O0$5XX zT4=;X@GW$`4qUudyQN3-ZPdIA+>lb`IenPd-#F)v_riWWpf1z~^P@jv_A%HDxDZ(` zTH*_wemmZAInnP3_FncVT(j6(jj|qH@KdF8T{fSSA{2aM`){}|pXFL+x_BRpKm-m` z);!S4{lTT5JVNnc+5u%71IM={N6#-$kx11bQ^ZFuX_g$YKS33=PH&(Q6R{JG%Fy#9 zjh}SihV%ky3S|0Dpu@Q+r*oz3Mf7UBxjV|1JnZERKloo4(p%SO4~PI#AYcO9#q0PR zWFrn!3YbZKayRdP@Tg8CHU-*8{?DLvMIoYRx7ey}O{CZ$?JkgNl1kmK0zwFg7Uf_6 z1Nj$jFF~0_XgPd0OW1kHAAln6o5C)k&hQpuTcgrDaO=T6l%OHlf32@0il>sR>{y}A zq|LfqU&EC;ejCFQqqPMu4q&TN$W@}W`Z+`pIq4~%O6lUx^)(rUrwjTi%y!(%G^7=6|m#R16RN%NZd4x|}W@YwX z8hQEb-Q-h+Ejh9;Z7{1a_Ztf-2OOCZi8X%y<}HYTB#`XIEtb{Z$)^G$pliYV1m)D< zf;^GEJTHx7^#By{X`&{;mn{V{LSY*X7xx)8*yvoGwbmNQme2$k2NG2-xd&X*v5!SO6VqdX4$C!Sf;M znsj-x#p_x4r$)kUij$JIO}*lMT99_tzjrqz1fWOW+0x?B+2Q#(pn6j~_ioRwReXpX z=VZG7sW2@K>+OK&=5hkq=qu3rGW5J0JaRj+W!&V`U;Ob#y$KVe?5=(w4($p+HtLQ{n?~0}Jn$ z(k*FZ%M29;jApfj87=FJ}s$~Ya+)3W(<&p)ovp0@E? zh4joQv+$nt%xEgtWIJOttx+gcfGWS0QgIiP!UJFNP)6`0nW79g#Sc|QS|uw z(m8lrzrU%sCln2^PnC+v*#U6P6--UN#OH{1a0-x(WE}1;k}52i9XxY$c8BMF zIl1ue!I=VTWwe8n_t?ggA9#G#6|b?&v0Dp-S2-He9E7;n=d7m(+6>hq^FR~A?VDF4 z;-Q_*r5qvKo3?tQK&^ErFt~7lTmytvdtde71>nFlv^G>3>uc)#b^g&9-8odiW;F|L z{nq-CFwL`)qRASk7s;0mfCypR7Mq7(dD)@LxmO7pZQf&^Km1hH2XMF%&Z7{?sq}nCWl)|=NpQd?VSjFcJ61H z*Juxgu4mL8$FI*v_O%LGo%i|#8;&qz_a7Vy+O95l^G&Z>flm`GCeKRVau;x_Pp1ZW zDm%>2Gi#Y&!nS4?GRLfqSoGFd=+y_2IHbSw)O54!yr7%ly;K)8wEkdj6|%a0Jl7@r z%dg|pb`OE>5nQ%uJ@`yH!QQ&+Mn>VDEQ}SvJn58s;M^YYcKbwHp*Ed2B7cShkkc<# zhK!kP+_uW%+k-0fmMXo+Ojd6_-QWJ%F4pNDr;c@7U-pL)h^*ObW9Xuzzd7s^RXTk|-4=6y~APrMP>&kk)A6rSXl?()zLY__x zFg$BpbQ?arzHObnE^pERFUPEyd+$o7ITEO7BYfRoyf}~A<$Uz}&c{hVpC$m`lBQL+ zHFs~-1LDtnOK;i9%5B#nofRVvJ9e0BGw&K*ywov2B-x#`#$3^J<2|0h4guJ_BFW57 z@=k%9nu{04%s=o*>tzC+A+Kk=A+fu}V?DQ)e6@&AYxbC*u5!Jzp83bEM131ktWcg0 zln$Rs#swo@bZ*yhAEwM<9W_?)u1;t*CFI zybH?HonS^gau)%_btNuo5_Ge7W662R`rzrk`Sn0bV5%+PwzIfgCzQa8OJfRxdiGl2 z6D+Z_{i{CUwet_i2XSHh$7wda?XwFA0*582k*;p;F`dS#V}7;x#|Mo@OM`I zLV^y^wL8ShKPuc;>-6rgxrAEEzi+Vyp4Z%_%Cgas&d<;Lk9$x{?A)ZGt5NW`L2A4 zIs>gP$;@dT;4L%lax!k zI_><@I{hY#V!fQ(L%TjQ#5}5|=XyM=Wjo9jZ~!L)K8gn&G@W4KWPu3K_aNbP z;fS{)1wKtPrDWgj^4@KI3`)ViJUW!OrCMMS6HjJMfpQxbyiWJN zkdm0G`St)@Vv7|i$6{0qqbiZ8f{OREgI!ih(CRBxdZVIue3RW0uvcBIb9YKPs3nG< z)yaLSd7fkX8u!m03R%D%&;Bco;Mk}L1xKr?sURP+rMg0bW3?n&LZcXq2Mi`Q$>0FLd%_(acc-^uCNZo(tm zn2+>kVYrR-&h$n)}|^$5ZwLx?!Bao=ar7Ar)!Ei zy!T`Mw`FCzDU{3SU?jv7Pe@Bls3+E26o=U4%_d}>^g)XNv)X#;!LB4QVWVPo{F#0A zhtHYzG3d!9Q2xQ^s<-6Z2M3t2Ya%KFH$k zm>*vYcO|4Se{(SxHp%nRHX$1XW{AtW#J^~i9UK_h+Zhnd$FIP>f={ST`~wDtGKm6w z#kuayW$0o`5xk#pR1#VeTQ@^W zoW)nC(wCxNJrl%&Q~qtngJ)5Fb!Qu^mL$1vNtE+j-(ad)RwV!oY8 z8s6}=XaJxrPkN_y$ixA2eHT|^{vj)kln&o@@Gh{#+%QY%q`PFN=}0x??1Wt1y#6wC zOr(mCr-H_2F4e{xfaup~1?HhR%)y2fD&f-bN1Vg~_ zwyXrfqYkxL&m=f((|Y}c=RkYd=q z`;n2-+1A|b1>9M+ex{jc2&RDTZ|eDjm_`z1Indi;DOmos!`s(orr-{mVnLTM;q!98 zZwh7i^2%bi$#foR*!*qdV0CQjR0TD$g^paF>vUvz-;TZ2LO$t&Jbnx;5o)BogO0v* zzPg%___}aB_AY^dW9vTBbT>`w>rH93tnlf&qnyo6XPVv2CDX#i4mp~zBpzyu$E}9U z$cxDjbAN=#XDdSh!_gml#_iVms84+A!!Gosf*2Y(Hhx!G@(c3LnY8V5GXc(Xg2Y4t z-$fUh&Zu_ZcJW0NWn#ijJ^R-<34zXoAq01A!r$1`aPBr9G8d$jm46K)CEd0O=cLjj z2sgF7jZ#sjf^?sH=)S2?A^bxW{Gb+A>=DPuigCwlQS31q=z8N*&Q&O1b{LISp(PL{ zTXIi8T-FLIji@JLgy68OW^GHA zrNB2G8zz`xk@xA;lfPd2YuK}sY>drwN}*C{ofAct0{L`#;fwfi^vjxHmUez8l%@%y z^l-83%qswN4d5tWvW{QJ9H6xvpb`OdCUC6(XkWQF zAv*5Vjs%aZZZ$UHc4{;C*cJjmsGnR5q#0UvHLujJ;p|)GS1-16Obl2ta@%pAKAEqp z2#yeTFAHChU_P%xG=Nl(-Gpda%ODHyjryLDn-yp`;knO|7|7(rkeGku=ImXoFG3X+ zYOUCZFhIpPiD1=NBtGOtH}Ux)@in{}^TL5KLeJkHE-og3WI=Pb8V4Oio6#KYgt>$s zWR+lPh8E4c3*X!mmaISX0RZ9iv(s^Dotg>W_1E3G&JOht#NqaRc&U|$mC4{Ci)Ien zeC6xXjM93Y=aVUtBA1EIq5ZP~sWD%-Ur8Bbu0~C=**uk|HaFY%`2+sA<8KFu6Q-0h z85>Vhw-K+~wTE~B0(So_-w;RihW)%bx12!L=38pMJdD*%n)$?wLw~TGE;le)EH>IE z4TBUjI(^0AaQ&l+RG3TK3_dw%)oX5Cy4wZwI$hDUp`en zrg9B^VJMZXk;|MOsUuYw!j-pUlAXtc6ehjeSq<#{XzKz?KsY-Op%6);&eZMJM zto^dSEj|Zhxlr0i@%HJ`*Po^HegZ@Y+h`l2skTBA87O8vQvU76*qa6% z^|*eE*tB%%$-in7pVqu2ER04Nv+VOVzn(%EP?_Kj%b-)eLhNZIwDsl=^IyJiC+E0d zz9-Hv=d3CjZP0*hs?MexjhM$7USO12nQ4tTZ*p@Oq!h3>PYWIWv_QK>p7?%l2a;UO zW3+a{Y{U6d)Q^Lt`=jc|qL~DKTIJ^;YrbCnk98`t7@Y=i>9YGY!Q!MifmUTycDdqq zBLNp>S7gL0cAwN#7Da~BFzl|8Jh~XXv*a5s{em^`$l#I&PMA;GE zucyV6(73^69GP!hRYjtX^PU&0)Z}gIV)D2@n=VxUBjm77wmE_&U{)PD(->FdirE%NGS zQxN%pWTUa;RWO`!jRHSKV*vOLu3$>|OmV&zd}l=ow=jwKD!kKi!n#}A{EUk~Sj_B4<>rdrn$C&8@D zumjPY4U&X+oe7H8moetlBjhuWpkC)kHR(;V>fB-4wJ>qF9D^K7=tb%kko5T5A&*%Z z>es?##YPmtG**61>-YOekK&5VIDiS}48~=spRM}(d6nuDLNl428SgN*?0$4%F%5u}V zOu$uYrRq?va5&rbBztS`a42$TnkIDv$ z%*GluftC8{D%8Jb{dnQ9LP8dJ^)@!_>|)v5hMfN?fO~tH=CxZh`!g0w+MLDIZ z^qZ#?EG^BiKH|5f+eRz$A%cD3AtPmNiW+NlL`i5fy8y z2R+k=jN}le5Jhca&cYJBKbz-cC6m>_W`*y_`21~FvmZIk1__a{3j+xW{cnb&mWo>< z_h(4Y`>$WHS(T{brP&UM^G${uxqX&>9=(-JeI`*IEd&Yj46i=Y6&MRjZeO-|3 zL3C~EHB(W*CBwkb)k{0*hu;Xc-y)V&Pi8tv(+nQgsO?okN0D~RE3ki8Ms@JB>Mt9L z-CjWCM@fhWYEM%(N!QjW=8HK@e;zfV9%Krrf_ohavppzYr}tEhhUi_p6>v;G&)EYA zZ0gqe13MdOpKY%7?wG1L5r0vB6cMAN>M7lCrZZ4BvRfmAbCCwkruy45XQJ~XZxSZ?N5 z_!Y<$q}Y;^dy)^x9q#kW3B1)XKMhSu#C0)fBh){eD8cOQO~x4L`3oV*jDCSRE#ziZ zr7Xfvp%d$r4D{rGqB3d1tHRg&SodoTF1^(r7vV$TI~Wib+#J0XDJnIxiAR4o?g}}a z-3FsSmjUGkf%%7r&2d`nVVHCvj$M?zXgky0ip@ts_}p(4+!6C6nN;w52OIaW-htX5 zx=2c=xwS1C*9_44j8YKUZT(l2Exr|g>=xU>&s(3`2s3dzGd^jP$CIIk4}lvm5Mkv# zXigUGgO2h&Wfrz^J-w@8ab4tAA4VX{*Jta>{SX7|8!pnrL`$$J4>z-_i^Jk>f6uI? zqm^ej!$4-YQkPTZ=;utia$xv7l`Xnv)-Oh^_sxJNP!ro(hfDJBQE-gV#&bADr$nmO?taq`(-`n~lFKuYa zPAx5cEd;U;D?IFa-!`VWeRHYDa;zn((zK|)_&xuh{9C~oPKqmFmH>?XVRwDP|tdv#!s6E!wMD=K8c+ATUdA@ zcg1vV;>XCIp6>N&`cPmK%Dmko)1BV{Nyo_k=EWw`18CuVx^HZ*a&5o6r$LTEOL8eg z&KarO`$K1f;jR6^ZaBPZ)E{@qDO@x{m7d-=a#->V43sXX;^{`51!pJ6>2duJwNZ7I z*=eZh`+s3N6(hPkw)F(`Ed5mV5k3nkc8LrzZQvK(+3Y)S6#S*}tNdX=+Veis4vv(y zi#}}-_fA{ySWOwxDttheje>zQ)EyN!x6wH-n8)zer{fTMdSwxg>-36ZFa?A{%pI{A}#lh89U6> zwg;9aco#k@me*1M2*+gIw)KPWBGKdJel4!F-xF+M!d-NwYcti8B5}8ZC^#nu3=kNrnN(5E$ zl2zAIqJl$6MK@ETCB!1&XGC$`-ZjJ6;4Jx{ht09!(wG~gTjCecAS-qs; zPElpcStcZygN8diH)9?a&TtTitaM@;+`API`VKaX^iVMqU?FN5FsCBZ=nKO_0XjTi zkBT=WIB?RmP05s24r~LV4C7FOu`2T5Jj(!~VHV?#31At@cmtwpU5F%SW(wHgmRc&n z_EQPoovMP)Yf4m1jihM66sEKobhe!|PH7J^!3yYL!?j$P83rqA5l$b$Xa#`7!POSb z#>NHs5j>8hRHP30N=aN57%nyww$-MNo=e6PCqSv7Vs3HqoxkJ9F;@2Iz^CGVGQQ` zWYq+d83E@y0ta|l4{Oz0RY?!$Y*}~gN_oVy5ReI{!P@4aeH7UeBTC>FY<*o~Cxu6e z4>n8I(AZ@ZfGT!Eh9+B=Op>5hR7n+stI^`&5Yh8kRt0pFgYE#U1q@Om=kyI`jWraO zg$eLygYjF?Vak)Pg-%6+CYDeOLK`*cVT_>y9adTb-AkmXP%JPeZ2%=}6{#Z@l$sPM z(qZK|MvXDLD?+0^h=oZp_?1KWJMctnnVeCDgZ?UQJQ}Rfi~v7@?FL&8qcBl4RBE8` ziK(DUw&GSUNXsf23ktrq$K2CQ9ERK-XuO~>DMV^Toqz=_!kZflOtPzDEP&W)Mipt2 zB^J{;SYwF;XD4uw3Jt_vmPi0Hc7bU?>-%n6biotq3?>aoe6Xy6g-qboCZZ*5`V>l1 z0gH|)ZLoqCTrs--U?)PSweXm*!6O6Cp21PHIhzJ}6KqJ&jfh204A#!_MTTLOr8A)7 zOd!CT5;7EmDJ4>&_VeBdZnY~q6mx~bsR4^tNue08)pg^&Pt zEp0ggV6gYJsSNwcyTiOzKw>vV=U9_&7F6K4o4s?M&Yg%|4v8&1|) zw-^#IUofm7nJB8Zu?hfM*lyl~E5^!nyGLt|NR(J;@IEJf@V=+=$vq~L(PIR#va zX0-g^Iy6oK_p~6p(MHdVDMlwigII$D_Ec+ceThkRFoWe`6c!7tghARAF!vVN2@lD3 zX^x_#=jPGQ^&s}N*g(rEnHvf+0g4#xgW=%N=HP6Cm5ZwA=*+9}&`tT>89Z6-Y4OZyA+YPgiAljpXJw?hQKUQhXR&c4IIJ15%F_Tlue9q{ zG~J46ozi?U1&V-ci8=&R5e=3>8P)(x^FCnBpesICG^!ky4g|JVw38VRbV*ZyhlNDa z<;EHb9xTa%M=)sCZ4JgUbjK>evxY^IHCQc!QFaXqg;CNl(Erjn@2D%fuxRxyR#&vd z*3otjlWC1@7#@d#TDAzzVi`T>mcshE(gFKI6?gS*b-?*xIB@kwJ1}5^CoH-H+LThD zS>~9O-{yo-Oxvy$5@SGzbIMrF9kC+V+r~s#JD{3^DV3S?rOXMcb@yN?z%-`L;zbFp z7gIU{mhx*2)I`A-?rqLGiQtP-c1kgMnPD~&VU?6I$R&vce0~q6R(SAbJ+P*R2Ad>W zULuMrWf@Lnt*#}rQDttV1Rp|S;62TPjXo2m)lKQ}v52eLhW{S~y zQPA|ZEL+MLS0{67M zp)~Tuq##n26yDNQ*jCdj3WZbQT_RvA7>X~DGP9I(Ft6xh^H$3$ z8AY5bYXdMQaBV;&yaQK}Yt|U>b%KvT2vkX-EH@nxC|$!<K2< z%lSaLwI;EmOR+fFpEKL~Kv7%AnDJq(=y1po`OIMM>5>`^h z5xjUj6Qc@aiW;*!hy#o3Fy~Y2Oj2pvE$ly_lyw4Q04`9PvEv#8aKM&;vfF^o7gE5i9UvfyQ%F8 zmPU5%n0-=sf`V88$HeYl63Yv*L?NS!u{;q2qFj!k%=1rS@oMoW0j3nlId6=@{8J4Q z0)B*SqW0*Gi5yb#RIKMu8x7fH=&a-*15N185e@qCHgVR7f?0*a}?fx>4pNKBUia6Gccd1Wy@D@S8E zcexlZUKlc2E%O9j9559UmkvFO1cr>c)M%NKAXaJPOT2iIwL=Y7%2#@_N*VCTn!7 zQ5D0|NlWW2omP&SXc`@myt9lES&(3>bu!>9_!vvx*ixZr){49ECPHTtm@SZsL_~MU z!?1g(Xov=7Ou^`?Vjkdaslr-BcG9)8KpYb=b&5$@!h%)-&&)MUf~TepaikdWTo_qn zT3RVcA*>JFc@3^kc8IQPFKIwBupesnSriii7x7q1M5{y{dM9jl*?Mez(`6OG#`9K# zPbRZ**(op=+wv4KIfmAP=fSJ?jx|bS?k<&JHYhXL>)2pfG4rXIfjZZCQh>`?iQf6> z1QV&D7*iCnOUbgSA(G)yqtBrj3Ru=sfLQQKYZn=8H4u zid&L`LD@PaB|7l=K_BOcxkVn-iIuQ`$$?bppmHwec+M>?(05uXbcY@GD8~+P9p6^kkdJoCYSZh$$un+^XZX zeEW&fB_eqM4-s2hC+vle?Vo)};K`B*9KKjNHc#GNwp6LHc8PNh%!F%ffNLD0W44i= zgaF)4W?oD{ok#B~E*%AP#o}DK3ftKvXN0QA&^m0Z$Su>>bv}Dr{FEu|9@n6M(cA zBRk7ohbNwucAds-acvrqOl(I8Bmi89E;Cz8YDkQtWFeN39oiCBMVDyD3Bf`@jqPqZ zE}BZY0Xa$Bk_3EnYh-6#nM_HVq!F<9ootv!iExHu3uld!4nj~g(4Xzi* zOku_|<=AfCbK2mbgodP;xDwP+Ta<}KG8?vn)OEI<4GDbw2>w2n>SPr$A6sK%HVmFb ztbW>J!`6#-rd>P7X^svECdHDXfMWuPA+QUvMKIIe6^q4gGh?v6qe^CsbeQm$1$JWu zcESzV2?vDJXeTXWSTeTd+-}{%PP}xm^No&JOl&b7OEx|w*(7i-1or}4o^D&Zbt^V0 zI-hfJ0L*ZX$tSk!wd0%MBeuuNk@+o|Y#2`@b%LETB*QYEN>Ii7Yex0VGy~pRJr!lu$2Ran~(FVmQ32Qims*TsQEgvBU%r zS?uf!gszD`0Aq*$>0%DWGO7blxROEvrwcr=1jG|t;|dfF&$w;4b3!sOae+K^9@{6} zvuaH!6p@je0QwHQvI;DsFx25uR5Uo)BFAEZ=hFMP)!IBLE~Ug)xmg*BZ5}W|J9#XH z0$TvootHZmEb2Vg@)V{8mjp=(d!OLk11ttG*k~j$8#1h4pln;CLdNGKmL}IIO5|V^ zl{nf4g@OPt_7Wa5ckp|ws48|+np+C4TVm=+tdbzJ89W`wuzUxD|JF*=c!Ni?k}^^b z>MRmGq;4z4uodhpMQmsy#r9o-;{deCz?fm{GuT(43m@Ke>q|E&HVw=ybKfw`I1wDw zoHZ_EJW<=2jWWdqg@ubPT2m)oOzEf?jvNCP44N)b)i^^0_&!W$aJB;tfjHiX%e)tx_F{9hgY$^vjSf= z8!U11*wY^8qZ)-dGDg@;0uiiOw6j157K~Sl604YjTV{=IfV#jA_KT&a2`V|MWzxo# z+(aaEM4E1Hl&BI;#330B+hc;M2lwB0J&LfF%|$N3`@tg0tu_oN+SOUQq?tq#oPi{P zR4`;v;9(Q(gAv?F8@4rh#0mv!Dm~exl~V#?0qIBd=S zPm3)^-t~5*-S`&@3dLYe5siT*a50D|?Yd>FT}f8jPfrRi!*(M|HJM;MQAhzIp)l(i zwxT550U_O{iw!JXC0(2?gXM`$cG!KI<9t3G*U18Gxah3L61s;2b`_6KR89dndT6r2 zsFMY;MXTE+XS@rMT3J*lEB#n_ooains3Dj!nXtjA&^9*~G#qGR<&)P*##ifRwUu@q=s3!; zgk50A8167I0S}hLV^ugCk;;-cvFM__)|7S9g#*>$EO`AYV{NCwZZ^b&r^7%e#|*Ak z*!En(r;w_SGSQ$uI40L~r0v4cZj_~MXu?T5hVf7oiA6`2HF=#DnwY1FGq8?s00$MwWofcl;8VC{tlZwa0+GAm?luhy~ zat5pkw%!(Pf}?wEjf5B-0*N@Po@dwf0R{?Xfp{_}U3Mm6Vax->sqc8ITUDnsh7Ot1 z2o^OYjQ!(u2a__`3eYAZL>IN%(rTY+?Alqwm(Y<|oYmNv;4rBZ&*=yji#g!O#-^0m zLxVB8u9%ByRu%SKl(6d*Z9>G77$hm6U|2&y4FeY-;O=beJHb^eE7jO(cyx)wgTzxq zpz8z_vGRC6#(^yRV9Py4ZadkoO#zzJz($uPF{a6ZYAh3@I64W3QE&%x0ghR*%zmMY z8Mb(`RpPK36rEP^Q1M(0Te890agYujjAxAc4E}#fCKe@jv=x;?Cx$qkyl}weB6!#s zjJ1NLMzTmLuyp~nZ(C%iV)JP*`CM}DnvgMXl4Ji)Y~4w1k{Bc-x@cu@k0wNG>lg~d zh{kb0;PG=D)2acThKC#j__tDXmvbo;dpoAcwv{3~h6R=r9?#(e6?lYVQ?|$il1Bbi z&J(*0+JQE%bku2Bih-!qIFwba1?XmEf;kIG2n$kK?C-GPD6s2VQOTt+@bq{Ft8bI$ zn2v@0Coxyd@c=YgF>fAfwTm1Do7(Y8Wq^h!i7kH`Y;Xz;51egSx7_3$q=u!-m{#(z zQvvMLRH4QOd&DU8Cv?~M)Z)^CEekn&P9yh1Y^}yxZ!S8ewJ_McO9Z5x-N+pqL1;lN zhy-bM;Bn|;y7R3{SxFP0_OYrM70z}7nvT>H6J(O<=AwfSnTck0nSOx`RQ5$15n~PYSz+4VMk~JwF6)&`L#awYvxw9eItTuu!lXojgYAR{sqhMaWL89Q(gG=VDq8f6sn&AW zM8a4GRU*;DhHZq+JONzvi8+pAn~PP&%VMXsCX~}Y*hq2AI-YW3TP&QU=&|i{0PYlo zNRDm|Q`|`wn-pDQKrn-DGRv5djRPORj5Q>Y42sw@U(_hKEfiR-Azmg037a4MicBy} z;Zy_012{Z0R04YkZL_WWsUj_{^<-0W#1M>{M1q|~KoN@sk2k=MB#B2?rpAjd*%*(p3mq(H!cfUBKVOvUaKbEgNWr>#_YYH~J)cmsmk6=W+cX2)5| zOu68^!pw??myX+3)v1iJgy?`Xo~U#lhbTDkc(65))R`wRAe3x723VgNGa&)61TZix zIx&J^bw|XKSXehqAoD~xASe%rYd;`Uw{`mMTH=TkfJ<44TMk*15~}HXvgQQNVv(>f z{0VrfwT3)dk~8HV!~lnO3ap;AOsOVBt2HP;=ZZzA7CUw-jI*0MqZBPQB4&k2PDt9F zr68q#ZC|q7pW2U7tDF1&p4!q#B3)#g!2nC&sx4O#h-8izaQQ zNU^0^TOm0=T3{2(=Dy^RDqT7Oa)43*UJu%og}!4I>r>J zB%x@%mTBVaJ(Q^z0XOQY`A)LC7u>{vY6^@5^_ z;Q<$6*c%3}f{GYC9Ze*rKUu;B76ESabShR9;Vb|at!p^Ll-({HD@5IBFCxJjMPICU zy6t>kZ)Uv3gLcuS)^&M+5=jaci)r8{u$Iyno9!;U#sj)KeTsp?aj^23LgePr9pkue z6itG73D4GVjmB2&8gGr$IqA?yhEA-&0Uic?9S$2Z2+BAYMUA)cb=G^uOp6Zt#8K8T zPP(>Y9E(pWSTZjq!!q(>Qt@q1d!WXu4mzs?Gr>1X%lR}wXDm1u$yy7H5(rdj-!0;a zYt6eS#pb}{?~=m}>1OU)Oxp@pWICgPDw2Z$F_eOLw4|3nT`#Mf`Teh&X;>UFOtRT4coIG7)pj` zib@$A?11@2UEwY$KOwt{<88ija$=^|48@n+9ZT<6KA$ur&eJm!-5Vz^*9p zfI0#Zyrn`TW6IbSgJ8!F15}Dgr4n{yD-S80$HUeGv6F&}1PAKnMh1a3F$qW7M4;^; z4BX?8J6QxbKNPdPtrRq|5xje%M5ANC0SeedS;y{pkz%7_N#aAJF{SJ?6tt3+;H8)> zEEZ0~046J=Vw(n>gXbzUxH!4X6i=AFi_&V8joBI< zY_W&Uf_C0HW}kHJ97$jbuwW9F37b2_#>5bToKUBt6S>Tam+8){Mq*NIj3}J?(@U&Y_@QA}~v29((qePsH!AL_q zW0FUBw8btq^Pmp$Oe8MSAp3LCrI2o~*El-&VLs&73eVI=zT2kq`N-zf4 zwwB7wd+X|Pnt~$)M~c8xmD{K~fTML3|>YmHtbk7 z>oTpWlEvm^GAbwRcAmkxR-o@JsFsGg>z_FIu6_;))5y0r`#1fqWJq(%yQ|iIDmRdAMW2bm&rHnCV?zdUj^&U2pN(9(` z3W}pqIK&36RpUGmV&ZX>X9h}_A8Jg{O+3f*oJv#0oJ*K-nw!)$u@R{1LSl`!fr6>^ zU`2|fY!+E;_3{&)C(Pg}NpKjhbJ$)F6N(t<-~_ClFuIKpuNAOQi;X*2A<|@pRbm9Q zCOj5n2Ma_1Y_2G06VIE8tPBk=&uDmXS8*2d^=A2q3 zf+%*KTDGv$)kdVph=7knfOIBJz{0u!%6Qum?7ID* za@&EkKncUVFp1+%6t?T;u^rGn; zf8%8!v3Rh)IMi92vN!2-_0%UU8pa953411kiH#A^(E!?nQlWLRUUyNlvo_mtQgED7 z;2^#M2IVnhf@7((Z&F}^GM0d{6rbzzT%z8T9WO9h9lK#A3^{Qe0_bUMqypW7FP1w1 zENfyVc-M7mVgZ075mqY`%s7n+%ZZZ&E=9Po8l3IMhvk3qDEh1t1f13C2i*=xcL+ZPfHKPGbD<7k2KL}>zTDw6kFIYnO(iS39o|7 z8JK#u0;3b&fI|UaD8bZrh5fL$o|@pilRC8>UK4Ch#2PEGrU?8OY&IPlX1HXa@PPUi zTd^%0#jTCSm=>Lg1Z)2+mpGxoXq?#vMppzQyfQ==t?UZ7V^!+daFlM)K%8740jpv# zagF6hQ=6mG#L~PiTDN`*JMF?{aP>hKV;4d!p9Ck{8iV7CD2S_q|BC0F^Ez?ca#4pn z0k{+*!6Gq&zD__YU|geU!0E{@;wZB%dro6^eVsjLL7CAE@~ZH_i37899*^#_C&VzN z0x!l+=8432+}KIcIU*Q_IT@ZGg8IS{id=T-C)p&RZMNL(v_G2wKT%aW4)b8GETP!x zj47_45t)gnwSXiBT&8+!IkA@CwtL4 z5iCWm!Q$9I+$ka(W+}E5Pnfa;Bp#%Krj$vf<>t4*!%}N@6z7Cz=RcVt_8Wh6QvLsj`i;Xw@_jV-CJ7IF6-F zH*aGH7K7CpD~bgOBEq5(iXFwVqlhI51Qsv@c{jn?BDh5owrWK!W|xgqSoQBCX4iKe zfV0N5Sc>CfaYFW%akk)C=t_y5fpEsa&^DQ3cA~-7B0`1+`=AJKDdS{Ys9300)@e@+ z;4+OagN@A+dndZaB;W!#N-SkcgDETGMa%BBO*ie*F@-TFuwntNn8>*?9P|Gjj&^3o z$>OBlg^jIPH4#9`OT>iDenAsE&~@Oz0%KP?cp!PU*cJQs{Df6AVnNWP80I8uJQpKT zA8@@Qn?zVffuGR-I zD4n7QKF2avPbzL3o51x^iU14H6zSgHIuDL4>niMkqbLP$wmxd` z8@GrB_}H})*@KosQX?8rAb8H+bvxr2BqLbE7LzOHJKxUjz-IAPN_K<64xK=nA|(Xr z69q>WTZ;+_EZKXI=WUKG&OWVD6BA4d)`N3s90zp=rWG8X92?EB2s+^S#L~(wjO_YJ z_O#E{QE(Fh81V`Fc4a(4VWCOZSr(mBtT+Q`LG9Lk#fi~bBDs@Ia-f(y_HY@~d3nU;bNi>y=rQ+Pl<=igXl1fMI5xp_*I&?tWz3|vW5f8_# z1yLd3-fwA+b*D+;gwHjyAehYz{T+hcP6$rer68}?!grkJS!^q|@MA@*>r{3|*j6G( zj!B)Uh(Q>f#uQ5DlH@#CM~k(S^C~+5zF3us%YUTrHDbg1|BXpJjGgF zjX}j|0?wpVL2pYvS)bWGDK=2F5>zj^6R_pLS8lLOr(qJO0?QoD)(m@sq`k`VM3h-! zHWqd}jY!eEU>N3NNtV3j+7-{S=aG{;mH*SKIdD^>17YwP=XKz@r*#<{#<@f_mq8R~ zPT$V415dlo=}E)}I}-L=qDY7(Xcdpu_F(y?PZsz)-@10JHMG*&!DF-rWB~Ie(18`$ zek$OQjKHY{rBWPsdYc5Ww(q8e2W%L)Q+GfSv2Own?E?9Tz&EYYpiuZWAGYE#d$a_M zDk?gwy4nsL?Idy|Gj*6hk-){>5<6j-w_${%Tx*Mg@swg zD&lA-SURjbk-$2XDb8b=^Y!)l4wHiOj4MlQLk-F-hM$baA90)qXgrsTv~HQpW~%jf zj8VrZylxn%WiVtK`^Ea$M3otnK6vW38Cj}YS|^t+g8A3j`yc0aW7LT?E&|rbvUZj$ zcyPto$%1vRO~#mZx}3 z!*X3?Wn&q3viG3>W5V*-a*(}Gv;%t~D;)vA%6Xx|`sT%*JjKGj4t2!R5VB`_IV zpvKdn?1c43XFPfe+iFhN@=m5)H^AmB8hghj#!OtqR43mBC@e;=WwAhf88cZ+cb*g+ zC*V1N;UXThiLh4O#}pdtH8{5321APVb&D=BYmJE}6^F!iP|@cGOc+ikq#zDxWdmln zTS=X_MRd!y3H4ZA;xS`BSQ90lOa$y?A8}F?@Dyai>j%`=D5M0Y7rS9phjZrYALaMEyUinllJ=7JK`@Yn?pHSYOWFE z>oX1qBcj%kZUr~51N+eb+529-N?ww6#bw1sF)1=PDXVfr8q|+Ht-IH!3TwFQoNo5c z>QNmsSTZ;mY+;vbr3h^_C9_ABu+|fsz(oC{{X_tC4dhgX*KC}mXz3iv?Ubm)I*eV; zb$+H3-7EbY)#)DHz=0*7ZX=^31%P}rqP1uYLY*sm2{-IVdMG z-f1?q0S)vKfKA93`}2YQ>P_r*u31SHn;c26YcmO_V`g1p5T$*z%l*V_GC}K?{YU$W zJ*PZ4iET9EF`!ccJVCKooRTR~2wncFc%txT<-c;Tp#B0PuDqzjtHrU9Kmi_*7TLyh=UZT8UXLffBZ^Au<^M^k({UyNm$;^@c;!So zv4ncZL{x~fcM>bF&g}c5^RHXGyB=L307zbh+&IS$&>3a2!lV#GcKD{2-`zPX{^Vib z?c68@$gVUliwC@1oChRboWk5x!LwU7J5S9152x($&EW&9USw?#0e~tp=XL$>6XyrF<2g9A>e^SJ9$|;sEnxghp;Fj{ zPSxVUk?D+$&d3chtx))*uFy57s+M$Jvn}xyvE6$hveAxZVYC*twf5Am;a(zq?m-%q zjY~F>a}E1J!MfQwWCE_g_RO12?$t$Z#&m|1SZoW+E2j(8p#;}j^`L+_eWK=%f}1f@p+JY`DQutH>XP%CZ+`6Q zZjB_hrpgPt?rne1o8pt>fyk}b%H8%~sr8>E-FrW}7EtixDP%I zG5S}%q~{9uR_}(w?_N>oNQPmPIr(RsP@xqK%+~A@np_X>xiGQ!;SIoZI^`9Y{}0)O zjGvNp)&^%|oBJXgpC0i4RIyo^`IpdL9 z6V3qHQ9Tm zo}mI3ja-rC#N9E4dN&d+1iQt-fY?k@)<7E6t`nfC@;K9qa}2R@ZGG_!seI}*dp_xv z!g)>(qvMr4e6)7YQ8vSjQjBPky->|Dt;$t$mt;>Vwh_(ZDZa1qZsJ9Ez66Z%Z=iColIM2#q+u~p!B`Prn8E!OtqU3HfGx38+7KS;LX%ppvj|Z($loXy+pzQ79Vi0Ax@_Nc<4}-gwbu) z`L{EC$?-f6_8VaDaBx&vq!hg#6H?g<0O=u67Plf%0+i=<&|e(9v{CQIQ(S9Y$CZbgywJgZrhbpW{UAQx;a}yLY7{P!s$Y|OsUTu^ zcQlV!*s0|cd=G~hbE zn3Z>b4m;AwB2;~hJ3I`&>Xb#R2U(=)h&3pX`C@?*a2C_*d>G4R^Y~TK&E?j&ZHI$d zDjZ_AQTwrliTI2ZoKWYf620_p)lqP4A0&dIKJRG$JKZbUG)iP2B;8f2%HzDA8Pk0(PIGCN0lqfUoyIGVTqM&|6 zHEf(S2>>=MBlIjYm3c|?)$iC=W^x!aMy?fd0J5vhn=Q(i-EhzwI+8sIFikHt3ZPc zf1F65Je)};BN(>P<|g=G4hVuUK7yNS=y7VEQleX2tXkJ0kl2tyl4|T^u~DQ@L`GB_ zH!|J7e}T^!b05Us;2zn00Z~QOk)2dj=-HQu5W@ivcBIP+Bsj;31UxGBnm4ZwK}W|l zZ9Cj+p>|TPSzfCTK?g$cPO9OoFHJK=vp2p9R~-FObh?r?AfH9F2MnI>%yiHd|= z4DV^^qRlAFYcGuo#0GT~l`j4FX~V(sTlz#D-eraALldQ1N+w$VD)d?hUDIFon|+NWf$8o&mKm3MAyvjJRWdxU5kx6K@k@$5rBkePV}$I+aWj zmd2ejrQohjbVKGCeEJ2SUW|!%+k0zlhkGXB z>#KrGisbyqIj&q)R0h?%&3eodZXKQRrO7XRaGG}b2Lx{b08vunbfnxEU54=Z?y@S5 z%N48Sk>o2$|7h}F!tuMByh{2~Tw{-@9R=K>o^04=D_lv5)~x(H@hOU=bVcVAo}RW1 z?kNp;fM{F`Z{bv_g1|s{Qz@dzH^1ufeq)u>s2^h4J3KT%$W01qdEq(`rw`Th;Z3ul zliWEhJe<+*VvD&&ztgtEKd$d6z^Z0Qd&axq!4wi(mo;WQ-DR8Yd;RogoLlZY91NyK z9fUMQ(52u3YJeD>QP#DASeTb3(mWy;^V#hpY1?hOQn_TGBL@RfApuT_RD%)KwT{Ax zN;j)65nzElu&Bg~KA#|PY4ji42LFt1G7YZD@S3n6!uEL0A$wn&jlHD$^Bevwqdbgu zQ>PaWjzgI(^kX+bk+67V%A$Iy>Tqq2kpJb3Oo6*8gZ{ZmnzkJd8q`661gUawhMkV$ zk`&5wBF0LE5AkP=`eE{Z82yWTN;@2MuE>fY1CYS0xFB*+$8Eo^+2He(>n;qk9Ez4h z3{9UNYOetT&9v=s5Jw`LER-cxYa@d!d4jp*9&wIcxs4Qk#c3H|GQ1~`Q<{$uAE8$t z;|>p-FFYG#ke3>uUSt)r(51;dq?a-ORtaD8vws;<*x;bWan)V|re+c>lVE}5=sMv5 zBme~$R}OxCZ(qh;_gxBzAf#kax{-IBvB6EGlR^vqiJQcu)9T$edg5Wg_z)_SOgM&IKJ6OL(%4rmp*gvm}`geY0_7&vUclZ7jcQ}`7 zEl6fPk}tR`s*epTTuA|iNLF4i>kq2|0m9>w|GYukH6^Bk(q(Wkf+dm#Fok#QBn%@F zDF6YVWPyMA=%jurd5t(tBRAsrIB19Ns@DQw85O4G6^Lw!gMdB5 z;Ux76J}XUb`8yTK!{}euZ+XK>^}rckHK@GQ*uf%Mk5N5mjUqzERfG4EHt;WHP6y9H zqG{XVU&&6_B7CQ=Aq(})sZY}Lx2{pswI#qm^Tfq8^Dw^Kf;$|nvPWdwh_8<73mnUj zNFS!D;gO4FS#Q^{UHX-Lzjz~eIM`wdP6;zOZH&qvH73AcXiYaAYjANjEAbh13a>dW z`kZI5HDrHIB_(Rxn~8PCVM`T{K=lq7XJ=dP|U;54Ev@mrdx2hDd6 zo}4679EuT<{H|H&9I66zEvsQCyvgH0sANx~jsNqRD4)h19yXJ7rVb8osw?S*NbrgS zVo@I_3s-;cWPKLU@6#ryaf5?JTIEs|vT+AWZi6E4eVSCK=-waY1=lks0zwV90|d4h+E5CuklrQ zGgKZK6+l=H#9SX79Q4;$I6uv|af64|_6)!zn&v1f4mAl?@I+B!M(wg5bv1K$4Fyid z*V|0s+qA4N$~TYrJ)i z!!WYMPcojumv7?^7yZyp1rb;&A!>Affk=I^nNR_@oLseHxJH`3+Lg1}wy#~;itf?i z!;ATlx_0=LFT4;AfQULevuqWeVQ`K&J;LC=nJ0K?RX3=boK5e+cl^d$WUX4%~AUrXu9i~0Jb9V{wfP!zUWud-~MfjFrDMi2rj&L5LPOM z=SLkvymXW)RpKeGPy*nKwE92`TK=*9_%?3vaH!ZF5?qWV4|T_C4RDtUMM@iaA@<8I z_+z5zS_R)Vwx~Fp4Jd>6iic;tZX$a)$qV6@P~>^Jp2~`m#4t#Azy|Xjt0Vy)!e#uQ zyQpP017D#SgR?MBS$gMjW+=8df*gKzagE}L)!U`#a8!A3PMf!Bi+7InL)=>?QD<)N zmO}8(`vxQ(mO#~!M8t8Z16ACagYn@x7pHB9d#x3A%L~J@<#c(hfD8yN$Og@t)>aW_ z!obJsmy|bj%4+8W|+Ae5EZ5K_81#W^Yfcst+#E5e*jAC zkhj1UdN#Fk)TrMT!mOblP+c70#PLM^VNd#)fV9+>hPhUVf1x@dIm~7UKx(Q;aXy#e zZ7{Og<>|cu!Y%)P0K%^Pt5xN4aN>|6@46IHuLV@_Rz?)Z@V~4MFI$1(F4xHnqF?SN z;km=VmZ~B{g7Iua}cs7DzX#qtBCUvZLJ=)=Xh$1+@4=l zFCU)??y{j;-%`eD-H<+z+JYy&s3+A4YovzfnnnwwjpYe(l4SA!(WuPjXE_)T^D=Gl z&!B46*5R#E)kYmXm|;Y1$n`2B&dOEzqx@uu;fufFi_~F@+SUv;IxM+G$b+py<`>b}o;ojSLt#<9gfZFEjEWSMH6WIqU z@P1N*eBM$vnL^4-J}T=FkiXf0rt##C+2LWqL9R`7cZ5Pkw!0o#%C)F`jj^tt;gv-u z+uc2jylor&bF$(Qums`$V>V7?o1MVh)oR!=qFMyOYY$|yKR<1I# z{b++s0_Z<U(Jr)`IWF}Ccbs3{%X-W=Q>3MgS16-TpSIXgS|ZznDK zr%FFfJG@Ia0j9zy&l?dc1xw@*1V0}-s*;pfU*GB7CB*mf?lf)i4nS>m=R`dyG*ion zFC!y^;J@xMmKK&bN+)>(a)$hlf2VDSf0jd^Bpzpcc7eOW@D$~F%E}`EFVC)Jh(m#- z*e{p><_%k?ZHIq}HJSme=iZrTCb5AV{=qiX#y|m!TmLyEVG;Xgm-n(AmFE`svNR~D zk$yS0jo1o+s>qL?t1U<%F)Vw4*FD37KxvX|?^+Adz7=@UMIsmUp=p>J5?t`bnt``p zm+R?geU4}5?SM@pa%qvLdF&x=&0qE1X zjp|N^(4+@~&IbiS8wfO|FvA6^>k zY_vA9_|TSP6IYwQH^Oh@1{afdmAz+c+;J5G7;R$^ zqxJ3zskiNNePxCjj^D*+lzE$WxaWP8UUQrJV5>8~%8kK@Zd z$2+O(v{|6TEfh~Wm7aBe1Eii!m0Wz5T%TdISQiiPT7tW^u(mJ8 z=^TrdgJX*Z87@$xq@adN3jeW=_yU)spXYnLMDgzL`^`wd!@VB8fj?R`N*)`EfdOO< z#4Trhi$=y(?3*1JBoC9W4h-p|^<~`R;fN+Fkq4_cOMM(NZtLDvVXfZMn!V<{r@r%x zUH8=62*z|tK=)kr*5u#Q=HTBeqUqX|YmTewtLUfwOUL*h_QR)xPP0pyrfr9RIl&Dn zWZ~j%Fq~>brQVWkRwo>v)h9Sptw$g>&-(XVUD@GYmAWZ7MddWOCxNvXV@wA$Eh-wN zm;6pw59SWBt{%)jh()2iVzU6yq`EcLRY?p!OtU7KP`X=Ej9nn`!D>B0;4Yd}U5yXy zL?;h7ZSD95mFprT6Pb^rT>|N|-}3jn;J0mue>P{0*xWOD^DWo-8a!ne-wiy$5SIYv ze1iA&;8P23+j_9B!F6AUsKN50)gLUWN<<**rVC2Ww7dwJqsKP@c#R%!!+#Ye90y?D zqsJyzUiEh|vN0BglEGtKJ-#=^r&6elt{nVc%{*;8+(Z3F*@12;J23EeNt_9o5c3!$ znRTm~&x?9Mzx4O=?P=TLAE)aqIn-GvHI+nG!wFw|Yymk-F0X;-oQZwuF9x~Ow8J}8 zZym931hQCDkgGTk7z1>#Vv#6DRxfuFXa=_OpC8|}ZSb#^Hn^jgBb%te2UNVGFlRyW zhGQJsuT$F(>Wdluwhg{(e0NbIaR8vQLy0t(P^ELTwM8{F>YvqQ{&}T^Qo~-{VyEp? z!r0-S_f8#G3(RmedsOI(Z11^e#O=}3Z!3k5^73ohb%%q&jTBg$v%HKIM^{R6*Qivy z%D!v8Ou=)U^10h^j#F+^MbJG_`9e{!dAx7>OBqu5L^>dqO*V_0{y(IM?l!+^-WcxX zVQUnX8nsqg)JTE4FukRWSQu4Yu3mf=fPhyn!2uj?7t&?i;bPHMBXj6L4u=Z7PbFO> zlAK4#3I)@ml{&|FQHdn?HPX9{0RxeQN7x|69itqSY(R~JP^hJGQkvM7*C5xx>=Y5Z zU4v{Jx6^}4;o1t{(m^2-DAburtPTKJNEMxb4l?)6(HUdxD{Ojv0HZP>sPHPudXkiv z2$0`&#Ftp8&i+e`388kd9C-7kByS3}9m_)fihx1B ztotUyJ&hYY)C$M8Cf@ua#Ne@sgtS5;v=}o!L}Qm_+{tjFHKN`X0uxugrfrLV!3I*= zIoU|ESP8U-2=L3bq6_KQ7Ojri)d)-*-z%D@afgR_)RL7@u8`&_57GoWp&~H8N43st zp}*&lOUUWghQ4g!Wp*HGql-jh3!*DtX%q%>?Vef+TCKS`qD;MqYq zm;O)F2LG(KWRVrJzj-A{U+oOE*WOa{>1W6 z+ncg-hkIV7)|@cjQ*P8DvTzw?_S`_eGE`i};^g)rJjY@HfW4xL|Frndq^on%+GkwTM`T1_s zKrvgefsd5QS4J!N*_TlNQu6#wElLj zxx>9Coma;-7sFpdd2VGA&UciYI*zcKK)4ot-ZRfn+b-_lQyL| zh+Vsw<%-<%qCvg!vRyWKxd+(?i^rCt@P%u7)p7{StK$kT%U#0#Kc|>g1PKMBV zH~e${c=Yf;GC#Wp6-{=z89jt=)fy_)eQkp-wCjTB0w_SHJl#pixsS8+%8FKk>`p;Bh?#t3J+;-sD8JgOEl8*f~f zF|5_0R~{ZlfCmJrEgt64xTTC7%&S72m0X$^!2TXSkDT3lR7~SY7+!kmYbA5qconh* z2UcsEmF%naOxgyI9O5Z|He8LaTO^r9DxQ?zclqyWQ(U##;T{5CmN|=|k9%}fn5C0` z1$KivJ?gw@zT+CQ*h)tu)5SNk<>!a-3-16_WTC&u!xT zMjRsZTD7}wm=HA;d0xiezs*cIMK(2|N4tvZ_ud;4-h2{Ri8&){;}^da=V!M!21>hMe% z?gJb4IQS`!9GxmvyRH`<)CEiaY1AG_X3GiTEQI0sS~QV`$Ph8$1b3TFa3K#LR}RVq zAo{gVGi|%pY0NMq6u`f#xk*U5ivn!LaTskn{;1xUllXH`=N|vgL7iP}5@uLa0s=~? z<2W4=r=w+2k&(vqq*L?) zFgf#ZRFNFcv2osy7V#j}uj!3=Pk#+5zD+y)Yo_$xgd6W38?RamuP+g&vjYUot2wcY z4FP~Je6u0EZ9DwyH7IVSkUH1`ydceStt%*pkFZL$RKPmdKX{Asn!))pS)iC5$;~R$ zWye!<)p6I6u$elj(m7vq^F8{d(DKxPc}&2Z8Zf((n^m#I+O^O|IlvdqDXcbx3##Hc zhkz1!;or4}L}KGV){su)4iEdVy>-zPWkxH@OR@Rb)p2Iq1Lx~sbgLx2WsYe@^_UexB1ZfnFORY?8A5wk!Z->c4dgPumXvc!yqt z@QO92D~K_q2aLH@6z^VkwIT&PXJYTW3}1A(JKQU+dEjRtsz8Mm#Au6O6(b#oc>5^J z6EfEY?n<7shp=r_!g>`((NT<4DzD<$AdgB!XJXPLy0j)yKj|ZI7PS6iJ)6cY4%X;V zWlE1YZC&-EB+}$JCv!n|woA?*1tbvTo8{fhi&SwM-&^!MJapAm9O0^uMi%GsIV+oT zD8Mt)_OLo4c*rl~3^74a7jNNv%kZ@A@XwnHSW49bZd5ks+HDu|r69S$}ZB`QtDl>rOTDu5b1@qSHND(l>mSn=Taes0|&1Tw^Io5r#n zl>{IWE|D~|lHff^RGJpK&YK~VTCJOX)-CR=Q`fr1wj=^T-xa5b1~pcAMpE{H3sl_~ z*|Ul(wU9~cc^d|tw4S>f(KfWic`-2zhjnZ$oFz&mFGQ*6jVsG(r_X}2ent1sww9UT zw024i9S*VJ!lhRH6v>F{hVFJ5WBy9qdKvvD$sZeA3I&hPSt6~3lCyNOEIQN@zGz?F zVkG9;UAQ-6cJDLTq_xV;aukqSfRuLUhEf>`hewaz<#Jo)9E(-2sdDxlp55UbFqUyr zC=MIj$SoS27hvju@2^Sj6s~gc=dSv_xbSsXy=$8RpL7^ZA<-1nA>|Mw@?0BDsVb5d z<)4?n*>{oOvrejpZlz*ZQJ3HLI8I~;QrX!zMQdY9cJAkOLbj~@w;1`hWglC#OcLdXshY&l+K7k;DRfOT z>s*{kYwBQx63MfwUQT}VX1;A39IVw)^HcyxvBS%SbOc2)xNTb+@^W4>qfQdk2k8`E zu+m#Gbk~$P!0`wOd)8$sQbPhkJ#3ORBaXVFzMTWJH#OtS2KV-qalET8-U*pV%HiWc z?5n^rP7l|Bt5sg~VQ!mcF8!-*GusVdL6Te+MGnS)A#!$}%)H8apjMZb(^wy=F8i8S znIEaH!?wf00Jsv9Fu`)tq+2q77ZFF3G1O7*lDa?mS29nz?`hk%%4LTPfbkLjkT#A3 zMF}Sc=c9B=c$E^?f{I8NI;Af`#cAYK-4-qzbTszdGK<90v0 zj1wHA6p@m_F7?)&@diL}5dzP<>d5uH=Uw$_+TmRYQLU!aeRzV3@Gfp(J zUkD43`gL{wu$@d88{AVWxzSLh7tR^0%o4aGh4_?1>|IkVZ&f5+;-V7y_7BC;w+!hH z7j01y0LGE*#~MKBoDik6cC{8%$e}L#2+9!PKd0W=t4v(<-!}H{0Og`b@unn4COmgC zjf?_VwHGUa*G*gnnaS&PQxV&)@#73h@Ou>ieC!j2WBpr+5UQ#8*UMWF=a+I8kO zFeQ!gH4YpdjWeQ~`E48cSp9vN-du|toU?|V@FGelT}bOBrIbW~ec-VcJjT_+*$D+6 z_<7n`XKsluHXmZGf&|9zb;4465H4G6}40EQD*W^K_~R;&Pq;BfN26NVBg;|2$Vls$N^iH?FNh!3z7m4yx=>)^E?D@vy; zgQ(9q?`7My4d;R%A=n~X;6}QmN?gPX4uJMOBfRvqT2&zvn?J}8(#01tZHPKshP54c z1`80qAD+C>!-=Fc2NoSd&j31I_Wyq38=#c-mf|gx9ssdKO{8^qql&_YukE$xAZzSx z-5|OKolqT_KL(xN#vLvq7E3%qJq+i0sgp_Od40@6^9x+A>P^ZJ6JP0zOlR6Q_?Kh> zq(ZUb02Gkox=4jrN>%FKfdBB07x4L`kXScyUuV9LlvJ`y72+#iU;VC zkP9NLw|X?Y)K`}H+P*GXuS*)cY1_0yR1h-(Aq7m?# zMh@Y|MI~oz^Y{dHv0)sMddVmDP2l+q(%V=)U2)L>t>DWWB>qMuEQos)LU2mw?xkKT z=uELDG5~&0+nvTO4z?ya9EKb$tY;;MuSiG_=Umh(t!Nd`oO@rInx<|2p%Q&$gS-zG z>4DO9T&Ere1v>9HWmwGeUJSA~i1o!ZyTiSKV#7-6Mi4_IRu^ha6_xOEWX@?U+`A}3 z?#$4aabE+q%FOpm(L~lrDgdHJB|M-^sa=h+zNem(Y-dgR7-ZX5XI3?w;f7;7)FV1I zYNQcT=hh`KOb)C5DF-Bw1LvO4>|+IB)^r(nco>|fHVtB6;?@sm-!*BnvS%dUO z7ANFjZnSa~wbY2r(u)P6`T2;9cRWC@UT|C@r`}Yuxs14G zjyqfAk9(xEN51hMsi9N~lwNDuP#+{Bg#>P}Aig*`03KGep4U}B5NrIVcYoV<_(wQ^ zGh7@CBtFZ?a4k(o`cT;?^E2lKU#9;aW!v|H0r`e)7KLvjZKkmls8K==AB@VJBU@8{ zpE2-x5%-RP+xA*r&s92J5jJ()(cnpzz`F+J0`lmHZgo+8yaIJkc}aL0cX+6|nwNztn*3}9Fu?(0d7u-3Xl0yU9bj#69HhO*O8(KTi5s>K zPQt`MnPpGj@7}X;I4MTfZmGnyO2hcffa*<*FEfkbD>t9U9Uca%lt`|dN$%|-A*UXN z%4!&^6%O;N8+h&Q-6m46y}h?>hkxt{IW3&ykaprqNaB2XLHxt{pnlf^Mo;$n$Hu@@ z-u-{>pO-SBNHQYWgEy&?*`zCx;;=5^Z{xaJ|7fKH75H!RmD9MxMV0L_H5(|imuwO_ zS2CQC1Tx@hrlnBk-?x_?qK>+ZJ3Mqf$$GE@vZF;pKGljCp?l*?3*P)9L-b%kyH>k) zwS2uyq3EoHHmP&u34z9-;*7)P5s;JN;?MQ^V|nyh!*6g;c@;CTpyY0n^?1Rl6(f*B zNc)6H?AJq!=g8PS6VDC*ZJF5fHq&r*o)hI3!A~S-agq_kg101cSYA1Nak>9>OlFIR zF`zOMva&6mk(5jFWP>a!Xh+4{p9yyE(;TO18v%wVhmJ8$s7n5Rj_ah%8yi`ibv;&< zmNDjHvJ2|spZ})3+u>m)i#krk!Hd=KEk@paQG(6a9N3p$BAN5f@WwxX-5KuUpZ8j4 z8-P_g-o$b^i>wci+H0dLVvHbaVGE0UakYuScDV-J zig|fyO)>I#T#cB|Q28{fW0GQrgF$BB3!58g){%*c*4a` zd9LH0wjB;OV=~Zb50uf-9Lp+U2<>~S%B3;FFDdxh)1Ss|J$*QcC#ZsOO0nd`x0u8QKY@(J?VChA1KWJHlO6^*cT!sc+80dqZX)kD<50 z%VCR<#pAov+`Whi{tg7~T4L#GrTBeG`rI3WrwylO&+*N!NRtKNFCvV`uTWen(NZ@p z0*TnRgn={1-EXdEjyr7|9CS6QSbz;|h{r;;D2+5Rq<=zip;Frl<}f!yVfM6+Ox!l{uPf3~&FF z=HR=9e<{Y&T6JlKr02sTHMyUa5@pVuy^K2?ge!QLq9QqwD4JB7{vf2cF%J|-^(d?zC-iFlAP}UWCv(=Z~vMy&#0a`ZsaP7g`y7=|Zup+Y9Ucy(Qr$%JnMYW&oscyb z9h8wFxm11&G0z?Fb2#B`+u&aY938$Q1oCRQA<<>am2gvJbkZk8o?oA!f5rI66MP#t zcv##}TrrfD8%mtXPVb60t-|z z86#hn<{-CFk()NTXi`QiHdRdmOc<>#I=*w<3GhCCH)QsO>543e(<)RUjG-t;Y`|Kj zg2Z_FIU8g8`u5sU{*V1< zfYVR82?WUHw9~l3!KQ~ovJkNn>KksN0pbb8S##staBj^uhW9B~R0OAShlkdbQj0LH z_qXzBF{tfys!^vhR9xp`*1pM~>GynuibHRgZG(SZyQG>F-AcoXgd=zn@kVuNVvokT zl|I{30OoJ4^d0W8shYaTjiNA)AVG1}(B$TAY$LhfWN)c27Qe+kPums;vu-&G)EtSs z7&sy%CzZ`R-6fu4TMkN}Y;ub9XD8A++2r1)9p3fWD}h!C$C9uYD1fC1300<+-G=@v zQoT|3UPyHpWv?e6AnHkq2D9axsi)(OD5%woLYf1L_$`CnO7$y)Y%A5_7N;kKQHLfG zdFfS7f)6jshEK4sDy3@^_o1nCZsP7**7O61R}PA`veFCystMJHkofR|#rO@0i8R40VX`rj{AB6)EW*-ZVCG9TT4hM^@u|(lIDgCPf(y!!e>&2Ap^GI}*p;4N8-qjnbZ(x{AkLt5^721c?CfXUeKi#PLODT1s(Tl=&QA4BVwZ zjXOLv9uEpnkmMIOS}8J88_*w0PwRWKb)`E$mqzu=`0qv1_j2hD_qx}anpm1lnvJS8 zMd2x0)DeMGZ)&;8H#viI@mC;RLc_abtb6WX!D97x2; zQ~n#^8KtH~s#+)lUK<3FtgT-g1e2d{hl3<0&xSeeXu^=muvme2?y~PeDY=qOnp2*5 zm8W}`cJ*P};#^PxkY&h>rx&@tVo7G$ZIRB)hR@_V(DODX++Zl*PNEK<12V88lcsN6G^~+bRR2SD zer^vuRI$$Ofo;db0QoZLg(UTR=~Z@_y( zQt8$<%AsmR>7WwHv6KY9Ta|8#qsDlrhT$n!t_PN)vZHqowiZ;0{THcYMxb-Q}RaL^LNchEwgb6x?}|^v{@y%j3Vg3+B9zPFt~wlFCwcs zPl^dAN6X9c`l-3n30)$U!<-9o4`&z@P<%__DP?3UxsQ zK0mi-^Y66n8iNT@*Oa;v&Xc0UIj*cIBl18%Yz~#MTGB92nk-M!q&dy2*h-C;af64+ zm(*(&Ba`UK4Q_?lB5FqB(_VX~|5bzIV89^m^YM!TV;VO&m`Ude1f89wl!+miI=)DW z7~4!zDvuSD=473E&2UTMn<2~)a zoPBYeIN%n8O@Id3lVBqE#Q9!3($Bl!_y7O}zV^_exrFQ^L>6# z;}#EFmdOYdhUAIH(@VNK0BPVt0KyQL7~!IMvidWKHEEts+ZG3hsyMa1^Bwz!WJ1-D zP%D+rl8k0K&U@y#2T|b6aodOjf#bCmqPGqd+*(DQwoIki%>c;C6@{*b!+3nAdNgvX4nK zRBu`aLY0*)6R~&HnAHl@zz&57Fil!sP#cmg`jfT#ZJI=Pn~1E*7%VeRM|WhxEu?Uz zqGIJ-4_U$wIFkao#Cx zcACPw!MjQ8jNT2PWxy4#(~yoiHN^>&R7-DG)wU9Hx+J0h*2UV^-))W?J>*8E;4(pU zN|_BoIIOC4)vsGHe^nxyMgaXi9(EwS1m~oel&Z0sYS5B84LvFi6qpw4W^WsMI57Sd(;?I!4e;nQX@%^4K z`m01bjawW{LnHH6&1(=%8f&jBKEPqLK`CsOcW@to^^tV9hP@ZRPtrXAM(G?XDh`Tq zp!gNJ%YzpeSfRFlQT48>^!otim%`^3_l8Cw=3)f}WhJ#x$&qSg=6GF^>IYJUbNlza zGx|sONCVY5`FZO>0$EwXY1fZ!%%X=aG5n%e{b=K#73Q`!e&il7fT_T_fL9Y3l8Dygkp~OG|8K!5xun;ixO_~0eX~c z?m1yM$y0Z@mtF1+&@_zt9<$2e!ZIU9(DhQvV!9(l(;r2t1V?f{Q;W0t4v_T>!-LH4p20ax3DR z?`QR8+=T(7Rz2V$3FNvcEV(a|>P>J_$~R+e_KPW^OS|*NYjU&sEn_-SlT#b$G(>`E z$_=C*hLFAZ;?nRvF6iT~?fu6s$TV`DdeifBCA!ESFPFZZvRpDN+$Ic1qs^zK-uJ29 z`M3u@ZM)Q*qA@KNZ3OBr&bap>BJs3twfL63a&pnbzp~kFne{8{?QqYRumQ#cjY_<#~lRWX`tNG#1+zuZuH*T4^Atg{B*w&4@~At$TEIHWEz za&M8yA36=?azXVO)(G`IfMGe=hlSQ!`v$(20 z2X=|G^!E(!d#-nfcSW|)j4+-w;ELA^%)iN06D$&lHjDgw(&s#608i5{sn+Ow=pJx6 z25OOK%W)1sXd{t8T9i4ZMO(akmz4Ou9KFH8Fe(RGac5M$&w$X0t>!T$UO58q{&&W#=nC z=XBnt9qvWbV`W9jF&%Bs07VPai9Xtx{MS=9GKyC!q zA0s}%E##vylY0^&rX~dFgDARmfYpjZso;;ZzOF*d7^&h0W8u#;&>$I zI#RJLO&6s4B?-M{dm}vV(a*c#UH9m*Djf+w(k*GZsNp4(G#i=AlLvh}! z|3M7vqhxZ>=X@M|E1A5F8$2Ak>twh?m?=4mV_cl+!jysXq;pI7H&VsNF6(vIzipY7 zQU{VFyk1JG!DJ;;DnKr9lGG)nL;sK8ASDoDl!b~CRwdJI$g6Rp^RCsYSG?wBCsXCy zw!=LaOm|)Y^HHtPch2f)L0yE@5qN-be#Te~D(MSi?OL`?(pOcr67E z;WLUODz_GuoxDwvEKWHr)`ISNEe}#l#*l(IZ~`^R1r*!C_h4~X_?|qE~0y*XmSy4+vozO z0+zSOJ*$4}Q5I9F&!FS5dGv0U)09(-?OA1>Vtc1?hlkA>63Mo}ar{D*)(#U)_T zf!86NDcs5Q8f7p}@F16+9;x-XBqXvna;EN)LM{TsZ7IaykT#qT&s%ELZg{!CFe2C* zWoV&#y=?VPx-OKy(tJ~*p2iIx0;g+sdHXS}gHKLml;%QlSj?;FuPpqhheXWDAQ;A1 zGXH(rJa2_}6mkeJGP+_(AjS(Dc4R2|sHy>?jx~1wi$Dl)!JOqd2YTO@Exy${EFg@` zyow9FsmA9hc`l?M-G}8o??nfA6Rp1J0N=I^4myRbG;n5{Y#b#@h;Klh;ubltqakGoDIF(q}OzX@8I`2_G_@3LJqO+&oImHl`!>#>6qGN`AjbuEDs2aNL4*~0Ch^_a;c$x8 zyG_w@?g|J-9#^j9o^LqMriEMs$*0un#`;>UVRQVV@1MqPV>>CQo#6>@VN#d;^P>~KiSs5cQLmr%yABl*>k zwumq|+xz;_iQ|C0V-2k5Yzd?n;}oMVK@Caf$`!rXoG^Zr7m)0o-E;%CkDyr0^ z=y_RaL_j?^wCZt$HHX(s#-}&WWW3SEZY0&PRN`cy)2P=G*MO+KtfTerS1f2Bal%8q z>Aw#npQYL&2beORlL`*yNR<>?=_2*2MN^|{t&2+mCUFhd>2AvQ}r)$lCx!BZp`WfD6c4MZdaOqGpMfgn!7u z6ZKPtSx?gj_X?n2(N1{NBJv40MN;SWVH&le7FBt5bNIE3^t1u`Z;@F6yl;w({Ub)k z!Il8HBu-5CBi0^M&p(g9vtIY}>D_F5WO-9T1}Ozjl|~9&PH(pog#k(#*46;{^jk~t zt_XM$fbUWSOr@5Je^Gev%bSEblkhH&?0xM8X!bWAwEOt>9Dm<7y`8EJ3e^!FAm9N? zkSwSWCo0hc$CLGX@Whb_#-n;u$Zhj{OyjoMj#N{zomVxDm;aJPKoSp>t%e$$LCw5+ zf^&?>vqb+MEken;r|ZEXglwDWvU2{N3nGR?c&^JN$>AV>)%28H%lu-QIBh!|9A#9e zkmWdk=a5WFM&a3H?<(L|MgDSeeW#MUY+)0VTxwcZgb|^Pq13G`2!4|Dsv6IrAqkJ= z&D`WszjrMskNUo*WkU$;HVIwW)$a+pq$MT1woZ2CvRmFPU1D8Iy^{YH>pG1)JnW^I zL&-^_9s#-%1^5bROI094Ji#Ry>B-cKSSan2srNMP@NOWJMkm@aUfD>J5ZGAFO`7Pd zGJQE5b4{|j*Sxvr&78A-+BW#ttsDj*dL;5Bq+^G`AO!YE{=n8+UA^DA1TOIx`$eTW zjXN9+(Qr#0zbzi1ABZrdo^`+ul-xE&FK1&ew%)hs)p?)2TL~-mc(hN24uGOLF=5VDK<~PRr}pIb?oUHa>^U z-=+=jjjSYamQbE@d!=*M%_sQiGTyq%Q7@T*-a1LazU-Gy(rMb_T}`Aoevelkw}xF6 zp;HH-u^m`?siSl5gCLq*dXE$c^kJHIxYwnQT9XI}UmvoGNYpB{CdFtF1AYEY@K%vj z=fhNaHjGZ=77s%LRu!riK0ut05=s!x4MZBr9l6DD%vA}qg_^!9VSFsFsCGD*CF)&r zpdpk{ax~-9qp)!)E^BfaS+(pY%p`nQQ=Cb7o0wwe5NfrklXRfkfGMJ+>V>Wac{KRk z)T;42r`y;f`krn(Z5#YknP3#?o;`Eh9IyU42<1W}fK_sJaX4E;kMXf-+ocJeRns1D z1>l|_H5TsJNOA%7p+}CaETx!Or zxopH-N>g__%}Z(OZQS6Z);V-J1YUGzkZB_FGPcRA(vZoi+~J|C z77t5Qnm>-W12~U*~ z+Ru^=cwUHiPdeO5k-Nja;TvAEs1zbPCh)RFO7_*{8s*TJUhCg*mVAW>Os{!Q{0;O^ z;|3RvZrvIbzcnjLP7RzB#2f8ew6Q9r<5i}+B&Tj{Czs^Zu2rvW_%4SPrZ>-J!w4J* zypIY})|AUwUl5;#$W(87`^U+Ior+G`O7i6^_7_`p<&F53;Arwu|g3TUQln%6(urpOa68!dM-t7x`E*IQ|k|9&MPn zP05$t!nU1JsEvT=r)!YZGbZH(O1V~|@k1H10jgso!UgVn4Jo!gSBXm z`NLQ*P!w?`t+&ukkj1YWSu?n3UJ&|ca5-%|{PRQG%FC|7U4K;Uq#+fdQYQ{|h|Ej1 zRuoB+O|=j|R56wpbnde4a1hl-NnSWbSslk`hsP$28hu10XSt#(x&S>AoVwWLE+ZR) zTO9OU1kuQAV~}qra}EVSCbjN5>UGJ6+3FK~il07;yKT$?kgNPDZ(u`~KF&xBApFJ*BTCbNu3B;uc^aF zkvm@-jP!6a)rpu!Y%w+4r;Ma@GKSRM?wuG`d6lL7mMHo85jx5A z?feMOwy1q^g@uS{MFyd^L?i^3%10Nn6ie2pQ2KXXL|y~k%bH$N&d<^L$O2X|n|2aH z2-#Rf(alFGThVe#`+m`q-sY|EL)a@UgfDRja>Z>EhwR^hdl6lYR7+LEmnmu1)xPt^ zEjbsLSO|1q;QI2GYr-d%$Z5@5O;eiaVOH;TJjfVt6T|1)GG4C?psA7YipXuW(gNxi zmXEp&DeD?_on<0tJ^EF^@Tf;GmbJb+Pzn?n)V6_N?!JC7YeOwLlK z$8^$tZM!Q=>`PAZe78A1nCR?b}q1Wdl>;2j+dwGS0Lz9<2D-J9LPFypNP{N_85|kd(fr7JU3CIxj zljHwbTwr0*si$6$gir({*u?qGh)@EskHlE@X$RDo4e=L5+}BnZ2>4N*6uwer+YSpy z4Zke`Zi2Qkn<+!uC;u2c-#ru`ODoK)%8sq3N)4qb;bS~*a~aJxqoTpJ{@w}e@S(4_ zb;M$6^|iRd!e)9y94WSJ3}jB^hF}ts1=8~-Sv?_Pd||;*@vp^^t6ZsMI0v zjIJqR%y2!_q@?_AkDw+m>7z&RSX*LX9*R}{7T{`(Bd$(WuxK=@w_UmKFk{?Byl%o? zOU!E{SGXAVm)pv+mR9U?)3J^aa8IT>>Q{r??cwHVaNE}w7+8U;91^6Ua^cVt_D|!k z^yZL{7?p~isj!?(PuR0_X!BZHBy^ms>&VX?uAPPHzm{Z0{H*B0DDSgayv(lVOolvS!y!zb#oD{F?2{GAhK}Y8Zmm zK+0rEXAbWY8b>$hqar7cK7`Y6FnXDodTzSZXrz!xZN)bFm9dASsp^z+9rjI1f}iAk zuf#g@N!dvax{0NgL&;RGy<~&exP$4Qfnh z93BPe17hteh6}6Gy^f|4*A%kK{pBWdtiH9{eO7*yxs1{U0>7F^I~EsMICON93MV#^ zUC9E()UJiGwn>>?($lx4bFTDGL~T31ADl{%Fzc*cD7(C5-J56#ajsm^%8 z86XpQwo23vr-RRsDoWD}d{Rgw{>HP`X4ndFF8#0DSEQmIG$P0*^{&WV*>Ig**S+P@ zQq{AjiDw_`eKE!l<5zf?B6R>5XkxTR7l=$QB2I}mI6!A`wbfLpl5JyQEA5)c(Dkvl z!n{RpU1?B*_Ku5nRUANK9Jg9O~l>)raU3eQziV6RAs?zpN zZroJ^EJaz>OI9LEG6zy5E2S>6n?B(R4+qEi?es&F+3?vnb}lY4u*6Q~3(FZa&A#YH z`XYk_Ng`F(c3Me2OOlR>+_MUEEUvIHCHUti%+{JPkPGvrSOg@BY|8UEtyzsjnXOq{ z12?M+;rQxg$C>Cvity$}I1CD{@Sv zY8feXX|TC-nVq9K#`q7N9?dbw+6n_Bw#~A0f+Ii*K{$>APt#5<6Miv)SRvBO7m_BKqG2~UL!{7_FVWG@Z(IXb)l298n zMjKWXct2q}z=N#bxbG6P9L?IdEOS`{cQHr|Iejra@2{-zFfv5pLe4E`+-fjAovADv-VGH#Yl_R54G)@%4YFk6-8QHtn-&4wZNz*T-tW{}xu>ih( zC?TuSydj-x(N+wDQ_E6zX}>dpVJ(LZ@9!Y+gmy`WSuC!w%Y2F>>rNO&Z~?m7SEid09N`F!oofr66TVP?5HPl4tVguj1j3|TM9YGZ;ef3hOAK;zT|5)3HahDPOm*iz7 z=~L^aABw3YJ5)XD6g&QibMm%(bHu)QPI)csm?)_z-2xfvRijeE);XqyZ}>l%ldDrs zpiioLkBjk>dnd}iw!*%VRp1M7W^5zRYc47Y7e@y|G!VP2L_ z;~I$S=wQOuFu`2Cg;J3Z<6rjgx@gO8=!c8m*H##)aEJz2zq-KIBHR^K$!MdpD=9IV zo1O2jsd;zNhp6U47o8D&Ycgyb+oVq51%r#C`J|A}rEzh~O|S4xmHxQG%T(!0)+6T< zL?4CKgn|<$=Y$%jMGME+!n7^$EJ*L#ME8R9D!rmoLM+rg#@Ui)6VWY`d&2tBfdmzP z%-I}n(nJT;Ck?z=Cs$NTEQuhd`p{UB?jo{%3{J-l>LmIK*|U$WlLn)92Ul%K0jftB6-aBQ7kCx#kAa%U;x@;= z!oUg~S{((b5(@}?ZVkB!%@9(Ib9SB#UyZ#;*ROKm+1R_UtuWAJTY&3}-_CcN1+Tyi zs)b?UpD$jyZ`_cepDk^xMj=Z@ob6HysmXZaa5)n0vVdz2tZaqUzc(Smfh3(CV^lEE zEa4L=HKfsd6TL}t5l9LOXUZ=Ejqq~#nQHHoDfO|qN=pPtKq-U7*EJ6N2Te+wfsia~ zu1%3=crvSb;T0P`%t^R&tu5jMDh(e{p*@~7!&}eE$bf(Y4iM0*v@ktj&b1m=5{{9x z`=X;(&=M27R4yUM44agQA>UXwTHqcw-L&nkeowLORS@Xp!&t^C0{grPNYdf%2okav zMRR62)>u>P!Q^jg-feGka3|3{-{g+P6&B{a_03jNrf$94S%xB9mQ;l_xGYoNqNARr z6ZuUZg#YK_3Jc3ny%&L`NCU`tT;qUD1n34Z!6oO-q_g*w5xyIEE-s_5EJG{OK*B(Z z@-_Ch`9k%|;EgPNqnpcm?N0BePk%(ZW%~4G*qjaWU@6(WT`B20A{mjD>_`D3sSm!n zfj7dAYjK&RLm2^R6}d={q_ydWvUk`@sSAgRjSDlP@O$aywzP_O3=YsnXRT0~v_QzR z1sM$yij#FFM)K}VoHWfc9J~FHpG{-Onq4&SU#0Rck}q0rt*Nw(MAEJ6lvT=o)Ttg7 zUyk6(zZ_RT)|MCuw4#;pMFZ!D1_&4c_MLT6$0VbYlOXr)XLZ~Xx1^d{rS&>>f@ji> zNxoWFO+FjtV>7OoJbhOGbkZ*c^G_$es$dQibMnQBVENX?#?Qp&B3DeH}QQgm!dcTAPB1-3;a_wPGrLiSYg^=X*gQ@3@#hlbOR6rTmA)}L<<*!^>D zg@Iimq(@Q=2a*D5_&~tcIFJRzprxHsw>?xA?`z(Dm?agHk%k?_&C2 zrT<=4t((e8iIgsKjWqDU{BVJ#C0+Hc723g zO}&A86m|)lxMcJ25h>-f(4M3sU2#fXdtrd7E0O?T>a@T2^Ud&O0O)!%Tr~hxbt=mB zD1z>l48vYz*CNY<-P$f)mhveziz8Erkcj@MUEszh>qvZV8PX zOFd00s&~wMTT&l!%>~APnOIe{Y}xyXP>f8@Qfj?O)fziezG++p-ivqRma&6Z%LaVF zdsSHql$w+n$dHnc5$II{B+R4RDT&50;in|pzP7+XXSJk9ZiUmW-cgZHR?*uqNkJ3T>oCU}%v+Nsxmvv;@x@@r z1e+GqKqlv8(?OObhn`%GOBnox)bLtcc5_{8qnau-or=}Cw9(f=**jla)AnjT{sOxk zd=0Oyvy>fhpKA*Y^bWoSTc;ZZY#M95e0SBj)WHJfw>BvuoMmUF5I`QK=w$*Y)#Gqg zlVX@a$~IgSa$g{2x5W0z8a;n)HSt5at(nrFWJOFrEYZQSxWYnmN>nABR+Lb(_y7$; ziI!zFr;y!E`xft`NUuwT4R#5333iO8HcEdg8hSuKb|>)FCI$M&F%!u;8}o0};OF8p zYVaDI!>t>lI<~~f76f%b0ia8W@P9g|X~&Z$Us6=~+~VgBUW*3b;*tXnF7}bAR9-EM zfB*-|WMOc!su{%K+4R6wki>5J3tgRyM^?AOKyN$8my73n+-RPfkV+su4?U>f^*3VN zIiLwldJW-zN{H->D@+{TCT|3Q3g4}};e_G9miiQsBqn?W-}W-E%IeqJs>aG1iQ!`x zvbs!N=3~TPjl$uoz*GKS4sv_2IrSU1r6u;2SVsq-XQgs$YD=Wz2K3V&pJb?$?K|ha z9Z>!y>w2s$Yd)@Vq>SqzeA`sKYCSsdXg8>3z?F^#cjY`0QwVABC)GzQ*utwd`ildO;Umce-xoi^ z>1cS5*$j28t*|gO;1?rs&Kp$`$3=h@OdXkzVJ*}tJuVVA_aMA;0IN&e^J^{15FJpw z6<{?XkPMEwcCU~uv72K01@86{s(O33?_67AU(ZsJ>=T#6Rux4A#uTNpoP|Gio4ti- zZMT_GmHcOC(dVMw7_?Sc*v)XRi|$BQ;BvIW9X9OYcHb%GleA6WEBVLL0_&PY zGOVNMU2S7E$d&-DU}DD31*^$J{_R=^plNv2Iu7Zb73LWL854!qtaXf#2m`C&V?U6W zi(1W-;jgsrZoPsl>}!Dca*)^`+ZQwElWG)Zz`EjDs+o@Pou=H>KF`HfWLbPqkmNoq zfeIKL@k+!ozG!W92e?r)|MJO|^#WuruB=skW0Y*wxC9~_uSfuoL?i?4%fXgf7o(bS z{2#5e-C5P_5BjQiv$0=1Q?Pnf$<(bFg3KKPu zDqji4s%37*--1 zCrjnAw!%J^36L29Yf!m?$wy*ew6q--t7`LvM($*j;FH2r`r=qyVO}bpqf%u^_Pmp3 zHsvT(4ZU}7RZ&wC$h|L2g%5eAMv2|q*U}2>hE#USLwJAHo zUfSSoHS!`yh(HGMT3lhEag|yU%_Wj#6;7;>Gb@+TlT#duo0KTereb8dPCXt$*3mFG z8mobg%!EAKeZ7qD+^s1HY z4G#M|#RC~XYt@Lg&su5$J(kQbTd-BV5kgD5pdaAeUW_dZ_$`8 z%Sh8t@S>g9AJM%j6YYyDEY!-kp+%77A=OQa>~@FU28Vy_wEFUtN&2f<=p&FDQX(?M z;LBrA76q~j0d^R}j_KqhkOCacZSv7`HhtaXV>7LH9H;1^C_ZoDgd4+2wYujbM^Kac z(B<$5rr+i*lKQYq3aHKW;w!Ly&d#tG3z;zRAFg!NO?h~pF|QCg09E^>**O=N(d;zj z3ypU}DzcFpjl&IWJ;8RGSc@)xN*(Y|ym?u+b#@=LIcr59A}mhJE|2y8&B z%?ex)6FP8RFH;rQv*G<^zW-`?Up3#~tSvfwazFy-TT2zbq$Pk&#XkUM%QV9Ztik~K z{Gg*mN_SQ%cfROjZH0ZfxwiAedRz!Wg3qBTC5z;q1WLH_j zsgNrRJ`sV=MlmXKCeNwxGWFBvLzl%yJ|DV{wIv3snt)Yxrb-|?Q4xC!=dEG5^COP$ z4A6holeG>gIGGS_i!jFVx!NEZshK@REy|&~8|fQ8S^EuP^Zi-H|Mb#njqXo#+E-aE}OQD*~QY72DcWpSC+)k~J@yI+tXPTJ%cTe0MtQ zehlvMiM3d1sAiZ-MKH;E`i^-tZ6D1|``Xd8y{zF0_W7C$aA4%Tg>9XqKOM=jq=t0D z*Ezi(_{bzT(Am#age}}&eJ(DrFnHJSr-+Ga<*^TufL%neA*fQbPczY^tHqP-yq_-S zm@8byG}Z!6axiKP>UK4>pzwe7HO!TY>R$&tL_h2nRYd~Bvh$&T;pwzdNa5u(J zKEH*F7WYu9KNeS5m`Cr0^lX|CkSQ_luPD;v@RjdI&v=hd4%{1*zH#NQFs~@&++;fG zThT3TgRLB*AJQe2LZ9k8*#tbb>2cs2{>k+sEKRr;R~QI49ju}z7DEY{4GXRexi5N7 zR`LDnYe)Tc(QUODa|70g+jCT<#13kf-y+q#yc(qh>9YRDtG@)wy3-I`Ip``Hf|epx z=q+!?V5kGm(z*&CLuU4AoSMG*A62)51^hVm)zsiHaEus%p$Cimqf%0xVnr!d?-Bdc zm~?NSCCW%$)LYeZnY>QJFJ2{(^a$+OW*U+TGdh)Q3{fhlr@h;UR)}(utcHhuxVhS0 zYYPm_2&URNp~n0FN`zQ)B zOkrZJtr8>lNr?L-tNd)3xRw@)d$yb+HjD4+mCglzunce5Smcv4U0XF32fP{R!36FH=bNNVy>Cfb))7>Br)ETWp(X7^eX z$u^IpE`Wfz7t+px@24{53z_w$Ou358x>eX=OBFH(0GNhboI86fYj?Q1(y2O|Ogiv9 z4q0DG$g$=;D>O^YOJOwGg_nlX={>+P;~y#UUTU(Xl({O$@$65=J$ZljKbBV5m#t#q zisbkdmSv9QkOtdgv&RS7$F!T5#Yndyd4DD##~KUKW=-U+a3GxO@0^^nB-}0|XR3im zxCj!;eXnKb_41xs`nt>8kZgNrg&(2pRiac}5K`gO>zu8L(?a?7-QC!ojNbTmmT_&v zy3UqKM2k++3nST#+C_l7*0Px~pUeED^N+X@Z*>0q;tC6q5;f$!vNJsb5)jb?n>t{7 z(_lcJ`j?Zn;g!kyWNlc*WZjzcl5>w{44S7Kl{2MiZ46m;8fG?G{mEAdWcrM4t2i_p zaC04_h`zOYj>fS}-~ydUEv6N4&6Jz%dQX=h@!3pytgSGxw-AsD0moA|lUfKAkIR59 zaM042JX3DnheAfc0uoByC7Ev<}g= zNkD(5Tu1xn_%A%SzFhv_5hQ&{DA z#5ClVUHJ?=oXR02AqN>!Gmu|&qX}m+ELXa;Fngo~7-qrk;=S1A;r6wY_hOY~TpMYW z(yAbrHC0EWNUmgIq-{xeskNGA9+ytTZ5;Dj+-uS+EX-bY?L>BLHfbJ7xyMK76cY4U z^2l*|hcC6C@L|$*hflSieQ||_T~$Rv&#}!r4hJutfLF8j(ix{+oC-rc`;`5MSXoNoxc@>RtSEdwFCK zqUT2!3{~>=7U|-9&(04soI`2J7jl_=h6!EnjEoh z8YYf-HSKKWwQ8p%HPOuU6Wmj|yClMq%dKN@=z8=rbY^my=&G|Q#cLshtwHsateN&z zo_>bZMB(XYj>QEQnq;LfgCp~}#c6Cq7)}hteBjldL!PyCoDYNP!?{P##Inc2ZmKuF zIiX$NI64fI^(0)X(z=>U(Ni|&ivw1d2SRjwZ1t!`iom5%?xKeyic|e*DXV{dd zwu$w5(jI-0%D%i-UwU`!&|l)Fos|JulQ5C`iZL|gB%C32UaF$2S7Ta?zRH2Tu#a-! zzO=$VU#&Dr=teqg_QwEuY2g#~dQEL(#@=we$=r?GmsY8~cNc88I_!E~mY6lVY(<6t zi={QC^7I|^QlWpTrJgGEt7@sR4?*1^JMsitCM&_GRZ*0dZj@$SnblHHv1$uncNVj* zHC&uED8{9(71c}{kUlmM@uQnT@_~eZRf_EsBKoJQz+;h`D{F2?8rxK`EF2(p-jfH- zu+yBx2;Jy5(uRXoj zbnCL&3z+C#4ivoQQwWY!WK*S(H71qew~?F8@XINn{!;9{1k_j6dOLDBWaU}pz!5`* zd?^-$k5I_2ZY9&D@8GM~iq=IDy{cH*z0y87C5ERODo_#d0g#p)x$0N|P-irx7a7~j zbnvydYA_w<4bQp$78}fq+K?f^397bM-(eTr6R04pFZO4Wo-;vxwN zzn5i@P3!q<<~ac_kqYrdph5M7+lI85)67!-;)n{ar zydAl4auogV0de(N8cq}&!n{R6+6tiwv0r*m)?Z8#_Cr4!vW}${)|qT5R#?ePX=7>tFuDk5bX0Lr#cTEm!U*R{1Q@xGFN4*|Tx%-~ zwD@8|5k)#~ADbpP>>r%dT_b5~)0eJ$xY(Bt^0;*&q>UDGbE0YThgj1{|Eh=v5IQ>)Z8>*H+4FZKt$ZU>^K$=ghoO$UE#98*wZCF;@+2 z<$O$2YTl!vC?-aXqkOf~6CF!S%qynGERegglh;LrUtm8@^hbD=I_AmS@w~-$vFAMS zxwyi>mT+sS3sU)fX-QnjWV2dnM+8P6-|Cgve9O+0b@wgD+W)$NLq?!@3%DG3dD*QP zSxrE^(=9hOw4BTde3mkHdGE&}i_$B;z#+5lwG&}=_G68VFE9gP$yNvcuGu~U3>>m3XQ}k#Np38eVs_!Q z=FEj3F!$Ro@RfV?T(fGCSnE)_yJ7imlsw0{3Nj>eEh4`8Fv^f-@F8G@K>;(g)*j7Nu>PA=$ZvEtKEU@jPXfZ)*o1&;s+cbWN)v{4gZFs6pfut8g|a z)tbeBV{*J_sRho?#*6;!D8EP~pGz3zhW2Er0XUU>flK)OVuQ1mRU4$jErvdOUcHY+ zJ=Vg<5_YzsLv{_gPxr`22;vlGi5XLS?|4{mrc+Yi|a+6zOAjW4|jmES6AaHB?bsXs<9|* zH@#Tt>*Rb*P#-egg%r=Vb?1xZO|lceR*tJ|-2H^mt^xMfl&hPoTTtUHaBv^j6|Vdq zfRD8$7MhwmrS^EhR#RBOTe2)#LgRt8r1)IMJT;tAEgK_7G(gcRA(2yovjZtAn;pQy zEX*BF8X!ODdmel&t*{QhN*OCCO-MCalH7Tu#cAZ^L;2K+`@%(Yi~Q@n@>u{}HLpCJ zk4P$k=pE7!>phDI4iG`%k1_xf#*~$4e`3XTxE=`47uI8Kg?Y6)k~(!m)~SflmZ+QQ zooNAE6ZKU5;A$e;iU}tIJbH-swH5Ytd~>OYQ3AHFBRfwX_XHn!%eBWI$ISU%wPu=m zCP-&ZdS6>&A2KumXi~|tL6%-7C&58#Y4Fb>&PoVJw*mhe&KJUKaX;rJ297>bt7ID` zQ-gG(&+Jy3w<1}MI3Ra{) zUnD1Ee0Dkc552}e`x+?u$L<6CfcF#B*Arooi6f<9=Q+qle`WNCeiQOM7FU?qvLeGa zpfnkT@g)(wH4-dHyYcrEpxv@WGtHRHAQFt+C>GORgeStrc4Y!(5^3vs3n!r2OiXUB!Mo;E5$E zYE)OA^u}Hg{fXH4&_9Yva@MJRP5J;5JcVG6wFUM8=aB?l*vd~Z0_I0oyO6qer>x9= z2B8m4A6O~vUFK(*P6JS>9{7Cd^l-kEswt8DIzH#nb+p+}ifm`9ac8t!oqj}T8=v-L z;4~qb0n^}+f67MbZd$XG66Hf|^1il;Fl0n*kOXpeBOOBwq>2`~A$Zh;z&ulMy0Q;^ zZs`*r9E;0nWf8x$ud<6Fx9f|oi&RV3JzFD-PcqIQL5?ch?Tz}ZvaNfhhKXJ3PD!&y z!YO(fZIwXct||Vgotjl)j%<=d>E@APB9B`$#Wms>$^kVuOHLhG8kOg9U!?Mg%ZPk= zIx28dx8Aja5AN1=8hazDBy(1R#Cv2c#0QAfO(^e~VOse*a{IN4#7zS5SYto*8uN7X z!1Z{1YTO5+y#nQ9$ zI{S?wdRmG8vPg736|O51CFW$R?~QBxEE>>;}}gSTXeVtNq4CgtHCeVh*V(^1POIRYJZ*f_RVkt4vu zstd5Q?)(TdER4=*(sKj{kb`u7){@{jH}4sFKZ5(oeQDWqbqRe)Cq>ItQ*4~o<5aL5 zEewzJ*qiSZiySFXABo(tw!%Ds($JcqVhOqTI7%20^$L=Us?;#0e|Da3p&$Ttf3RQOqk%#ys{7@m+ z7?8(LuE#?SOpE4^xK{&qJtsFhK$y@)~n*A!{ey+v%p_a63 zj~a8T)TQA>CbCWJUa=&ucCH|&({8R6cYJ-fQTgNRTgU4@>QEMrSyah>W7QLKq=7t6 z8Iv>V0mrv*@2wO1TH7mI3(RYVZTDVOn-kliy};$&CI5<5M^U6$hA6y9!U=?MbkC~kl$&Lx-iR@1> zeJn08v8yO0E=RStF@Ovl?@!+}1@8#5P9>_ZloYzmb?1nW<^Pv`9PMzOOTSF9RM;2*=_I3%!e-BHER8=p;4O zc*)oxOUMEDd%WO-KlT6iryu_2r~mdJfBWx#{N-wo*(U;pCY{P4R!{_uDI@b7-ee`r7a^6&rEFMs-*Umi<;v;X?} zPupZwq{c+jAL<8r7}m$=mD@1>`44}>@9ua1Z~p;cH*7zCg5S>n{a^n0r{9hL{=@J4 z_|p&Npa1lyfBuiR-;`qKc{f=k6R_=_YT*&!ak!Cc4~cD#*S7D!CtCi)|Ms(g_2aJv z{_ZD#bC^eIDozIl@7I}!-*u{W%SYK=t0K@@p_EN_C5PAo4&)2-xT(M0b`o2EY%aI` zhoAlWH$TI|Km8%s+W+{+-~Hj=|FHdbxbxdNmEZk|{||rcfBM{d#f}V)-LY{5N3iU7 z$L>rsa2+crKW!nmP%>S}oLf)Tj~x2rclY!D`~2U3$gTb7AAa|T`k(uM?0@*vKmDQL zd;g*Sr~mRp{r&&*L;dgd_x(5(zP|)}_GquO+}jeWjFfv$jZX?>fk{%RY7#(8C{aDn z<)`_NeKQ>Uj{W^T4EUSt%jV3Wb_zzubw-9Jqtzpbnwq6LHQCLA6vJ1|iny&WdR(vH z_K&~$&98s?(|`M$U;OVs`-i{#hv#Q*wWWAO@^+o6!!=!%%3=f-uClj4rff!NUiuuh z4KGuKyQ#c@KmP1DzkqrF@T-6N!)~8pf2`pEKmM}tOGWg+c4^=hk3+X?fXOX465EwD zns(B^%u)Y7m;U=7{^oD#{eJEa%lMkFj?V0Lh9T@*1*3$to^h9x=tz=8bS|1+qt`E; z2ZvohD!to;%|eoVK4tO6=>M--|M_?S{y$9Y8V%412P!qfEhBA~aI;>z;SDmisQc3{ zI;Y?M>c_YnN4ojQ^n$Wc#;&zaB|VCDqEW8S7D{cDVEHO-vudG@;-1!Rew8=lw?7ZZ zkt*_-UGGF|E!4p4*;vtR<=qXPDr-h`k4(d~6kEwp3;*`V^IQ{ho@+L0;m4+vvMCIq zE6L@z3b;vD0E|n3W(_o8-;ClV`1LRT@fW|@ZL<_QN>_*d+D$_;(WCJ~;R~a5nIgY; zCf(JLrj)E-$P&-Xz!Uu!|MIv0@;K9E;fxOkpT)+(BSlg_56wZNtv$%H4-qbfBv|@I zx8i;y(&I+#eWh!yb2u1TljuQ_hOjev#P`;!gKO@!#uqAq^Jod*el&OEJc8KjyWj$+ zpp6JV!pD(5rBI;GA=j{EXmI*%=We#KqrmEOZgJs#z}7^{VMjjSTe`c{rQFyo9Fp+b zUtSB|-H3g-k-ZMTcIyJmvc)40+k}{qaTorh^FgN^k`3K|d1L?b=U@HL zamb;ACNyGjFoPA8T?%%@U=dyITkzU1>k;m?aX@g_K;>HFYC@u?JC&*$r-;a-n>65X z#ub)>YCT^X_p^Wa```Tb=j!fBc1otj2DS!Y5=3HDwVwUVK14YmcsTHA9myHnQoa6uk5C)YV5-NRrZ0);P91Iid4ZW&gLjlL#1}O zEJMG!x8tUohvN+tXIW?&+u?A%gxVMdBNb4*tAdQ-Is#_L^md>xH{lUecP8JZhe|U{ z&`PLH03}r?BJvx-DU;@XZF0Q%5$39&xAgFFdt=IC+o(=iseD|RrluhZ#h`QvCWlsF z_tziX&kz4=`BrC-(V)eq`49onMMeMxHYcg2LADxdP2Kb^)5`sQx3$#fNGP94y=|Fu8*p*;Fv7f(u{bRf-u9^Xo%B(a6a&VjTR*LN}s} z)4C#4sK!)wTyj_ruCDi%ny#E$Do@LP^^0Hq_-}3z>ljm7yk|LuN(W~-Zdg@8#PWcb zv6@j`ElRy%-u*b$t&*h4VHncNEgQ%x@tyfXF4EX2j0FTdV#C!VZ54S!(k`m;4^DHm7TDn|8#5b$e!E6yU9hECE}mil2FSm;Kjen!o({*FQfp zK4s-c+~&MF$*}S(b4Dj3p|-Q8Q?kTZ#3>hBbhgwq-d)D_mHD%Pq_%qC;W3teWh^$6 zu74;^ZL{pjr&xq>h=#=>Ub(N+(O>=OZm1~Ojb?P+rg;UkY!tnb$5<-9uEMz?au(Gj zU~hS=fV>nM4&%u7=*`uYz0y3dV%$16xNmJp!VYYs#F_f0fzaQJm3tVt$M${VZSk27 zBy2GY*I5CfoOcSAV(4y^+KcRMcBblfraR-`!c7Z0RPB&L*|CY^0O;xfcMFs@!cg7X zH>`HvfsI7(ntEGlldEAwEqW$lok8jnB|;T-HnR4d#+zJDd2_S7oasutvK`t|B$*^C z@Uw6l4q0B0E*t9*P`}RI_oTqwlL9UEM}$vX`k9r81T738Z^Bz?_?aO}1!T%KW@meP ze}_3r&%b__p3}!_@ZC6lf^!X)`$y^DVk#Ld@Uev&KPPyeiKu%fqMnn!3s1JGVTbg> z_&@@A@>{_gF?w@07o?-_b?4o)$$M4Cgb%YCc#lv*rg9J~f7Y-~y=pdJ7oTNE=3L%x z=urbaW7Sauv*~Pbfh`NXv-QAuXubwg35QjFx=3TI+bV3NiCr%btg7vZl;o5(pQy!sT@Y zi*IMgIMfs)U^rC+*IopzBH}608qfw)D$Z-v!Fo(AMpmE9*Tt+K)mfhOa-%rX+J6|e zFmurw(Mr`W*x*PVZoZYqB0?L3szI>(&9uM#`QQEe%n!(&zMI(JvJC41?c``CBQ-(4FCB*WqprO2@Z{uoLdCaKNr4_ZF}I z^5!<2Q%SuDWqtaO&nLdquzeU~rD1HS zkPM=vk4}y=89;K`N}I8nCYU$F?j@o#Ik*VdS01PD5=ru=xtB(hY#LwYmCcc=d-lD5W-EAvn_~zEq;Q|tRTO+bFRXC|~GtMXH-VX9dZT|en-{(L6hyU@9KmYL#i*`bZ zwRfOatuz}xq)NL?Lu9E<4XrxRM@#bU4xFjWFCVE3@JC#HLz|6NX^k(8BWDefz7)jw zR=uyq`Fdw${21 zKbwjc?5_lXixS72obW1YU&%m~-W}X--PJsEROoF0PFi>|kiAGVoFF?9pCApJ7Apl{ zvh}&*Hog~)UJHSz>!pzK$~w4FuCUrBOlL~k!p7rNNcU(N=!X;gK1&r@- zwpK`&*(AVeqh?ukYe>6tiN?Jh=owRgdb)ZjwPkPr9j9s4~7x#0Nn2zUbUl*x02 zvwm~CKWcsAk)QqD1CRI*x44T8w@VIB4k<&b7tY{}gw(lJvTfTLl@7Sfy7k+Xvv})RRKUv%be%tgy z9rX;5arWllYS72?mA^kpdfbJT!8GBPhJi#T681J1MNADx+Hw72$cX>%hHV>m0;Hp3 z2C>vGZi6x@+A4DwD%*`Ql#FT=7(_aseU-Mf_g4E`x4_w=wNbM#wyolW*N6;tkdC+j zyHzQL2?ZE9_R{3rRoHI9PrsN^upf)l1(T61YdJ)%o-9J0Z8KR5Z;|2v!?{%6JjoI5 z!{f;VwynOSB)TqY2-g%2vmuQs>;y5eI0lIJt59P1+TwN=a*ZUNMGiRMsJv2{ z?tE=4E$c{{y%wSO&AG92yht&uvSe*BHB2Y#etLJk8?XP;b4A*ohDIP5C6TzOby09T z2ud{Iob`T|J#XkzJ>lz7J~oR-Jw}ha4r5oxg42 z2)>F=xtjJNSd0I*h+TEz;rd3AH4XXJ8FE72E2W8)+gqE`ST#bjL&0Zo;F|4=1*rl8 zn3W?U5ghMDxX)3<<85-60bFaBcEyd5`P_`4;5DDK*Z|!VHp`oq%iA2xOK-U#KIzyq$*JzGHC?V@x?Isy|;1?^GB|*)HI-QN4_{??N+ixdS5mv zZTw2H^=jU~v$GBF-XyqvXCGcJhDg>8WvX$aRSqB`_=}`l60C{9qgW(clUYvn=tQEX z_G;s>UnX-zGBcoBfH>p{9-m&>$bY+P=^~c9l*v{IucE54}M)MvQp<>gdrznVP!c`BT(|OcyY0OLW^Ys>Puv-h` zJL0C6EjwiIn&AmQqDt&@NF_-h5KO-=jNj(x_jVPk>`J-#Gb8sz0pZ`J#sn`e06IIfnSrjtEIrt7C*p(~A2?AL;u2ps2AgM)p#2opywQA?HH;o6;s<_Mg-e8x({Dg{8PNdZt~L(KTQ zjk%;{4@ho;`+DH}A_F;Iu1+$Lb(Wb@#>PBHCKcOK+{R201S(KQ^j*IfPajwFWIj+k z(p`B0%s_ww2I|^T4V1J(p1LfsPr?rTdjOKM(k?Nk*SjBN@FBNhv^xRGV#YvFW^$*GCpV%*qVKrIa#9 zlItiOk&s#>Sv6lWa@0K)^NxPL@sfO0tCsFsE@1?u=*3mO7jUq9G+>SFvk%PH-~0W4 z_ILjWsYV|;z@B!l+qyiOrL2Hzd}<8r_Nc&S&FPFZK$kD(`Hr}09*~w)qAMXSXUYRo zrzRNybgcwI7N{|k6t{Nu-X5?&v7F6C*Aq)x+iK@HXPCPaoto6v7sp2ID5`drJ!G!c zZx3%=onl+d!a}=B><(Dg0J&1|FCcifAvzpKt}r^kk9FVQ@{VqRz1?)3U7OS{4iO1D z1Gve1Gw}!jOF*>0hTlI@13Td@w0G2aPJwglAn4$SnkIJIfeuC)sny!74yt*s|TMP#3_ z7r`M*$+C>`zU2fQjlHa<51v;b!@m@XkZ{~`d~3B@i3r5*h&JEd{_MdCVa z4KQnWu6tbz(%(uY8=dTy&Ix#wkgDd7_ha2W+Jn%M*LCrW0J2_65>$~K+c~;oLY#oq ziY&-uq%rdA+2pTDocFAAt$`JYIdV8|%Ltn1n1&JEAX90nmGnNM|Cc}is~`XF`CM^O zb*}sF3cMI+AbMiiWh-wCr73J!hm+dY_Z;eahP_C`_sg(!!%FuE=v#L;O{B)msvU3s`<;dj4|1!q&=HTe!`yZ9;558pGtspjp*I1)vM zM?*a5Ng`+I<=wSCdo_>T?x0&;w{L@yicdP&Db9Cs^4($cvWr8?g52}#QteOQdzt)d z3MxM+>&>D@m&6`%2n0_fa%{SVimeNiUM71_r2YzR)j=vCMqutt05D9iqh-tfUmQm-O@X$x<}WqqiI zPl}nWN;!+txA_)CQD1bCefFgIz>%{|Z#^!BvBp)WsN*^FJIu(~(7(f&d?_)bBG7$4$7$ z10{iPSNmKth2lRhLiQU;z89HQES_gb-6dS%FYwyW-#BCttJK;YK7`n_M1)dtOI+}y zL?p^(NRNxFdw(x^{O$P=brEyoms{D55U?r1*Cd8#MXh^yS*x7j96XW&?LwU#rg;Q+ z`;iuBQz4e%t?wcl)*&mYiloDL=lw{WPHyi5aA*8{64-I>VeyxSG~Mg21fVwXx2wQx zY=P0v6#(->fvET6yqEjVHsy84nS$wrj~r|ljPc~Ib3&OB03R68~RpnmP7X(W$?nxxlG~@mQg&?0X zb=F;S*4BU} zbhVP=i&8tp0k488zS&8!<3@vWS+{fkt+Othp;gRO183tX;St4CkgrgX$-)^=29U!8 zt{nh(p=EGo*dRgnQiLd4#vzB6Oi-Z$zo~C^O*|!fHrAr0_aVpLyi%e?$q-6KQVrxb zs)?<3XZ1US!B;K8+niaDtJ!x#aS{&JY{;9sBozm{O`NqlLI|$C``rV6JYF0%d|fgt zfp|&8L{0d(RoBSGX0xW|c8b2lq~q83^=crxzB#zNrMioyXqTx5skLP-Tq3tZW|~bf zZ1`|ee;wv;q>0yE-DCYi>nZ}f4?-HgZIiA)$03Cqz~DWmXw*#l;~`)HM=V#D7z)er z0N^-1z}=z&cRd+9Lyyh(Zo>GwA>g4fw^bRu`%tTK2r|#o*te{GrWQjMeA(l8xvaq% zm(+y*%s-67vBuT0wI=KFYl=o%B^w(b{In6y+5``llJ1j&xVytkr1h)EYr-(P)RB=Y zG{>~LA?`;fN~pTD#2o9rZRaKpb!N>75GyBG!ax$`8WQ-}B4?%=xihTL-H+mekM{ks z??ym;x)I|)+)CoOKvgPZ$ml3p-bMH-6_9r{V^lAFnDRA?|L6Ge`Kj&0plgq_NL5=F zCQ5`=t2qzKC?>gQA&lTBy?*LmYjAOSk8qUICz9=TB+jtS@PTyN*k`&N>Zph3f>hg7P=<3RV;r-jz#5pyu4@t{gzR_x`( z-?ifT(2?C2l5G#Bk@E>=F+*Im)|bl3)XXMMiKMw0V5O!>h{FGTp1dTOPsqDJUF{7P zOZ|r(ULh6b3*VrmasfbM8x(G>R5_b3o?wp8?V*Kwu!=1;&Z!E7p9+@} zLLOsGVC4Cdc8p{wWXo$GAS2nhlIloVC_EiB5@uvnqLk#c%{`Zyu0VPeoV8pIJ7RKu z1dY%h%9b9GNWo(BtOZQVwe@#F#jEM>AQm}V=GU4Px=HNb(S_t;NDVTjoo%SHXrOLa zXNcn=fTN=MP>aRRV>X5C;ivzT@yr1v$EDv>!qY`)sDXzPnRg(Kyi=HU2n8}Jzi z$Sp^JC}rUroCzW+AL!qslYc~~eV%LGuC-=dR`}r4)+&q)FL@b+8Qv?`Q_*I^2KRV+ z{3|G>#IC%;CnXTKSt>$ukOJ^6zB7p{+gyBa4S4kMoITciva;5=Qd-5m43Ub-)N3o9 z6~Ib4GZiOBcYU3n%>_dt{c|c`>yWg+rKBaUf#+ODFz3OVsaAqv{SjPA-v^JC>B`Nro!m`Xz^lvJFpRU>z)bShAx4@ zzmOHRkLPX=D7o;tJHauH##E(KGrZ$2l+?X&4hYiOB;EV4_RbFT=hA0lYq5U9L$X~N$0I=A{Mkhz#;Ek)(5WZRBpCW@=c1i1@}JeE*XD_^h! zX!(ew>ccI@;3*YEC0tEYGl95|BDoj=jhuI$kIL`EXSeR6v-o|my{_A^0^mG`6@xT7 zc93sSZcH(K^wK=v<7Y_s{$3Enhg$hw0L!`sW)p#GZ8r1q2Z^UhLnCc)2I=S<_;@hn zo@vWs)=j>ln9RpA4!FR31WuC_ptqKKOWykYRRQ%6fRH$xp{$~P_h!eI+546q&424GYsi=^xlYpmN8GzD%W)i8qQ3&;oQKmk7R9(< z_%cS3l*DO?;($`?%)G$j+JZF+&;Y0_%jHq6U|pD!})=UXkdf9+h@V2@}ac2g?m)9zucTffcYD z;DVl%JJW*w-H)D<=T|iv_z_vN5OfOOMyg9q03!HMDH4)B!j|8K8K!cmN@MU}j26>(lV| zniM?nPjOzWq<1Ud9cQIvbiBY&3|wW&mUe^5S+1(Rvd0s!~$;%TVAU3ADi*4IIv`k$wo9Yr58C0*uZT`!)7wd^0QytT#W4V zFaGtvW&~m1cyHB@YKCSj4dGdd!{j=VD|}T5Myps#&)3b`u9Kh6sAy$jqHGz@)t(6o zEUMCx$rJ&jt%D?R$b4N?6)t?$u`GGLF@-!z14ZdmBRQig^{f-F=i+Z>Q^&kSA_&_tXau)J0k$b7u4loe0j~7?4%!Q;<|J%$K0)h z$5MpiHn0I7TeE_RcI?GAqFYF|bC+>d`w>?5Z<3DLlDff}UTtm+Hq zZC+NjMemV}^~n{mLsuAJTd8Up@jLvJk{-*Z>Xo;jfSa0&ngQ~zdGVfGwSigl)iPC# z*;vW+B3jlA=LUev$3t1iaFLIz_rK0v#$X4A#int#f*}-HV2HK!s!1<(Tdd-nX=(#2 zt=jT2^Sjkr!S)nG3yPw+)rz1B3pVj-Z!}b#=^7YK_P+9xjp}r%Mfk$2y}_nb1*o#? zSTxqsl;-=P8ixobT6#g=(grLBzYV#&OXO>tciGu>po#iuJNFrY=4Y zd{-~!W639S1}P89v#XBK6xj>A+9?Zgq_QR|XN?d}f&?M$_4X&-k8oC?4~J@2)=Muo z;;po~%=-sFZh}e0A~FdD?!we?JF)1L3VTWrz~I*Gu2gLEtpj&t!)$BsGy_JKnG8Kv z>7%-?H=j}FqX_3dEpgptYk72Ogm02EH;n2wAUK^=Db0;;myYW37V;#O4m+~)jap&P zhvB2Bi46@>l_JsRx#mJ;+x2ms#x{!_orUIu-le$m9ch7!F2xOzH7j#U1IZeJ_uknT znfbq^p768PQ=klTWpZD<_c~*}2E#PgX(bY~?n>-d1*6(nlEHr{s&Q^Dy0UAf`m&6b z{m&Q}Nh)DvY+_%Of<2)s)$Kx)3zKrnxZ7j&^+p#`N+YuZm+Cx@3D^?nq^s_X!RMAY zN~z7PlzJb0SaD1(WCI*hWnzf8QURGQGO-AhJt#I`jp_5tJ6smdsg-lHN({dF9)xo& z*N1->SUbahH^2c&WpxeTF8l2rFXh)Sg)GS#GGsA|FND1~t6o~6rh5H~!+TxUy6m@( z{fXBdVbNU<@V~?;7dWekJyVt^W)Oy6W52$cS963(S@)H#M`39uMl%{a|AKUh;ztmg z6|P1`9Ds$M&hnBlfTX6i0VWKu9o7oqHg>|6>`EM}P(UbPh4|F@I&677ou@msy%hd> zr?aFWH8)r|rW&OY2VBgI*N}(C- z|D-@vhp~pT1{~DnnRi{;imJl0 z$x%~x8B2HF`gdk=kKGN{{FGH0z-{S;kJ>QA%T}l4SlMQmdQkED((h)?*D=R`)xl}Y zumU_mVo6B~ieikwGTLm{2 zx-yYL_09}b_^SbKg*Qsut}kLv6@16_+RF;8I4EnXYC(W7lTj(AsCc4|j{PS+8wbq? z^^d<#8|~#+|LfJ)-~9UPUwnO3kWZ zAA1uTJq+F-SMZQ>wBq1Gj5U(SD_|pvd8q4qW%3PrW zgLLNtU4dm{Llv-Uz~f|n!%@b0u^Yo#Cw89=weGk|2rT-Fp4kJ8gQRSd2(pbdY)J09 z8Oi>f&N~IAo%8F0kQy~SdIyhBQ$LbKL9c4T5PWkv#ysS8XAKoEza=oGT{&m5QnIK6 z7c~|!*(||an1*UIj(~+XOV_~d;NY*a2ljVFtB#J%kge?0xMp3BjARQ#I1@+gT4ID( zyz0wYKa!(r(7NM_c9IT-m8G;-&_Lq33)6uv!A*y`(ZBg~H8Z<=zPFyypa4k#FHVMe z_1zY>i7-Mc+hs{f2J={Wch-=^@^9;gcWcJC$Ps32unJN(M#!lm*IdvTb5`;?`}8Pn zcVc{ded+a94b-Li-h^&U?F3T?4P`$^0NiAZ9{M_C;E26155NW;)+_K(^T0of&2Olj z0_s9V?lf91mZ{Iz?){+{{poNrvYS@^oXw`JtrwxNzf8~)h8J`cTsgXGSo3{d$7C-f zS%;=P>kffmvPm+PJutJS7dd zFx5@0c2t}8NrDVxP%O?--HND~7$swaM-4VzC!zkgFE7Ea4i0c~Mf=foNbucOfOtxZ zuzC?~hIi*;1z@;(oqcy9dvhjydUX-j#t5k^Y(~#(D>iCNDMq23u@w1-r+j1m40WdY4_lQHJn~>-Ica>Rnv3 z+d#7|MoVRN7UtVBBpY2P;Z!H^jV<&Ai#ESP+n_@g3s|EmP4q~WM+GtkI&ZM)ssf?P zx~l~_(OHq^3k{~MSFQ$beo~=w!o*HNQCO1Pv2?PR=BOZ0+)^_3F}QF{#@@?6t@lw` za$o_{Tw(SYI|5EJtN=#9-JxM67mDI9ds`f`W7iuOuc~koMU+6d%vTqY-MzZcP2xAw zTz}64V)HXpbWj>w^?QOs`5`?x3gHK=g~+_*^Ht_vo66%_y!N`g(Gh+ex*M%KKs$;5 ziqdFmM;Ht{H({z*O*^f}brS0Srth*X;35BGz0aCS54r@WA}Rufg0JE)W4Hll+SORN zhoAL(-(t;L%yq!NH5J$yheyFv%+{t7WOlA!2j~xn)LkCZL*I?{R;_g-8{6nw!vJ8Z z;8cwR_0>5GqHtZ&cc~I|uA6f^xpG8?WgE&2UT5ILVhtKwon|py?7en_&9<~|N8@%# zo6&Lg3&_R_p~N~XtP}Nk5K>t?GFK)x;N+oC3GEs31yG|D` zvP@1UQ+yqdHB_0kqfyT8R%U=*b=VA`5Gi@tG2kmwHARfxqP96_RTdP^?F^6XJLRl) zD!NuxRoJ+i7@>^H0gnK{IY}!ws=Cqp`ud{doM^xDZE4r01*&=lOYyzPUU+p_I9h3w z3d1FNyPW8OSof)I_+G1fy|GytyEIX>J|-!sLdxKTV<~g>y^d=Qtvym(g@T z7~i!*2ZjV2+my*5h4fX^=Qepgu6=pOO#5_$K9xNfA64#RFw$UKaw3~TVaie1Vnru; zoozpzgrgn~`ww`3(iUCsj7EG1PY_bs-LnmLUGK1V#siuRQ*FB8^#AyB-o|QwHMHWe ze2KbHeRVK-Mi~m+jj4%dP}VpZ7OKLIt-6op34Zmy4Lw#{i(#mNJ$HjMpjjos%Js-L zL!b@U5&MT9^UN9WF;{NRgn`(Rq82Ss7Rmw6C45l8xzpLE4R@rnhw zqv+0NRwGastq9}59&E%(NDI1X`cg;>t0mXue!aqU#l!;nNLh2nDTASgt&7g8%5t&W zzH=53KNPyIy2qMlehd!5m^2vzzG+cf)LKjLDdv7{Y%k>}k7}oT(UkQTt+8$hyGu{{ z0>!dTj*ZM2@IAnldUNGF|M7Qx&W8>9PUhp#p>Nfd8{Tx@4XNmWh_uuqQX9UN;M+(^ zr|V?OOU2}as$$x?m0Ll=;0FZ@A-Zw_)QTw#Q~H?IswWt|u5b6p=4k+TKIW#_o%8mE z0e=a4MG!uuQwDaQ;IUxk*hO$EpO6ytpho!CCAp1ovF8p;x8lG8C;)p}akZ>vMT{F6 zJPTmS>gWN&ZUb<6!T1ioV7+k>#j+!O$RUA=>I}jcvhdzDI8U}9z51R&M4x{>Z|!-w zO;~SWhRM44bS5zZA`@HPdJBl;Kv1*w^14#~VA*DR=2P)YSaZ#IyUmk1G%Ge!V?-6W zs5R4^W(L`~+GHoW@MDGRz7k=@G1=bxU}xY-GT*@wuqpwIK*cd<^>s(4%UC@=RU`n>DWzEE@3!C7D+4KknuJwRn*b0_z#u9WCab=SJOhxp%7aO_w% zXF=Fk9-Nms+G^l6xpIn^k==pO6}tN|*M%1w0z%XXd0cA+y>#h&jp_9k4IEvM5(H2gg9*%+QPNRl)Ml%ID6cuxa=wfMJNE06ypb@5 zT9nXEF`al4CT59FZygSFsG=8C4=$t3hXDAB3+GMjMhZFYwjP+K9*YP)S{1r%vR{4C zNhZP^4rmBFm-ab4&8muK@`M%b4Rch+OTkx5U zX;ivdEe?L|wL zniB9uvF(>+EV3&_WyPA4hbdX;a(hajwCs{*@KM9MT2P~F&7M7?SC+IY{0;-^V!+F% z(NvC0YAL7o*!!jy$EuB0m#r7mnl!>xHgcOZW^}?wO%nJQ9JF7jK3#V=JSFRfowh4m z-QMt7qXb=Hc4rAvP`6X`Tq^dHNp?XjVt<7;%O>8UnhD;V@zNn0d!Sp#QY#lg0ef*V z$d>DM3D~S@$w908K;u^(+<;FlMhV%8d|R=i$f_o(uiOHl(>N?2NB8gFzb*OuSLYxN zDf4fB_xS|n-v258*k8PU^W&dC{L29o>m8fUCJbi3q!{Sy{(XD@D*ySz+aJHrb?xj%kMZdzT{s{kWhM~I4PC<2@~EwgBO2# zy{}Z?fB1j7Uf$E<-dbCuso6BOib;nPwawzH%GxZj4MR>@W2EGK5Y+)h7e}4kw$|b@ zJY|zooD{&>ri=UKZ~phIfBWu#fAhs@ao_&=!)bM$r^2LWSSn74XN9$;`M+FRV^nJj zYgwJ!D;Gs;yHLzhRJoWaD=Eq!aYpKS_TY)@3da1^ujp2P`Sq_}?e9ph ztO5=0w7&5aBH6|&1mC?+Y}_OXrd$WLc1HA(v{j>elh(5emg012np7|wn_LpvU;O6l zZ~pbwcfbGq_g~%I#GvUrg`>nK5S#7c;s~Z$?#3hy!^|7Qeic-60+k#(#2e3-CSjI0WGOFsqy{8X6sx+X-SF%_(;h;EOF4C zQuQ&r1fsRxM%K(k4OnMR$v&w3-e8?4g!_xnzxh}7s2x6Z(cElpqoTM*X^PsJojntL zm?}ZbW+X{^DpnSHij4_oe zTnnZ)?QPhn<*fo7ti^(A&q+OZ&py@qPMh`+r?^^M#XSp5c!*kTx41Rr5L#xpB1YSp zzn>Iu23qMgFo{Ar9aVJA>~)@2F}Ez|h~Y4$Z80yA+2>z=`SR7*4+zCWCVXJ< zK;XMAsj!0mt2%&443@%Z?L;&n7frIwN>It=v>Gl;erHHQIVm5v-Mo|0{m0+G{OTs` zHTc4GXL>`Ui+u~eUzqnfwIuQslV}!ZLJ!zu?fkyPd6lJ&c4rcdE)4H3Jrj}L6K2>8 zgsYlBFxMQmai{E(PK+Sgm!oiTgqj9~S~2KQtZetkjM zF6=H_#0DH979qQ|k=<3b)>yDxt7W6nR@sTnHsO?OsuqRgyBZYJQ}EunX-fEf+j8Q4 zteKIr1xl>F-!W|rZ*UvN$y95hbQjo@z*1n8sjZ!OOEOa-RMr=C0Ze9;HI4f3s}Wxbf5uX81wRs>=g{smw$r`YA78%u z{PxCWXBDaSRPd7IRz^X$TuUoiq{hlL+nXpb2x2s&fK{58WlV7G}k_wB_qKh0UDMcU+D1c6&EPvlG_A~STivnMdRtB8TBUBxKBFF#(@)^b8}Q&aop?|#1+71IpjYA`f!HjFshVoVxCijY{8+urj$W@klkJIBj)>vsp?gKZYKne5qOqBTauigqGT zI=3O%(sb?JtQIL3Slpm_!OlrNbKBl$X3gX2H-?!MTiJsi^%x@ycrmIUdcrPtf7c$? zuvh%DTA=)#eq-o3wokvAqPf3WA`ZOf2@Vw4;WKZzd7T`irZ_ckv8>T>OjuAN^iTrG zl&N;T^c&CxnS7dNrFGocGF*fhzW(Nmj}WwdjA6TlHVUA&Nzn~u4h%qVmLUt>oo`vQ zBgcB_A(l$x@h3$Y?p)_X-28H#Z-yE?c68V()Zlz&?I{JLrhdNGh{EC{pF?!Pg_Qh? zp$5N`EK}u_blNo3@Mr?BGj`_#`;8=THr&A_bZ>JN>>$Ik2P2Xx4t_3T_f|uNmepds z8jPM|`IuCU&%1Dc>JI++jl0=NX<;fP&DVwtJW?>J6rl#i{3TT$RdON)A9QXxG`HFU z^U6JX9rv?(W}4IU)6XyNC!E?T3FlY@n1wXWJ9bkyZNv?Z!VJtfSQsg0m`NTALKFN^5C7_zt^qQlCLjI_9%rqqvo<}k6xg5SM z{CNnN>@3x9yFz z^M_`EkXPd?^OA2vdK|P>-S;f;)4Z@Lvwa-4vTU(onG08VHLCzy%U+k$tfJYL9zPP3 z+?QHDkVe^NWnG9?sV2(QnLYTzx^s5$9=7}FRnhB(BrUrv%fLx(UH8Lkz%O2Y_wu&E z1!(aw3eN9>-wK6=kdecNv5g295biv4%TJvj6dS^5XwGRAqnh?H?YYZwe?!s|}4sOhf7@lW;jV z>e)AuGs~@j+ms8%;#03i-xQ#*lVO?_CiqXwdpIgLM9N5R$lw4MoNRD%YEY8j4_+b< zFSPG5q?VgD>qQ=@g&Fsg($7qSdivTr z>$G0rAttJ+?Pp}4sqwVR4eg-deJs5It_{C-|M`$DW)l#7> zk6`kOld^tW1bp*~__F3*?IJU#jowXy)tl^GTWzT&3TfDT%0~m#z?PFPBqJqT@2q#d z#*0Fh>T*W@nb7wqmR{bjRFUwqTj8?gRLMqHR=HQ$h6o1dC@&C8FG$pKI8ph+zOxNl$?o#5ESyZ!xvH5 z3a~j9Kh*F{e73LB{Kwya_sucN{<~lPav`%iO-Ve5PU0J_GS)RZ z*o0(q!78(*Ay!?aB4IaV$+4^_AsHNI5;SKNx2=U;)bE{@Z!)~6)22F-84fPP>j>Qv z%iux;SEiDNi=p|ZgLkVHwb+0u1-A4^o6AT(CVzUczu3S=ZfSqV0Nyo9L?5)UtsCsy zWQ57N*;=LdWi=CFW7>IIJxogLjRTgC-o#x-E*+WWRFkKo+Q>+-wU=t$i|QE|?iN&; zI0D<(C6!FY-&TVVfjzeLVM_9Oxl_;20lw+x*s*&nH^+{sF0&7C*mrBK`!;> zeOxUgVk(wbZkmzwo4UEVnB-+1W!f=s9edZLtu)O_EdgN6vw17~nZT!IUz8X@S=UBP z#;(^?!OER8Qtzjvwih*&yhCsBqBLgl1XZ7D{%TI9h7 z-fXf`(^8t?pRWAk_0Gl(qrO#1=@^a-J!NK5!ZuX)N(LTNK0Eli)d<^3_=S^_+Xj7~ zQmLt3e4%C7=`EAcs;}0XmO$GA?~prt?Ep zs3)|%vft`Dt`?_?YFUiJYHrtu$gULOsrlb)h1FOs20Vp+*_v~j(zdCp_vT4arFGM5 zA}q9(rBwC^sW8U5i!3RL=w$W7>CozWWiH1&Db8x^Yoe#9sZ(YHe@lA9+l*ShOCDIF zo6b0o1>-2N8pYetY_G14^(=DoJ1^P953`DP>)VVQjoaqc-I9FLo1Ii!VYS+=Ow2UF z!NvL(*(hUTMKi`XAHpbQ)%tEFVf5G*Ael|E+M{`X$D|(6$}N#v9ctg#k2_V^U=56e zi30RWwPaN=Wi@_5@Clm`I4So}yTrJe5FsZ=x7jK;ZSfa2uXB;D%&QR*m=(r&z$VAk zl3OvaU9tP4-OuWozHXgR#I>{Y!0KD3tv2Iy)lQPu6$i{Rf35+qG${TTVDJFNZ5aSq6D1V3IYUgs($--_5XnwW=)`gk56M`ZOi= zbKG)1UR!j$NArku7-UVY@6=-kOIZW^p? zT~}MR5kYk)>;U@B-bLY~i`g|_%zApiY#4%-JxprzXys$tJApN(bORvjX2bA98__FW zd3&rfBkhU}v6@iLgv6S-+}F$XgD){AQt^?u;{Uudt)tFH+Sx5dz`N|DHLR_dGVLYS zqh>c)hrQerFvNO&+^jX&x*++yw%u3*{6?1Q&9LuQr+I8pMjBFNxUA=VKEWYE-1O5lis++qmWJ*m!+^w^NY1$YujME z4i!dvJ&$)1gTSop#!~mR6w9S>M`LlQb=k;RRCdZ6Q5efScHgv!W+dI zn+qR3tsst>Ju0OgFRr#*<=#hO-`yw)Cz#ojlW8J)KeV^tdwsQBYZkaf5M)^XTB=ece_j0)WEQ)YFb=IqX)LT;8hE-`aif;m>bgV_1jz zy?*nmy#3+D-}-y}m$&?f{H`7TacSYFHI%9|w=9Y}dSlgmrO0Oz1f|Z%rd7TUIGh#^ z>-OKi{o~93aT&8Yj+LDj)E(<|xiA-R{I~r5pZPYf$n-8Xf0qF_z`L%V{N>xXAAWrI z`ppMCy?<0MEa?iv{4#&Y)80D0%&h*h*Kb~YLIvY}|LNeOR}5(=e!hZp5P>{!A~M^i zhmz8MO`f*RPFz-FIW_xj;otx8`rW&??_T`%>3i6toG%^F z2~MV52MZtHUm~hqQl~*~y1&>ROS*V`S9B&S;mtufnCq zQt%9?2Wld8D5LbIq>A>D%^B=p|N2?5zxht;PmVz~vtz{ap<7wW4EE?;&p~9M9zdaB zMUiHRN=>&sbdvI#Gd@ZVviEIOTne~Vl0FvEwt?mSQCW8HjuapzpG(aKxr zPai(~_}QnQ{^c)!*?oAut8ah!^!wKzKK=I}-+cQ1O|aj;KhDLhKb}j|SBCD1G*`<4 z)29@hJUXHAwJi9;s6qY9!zcCWN$Y(sFhWUYCv0S|%@(C_pvJM+ObMimC(ZFmHYRe+ zlrW8zi6Qf9zeV9?1qJjKKe=5zX^&4PXH4{+Evhx&*+CUYV<(<*It1q5($0w~< z4)ih$)tN+4trW?1EmCp=NWHXX?8TG*lhZ|wN+aYUhSCa8h6H?+m8d=#lT&ZK_lqZ$ z{N!}K4rVYauv9dWVsT0&rM&=Nh0*THl^8D`ji*CjtvAMFW^A)(Rch?G3AdC|Grks> zgnaR2IzE|uN=glUP)rSsFC|fehil6&0Igf2le`@6X)lx@t*uzyQgLW4)=S`9da!Y4 zT8{=>L|;C7+6=k+jJM#EVpWCJssI3KEo$&tmF&FHmmfx*cEd0oo-JsBjY!>NkM|qn zgp|4sd>9L&dim&SI|P>lQ}FOWXGUJaM~ym)fGzEHuhPbF@n|?cDT`FaI;@h!s#>4B zh}I}}ebe0r1&=>IZd8B$g|_Z!Rh8WFip?;CM5$G+YO2;q987B3OfAHxTUf7))TQ_0 z{dJD=V^&pB{Ml1^H0{(+z~CQ20mt>Zu*s))d$oIJt@~4nNB;Nz>dUXc{S5yX zTE6;Y*m?cK53hdn_RYV4o7?+Kn}78Me^#6SV6n{l1G+H!!;!26Cro8^?a-EWNJ;37 z9p!v>Ch7%~RvgS=092NqjW^VYFj4I5S5xY))na>EFfXI(p)$;$3xj8FNH`2RU|zIR z3HAkMZo#}LIl_=G39kz4AdDBK0|_^peM-c~ZWqi;9kt4usV>0iVzrbig5eKIjSx(M z8LtcGMJGyefd>prI75Dys;XcK+Ll(5hn2W|^yF@Wij;Bh7%(LP6=l>cjA|^P({7lW z{H0}5Cx4RyUJ_zthoi(tVM=ADgKi)xGDfXu2K;2zYVMsn@w;xuA9q8Padb+Zc}x5)JZ&QN8mIkyxPkE z+wZpAh7ehHiB)uTGm&C`cv8at$7rSR4hDI)BlKw>I@PNmu-MKAwxsqfK?<;u3Um$R z&BxgmK5Ynm)Q*)k!W+utW=uDMT*2QchXatLnz`1~e(<>!>^*QV!)A3Rc)$lNnbE;{ zHIkJ^-9{h7;9S5H3azMjEGrQV4nZC&NFWf|LRml`*kdVV9u=yhDn=Htdqh{UN}W_4 za>2#nXv->r=Z0g~!l(!QI*z+bR>hQMEKc7B9}%FhI0ekmGo3jLY%Ks&re1#4n6j<6 z!3Q>qNj4O!2XfnEnXoEZ0B*rcX_oDmJBaj2MaRLcMe@ey@aT`ZSFor`@o5*C1F5ky ziXTBMyALS+H118gwZ==F3;TD4^el4yFx>idjx_r^+p_BwUv}XN zVfA{>EeVwjxJY*}nW1(OAEdV?N?9v<~c(6QxT7YULM4~hRHt_Y)LcEQa zq{n0iXthj4m6RTe3u zcNQZTD%G-uA=|tZY03aZwOPsAprh>bUi zn|ELv0g2;h;Dw6X^u{fK9#a{x0HExQC1~)Pq&zFN9oUN3dBpmp0IfX2o_%+w3+bQ9 zg_xi2Lh`7cP(64cSTHY45*q@ztX3a`Zu&YM;1L&c9I0k$a|$=FjxHj!@)En89#1=M zZa=;ZKdx5k=MK@zON6rGcrJ`N&bk9ha6(5~IR+530$2e&i8xg?DrJ`V)vy2z5#Ywb zNNEi>kYUwz1J%n3tlE^@_QE--n@wuEVPb>;9L)pGHydSF)`DKe+xDV@D7G%AjfK;NR%8EZk)*YErgnFzV5pnUOlPByGH-2!>(Lp zQxjY+CK^)GWx>V5jaIA*xY=OPr-K=$0*?u^=zWqPL1`?w*ifr=Eop(_d0_*VE0x4f zbvh*93Wj7CT&yd)=FBZvu$!=>z;aj@1;VinuQC{8c4JC+;V z=jP|Dx@nkU#kXDTwX8-{!2!~`0B<2Pqj4z;XPpnhRij*fMq~^`X%eE}CNu^TLo-{& zP?8FUF@sgX&uLJ#+G>M`dv0j#IPjk(HnxA6`)35lR-NZZqho8l?PA-S?nWX?(Uk51 z>;n@cf|LWkxDH2oszP`{H+>ob!e! z*&c(zySpN05BI7A*(?B6f$+_Oun~@B(R$LU^_qjeuIzcZSO34ujq0es%I?)h?UW8T zjn;AB&FA%S51xOH*?E8a=RDj+=b!a(xxV}Dm#;oA?{dZT`3hmb#j2>C|0}-Z4?kRN zJ!)2h#7@@M+!b7V&en5=I)fJT1BQqzTFg=EFcQ!&^*&|%Dkeij;RC%heBPMdG@g(y z@OQ1fNa36w0LhF)Mc}f5&8m~lL8gA2_GBx)%Eby@8-rg!t9eTJ02Yuyy4i$<%oJBc zP8yV@7p7e(t3?Eb5-L=1ZP{cS{-gH&zq@~%p9%P*XjY9P2PzCADN-S9x?6= zkWpbRtGZ5Cf83^@4=^_5S{v?owzwu2=jpUEREUdrVTtQi-S%Xx_qJI^U;#W;*wC60 z&+Nb-`;?#*i^S$v*?&A;^}N^4O>Nwy;*y?efO8nGmW=Jhi*^SqoHa0O8ojfgzvYiy zPu$3XR(==Nd1RYzEFAsa#UlJnNMXMG8>djO__oU^RZTE8Rf-Y-hd_A0D$I2<4!_G& z1UW7E8lPZjE8&a zWq<$rJt4yHfBkzb-{sQb$#{qJ7S)``h3F5Y570CsDFu zll58v9^fgNr=o#+Vaeld@PK`dW;`%VUCT$dVH90&$4nhV3iv(RaD=Ac6qY_H96l-ei6ilONl-4db+wDTg)L{9n;{{ue0U)VrQFxuz zZOBwNsBU)ibqblriZ!ZO7b#h{KR`xG2o_&uD14GO^+Q{>E|2AF0+$E3YDBQ$+&UIn zDk{4;=DE?VRE7jyE-}Q%i-8vNHK`jb@3~o6F<(RYJWR!S%yEdD^hnoPa-&((L8z_Lwew1UjBwOMA5bh!({Mis?BYd32?Hb zJ`dLmFSruRAQW>FbF{+QP^Huq3Yo3&`SMBUZkg~B#VEe;88BK z7|;2d_@Tvg`YAP7tf-s-X<(LVRHn6BLtMz$9J$5ZeGxs(aPJ2JXf=CCo%}HJnhdx7})_G=TC+)W|%>T(Fb8tRl2pF#a0!3_hH81ISOn z;xap*>Kqy%py&Y?mnHsvu{!mId`(+})CC^HnFdzZG>fOO8KqJRutAM04$1O z!-K}`Xh-uviQ*!?&AH(5*&XKjCbH&I95xVK(j@T4N*wP+(>{T^+Nuso4(DE{w$|SCyv`=P_y+4|`pb{D=p|DcoT`U_Dmvti1`PvBqn$%oNgg;6g_;7 zP0}v-#u^*8qD?FXgArv2Cj%)850|W>kvYYsd-wu>4<}*7s4N4{lMyWqzA-dcy3(;M z`NmMp==e(vp8&m?n~||juxPN#pk8%;4}bQJ1^z;6jkkK@S(`BQ&O~yUm*`wbJ};%Z z=>V|ch7l?-hU*K}ku$u;(B0bJe4Wvg(<=24;vmA8u*EG2lez6LT!Ra3It#7qz#0`+!ohPC1*2n4ic#g;{-WAu zT6B1)X2dxGIYfLBA?+|Kg_KM+3;qK3xq4nY2TQVGS*`~h;MtKb$yn|1xBZ0s0qzzt&HD>>jR6_UN}FX%p7f@_J1 zRU+Df`mvu8pyDt_8hA(bv}|d6Dn^bwEA7(*v z0O#rJMplo}upoCuEg=CQ`w!; z>=>rmAz{Uv&LM3AyTJJ=jKMfIQ-*<;6twKJMb+YhA5mGh#%yUr7!DK;@*rWQeSi}z zfSn~T`4O3oaW!>jHED(*8w`gD0x+>P0ClYW631eT=aB)DBK9m3b3H5vB}hE0Y&;W> zmi&l`0en7q;XHGeY_H6;)fg~)%X=f+4BnpoNDMkAZM~@3ObuP&f)Xzvf|RL)0u}8R z{D?H81}vuNAyMZGYn6Ck0Fc{!$x<2{7yJlLZ?>brPQgpV8(0ZIIGm_MDLDAiu8Nw^ z(JIG$GY@y?7;{Q>itK?SMwcpkRh2ONI43)4haL?dLKwhcSP*dM)U1L9aV&@{F3+nD zPlghI02~aYFu)uGSi`^PBw?J>aBNVhtaP^>Uj$q?l|^vF;Yp^>#evs1TV<1lX$-R` zAMV33DxgSZIh<`7pOuilC9td{L6&C7LZ5fPZp{=h!Rk88>2L&qU@G>OvCel{(~LUn zv!|}f;b{=wN}s^b3eulNZ@C9Q0vPTkXwwvsI#m^bV84wIT7vPxUK3!e45WDQNxTn`ruW1w`rH=82edL}Fa#b0 zzi7v{$eCe@I;!<4!e}gr53nRQ0Dg&xDX}Uuifl0BB4H`8k7yB}atZY9+YkNChu3d^ z=pXvKSHFMv`iJ9Pr87H4S#Gci8J?XhGOCX$4WY(VZGv+O`{x9ByTu1#w)Eq7;4lAe zc2VinPDy(j)?*hx>OU^89Zxf&z_9)3eb43H;ni}i?4JK|d3m_v>n@ycaG?Ww!wo9R zN2o~xG9yfZ0sZ9$%igz|j zSa)(8*ee_07HWSi_VI+hYSh#O;n3V?F9Y?Q%{pu~IEXdoKqY<;s}8pdd($;|SqOhy&c&G~lF;9eeh!DmE1zC?gvZ zgdH%!idAfI2Q@`dd7Tt-xuxQ&2aKz#C!iW5$jz=Uh!q~%=ipcg)?B;6+B`~XU~I68HCYH5AvQ|^W!k%sUy=$fG~B~ zbxJfc<;zOOz-*VI>A)7k5Jaa&F(CWyjs&O_t}aso0+m;Mgo4=_x{MN z+VZLiZ(6m|Ddp}WwRi|Hx&l?8bo%?(5aHaZ_~8Dw*vPxR;zYv zeZR%phSR!WQ$JJS{kWu?ZnO1XcCpP^fE8110MwPBoWGOcB8^fo`PTo$_LqD3)3S2fV#_N*l2TjtOn*3Ljf;6MeF2Fu^wH8owRpt zwTIivG7+(MDxX$n@@g<>Y%33_7#zE~y2tN3=CVJQ$eVqA3c4=rU!YQp`z4=6~U{G6y-vp@oqV<^$h4lqF^I0)wZi zdL3A^Y8#c%3w}r_1wT{<=2MaVX zn5!4OWjCrShV}ekR>m%pcc*pMhMGB)YEx7*Wxg|DUyfadEPGoZ@2Z#3d82M(Vq{ZF z5kWzO^tnXP^H}vv?f4wb8QR)ZDDkR@gK?JeA}>@?&DLI3akD_hIhr$U!sMt7q$w-f z$02*(NyB_QGv)(6-`rNI5|cW*!dR!2gUQm}^QUb{W~8 ziiydWqdn~gS*^m(C!qo%wie$tHO*R#;<94oua(;YBoiC_HWN4Td9WE|5_qJ+45kn) zvq_eE2s9?kv;o#;iCGO!dk&ISBR!a!osn)K%}*C>8rF-b$}1;I`e&wDcqX5CEiEY5 zQ>v|gFOO+{cxva>3kQE;A7q8=yS!M`wo4yz7};oTPzqTq!?xKm#z57@$HCD&EBr7f zy9*{f?!)#|xqv$Rhdp_lx)15hmSO|%^d9ahzklC9yx+a)f5jhqosZR+fBvDr`SAYJ zh9|`I$fum$t7(E)<(caZ^}=seHHr<=!}v3si*=b%O&9Uj6hEYgty;(mPNBpUngDEJ zLk-R9ifTpEuIFY_57FH=7cz`7<)cVPsd37a53QgX$6aNSD!I%p@@_D zLO2J1zEx)bVRh!4_wZ)3GxvPepI%-aU;Rsqv?OkNs&ir>M+gP-z7-^m0k-`ZlewRIH)Mu{pr(~{xRat5awvg%?jfc!kM z{^SUgi#;b&cuN854*C}*#@~W+R@ajCyhGW!6`OL|Dg}HnEY-bP3E*&&N_VV7(^7i9 z=m@p134GDW!dqmveTk$+Y2?vr4?A^g3)Aov5tPWWSPTLq*3^)n6(F5y z_3&`inWYQC@U4IfDQF{nPSVvHTAB%bKj@A#JoA`_kQ0!jkYV<~l3l_Ax}ckxXC0hT z6~G0skp^b$R9vc2MDG+(3RoDBXK;QNE=lJVW_L4u5*L-{mY4`j71$9YYJ)8n7Sx+f z0GH)kykY7$^W?D)s{nG2rUBKZSpxT&R<~YSCZsl|atnhY=faFdo3KHPiDA}n=3EI- ztYR^n6cUGuu|h0xGVG~_xdPu|*)L->`hkc)K&P+7aun%^EZZHO^#=vOuHYQcsx;1( z08wi8oMEaBlhs@GB6$LJRe}Xm&BI*o!*eA7V0d(L7@_M_k;1BlO3C-cdrKw&&uZ`V zxhbFmL6(sSGE%cB06~I8vLa;+HF^eLzI^oDrAZIV<{)C=JL2FFEk{||R7g36vtwp5 z*ZQnc-=(CF5-dj-(umjQ1wn5n8#u>vQYOuK$9mP|g)%I=0eY-{q35FN zJ`4t~f}(ijV2wt{29{VU5F@;FCaQ2=-H2HY7BfnU(~y0E|6mAgSCGJPtX>G0q*QXV ziZR791wCMkZD$m#8?a52-OP-h))sWa3;q0y8ce0^7;XbPDEjX7vg268RA#fSB>M4P zpaSO3?6UciZn@1?eA&e|i(|N?BSlXcW;H-)aK#OfQo12~%OmNhTwqE|cpxlG{cN)Iurrt*`+ZJrUUDbB@DWp%$8cS|ILB9i}14!6X(pR!e@Zd2>)olM6+^p@Y%{Fp9z4AwWDfNN2fl z9R=jR)m#=X4rB#@pxO71AXXK2)y7A{M@iMP(9kd37Pju3<5jAWyy>1=p><0FD7~R% zw>flieQM>9lXB-I5R`&vyXUg-W57fcKuOkOcwSRz-f&13)&cB$opl}e$x0o@$;MCe zW{&U!VW?Tr(CJyXQ}(|6;`#FYtTz0rU}(M3Tv%`rVp7Kp3m#Z6*@no|HO)wl?UO*; z7s4j4s-f{mMAeMJ4c@X#1KSUSIvh+6Ovb_;p|AKBj{Sf^jclouf}((HEe)Hc+cGmR z_mm6y+eYFEJ!R^)Pi4q zLb=eANXiq+h16~P{e*I%#{`zHN;`;c9S^73VGFKF@=|KqTO+#btV$1XZY5e#V}W~A zCdu}ARr(E*cN%Qi>AOJjbILo8FOzX++?@p;SF5@y&s*_rmleMzYXvqXf@JPJ^7vHrH+ zt}MPs3Od+Gxr1n#3mBsaxr3dk)=YT3mFoYz+>)NRn2+YpA2--z^MAPUPCwD_+{e?b z&+Gi<*WY}G|63+fzWQIUrWgG-f8SsI`t7^d{}+28f6rzE7d!Q8#aG^`m+~GfzKvTo zpT$H=Bw_%1t5g=SlNJ>(8(A`6g>jyy;T`MdH(DP6J=;AEUV zdlrKOPaCF0;X3JYsgul_6ToE{dkJ`Zn>~BJdt*R_E&Jehs5C^eGIksWD#ySjTZ^!J}Gw3!lsLWf&&VDX2QeM<+p@$qnj+{zV zvu7W~X;KOS&w_(Y%JCR8T(uanF&Z&So=L*x^G&cxEh<(P@G2DRRT+8KQ~&S+Bwkg@ z^Y@;%qy|zC248kms$s)E@Cpy-0cXpp;bK?wWj<}mtYgM8QgBmKRygc==7qAs{6}xV z{C&2q&X>UhJHmvKh}H3|EJ{S?&j)ZG6Erwv%Cl$Bvfq;0y`VHkGh?5T_N26C0)NRd zk}wH>z!f;6V+syJ$l}f7%{v*)|D;NL476F0%5#b zbGCbIj;q(6t+OgjwP5%!vV25EQ9wfk7FmbUObliAiOhoV*7n67IT zc(+q{cV=PFyNbCK2~~2?n{0$X1J$9I~*Xyh}wW>qqvDE!<{j_q?UpxB({(M~K#@fIpT=cMxuj zA{QZ;nWcIl{Z}Ilp%q$6I3nXT=ZZln)?4IIf}1^hZYzNGt+8WqFf|@m@Z~n$-cy*m zIc(O;NJe>}y{an~1Fq9hk8c$0rNQ)NU0G0<^t=~MdC~UT@H>rf z6Iuf}GjjIqIr%syd>&_onRHMkFT@+R$G~n#%G61uZ1F^ z*k~DtXt>$4=PnoCrKw9qp#IoY^~E-dVrUD%0}mKylF{Ytc9m?^Ner@iHdD}A;=EG< z(Yh+3iXNdp{KdEj=zytV4AspC;7)Y62X zhP4B(ffrYL)=i|G-L5l(33Ne705^v4*#Z^I>|oxC)4t&p&YnGON$Pz{BG8bhwkwl9 zJtiHj8a5{t4I#S?xtcgGudhs&kNj1V%|%i|Hh zVjwdZh=AadPyBYOMs;OYMx|F}^oeSK7@0n&`*c=BdU%+rnwzNxGnCL$#7`_(^2oit z;ZbXytJ`m9`$i#ET$#AtE$;Ziy4mc)WlyyY0N=R#zHbitz!H+C+8|HA96pu$82q~0 zBoN13cW>`4?IO@PE6EcN@eR~i=29A^nDNKmB4zI{dyA4Fx0cG7AoA`-XgUG4DjSRG zc);EDxcls_{)+sFWE45#$qqZgw$g$6)&^iJ=9u~}O5XZQQ^i%1RsgWuWC(5^WDHbg z3|w01>U00mH+_8}vlCRgz{!xx*J&DrpEBvp6}{}v&*~c}HBON&?;09j|!Kqqk*GTw}Bwh|}(1`6}EAiNi(HKlXr zP6ou-&0f}9+6B!@8d0%F%eb5^EAoj3QHC})vwT0Hur-bf!Mq6!dzl@q(xQ#li+Jmy)!(6&^aQ+pXtUR`AZd)?ERw zPP#(z*p$lj9z2^(?LZA+aXDK2@NuN?>{Y-L&n+KQaQ<|Q4e=U#3Q&qdsfHe2z^;+d zHG`1?b{*VeS5Z)Zac31^muB^^*K!wq(AW6gl78hbJMm)ob4b|&d($CoYk>jRQw6jM z{Ksl19#6M?G<5u4=k`T)!6dnaQ#Gf2oizgVA`g2ovp|t^U|4$HA>(=@{_h zozj;m?D+LZMOr@FYV6km?4nW&`8$Yt0`>%a^0nAz3>d+|t#-Xva|!z7ou=MdYQJ3T zsv7qEMtirUU%Agtyx83~bHz=Nxug&%*{{YXmQANFg*s|UrshMkQ^sC$aNih!{h3xt zzLzi>{Xsi9cBJ(%7y&q0sV%lamA0ec?EAe2{^KOypd~tcT^Bq)$;aT?eo4O+pPhHH zdw?dRWg2)D%b7UcIW5y^{4w#LbcxN4&l~Xm%YRDpy3w3mlBHSS#hWv`MuIlB^=8r^6&2G6fxSWOwk~>&*B*=XHDvfB=uO^!yH&79VEud3NPnqAbs zP;unG*mu+EsCLB8F}f;j4o-k}4*yoWWkrYDj`wx5o2*YAapanmunz0H6IE)V^Y<`r ziUsFgDR4C(3c{{cj+0}4*a!#$98zZw5zxdAz0mb>ArHwQHn!@7Tq0E!9#6Pgtj$r+ zVON7{ne~re0Vi0Y;60bbl8m#>+X9vpcHMBdR5n7))w1=b5%jwH5^b9CJrpa(E_>U7 zU)a+&mFU4%&cdNZ?4?))8;obgcBT3?E1m;OzBcfjcw$E(q)gQ*Q*DilDJ)gLOvAll z&qYn!l;U|NM+sXXygrSTyxT~((qNAzG{h&QK%U4^8M|oqp9UK}$VvAf@!jW*VY0jA z^uxLxc$2Chc$m?$+8cOqSh0a(;VeNdb%c+x;mQ{#n@jdTU<>o|b$-Yd=H;V5$rR?- zU+lh(u62o)6RMtb@X0lm69PeK*^KCX(fiTmTPFi2S>4#?-d_rai6*iU!AiV1XT5tI zB{QO99*C-li98(KEY#S%fuCrm?VLe=rse)NqxIVTrNhPPADz((cD7m#&*EqtCP5K1dNZ0A|7$41OeZRKDwIhDymr8RyZ2G%CiJuBC-p^>A zct7{3wIT#NY?ha%i5fPgDy!mj+USmVBCcdMyvZq3b;21M7}(C<180ut~zzlx<>qvohc5g527yQnjh3qBbcAp9eeck-bBrP8FLi;x1?3TnC#3 zp;L5pl&YfiSm}AH>BsCGEEr~|m2op}ZsI7zrY6PJy+M%5qW}pSO+msk^G;gy)@Tv% zeTHT~7FDi1`xfZdBF?91ryVmc6dhx+KGH2PWCFNtXwM<_j*9!@dNYT8KFodM-d(b0z*d2-nC1bHeA;^wkt!=CjGTiUjTadSs($ETgLo8p<{ z+(t_P$9TY{2Va6&OkY%I!nSQodFF&SKVXF)NnakTYbG(r2n%77nh~g>$=#>(Hj1KNx!tPdfvtEV!E~| z1fIj|K{?k*4#s&vP_x-U0-X0xR3iTI_tuB+JB`i=7HHHOeev$hq8FfGC_H75fvn^E zWIN6P0kfl<W)=d?Ry150>c7&OjhYhtylS0r9 zTl13{c?DNAV2Wv+MrZeL$c9-4DIDOaurs{ve3@@>#k*um8eOGIUJ@LFe;Ifoy+pc= zN4%K}xMF?op=V^`?KK7%Qx(i)Q)3c?oGGI$;7YTVjT;3S)YJQsF2Z888c5+?H?i+j zL~n4#QhPHcYKI2ut~KT;jb#EdXf`HaS8%0zT?Uwk!ivNf^Y%)$BAH2&nK`swv*erJ zw5p5l$i`(m-42=kgVw2>0Y`wY05w;tU`^{@Xrt~u+uAs0m=jQlt<*OgAqBJY2WOW_ zwY72HpL)<(VeBCM7Qqwb-Ab?ZF}`xfq{&7KYv?S_!PuHI9hzPCLy*VgN^Cnz&H#aU zBGf?lzEGbF7|*&mfMF?(;2%S?5i|fYHZQ&{MY#rhaVB-JQys(*dsDkx7f+YqGjNXS zo5Yq7NaEYd@Krm*k^jYHtf{%q?zM_`lUF6E6TCInNwSqdfA+`Ftk+`7XdYOs0QYKP z4Us)%ea>i`E4k0d(2Qdm;C#GW>PB=9sR}EYQ;f{%LtGW*qNfQs^@XVo3rfD8=mb8K|K=)JOhq;`kS$#~_N2iO9lu7dV=c(ANA{Hf!7cx+R zWn$wec2$|c;|GyG-BJ0d>&*(Hwf$oKsN2eC` zS0jlP&r+&&USzXTt`zwzQkGsvj}%v(lMq}(5;|U^ z+}xq?0-GN-zZ6GnF&k-#!P=3@oO(v|ZQ8M0JcfhX!Jtsq1iyJ!g+pZOlo}k7>y!99s8ODDKliiC+O#IasF68@<8)vr|E6?frtsXotUy0*$IsF%s4(Ru zXZF~<;`9RmO{J|9gypnE!-VRa7oUVUY61FtV=qhaN^crTgNmvY2`M#p z0T`1!S2|LyX#gxxh3F}gBoP;E4fMg+jHU0T#l8UjLtFw+w~7@v;t|TPAV)-3L=Wm& zrUi!f*6ZX3Pg>IE$fE%*d5YVk29)Ww??i-eK$y-c&2lJ%xE;s`p9ImE-NZ4hy@IuO zKsfj`TpL7$99wOaZl&OQ199PpFL5p?jLboBQhuB)(RT^(V7+=Sx z0e&KdgCvn+*cI>Rd(hcw@&sTgL+&lgl(Bvm5-&Upfh-&r+n*2{s=eM85`ZM zdSr~g*i-dS1Q@t$yqRP3pcgQl(!d!)!)r8~$uoaks9aT#QoiIvO&kZa$oKVmSUt-2 zpknDc#iQHP`GPd^LtZ#op?7-oXWs37k^z4noSf>cTY!}#@KOyu=n`j~G`Tm6B$H?{ zlUh`oO(=*kNHQ6jVz@*-s(?_uN;0O4B#%ftwwNt|*;G1KQxBS>0Ash6jT;DZGZArQ zR(5ff2o?cGjyGN-ILub2UWqDci^P{3;%(taYv*WOj%st2GCCO9i51+Ej7!tDkU6_g zop0)lmx)Z(IRwU5vM}l*$=H%~rrVs=o2)}X)J8bsbR6PJFnaFu)9skYxtU$HNT@vY zOKh2$xCu!Sq&4ZP_boHGF8buvak+BocbyE6$yXxpknFxa3-Kf*%$5|0uiR1ZJ$xF<~ zhf>6|vBgwft4lWBr{Y^>sa1x3ENjS)f?}NQj72Mh^~TPKLHt6OJbUjfs~>5Tn-5rN z#L-Fp!px&N<94!xxBbv4Cq}Eg!g8U<#4oRTYdtL z)n?9M2Jmk=)Fb+OqsCr7ba{L84fhT$+sA2@a;DFYRdm@aOg$ z8??3m@qv%ZX}5VFI*|;_G$ko^d{V9fZ&(9K$io_w0cva9m78w@BHGS8C^^Dh;b+=3 zX{!Q(F*eK*+)iudmP`epmWB1aSpy;JgA^bz#m4$%56vu&=5m%gV?rdF zz+*J484?%C6g&xdnvIF_;t?lQj_k^eRuN95=RJ42)$_~1ooyrHl%(NV3&nyJZWO_& zIGf{&vDKjaq$Y)R>}4@LCr>HS--McI0$8y+rm2A8S@3~w=!uF5&vSPAPG`EL>R$Ig zp|@_?Xrc}zYdj(Hbk(L}vTC%OG1b_ngS(_!<>J7RIJt zS1=js5^aVin;@u;loB-|cZ5)EmqkXD1{MHPtisl3M3cfAD9O<)QWbtm+Eos25&+sukK!(D{u6i{Op1a{%7Zn>S*uiUxo+S#-#miZ46JaT9`) zT#KQWd*_jqCXLDy02pta_HzOo?l8wKyy)Jk8p1I=Vqav))M*FAejd@jx&1-d?U*Ow zYOQ$v+5tP;6mtF6H2@Sz#e|lCu0W~NzFu(~{SP5( z85w{j=K2C2il^^OO9iOIx9%3|)j&@Gsu5^mu6=jGfIjGs{Jv7U*Df4(V+XFsRbRcg=$bsS(0B=fw;e!iUDP^Err;TNy)egkcBv=X ztbJ&Cl!gsvp}Fc!DL!F|<_7T@)j0Nmn|DAPnW8s~S_iNRC==Gj(22)qwqW{)@lS@WV5vS?rul8 z!6@XmkOua2Xg}5{WAg>;_qQo^ID65DoJ7tkbzC3L{~szHC*16P3yr4!)HI6z=ahM3 z*E*n9n_zmiX#}$sHuGY^4I6D*+4(4-U{$nLu0-otKFNFM_}k=4m6UUjiYilJm@ISv z{wPhiTU!Axq(&FO}6#K_s)aAU3p$;EykWD1peK7uXEpb^!7YXSPZy)J%0lPoG!Q#BxUEaT<{zGViiVP16d7zuz*3T!=*r`4IstsCdZ@5%XnLIiuP8z3{P3Zb0*tzF zpa5j+m0G*eQ9+UGoG2HF6a$1AftKpRfg-svq&R~}|Khc-*|Ii37Yg-6DaN>%o(eNt zF@*y7!ah0LLWb#;rrr`#xl41QEw4?Y1RE2}=Fx#?12EP>7FY<c57osn591O<7k1XyHO_v zp27%M04gnhkkz3eA-IH~`Z!uVVMP%iM~f${C>FC2Pgqf`tmB`sqF4+=JYhxA9*2u3 ztSDA4y-!$CtiZ$*RupytCZ4dOSb~Yqttjl{K>mak#YaAH@9Y7By%_r~_|0zNW$5+0 zDEt5OV~sp`dVxkQpp(46u~i)kGV>U;Dg_5U+9KwCxWxE+k6-HwfJ+44e}BaR z##}CNAI&BWOpQXoEU@X8B?E1LGAq0D53p8WbT+uvZ~>Ui zKeVO(^2a~?%csQp(Q@5^itC+l(Z1qN)|h1XyuNs%{LIVUZE**hh&=8oDZD8tTRI79 zWGEz&5UJJEA484=&WRMpSy-MHQZO?`yc{_&|2P3Q?~frz0Sz%4d*1`+T{$2xbf(CvlqY*qtF z(4BQA$F7*oPZ~Hiac;b&@%V+$!MP+Ovr5k(Gw3qe5oF?YK5786ws_&aAg~o(lo`~n zp~?!+YgNu+_S9?dZox5z2J((T`qOZjy~X?@wbNv?936d(m0UotGtb$I0`+DAWf(55 zDDho8dP3|qrmt^&Xq4gDY!zltRnef@`7W;P-u-y!%#}nm#kUqOkgY6)Rscr zX%UMlmS26qDpA4M3n$V%k{2+Y9pE`Nmm{-Jug>e)UXnRAo=)T&4*NUHk$uh1guy0( zZc4`A#opBixyJQg^96kSYstp-T8O^~z3$#E=~ohl6EAibU6Gm%#j#Y6tY)^%QZWzw zoQ*QGE3tnhE&Gh3Q@o@s-+%-z`k1Kkn_U)7t3eP^JKc7?H=2j>hQ1$&$WG(E|Jdm6 zy`odN08d?S>yV_=>o>xWu>Pp5(|$R=6o#L9xx0N6Z4Z$S;w2-&dV{Q7*wx;fO##T< zwXhJt3nQ4sgOm)=t!NmalA*#tMEZ~b{JC>&y2arfT8(r97pjkWcEN|462F)hKJj+$PhhPJI)|Wa(vIAR?gow}w3)Eg8lrA^yrGMp z-UikYGaU*nExjn~V>|oPv(eKncx3=Z>Yna4n`t|(*DL*-I?(Ab-b+f0gRdt_*^3U} zCra7!7-l|E%I*u8iEDyjXIzENWH6{EUT zT;AY;b-z2^zMXs(pkMQ%T1meoOG~WUDDu#&F)fy*w8Rso?9~9k6QyjofSFH}veN=) zK2geEG+#ea%6{s6(1iFJRDGmqEb#Ir$1|I4qMgN8fPVy5Dt>o1iLt|IAlcwX`waF_ zQ1$uZTm}XRRHgY^3B3^SBl7LqRHgZO-8S!@&QFczZx+Ixen0o&yqS^P49aP0!?AZ5 zOc;OxQO_5%Iqa^Qoy)+JVIxC+q41WLg`_pDn_-K0qb~x7&%;|s%cj8rL5{apPZ-bv zaoAN{cOx5b##5sK$=5-d&CD{GqClU3#-pFIiMq;aa;O6R^iAe=8;ZqWruNxT1Mje{ zI+n5@|9R7&N=H1iowT#E$$k$Ln=;LNpKUR+%U!pInjTAYhFsikj*@geBh#J1>DkOg z0^1SlYbJ4xmN#azuiW}m@Lf|4Y9v1+SiG@g(Vt=fxQ9o4>YHnz8^BbQM-0vA*h+|Q z*9dWIG6@ar8;MKn!X{pykVrh%x6EXa5Bfd@-C8#3gT>Z9|UFLYX3N%*NPsi=FWS{O1=9Kr)#mrcPc*z!1_ zo5TW#jtX#}yO&IfayDZiQ(9>$t#n#gZ?IBn^U3y<*|Ci*hjA=^9&UA}U7OQ2)ux$q zD%k9kMKVwO*4*)A8(x`!Jdd>dk#@$TmQC^CEqK`_Av~TroeKVdmx~^`*kp8(n|QGY zC1y%D0453B<46_};ZQ09xlf4bKX*FydTk`IbVv;4*Cmm659bS#$Z0K`C*JJ+K@>7W z7UNW&3}T6s@|w=awF7Y(kHE4LIOl|20}WKuyo|~Z#QHpxiMit~*NiHQ3=>PNVo=H`A7zlvW|3owX&D}wzrsKOQpnlGd(hPa{kA222+=bAgcpv=WQ~*}d?Q-}vgmwyE7yjM)A}x@q zd5_-)ty9f~HP%HvC5zaUB0vg7vPc_{Rx`~=vBo_{TX)3uM$2@ImVV(rkSA>vr+@-S z=^cq!SL@s3Y+4#v5rxC(%J|ZVo7s7+Qy!yqkkYUad+2oS4uCjXHkJbb4|00CbMx}C$~p$k~5kD0>{k<_u;>G9s` zPx#maA*z>qwc1~zJ&BzxHP2qJ`}D|eeW z&N#bD>h+`cl8&7gy<45XZ5j2%+qpj%U|$P8$Hi{G(jDR2m<%2R0%1+lz$lA67OSZ= z?HJ8&?l{Q1j4lCWsUma+yEBZrbp+=D41^6a*@y2ZYgiE^FSgh`V2a%v79T02=EuqC zi85+@oQ$3*qpon{6CJ_vaW;CQBe*ZJ(dQk(tI_Yz%cy(&cBG8z7g+U)GV1EI{)sZG ze~c5JD5HKZB7e)-fCnHg-)z>GsLymwj2x$-Xz~;`ndC~C8#%o?lN24p=;dI}zTRuR z=y0-Y;y!0zuN5xwpgrfiCH=~red5LLPwR7Wc%l*S?WQ0`?+J}}%Yore(*pkQIdhwR zwLX|jI@QiD<{A*rv@%qX1Ow!(Q;n)s=X^)P?(JjW#8t8WaKbvTR!^6N{PU_T`$zNl zQK>)ScJ8)xakCFWX3Al+46aC|&Q0v_SXv6*?Je8hNPJ~u?PTAY@0*M&yY7(GEQbko zZL~~Tq$Xo*(gTn|8YKsPNGcoMNJVYUHq~fWI+BJnn>|oLg_q75m_caET&d+KHH%vf ztF+c~N%#Pz%qh#rdN6V+3;)G5+=^cfs|>Lk?-^+z&Y{!+Qn{LZH5FuzdKW^qd9Np{!7)-@!JCvTNW(%g%LL;s zn`?XN!ok-Hd_+YD>U);%B&9{6evS;-h4o34R`k8#PK6V!NdvZw20p&BIgCI<)KKYl z(}JL&&fJE5ohvrv9-M!S=6Y!cuz(;V(D|5x8J;>zE?C!cMh-8J(HxK>E=0{-PoPo> zkF+mWRe z{-RC%(e|#2P0AB`_Cw&sz>_Nz$!&;F-DH|M94g9R?<(Yr)gNkGy?&iLm~s75;M@mi zKi@CN-%D{^`**eRGjI03IF2`NfI=zkV(K7r4xHV-xc~}`G2U5%+;n;*#7Hxao*Iqv zq9~wutAaDqU39JX)fjo4(^HmLht39SLxWTBfF8uvU|cU_F{RPjrBjMleY|K?u~0m% zY6a2Rd)&m%zU-#>l#COaq#2$BfO=MZ5>XautlNZeP{M)+;$4fwI!m_*)?R_)3b+EJ zo;E<@arnhBct&EIwoa88C4KapI~*8y4LTr!7TMLdudjcMjmi#AwLzN#&cYP%bR@wP zKs~E|ce4HF$inD^K&N!4qyRV}y+~+hD6@_{wcoc--xR>8sapUA5t|+BwxHXfsz8Re zP}s^wV;8v=Trb8zuDrQ=A!TC+f%W#0M@U_V=vNA0hEkm%3iN(uND&HTAlhPg(Mv^i zs4HK&E~ZC%Riwgx`Z8&rvKehinAzvlvpkOJxF_EMWDsBJ@CLR?ogdKb$Qgne@Oe2> zx=rZ<7W>UQ!9UMb5{w+sM&?r1a0(`~A&cTv6<@oHRH>iz(>|!(zTT{N=XJI&i?`Q{ znTv_XnBe8U>f;)vw0I}{Mvcs>&4>tQ}*Zg+WS@g z%Dr~x)$Z#KRO}l-i@I!eQi`UP-joA^Mb@F1{gHupD>{cpefZ@>Mg|0L<^xF~)TCdd|~!k!o* zlLG+d7@g}>T^h9XA!-Q)5CUJK0!SXAKO&dlg8vrWCFC#bYyG}7yN0Bf3(Liv?@9f3 zyZ)}Ue=UC)zx>1h{=47e|CQIj{EtnC_)mYjZ&hNYmo@!9_H9UUyHfoEO%>mN7# z%fJ2k4=)7m^$&l+U-`|S{`}WJ|K-pBR(|ucl>hik`ST|CZ#VZ%m2c{Ap>epatLQv+ z^6{P(mLBKmgRV1m?8SI)N@LyVN*Utl6Fo{AfL2E+!FLqz3T=jWH+`u|vA&bxv< zt14l09Ek-C+4{XO&P}^B+o|bHg(yja*#iI@cE}95X3^8M{XFrNVYX^!@U|%yNfB|Q zR>c{f0_2!`OJ?8oaua*55m>M~HL`4iY*S?^G=WJzcLc_`<7>AzCKD6(3l^xz2;59r z)r<#ZTWN+;@_yHy_C`=R=;&xpBDzvyS{yS(P>D7;dFa^FPTKc&!_8{X7AT)6cMAZn zQbn!_CG={Ol({c)+ysTYSee+py-+8*IdnBPbm83{hJ(B6apBNA`M5pygUpPfg6OR&f&)b|B5RwxTxCa;!Dj zzqJ$;GRDzpsO~E5H$h?Sh~%Vz^A{>Z0PNGE2XDGdI*XTpjduUho1m~RQgXu{plO3I zWaQLcp55a8#U)MHUG--5&^q51t&k)&kLSIrlYq6BFq;8w^o!B|f=yU-$=DGI;RS>k z6y9KgO|G2$_sy&Xg=cleuuD5fihVQ}RUN}C7j!eN57*|-JLwh=lgm>E4G5?cZP@C# zb-1%q5@*(JXYhIxgg4G&QE|gzb8Mo1XfAA{7$wWFdL+M7Qo9|M)0!$#ueNfcMzDJe z&Ecb9dHggy`M>|@bszd!yX7(kPGjNkI?e$giX(KlS%6&jWx88Dlongh9x#lj>|=J$ z#5;;rmz>ziu#-A>H_MUKjA60DCCX{ClAS~}fznJsbhHJ%|LAoeW~XT?EC`@f{Wii$ z{6blGa2TE9$aeQ!Z;kPzNutScZk_Z0h>Up4Jo&6O9j|$byN}+4ttqe&xEs>TVFrD0 z1)(W`ek8;k(TmoU6l$o^1tl?3!5%Mqv9&7KYRU-UBewem_BTaXqpeRYc+v32JL)H~ zv}lnMCM~%7{`)(`ST2R~EB@R^vtMBdMXO)L$v--jUsb zh*FO>8@DqVzCISQ)r^Kb;TXkyr7VMYzz{uxE0*bt`KWgC-TvdB|CfLI?SJ_vu{Owm z{KwzDa$BD_jYUp}yHk(UlNW^Bh|nLX){A99c+p*TpcywO^^p#@{ z|M#euKmGBqm(l;P-+(xoz(e`#S}5Qb)3Ds_kktut`L8A#azGzZNQBiViQ)~~1|C=#G%V!O1bk4uWqa6GxBkw*o3 zU2qAX@Nn5;mT9j5x&t7l@p-2UU|ex2@2n`^s8|aUw8W-t-#lmVHS3^tqIZVv<_>Un zITE4u1bn34@YWZHgks4LDz(o9S!QodcHI$<>4{ zv5plCbW-VwCpb9*Ip$3}$B*DZFy~xIOiZcUEFivWVedVDNu_hXFb@#U9$(AjPngl4gh4g`EL!?ommb*NYe_!3wa&@%jRn`fLlhhJGgr5eGOse zNENa`Z_)~4ndlkjqjnw0Gxq&e-(WcWg~3k^auK{QfJ6jG(T0&giSrKr-MEBk;XDrT zb)@55(g2+y4j$3z+)^lGXCr^(5^babqE~3s!Q(*B-HWFT9___cE3%`A_Ki^(Kxb}L z>dveslQ-d4+`sotVj6l+xvu-LV51`XV9(}8NQKm&24A>FAmTNKqBr3O}#;| zECtMHDO(eVUCgUs+qhYY6{$7l=`LEu@jP;5GrYl9T^M#4YgtaH3Q>@xlQ{tVQHQt18Cg+RzAGNbiAm&(Qn&7f50KmbiR4l4btqzK79rGcjrF4!=xiMe# zk!Fcg+^lhF_st}8IV6eo>&>k1AH)|xprdZqXWh^p{xChb>hYfDU>LkvkPL1j+gutpIeWvjOdaVmbBv)lnd^8m;N*s%?oPS83?wz5~sBFsYt2V@< zO^g*m3G8eWa$(QQ&KQ9%qoW2D zwnWU@OrDbsO`x64Y2?TFIAdt1MGhnOIfpXGni7O11^S@HV?MD#REXbpz;L8 zW|QZHZ+Bwy1k#H0amH{meXMD#PO$Vuttr;XM~Z^zosfYRI)nI5!O@aL#$Zbzl48Mn zs+xfJE883A!hI8PGUdtfS{9e_*MtToNXfti)hC~mUC{55eMEL3Sf&#p1uyUp5&M^J zx-?*m&s!J%gS)u@{%Y_fhzjwW^KuF4%z23<$o?Yq@uU2Zr&i^V2=EZudEBLZGJ5v@ z4Egn50}ne-o|kx8lRHOukf(8sj2Uhg!;i|B{b)F0^+UcaZl7=LgU``sG- zREYXspYX){xo@eq)%IqLnrR9NT2z_6zoq!xrxc|Bg;y)6B<*lHf@w(#StlQWU%i7J zjUag33&qV|Tm|_>z6+em<K_Ps~Hb$I1JNd8m(K>q5$kQ=QJ8N{6}&KowExvK`%3Y(C^|1$f4z z59}s?)WqWTUL}AI{3IzW@fUA?NXqKAq+glBPrTS&bd7rI!M!cp2~?w|Tns#}4uHe0 z1#do5UwM?mO}u#Pzd2_wZ$;CNrSRU`=3r|R%el4~>KEcJgHFL%AICUmX#09o)WCRH z%lj~eUq2l$CLB!R`{nq1PT}X>>(LaxP_}v^h0Eg<{=`VLdz`|b7-=>?oWk=Dr|^Y5 z)e|XvVJ7uN3Sa7cf11Mg@>EAs_)6#di4?vXUw9&guM7g7NZ~6_z|T|oN0y>{{{1}# zqkTb4c&44*$>Yp>7XG>_9=|^1W}oHn z>w5l#^nJp$?hBha_Sg{LM!+`nIk&?)UZj3G+8=C*Fm+9g~0#s)=2YiNxyQRop`akZ5B#& zsm`k6Xq=QC9Ek)$#Qt(J1o^anWE6Vq@^#l!5_>V}eTn7QZ#0*)wauzI>E!1F`~@{Xp4ezeHb9cKNXT_P+V{#M`;sS^)c= zhgxdbvOO@6`CfGcz-A|$3+WMV$bmUNJ zj!kwHA1WN6=%Dpp>*ROso!9yZ^15icIK^%1qLzTWjdp9Ph#a}~b7AUaOvnygS_RGm z_?WE9bc^&69GvD3Gp%NvN-RbjfY-LULF>uWKtPLHT+}&P{G7NbI23PeviQ4$$L8KT z&N||%p$#C(8dw8a6ddrnv}QcLk~ncV=|yC~=sElCjKIXL?=re0HJ z@X!E2&33ywlgUXBpCUg=aZAT00Znns-T@|^$#bvFdedkqlAX&H=!F?(n?9?Q$xPTo zF2)?o;+%q0W_UPB$>2O_=QQ&4L*Z*iJ**B+ACd3A9#vbQlEhg2Yr70`bfajt6Z?ec zZz&eawp6@#F-7pC?ms>ae$Zu*%q5%aO@3+eRLNcRMhUiS{fLm!56v&^9>h;-Q26y1 zyC)MhM8qeK+aWWzY6&R*IXs<86zS-yRf}rWI5P$)q}vB0jd(e!y5?ZWXU@ z{%S43*Gu8ogGz$?_54zNy0*h>!X zTS}K;@|jy~*6JEq&PYXG23yL+9cL%gNd~fPM+4dGy=D(~c2W=2+9c!qwW$7<4{fq{ zOZt_&?8J-RZ8PA_Myh;IB8$7j%2cj+JBeBW{CK(?22b|jI{L*>&BM7bl z8dwQlIlWDzQftR`+?ol+^b~xYANPswr%`b;lCuAnz(@D`!!6 z58-EX;hi1EdAD=Vg@+U4gQJx$xp1I#fyOVCHi{PXE3PEE#Yw5%1T`WB9$Kf2*%WpF zm^NBhwHCkCZOZN_QCn9J@EWYDw#T^y(e>8m0fh&?vr!&l_ha zElES^ONnkj*h-iwb+uU)b5Ig-R${@Qg07_=7F5raI>yNShJ%j7c-uLEN`11CoSSXf zm2Y)UwZ~$+vLkH$4H=8eUN4(-c39_Tb|1YGcx}>@$U%zEIn)^_@WtjxH+;;+1{)WJ zibTg|-MXUQi1H>hg($?pgpc5w-j{{BSudtVfYR?{v&C(5VUA_f*rayv`a(e}c2gZS z3Vr93nNd@nYjRQmta<{Ji+fz+5G+k)A$h(GLvw<)Pe88hDfb(qX!p3pQLSkJ`XKtQ zZ7m=`XZ*6d#x$^du@e`*)iWU%#A;L&Zox^nPEEZ+gDqv*d9$-lzt$Q?PFAP|8Oqiv zO%3eMhLw;fA9T`w)jWdNW!8=_)`a#ZI$@PL$|0hS(Kbl=9P+;DZOG|@2mKBE;3B8m zb`_~pTOI^%b~iP~mjUS5=_5R1*X8JN;O%DR;?3D}sQdng*Ngdh3HG2|`@2>BQs{f) z)$Rg&4&M2wqjG8U4iexKyn{;5nMx5Gw9Y?NVv>uNGfGSp&opJz`lO73rmkwG1AXKD z`JRy@ez?T6-Q-UyF>TlS89qyv^byQ zQ;<2nwFR=74NX}N1;V!*GIm>-fJ$Y#T!4pa)>cvHCyFz8kNSrj@|`IVcL>P0T#^f4 zDc=(Jc0%7T{Bkt+vv%hG8JxT^`Otq8{lBzd{-ymjKK2$m=koV$xSX<o6*aYqRR+_v#u~43^9$l2MdywNN^(s@h^! z4Vl-Ok-Og=EL<^I)*gXf0?)EoRC5!6rU9zx1Z-_PxM+Wj!Ti8qDOCMT%~5Fu`6A