diff --git a/OperatingSystem/monitor_v2/include/addresses.s b/OperatingSystem/monitor_v2/include/addresses.s new file mode 100644 index 0000000..7ddad45 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/addresses.s @@ -0,0 +1,51 @@ +CS_BANK equ 0000000b +CS_DIP equ 0000001b +CS_CTC_0 equ 0000100b +CS_CTC_1 equ 0000101b +CS_CTC_2 equ 0000110b +CS_CTC_3 equ 0000111b +CS_SIO_A_D equ 0001000b +CS_SIO_A_C equ 0001001b +CS_SIO_B_D equ 0001010b +CS_SIO_B_C equ 0001011b + +IO_RTC_SEC0 equ 00100000b +IO_RTC_SEC1 equ 00100001b +IO_RTC_MIN0 equ 00100010b +IO_RTC_MIN1 equ 00100011b +IO_RTC_HOUR equ 00100100b +IO_RTC_AMPM equ 00100101b +IO_RTC_DAY0 equ 00100110b +IO_RTC_DAY1 equ 00100111b +IO_RTC_MON0 equ 00101000b +IO_RTC_MON1 equ 00101001b +IO_RTC_YERR0 equ 00101010b +IO_RTC_YEAR1 equ 00101011b +IO_RTC_WEEK equ 00101100b +IO_RTC_CTR_D equ 00101101b +IO_RTC_CTR_E equ 00101110b +IO_RTC_CTR_F equ 00101111b + +IO_AY0_ADDR equ 01000000b ;64 +IO_AY0_DATA equ 01000001b ;65 +IO_AY1_ADDR equ 01000010b ;66 +IO_AY1_DATA equ 01000011b ;67 + +START_ROM equ 0x0000 +IO_REG0 equ 0x20 + +VDP_REG equ 0x81 +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 diff --git a/OperatingSystem/monitor_v2/include/basic.s b/OperatingSystem/monitor_v2/include/basic.s new file mode 100644 index 0000000..4a06574 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/basic.s @@ -0,0 +1,4564 @@ +;============================================================================== +; +; The rework to support MS Basic HLOAD and the Z80 instruction tuning are +; copyright (C) 2020 Phillip Stevens +; +; This Source Code Form is subject to the terms of the Mozilla Public +; License, v. 2.0. If a copy of the MPL was not distributed with this +; file, You can obtain one at http://mozilla.org/MPL/2.0/. +; +; The HLOAD function supports Intel HEX encoded program upload. +; Updates LSTRAM and STRSPC, adds program origin address to USR+1. +; It resets and clears runtime variables. +; +; The RESET function returns to cold start status. +; +; feilipu, August 2020 +; +;============================================================================== +; +; The updates to the original BASIC within this file are copyright Grant Searle +; +; You have permission to use this for NON COMMERCIAL USE ONLY +; If you wish to use it elsewhere, please include an acknowledgement to myself. +; +; http://searle.wales/ +; +;============================================================================== +; +; NASCOM ROM BASIC Ver 4.7, (C) 1978 Microsoft +; Scanned from source published in 80-BUS NEWS from Vol 2, Issue 3 +; (May-June 1983) to Vol 3, Issue 3 (May-June 1984) +; Adapted for the freeware Zilog Macro Assembler 2.10 to produce +; the original ROM code (checksum A934H). PA +; +;============================================================================== + + +; GENERAL EQUATES + +CTRLC .EQU 03H ; Control "C" +CTRLG .EQU 07H ; Control "G" +BKSP .EQU 08H ; Back space +LF .EQU 0AH ; Line feed +CS .EQU 0CH ; Clear screen +CR .EQU 0DH ; Carriage return +CTRLO .EQU 0FH ; Control "O" +CTRLQ .EQU 11H ; Control "Q" +CTRLR .EQU 12H ; Control "R" +CTRLS .EQU 13H ; Control "S" +CTRLU .EQU 15H ; Control "U" +ESC .EQU 1BH ; Escape +DEL .EQU 7FH ; Delete + +; BASIC WORK SPACE LOCATIONS + +WRKSPC .EQU 0x4110 ; <<<< BASIC Work space ** Rx buffer & Tx buffer located from 8080H ** +USR .EQU WRKSPC+003H ; "USR (x)" jump +OUTSUB .EQU WRKSPC+006H ; "OUT p,n" +OTPORT .EQU WRKSPC+007H ; Port (p) +DIVSUP .EQU WRKSPC+009H ; Division support routine +DIV1 .EQU WRKSPC+00AH ; <- Values +DIV2 .EQU WRKSPC+00EH ; <- to +DIV3 .EQU WRKSPC+012H ; <- be +DIV4 .EQU WRKSPC+015H ; <-inserted +SEED .EQU WRKSPC+017H ; Random number seed +LSTRND .EQU WRKSPC+03AH ; Last random number +INPSUB .EQU WRKSPC+03EH ; #INP (x)" Routine +INPORT .EQU WRKSPC+03FH ; PORT (x) +NULLS .EQU WRKSPC+041H ; Number of nulls +LWIDTH .EQU WRKSPC+042H ; Terminal width +COMMAN .EQU WRKSPC+043H ; Width for commas +NULFLG .EQU WRKSPC+044H ; Null after input byte flag +CTLOFG .EQU WRKSPC+045H ; Control "O" flag +LINESC .EQU WRKSPC+046H ; Lines counter +LINESN .EQU WRKSPC+048H ; Lines number +CHKSUM .EQU WRKSPC+04AH ; Array load/save check sum +NMIFLG .EQU WRKSPC+04CH ; Flag for NMI break routine +BRKFLG .EQU WRKSPC+04DH ; Break flag +RINPUT .EQU WRKSPC+04EH ; Input reflection +STRSPC .EQU WRKSPC+051H ; Bottom of string space +LINEAT .EQU WRKSPC+053H ; Current line number +BASTXT .EQU WRKSPC+055H ; Pointer to start of program +BUFFER .EQU WRKSPC+058H ; Input buffer +STACK .EQU WRKSPC+05DH ; Initial stack +CURPOS .EQU WRKSPC+0A2H ; <<<< Character position on line ** Top of Loader TEMPSTACK ** +LCRFLG .EQU WRKSPC+0A3H ; Locate/Create flag +TYPE .EQU WRKSPC+0A4H ; Data type flag +DATFLG .EQU WRKSPC+0A5H ; Literal statement flag +LSTRAM .EQU WRKSPC+0A6H ; Last available RAM +TMSTPT .EQU WRKSPC+0A8H ; Temporary string pointer +TMSTPL .EQU WRKSPC+0AAH ; Temporary string pool +TMPSTR .EQU WRKSPC+0B6H ; Temporary string +STRBOT .EQU WRKSPC+0BAH ; Bottom of string space +CUROPR .EQU WRKSPC+0BCH ; Current operator in EVAL +LOOPST .EQU WRKSPC+0BEH ; First statement of loop +DATLIN .EQU WRKSPC+0C0H ; Line of current DATA item +FORFLG .EQU WRKSPC+0C2H ; "FOR" loop flag +LSTBIN .EQU WRKSPC+0C3H ; Last byte entered +READFG .EQU WRKSPC+0C4H ; Read/Input flag +BRKLIN .EQU WRKSPC+0C5H ; Line of break +NXTOPR .EQU WRKSPC+0C7H ; Next operator in EVAL +ERRLIN .EQU WRKSPC+0C9H ; Line of error +CONTAD .EQU WRKSPC+0CBH ; Where to CONTinue +PROGND .EQU WRKSPC+0CDH ; End of program +VAREND .EQU WRKSPC+0CFH ; End of variables +ARREND .EQU WRKSPC+0D1H ; End of arrays +NXTDAT .EQU WRKSPC+0D3H ; Next data item +FNRGNM .EQU WRKSPC+0D5H ; Name of FN argument +FNARG .EQU WRKSPC+0D7H ; FN argument value +FPREG .EQU WRKSPC+0DBH ; Floating point register +FPEXP .EQU FPREG+3 ; Floating point exponent +SGNRES .EQU WRKSPC+0DFH ; Sign of result +PBUFF .EQU WRKSPC+0E0H ; Number print buffer +MULVAL .EQU WRKSPC+0EDH ; Multiplier +PROGST .EQU WRKSPC+0F0H ; Start of program text area +STLOOK .EQU WRKSPC+154H ; Start of memory test + +; BASIC ERROR CODE VALUES + +NF .EQU 00H ; NEXT without FOR +SN .EQU 02H ; Syntax error +RG .EQU 04H ; RETURN without GOSUB +OD .EQU 06H ; Out of DATA +FC .EQU 08H ; Function call error +OV .EQU 0AH ; Overflow +OM .EQU 0CH ; Out of memory +UL .EQU 0EH ; Undefined line number +BS .EQU 10H ; Bad subscript +DD .EQU 12H ; Re-DIMensioned array +DZ .EQU 14H ; Division by zero (/0) +ID .EQU 16H ; Illegal direct +TM .EQU 18H ; Type miss-match +OS .EQU 1AH ; Out of string space +LS .EQU 1CH ; String too long +ST .EQU 1EH ; String formula too complex +CN .EQU 20H ; Can't CONTinue +UF .EQU 22H ; UnDEFined FN function +MO .EQU 24H ; Missing operand +HX .EQU 26H ; HEX error +BN .EQU 28H ; BIN error + +; .ORG 0250H ; <<<< Modified to allow for ACIA Tx/Rx IM1 + +COLD: JP CSTART ; Jump in for cold start (0x0250) +WARM: JP WARMST ; Jump in for warm start (0x0253) + + .defb 5 ; pad so DEINT is 0x025B, ABPASS is 0x025D + + .WORD DEINT ; 0x025B Get integer -32768 to 32767 + .WORD ABPASS ; 0x025D Return integer in AB + +RESET: RET NZ ; Return if any more on line +CSTART: LD HL,WRKSPC ; Start of workspace RAM + LD SP,HL ; Set up a temporary stack + XOR A ; Clear break flag + LD (BRKFLG),A + +INIT: LD HL,INITAB ; Initialise workspace + LD BC,INITBE-INITAB+3 ; Bytes to copy + LD DE,WRKSPC ; Into workspace RAM + LDIR ; Copy + EX DE,HL ; End of copy destination to HL + LD SP,HL ; Temporary stack + CALL CLREG ; Clear registers and stack + CALL PRNTCRLF ; Output CRLF + LD (BUFFER+72+1),A ; Mark end of buffer + LD (PROGST),A ; Initialise program area +MSIZE: ;LD HL,MEMMSG ; Point to message + ;CALL PRS ; Output "Memory size" + ;CALL PROMPT ; Get input with '?' + ;CALL GETCHR ; Get next character + ;OR A ; Set flags + ;JP NZ,TSTMEM ; If number - Test if RAM there + LD HL,STLOOK ; Point to start of RAM +MLOOP: INC HL ; Next byte + LD A,H ; Above address FFFF ? + OR L + JP Z,SETTOP ; Yes - 64K RAM + LD A,(HL) ; Get contents + LD B,A ; Save it + CPL ; Flip all bits + LD (HL),A ; Put it back + CP (HL) ; RAM there if same + LD (HL),B ; Restore old contents + JP Z,MLOOP ; If RAM - test next byte + JP SETTOP ; Top of RAM found + +TSTMEM: CALL ATOH ; Get high memory into DE + OR A ; Set flags on last byte + JP NZ,SNERR ; ?SN Error if bad character + EX DE,HL ; Address into HL + DEC HL ; Back one byte + LD A,11011001B ; Test byte + LD B,(HL) ; Get old contents + LD (HL),A ; Load test byte + CP (HL) ; RAM there if same + LD (HL),B ; Restore old contents + JP NZ,MSIZE ; Ask again if no RAM + +SETTOP: DEC HL ; Back one byte + LD DE,STLOOK-1 ; See if enough RAM + LD A,H ; Compare DE with HL + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP C,MSIZE ; Ask again if not enough RAM + LD DE,0-50 ; 50 Bytes string space + LD (LSTRAM),HL ; Save last available RAM + ADD HL,DE ; Allocate string space + LD (STRSPC),HL ; Save string space + CALL CLRPTR ; Clear program area + LD HL,(STRSPC) ; Get end of memory + LD DE,0-17 ; Offset for free bytes + ADD HL,DE ; Adjust HL + LD DE,PROGST ; Start of program text + LD A,L ; Get LSB + SUB E ; Adjust it + LD L,A ; Re-save + LD A,H ; Get MSB + SBC A,D ; Adjust it + LD H,A ; Re-save + PUSH HL ; Save bytes free + LD HL,SIGNON ; Sign-on message + CALL PRS ; Output string + POP HL ; Get bytes free back + CALL PRNTHL ; Output amount of free memory + LD HL,BFREE ; " Bytes free" message + CALL PRS ; Output string + +WARMST: LD SP,STACK ; Temporary stack +BRKRET: CALL CLREG ; Clear registers and stack + JP PRNTOK ; Go to get command line + +BFREE: .BYTE " Bytes free",CR,LF,0,0 + +SIGNON: .BYTE "Z80 BASIC Ver 4.7c",CR,LF + .BYTE "Copyright ",40,"C",41 + .BYTE " 1978 by Microsoft",CR,LF + .BYTE "Modified for Z8C by Dennis Gunia",CR,LF,0,0 + +MEMMSG: .BYTE "Memory top",0 + +; FUNCTION ADDRESS TABLE + +FNCTAB: .WORD SGN + .WORD INT + .WORD ABS + .WORD USR + .WORD FRE + .WORD INP + .WORD POS + .WORD SQR + .WORD RND + .WORD LOG + .WORD EXP + .WORD COS + .WORD SIN + .WORD TAN + .WORD ATN + .WORD PEEK + .WORD DEEK + .WORD LEN + .WORD STR + .WORD VAL + .WORD ASC + .WORD CHR + .WORD HEX + .WORD BIN + .WORD LEFT + .WORD RIGHT + .WORD MID + +; RESERVED WORD LIST + +WORDS: .BYTE 'E'+80H,"ND" ; 80h + .BYTE 'F'+80H,"OR" + .BYTE 'N'+80H,"EXT" + .BYTE 'D'+80H,"ATA" + .BYTE 'I'+80H,"NPUT" + .BYTE 'D'+80H,"IM" + .BYTE 'R'+80H,"EAD" + .BYTE 'L'+80H,"ET" + .BYTE 'G'+80H,"OTO" + .BYTE 'R'+80H,"UN" + .BYTE 'I'+80H,"F" + .BYTE 'R'+80H,"ESTORE" + .BYTE 'G'+80H,"OSUB" + .BYTE 'R'+80H,"ETURN" + .BYTE 'R'+80H,"EM" + .BYTE 'S'+80H,"TOP" + .BYTE 'O'+80H,"UT" ; 90h + .BYTE 'O'+80H,"N" + .BYTE 'N'+80H,"ULL" + .BYTE 'W'+80H,"AIT" + .BYTE 'D'+80H,"EF" + .BYTE 'P'+80H,"OKE" + .BYTE 'D'+80H,"OKE" + .BYTE 'L'+80H,"INES" + .BYTE 'C'+80H,"LS" + .BYTE 'W'+80H,"IDTH" + .BYTE 'M'+80H,"ONITOR" + .BYTE 'R'+80H,"ESET" + .BYTE 'P'+80H,"RINT" + .BYTE 'C'+80H,"ONT" + .BYTE 'L'+80H,"IST" + .BYTE 'C'+80H,"LEAR" + .BYTE 'H'+80H,"LOAD" ; A0h + .BYTE 'N'+80H,"EW" + + .BYTE 'T'+80H,"AB(" + .BYTE 'T'+80H,"O" + .BYTE 'F'+80H,"N" + .BYTE 'S'+80H,"PC(" + .BYTE 'T'+80H,"HEN" + .BYTE 'N'+80H,"OT" + .BYTE 'S'+80H,"TEP" + + .BYTE '+'+80H + .BYTE '-'+80H + .BYTE '*'+80H + .BYTE '/'+80H + .BYTE '^'+80H + .BYTE 'A'+80H,"ND" + .BYTE 'O'+80H,"R" + .BYTE '>'+80H ; B0h + .BYTE '='+80H + .BYTE '<'+80H + + .BYTE 'S'+80H,"GN" + .BYTE 'I'+80H,"NT" + .BYTE 'A'+80H,"BS" + .BYTE 'U'+80H,"SR" + .BYTE 'F'+80H,"RE" + .BYTE 'I'+80H,"NP" + .BYTE 'P'+80H,"OS" + .BYTE 'S'+80H,"QR" + .BYTE 'R'+80H,"ND" + .BYTE 'L'+80H,"OG" + .BYTE 'E'+80H,"XP" + .BYTE 'C'+80H,"OS" + .BYTE 'S'+80H,"IN" + .BYTE 'T'+80H,"AN" ; C0h + .BYTE 'A'+80H,"TN" + .BYTE 'P'+80H,"EEK" + .BYTE 'D'+80H,"EEK" + .BYTE 'L'+80H,"EN" + .BYTE 'S'+80H,"TR$" + .BYTE 'V'+80H,"AL" + .BYTE 'A'+80H,"SC" + .BYTE 'C'+80H,"HR$" + .BYTE 'H'+80H,"EX$" + .BYTE 'B'+80H,"IN$" + .BYTE 'L'+80H,"EFT$" + .BYTE 'R'+80H,"IGHT$" + .BYTE 'M'+80H,"ID$" + .BYTE 80H ; End of list marker + +; KEYWORD ADDRESS TABLE + +WORDTB: .WORD PEND + .WORD FOR + .WORD NEXT + .WORD DATA + .WORD INPUT + .WORD DIM + .WORD READ + .WORD LET + .WORD GOTO + .WORD RUN + .WORD IF + .WORD RESTOR + .WORD GOSUB + .WORD RETURN + .WORD REM + .WORD STOP + .WORD POUT + .WORD ON + .WORD NULL + .WORD WAIT + .WORD DEF + .WORD POKE + .WORD DOKE + .WORD LINES + .WORD CLS + .WORD WIDTH + .WORD MONITR + .WORD RESET + .WORD PRINT + .WORD CONT + .WORD LIST + .WORD CLEAR + .WORD HLOAD + .WORD NEW + +; RESERVED WORD TOKEN VALUES + +ZEND .EQU 080H ; END +ZFOR .EQU 081H ; FOR +ZDATA .EQU 083H ; DATA +ZGOTO .EQU 088H ; GOTO +ZGOSUB .EQU 08CH ; GOSUB +ZREM .EQU 08EH ; REM +ZPRINT .EQU 09CH ; PRINT +ZNEW .EQU 0A1H ; NEW + +ZTAB .EQU 0A2H ; TAB +ZTO .EQU 0A3H ; TO +ZFN .EQU 0A4H ; FN +ZSPC .EQU 0A5H ; SPC +ZTHEN .EQU 0A6H ; THEN +ZNOT .EQU 0A7H ; NOT +ZSTEP .EQU 0A8H ; STEP + +ZPLUS .EQU 0A9H ; + +ZMINUS .EQU 0AAH ; - +ZTIMES .EQU 0ABH ; * +ZDIV .EQU 0ACH ; / +ZOR .EQU 0AFH ; OR +ZGTR .EQU 0B0H ; > +ZEQUAL .EQU 0B1H ; = +ZLTH .EQU 0B2H ; < +ZSGN .EQU 0B3H ; SGN +ZLEFT .EQU 0CBH ; LEFT$ + +; ARITHMETIC PRECEDENCE TABLE + +PRITAB: .BYTE 79H ; Precedence value + .WORD PADD ; FPREG = + FPREG + + .BYTE 79H ; Precedence value + .WORD PSUB ; FPREG = - FPREG + + .BYTE 7CH ; Precedence value + .WORD MULT ; FPREG = * FPREG + + .BYTE 7CH ; Precedence value + .WORD DIV ; FPREG = / FPREG + + .BYTE 7FH ; Precedence value + .WORD POWER ; FPREG = ^ FPREG + + .BYTE 50H ; Precedence value + .WORD PAND ; FPREG = AND FPREG + + .BYTE 46H ; Precedence value + .WORD POR ; FPREG = OR FPREG + +; BASIC ERROR CODE LIST + +ERRORS: .BYTE "NF" ; NEXT without FOR + .BYTE "SN" ; Syntax error + .BYTE "RG" ; RETURN without GOSUB + .BYTE "OD" ; Out of DATA + .BYTE "FC" ; Illegal function call + .BYTE "OV" ; Overflow error + .BYTE "OM" ; Out of memory + .BYTE "UL" ; Undefined line + .BYTE "BS" ; Bad subscript + .BYTE "DD" ; Re-DIMensioned array + .BYTE "/0" ; Division by zero + .BYTE "ID" ; Illegal direct + .BYTE "TM" ; Type mis-match + .BYTE "OS" ; Out of string space + .BYTE "LS" ; String too long + .BYTE "ST" ; String formula too complex + .BYTE "CN" ; Can't CONTinue + .BYTE "UF" ; Undefined FN function + .BYTE "MO" ; Missing operand + .BYTE "HX" ; HEX error + .BYTE "BN" ; BIN error + +; INITIALISATION TABLE ------------------------------------------------------- + +INITAB: JP WARMST ; Warm start jump + JP FCERR ; "USR (X)" jump (Set to Error) + + OUT (0),A ; "OUT p,n" skeleton + RET + + SUB 0 ; Division support routine + LD L,A + LD A,H + SBC A,0 + LD H,A + LD A,B + SBC A,0 + LD B,A + LD A,0 + RET + + .BYTE 0,0,0 ; Random number seed + ; table used by RND + .BYTE 035H,04AH,0CAH,099H ;-2.65145E+07 + .BYTE 039H,01CH,076H,098H ; 1.61291E+07 + .BYTE 022H,095H,0B3H,098H ;-1.17691E+07 + .BYTE 00AH,0DDH,047H,098H ; 1.30983E+07 + .BYTE 053H,0D1H,099H,099H ;-2-01612E+07 + .BYTE 00AH,01AH,09FH,098H ;-1.04269E+07 + .BYTE 065H,0BCH,0CDH,098H ;-1.34831E+07 + .BYTE 0D6H,077H,03EH,098H ; 1.24825E+07 + .BYTE 052H,0C7H,04FH,080H ; Last random number + + IN A,(0) ; INP (x) skeleton + RET + + .BYTE 1 ; POS (x) number (1) + .BYTE 255 ; Terminal width (255 = no auto CRLF) + .BYTE 28 ; Width for commas (3 columns) + .BYTE 0 ; No nulls after input bytes + .BYTE 0 ; Output enabled (^O off) + + .WORD 20 ; Initial lines counter + .WORD 20 ; Initial lines number + .WORD 0 ; Array load/save check sum + + .BYTE 0 ; Break not by NMI + .BYTE 0 ; Break flag + + JP TTYLIN ; Input reflection (set to TTY) + + .WORD STLOOK ; Temp string space + .WORD -2 ; Current line number (cold) + .WORD PROGST+1 ; Start of program text +INITBE: + .defb 3 ; Fill 3 Bytes for copy + +; END OF INITIALISATION TABLE --------------------------------------------------- + +ERRMSG: .BYTE " Error",0 +INMSG: .BYTE " in ",0 +ZERBYT .EQU $-1 ; A zero byte +OKMSG: .BYTE "Ok",CR,LF,0,0 +BRKMSG: .BYTE "Break",0 + +BAKSTK: LD HL,4 ; Look for "FOR" block with + ADD HL,SP ; same index as specified +LOKFOR: LD A,(HL) ; Get block ID + INC HL ; Point to index address + CP ZFOR ; Is it a "FOR" token + RET NZ ; No - exit + LD C,(HL) ; BC = Address of "FOR" index + INC HL + LD B,(HL) + INC HL ; Point to sign of STEP + PUSH HL ; Save pointer to sign + LD L,C ; HL = address of "FOR" index + LD H,B + LD A,D ; See if an index was specified + OR E ; DE = 0 if no index specified + EX DE,HL ; Specified index into HL + JP Z,INDFND ; Skip if no index given + EX DE,HL ; Index back into DE + LD A,H ; Compare index with one given + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E +INDFND: LD BC,16-3 ; Offset to next block + POP HL ; Restore pointer to sign + RET Z ; Return if block found + ADD HL,BC ; Point to next block + JP LOKFOR ; Keep on looking + +MOVUP: CALL ENFMEM ; See if enough memory +MOVSTR: PUSH BC ; Save end of source + EX (SP),HL ; Swap source and dest" end + POP BC ; Get end of destination +MOVLP: LD A,H ; See if list moved + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + LD A,(HL) ; Get byte + LD (BC),A ; Move it + RET Z ; Exit if all done + DEC BC ; Next byte to move to + DEC HL ; Next byte to move + JP MOVLP ; Loop until all bytes moved + +CHKSTK: PUSH HL ; Save code string address + LD HL,(ARREND) ; Lowest free memory + LD B,0 ; BC = Number of levels to test + ADD HL,BC ; 2 Bytes for each level + ADD HL,BC + .BYTE 3EH ; Skip "PUSH HL" +ENFMEM: PUSH HL ; Save code string address + LD A,0D0H ; 48 Bytes minimum RAM + SUB L + LD L,A + LD A,0FFH ; 48 Bytes minimum RAM + SBC A,H + JP C,OMERR ; Not enough - ?OM Error + LD H,A + ADD HL,SP ; Test if stack is overflowed + POP HL ; Restore code string address + RET C ; Return if enough mmory +OMERR: LD E,OM ; ?OM Error + JP ERROR + +DATSNR: LD HL,(DATLIN) ; Get line of current DATA item + LD (LINEAT),HL ; Save as current line +SNERR: LD E,SN ; ?SN Error + .BYTE 01H ; Skip "LD E,DZ" +DZERR: LD E,DZ ; ?/0 Error + .BYTE 01H ; Skip "LD E,NF" +NFERR: LD E,NF ; ?NF Error + .BYTE 01H ; Skip "LD E,DD" +DDERR: LD E,DD ; ?DD Error + .BYTE 01H ; Skip "LD E,UF" +UFERR: LD E,UF ; ?UF Error + .BYTE 01H ; Skip "LD E,OV +OVERR: LD E,OV ; ?OV Error + .BYTE 01H ; Skip "LD E,TM" +TMERR: LD E,TM ; ?TM Error + +ERROR: CALL CLREG ; Clear registers and stack + LD (CTLOFG),A ; Enable output (A is 0) + CALL STTLIN ; Start new line + LD HL,ERRORS ; Point to error codes + LD D,A ; D = 0 (A is 0) + LD A,'?' + CALL OUTC ; Output '?' + ADD HL,DE ; Offset to correct error code + LD A,(HL) ; First character + CALL OUTC ; Output it + CALL GETCHR ; Get next character + CALL OUTC ; Output it + LD HL,ERRMSG ; "Error" message +ERRIN: CALL PRS ; Output message + LD HL,(LINEAT) ; Get line of error + LD DE,-2 ; Cold start error if -2 + LD A,H ; See if cold start error + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP Z,CSTART ; Cold start error - Restart + LD A,H ; Was it a direct error? + AND L ; Line = -1 if direct error + INC A + CALL NZ,LINEIN ; No - output line of error + .BYTE 3EH ; Skip "POP BC" +POPNOK: POP BC ; Drop address in input buffer + +PRNTOK: XOR A ; Output "Ok" and get command + LD (CTLOFG),A ; Enable output + CALL STTLIN ; Start new line + LD HL,OKMSG ; "Ok" message + CALL PRS ; Output "Ok" +GETCMD: LD HL,-1 ; Flag direct mode + LD (LINEAT),HL ; Save as current line + CALL RINPUT ; Get an input line + JP C,GETCMD ; Get line again if break + CALL GETCHR ; Get first character + INC A ; Test if end of line + DEC A ; Without affecting Carry + JP Z,GETCMD ; Nothing entered - Get another + PUSH AF ; Save Carry status + CALL ATOH ; Get line number into DE + PUSH DE ; Save line number + CALL CRUNCH ; Tokenise rest of line + LD B,A ; Length of tokenised line + POP DE ; Restore line number + POP AF ; Restore Carry + JP NC,EXCUTE ; No line number - Direct mode + PUSH DE ; Save line number + PUSH BC ; Save length of tokenised line + XOR A + LD (LSTBIN),A ; Clear last byte input + CALL GETCHR ; Get next character + OR A ; Set flags + PUSH AF ; And save them + CALL SRCHLN ; Search for line number in DE + JP C,LINFND ; Jump if line found + POP AF ; Get status + PUSH AF ; And re-save + JP Z,ULERR ; Nothing after number - Error + OR A ; Clear Carry +LINFND: PUSH BC ; Save address of line in prog + JP NC,INEWLN ; Line not found - Insert new + EX DE,HL ; Next line address in DE + LD HL,(PROGND) ; End of program +SFTPRG: LD A,(DE) ; Shift rest of program down + LD (BC),A + INC BC ; Next destination + INC DE ; Next source + LD A,H ; All done? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP NZ,SFTPRG ; More to do + LD H,B ; HL - New end of program + LD L,C + LD (PROGND),HL ; Update end of program + +INEWLN: POP DE ; Get address of line, + POP AF ; Get status + JP Z,SETPTR ; No text - Set up pointers + LD HL,(PROGND) ; Get end of program + EX (SP),HL ; Get length of input line + POP BC ; End of program to BC + ADD HL,BC ; Find new end + PUSH HL ; Save new end + CALL MOVUP ; Make space for line + POP HL ; Restore new end + LD (PROGND),HL ; Update end of program pointer + EX DE,HL ; Get line to move up in HL + LD (HL),H ; Save MSB + POP DE ; Get new line number + INC HL ; Skip pointer + INC HL + LD (HL),E ; Save LSB of line number + INC HL + LD (HL),D ; Save MSB of line number + INC HL ; To first byte in line + LD DE,BUFFER ; Copy buffer to program +MOVBUF: LD A,(DE) ; Get source + LD (HL),A ; Save destinations + INC HL ; Next source + INC DE ; Next destination + OR A ; Done? + JP NZ,MOVBUF ; No - Repeat +SETPTR: CALL RUNFST ; Set line pointers + INC HL ; To LSB of pointer + EX DE,HL ; Address to DE +PTRLP: LD H,D ; Address to HL + LD L,E + LD A,(HL) ; Get LSB of pointer + INC HL ; To MSB of pointer + OR (HL) ; Compare with MSB pointer + JP Z,GETCMD ; Get command line if end + INC HL ; To LSB of line number + INC HL ; Skip line number + INC HL ; Point to first byte in line + XOR A ; Looking for 00 byte +FNDEND: CP (HL) ; Found end of line? + INC HL ; Move to next byte + JP NZ,FNDEND ; No - Keep looking + EX DE,HL ; Next line address to HL + LD (HL),E ; Save LSB of pointer + INC HL + LD (HL),D ; Save MSB of pointer + JP PTRLP ; Do next line + +SRCHLN: LD HL,(BASTXT) ; Start of program text +SRCHLP: LD B,H ; BC = Address to look at + LD C,L + LD A,(HL) ; Get address of next line + INC HL + OR (HL) ; End of program found? + DEC HL + RET Z ; Yes - Line not found + INC HL + INC HL + LD A,(HL) ; Get LSB of line number + INC HL + LD H,(HL) ; Get MSB of line number + LD L,A + LD A,H ; Compare with line in DE + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + LD H,B ; HL = Start of this line + LD L,C + LD A,(HL) ; Get LSB of next line address + INC HL + LD H,(HL) ; Get MSB of next line address + LD L,A ; Next line to HL + CCF + RET Z ; Lines found - Exit + CCF + RET NC ; Line not found,at line after + JP SRCHLP ; Keep looking + +NEW: RET NZ ; Return if any more on line +CLRPTR: LD HL,(BASTXT) ; Point to start of program + XOR A ; Set program area to empty + LD (HL),A ; Save LSB = 00 + INC HL + LD (HL),A ; Save MSB = 00 + INC HL + LD (PROGND),HL ; Set program end + +RUNFST: LD HL,(BASTXT) ; Clear all variables + DEC HL + +INTVAR: LD (BRKLIN),HL ; Initialise RUN variables + LD HL,(LSTRAM) ; Get end of RAM + LD (STRBOT),HL ; Clear string space + XOR A + CALL RESTOR ; Reset DATA pointers + LD HL,(PROGND) ; Get end of program + LD (VAREND),HL ; Clear variables + LD (ARREND),HL ; Clear arrays + +CLREG: POP BC ; Save return address + LD HL,(STRSPC) ; Get end of working RAM + LD SP,HL ; Set stack + LD HL,TMSTPL ; Temporary string pool + LD (TMSTPT),HL ; Reset temporary string ptr + XOR A ; A = 00 + LD L,A ; HL = 0000 + LD H,A + LD (CONTAD),HL ; No CONTinue + LD (FORFLG),A ; Clear FOR flag + LD (FNRGNM),HL ; Clear FN argument + PUSH HL ; HL = 0000 + PUSH BC ; Put back return +DOAGN: LD HL,(BRKLIN) ; Get address of code to RUN + RET ; Return to execution driver + +PROMPT: LD A,'?' ; '?' + CALL OUTC ; Output character + LD A,' ' ; Space + CALL OUTC ; Output character + JP RINPUT ; Get input line + +CRUNCH: XOR A ; Tokenise line @ HL to BUFFER + LD (DATFLG),A ; Reset literal flag + LD C,2+3 ; 2 byte number and 3 nulls + LD DE,BUFFER ; Start of input buffer +CRNCLP: LD A,(HL) ; Get byte + CP ' ' ; Is it a space? + JP Z,MOVDIR ; Yes - Copy direct + LD B,A ; Save character + CP '"' ; Is it a quote? + JP Z,CPYLIT ; Yes - Copy literal string + OR A ; Is it end of buffer? + JP Z,ENDBUF ; Yes - End buffer + LD A,(DATFLG) ; Get data type + OR A ; Literal? + LD A,(HL) ; Get byte to copy + JP NZ,MOVDIR ; Literal - Copy direct + CP '?' ; Is it '?' short for PRINT + LD A,ZPRINT ; "PRINT" token + JP Z,MOVDIR ; Yes - replace it + LD A,(HL) ; Get byte again + CP '0' ; Is it less than '0' + JP C,FNDWRD ; Yes - Look for reserved words + CP 60 ; ';'+1 Is it "0123456789:;" ? + JP C,MOVDIR ; Yes - copy it direct +FNDWRD: PUSH DE ; Look for reserved words + LD DE,WORDS-1 ; Point to table + PUSH BC ; Save count + LD BC,RETNAD ; Where to return to + PUSH BC ; Save return address + LD B,ZEND-1 ; First token value -1 + LD A,(HL) ; Get byte + CP 'a' ; Less than 'a' ? + JP C,SEARCH ; Yes - search for words + CP 'z'+1 ; Greater than 'z' ? + JP NC,SEARCH ; Yes - search for words + AND 01011111B ; Force upper case + LD (HL),A ; Replace byte +SEARCH: LD C,(HL) ; Search for a word + EX DE,HL +GETNXT: INC HL ; Get next reserved word + OR (HL) ; Start of word? + JP P,GETNXT ; No - move on + INC B ; Increment token value + LD A,(HL) ; Get byte from table + AND 01111111B ; Strip bit 7 + RET Z ; Return if end of list + CP C ; Same character as in buffer? + JP NZ,GETNXT ; No - get next word + EX DE,HL + PUSH HL ; Save start of word + +NXTBYT: INC DE ; Look through rest of word + LD A,(DE) ; Get byte from table + OR A ; End of word ? + JP M,MATCH ; Yes - Match found + LD C,A ; Save it + LD A,B ; Get token value + CP ZGOTO ; Is it "GOTO" token ? + JP NZ,NOSPC ; No - Don't allow spaces + CALL GETCHR ; Get next character + DEC HL ; Cancel increment from GETCHR +NOSPC: INC HL ; Next byte + LD A,(HL) ; Get byte + CP 'a' ; Less than 'a' ? + JP C,NOCHNG ; Yes - don't change + AND 01011111B ; Make upper case +NOCHNG: CP C ; Same as in buffer ? + JP Z,NXTBYT ; Yes - keep testing + POP HL ; Get back start of word + JP SEARCH ; Look at next word + +MATCH: LD C,B ; Word found - Save token value + POP AF ; Throw away return + EX DE,HL + RET ; Return to "RETNAD" +RETNAD: EX DE,HL ; Get address in string + LD A,C ; Get token value + POP BC ; Restore buffer length + POP DE ; Get destination address +MOVDIR: INC HL ; Next source in buffer + LD (DE),A ; Put byte in buffer + INC DE ; Move up buffer + INC C ; Increment length of buffer + SUB ':' ; End of statement? + JP Z,SETLIT ; Jump if multi-statement line + CP ZDATA-3AH ; Is it DATA statement ? + JP NZ,TSTREM ; No - see if REM +SETLIT: LD (DATFLG),A ; Set literal flag +TSTREM: SUB ZREM-3AH ; Is it REM? + JP NZ,CRNCLP ; No - Leave flag + LD B,A ; Copy rest of buffer +NXTCHR: LD A,(HL) ; Get byte + OR A ; End of line ? + JP Z,ENDBUF ; Yes - Terminate buffer + CP B ; End of statement ? + JP Z,MOVDIR ; Yes - Get next one +CPYLIT: INC HL ; Move up source string + LD (DE),A ; Save in destination + INC C ; Increment length + INC DE ; Move up destination + JP NXTCHR ; Repeat + +ENDBUF: LD HL,BUFFER-1 ; Point to start of buffer + LD (DE),A ; Mark end of buffer (A = 00) + INC DE + LD (DE),A ; A = 00 + INC DE + LD (DE),A ; A = 00 + RET + +DODEL: LD A,(NULFLG) ; Get null flag status + OR A ; Is it zero? + LD A,0 ; Zero A - Leave flags + LD (NULFLG),A ; Zero null flag + JP NZ,ECHDEL ; Set - Echo it + DEC B ; Decrement length + JP Z,RINPUT ; Get line again if empty + CALL OUTC ; Output null character + .BYTE 3EH ; Skip "DEC B" +ECHDEL: DEC B ; Count bytes in buffer + DEC HL ; Back space buffer + JP Z,OTKLN ; No buffer - Try again + LD A,(HL) ; Get deleted byte + CALL OUTC ; Echo it + JP MORINP ; Get more input + +DELCHR: DEC B ; Count bytes in buffer + DEC HL ; Back space buffer + CALL OUTC ; Output character in A + JP NZ,MORINP ; Not end - Get more +OTKLN: CALL OUTC ; Output character in A +KILIN: CALL PRNTCRLF ; Output CRLF + JP RINPUT ; Get line again + +TTYLIN: LD HL,BUFFER ; Get a line by character + LD B,1 ; Set buffer as empty + XOR A + LD (NULFLG),A ; Clear null flag +MORINP: CALL CLOTST ; Get character and test ^O + LD C,A ; Save character in C + CP DEL ; Delete character? + JP Z,DODEL ; Yes - Process it + LD A,(NULFLG) ; Get null flag + OR A ; Test null flag status + JP Z,PROCES ; Reset - Process character + LD A,0 ; Set a null + CALL OUTC ; Output null + XOR A ; Clear A + LD (NULFLG),A ; Reset null flag +PROCES: LD A,C ; Get character + CP CTRLG ; Bell? + JP Z,PUTCTL ; Yes - Save it + CP CTRLC ; Is it control "C"? + CALL Z,PRNTCRLF ; Yes - Output CRLF + SCF ; Flag break + RET Z ; Return if control "C" + CP CR ; Is it enter? + JP Z,ENDINP ; Yes - Terminate input + CP CTRLU ; Is it control "U"? + JP Z,KILIN ; Yes - Get another line + CP '@' ; Is it "kill line"? + JP Z,OTKLN ; Yes - Kill line + CP '_' ; Is it delete? + JP Z,DELCHR ; Yes - Delete character + CP BKSP ; Is it backspace? + JP Z,DELCHR ; Yes - Delete character + CP CTRLR ; Is it control "R"? + JP NZ,PUTBUF ; No - Put in buffer + PUSH BC ; Save buffer length + PUSH DE ; Save DE + PUSH HL ; Save buffer address + LD (HL),0 ; Mark end of buffer + CALL OUTNCR ; Output and do CRLF + LD HL,BUFFER ; Point to buffer start + CALL PRS ; Output buffer + POP HL ; Restore buffer address + POP DE ; Restore DE + POP BC ; Restore buffer length + JP MORINP ; Get another character + +PUTBUF: CP ' ' ; Is it a control code? + JP C,MORINP ; Yes - Ignore +PUTCTL: LD A,B ; Get number of bytes in buffer + CP 72+1 ; Test for line overflow + LD A,CTRLG ; Set a bell + JP NC,OUTNBS ; Ring bell if buffer full + LD A,C ; Get character + LD (HL),C ; Save in buffer + LD (LSTBIN),A ; Save last input byte + INC HL ; Move up buffer + INC B ; Increment length +OUTIT: CALL OUTC ; Output the character entered + JP MORINP ; Get another character + +OUTNBS: CALL OUTC ; Output bell and back over it + LD A,BKSP ; Set back space + JP OUTIT ; Output it and get more + +CHKSYN: LD A,(HL) ; Check syntax of character + EX (SP),HL ; Address of test byte + CP (HL) ; Same as in code string? + INC HL ; Return address + EX (SP),HL ; Put it back + JP Z,GETCHR ; Yes - Get next character + JP SNERR ; Different - ?SN Error + +OUTC: PUSH AF ; Save character + LD A,(CTLOFG) ; Get control "O" flag + OR A ; Is it set? + JP NZ,POPAF ; Yes - don't output + POP AF ; Restore character + PUSH BC ; Save buffer length + PUSH AF ; Save character + CP ' ' ; Is it a control code? + JP C,DINPOS ; Yes - Don't INC POS(X) + LD A,(LWIDTH) ; Get line width + LD B,A ; To B + LD A,(CURPOS) ; Get cursor position + INC B ; Width 255? + JP Z,INCLEN ; Yes - No width limit + DEC B ; Restore width + CP B ; At end of line? + CALL Z,PRNTCRLF ; Yes - output CRLF +INCLEN: INC A ; Move on one character + LD (CURPOS),A ; Save new position +DINPOS: POP AF ; Restore character + POP BC ; Restore buffer length + RST 08H ; Send it + RET + +OUTNCR: CALL OUTC ; Output character in A + JP PRNTCRLF ; Output CRLF + +CLOTST: RST 10H ; Get input character + AND 01111111B ; Strip bit 7 + CP CTRLO ; Is it control "O"? + RET NZ ; No don't flip flag + LD A,(CTLOFG) ; Get flag + CPL ; Flip it + LD (CTLOFG),A ; Put it back + XOR A ; Null character + RET + +LIST: CALL ATOH ; ASCII number to DE + RET NZ ; Return if anything extra + POP BC ; Rubbish - Not needed + CALL SRCHLN ; Search for line number in DE + PUSH BC ; Save address of line + CALL SETLIN ; Set up lines counter +LISTLP: POP HL ; Restore address of line + LD C,(HL) ; Get LSB of next line + INC HL + LD B,(HL) ; Get MSB of next line + INC HL + LD A,B ; BC = 0 (End of program)? + OR C + JP Z,PRNTOK ; Yes - Go to command mode + CALL COUNT ; Count lines + CALL TSTBRK ; Test for break key + PUSH BC ; Save address of next line + CALL PRNTCRLF ; Output CRLF + LD E,(HL) ; Get LSB of line number + INC HL + LD D,(HL) ; Get MSB of line number + INC HL + PUSH HL ; Save address of line start + EX DE,HL ; Line number to HL + CALL PRNTHL ; Output line number in decimal + LD A,' ' ; Space after line number + POP HL ; Restore start of line address +LSTLP2: CALL OUTC ; Output character in A +LSTLP3: LD A,(HL) ; Get next byte in line + OR A ; End of line? + INC HL ; To next byte in line + JP Z,LISTLP ; Yes - get next line + JP P,LSTLP2 ; No token - output it + SUB ZEND-1 ; Find and output word + LD C,A ; Token offset+1 to C + LD DE,WORDS ; Reserved word list +FNDTOK: LD A,(DE) ; Get character in list + INC DE ; Move on to next + OR A ; Is it start of word? + JP P,FNDTOK ; No - Keep looking for word + DEC C ; Count words + JP NZ,FNDTOK ; Not there - keep looking +OUTWRD: AND 01111111B ; Strip bit 7 + CALL OUTC ; Output first character + LD A,(DE) ; Get next character + INC DE ; Move on to next + OR A ; Is it end of word? + JP P,OUTWRD ; No - output the rest + JP LSTLP3 ; Next byte in line + +SETLIN: PUSH HL ; Set up LINES counter + LD HL,(LINESN) ; Get LINES number + LD (LINESC),HL ; Save in LINES counter + POP HL + RET + +COUNT: PUSH HL ; Save code string address + PUSH DE + LD HL,(LINESC) ; Get LINES counter + LD DE,-1 + ADC HL,DE ; Decrement + LD (LINESC),HL ; Put it back + POP DE + POP HL ; Restore code string address + RET P ; Return if more lines to go + PUSH HL ; Save code string address + LD HL,(LINESN) ; Get LINES number + LD (LINESC),HL ; Reset LINES counter + RST 10H ; Get input character + CP CTRLC ; Is it control "C"? + JP Z,RSLNBK ; Yes - Reset LINES and break + POP HL ; Restore code string address + JP COUNT ; Keep on counting + +RSLNBK: LD HL,(LINESN) ; Get LINES number + LD (LINESC),HL ; Reset LINES counter + JP BRKRET ; Go and output "Break" + +FOR: LD A,64H ; Flag "FOR" assignment + LD (FORFLG),A ; Save "FOR" flag + CALL LET ; Set up initial index + POP BC ; Drop RETurn address + PUSH HL ; Save code string address + CALL DATA ; Get next statement address + LD (LOOPST),HL ; Save it for start of loop + LD HL,2 ; Offset for "FOR" block + ADD HL,SP ; Point to it +FORSLP: CALL LOKFOR ; Look for existing "FOR" block + POP DE ; Get code string address + JP NZ,FORFND ; No nesting found + ADD HL,BC ; Move into "FOR" block + PUSH DE ; Save code string address + DEC HL + LD D,(HL) ; Get MSB of loop statement + DEC HL + LD E,(HL) ; Get LSB of loop statement + INC HL + INC HL + PUSH HL ; Save block address + LD HL,(LOOPST) ; Get address of loop statement + LD A,H ; Compare the FOR loops + SUB D ; Compare with D + JP NZ,$+5 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + POP HL ; Restore block address + JP NZ,FORSLP ; Different FORs - Find another + POP DE ; Restore code string address + LD SP,HL ; Remove all nested loops + +FORFND: EX DE,HL ; Code string address to HL + LD C,8 + CALL CHKSTK ; Check for 8 levels of stack + PUSH HL ; Save code string address + LD HL,(LOOPST) ; Get first statement of loop + EX (SP),HL ; Save and restore code string + PUSH HL ; Re-save code string address + LD HL,(LINEAT) ; Get current line number + EX (SP),HL ; Save and restore code string + CALL TSTNUM ; Make sure it's a number + CALL CHKSYN ; Make sure "TO" is next + .BYTE ZTO ; "TO" token + CALL GETNUM ; Get "TO" expression value + LD DE,(FPREG) ; Move "TO" value to BCDE + LD BC,(FPREG+2) + PUSH BC ; Save "TO" value in block + PUSH DE + LD BC,8100H ; BCDE - 1 (default STEP) + LD D,C ; C=0 + LD E,D ; D=0 + LD A,(HL) ; Get next byte in code string + CP ZSTEP ; See if "STEP" is stated + LD A,1 ; Sign of step = 1 + JP NZ,SAVSTP ; No STEP given - Default to 1 + CALL GETCHR ; Jump over "STEP" token + CALL GETNUM ; Get step value + LD DE,(FPREG) ; Move STEP to BCDE + LD BC,(FPREG+2) + CALL TSTSGN ; Test sign of FPREG +SAVSTP: PUSH BC ; Save the STEP value in block + PUSH DE + PUSH AF ; Save sign of STEP + INC SP ; Don't save flags + PUSH HL ; Save code string address + LD HL,(BRKLIN) ; Get address of index variable + EX (SP),HL ; Save and restore code string +PUTFID: LD B,ZFOR ; "FOR" block marker + PUSH BC ; Save it + INC SP ; Don't save C + +RUNCNT: CALL TSTBRK ; Execution driver - Test break + LD (BRKLIN),HL ; Save code address for break + LD A,(HL) ; Get next byte in code string + CP ':' ; Multi statement line? + JP Z,EXCUTE ; Yes - Execute it + OR A ; End of line? + JP NZ,SNERR ; No - Syntax error + INC HL ; Point to address of next line + LD A,(HL) ; Get LSB of line pointer + INC HL + OR (HL) ; Is it zero (End of prog)? + JP Z,ENDPRG ; Yes - Terminate execution + INC HL ; Point to line number + LD E,(HL) ; Get LSB of line number + INC HL + LD D,(HL) ; Get MSB of line number + LD (LINEAT),DE ; Save as current line number +EXCUTE: CALL GETCHR ; Get key word + LD DE,RUNCNT ; Where to RETurn to + PUSH DE ; Save for RETurn +IFJMP: RET Z ; Go to RUNCNT if end of STMT +ONJMP: SUB ZEND ; Is it a token? + JP C,LET ; No - try to assign it + CP ZNEW+1-ZEND ; END to NEW ? + JP NC,SNERR ; Not a key word - ?SN Error + RLCA ; Double it + LD C,A ; BC = Offset into table + LD B,0 + EX DE,HL ; Save code string address + LD HL,WORDTB ; Keyword address table + ADD HL,BC ; Point to routine address + LD C,(HL) ; Get LSB of routine address + INC HL + LD B,(HL) ; Get MSB of routine address + PUSH BC ; Save routine address + EX DE,HL ; Restore code string address + +GETCHR: INC HL ; Point to next character + LD A,(HL) ; Get next code string byte + CP ':' ; Z if ':' + RET NC ; NC if > "9" + CP ' ' + JR Z,GETCHR ; Skip over spaces + CP '0' + CCF ; NC if < '0' + INC A ; Test for zero - Leave carry + DEC A ; Z if Null + RET + +RESTOR: EX DE,HL ; Save code string address + LD HL,(BASTXT) ; Point to start of program + JP Z,RESTNL ; Just RESTORE - reset pointer + EX DE,HL ; Restore code string address + CALL ATOH ; Get line number to DE + PUSH HL ; Save code string address + CALL SRCHLN ; Search for line number in DE + LD H,B ; HL = Address of line + LD L,C + POP DE ; Restore code string address + JP NC,ULERR ; ?UL Error if not found +RESTNL: DEC HL ; Byte before DATA statement +UPDATA: LD (NXTDAT),HL ; Update DATA pointer + EX DE,HL ; Restore code string address + RET + + +TSTBRK: RST 18H ; Check input status + OR A ; Check count Zero + RET Z ; No key, go back + RST 10H ; Get the key into A + CP ESC ; Escape key? + JR Z,BRK ; Yes, break + CP CTRLC ; + JR Z,BRK ; Yes, break + CP CTRLS ; Stop scrolling? + RET NZ ; Other key, ignore + + +STALL: RST 10H ; Wait for key + CP CTRLQ ; Resume scrolling? + RET Z ; Release the chokehold + CP CTRLC ; Second break? + JR Z,STOP ; Break during hold exits prog + JR STALL ; Loop until or + +BRK: LD A,$FF ; Set BRKFLG + LD (BRKFLG),A ; Store it + + +STOP: RET NZ ; Exit if anything else + .BYTE 0F6H ; Flag "STOP" +PEND: RET NZ ; Exit if anything else + LD (BRKLIN),HL ; Save point of break + .BYTE 21H ; Skip "OR 11111111B" +INPBRK: OR 11111111B ; Flag "Break" wanted + POP BC ; Return not needed and more +ENDPRG: LD HL,(LINEAT) ; Get current line number + PUSH AF ; Save STOP / END status + LD A,L ; Is it direct break? + AND H + INC A ; Line is -1 if direct break + JP Z,NOLIN ; Yes - No line number + LD (ERRLIN),HL ; Save line of break + LD HL,(BRKLIN) ; Get point of break + LD (CONTAD),HL ; Save point to CONTinue +NOLIN: XOR A + LD (CTLOFG),A ; Enable output + CALL STTLIN ; Start a new line + POP AF ; Restore STOP / END status + LD HL,BRKMSG ; "Break" message + JP NZ,ERRIN ; "in line" wanted? + JP PRNTOK ; Go to command mode + +CONT: LD HL,(CONTAD) ; Get CONTinue address + LD A,H ; Is it zero? + OR L + LD E,CN ; ?CN Error + JP Z,ERROR ; Yes - output "?CN Error" + EX DE,HL ; Save code string address + LD HL,(ERRLIN) ; Get line of last break + LD (LINEAT),HL ; Set up current line number + EX DE,HL ; Restore code string address + RET ; CONTinue where left off + +NULL: CALL GETINT ; Get integer 0-255 + RET NZ ; Return if bad value + LD (NULLS),A ; Set nulls number + RET + +ACCSUM: PUSH HL ; Save address in array + LD HL,(CHKSUM) ; Get check sum + LD B,0 ; BC - Value of byte + LD C,A + ADD HL,BC ; Add byte to check sum + LD (CHKSUM),HL ; Re-save check sum + POP HL ; Restore address in array + RET + +CHKLTR: LD A,(HL) ; Get byte + CP 'A' ; < 'a' ? + RET C ; Carry set if not letter + CP 'Z'+1 ; > 'z' ? + CCF + RET ; Carry set if not letter + +FPSINT: CALL GETCHR ; Get next character +POSINT: CALL GETNUM ; Get integer 0 to 32767 +DEPINT: CALL TSTSGN ; Test sign of FPREG + JP M,FCERR ; Negative - ?FC Error +DEINT: LD A,(FPEXP) ; Get integer value to DE + CP 80H+16 ; Exponent in range (16 bits)? + JP C,FPINT ; Yes - convert it + LD BC,9080H ; BCDE = -32768 + LD DE,0000 + PUSH HL ; Save code string address + CALL CMPNUM ; Compare FPREG with BCDE + POP HL ; Restore code string address + LD D,C ; MSB to D + RET Z ; Return if in range +FCERR: LD E,FC ; ?FC Error + JP ERROR ; Output error- + +ATOH: DEC HL ; ASCII number to DE binary +GETLN: LD DE,0 ; Get number to DE +GTLNLP: CALL GETCHR ; Get next character + RET NC ; Exit if not a digit + PUSH HL ; Save code string address + PUSH AF ; Save digit + LD HL,65529/10 ; Largest number 65529 + LD A,H ; Number in range? + SUB D ; Compare with D + JP NZ,$+5 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP C,SNERR ; No - ?SN Error + LD H,D ; HL = Number + LD L,E + ADD HL,DE ; Times 2 + ADD HL,HL ; Times 4 + ADD HL,DE ; Times 5 + ADD HL,HL ; Times 10 + POP AF ; Restore digit + SUB '0' ; Make it 0 to 9 + LD E,A ; DE = Value of digit + LD D,0 + ADD HL,DE ; Add to number + EX DE,HL ; Number to DE + POP HL ; Restore code string address + JP GTLNLP ; Go to next character + +CLEAR: JP Z,INTVAR ; Just "CLEAR" Keep parameters + CALL POSINT ; Get integer 0 to 32767 to DE + DEC HL ; Cancel increment + CALL GETCHR ; Get next character + PUSH HL ; Save code string address + LD HL,(LSTRAM) ; Get end of RAM + JP Z,STORED ; No value given - Use stored + POP HL ; Restore code string address + CALL CHKSYN ; Check for comma + .BYTE ',' + PUSH DE ; Save number + CALL POSINT ; Get integer 0 to 32767 + DEC HL ; Cancel increment + CALL GETCHR ; Get next character + JP NZ,SNERR ; ?SN Error if more on line + EX (SP),HL ; Save code string address + EX DE,HL ; Number to DE +STORED: LD A,L ; Get LSB of new RAM top + SUB E ; Subtract LSB of string space + LD E,A ; Save LSB + LD A,H ; Get MSB of new RAM top + SBC A,D ; Subtract MSB of string space + LD D,A ; Save MSB + JP C,OMERR ; ?OM Error if not enough mem + PUSH HL ; Save RAM top + LD HL,(PROGND) ; Get program end + LD BC,40 ; 40 Bytes minimum working RAM + ADD HL,BC ; Get lowest address + LD A,H ; Enough memory? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP NC,OMERR ; No - ?OM Error + EX DE,HL ; RAM top to HL + LD (STRSPC),HL ; Set new string space + POP HL ; End of memory to use + LD (LSTRAM),HL ; Set new top of RAM + POP HL ; Restore code string address + JP INTVAR ; Initialise variables + +RUN: JP Z,RUNFST ; RUN from start if just RUN + CALL INTVAR ; Initialise variables + LD BC,RUNCNT ; Execution driver loop + JP RUNLIN ; RUN from line number + +GOSUB: LD C,3 ; 3 Levels of stack needed + CALL CHKSTK ; Check for 3 levels of stack + POP BC ; Get return address + PUSH HL ; Save code string for RETURN + PUSH HL ; And for GOSUB routine + LD HL,(LINEAT) ; Get current line + EX (SP),HL ; Into stack - Code string out + LD A,ZGOSUB ; "GOSUB" token + PUSH AF ; Save token + INC SP ; Don't save flags + +RUNLIN: PUSH BC ; Save return address +GOTO: CALL ATOH ; ASCII number to DE binary + CALL REM ; Get end of line + PUSH HL ; Save end of line + LD HL,(LINEAT) ; Get current line + LD A,H ; Line after current? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + POP HL ; Restore end of line + INC HL ; Start of next line + CALL C,SRCHLP ; Line is after current line + CALL NC,SRCHLN ; Line is before current line + LD H,B ; Set up code string address + LD L,C + DEC HL ; Incremented after + RET C ; Line found +ULERR: LD E,UL ; ?UL Error + JP ERROR ; Output error message + +RETURN: RET NZ ; Return if not just RETURN + LD D,-1 ; Flag "GOSUB" search + CALL BAKSTK ; Look "GOSUB" block + LD SP,HL ; Kill all FORs in subroutine + CP ZGOSUB ; Test for "GOSUB" token + LD E,RG ; ?RG Error + JP NZ,ERROR ; Error if no "GOSUB" found + POP HL ; Get RETURN line number + LD (LINEAT),HL ; Save as current + INC HL ; Was it from direct statement? + LD A,H + OR L ; Return to line + JP NZ,RETLIN ; No - Return to line + LD A,(LSTBIN) ; Any INPUT in subroutine? + OR A ; If so buffer is corrupted + JP NZ,POPNOK ; Yes - Go to command mode +RETLIN: LD HL,RUNCNT ; Execution driver loop + EX (SP),HL ; Into stack - Code string out + .BYTE 3EH ; Skip "POP HL" +NXTDTA: POP HL ; Restore code string address + +DATA: .BYTE 01H,3AH ; ':' End of statement +REM: LD C,0 ; 00 End of statement + LD B,0 +NXTSTL: LD A,C ; Statement and byte + LD C,B + LD B,A ; Statement end byte +NXTSTT: LD A,(HL) ; Get byte + OR A ; End of line? + RET Z ; Yes - Exit + CP B ; End of statement? + RET Z ; Yes - Exit + INC HL ; Next byte + CP '"' ; Literal string? + JP Z,NXTSTL ; Yes - Look for another '"' + JP NXTSTT ; Keep looking + +LET: CALL GETVAR ; Get variable name + CALL CHKSYN ; Make sure "=" follows + .BYTE ZEQUAL ; "=" token + PUSH DE ; Save address of variable + LD A,(TYPE) ; Get data type + PUSH AF ; Save type + CALL EVAL ; Evaluate expression + POP AF ; Restore type + EX (SP),HL ; Save code - Get var addr + LD (BRKLIN),HL ; Save address of variable + RRA ; Adjust type + CALL CHKTYP ; Check types are the same + JP Z,LETNUM ; Numeric - Move value +LETSTR: PUSH HL ; Save address of string var + LD HL,(FPREG) ; Pointer to string entry + PUSH HL ; Save it on stack + INC HL ; Skip over length + INC HL + LD E,(HL) ; LSB of string address + INC HL + LD D,(HL) ; MSB of string address + LD HL,(BASTXT) ; Point to start of program + LD A,H ; Is string before program? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP NC,CRESTR ; Yes - Create string entry + LD HL,(STRSPC) ; Point to string space + LD A,H ; Is string literal in program? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + POP DE ; Restore address of string + JP NC,MVSTPT ; Yes - Set up pointer + LD HL,TMPSTR ; Temporary string pool + LD A,H ; Is string in temporary pool? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP NC,MVSTPT ; No - Set up pointer + .BYTE 3EH ; Skip "POP DE" +CRESTR: POP DE ; Restore address of string + CALL BAKTMP ; Back to last tmp-str entry + EX DE,HL ; Address of string entry + CALL SAVSTR ; Save string in string area +MVSTPT: CALL BAKTMP ; Back to last tmp-str entry + POP HL ; Get string pointer + EX DE,HL ; Move string pointer to var + LDI ; 4 bytes to move (HL++)->(DE++) + LDI + LDI + LDI + POP HL ; Restore code string address + RET + +LETNUM: PUSH HL ; Save address of variable + LD DE,FPREG ; Move FPREG to variable + EX DE,HL + LDI ; 4 bytes to move (HL++)->(DE++) + LDI + LDI + LDI + POP DE ; Restore address of variable + POP HL ; Restore code string address + RET + +ON: CALL GETINT ; Get integer 0-255 + LD A,(HL) ; Get "GOTO" or "GOSUB" token + LD B,A ; Save in B + CP ZGOSUB ; "GOSUB" token? + JP Z,ONGO ; Yes - Find line number + CALL CHKSYN ; Make sure it's "GOTO" + .BYTE ZGOTO ; "GOTO" token + DEC HL ; Cancel increment +ONGO: LD C,E ; Integer of branch value +ONGOLP: DEC C ; Count branches + LD A,B ; Get "GOTO" or "GOSUB" token + JP Z,ONJMP ; Go to that line if right one + CALL GETLN ; Get line number to DE + CP ',' ; Another line number? + RET NZ ; No - Drop through + JP ONGOLP ; Yes - loop + +IF: CALL EVAL ; Evaluate expression + LD A,(HL) ; Get token + CP ZGOTO ; "GOTO" token? + JP Z,IFGO ; Yes - Get line + CALL CHKSYN ; Make sure it's "THEN" + .BYTE ZTHEN ; "THEN" token + DEC HL ; Cancel increment +IFGO: CALL TSTNUM ; Make sure it's numeric + CALL TSTSGN ; Test state of expression + JP Z,REM ; False - Drop through + CALL GETCHR ; Get next character + JP C,GOTO ; Number - GOTO that line + JP IFJMP ; Otherwise do statement + +MRPRNT: DEC HL ; DEC 'cos GETCHR INCs + CALL GETCHR ; Get next character +PRINT: JP Z,PRNTCRLF ; CRLF if just PRINT +PRNTLP: RET Z ; End of list - Exit + CP ZTAB ; "TAB(" token? + JP Z,DOTAB ; Yes - Do TAB routine + CP ZSPC ; "SPC(" token? + JP Z,DOTAB ; Yes - Do SPC routine + PUSH HL ; Save code string address + CP ',' ; Comma? + JP Z,DOCOM ; Yes - Move to next zone + CP 59 ; ';' Semi-colon? + JP Z,NEXITM ; Do semi-colon routine + POP BC ; Code string address to BC + CALL EVAL ; Evaluate expression + PUSH HL ; Save code string address + LD A,(TYPE) ; Get variable type + OR A ; Is it a string variable? + JP NZ,PRNTST ; Yes - Output string contents + CALL NUMASC ; Convert number to text + CALL CRTST ; Create temporary string + LD (HL),' ' ; Followed by a space + LD HL,(FPREG) ; Get length of output + INC (HL) ; Plus 1 for the space + LD HL,(FPREG) ; < Not needed > + LD A,(LWIDTH) ; Get width of line + LD B,A ; To B + INC B ; Width 255 (No limit)? + JP Z,PRNTNB ; Yes - Output number string + INC B ; Adjust it + LD A,(CURPOS) ; Get cursor position + ADD A,(HL) ; Add length of string + DEC A ; Adjust it + CP B ; Will output fit on this line? + CALL NC,PRNTCRLF ; No - CRLF first +PRNTNB: CALL PRS1 ; Output string at (HL) + XOR A ; Skip CALL by setting 'z' flag +PRNTST: CALL NZ,PRS1 ; Output string at (HL) + POP HL ; Restore code string address + JP MRPRNT ; See if more to PRINT + +STTLIN: LD A,(CURPOS) ; Make sure on new line + OR A ; Already at start? + RET Z ; Yes - Do nothing + JP PRNTCRLF ; Start a new line + +ENDINP: LD (HL),0 ; Mark end of buffer + LD HL,BUFFER-1 ; Point to buffer +PRNTCRLF: LD A,CR ; Load a CR + CALL OUTC ; Output character + LD A,LF ; Load a LF + CALL OUTC ; Output character +DONULL: XOR A ; Set to position 0 + LD (CURPOS),A ; Store it + LD A,(NULLS) ; Get number of nulls +NULLP: DEC A ; Count them + RET Z ; Return if done + PUSH AF ; Save count + XOR A ; Load a null + CALL OUTC ; Output it + POP AF ; Restore count + JP NULLP ; Keep counting + +DOCOM: LD A,(COMMAN) ; Get comma width + LD B,A ; Save in B + LD A,(CURPOS) ; Get current position + CP B ; Within the limit? + CALL NC,PRNTCRLF ; No - output CRLF + JP NC,NEXITM ; Get next item +ZONELP: SUB 14 ; Next zone of 14 characters + JP NC,ZONELP ; Repeat if more zones + CPL ; Number of spaces to output + JP ASPCS ; Output them + +DOTAB: PUSH AF ; Save token + CALL FNDNUM ; Evaluate expression + CALL CHKSYN ; Make sure ")" follows + .BYTE ")" + DEC HL ; Back space on to ")" + POP AF ; Restore token + SUB ZSPC ; Was it "SPC(" ? + PUSH HL ; Save code string address + JP Z,DOSPC ; Yes - Do 'E' spaces + LD A,(CURPOS) ; Get current position +DOSPC: CPL ; Number of spaces to print to + ADD A,E ; Total number to print + JP NC,NEXITM ; TAB < Current POS(X) +ASPCS: INC A ; Output A spaces + LD B,A ; Save number to print + LD A,' ' ; Space +SPCLP: CALL OUTC ; Output character in A + DEC B ; Count them + JP NZ,SPCLP ; Repeat if more +NEXITM: POP HL ; Restore code string address + CALL GETCHR ; Get next character + JP PRNTLP ; More to print + +REDO: .BYTE "?Redo from start",CR,LF,0 + +BADINP: LD A,(READFG) ; READ or INPUT? + OR A + JP NZ,DATSNR ; READ - ?SN Error + POP BC ; Throw away code string addr + LD HL,REDO ; "Redo from start" message + CALL PRS ; Output string + JP DOAGN ; Do last INPUT again + +INPUT: CALL IDTEST ; Test for illegal direct + LD A,(HL) ; Get character after "INPUT" + CP '"' ; Is there a prompt string? + LD A,0 ; Clear A and leave flags + LD (CTLOFG),A ; Enable output + JP NZ,NOPMPT ; No prompt - get input + CALL QTSTR ; Get string terminated by '"' + CALL CHKSYN ; Check for ';' after prompt + .BYTE ';' + PUSH HL ; Save code string address + CALL PRS1 ; Output prompt string + .BYTE 3EH ; Skip "PUSH HL" +NOPMPT: PUSH HL ; Save code string address + CALL PROMPT ; Get input with "? " prompt + POP BC ; Restore code string address + JP C,INPBRK ; Break pressed - Exit + INC HL ; Next byte + LD A,(HL) ; Get it + OR A ; End of line? + DEC HL ; Back again + PUSH BC ; Re-save code string address + JP Z,NXTDTA ; Yes - Find next DATA stmt + LD (HL),',' ; Store comma as separator + JP NXTITM ; Get next item + +READ: PUSH HL ; Save code string address + LD HL,(NXTDAT) ; Next DATA statement + .BYTE 0F6H ; Flag "READ" +NXTITM: XOR A ; Flag "INPUT" + LD (READFG),A ; Save "READ"/"INPUT" flag + EX (SP),HL ; Get code str' , Save pointer + JP GTVLUS ; Get values + +NEDMOR: CALL CHKSYN ; Check for comma between items + .BYTE ',' +GTVLUS: CALL GETVAR ; Get variable name + EX (SP),HL ; Save code str" , Get pointer + PUSH DE ; Save variable address + LD A,(HL) ; Get next "INPUT"/"DATA" byte + CP ',' ; Comma? + JP Z,ANTVLU ; Yes - Get another value + LD A,(READFG) ; Is it READ? + OR A + JP NZ,FDTLP ; Yes - Find next DATA stmt + LD A,'?' ; More INPUT needed + CALL OUTC ; Output character + CALL PROMPT ; Get INPUT with prompt + POP DE ; Variable address + POP BC ; Code string address + JP C,INPBRK ; Break pressed + INC HL ; Point to next DATA byte + LD A,(HL) ; Get byte + OR A ; Is it zero (No input) ? + DEC HL ; Back space INPUT pointer + PUSH BC ; Save code string address + JP Z,NXTDTA ; Find end of buffer + PUSH DE ; Save variable address +ANTVLU: LD A,(TYPE) ; Check data type + OR A ; Is it numeric? + JP Z,INPBIN ; Yes - Convert to binary + CALL GETCHR ; Get next character + LD D,A ; Save input character + LD B,A ; Again + CP '"' ; Start of literal sting? + JP Z,STRENT ; Yes - Create string entry + LD A,(READFG) ; "READ" or "INPUT" ? + OR A + LD D,A ; Save 00 if "INPUT" + JP Z,ITMSEP ; "INPUT" - End with 00 + LD D,':' ; "DATA" - End with 00 or ':' +ITMSEP: LD B,',' ; Item separator + DEC HL ; Back space for DTSTR +STRENT: CALL DTSTR ; Get string terminated by D + EX DE,HL ; String address to DE + LD HL,LTSTND ; Where to go after LETSTR + EX (SP),HL ; Save HL , get input pointer + PUSH DE ; Save address of string + JP LETSTR ; Assign string to variable + +INPBIN: CALL GETCHR ; Get next character + CALL ASCTFP ; Convert ASCII to FP number + EX (SP),HL ; Save input ptr, Get var addr + LD DE,FPREG ; Move FPREG to variable + EX DE,HL + LDI ; 4 bytes to move (HL++)->(DE++) + LDI + LDI + LDI + POP HL ; Restore input pointer +LTSTND: DEC HL ; DEC 'cos GETCHR INCs + CALL GETCHR ; Get next character + JP Z,MORDT ; End of line - More needed? + CP ',' ; Another value? + JP NZ,BADINP ; No - Bad input +MORDT: EX (SP),HL ; Get code string address + DEC HL ; DEC 'cos GETCHR INCs + CALL GETCHR ; Get next character + JP NZ,NEDMOR ; More needed - Get it + POP DE ; Restore DATA pointer + LD A,(READFG) ; "READ" or "INPUT" ? + OR A + EX DE,HL ; DATA pointer to HL + JP NZ,UPDATA ; Update DATA pointer if "READ" + PUSH DE ; Save code string address + OR (HL) ; More input given? + LD HL,EXTIG ; "?Extra ignored" message + CALL NZ,PRS ; Output string if extra given + POP HL ; Restore code string address + RET + +EXTIG: .BYTE "?Extra ignored",CR,LF,0 + +FDTLP: CALL DATA ; Get next statement + OR A ; End of line? + JP NZ,FANDT ; No - See if DATA statement + INC HL + LD A,(HL) ; End of program? + INC HL + OR (HL) ; 00 00 Ends program + LD E,OD ; ?OD Error + JP Z,ERROR ; Yes - Out of DATA + INC HL + LD E,(HL) ; LSB of line number + INC HL + LD D,(HL) ; MSB of line number + LD (DATLIN),DE ; Set line of current DATA item +FANDT: CALL GETCHR ; Get next character + CP ZDATA ; "DATA" token + JP NZ,FDTLP ; No "DATA" - Keep looking + JP ANTVLU ; Found - Convert input + +NEXT: LD DE,0 ; In case no index given +NEXT1: CALL NZ,GETVAR ; Get index address + LD (BRKLIN),HL ; Save code string address + CALL BAKSTK ; Look for "FOR" block + JP NZ,NFERR ; No "FOR" - ?NF Error + LD SP,HL ; Clear nested loops + PUSH DE ; Save index address + LD A,(HL) ; Get sign of STEP + INC HL + PUSH AF ; Save sign of STEP + PUSH DE ; Save index address + LD DE,FPREG ; Move index value to FPREG + LDI ; 4 bytes to move (HL++)->(DE++) + LDI + LDI + LDI + EX (SP),HL ; Save address of TO value + PUSH HL ; Save address of index + CALL ADDPHL ; Add STEP to index value + POP DE ; Restore address of index + LD HL,FPREG ; Move FPREG to index variable + LDI ; 4 bytes to move (HL++)->(DE++) + LDI + LDI + LDI + POP HL ; Restore address of TO value + CALL LOADFP ; Move TO value to BCDE + PUSH HL ; Save address of line of FOR + CALL CMPNUM ; Compare index with TO value + POP HL ; Restore address of line num + POP BC ; Address of sign of STEP + SUB B ; Compare with expected sign + CALL LOADFP ; BC = Loop stmt,DE = Line num + JP Z,KILFOR ; Loop finished - Terminate it + EX DE,HL ; Loop statement line number + LD (LINEAT),HL ; Set loop line number + LD L,C ; Set code string to loop + LD H,B + JP PUTFID ; Put back "FOR" and continue + +KILFOR: LD SP,HL ; Remove "FOR" block + LD HL,(BRKLIN) ; Code string after "NEXT" + LD A,(HL) ; Get next byte in code string + CP ',' ; More NEXTs ? + JP NZ,RUNCNT ; No - Do next statement + CALL GETCHR ; Position to index name + CALL NEXT1 ; Re-enter NEXT routine +; < will not RETurn to here , Exit to RUNCNT or Loop > + +GETNUM: CALL EVAL ; Get a numeric expression +TSTNUM: .BYTE 0F6H ; Clear carry (numeric) +TSTSTR: SCF ; Set carry (string) +CHKTYP: LD A,(TYPE) ; Check types match + ADC A,A ; Expected + actual + OR A ; Clear carry , set parity + RET PE ; Even parity - Types match + JP TMERR ; Different types - Error + +OPNPAR: CALL CHKSYN ; Make sure "(" follows + .BYTE "(" +EVAL: DEC HL ; Evaluate expression & save + LD D,0 ; Precedence value +EVAL1: PUSH DE ; Save precedence + LD C,1 + CALL CHKSTK ; Check for 1 level of stack + CALL OPRND ; Get next expression value +EVAL2: LD (NXTOPR),HL ; Save address of next operator +EVAL3: LD HL,(NXTOPR) ; Restore address of next opr + POP BC ; Precedence value and operator + LD A,B ; Get precedence value + CP 78H ; "AND" or "OR" ? + CALL NC,TSTNUM ; No - Make sure it's a number + LD A,(HL) ; Get next operator / function + LD D,0 ; Clear Last relation +RLTLP: SUB ZGTR ; ">" Token + JP C,FOPRND ; + - * / ^ AND OR - Test it + CP ZLTH+1-ZGTR ; < = > + JP NC,FOPRND ; Function - Call it + CP ZEQUAL-ZGTR ; "=" + RLA ; <- Test for legal + XOR D ; <- combinations of < = > + CP D ; <- by combining last token + LD D,A ; <- with current one + JP C,SNERR ; Error if "<<' '==" or ">>" + LD (CUROPR),HL ; Save address of current token + CALL GETCHR ; Get next character + JP RLTLP ; Treat the two as one + +FOPRND: LD A,D ; < = > found ? + OR A + JP NZ,TSTRED ; Yes - Test for reduction + LD A,(HL) ; Get operator token + LD (CUROPR),HL ; Save operator address + SUB ZPLUS ; Operator or function? + RET C ; Neither - Exit + CP ZOR+1-ZPLUS ; Is it + - * / ^ AND OR ? + RET NC ; No - Exit + LD E,A ; Coded operator + LD A,(TYPE) ; Get data type + DEC A ; FF = numeric , 00 = string + OR E ; Combine with coded operator + LD A,E ; Get coded operator + JP Z,CONCAT ; String concatenation + RLCA ; Times 2 + ADD A,E ; Times 3 + LD E,A ; To DE (D is 0) + LD HL,PRITAB ; Precedence table + ADD HL,DE ; To the operator concerned + LD A,B ; Last operator precedence + LD D,(HL) ; Get evaluation precedence + CP D ; Compare with eval precedence + RET NC ; Exit if higher precedence + INC HL ; Point to routine address + CALL TSTNUM ; Make sure it's a number + +STKTHS: PUSH BC ; Save last precedence & token + LD BC,EVAL3 ; Where to go on prec' break + PUSH BC ; Save on stack for return + LD BC,(FPREG) ; LSB,NLSB of FPREG + PUSH BC ; Stack them + LD BC,(FPREG+2) ; MSB and exponent of FPREG + PUSH BC ; Stack them + LD C,(HL) ; Get LSB of routine address + INC HL + LD B,(HL) ; Get MSB of routine address + INC HL + PUSH BC ; Save routine address + LD HL,(CUROPR) ; Address of current operator + JP EVAL1 ; Loop until prec' break + +OPRND: XOR A ; Get operand routine + LD (TYPE),A ; Set numeric expected + CALL GETCHR ; Get next character + LD E,MO ; ?MO Error + JP Z,ERROR ; No operand - Error + JP C,ASCTFP ; Number - Get value + CALL CHKLTR ; See if a letter + JP NC,CONVAR ; Letter - Find variable + CP ZPLUS ; '+' Token ? + JP Z,OPRND ; Yes - Look for operand + CP '.' ; '.' ? + JP Z,ASCTFP ; Yes - Create FP number + CP ZMINUS ; '-' Token ? + JP Z,MINUS ; Yes - Do minus + CP '"' ; Literal string ? + JP Z,QTSTR ; Get string terminated by '"' + CP ZNOT ; "NOT" Token ? + JP Z,EVNOT ; Yes - Eval NOT expression + CP ZFN ; "FN" Token ? + JP Z,DOFN ; Yes - Do FN routine + CP '&' ; &H = HEX, &B = BINARY + JP NZ,NOTAMP ; No - Skip to functions + CALL GETCHR ; Get next character + CP 'H' ; Hex number indicated? [Searle function added] + JP Z,HEXTFP ; Convert Hex to FPREG + CP 'B' ; Binary number indicated? [Searle function added] + JP Z,BINTFP ; Convert Bin to FPREG + LD E,SN ; If neither then a ?SN Error + JP Z,ERROR ; +NOTAMP: SUB ZSGN ; Is it a function? + JP NC,FNOFST ; Yes - Evaluate function +EVLPAR: CALL OPNPAR ; Evaluate expression in "()" + CALL CHKSYN ; Make sure ")" follows + .BYTE ")" + RET + +MINUS: LD D,7DH ; '-' precedence + CALL EVAL1 ; Evaluate until prec' break + LD HL,(NXTOPR) ; Get next operator address + PUSH HL ; Save next operator address + CALL INVSGN ; Negate value +RETNUM: CALL TSTNUM ; Make sure it's a number + POP HL ; Restore next operator address + RET + +CONVAR: CALL GETVAR ; Get variable address to DE +FRMEVL: PUSH HL ; Save code string address + EX DE,HL ; Variable address to HL + LD (FPREG),HL ; Save address of variable + LD A,(TYPE) ; Get type + OR A ; Numeric? + CALL Z,PHLTFP ; Yes - Move contents to FPREG + POP HL ; Restore code string address + RET + +FNOFST: LD B,0 ; Get address of function + RLCA ; Double function offset + LD C,A ; BC = Offset in function table + PUSH BC ; Save adjusted token value + CALL GETCHR ; Get next character + LD A,C ; Get adjusted token value + CP 2*(ZLEFT-ZSGN)-1; Adj' LEFT$,RIGHT$ or MID$ ? + JP C,FNVAL ; No - Do function + CALL OPNPAR ; Evaluate expression (X,... + CALL CHKSYN ; Make sure ',' follows + .BYTE ',' + CALL TSTSTR ; Make sure it's a string + EX DE,HL ; Save code string address + LD HL,(FPREG) ; Get address of string + EX (SP),HL ; Save address of string + PUSH HL ; Save adjusted token value + EX DE,HL ; Restore code string address + CALL GETINT ; Get integer 0-255 + EX DE,HL ; Save code string address + EX (SP),HL ; Save integer,HL = adj' token + JP GOFUNC ; Jump to string function + +FNVAL: CALL EVLPAR ; Evaluate expression + EX (SP),HL ; HL = Adjusted token value + LD DE,RETNUM ; Return number from function + PUSH DE ; Save on stack +GOFUNC: LD BC,FNCTAB ; Function routine addresses + ADD HL,BC ; Point to right address + LD C,(HL) ; Get LSB of address + INC HL ; + LD H,(HL) ; Get MSB of address + LD L,C ; Address to HL + JP (HL) ; Jump to function + +SGNEXP: DEC D ; Dee to flag negative exponent + CP ZMINUS ; '-' token ? + RET Z ; Yes - Return + CP '-' ; '-' ASCII ? + RET Z ; Yes - Return + INC D ; Inc to flag positive exponent + CP '+' ; '+' ASCII ? + RET Z ; Yes - Return + CP ZPLUS ; '+' token ? + RET Z ; Yes - Return + DEC HL ; DEC 'cos GETCHR INCs + RET ; Return "NZ" + +POR: .BYTE 0F6H ; Flag "OR" +PAND: XOR A ; Flag "AND" + PUSH AF ; Save "AND" / "OR" flag + CALL TSTNUM ; Make sure it's a number + CALL DEINT ; Get integer -32768 to 32767 + POP AF ; Restore "AND" / "OR" flag + EX DE,HL ; <- Get last + POP BC ; <- value + EX (SP),HL ; <- from + EX DE,HL ; <- stack + LD (FPREG),DE ; Move last value to FPREG + LD (FPREG+2),BC + PUSH AF ; Save "AND" / "OR" flag + CALL DEINT ; Get integer -32768 to 32767 + POP AF ; Restore "AND" / "OR" flag + POP BC ; Get value + LD A,C ; Get LSB + LD HL,ACPASS ; Address of save AC as current + JP NZ,POR1 ; Jump if OR + AND E ; "AND" LSBs + LD C,A ; Save LSB + LD A,B ; Get MBS + AND D ; "AND" MSBs + JP (HL) ; Save AC as current (ACPASS) + +POR1: OR E ; "OR" LSBs + LD C,A ; Save LSB + LD A,B ; Get MSB + OR D ; "OR" MSBs + JP (HL) ; Save AC as current (ACPASS) + +TSTRED: LD HL,CMPLOG ; Logical compare routine + LD A,(TYPE) ; Get data type + RRA ; Carry set = string + LD A,D ; Get last precedence value + RLA ; Times 2 plus carry + LD E,A ; To E + LD D,64H ; Relational precedence + LD A,B ; Get current precedence + CP D ; Compare with last + RET NC ; Eval if last was rel' or log' + JP STKTHS ; Stack this one and get next + +CMPLOG: .WORD CMPLG1 ; Compare two values / strings +CMPLG1: LD A,C ; Get data type + OR A + RRA + POP BC ; Get last expression to BCDE + POP DE + PUSH AF ; Save status + CALL CHKTYP ; Check that types match + LD HL,CMPRES ; Result to comparison + PUSH HL ; Save for RETurn + JP Z,CMPNUM ; Compare values if numeric + XOR A ; Compare two strings + LD (TYPE),A ; Set type to numeric + PUSH DE ; Save string name + CALL GSTRCU ; Get current string + LD A,(HL) ; Get length of string + INC HL + INC HL + LD C,(HL) ; Get LSB of address + INC HL + LD B,(HL) ; Get MSB of address + POP DE ; Restore string name + PUSH BC ; Save address of string + PUSH AF ; Save length of string + CALL GSTRDE ; Get second string + CALL LOADFP ; Get address of second string + POP AF ; Restore length of string 1 + LD D,A ; Length to D + POP HL ; Restore address of string 1 +CMPSTR: LD A,E ; Bytes of string 2 to do + OR D ; Bytes of string 1 to do + RET Z ; Exit if all bytes compared + LD A,D ; Get bytes of string 1 to do + SUB 1 + RET C ; Exit if end of string 1 + XOR A + CP E ; Bytes of string 2 to do + INC A + RET NC ; Exit if end of string 2 + DEC D ; Count bytes in string 1 + DEC E ; Count bytes in string 2 + LD A,(BC) ; Byte in string 2 + CP (HL) ; Compare to byte in string 1 + INC HL ; Move up string 1 + INC BC ; Move up string 2 + JP Z,CMPSTR ; Same - Try next bytes + CCF ; Flag difference (">" or "<") + JP FLGDIF ; "<" gives -1 , ">" gives +1 + +CMPRES: INC A ; Increment current value + ADC A,A ; Double plus carry + POP BC ; Get other value + AND B ; Combine them + ADD A,-1 ; Carry set if different + SBC A,A ; 00 - Equal , FF - Different + JP FLGREL ; Set current value & continue + +EVNOT: LD D,5AH ; Precedence value for "NOT" + CALL EVAL1 ; Eval until precedence break + CALL TSTNUM ; Make sure it's a number + CALL DEINT ; Get integer -32768 - 32767 + LD A,E ; Get LSB + CPL ; Invert LSB + LD C,A ; Save "NOT" of LSB + LD A,D ; Get MSB + CPL ; Invert MSB + CALL ACPASS ; Save AC as current + POP BC ; Clean up stack + JP EVAL3 ; Continue evaluation + +DIMRET: DEC HL ; DEC 'cos GETCHR INCs + CALL GETCHR ; Get next character + RET Z ; End of DIM statement + CALL CHKSYN ; Make sure ',' follows + .BYTE ',' +DIM: LD BC,DIMRET ; Return to "DIMRET" + PUSH BC ; Save on stack + .BYTE 0F6H ; Flag "Create" variable +GETVAR: XOR A ; Find variable address,to DE + LD (LCRFLG),A ; Set locate / create flag + LD B,(HL) ; Get First byte of name +GTFNAM: CALL CHKLTR ; See if a letter + JP C,SNERR ; ?SN Error if not a letter + XOR A + LD C,A ; Clear second byte of name + LD (TYPE),A ; Set type to numeric + CALL GETCHR ; Get next character + JP C,SVNAM2 ; Numeric - Save in name + CALL CHKLTR ; See if a letter + JP C,CHARTY ; Not a letter - Check type +SVNAM2: LD C,A ; Save second byte of name +ENDNAM: CALL GETCHR ; Get next character + JP C,ENDNAM ; Numeric - Get another + CALL CHKLTR ; See if a letter + JP NC,ENDNAM ; Letter - Get another +CHARTY: SUB '$' ; String variable? + JP NZ,NOTSTR ; No - Numeric variable + INC A ; A = 1 (string type) + LD (TYPE),A ; Set type to string + RRCA ; A = 80H , Flag for string + ADD A,C ; 2nd byte of name has bit 7 on + LD C,A ; Resave second byte on name + CALL GETCHR ; Get next character +NOTSTR: LD A,(FORFLG) ; Array name needed ? + DEC A + JP Z,ARLDSV ; Yes - Get array name + JP P,NSCFOR ; No array with "FOR" or "FN" + LD A,(HL) ; Get byte again + SUB '(' ; Subscripted variable? + JP Z,SBSCPT ; Yes - Sort out subscript + +NSCFOR: XOR A ; Simple variable + LD (FORFLG),A ; Clear "FOR" flag + PUSH HL ; Save code string address + LD D,B ; DE = Variable name to find + LD E,C + LD HL,(FNRGNM) ; FN argument name + LD A,H ; Is it the FN argument? + SUB D ; Compare with D + JP NZ,$+5 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + LD DE,FNARG ; Point to argument value + JP Z,POPHRT ; Yes - Return FN argument value + LD HL,(VAREND) ; End of variables + EX DE,HL ; Address of end of search + LD HL,(PROGND) ; Start of variables address + +FNDVAR: LD A,H ; End of variable list table? + SUB D ; Compare with D + JP NZ,$+5 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP Z,CFEVAL ; Yes - Called from EVAL? + LD A,C ; Get second byte of name + SUB (HL) ; Compare with name in list + INC HL ; Move on to first byte + JP NZ,FNTHR ; Different - Find another + LD A,B ; Get first byte of name + SUB (HL) ; Compare with name in list +FNTHR: INC HL ; Move on to LSB of value + JP Z,RETADR ; Found - Return address + INC HL ; <- Skip + INC HL ; <- over + INC HL ; <- F.P. + INC HL ; <- value + JP FNDVAR ; Keep looking + +CFEVAL: POP HL ; Restore code string address + EX (SP),HL ; Get return address + PUSH DE ; Save address of variable + LD DE,FRMEVL ; Return address in EVAL + LD A,H ; Called from EVAL ? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + POP DE ; Restore address of variable + JP Z,RETNUL ; Yes - Return null variable + EX (SP),HL ; Put back return + PUSH HL ; Save code string address + PUSH BC ; Save variable name + LD BC,6 ; 2 byte name plus 4 byte data + LD HL,(ARREND) ; End of arrays + PUSH HL ; Save end of arrays + ADD HL,BC ; Move up 6 bytes + POP BC ; Source address in BC + PUSH HL ; Save new end address + CALL MOVUP ; Move arrays up + POP HL ; Restore new end address + LD (ARREND),HL ; Set new end address + LD H,B ; End of variables to HL + LD L,C + LD (VAREND),HL ; Set new end address + +ZEROLP: DEC HL ; Back through to zero variable + LD (HL),0 ; Zero byte in variable + LD A,H ; Done them all? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP NZ,ZEROLP ; No - Keep on going + POP DE ; Get variable name + LD (HL),E ; Store second character + INC HL + LD (HL),D ; Store first character + INC HL +RETADR: EX DE,HL ; Address of variable in DE + POP HL ; Restore code string address + RET + +RETNUL: LD (FPEXP),A ; Set result to zero + LD HL,ZERBYT ; Also set a null string + LD (FPREG),HL ; Save for EVAL + POP HL ; Restore code string address + RET + +SBSCPT: PUSH HL ; Save code string address + LD HL,(LCRFLG) ; Locate/Create and Type + EX (SP),HL ; Save and get code string + LD D,A ; Zero number of dimensions +SCPTLP: PUSH DE ; Save number of dimensions + PUSH BC ; Save array name + CALL FPSINT ; Get subscript (0-32767) + POP BC ; Restore array name + POP AF ; Get number of dimensions + EX DE,HL + EX (SP),HL ; Save subscript value + PUSH HL ; Save LCRFLG and TYPE + EX DE,HL + INC A ; Count dimensions + LD D,A ; Save in D + LD A,(HL) ; Get next byte in code string + CP ',' ; Comma (more to come)? + JP Z,SCPTLP ; Yes - More subscripts + CALL CHKSYN ; Make sure ")" follows + .BYTE ")" + LD (NXTOPR),HL ; Save code string address + POP HL ; Get LCRFLG and TYPE + LD (LCRFLG),HL ; Restore Locate/create & type + LD E,0 ; Flag not CSAVE* or CLOAD* + PUSH DE ; Save number of dimensions (D) + .BYTE 11H ; Skip "PUSH HL" and "PUSH AF' + +ARLDSV: PUSH HL ; Save code string address + PUSH AF ; A = 00 , Flags set = Z,N + LD HL,(VAREND) ; Start of arrays + .BYTE 3EH ; Skip "ADD HL,DE" +FNDARY: ADD HL,DE ; Move to next array start + LD DE,(ARREND) ; End of arrays + LD A,H ; End of arrays found? + SUB D ; Compare with D + JP NZ,$+5 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP Z,CREARY ; Yes - Create array + LD A,(HL) ; Get second byte of name + CP C ; Compare with name given + INC HL ; Move on + JP NZ,NXTARY ; Different - Find next array + LD A,(HL) ; Get first byte of name + CP B ; Compare with name given +NXTARY: INC HL ; Move on + LD E,(HL) ; Get LSB of next array address + INC HL + LD D,(HL) ; Get MSB of next array address + INC HL + JP NZ,FNDARY ; Not found - Keep looking + LD A,(LCRFLG) ; Found Locate or Create it? + OR A + JP NZ,DDERR ; Create - ?DD Error + POP AF ; Locate - Get number of dim'ns + LD B,H ; BC Points to array dim'ns + LD C,L + JP Z,POPHRT ; Jump if array load/save + SUB (HL) ; Same number of dimensions? + JP Z,FINDEL ; Yes - Find element +BSERR: LD E,BS ; ?BS Error + JP ERROR ; Output error + +CREARY: LD DE,4 ; 4 Bytes per entry + POP AF ; Array to save or 0 dim'ns? + JP Z,FCERR ; Yes - ?FC Error + LD (HL),C ; Save second byte of name + INC HL + LD (HL),B ; Save first byte of name + INC HL + LD C,A ; Number of dimensions to C + CALL CHKSTK ; Check if enough memory + INC HL ; Point to number of dimensions + INC HL + LD (CUROPR),HL ; Save address of pointer + LD (HL),C ; Set number of dimensions + INC HL + LD A,(LCRFLG) ; Locate of Create? + RLA ; Carry set = Create + LD A,C ; Get number of dimensions +CRARLP: LD BC,10+1 ; Default dimension size 10 + JP NC,DEFSIZ ; Locate - Set default size + POP BC ; Get specified dimension size + INC BC ; Include zero element +DEFSIZ: LD (HL),C ; Save LSB of dimension size + INC HL + LD (HL),B ; Save MSB of dimension size + INC HL + PUSH AF ; Save num' of dim'ns an status + PUSH HL ; Save address of dim'n size + CALL MLDEBC ; Multiply DE by BC to HL + EX DE,HL ; amount of mem needed (to DE) + POP HL ; Restore address of dimension + POP AF ; Restore number of dimensions + DEC A ; Count them + JP NZ,CRARLP ; Do next dimension if more + PUSH AF ; Save locate/create flag + LD B,D ; MSB of memory needed + LD C,E ; LSB of memory needed + EX DE,HL + ADD HL,DE ; Add bytes to array start + JP C,OMERR ; Too big - Error + CALL ENFMEM ; See if enough memory + LD (ARREND),HL ; Save new end of array + +ZERARY: DEC HL ; Back through array data + LD (HL),0 ; Set array element to zero + LD A,H ; All elements zeroed? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP NZ,ZERARY ; No - Keep on going + INC BC ; Number of bytes + 1 + LD D,A ; A=0 + LD HL,(CUROPR) ; Get address of array + LD E,(HL) ; Number of dimensions + EX DE,HL ; To HL + ADD HL,HL ; Two bytes per dimension size + ADD HL,BC ; Add number of bytes + EX DE,HL ; Bytes needed to DE + DEC HL + DEC HL + LD (HL),E ; Save LSB of bytes needed + INC HL + LD (HL),D ; Save MSB of bytes needed + INC HL + POP AF ; Locate / Create? + JP C,ENDDIM ; A is 0 , End if create +FINDEL: LD B,A ; Find array element + LD C,A + LD A,(HL) ; Number of dimensions + INC HL + .BYTE 16H ; Skip "POP HL" +FNDELP: POP HL ; Address of next dim' size + LD E,(HL) ; Get LSB of dim'n size + INC HL + LD D,(HL) ; Get MSB of dim'n size + INC HL + EX (SP),HL ; Save address - Get index + PUSH AF ; Save number of dim'ns + LD A,H ; Dimension too large? + SUB D ; Compare with D + JP NZ,$+5 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP NC,BSERR ; Yes - ?BS Error + PUSH HL ; Save index + CALL MLDEBC ; Multiply previous by size + POP DE ; Index supplied to DE + ADD HL,DE ; Add index to pointer + POP AF ; Number of dimensions + DEC A ; Count them + LD B,H ; MSB of pointer + LD C,L ; LSB of pointer + JP NZ,FNDELP ; More - Keep going + ADD HL,HL ; 4 Bytes per element + ADD HL,HL + POP BC ; Start of array + ADD HL,BC ; Point to element + EX DE,HL ; Address of element to DE +ENDDIM: LD HL,(NXTOPR) ; Got code string address + RET + +FRE: LD HL,(ARREND) ; Start of free memory + EX DE,HL ; To DE + LD HL,0 ; End of free memory + ADD HL,SP ; Current stack value + LD A,(TYPE) ; Dummy argument type + OR A + JP Z,FRENUM ; Numeric - Free variable space + CALL GSTRCU ; Current string to pool + CALL GARBGE ; Garbage collection + LD HL,(STRSPC) ; Bottom of string space in use + EX DE,HL ; To DE + LD HL,(STRBOT) ; Bottom of string space +FRENUM: LD A,L ; Get LSB of end + SUB E ; Subtract LSB of beginning + LD C,A ; Save difference if C + LD A,H ; Get MSB of end + SBC A,D ; Subtract MSB of beginning +ACPASS: LD B,C ; Return integer AC +ABPASS: LD D,B ; Return integer AB + LD E,0 + LD HL,TYPE ; Point to type + LD (HL),E ; Set type to numeric + LD B,80H+16 ; 16 bit integer + JP RETINT ; Return the integr + +POS: LD A,(CURPOS) ; Get cursor position +PASSA: LD B,A ; Put A into AB + XOR A ; Zero A + JP ABPASS ; Return integer AB + +DEF: CALL CHEKFN ; Get "FN" and name + CALL IDTEST ; Test for illegal direct + LD BC,DATA ; To get next statement + PUSH BC ; Save address for RETurn + PUSH DE ; Save address of function ptr + CALL CHKSYN ; Make sure "(" follows + .BYTE "(" + CALL GETVAR ; Get argument variable name + PUSH HL ; Save code string address + EX DE,HL ; Argument address to HL + DEC HL + LD D,(HL) ; Get first byte of arg name + DEC HL + LD E,(HL) ; Get second byte of arg name + POP HL ; Restore code string address + CALL TSTNUM ; Make sure numeric argument + CALL CHKSYN ; Make sure ")" follows + .BYTE ")" + CALL CHKSYN ; Make sure "=" follows + .BYTE ZEQUAL ; "=" token + LD B,H ; Code string address to BC + LD C,L + EX (SP),HL ; Save code str , Get FN ptr + LD (HL),C ; Save LSB of FN code string + INC HL + LD (HL),B ; Save MSB of FN code string + JP SVSTAD ; Save address and do function + +DOFN: CALL CHEKFN ; Make sure FN follows + PUSH DE ; Save function pointer address + CALL EVLPAR ; Evaluate expression in "()" + CALL TSTNUM ; Make sure numeric result + EX (SP),HL ; Save code str , Get FN ptr + LD E,(HL) ; Get LSB of FN code string + INC HL + LD D,(HL) ; Get MSB of FN code string + INC HL + LD A,D ; And function DEFined? + OR E + JP Z,UFERR ; No - ?UF Error + LD A,(HL) ; Get LSB of argument address + INC HL + LD H,(HL) ; Get MSB of argument address + LD L,A ; HL = Arg variable address + PUSH HL ; Save it + LD HL,(FNRGNM) ; Get old argument name + EX (SP),HL ; Save old , Get new + LD (FNRGNM),HL ; Set new argument name + LD HL,(FNARG+2) ; Get LSB,NLSB of old arg value + PUSH HL ; Save it + LD HL,(FNARG) ; Get MSB,EXP of old arg value + PUSH HL ; Save it + PUSH DE ; Save FN code string address + LD DE,FNARG ; DE = Value of argument + LD HL,FPREG ; Move FPREG to argument + LDI ; 4 bytes to move (HL++)->(DE++) + LDI + LDI + LDI + POP HL ; Get FN code string address + CALL GETNUM ; Get value from function + DEC HL ; DEC 'cos GETCHR INCs + CALL GETCHR ; Get next character + JP NZ,SNERR ; Bad character in FN - Error + POP HL ; Get MSB,EXP of old arg + LD (FNARG),HL ; Restore it + POP HL ; Get LSB,NLSB of old arg + LD (FNARG+2),HL ; Restore it + POP HL ; Get name of old arg + LD (FNRGNM),HL ; Restore it + POP HL ; Restore code string address + RET + +IDTEST: PUSH HL ; Save code string address + LD HL,(LINEAT) ; Get current line number + INC HL ; -1 means direct statement + LD A,H + OR L + POP HL ; Restore code string address + RET NZ ; Return if in program + LD E,ID ; ?ID Error + JP ERROR + +CHEKFN: CALL CHKSYN ; Make sure FN follows + .BYTE ZFN ; "FN" token + LD A,80H + LD (FORFLG),A ; Flag FN name to find + OR (HL) ; FN name has bit 7 set + LD B,A ; in first byte of name + CALL GTFNAM ; Get FN name + JP TSTNUM ; Make sure numeric function + +STR: CALL TSTNUM ; Make sure it's a number + CALL NUMASC ; Turn number into text +STR1: CALL CRTST ; Create string entry for it + CALL GSTRCU ; Current string to pool + LD BC,TOPOOL ; Save in string pool + PUSH BC ; Save address on stack + +SAVSTR: LD A,(HL) ; Get string length + INC HL + INC HL + PUSH HL ; Save pointer to string + CALL TESTR ; See if enough string space + POP HL ; Restore pointer to string + LD C,(HL) ; Get LSB of address + INC HL + LD B,(HL) ; Get MSB of address + CALL CRTMST ; Create string entry + PUSH HL ; Save pointer to MSB of addr + LD L,A ; Length of string + CALL TOSTRA ; Move to string area + POP DE ; Restore pointer to MSB + RET + +MKTMST: CALL TESTR ; See if enough string space +CRTMST: LD HL,TMPSTR ; Temporary string + PUSH HL ; Save it + LD (HL),A ; Save length of string + INC HL +SVSTAD: INC HL + LD (HL),E ; Save LSB of address + INC HL + LD (HL),D ; Save MSB of address + POP HL ; Restore pointer + RET + +CRTST: DEC HL ; DEC - INCed after +QTSTR: LD B,'"' ; Terminating quote + LD D,B ; Quote to D +DTSTR: PUSH HL ; Save start + LD C,-1 ; Set counter to -1 +QTSTLP: INC HL ; Move on + LD A,(HL) ; Get byte + INC C ; Count bytes + OR A ; End of line? + JP Z,CRTSTE ; Yes - Create string entry + CP D ; Terminator D found? + JP Z,CRTSTE ; Yes - Create string entry + CP B ; Terminator B found? + JP NZ,QTSTLP ; No - Keep looking +CRTSTE: CP '"' ; End with '"'? + CALL Z,GETCHR ; Yes - Get next character + EX (SP),HL ; Starting quote + INC HL ; First byte of string + EX DE,HL ; To DE + LD A,C ; Get length + CALL CRTMST ; Create string entry +TSTOPL: LD DE,TMPSTR ; Temporary string + LD HL,(TMSTPT) ; Temporary string pool pointer + LD (FPREG),HL ; Save address of string ptr + LD A,1 + LD (TYPE),A ; Set type to string + EX DE,HL ; Move string to pool + LDI ; 4 bytes to move (HL++)->(DE++) + LDI + LDI + LDI + EX DE,HL ; Swap source destination + LD A,H ; Out of string pool? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + LD (TMSTPT),HL ; Save new pointer + POP HL ; Restore code string address + LD A,(HL) ; Get next code byte + RET NZ ; Return if pool OK + LD E,ST ; ?ST Error + JP ERROR ; String pool overflow + +PRNUMS: INC HL ; Skip leading space +PRS: CALL CRTST ; Create string entry for it +PRS1: CALL GSTRCU ; Current string to pool + CALL LOADFP ; Move string block to BCDE + INC E ; Length + 1 +PRSLP: DEC E ; Count characters + RET Z ; End of string + LD A,(BC) ; Get byte to output + CALL OUTC ; Output character in A + CP CR ; Return? + CALL Z,DONULL ; Yes - Do nulls + INC BC ; Next byte in string + JP PRSLP ; More characters to output + +TESTR: OR A ; Test if enough room + .BYTE 0EH ; No garbage collection done +GRBDON: POP AF ; Garbage collection done + PUSH AF ; Save status + LD HL,(STRSPC) ; Bottom of string space in use + EX DE,HL ; To DE + LD HL,(STRBOT) ; Bottom of string area + CPL ; Negate length (Top down) + LD C,A ; -Length to BC + LD B,-1 ; BC = -ve length of string + ADD HL,BC ; Add to bottom of space in use + INC HL ; Plus one for 2's complement + LD A,H ; Below string RAM area? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP C,TESTOS ; Tidy up if not done else err + LD (STRBOT),HL ; Save new bottom of area + INC HL ; Point to first byte of string + EX DE,HL ; Address to DE +POPAF: POP AF ; Throw away status push + RET + +TESTOS: POP AF ; Garbage collect been done? + LD E,OS ; ?OS Error + JP Z,ERROR ; Yes - Not enough string apace + CP A ; Flag garbage collect done + PUSH AF ; Save status + LD BC,GRBDON ; Garbage collection done + PUSH BC ; Save for RETurn +GARBGE: LD HL,(LSTRAM) ; Get end of RAM pointer +GARBLP: LD (STRBOT),HL ; Reset string pointer + LD HL,0 + PUSH HL ; Flag no string found + LD HL,(STRSPC) ; Get bottom of string space + PUSH HL ; Save bottom of string space + LD HL,TMSTPL ; Temporary string pool +GRBLP: LD DE,(TMSTPT) ; Temporary string pool pointer + LD A,H ; Temporary string pool done? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + LD BC,GRBLP ; Loop until string pool done + JP NZ,STPOOL ; No - See if in string area + LD HL,(PROGND) ; Start of simple variables +SMPVAR: LD DE,(VAREND) ; End of simple variables + LD A,H ; All simple strings done? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP Z,ARRLP ; Yes - Do string arrays + LD A,(HL) ; Get type of variable + INC HL + INC HL + OR A ; "S" flag set if string + CALL STRADD ; See if string in string area + JP SMPVAR ; Loop until simple ones done + +GNXARY: POP BC ; Scrap address of this array +ARRLP: LD DE,(ARREND) ; End of string arrays + LD A,H ; All string arrays done? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP Z,SCNEND ; Yes - Move string if found + CALL LOADFP ; Get array name to BCDE + LD A,E ; Get type of array + PUSH HL ; Save address of num of dim'ns + ADD HL,BC ; Start of next array + OR A ; Test type of array + JP P,GNXARY ; Numeric array - Ignore it + LD (CUROPR),HL ; Save address of next array + POP HL ; Get address of num of dim'ns + LD C,(HL) ; BC = Number of dimensions + LD B,0 + ADD HL,BC ; Two bytes per dimension size + ADD HL,BC + INC HL ; Plus one for number of dim'ns +GRBARY: LD DE,(CUROPR) ; Get address of next array + LD A,H ; Is this array finished? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP Z,ARRLP ; Yes - Get next one + LD BC,GRBARY ; Loop until array all done +STPOOL: PUSH BC ; Save return address + OR 80H ; Flag string type +STRADD: LD A,(HL) ; Get string length + INC HL + INC HL + LD E,(HL) ; Get LSB of string address + INC HL + LD D,(HL) ; Get MSB of string address + INC HL + RET P ; Not a string - Return + OR A ; Set flags on string length + RET Z ; Null string - Return + LD B,H ; Save variable pointer + LD C,L + LD HL,(STRBOT) ; Bottom of new area + LD A,H ; String been done? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + LD H,B ; Restore variable pointer + LD L,C + RET C ; String done - Ignore + POP HL ; Return address + EX (SP),HL ; Lowest available string area + LD A,H ; String within string area? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + EX (SP),HL ; Lowest available string area + PUSH HL ; Re-save return address + LD H,B ; Restore variable pointer + LD L,C + RET NC ; Outside string area - Ignore + POP BC ; Get return , Throw 2 away + POP AF ; + POP AF ; + PUSH HL ; Save variable pointer + PUSH DE ; Save address of current + PUSH BC ; Put back return address + RET ; Go to it + +SCNEND: POP DE ; Addresses of strings + POP HL ; + LD A,L ; HL = 0 if no more to do + OR H + RET Z ; No more to do - Return + DEC HL + LD B,(HL) ; MSB of address of string + DEC HL + LD C,(HL) ; LSB of address of string + PUSH HL ; Save variable address + DEC HL + DEC HL + LD L,(HL) ; HL = Length of string + LD H,0 + ADD HL,BC ; Address of end of string+1 + LD D,B ; String address to DE + LD E,C + DEC HL ; Last byte in string + LD B,H ; Address to BC + LD C,L + LD HL,(STRBOT) ; Current bottom of string area + CALL MOVSTR ; Move string to new address + POP HL ; Restore variable address + LD (HL),C ; Save new LSB of address + INC HL + LD (HL),B ; Save new MSB of address + LD L,C ; Next string area+1 to HL + LD H,B + DEC HL ; Next string area address + JP GARBLP ; Look for more strings + +CONCAT: PUSH BC ; Save prec' opr & code string + PUSH HL ; + LD HL,(FPREG) ; Get first string + EX (SP),HL ; Save first string + CALL OPRND ; Get second string + EX (SP),HL ; Restore first string + CALL TSTSTR ; Make sure it's a string + LD A,(HL) ; Get length of second string + PUSH HL ; Save first string + LD HL,(FPREG) ; Get second string + PUSH HL ; Save second string + ADD A,(HL) ; Add length of second string + LD E,LS ; ?LS Error + JP C,ERROR ; String too long - Error + CALL MKTMST ; Make temporary string + POP DE ; Get second string to DE + CALL GSTRDE ; Move to string pool if needed + EX (SP),HL ; Get first string + CALL GSTRHL ; Move to string pool if needed + PUSH HL ; Save first string + LD HL,(TMPSTR+2) ; Temporary string address + EX DE,HL ; To DE + CALL SSTSA ; First string to string area + CALL SSTSA ; Second string to string area + LD HL,EVAL2 ; Return to evaluation loop + EX (SP),HL ; Save return,get code string + PUSH HL ; Save code string address + JP TSTOPL ; To temporary string to pool + +SSTSA: POP HL ; Return address + EX (SP),HL ; Get string block,save return + LD A,(HL) ; Get length of string + INC HL + INC HL + LD C,(HL) ; Get LSB of string address + INC HL + LD B,(HL) ; Get MSB of string address + LD L,A ; Length to L +TOSTRA: INC L ; INC - DECed after +TSALP: DEC L ; Count bytes moved + RET Z ; End of string - Return + LD A,(BC) ; Get source + LD (DE),A ; Save destination + INC BC ; Next source + INC DE ; Next destination + JP TSALP ; Loop until string moved + +GETSTR: CALL TSTSTR ; Make sure it's a string +GSTRCU: LD HL,(FPREG) ; Get current string +GSTRHL: EX DE,HL ; Save DE +GSTRDE: CALL BAKTMP ; Was it last tmp-str? + EX DE,HL ; Restore DE + RET NZ ; No - Return + PUSH DE ; Save string + LD D,B ; String block address to DE + LD E,C + DEC DE ; Point to length + LD C,(HL) ; Get string length + LD HL,(STRBOT) ; Current bottom of string area + LD A,H ; Last one in string area? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + JP NZ,POPHL ; No - Return + LD B,A ; Clear B (A=0) + ADD HL,BC ; Remove string from str' area + LD (STRBOT),HL ; Save new bottom of str' area +POPHRT: ; Restore address of number +POPHL: POP HL ; Restore string + RET + +BAKTMP: LD HL,(TMSTPT) ; Get temporary string pool top + DEC HL ; Back + LD B,(HL) ; Get MSB of address + DEC HL ; Back + LD C,(HL) ; Get LSB of address + DEC HL ; Back + DEC HL ; Back + LD A,H ; String last in string pool? + SUB D ; Compare with D + JR NZ,$+4 ; Different - Exit + LD A,L ; Get L + SUB E ; Compare with E + RET NZ ; Yes - Leave it + LD (TMSTPT),HL ; Save new string pool top + RET + +LEN: LD BC,PASSA ; To return integer A + PUSH BC ; Save address +GETLEN: CALL GETSTR ; Get string and its length + XOR A + LD D,A ; Clear D + LD (TYPE),A ; Set type to numeric + LD A,(HL) ; Get length of string + OR A ; Set status flags + RET + +ASC: LD BC,PASSA ; To return integer A + PUSH BC ; Save address +GTFLNM: CALL GETLEN ; Get length of string + JP Z,FCERR ; Null string - Error + INC HL + INC HL + LD E,(HL) ; Get LSB of address + INC HL + LD D,(HL) ; Get MSB of address + LD A,(DE) ; Get first byte of string + RET + +CHR: LD A,1 ; One character string + CALL MKTMST ; Make a temporary string + CALL MAKINT ; Make it integer A + LD HL,(TMPSTR+2) ; Get address of string + LD (HL),E ; Save character +TOPOOL: POP BC ; Clean up stack + JP TSTOPL ; Temporary string to pool + +LEFT: CALL LFRGNM ; Get number and ending ")" + XOR A ; Start at first byte in string +RIGHT1: EX (SP),HL ; Save code string,Get string + LD C,A ; Starting position in string +MID1: PUSH HL ; Save string block address + LD A,(HL) ; Get length of string + CP B ; Compare with number given + JP C,ALLFOL ; All following bytes required + LD A,B ; Get new length + .BYTE 11H ; Skip "LD C,0" +ALLFOL: LD C,0 ; First byte of string + PUSH BC ; Save position in string + CALL TESTR ; See if enough string space + POP BC ; Get position in string + POP HL ; Restore string block address + PUSH HL ; And re-save it + INC HL + INC HL + LD B,(HL) ; Get LSB of address + INC HL + LD H,(HL) ; Get MSB of address + LD L,B ; HL = address of string + LD B,0 ; BC = starting address + ADD HL,BC ; Point to that byte + LD B,H ; BC = source string + LD C,L + CALL CRTMST ; Create a string entry + LD L,A ; Length of new string + CALL TOSTRA ; Move string to string area + POP DE ; Clear stack + CALL GSTRDE ; Move to string pool if needed + JP TSTOPL ; Temporary string to pool + +RIGHT: CALL LFRGNM ; Get number and ending ")" + POP DE ; Get string length + PUSH DE ; And re-save + LD A,(DE) ; Get length + SUB B ; Move back N bytes + JP RIGHT1 ; Go and get sub-string + +MID: EX DE,HL ; Get code string address + LD A,(HL) ; Get next byte ',' or ")" + CALL MIDNUM ; Get number supplied + INC B ; Is it character zero? + DEC B + JP Z,FCERR ; Yes - Error + PUSH BC ; Save starting position + LD E,255 ; All of string + CP ')' ; Any length given? + JP Z,RSTSTR ; No - Rest of string + CALL CHKSYN ; Make sure ',' follows + .BYTE ',' + CALL GETINT ; Get integer 0-255 +RSTSTR: CALL CHKSYN ; Make sure ")" follows + .BYTE ")" + POP AF ; Restore starting position + EX (SP),HL ; Get string,8ave code string + LD BC,MID1 ; Continuation of MID$ routine + PUSH BC ; Save for return + DEC A ; Starting position-1 + CP (HL) ; Compare with length + LD B,0 ; Zero bytes length + RET NC ; Null string if start past end + LD C,A ; Save starting position-1 + LD A,(HL) ; Get length of string + SUB C ; Subtract start + CP E ; Enough string for it? + LD B,A ; Save maximum length available + RET C ; Truncate string if needed + LD B,E ; Set specified length + RET ; Go and create string + +VAL: CALL GETLEN ; Get length of string + JP Z,RESZER ; Result zero + LD E,A ; Save length + INC HL + INC HL + LD A,(HL) ; Get LSB of address + INC HL + LD H,(HL) ; Get MSB of address + LD L,A ; HL = String address + PUSH HL ; Save string address + ADD HL,DE + LD B,(HL) ; Get end of string+1 byte + LD (HL),D ; Zero it to terminate + EX (SP),HL ; Save string end,get start + PUSH BC ; Save end+1 byte + LD A,(HL) ; Get starting byte + CP '$' ; Hex number indicated? [Searle function added] + JP NZ,VAL1 + CALL HEXTFP ; Convert Hex to FPREG + JR VAL3 +VAL1: CP '%' ; Binary number indicated? [Searle function added] + JP NZ,VAL2 + CALL BINTFP ; Convert Bin to FPREG + JR VAL3 +VAL2: CALL ASCTFP ; Convert ASCII string to FP +VAL3: POP BC ; Restore end+1 byte + POP HL ; Restore end+1 address + LD (HL),B ; Put back original byte + RET + +LFRGNM: EX DE,HL ; Code string address to HL + CALL CHKSYN ; Make sure ")" follows + .BYTE ")" +MIDNUM: POP BC ; Get return address + POP DE ; Get number supplied + PUSH BC ; Re-save return address + LD B,E ; Number to B + RET + +INP: CALL MAKINT ; Make it integer A + LD (INPORT),A ; Set input port + CALL INPSUB ; Get input from port + JP PASSA ; Return integer A + +POUT: CALL SETIO ; Set up port number + JP OUTSUB ; Output data and return + +WAIT: CALL SETIO ; Set up port number + PUSH AF ; Save AND mask + LD E,0 ; Assume zero if none given + DEC HL ; DEC 'cos GETCHR INCs + CALL GETCHR ; Get next character + JP Z,NOXOR ; No XOR byte given + CALL CHKSYN ; Make sure ',' follows + .BYTE ',' + CALL GETINT ; Get integer 0-255 to XOR with +NOXOR: POP BC ; Restore AND mask +WAITLP: CALL INPSUB ; Get input + XOR E ; Flip selected bits + AND B ; Result non-zero? + JP Z,WAITLP ; No = keep waiting + RET + +SETIO: CALL GETINT ; Get integer 0-255 + LD (INPORT),A ; Set input port + LD (OTPORT),A ; Set output port + CALL CHKSYN ; Make sure ',' follows + .BYTE ',' + JP GETINT ; Get integer 0-255 and return + +FNDNUM: CALL GETCHR ; Get next character +GETINT: CALL GETNUM ; Get a number from 0 to 255 +MAKINT: CALL DEPINT ; Make sure value 0 - 255 + LD A,D ; Get MSB of number + OR A ; Zero? + JP NZ,FCERR ; No - Error + DEC HL ; DEC 'cos GETCHR INCs + CALL GETCHR ; Get next character + LD A,E ; Get number to A + RET + +PEEK: CALL DEINT ; Get memory address + LD A,(DE) ; Get byte in memory + JP PASSA ; Return integer A + +POKE: CALL GETNUM ; Get memory address + CALL DEINT ; Get integer -32768 to 3276 + PUSH DE ; Save memory address + CALL CHKSYN ; Make sure ',' follows + .BYTE ',' + CALL GETINT ; Get integer 0-255 + POP DE ; Restore memory address + LD (DE),A ; Load it into memory + RET + +ROUND: LD HL,HALF ; Add 0.5 to FPREG +ADDPHL: CALL LOADFP ; Load FP at (HL) to BCDE + JP FPADD ; Add BCDE to FPREG + +SUBPHL: CALL LOADFP ; FPREG = -FPREG + number at HL + .BYTE 21H ; Skip "POP BC" and "POP DE" +PSUB: POP BC ; Get FP number from stack + POP DE +SUBCDE: CALL INVSGN ; Negate FPREG +FPADD: LD A,B ; Get FP exponent + OR A ; Is number zero? + RET Z ; Yes - Nothing to add + LD A,(FPEXP) ; Get exponent of FPREG + OR A ; Is this number zero? + JP Z,FPBCDE ; Yes - Move BCDE to FPREG + SUB B ; BCDE number larger? + JP NC,NOSWAP ; No - Don't swap them + CPL ; Two's complement + INC A ; FP exponent + LD HL,(FPREG) ; LSB,NLSB of FPREG + PUSH HL ; Stack them + LD HL,(FPREG+2) ; MSB and exponent of FPREG + PUSH HL ; Stack them + LD (FPREG),DE ; Move BCDE to FPREG + LD (FPREG+2),BC + POP BC ; Restore number from stack + POP DE +NOSWAP: CP 24+1 ; Second number insignificant? + RET NC ; Yes - First number is result + PUSH AF ; Save number of bits to scale + CALL SIGNS ; Set MSBs & sign of result + LD H,A ; Save sign of result + POP AF ; Restore scaling factor + CALL SCALE ; Scale BCDE to same exponent + OR H ; Result to be positive? + LD HL,FPREG ; Point to FPREG + JP P,MINCDE ; No - Subtract FPREG from CDE + CALL PLUCDE ; Add FPREG to CDE + JP NC,RONDUP ; No overflow - Round it up + INC HL ; Point to exponent + INC (HL) ; Increment it + JP Z,OVERR ; Number overflowed - Error + LD L,1 ; 1 bit to shift right + CALL SHRT1 ; Shift result right + JP RONDUP ; Round it up + +MINCDE: XOR A ; Clear A and carry + SUB B ; Negate exponent + LD B,A ; Re-save exponent + LD A,(HL) ; Get LSB of FPREG + SBC A, E ; Subtract LSB of BCDE + LD E,A ; Save LSB of BCDE + INC HL + LD A,(HL) ; Get NMSB of FPREG + SBC A,D ; Subtract NMSB of BCDE + LD D,A ; Save NMSB of BCDE + INC HL + LD A,(HL) ; Get MSB of FPREG + SBC A,C ; Subtract MSB of BCDE + LD C,A ; Save MSB of BCDE +CONPOS: CALL C,COMPL ; Overflow - Make it positive + +BNORM: LD L,B ; L = Exponent + LD H,E ; H = LSB + XOR A +BNRMLP: LD B,A ; Save bit count + LD A,C ; Get MSB + OR A ; Is it zero? + JP NZ,PNORM ; No - Do it bit at a time + LD C,D ; MSB = NMSB + LD D,H ; NMSB= LSB + LD H,L ; LSB = VLSB + LD L,A ; VLSB= 0 + LD A,B ; Get exponent + SUB 8 ; Count 8 bits + CP -24-8 ; Was number zero? + JP NZ,BNRMLP ; No - Keep normalising +RESZER: XOR A ; Result is zero +SAVEXP: LD (FPEXP),A ; Save result as zero + RET + +NORMAL: DEC B ; Count bits + ADD HL,HL ; Shift HL left + LD A,D ; Get NMSB + RLA ; Shift left with last bit + LD D,A ; Save NMSB + LD A,C ; Get MSB + ADC A,A ; Shift left with last bit + LD C,A ; Save MSB +PNORM: JP P,NORMAL ; Not done - Keep going + LD A,B ; Number of bits shifted + LD E,H ; Save HL in EB + LD B,L + OR A ; Any shifting done? + JP Z,RONDUP ; No - Round it up + LD HL,FPEXP ; Point to exponent + ADD A,(HL) ; Add shifted bits + LD (HL),A ; Re-save exponent + JP NC,RESZER ; Underflow - Result is zero + RET Z ; Result is zero +RONDUP: LD A,B ; Get VLSB of number +RONDB: LD HL,FPEXP ; Point to exponent + OR A ; Any rounding? + CALL M,FPROND ; Yes - Round number up + LD B,(HL) ; B = Exponent + INC HL + LD A,(HL) ; Get sign of result + AND 10000000B ; Only bit 7 needed + XOR C ; Set correct sign + LD C,A ; Save correct sign in number +FPBCDE: LD (FPREG),DE ; Move BCDE to FPREG + LD (FPREG+2),BC + RET + +FPROND: INC E ; Round LSB + RET NZ ; Return if ok + INC D ; Round NMSB + RET NZ ; Return if ok + INC C ; Round MSB + RET NZ ; Return if ok + LD C,80H ; Set normal value + INC (HL) ; Increment exponent + RET NZ ; Return if ok + JP OVERR ; Overflow error + +PLUCDE: LD A,(HL) ; Get LSB of FPREG + ADD A,E ; Add LSB of BCDE + LD E,A ; Save LSB of BCDE + INC HL + LD A,(HL) ; Get NMSB of FPREG + ADC A,D ; Add NMSB of BCDE + LD D,A ; Save NMSB of BCDE + INC HL + LD A,(HL) ; Get MSB of FPREG + ADC A,C ; Add MSB of BCDE + LD C,A ; Save MSB of BCDE + RET + +COMPL: LD HL,SGNRES ; Sign of result + LD A,(HL) ; Get sign of result + CPL ; Negate it + LD (HL),A ; Put it back + XOR A + LD L,A ; Set L to zero + SUB B ; Negate exponent,set carry + LD B,A ; Re-save exponent + LD A,L ; Load zero + SBC A,E ; Negate LSB + LD E,A ; Re-save LSB + LD A,L ; Load zero + SBC A,D ; Negate NMSB + LD D,A ; Re-save NMSB + LD A,L ; Load zero + SBC A,C ; Negate MSB + LD C,A ; Re-save MSB + RET + +SCALE: LD B,0 ; Clear underflow +SCALLP: SUB 8 ; 8 bits (a whole byte)? + JP C,SHRITE ; No - Shift right A bits + LD B,E ; <- Shift + LD E,D ; <- right + LD D,C ; <- eight + LD C,0 ; <- bits + JP SCALLP ; More bits to shift + +SHRITE: ADD A,8+1 ; Adjust count + LD L,A ; Save bits to shift +SHRLP: XOR A ; Flag for all done + DEC L ; All shifting done? + RET Z ; Yes - Return + LD A,C ; Get MSB +SHRT1: RRA ; Shift it right + LD C,A ; Re-save + LD A,D ; Get NMSB + RRA ; Shift right with last bit + LD D,A ; Re-save it + LD A,E ; Get LSB + RRA ; Shift right with last bit + LD E,A ; Re-save it + LD A,B ; Get underflow + RRA ; Shift right with last bit + LD B,A ; Re-save underflow + JP SHRLP ; More bits to do + +UNITY: .BYTE 000H,000H,000H,081H ; 1.00000 + +LOGTAB: .BYTE 3 ; Table used by LOG + .BYTE 0AAH,056H,019H,080H ; 0.59898 + .BYTE 0F1H,022H,076H,080H ; 0.96147 + .BYTE 045H,0AAH,038H,082H ; 2.88539 + +LOG: CALL TSTSGN ; Test sign of value + OR A + JP PE,FCERR ; ?FC Error if <= zero + LD HL,FPEXP ; Point to exponent + LD A,(HL) ; Get exponent + LD BC,8035H ; BCDE = SQR(1/2) + LD DE,04F3H + SUB B ; Scale value to be < 1 + PUSH AF ; Save scale factor + LD (HL),B ; Save new exponent + PUSH DE ; Save SQR(1/2) + PUSH BC + CALL FPADD ; Add SQR(1/2) to value + POP BC ; Restore SQR(1/2) + POP DE + INC B ; Make it SQR(2) + CALL DVBCDE ; Divide by SQR(2) + LD HL,UNITY ; Point to 1. + CALL SUBPHL ; Subtract FPREG from 1 + LD HL,LOGTAB ; Coefficient table + CALL SUMSER ; Evaluate sum of series + LD BC,8080H ; BCDE = -0.5 + LD DE,0000H + CALL FPADD ; Subtract 0.5 from FPREG + POP AF ; Restore scale factor + CALL RSCALE ; Re-scale number +MULLN2: LD BC,8031H ; BCDE = Ln(2) + LD DE,7218H + .BYTE 21H ; Skip "POP BC" and "POP DE" + +MULT: POP BC ; Get number from stack + POP DE +FPMULT: CALL TSTSGN ; Test sign of FPREG + RET Z ; Return zero if zero + LD L,0 ; Flag add exponents + CALL ADDEXP ; Add exponents + LD A,C ; Get MSB of multiplier + LD (MULVAL),A ; Save MSB of multiplier + EX DE,HL + LD (MULVAL+1),HL ; Save rest of multiplier + LD BC,0 ; Partial product (BCDE) = zero + LD D,B + LD E,B + LD HL,BNORM ; Address of normalise + PUSH HL ; Save for return + LD HL,MULT8 ; Address of 8 bit multiply + PUSH HL ; Save for NMSB,MSB + PUSH HL ; + LD HL,FPREG ; Point to number +MULT8: LD A,(HL) ; Get LSB of number + INC HL ; Point to NMSB + OR A ; Test LSB + JP Z,BYTSFT ; Zero - shift to next byte + PUSH HL ; Save address of number + LD L,8 ; 8 bits to multiply by +MUL8LP: RRA ; Shift LSB right + LD H,A ; Save LSB + LD A,C ; Get MSB + JP NC,NOMADD ; Bit was zero - Don't add + PUSH HL ; Save LSB and count + LD HL,(MULVAL+1) ; Get LSB and NMSB + ADD HL,DE ; Add NMSB and LSB + EX DE,HL ; Leave sum in DE + POP HL ; Restore MSB and count + LD A,(MULVAL) ; Get MSB of multiplier + ADC A,C ; Add MSB +NOMADD: RRA ; Shift MSB right + LD C,A ; Re-save MSB + LD A,D ; Get NMSB + RRA ; Shift NMSB right + LD D,A ; Re-save NMSB + LD A,E ; Get LSB + RRA ; Shift LSB right + LD E,A ; Re-save LSB + LD A,B ; Get VLSB + RRA ; Shift VLSB right + LD B,A ; Re-save VLSB + DEC L ; Count bits multiplied + LD A,H ; Get LSB of multiplier + JP NZ,MUL8LP ; More - Do it + POP HL ; Restore address of number + RET + +BYTSFT: LD B,E ; Shift partial product left + LD E,D + LD D,C + LD C,A + RET + +DIV10: LD HL,(FPREG) ; LSB,NLSB of FPREG + PUSH HL ; Stack them + LD HL,(FPREG+2) ; MSB and exponent of FPREG + PUSH HL ; Stack them + LD BC,8420H ; BCDE = 10. + LD DE,0000H + LD (FPREG),DE ; Move 10 to FPREG + LD (FPREG+2),BC + +DIV: POP BC ; Get number from stack + POP DE +DVBCDE: CALL TSTSGN ; Test sign of FPREG + JP Z,DZERR ; Error if division by zero + LD L,-1 ; Flag subtract exponents + CALL ADDEXP ; Subtract exponents + INC (HL) ; Add 2 to exponent to adjust + INC (HL) + DEC HL ; Point to MSB + LD A,(HL) ; Get MSB of dividend + LD (DIV3),A ; Save for subtraction + DEC HL + LD A,(HL) ; Get NMSB of dividend + LD (DIV2),A ; Save for subtraction + DEC HL + LD A,(HL) ; Get MSB of dividend + LD (DIV1),A ; Save for subtraction + LD B,C ; Get MSB + EX DE,HL ; NMSB,LSB to HL + XOR A + LD C,A ; Clear MSB of quotient + LD D,A ; Clear NMSB of quotient + LD E,A ; Clear LSB of quotient + LD (DIV4),A ; Clear overflow count +DIVLP: PUSH HL ; Save divisor + PUSH BC + LD A,L ; Get LSB of number + CALL DIVSUP ; Subt' divisor from dividend + SBC A,0 ; Count for overflows + CCF + JP NC,RESDIV ; Restore divisor if borrow + LD (DIV4),A ; Re-save overflow count + POP AF ; Scrap divisor + POP AF + SCF ; Set carry to + .BYTE 0D2H ; Skip "POP BC" and "POP HL" + +RESDIV: POP BC ; Restore divisor + POP HL + LD A,C ; Get MSB of quotient + INC A + DEC A + RRA ; Bit 0 to bit 7 + JP M,RONDB ; Done - Normalise result + RLA ; Restore carry + LD A,E ; Get LSB of quotient + RLA ; Double it + LD E,A ; Put it back + LD A,D ; Get NMSB of quotient + RLA ; Double it + LD D,A ; Put it back + LD A,C ; Get MSB of quotient + RLA ; Double it + LD C,A ; Put it back + ADD HL,HL ; Double NMSB,LSB of divisor + LD A,B ; Get MSB of divisor + RLA ; Double it + LD B,A ; Put it back + LD A,(DIV4) ; Get VLSB of quotient + RLA ; Double it + LD (DIV4),A ; Put it back + LD A,C ; Get MSB of quotient + OR D ; Merge NMSB + OR E ; Merge LSB + JP NZ,DIVLP ; Not done - Keep dividing + PUSH HL ; Save divisor + LD HL,FPEXP ; Point to exponent + DEC (HL) ; Divide by 2 + POP HL ; Restore divisor + JP NZ,DIVLP ; Ok - Keep going + JP OVERR ; Overflow error + +ADDEXP: LD A,B ; Get exponent of dividend + OR A ; Test it + JP Z,OVTST3 ; Zero - Result zero + LD A,L ; Get add/subtract flag + LD HL,FPEXP ; Point to exponent + XOR (HL) ; Add or subtract it + ADD A,B ; Add the other exponent + LD B,A ; Save new exponent + RRA ; Test exponent for overflow + XOR B + LD A,B ; Get exponent + JP P,OVTST2 ; Positive - Test for overflow + ADD A,80H ; Add excess 128 + LD (HL),A ; Save new exponent + JP Z,POPHRT ; Zero - Result zero + CALL SIGNS ; Set MSBs and sign of result + LD (HL),A ; Save new exponent + DEC HL ; Point to MSB + RET + +OVTST1: CALL TSTSGN ; Test sign of FPREG + CPL ; Invert sign + POP HL ; Clean up stack +OVTST2: OR A ; Test if new exponent zero +OVTST3: POP HL ; Clear off return address + JP P,RESZER ; Result zero + JP OVERR ; Overflow error + +MLSP10: LD DE,(FPREG) ; Move FPREG to BCDE + LD BC,(FPREG+2) + LD A,B ; Get exponent + OR A ; Is it zero? + RET Z ; Yes - Result is zero + ADD A,2 ; Multiply by 4 + JP C,OVERR ; Overflow - ?OV Error + LD B,A ; Re-save exponent + CALL FPADD ; Add BCDE to FPREG (Times 5) + LD HL,FPEXP ; Point to exponent + INC (HL) ; Double number (Times 10) + RET NZ ; Ok - Return + JP OVERR ; Overflow error + +TSTSGN: LD A,(FPEXP) ; Get sign of FPREG + OR A + RET Z ; RETurn if number is zero + LD A,(FPREG+2) ; Get MSB of FPREG + .BYTE 0FEH ; Test sign +RETREL: CPL ; Invert sign + RLA ; Sign bit to carry +FLGDIF: SBC A,A ; Carry to all bits of A + RET NZ ; Return -1 if negative + INC A ; Bump to +1 + RET ; Positive - Return +1 + +SGN: CALL TSTSGN ; Test sign of FPREG +FLGREL: LD B,80H+8 ; 8 bit integer in exponent + LD DE,0 ; Zero NMSB and LSB +RETINT: LD HL,FPEXP ; Point to exponent + LD C,A ; CDE = MSB,NMSB and LSB + LD (HL),B ; Save exponent + LD B,0 ; CDE = integer to normalise + INC HL ; Point to sign of result + LD (HL),80H ; Set sign of result + RLA ; Carry = sign of integer + JP CONPOS ; Set sign of result + +ABS: CALL TSTSGN ; Test sign of FPREG + RET P ; Return if positive +INVSGN: LD HL,FPREG+2 ; Point to MSB + LD A,(HL) ; Get sign of mantissa + XOR 80H ; Invert sign of mantissa + LD (HL),A ; Re-save sign of mantissa + RET + +STAKFP: EX DE,HL ; Save code string address + LD HL,(FPREG) ; LSB,NLSB of FPREG + EX (SP),HL ; Stack them,get return + PUSH HL ; Re-save return + LD HL,(FPREG+2) ; MSB and exponent of FPREG + EX (SP),HL ; Stack them,get return + PUSH HL ; Re-save return + EX DE,HL ; Restore code string address + RET + +PHLTFP: LD DE,FPREG ; Number at HL to FPREG + LDI ; 4 bytes to move (HL++)->(DE++) + LDI + LDI + LDI + RET + +LOADFP: LD E,(HL) ; Get LSB of number + INC HL + LD D,(HL) ; Get NMSB of number + INC HL + LD C,(HL) ; Get MSB of number + INC HL + LD B,(HL) ; Get exponent of number +INCHL: INC HL ; Used for conditional "INC HL" + RET + +SIGNS: LD HL,FPREG+2 ; Point to MSB of FPREG + LD A,(HL) ; Get MSB + RLCA ; Old sign to carry + SCF ; Set MSBit + RRA ; Set MSBit of MSB + LD (HL),A ; Save new MSB + CCF ; Complement sign + RRA ; Old sign to carry + INC HL + INC HL + LD (HL),A ; Set sign of result SGNRES + LD A,C ; Get MSB + RLCA ; Old sign to carry + SCF ; Set MSBit + RRA ; Set MSBit of MSB + LD C,A ; Save MSB + RRA + XOR (HL) ; New sign of result + RET + +CMPNUM: LD A,B ; Get exponent of number + OR A + JP Z,TSTSGN ; Zero - Test sign of FPREG + LD HL,RETREL ; Return relation routine + PUSH HL ; Save for return + CALL TSTSGN ; Test sign of FPREG + LD A,C ; Get MSB of number + RET Z ; FPREG zero - Number's MSB + LD HL,FPREG+2 ; MSB of FPREG + XOR (HL) ; Combine signs + LD A,C ; Get MSB of number + RET M ; Exit if signs different + CALL CMPFP ; Compare FP numbers + RRA ; Get carry to sign + XOR C ; Combine with MSB of number + RET + +CMPFP: INC HL ; Point to exponent + LD A,B ; Get exponent + CP (HL) ; Compare exponents + RET NZ ; Different + DEC HL ; Point to MBS + LD A,C ; Get MSB + CP (HL) ; Compare MSBs + RET NZ ; Different + DEC HL ; Point to NMSB + LD A,D ; Get NMSB + CP (HL) ; Compare NMSBs + RET NZ ; Different + DEC HL ; Point to LSB + LD A,E ; Get LSB + SUB (HL) ; Compare LSBs + RET NZ ; Different + POP HL ; Drop RETurn + POP HL ; Drop another RETurn + RET + +FPINT: LD B,A ; <- Move + LD C,A ; <- exponent + LD D,A ; <- to all + LD E,A ; <- bits + OR A ; Test exponent + RET Z ; Zero - Return zero + PUSH HL ; Save pointer to number + LD DE,(FPREG) ; Move FPREG to BCDE + LD BC,(FPREG+2) + CALL SIGNS ; Set MSBs & sign of result + XOR (HL) ; Combine with sign of FPREG + LD H,A ; Save combined signs + CALL M,DCBCDE ; Negative - Decrement BCDE + LD A,80H+24 ; 24 bits + SUB B ; Bits to shift + CALL SCALE ; Shift BCDE + LD A,H ; Get combined sign + RLA ; Sign to carry + CALL C,FPROND ; Negative - Round number up + LD B,0 ; Zero exponent + CALL C,COMPL ; If negative make positive + POP HL ; Restore pointer to number + RET + +DCBCDE: DEC DE ; Decrement BCDE + LD A,D ; Test LSBs + AND E + INC A + RET NZ ; Exit if LSBs not FFFF + DEC BC ; Decrement MSBs + RET + +INT: LD HL,FPEXP ; Point to exponent + LD A,(HL) ; Get exponent + CP 80H+24 ; Integer accuracy only? + LD A,(FPREG) ; Get LSB + RET NC ; Yes - Already integer + LD A,(HL) ; Get exponent + CALL FPINT ; F.P to integer + LD (HL),80H+24 ; Save 24 bit integer + LD A,E ; Get LSB of number + PUSH AF ; Save LSB + LD A,C ; Get MSB of number + RLA ; Sign to carry + CALL CONPOS ; Set sign of result + POP AF ; Restore LSB of number + RET + +MLDEBC: LD HL,0 ; Clear partial product + LD A,B ; Test multiplier + OR C + RET Z ; Return zero if zero + LD A,B + LD B,16 ; 16 bits (iterations) +MLDBLP: ADD HL,HL ; Shift partial product left + JP C,BSERR ; ?BS Error if overflow + RL C + RLA + JP NC,NOMLAD ; Bit was zero - No add + ADD HL,DE + JP C,BSERR ; ?BS Error if overflow +NOMLAD: DJNZ MLDBLP + RET + +ASCTFP: CP '-' ; Negative? + PUSH AF ; Save it and flags + JP Z,CNVNUM ; Yes - Convert number + CP '+' ; Positive? + JP Z,CNVNUM ; Yes - Convert number + DEC HL ; DEC 'cos GETCHR INCs +CNVNUM: CALL RESZER ; Set result to zero + LD B,A ; Digits after point counter + LD D,A ; Sign of exponent + LD E,A ; Exponent of ten + CPL + LD C,A ; Before or after point flag +MANLP: CALL GETCHR ; Get next character + JP C,ADDIG ; Digit - Add to number + CP '.' + JP Z,DPOINT ; '.' - Flag point + CP 'E' + JP NZ,CONEXP ; Not 'E' - Scale number + CALL GETCHR ; Get next character + CALL SGNEXP ; Get sign of exponent +EXPLP: CALL GETCHR ; Get next character + JP C,EDIGIT ; Digit - Add to exponent + INC D ; Is sign negative? + JP NZ,CONEXP ; No - Scale number + XOR A + SUB E ; Negate exponent + LD E,A ; And re-save it + INC C ; Flag end of number +DPOINT: INC C ; Flag point passed + JP Z,MANLP ; Zero - Get another digit +CONEXP: PUSH HL ; Save code string address + LD A,E ; Get exponent + SUB B ; Subtract digits after point +SCALMI: CALL P,SCALPL ; Positive - Multiply number + JP P,ENDCON ; Positive - All done + PUSH AF ; Save number of times to /10 + CALL DIV10 ; Divide by 10 + POP AF ; Restore count + INC A ; Count divides + +ENDCON: JP NZ,SCALMI ; More to do + POP DE ; Restore code string address + POP AF ; Restore sign of number + CALL Z,INVSGN ; Negative - Negate number + EX DE,HL ; Code string address to HL + RET + +SCALPL: RET Z ; Exit if no scaling needed +MULTEN: PUSH AF ; Save count + CALL MLSP10 ; Multiply number by 10 + POP AF ; Restore count + DEC A ; Count multiplies + RET + +ADDIG: PUSH DE ; Save sign of exponent + LD D,A ; Save digit + LD A,B ; Get digits after point + ADC A,C ; Add one if after point + LD B,A ; Re-save counter + PUSH BC ; Save point flags + PUSH HL ; Save code string address + PUSH DE ; Save digit + CALL MLSP10 ; Multiply number by 10 + POP AF ; Restore digit + SUB '0' ; Make it absolute + CALL RSCALE ; Re-scale number + POP HL ; Restore code string address + POP BC ; Restore point flags + POP DE ; Restore sign of exponent + JP MANLP ; Get another digit + +RSCALE: LD HL,(FPREG) ; LSB,NLSB of FPREG + PUSH HL ; Stack them + LD HL,(FPREG+2) ; MSB and exponent of FPREG + PUSH HL ; Stack them + CALL FLGREL ; Digit to add to FPREG +PADD: POP BC ; Restore number + POP DE + JP FPADD ; Add BCDE to FPREG and return + +EDIGIT: LD A,E ; Get digit + RLCA ; Times 2 + RLCA ; Times 4 + ADD A,E ; Times 5 + RLCA ; Times 10 + ADD A,(HL) ; Add next digit + SUB '0' ; Make it absolute + LD E,A ; Save new digit + JP EXPLP ; Look for another digit + +LINEIN: PUSH HL ; Save code string address + LD HL,INMSG ; Output " in " + CALL PRS ; Output string at HL + POP HL ; Restore code string address +PRNTHL: EX DE,HL ; Code string address to DE + XOR A + LD B,80H+24 ; 24 bits + CALL RETINT ; Return the integer + LD HL,PRNUMS ; Print number string + PUSH HL ; Save for return +NUMASC: LD HL,PBUFF ; Convert number to ASCII + PUSH HL ; Save for return + CALL TSTSGN ; Test sign of FPREG + LD (HL),' ' ; Space at start + JP P,SPCFST ; Positive - Space to start + LD (HL),'-' ; '-' sign at start +SPCFST: INC HL ; First byte of number + LD (HL),'0' ; '0' if zero + JP Z,JSTZER ; Return '0' if zero + PUSH HL ; Save buffer address + CALL M,INVSGN ; Negate FPREG if negative + XOR A ; Zero A + PUSH AF ; Save it + CALL RNGTST ; Test number is in range +SIXDIG: LD BC,9143H ; BCDE - 99999.9 + LD DE,4FF8H + CALL CMPNUM ; Compare numbers + OR A + JP PO,INRNG ; > 99999.9 - Sort it out + POP AF ; Restore count + CALL MULTEN ; Multiply by ten + PUSH AF ; Re-save count + JP SIXDIG ; Test it again + +GTSIXD: CALL DIV10 ; Divide by 10 + POP AF ; Get count + INC A ; Count divides + PUSH AF ; Re-save count + CALL RNGTST ; Test number is in range +INRNG: CALL ROUND ; Add 0.5 to FPREG + INC A + CALL FPINT ; F.P to integer + LD (FPREG),DE ; Move BCDE to FPREG + LD (FPREG+2),BC + LD BC,0306H ; 1E+06 to 1E-03 range + POP AF ; Restore count + ADD A,C ; 6 digits before point + INC A ; Add one + JP M,MAKNUM ; Do it in 'E' form if < 1E-02 + CP 6+1+1 ; More than 999999 ? + JP NC,MAKNUM ; Yes - Do it in 'E' form + INC A ; Adjust for exponent + LD B,A ; Exponent of number + LD A,2 ; Make it zero after + +MAKNUM: DEC A ; Adjust for digits to do + DEC A + POP HL ; Restore buffer address + PUSH AF ; Save count + LD DE,POWERS ; Powers of ten + DEC B ; Count digits before point + JP NZ,DIGTXT ; Not zero - Do number + LD (HL),'.' ; Save point + INC HL ; Move on + LD (HL),'0' ; Save zero + INC HL ; Move on +DIGTXT: DEC B ; Count digits before point + LD (HL),'.' ; Save point in case + CALL Z,INCHL ; Last digit - move on + PUSH BC ; Save digits before point + PUSH HL ; Save buffer address + EX DE,HL ; Save powers of ten table + LD DE,(FPREG) ; Move FPREG to BCDE + LD BC,(FPREG+2) + LD B,'0'-1 ; ASCII '0' - 1 +TRYAGN: INC B ; Count subtractions + LD A,E ; Get LSB + SUB (HL) ; Subtract LSB + LD E,A ; Save LSB + INC HL + LD A,D ; Get NMSB + SBC A,(HL) ; Subtract NMSB + LD D,A ; Save NMSB + INC HL + LD A,C ; Get MSB + SBC A,(HL) ; Subtract MSB + LD C,A ; Save MSB + DEC HL ; Point back to start + DEC HL + JP NC,TRYAGN ; No overflow - Try again + CALL PLUCDE ; Restore number + INC HL ; Start of next number + LD (FPREG),DE ; Angle to FPREG + LD (FPREG+2),BC + EX DE,HL ; Save point in table + POP HL ; Restore buffer address + LD (HL),B ; Save digit in buffer + INC HL ; And move on + POP BC ; Restore digit count + DEC C ; Count digits + JP NZ,DIGTXT ; More - Do them + DEC B ; Any decimal part? + JP Z,DOEBIT ; No - Do 'E' bit +SUPTLZ: DEC HL ; Move back through buffer + LD A,(HL) ; Get character + CP '0' ; '0' character? + JP Z,SUPTLZ ; Yes - Look back for more + CP '.' ; A decimal point? + CALL NZ,INCHL ; Move back over digit + +DOEBIT: POP AF ; Get 'E' flag + JP Z,NOENED ; No 'E' needed - End buffer + LD (HL),'E' ; Put 'E' in buffer + INC HL ; And move on + LD (HL),'+' ; Put '+' in buffer + JP P,OUTEXP ; Positive - Output exponent + LD (HL),'-' ; Put '-' in buffer + CPL ; Negate exponent + INC A +OUTEXP: LD B,'0'-1 ; ASCII '0' - 1 +EXPTEN: INC B ; Count subtractions + SUB 10 ; Tens digit + JP NC,EXPTEN ; More to do + ADD A,'0'+10 ; Restore and make ASCII + INC HL ; Move on + LD (HL),B ; Save MSB of exponent +JSTZER: INC HL ; + LD (HL),A ; Save LSB of exponent + INC HL +NOENED: LD (HL),C ; Mark end of buffer + POP HL ; Restore code string address + RET + +RNGTST: LD BC,9474H ; BCDE = 999999. + LD DE,23F7H + CALL CMPNUM ; Compare numbers + OR A + POP HL ; Return address to HL + JP PO,GTSIXD ; Too big - Divide by ten + JP (HL) ; Otherwise return to caller + +HALF: .BYTE 00H,00H,00H,80H ; 0.5 + +POWERS: .BYTE 0A0H,086H,001H ; 100000 + .BYTE 010H,027H,000H ; 10000 + .BYTE 0E8H,003H,000H ; 1000 + .BYTE 064H,000H,000H ; 100 + .BYTE 00AH,000H,000H ; 10 + .BYTE 001H,000H,000H ; 1 + +NEGAFT: LD HL,INVSGN ; Negate result + EX (SP),HL ; To be done after caller + JP (HL) ; Return to caller + +SQR: CALL STAKFP ; Put value on stack + LD HL,HALF ; Set power to 1/2 + LD DE,FPREG ; Move 1/2 to FPREG + LDI ; 4 bytes to move (HL++)->(DE++) + LDI + LDI + LDI + +POWER: POP BC ; Get base from stack + POP DE + CALL TSTSGN ; Test sign of power + LD A,B ; Get exponent of base + JP Z,EXP ; Make result 1 if zero + JP P,POWER1 ; Positive base - Ok + OR A ; Zero to negative power? + JP Z,DZERR ; Yes - ?/0 Error +POWER1: OR A ; Base zero? + JP Z,SAVEXP ; Yes - Return zero + PUSH DE ; Save base + PUSH BC + LD A,C ; Get MSB of base + OR 01111111B ; Get sign status + LD DE,(FPREG) ; Move power to BCDE + LD BC,(FPREG+2) + JP P,POWER2 ; Positive base - Ok + PUSH DE ; Save power + PUSH BC + CALL INT ; Get integer of power + POP BC ; Restore power + POP DE + PUSH AF ; MSB of base + CALL CMPNUM ; Power an integer? + POP HL ; Restore MSB of base + LD A,H ; but don't affect flags + RRA ; Exponent odd or even? +POWER2: POP HL ; Restore MSB and exponent + LD (FPREG+2),HL ; Save base in FPREG + POP HL ; LSBs of base + LD (FPREG),HL ; Save in FPREG + CALL C,NEGAFT ; Odd power - Negate result + CALL Z,INVSGN ; Negative base - Negate it + PUSH DE ; Save power + PUSH BC + CALL LOG ; Get LOG of base + POP BC ; Restore power + POP DE + CALL FPMULT ; Multiply LOG by power + +EXP: CALL STAKFP ; Put value on stack + LD BC,08138H ; BCDE = 1/Ln(2) + LD DE,0AA3BH + CALL FPMULT ; Multiply value by 1/LN(2) + LD A,(FPEXP) ; Get exponent + CP 80H+8 ; Is it in range? + JP NC,OVTST1 ; No - Test for overflow + CALL INT ; Get INT of FPREG + ADD A,80H ; For excess 128 + ADD A,2 ; Exponent > 126? + JP C,OVTST1 ; Yes - Test for overflow + PUSH AF ; Save scaling factor + LD HL,UNITY ; Point to 1. + CALL ADDPHL ; Add 1 to FPREG + CALL MULLN2 ; Multiply by LN(2) + POP AF ; Restore scaling factor + POP BC ; Restore exponent + POP DE + PUSH AF ; Save scaling factor + CALL SUBCDE ; Subtract exponent from FPREG + CALL INVSGN ; Negate result + LD HL,EXPTAB ; Coefficient table + CALL SMSER1 ; Sum the series + LD DE,0 ; Zero LSBs + POP BC ; Scaling factor + LD C,D ; Zero MSB + JP FPMULT ; Scale result to correct value + +EXPTAB: .BYTE 8 ; Table used by EXP + .BYTE 040H,02EH,094H,074H ; -1/7! (-1/5040) + .BYTE 070H,04FH,02EH,077H ; 1/6! ( 1/720) + .BYTE 06EH,002H,088H,07AH ; -1/5! (-1/120) + .BYTE 0E6H,0A0H,02AH,07CH ; 1/4! ( 1/24) + .BYTE 050H,0AAH,0AAH,07EH ; -1/3! (-1/6) + .BYTE 0FFH,0FFH,07FH,07FH ; 1/2! ( 1/2) + .BYTE 000H,000H,080H,081H ; -1/1! (-1/1) + .BYTE 000H,000H,000H,081H ; 1/0! ( 1/1) + +SUMSER: CALL STAKFP ; Put FPREG on stack + LD DE,MULT ; Multiply by "X" + PUSH DE ; To be done after + PUSH HL ; Save address of table + LD DE,(FPREG) ; Move FPREG to BCDE + LD BC,(FPREG+2) + CALL FPMULT ; Square the value + POP HL ; Restore address of table +SMSER1: CALL STAKFP ; Put value on stack + LD A,(HL) ; Get number of coefficients + INC HL ; Point to start of table + LD DE,FPREG ; Move coefficient to FPREG + LDI ; 4 bytes to move (HL++)->(DE++) + LDI + LDI + LDI + .BYTE 06H ; Skip "POP AF" +SUMLP: POP AF ; Restore count + POP BC ; Restore number + POP DE + DEC A ; Cont coefficients + RET Z ; All done + PUSH DE ; Save number + PUSH BC + PUSH AF ; Save count + PUSH HL ; Save address in table + CALL FPMULT ; Multiply FPREG by BCDE + POP HL ; Restore address in table + CALL LOADFP ; Number at HL to BCDE + PUSH HL ; Save address in table + CALL FPADD ; Add coefficient to FPREG + POP HL ; Restore address in table + JP SUMLP ; More coefficients + +RND: CALL TSTSGN ; Test sign of FPREG + LD HL,SEED+2 ; Random number seed + JP M,RESEED ; Negative - Re-seed + LD HL,LSTRND ; Last random number + LD DE,FPREG ; Move last RND to FPREG + LDI ; 4 bytes to move (HL++)->(DE++) + LDI + LDI + LDI + LD HL,SEED+2 ; Random number seed + RET Z ; Return if RND(0) + ADD A,(HL) ; Add (SEED)+2) + AND 00000111B ; 0 to 7 + LD B,0 + LD (HL),A ; Re-save seed + INC HL ; Move to coefficient table + ADD A,A ; 4 bytes + ADD A,A ; per entry + LD C,A ; BC = Offset into table + ADD HL,BC ; Point to coefficient + CALL LOADFP ; Coefficient to BCDE + CALL FPMULT ; Multiply FPREG by coefficient + LD A,(SEED+1) ; Get (SEED+1) + INC A ; Add 1 + AND 00000011B ; 0 to 3 + LD B,0 + CP 1 ; Is it zero? + ADC A,B ; Yes - Make it 1 + LD (SEED+1),A ; Re-save seed + LD HL,RNDTAB-4 ; Addition table + ADD A,A ; 4 bytes + ADD A,A ; per entry + LD C,A ; BC = Offset into table + ADD HL,BC ; Point to value + CALL ADDPHL ; Add value to FPREG +RND1: LD DE,(FPREG) ; Move FPREG to BCDE + LD BC,(FPREG+2) + LD A,E ; Get LSB + LD E,C ; LSB = MSB + XOR 01001111B ; Fiddle around + LD C,A ; New MSB + LD HL,SGNRES + LD (HL),80H ; Set saved signed bit to positive + DEC HL ; Point to Exponent + LD B,(HL) ; Get Exponent to BCDE + LD (HL),80H ; Makes Exponent 1 + LD HL,SEED ; Random number seed + INC (HL) ; Count seed + LD A,(HL) ; Get seed + SUB 171 ; Do it modulo 171 + JP NZ,RND2 ; Non-zero - Ok + LD (HL),A ; Zero seed + INC C ; Fillde about + DEC D ; with the + INC E ; number +RND2: CALL BNORM ; Normalise number + LD DE,LSTRND ; Save random number + LD HL,FPREG ; Move FPREG to last and return + LDI ; 4 bytes to move (HL++)->(DE++) + LDI + LDI + LDI + RET + +RESEED: LD (HL),A ; Re-seed random numbers + DEC HL + LD (HL),A + DEC HL + LD (HL),A + JP RND1 ; Return RND seed + +RNDTAB: .BYTE 068H,0B1H,046H,068H ; Table used by RND + .BYTE 099H,0E9H,092H,069H + .BYTE 010H,0D1H,075H,068H + +COS: LD HL,HALFPI ; Point to PI/2 + CALL ADDPHL ; Add it to FPREG +SIN: CALL STAKFP ; Put angle on stack + LD BC,8349H ; BCDE = 2 PI + LD DE,0FDBH + LD (FPREG),DE ; Move 2 PI to FPREG + LD (FPREG+2),BC + POP BC ; Restore angle + POP DE + CALL DVBCDE ; Divide angle by 2 PI + CALL STAKFP ; Put it on stack + CALL INT ; Get INT of result + POP BC ; Restore number + POP DE + CALL SUBCDE ; Make it 0 <= value < 1 + LD HL,QUARTR ; Point to 0.25 + CALL SUBPHL ; Subtract value from 0.25 + CALL TSTSGN ; Test sign of value + SCF ; Flag positive + JP P,SIN1 ; Positive - Ok + CALL ROUND ; Add 0.5 to value + CALL TSTSGN ; Test sign of value + OR A ; Flag negative +SIN1: PUSH AF ; Save sign + CALL P,INVSGN ; Negate value if positive + LD HL,QUARTR ; Point to 0.25 + CALL ADDPHL ; Add 0.25 to value + POP AF ; Restore sign + CALL NC,INVSGN ; Negative - Make positive + LD HL,SINTAB ; Coefficient table + JP SUMSER ; Evaluate sum of series + +HALFPI: .BYTE 0DBH,00FH,049H,081H ; 1.5708 (PI/2) + +QUARTR: .BYTE 000H,000H,000H,07FH ; 0.25 + +SINTAB: .BYTE 5 ; Table used by SIN + .BYTE 0BAH,0D7H,01EH,086H ; 39.711 + .BYTE 064H,026H,099H,087H ;-76.575 + .BYTE 058H,034H,023H,087H ; 81.602 + .BYTE 0E0H,05DH,0A5H,086H ;-41.342 + .BYTE 0DAH,00FH,049H,083H ; 6.2832 + +TAN: CALL STAKFP ; Put angle on stack + CALL SIN ; Get SIN of angle + POP BC ; Restore angle + POP HL + CALL STAKFP ; Save SIN of angle + EX DE,HL ; BCDE = Angle + LD (FPREG),DE ; Angle to FPREG + LD (FPREG+2),BC + CALL COS ; Get COS of angle + JP DIV ; TAN = SIN / COS + +ATN: CALL TSTSGN ; Test sign of value + CALL M,NEGAFT ; Negate result after if -ve + CALL M,INVSGN ; Negate value if -ve + LD A,(FPEXP) ; Get exponent + CP 81H ; Number less than 1? + JP C,ATN1 ; Yes - Get arc tangnt + LD BC,8100H ; BCDE = 1 + LD D,C + LD E,C + CALL DVBCDE ; Get reciprocal of number + LD HL,SUBPHL ; Sub angle from PI/2 + PUSH HL ; Save for angle > 1 +ATN1: LD HL,ATNTAB ; Coefficient table + CALL SUMSER ; Evaluate sum of series + LD HL,HALFPI ; PI/2 - angle in case > 1 + RET ; Number > 1 - Sub from PI/2 + +ATNTAB: .BYTE 9 ; Table used by ATN + .BYTE 04AH,0D7H,03BH,078H ; 1/17 + .BYTE 002H,06EH,084H,07BH ;-1/15 + .BYTE 0FEH,0C1H,02FH,07CH ; 1/13 + .BYTE 074H,031H,09AH,07DH ;-1/11 + .BYTE 084H,03DH,05AH,07DH ; 1/9 + .BYTE 0C8H,07FH,091H,07EH ;-1/7 + .BYTE 0E4H,0BBH,04CH,07EH ; 1/5 + .BYTE 06CH,0AAH,0AAH,07FH ;-1/3 + .BYTE 000H,000H,000H,081H ; 1/1 + +MONITR: JP $0000 ; Restart (Normally Monitor Start) + +CLS: LD A,CS ; ASCII Clear screen + RST 08H ; Output character +ARET: RET ; A RETurn instruction +ARETN: RETN ; A RETurN from NMI + +WIDTH: CALL GETINT ; Get integer 0-255 + LD A,E ; Width to A + LD (LWIDTH),A ; Set width + RET + +LINES: CALL GETNUM ; Get a number + CALL DEINT ; Get integer -32768 to 32767 + LD (LINESC),DE ; Set lines counter + LD (LINESN),DE ; Set lines number + RET + +DEEK: CALL DEINT ; Get integer -32768 to 32767 + PUSH DE ; Save number + POP HL ; Number to HL + LD B,(HL) ; Get LSB of contents + INC HL + LD A,(HL) ; Get MSB of contents + JP ABPASS ; Return integer AB + +DOKE: CALL GETNUM ; Get a number + CALL DEINT ; Get integer -32768 to 32767 + PUSH DE ; Save address + CALL CHKSYN ; Make sure ',' follows + .BYTE ',' + CALL GETNUM ; Get a number + CALL DEINT ; Get integer -32768 to 32767 + EX (SP),HL ; Save value,get address + LD (HL),E ; Save LSB of value + INC HL + LD (HL),D ; Save MSB of value + POP HL ; Restore code string address + RET + + ; Load Intel HEX into program memory. + ; uses : af, bc, de, hl + ; (C) feilipu + +HLOAD: + ret NZ ; Return if any more on line + call HLD_WAIT_COLON ; wait for first colon and address data + dec de ; go one Byte lower + ld hl,(LSTRAM) ; get last ram address + xor a ; clear carry flag + sbc hl,de + jr C,HLD_HIGH_RAM ; if last ram lower leave it, otherwise + ld (LSTRAM),de ; store new last ram location + ld hl,-50 ; reserve 50 bytes for string space + add hl,de ; allocate string space + ld (STRSPC),hl ; save string space location +HLD_HIGH_RAM: + inc de + ld (USR+1),de ; store first address as "USR(x)" location + jr HLD_READ_DATA ; now get the first data + +HLD_WAIT_COLON: + rst 10h ; Rx byte in A + cp ':' ; wait for ':' + jr NZ,HLD_WAIT_COLON + ld c,0 ; reset C to compute checksum + call HLD_READ_BYTE ; read byte count + ld b,a ; store it in B + call HLD_READ_BYTE ; read upper byte of address + ld d,a ; store in D + call HLD_READ_BYTE ; read lower byte of address + ld e,a ; store in E + call HLD_READ_BYTE ; read record type + dec a ; check if record type is 01 (end of file) + jr Z,HLD_END_LOAD + inc a ; check if record type is 00 (data) + jp NZ,TMERR ; if not, type mismatch error + ret + +HLD_READ: + call HLD_WAIT_COLON ; wait for the next colon and address data +HLD_READ_DATA: + call HLD_READ_BYTE + ld (de),a ; write the byte at the RAM address + inc de + djnz HLD_READ_DATA ; if b non zero, loop to get more data + +HLD_READ_CHKSUM: + call HLD_READ_BYTE ; read checksum, but we don't need to keep it + ld a,c ; lower byte of C checksum should be 0 + or a + jp NZ,HXERR ; non zero, we have an issue + jp HLD_READ + +HLD_END_LOAD: + call HLD_READ_BYTE ; read checksum, but we don't need to keep it + ld a,c ; lower byte of C checksum should be 0 + or a + jp NZ,HXERR ; non zero, we have an issue + jp BRKRET ; return to command line + +HLD_READ_BYTE: ; returns byte in A, checksum in C + call HLD_READ_NIBBLE ; read the first nibble + rlca ; shift it left by 4 bits + rlca + rlca + rlca + ld l,a ; temporarily store the first nibble in L + call HLD_READ_NIBBLE ; get the second (low) nibble + or l ; assemble two nibbles into one byte in A + ld l,a ; put assembled byte back into L + add a,c ; add the byte read to C (for checksum) + ld c,a + ld a,l + ret ; return the byte read in A (L = char received too) + +HLD_READ_NIBBLE: + rst 10h ; Rx byte in A + sub '0' + cp 10 + ret C ; if A<10 just return + sub 7 ; else subtract 'A'-'0' (17) and add 10 + ret + + ; HEX$(nn) Convert 16 bit number to Hexadecimal string + ; (C) Searle + +HEX: CALL TSTNUM ; Verify it's a number + CALL DEINT ; Get integer -32768 to 32767 + PUSH BC ; Save contents of BC + LD HL,PBUFF + LD A,D ; Get high order into A + CP $0 + JR Z,HEX2 ; Skip output if both high digits are zero + CALL BYT2ASC ; Convert D to ASCII + LD A,B + CP '0' + JR Z,HEX1 ; Don't store high digit if zero + LD (HL),B ; Store it to PBUFF + INC HL ; Next location +HEX1: LD (HL),C ; Store C to PBUFF+1 + INC HL ; Next location +HEX2: LD A,E ; Get lower byte + CALL BYT2ASC ; Convert E to ASCII + LD A,D + CP $0 + JR NZ,HEX3 ; If upper byte was not zero then always print lower byte + LD A,B + CP '0' ; If high digit of lower byte is zero then don't print + JR Z,HEX4 +HEX3: LD (HL),B ; to PBUFF+2 + INC HL ; Next location +HEX4: LD (HL),C ; to PBUFF+3 + INC HL ; PBUFF+4 to zero + XOR A ; Terminating character + LD (HL),A ; Store zero to terminate + INC HL ; Make sure PBUFF is terminated + LD (HL),A ; Store the double zero there + POP BC ; Get BC back + LD HL,PBUFF ; Reset to start of PBUFF + JP STR1 ; Convert the PBUFF to a string and return it + +BYT2ASC:LD B,A ; Save original value + AND $0F ; Strip off upper nybble + CP $0A ; 0-9? + JR C,ADD30 ; If A-F, add 7 more + ADD A,$07 ; Bring value up to ASCII A-F +ADD30: ADD A,$30 ; And make ASCII + LD C,A ; Save converted char to C + LD A,B ; Retrieve original value + RRCA ; and Rotate it right + RRCA + RRCA + RRCA + AND $0F ; Mask off upper nybble + CP $0A ; 0-9? < A hex? + JR C,ADD301 ; Skip Add 7 + ADD A,$07 ; Bring it up to ASCII A-F +ADD301: ADD A,$30 ; And make it full ASCII + LD B,A ; Store high order byte + RET + + ; Convert "&Hnnnn" to FPREG + ; Gets a character from (HL) checks for Hexadecimal ASCII numbers "&Hnnnn" + ; Char is in A, NC if char is ;<=>?@ A-z, CY is set if 0-9 + ; (C) Searle + +HEXTFP: EX DE,HL ; Move code string pointer to DE + LD HL,$0000 ; Zero out the value + CALL GETHEX ; Check the number for valid hex + JP C,HXERR ; First value wasn't hex, HX error + JR HEXLP1 ; Convert first character +HEXLP: CALL GETHEX ; Get second and addtional characters + JR C,HEXIT ; Exit if not a hex character +HEXLP1: ADD HL,HL ; Rotate 4 bits to the left + ADD HL,HL + ADD HL,HL + ADD HL,HL + OR L ; Add in D0-D3 into L + LD L,A ; Save new value + JR HEXLP ; And continue until all hex characters are in + +GETHEX: INC DE ; Next location + LD A,(DE) ; Load character at pointer + CP ' ' + JP Z,GETHEX ; Skip spaces + SUB $30 ; Get absolute value + RET C ; < "0", error + CP $0A + JR C,NOSUB7 ; Is already in the range 0-9 + SUB $07 ; Reduce to A-F + CP $0A ; Value should be $0A-$0F at this point + RET C ; CY set if was : ; < = > ? @ +NOSUB7: CP $10 ; > Greater than "F"? + CCF + RET ; CY set if it wasn't valid hex + +HEXIT: EX DE,HL ; Value into DE, Code string into HL + LD A,D ; Load DE into AC + LD C,E ; For prep to + PUSH HL + CALL ACPASS ; ACPASS to set AC as integer into FPREG + POP HL + RET + +HXERR: LD E,HX ; ?HEX Error + JP ERROR + + ; BIN$(NN) Convert integer to a 1-16 char binary string + ; (C) Searle + +BIN: CALL TSTNUM ; Verify it's a number + CALL DEINT ; Get integer -32768 to 32767 +BIN2: PUSH BC ; Save contents of BC + LD HL,PBUFF + LD B,17 ; One higher than max char count +ZEROSUP: ; Suppress leading zeros + DEC B ; Max 16 chars + LD A,B + CP $01 + JR Z,BITOUT ; Always output at least one character + RL E + RL D + JR NC,ZEROSUP + JR BITOUT2 +BITOUT: + RL E + RL D ; Top bit now in carry +BITOUT2: + LD A,'0' ; Char for '0' + ADC A,0 ; If carry set then '0' --> '1' + LD (HL),A + INC HL + DEC B + JR NZ,BITOUT + XOR A ; Terminating character + LD (HL),A ; Store zero to terminate + INC HL ; Make sure PBUFF is terminated + LD (HL),A ; Store the double zero there + POP BC + LD HL,PBUFF + JP STR1 + + ; Convert "&Bnnnn" to FPREG + ; Gets a character from (HL) checks for Binary ASCII numbers "&Bnnnn" + ; (C) Searle + +BINTFP: EX DE,HL ; Move code string pointer to DE + LD HL,$0000 ; Zero out the value + CALL CHKBIN ; Check the number for valid bin + JP C,BINERR ; First value wasn't bin, HX error +BINIT: SUB '0' + ADD HL,HL ; Rotate HL left + OR L + LD L,A + CALL CHKBIN ; Get second and addtional characters + JR NC,BINIT ; Process if a bin character + EX DE,HL ; Value into DE, Code string into HL + LD A,D ; Load DE into AC + LD C,E ; For prep to + PUSH HL + CALL ACPASS ; ACPASS to set AC as integer into FPREG + POP HL + RET + + ; Char is in A, NC if char is 0 or 1 + +CHKBIN: INC DE + LD A,(DE) + CP ' ' + JP Z,CHKBIN ; Skip spaces + CP '0' ; Set C if < '0' + RET C + CP '2' + CCF ; Set C if > '1' + RET + +BINERR: LD E,BN ; ?BIN Error + JP ERROR + +.end + diff --git a/OperatingSystem/monitor_v2/include/bootldr.s b/OperatingSystem/monitor_v2/include/bootldr.s new file mode 100644 index 0000000..38c7ec7 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/bootldr.s @@ -0,0 +1,115 @@ +; Z8C Bootloader +; 2022 by Dennis Gunia + +BTLDR_ENTRY: + ;ld SP, 0ffffh ; set stack pointer + + ;Setup Serial Interface + LD A,01001111b ; External Trigger, Time Constant Follows + OUT (CS_CTC_0),A + IN A,(CS_DIP) ; Read BAUD from DIP-Switches + OUT (CS_CTC_0),A + LD A,00110000b ;write into WR0: error reset, select WR0 + OUT (CS_SIO_A_C),A + LD a,018h ;write into WR0: channel reset + OUT (CS_SIO_A_C),A + LD a,004h ;write into WR0: select WR4 + OUT (CS_SIO_A_C),A + ;LD a,04h ;write into WR4: clkx1,1 stop bit, no parity + LD a,01000100b ;write into WR4: clkx16,1 stop bit, no parity + OUT (CS_SIO_A_C),A + LD a,005h ;write into WR0: select WR5 + OUT (CS_SIO_A_C),A + LD a,11101000b ;DTR inactive, TX 8bit, BREAK off, TX on, RTS inactive + OUT (CS_SIO_A_C),A + LD a,01h ;write into WR0: select WR1 + OUT (CS_SIO_A_C),A + LD a,00000100b ;no interrupt in CH B, special RX condition affects vect + OUT (CS_SIO_A_C),A + LD a,02h ;write into WR0: select WR2 + OUT (CS_SIO_A_C),A + LD a,0h ;write into WR2: cmd line int vect (see int vec table) + ;bits D3,D2,D1 are changed according to RX condition + OUT (CS_SIO_A_C),A + LD a,003h ;write into WR0: select WR3 + OUT (CS_SIO_A_C),A + LD a,0C1h ;RX 8bit, auto enable off, RX on + OUT (CS_SIO_A_C),A + +BTLDR_STARTUP_MSG: + LD HL,[S_BTLDR_STARTUP_MSG] + BTLDR_STARTUP_MSG_LOOP: + LD A,(HL) + OR A + JR Z, BTLDR_INPUT + CALL BTLDR_SUB_WRITEA + INC HL + JR BTLDR_STARTUP_MSG_LOOP +BTLDR_INPUT: + ; Byte 1 & 2 = Length + CALL BTLDR_SUB_INPUT_READ + LD B, A + CALL BTLDR_SUB_INPUT_READ + LD C, A + + ; Byte 3 & 4 = Offset / Start address + CALL BTLDR_SUB_INPUT_READ + LD H, A + CALL BTLDR_SUB_INPUT_READ + LD L, A + + ; Byte 5+ = Payload + BTLDR_INPUT_1: + CALL BTLDR_SUB_INPUT_READ + LD (HL),A ;Store byte + DEC BC + LD A,H + OR A.L + JR Z, BTLDR_DONE + INC HL + JR BTLDR_INPUT_1 + +BTLDR_DONE: + RET + + +; Strings +S_BTLDR_STARTUP_MSG: + db "Z8C BTLDR.S V0.1 by Dennis Gunia [RDY] ",0 + + +; Subroutines +BTLDR_SUB_WRITEA: + OUT (CS_SIO_A_D),A + BTLDR_SUB_WRITEA_WAIT: + XOR A + INC A + OUT (CS_SIO_A_C),A + IN A,(CS_SIO_A_C) + BIT 0,A + JR Z, BTLDR_SUB_WRITEA_WAIT + RET + +BTLDR_SUB_RTS_OFF: + ld a,005h ;write into WR0: select WR5 + out (CS_SIO_A_C),A + ld a,0E8h ;DTR active, TX 8bit, BREAK off, TX on, RTS inactive + out (CS_SIO_A_C),A + ret +BTLDR_SUB_RTS_ON: + ld a,005h ;write into WR0: select WR5 + out (CS_SIO_A_C),A + ld a,0EAh ;DTR active, TX 8bit, BREAK off, TX on, RTS active + out (CS_SIO_A_C),A + ret + +BTLDR_SUB_INPUT_READ: + CALL BTLDR_SUB_RTS_ON + XOR A + OUT (CS_SIO_A_C), a + IN A, (CS_SIO_A_C) + AND 1 + JR Z, BTLDR_SUB_INPUT_READ ;LOOP IF BUFFER EMPTY + CALL BTLDR_SUB_RTS_OFF + IN A, (CS_SIO_A_D) + RET \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/include/console.s b/OperatingSystem/monitor_v2/include/console.s new file mode 100644 index 0000000..4708056 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/console.s @@ -0,0 +1,136 @@ +;DIP SWICTHES +;1843200 CLK / x16 SIO CLOCK MODE = 115200 +;MAX BAUD RATE = 115200 +;DIP VALUE = 115200/ +; +;9600 -> 12 / 00110000 +; + +CONSOLE_INIT: +CONSOLE_INIT_CTC: + ;LD A,00001111b ; Set /16 Divider, CPU Trigger, Time COnstant Follows + LD A,01001111b ; External Trigger, Time COnstant Follows + OUT (CS_CTC_0),A + IN A,(CS_DIP) ; Read BAUD from DIP-Switches + ;LD A,39 + OUT (CS_CTC_0),A +CONSOLE_INIT_SIO: + LD A,00110000b ;write into WR0: error reset, select WR0 + OUT (CS_SIO_A_C),A + LD a,018h ;write into WR0: channel reset + OUT (CS_SIO_A_C),A + LD a,004h ;write into WR0: select WR4 + OUT (CS_SIO_A_C),A + LD a,01000100b ;write into WR4: clkx16,1 stop bit, no parity + OUT (CS_SIO_A_C),A + LD a,005h ;write into WR0: select WR5 + OUT (CS_SIO_A_C),A + LD a,11101000b ;DTR inactive, TX 8bit, BREAK off, TX on, RTS inactive + OUT (CS_SIO_A_C),A + LD a,01h ;write into WR0: select WR1 + OUT (CS_SIO_A_C),A + LD a,00000100b ;no interrupt in CH B, special RX condition affects vect + OUT (CS_SIO_A_C),A + LD a,02h ;write into WR0: select WR2 + OUT (CS_SIO_A_C),A + LD a,0h ;write into WR2: cmd line int vect (see int vec table) + ;bits D3,D2,D1 are changed according to RX condition + OUT (CS_SIO_A_C),A + LD a,003h ;write into WR0: select WR3 + OUT (CS_SIO_A_C),A + LD a,0C1h ;RX 8bit, auto enable off, RX on + OUT (CS_SIO_A_C),A + ;Channel A RX active + RET + +; A contains char +; Destroys A +print_char: + push af + out (CS_SIO_A_D),a + call print_wait_out + pop af + ;call print_char + ret +; HL contains pointer to string +; Destroy A, HL + +print_str: + ld a, (hl) + or a + jr z,print_str_end + call print_char + inc hl + jr print_str +print_str_end: + ret + +print_clear: + ld hl, [MSG_CLEAR] + call print_str + ret + +print_newLine: + ld a,10 + call print_char + ld a,13 + call print_char + ret +; destroys a +print_wait_out: + ; check for TX buffer empty + sub a ;clear a, write into WR0: select RR0 + inc a ;select RR1 + out (CS_SIO_A_C),A + in A,(CS_SIO_A_C) ;read RRx + bit 0,A + jr z,print_wait_out + ret + +print_a_hex: + push af + push bc + push de + call STRCONV_BYTES_TO_HEX + ld a,b + call print_char + ld a,c + call print_char + pop de + pop bc + pop af + +read_char: + call A_RTS_ON + nop + xor a ; a = 0 + out (CS_SIO_A_C), a ; select reg 0 + in a, (CS_SIO_A_C) ; read reg 0 + and 1 ; mask D0 (recieve char available) + call A_RTS_OFF + ret Z ; return 0 if no char + in a, (CS_SIO_A_D) ; read char if avail + ret ; return + +;MSG_CRSR_0: +; db 0x1B, "[?25h",0 +;MSG_CRSR_1: +; db 0x1B, "[?25l",0 +MSG_CLEAR: + db 27, '[2J', 27, '[H',0 + + + +; Serial Util Functions +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 + out (CS_SIO_A_C),A + ret +A_RTS_ON: + ld a,005h ;write into WR0: select WR5 + out (CS_SIO_A_C),A + ld a,0EAh ;DTR active, TX 8bit, BREAK off, TX on, RTS active + out (CS_SIO_A_C),A + ret \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/include/conversions.s b/OperatingSystem/monitor_v2/include/conversions.s new file mode 100644 index 0000000..030b538 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/conversions.s @@ -0,0 +1,89 @@ +; HL Contains Address to string +; E is 0xFF if error +; E is 0x00 if okay +; A returns byte +; A,DE are destroyed +DHEX_TO_BYTE: + PUSH HL ;Backup pointer + ; Load First Byte + LD A,(HL) ;Load first char (high) + CALL HEX_TO_BIN ;Conv chart to 4bit + jr C, DHEX_TO_BYTE_FAILED ;If error jmp to DHEX_TO_BYTE_FAILED + SLA A ;shift result to upper 4 bits + SLA A + SLA A + SLA A + LD D,A ;store result in D + + INC HL ;next byte + LD A,(HL) ;load 2nd char (lower) + CALL HEX_TO_BIN ;Conv chart to 4bit + jr C, DHEX_TO_BYTE_FAILED ;If error jmp to DHEX_TO_BYTE_FAILED + OR D ;merge D with accumulator + + POP HL ;restor original pointer + LD E,0x00 ;set error to 0x00 = no error + RET +DHEX_TO_BYTE_FAILED: + LD E,0xFF ;set error to oxFF + ;LD A,0x00 + POP HL + RET + +; REG A Contains CHAR-Low +; If failed, Carry is set +HEX_TO_BIN: + SUB 48 ; 0 is 0 + jp PE, HEX_TO_INVALID_2; to low (SUB overflow) + CP 10 ; Value is between 0 and 9 + JR C, HEX_TO_BIN_2 + SUB 7 + jp PE, HEX_TO_INVALID_2; to low (SUB overflow) +HEX_TO_BIN_2: + CP 16 + JR NC, HEX_TO_INVALID_2; if bigger than 15-> fail + AND 0x0F + RET +HEX_TO_INVALID_2: + SCF ;set carry flag + RET + + +;***************** +; Convert Byte to Hex Char (ASCII) +;***************** +;Description: the StrLength function inline +; +;Inputs: A contains input byte +; +;Outputs: BC contains 2 Bytes of ASCII (HEX) +; +;Destroys: A, BC, +STRCONV_BYTES_TO_HEX: + PUSH AF;Backup A Register + RRA + RRA + RRA + RRA + CALL STRCONV_BYTES_TO_HEX_1 + ;LD A,D + LD B,A + POP AF ; Reload first Byte + CALL STRCONV_BYTES_TO_HEX_1 + ;LD A,D + LD C,A + RET + +STRCONV_BYTES_TO_HEX_1: + AND 0x0F + ADD 48 + CP 58 ; Check if less than 58 (less than ASCII 9) + ;JR C, STRCONV_BYTES_TO_HEX_2 + RET C + ADD 7 ; A-F + RET +STRCONV_BYTES_TO_HEX_2: + ;LD D,A + RET + + diff --git a/OperatingSystem/monitor_v2/include/debug.s b/OperatingSystem/monitor_v2/include/debug.s new file mode 100644 index 0000000..1532580 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/debug.s @@ -0,0 +1,78 @@ + + +debug_init: + ld A,VAR_CONSOLE_CONF ; Setup CTC + out (IO_CTC0_C0),A ; Controll word, software reset, time constant follows, CLK/TRG starts timer + ld A,VAR_CONSOLE_BAUD ; Setup timer const + out (IO_CTC0_C0),A ; Load timer const into CTC (Setup Baud generator) + ;set up TX and RX:W + ld a,00110000b ;write into WR0: error reset, select WR0 + out (IO_SIO0A_C),A + ld a,018h ;write into WR0: channel reset + out (IO_SIO0A_C),A + ld a,004h ;write into WR0: select WR4 + out (IO_SIO0A_C),A + ld a,04h ;44h write into WR4: clkx1,1 stop bit, no parity + out (IO_SIO0A_C),A + ld a,005h ;write into WR0: select WR5 + out (IO_SIO0A_C),A + ld a,068h ;DTR active, TX 8bit, BREAK off, TX on, RTS inactive + out (IO_SIO0A_C),A + ld a,01h ;write into WR0: select WR1 + out (IO_SIO0A_C),A + ld a,00000100b ;no interrupt in CH B, special RX condition affects vect + out (IO_SIO0A_C),A + ;enable SIO channel A RX + ld a,003h ;write into WR0: select WR3 + out (IO_SIO0A_C),A + ld a,0C1h ;RX 8bit, auto enable off, RX on + out (IO_SIO0A_C),A + ;Channel A RX active + ld hl,[MSG_START_DBG] + call debug_print_str + ret + +debug_print_char: + out (IO_SIO0A_D),a + call debug_wait_out + ret + +debug_print_str: + ld a, (hl) + or a + ret z + call debug_print_char + inc hl + jr debug_print_str + +debug_print_newLine: + ld a,10 + call debug_print_char + ld a,13 + call debug_print_char + ret + +debug_wait_out: + ; check for TX buffer empty + sub a ;clear a, write into WR0: select RR0 + inc a ;select RR1 + out (IO_SIO0A_C),A + in A,(IO_SIO0A_C) ;read RRx + bit 0,A + jr z,debug_wait_out + ret + +MSG_START_DBG: + db "Debug interface active!",13,10,0 + +debug_a_hex: + push BC + push AF + call STRCONV_BYTES_TO_HEX + ld a, b + call debug_print_char + ld a, c + call debug_print_char + pop AF + pop BC + ret \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/include/disassembler copy.s b/OperatingSystem/monitor_v2/include/disassembler copy.s new file mode 100644 index 0000000..aa80740 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/disassembler copy.s @@ -0,0 +1,322 @@ +; HL contains start address +; B contains length +disassemble: + call dasm_print16hex_addr ;print address (HL) + call disassemble_table_seek + xor a + or b + or c + jr z, disassemble_err ;if bc==0000h + + ld a,(hl) ;load first byte + + + + + + call dasm_print8hex ;print value + ld a,(hl) + cp 0xC3 ;C3 JPnn + jp z, dasm_C3 + + ;start getting value + +disassemble_err: + ld a,(hl) + call dasm_print8hex ;print value + push hl + ld hl, [dasm_UU] + call print_str + pop hl +disassemble_continue: + call print_newLine + inc hl + dec b + jp nz, disassemble + ret + + + +;A contains char +;BC contains returned position +disassemble_table_seek: + push hl + ld c,a +disassemble_table_seek_loop: + ld a,(hl) + cp c ; if match + jr z, disassemble_table_found + or a ; if null + jp z, disassemble_table_notfound + ld b,0 + ld c,4 + add hl,bc + ld a,(hl) + ld c,a + add hl,bc + inc hl + jr disassemble_table_seek_loop + + +disassemble_table_found + ld b,H + ld c,l + pop hl + ret + +disassemble_table_notfound + ld b,0 + ld c,0 + pop hl + ret + + + +dasm_C3: ;JP nn (276) + inc hl + ld e, (HL) + inc hl + ld d, (HL) + inc hl + ;de now has jmp value + push hl + ld hl, [dasm_C3_str] + call print_str + ld h,d + ld l,e + call dasm_print16hex_addr + pop hl + jp disassemble_continue +dasm_C3_str: + db "JP ",0x00 + +dasm_JPccnn: ;JP nn (276) + rra + rra + rra + and 0x07 + call dasm_printFlags + ld a, "," + call print_char + inc hl + ld e, (HL) + inc hl + ld d, (HL) + inc hl + ;de now has jmp value + push hl + ld hl, [dasm_C3_str] + call print_str + ld h,d + ld l,e + call dasm_print16hex_addr + pop hl + jp disassemble_continue + +dasm_18: ;JR e + inc hl + ld e, (HL) + inc hl + ;de now has jmp value + push hl + ld hl, [dasm_18_str] + call print_str + ld a,e + call dasm_print8relhex + pop hl + jp disassemble_continue +dasm_18_str: + db "JR ",0x00 + +dasm_38: ;JR C,e + inc hl + ld e, (HL) + inc hl + ;de now has jmp value + push hl + ld hl, [dasm_38_str] + call print_str + ld a,e + call dasm_print8relhex + pop hl + jp disassemble_continue +dasm_38_str: + db "JR C, ",0x00 + +dasm_30: ;JR NC,e + inc hl + ld e, (HL) + inc hl + ;de now has jmp value + push hl + ld hl, [dasm_30_str] + call print_str + ld a,e + call dasm_print8relhex + pop hl + jp disassemble_continue +dasm_30_str: + db "JR NC, ",0x00 + +dasm_28: ;JR Z,e + inc hl + ld e, (HL) + inc hl + ;de now has jmp value + push hl + ld hl, [dasm_28_str] + call print_str + ld a,e + call dasm_print8relhex + pop hl + jp disassemble_continue +dasm_28_str: + db "JR Z, ",0x00 + +dasm_20: ;JR NZ,e + inc hl + ld e, (HL) + inc hl + ;de now has jmp value + push hl + ld hl, [dasm_20_str] + call print_str + ld a,e + call dasm_print8relhex + pop hl + jp disassemble_continue +dasm_20_str: + db "JR NZ, ",0x00 + +dasm_E9: ;JR NZ,e + inc hl + push hl + ld hl, [dasm_20_str] + call print_str + pop hl + jp disassemble_continue +dasm_E9_str: + db "JP (HL), ",0x00 + +dasm_E9: ;JP (HL) + inc hl + push hl + ld hl, [dasm_E9_str] + call print_str + pop hl + jp disassemble_continue +dasm_E9_str: + db "JP (HL)",0x00 + +dasm_E9: ;JP (IX) + inc hl + push hl + ld hl, [dasm_E9_str] + call print_str + pop hl + jp disassemble_continue +dasm_E9_str: + db "JP (IX)",0x00 + +dasm_E9: ;JP (IY) + inc hl + push hl + ld hl, [dasm_E9_str] + call print_str + pop hl + jp disassemble_continue +dasm_E9_str: + db "JP (IY)",0x00 + + +dasm_00: ;JP nn (276) + inc hl + push hl + ld hl, [dasm_00_str] + call print_str + pop hl + jp disassemble_continue +dasm_00_str: + db "NOP",0x00 + +dasm_FF: ;JP nn (276) + inc hl + push hl + ld hl, [dasm_FF_str] + call print_str + pop hl + jp disassemble_continue +dasm_FF_str: + db "---",0x00 + + +dasm_print16hex_addr: + ld a,"$" + call print_char + ld a,h + call print_a_hex + ld a,l + call print_a_hex + ld a,"h" + call print_char + ld a," " + call print_char + ret + +dasm_print8hex: + call print_a_hex + ld a,"h" + call print_char + ld a," " + call print_char + ret + +dasm_print8relhex: + push af + and 0x80 + jp nz, dasm_print8relhex_neg + ld a,"$" + call print_char + ld a,"+" + call print_char + pop af + call print_a_hex + ld a,"h" + call print_char + ret + +dasm_print8relhex_neg: + ld a,"$" + call print_char + ld a,"-" + call print_char + pop af + neg + call print_a_hex + ld a,"h" + call print_char + ret + + +dasm_printFlags: + push hl + ld hl, [dasm_printFlags_table] + rlca + ld b,0 + ld c,a + add hl,bc + call print_str + ld a, " " + call print_char + pop hl + ret + +dasm_printFlags_table: + db "NZ",0 + db "Z",0,0 + db "NC" + db "C",0,0 + db "PO",0 + db "PE",0 + db "P",0,0 + db "M",0,0 \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/include/disassembler.s b/OperatingSystem/monitor_v2/include/disassembler.s new file mode 100644 index 0000000..d27575f --- /dev/null +++ b/OperatingSystem/monitor_v2/include/disassembler.s @@ -0,0 +1,569 @@ +var_opcode_start equ PRG_RAM_START ;16 bit pointer to opcode in mem +var_opcode_table equ PRG_RAM_START+2 ;16 bit pointer to opcode in table +var_opcode equ PRG_RAM_START+4 ;8 bit opcode value +var_opcode_x equ PRG_RAM_START+5 ;8 bit opcode extension value +var_opcode_length equ PRG_RAM_START+6 ;8 bit opcode length (in bytes) +var_opcode_string equ PRG_RAM_START+7 ;16 bit pointer to opcode string +var_opcode_pcount equ PRG_RAM_START+9 ;8 bit opcode param count +var_bytes_count equ PRG_RAM_START+10 ;bytes to examine +; HL contains start address +; B contains length +disassemble: + ld a,b + ld (var_bytes_count),a +disassemble_next: + + + ld (var_opcode_start), hl ;16 bit pointer to opcode in mem + ld a,(hl) ;load opcode to find in A + ld (var_opcode), a ;8 bit opcode value + inc hl + ld a,(hl) ;load opcode to find in A + ld (var_opcode_x), a ;8 bit opcode extended value + dec hl + call disassemble_table_seek + ld a,b + or c + jp z, disassemble_err ;if bc==0000h + + ld (var_opcode_table), bc ;16 bit pointer to opcode in table + + ;load params + inc bc + inc bc + inc bc + inc bc + ld a,(bc) + ld (var_opcode_length),A ;8 bit opcode length (in bytes) + inc bc + ld a, (bc) + ld e,a + inc bc + ld a, (bc) + ld d,a + ld (var_opcode_string),de ;16 bit pointer to opcode string + inc bc + ld a,(bc) + ld (var_opcode_pcount),A ;8 bit opcode param count + + ;values are prepared. Continue with print + + ld hl,(var_opcode_start) ;print address + call dasm_print16hex_addr + + ld a,(var_opcode_length) + ld b, a + + ;print up to 4 opcode bytes + ld hl,(var_opcode_start) + +disassemble_print_opcode_raw + ld a,(hl) ;load first byte + call print_a_hex + inc hl + djnz disassemble_print_opcode_raw + + ld a,"h" + call print_char + ;fill empty spots + ld a,(var_opcode_length) + ld b,a + ld a,6 + sub b + ld b,a + +disassemble_print_opcode_raw_fill: + ld a," " + call print_char + ld a," " + call print_char + djnz disassemble_print_opcode_raw_fill + ld a," " + call print_char + + push hl + ;print opcode + ld hl,(var_opcode_string) + call print_str + + + ;print params + ld a,(var_opcode_pcount) + or a + jp z, disassemble_print_opcode_params_end ;skip if no params + + ld hl,(var_opcode_table) + ld bc, 8 + add hl,bc ;hl now has address of first param + ld a,(var_opcode_pcount) + ld b,a +disassemble_print_opcode_params_loop: + ;ld a,(hl) ;load param + ;call print_a_hex + ld a,(hl) ;load param + + cp 0x01 + call z, param_01 + cp 0x02 + call z, param_02 + cp 0x03 + call z, param_03 + cp 0x04 + call z, param_04 + cp 0x05 + call z, param_05 + cp 0x06 + call z, param_06 + cp 0x07 + call z, param_07 + cp 0x08 + call z, param_08 + cp 0x09 + call z, param_09 + cp 0x10 + call z, param_10 + cp 0x11 + call z, param_11 + cp 0x12 + call z, param_12 + cp 0x13 + call z, param_13 + cp 0x0A + call z, param_0A + ;strings + cp 0x80 + call z, param_80 + cp 0x81 + call z, param_81 + inc hl + djnz disassemble_print_opcode_params_loop +disassemble_print_opcode_params_end: + pop hl + jr disassemble_continue + + +disassemble_err: + call dasm_print16hex_addr + ld a,(hl) + call dasm_print8hex ;print value + inc hl + push hl + ld hl, [dasm_UU] + call print_str + pop hl + +disassemble_continue: + + call print_newLine + ;inc hl + ld a,(var_bytes_count) + dec a + ld (var_bytes_count),a + jp nz, disassemble_next + ret + + + +;A contains opcode +;BC contains returned position +disassemble_table_seek: + push hl + ld hl, [dasm_opcode_table] +disassemble_table_seek_loop: + ld a,(var_opcode) + ld c,a + ld a,(hl) + cp 0xFF ; if null + jp z, disassemble_table_notfound + + ;apply mask + push af + inc hl + ld b,(hl) ;load mask + dec hl + ld a,c + and b ;apply mask + ld c,a + pop af + + cp c ; if match + jr z, disassemble_table_first_match + ld b,0 + ld c,7 + add hl,bc + ld a,(hl) + ld c,a + add hl,bc + inc hl + jr disassemble_table_seek_loop + +disassemble_table_first_match + inc hl + inc hl + ld c,(hl) ;load opcode x from table + inc hl + ld a,(var_opcode_x) ;load current opcode x + ld b,(hl) ;load mask + and b ;apply mask + cp c ;compare to table + dec hl + dec hl + dec hl + jr z, disassemble_table_found ;IF FOUND + ld b,0 ;else continue with next + + ld c,7 + add hl,bc + ld a,(hl) + ld c,a + add hl,bc + inc hl + jr disassemble_table_seek_loop + +disassemble_table_found + ld b,H + ld c,l + pop hl + ret + +disassemble_table_notfound + ld b,0 + ld c,0 + pop hl + ret + + + + +dasm_print16hex_addr: + ld a,"$" + call print_char + ld a,h + call print_a_hex + ld a,l + call print_a_hex + ld a,"h" + call print_char + ld a," " + call print_char + ret + +dasm_print8hex: + call print_a_hex + ld a,"h" + call print_char + ld a," " + call print_char + ret + + + + + + + +param_01: ; 0x01 16bit address pointer + push hl + ld de,(var_opcode_start) + inc de + ld a,(de) + ld l,a + inc de + ld a,(de) + ld h,a + + ld a,"$" + call print_char + ld a,h + call print_a_hex + ld a,l + call print_a_hex + ld a,"h" + call print_char + ld a," " + call print_char + call param_comma + pop hl + ret + +param_02: + push bc + ld de,(var_opcode_start) + ld a,(de) + rra + rra + and 0x0E + + push hl + ld hl, [dasm_printFlags_table] + ld b,0 + ld c,a + add hl,bc + call print_str + ld a, " " + call print_char + pop hl + pop bc + ret + + +param_03: + ld de,(var_opcode_start) + inc de + ld a,(de) + + push af + and 0x80 + jp nz, param_03_neg + ld a,"$" + call print_char + ld a,"+" + call print_char + pop af + call print_a_hex + ld a,"h" + call print_char + jr param_03_done + +param_03_neg: + ld a,"$" + call print_char + ld a,"-" + call print_char + pop af + neg + call print_a_hex + ld a,"h" + call print_char + jr param_03_done + +param_03_done: + call param_comma + ret + + +param_04: + ld de,(var_opcode_start) + inc de + ld a,(de) + cp 0x4D + jr z,param_04_i + ld a,"N" + call print_char + ret +param_04_i: + ld a,"I" + call print_char + ret + +param_05: + push bc + ld de,(var_opcode_start) + ld a,(de) + and 0x38 + ; print hex char + call dasm_print8hex + pop bc + ret + + +param_06: + push bc + ld de,(var_opcode_start) + ld a,(de) + rra + rra + rra + and 0x07 + call param_printRegister + ld a," " + call print_char + ld a,"," + call print_char + pop bc + ret + +param_07: + push bc + ld de,(var_opcode_start) + ld a,(de) + and 0x07 + + call param_printRegister + pop bc + ret + +param_08: + push bc + ld de,(var_opcode_start) + inc de + ld a,(de) + call dasm_print8hex + pop bc + ret + + +param_0A: + push hl + ld de,(var_opcode_start) + inc de + inc de + jr param_09_0A +param_09: + push hl + ld de,(var_opcode_start) + inc de +param_09_0A: + ld a,(de) + ld l,a + inc de + ld a,(de) + ld h,a + ld a,h + call print_a_hex + ld a,l + call print_a_hex + pop hl + ret + +param_10: + push bc + ld de,(var_opcode_start) + ld a,(de) + rra + rra + rra + and 0x07 + call param_printRegister + pop bc + ret + + +param_11: + push hl + push bc + ld de,(var_opcode_start) + jr param_11_12 +param_12: + push hl + push bc + ld de,(var_opcode_start) + inc de + +param_11_12: + ld a,(de) + rra + rra + rra + and 0x06 + push af + ;check which table to use + ld hl, (var_opcode_start) + ld a,(hl) + cp 0xDD + jr z,param_11_12_ix + cp 0xFD + jr z,param_11_12_iy +param_11_12_def: + ld hl, [dasm_printRegister8_table] + jr param_11_12_all +param_11_12_ix: + ld hl, [dasm_printRegisterIX_table] + jr param_11_12_all +param_11_12_iy: + ld hl, [dasm_printRegisterIY_table] +param_11_12_all: + pop af + ld b,0 + ld c,a + add hl, bc + ld a,(hl) + call print_char + inc hl + ld a,(hl) + call print_char + pop bc + pop hl + ret + +param_13: + push hl + push bc + ld de,(var_opcode_start) + ld a,(de) + rra + rra + rra + and 0x06 + push af + ;check which table to use + ld hl, (var_opcode_start) + ld a,(hl) + ld hl, [dasm_printRegisterSP_table] + jr param_11_12_all ;reuse code from 11_12 + + +param_81: + push hl + push bc + ld hl, (var_opcode_string) + ld b,2 + jr param_80_seek +param_80: + push hl + push bc + ld hl, (var_opcode_string) + ld b,1 +param_80_seek: + ld a,(hl) + inc hl + and a + jr nz, param_80_seek + ;found + dec b ;found but counter too high + jp nz, param_80_seek + + call print_str + pop bc + pop hl + ret + + + +param_printRegister: + push hl + cp 0x06 + jr z, param_printRegisterHL + cp 0x07 + jr z, param_printRegisterA + ld hl, [dasm_printRegister8_table] + ld b,0 + ld c,a + add hl,bc + ld a, (hl) + call print_char + pop hl + ret + +param_printRegisterHL: + ld hl, [dasm_printRegister8_table_HL] + call print_str + pop hl + ret + +param_printRegisterA: + ld a,"A" + call print_char + pop hl + ret + + +param_comma: + ld a,b + cp 1 + ret z + ld a," " + call print_char + ld a,"," + call print_char + ret \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/include/disassembler_table.s b/OperatingSystem/monitor_v2/include/disassembler_table.s new file mode 100644 index 0000000..061ea50 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/disassembler_table.s @@ -0,0 +1,333 @@ +;disassembler tables + +dasm_opcode_table: + ;byte 0 = opcode + ;byte 1 = opcode mask + ;byte 2 = opcode extended + ;byte 3 = opcode extended mask + ;byte 4 = length + ;byte 5+6 = pointer to string + ;byte 7 = params = count of paramters + ;byte 8+ = paramters + ; 0x01 16bit address pointer + ; 0x02 flag bit 3-5 + ; 0x03 relative jmp address + ; 0x04 RETI/RETN + ; 0x05 RST Vector + ; 0x06 register (r) + ; 0x07 register (r') + ; 0x08 8-Bit value + ; 0x09 16-Bit value + ; 0x0A 16-bit value with offset +1 + ; 0x10 same as 0x06 without "," + ; 0x11 print 16 bit register from 1st byte + ; 0x12 print 16 bit register from 2nd byte + ; 0x13 push/pop register lookup + ; 0x80 print string suffix + ; 0x81 print string suffix 2 + defb 0x00, 0xFF, 0x00, 0x00, 1, [dasm_00], [dasm_00]>>8,0 ;NOP + ;General-Purpose Arithmetic and CPU Control Groups + defb 0x27, 0xFF, 0x00, 0x00, 1, [dasm_27], [dasm_27]>>8, 0 ;DAA + defb 0x2F, 0xFF, 0x00, 0x00, 1, [dasm_2F], [dasm_2F]>>8, 0 ;CPL + defb 0xED, 0xFF, 0x44, 0xFF, 2, [dasm_ED_44], [dasm_ED_44]>>8, 0 ;NEG + defb 0x3f, 0xFF, 0x00, 0x00, 1, [dasm_3F], [dasm_3F]>>8, 0 ;CCF + defb 0x37, 0xFF, 0x00, 0x00, 1, [dasm_37], [dasm_37]>>8, 0 ;SCF + ;defb 0x00, 0xFF, 0x00, 0x00, 1, [dasm_00], [dasm_00]>>8,0 ;NOP -> already at top for performance reasons + defb 0x76, 0xFF, 0x00, 0x00, 1, [dasm_76], [dasm_76]>>8, 0 ;HALT + defb 0xF3, 0xFF, 0x00, 0x00, 1, [dasm_F3], [dasm_F3]>>8, 0 ;DI + defb 0xFB, 0xFF, 0x00, 0x00, 1, [dasm_FB], [dasm_FB]>>8, 0 ;EI + defb 0xED, 0xFF, 0x46, 0xFF, 2, [dasm_ED_46], [dasm_ED_46]>>8, 0 ;IM 0 + defb 0xED, 0xFF, 0x56, 0xFF, 2, [dasm_ED_56], [dasm_ED_56]>>8, 0 ;IM 1 + defb 0xED, 0xFF, 0x5E, 0xFF, 2, [dasm_ED_5E], [dasm_ED_5E]>>8, 0 ;IM 2 + + ;Exchange, Block Transfer, and Search Group + defb 0xEB, 0xFF, 0x00, 0x00, 1, [dasm_BE], [dasm_BE]>>8, 0 ;EX DE, HL + defb 0x08, 0xFF, 0x00, 0x00, 1, [dasm_08], [dasm_08]>>8, 0 ;EX AF, AF′ + defb 0xD9, 0xFF, 0x00, 0x00, 1, [dasm_D9], [dasm_D9]>>8, 0 ;EXX + defb 0xE3, 0xFF, 0x00, 0x00, 1, [dasm_E3], [dasm_E3]>>8, 0 ;EX (SP), HL + defb 0xDD, 0xFF, 0xE3, 0xFF, 2, [dasm_DD_E3], [dasm_DD_E3]>>8, 0 ;EX (SP), IX + defb 0xFD, 0xFF, 0xE3, 0xFF, 2, [dasm_FD_E3], [dasm_FD_E3]>>8, 0 ;EX (SP), IY + defb 0xED, 0xFF, 0xA0, 0xFF, 2, [dasm_ED_A0], [dasm_ED_A0]>>8, 0 ;LDI + defb 0xED, 0xFF, 0xB0, 0xFF, 2, [dasm_ED_B0], [dasm_ED_B0]>>8, 0 ;LDIR + defb 0xED, 0xFF, 0xA8, 0xFF, 2, [dasm_ED_A8], [dasm_ED_A8]>>8, 0 ;LDD + defb 0xED, 0xFF, 0xB8, 0xFF, 2, [dasm_ED_B8], [dasm_ED_B8]>>8, 0 ;LDDR + defb 0xED, 0xFF, 0xA1, 0xFF, 2, [dasm_ED_A1], [dasm_ED_A1]>>8, 0 ;CPI + defb 0xED, 0xFF, 0xB1, 0xFF, 2, [dasm_ED_B1], [dasm_ED_B1]>>8, 0 ;CPIR + defb 0xED, 0xFF, 0xA9, 0xFF, 2, [dasm_ED_A9], [dasm_ED_A9]>>8, 0 ;CPD + defb 0xED, 0xFF, 0xB9, 0xFF, 2, [dasm_ED_B9], [dasm_ED_B9]>>8, 0 ;CPDR + + ;JUMP Group + defb 0xC3, 0xFF, 0x00, 0x00, 3, [dasm_C3], [dasm_C3]>>8,1, 0x01 ;JP nn + defb 0xC2, 0xC7, 0x00, 0x00, 3, [dasm_C3], [dasm_C3]>>8,3, 0x02, 0x80, 0x01 ;JP cc,nn + defb 0x18, 0xFF, 0x00, 0x00, 2, [dasm_18], [dasm_18]>>8,1, 0x03 ;JR e + defb 0x38, 0xFF, 0x00, 0x00, 2, [dasm_38], [dasm_38]>>8,1, 0x03 ;JR C,e + defb 0x30, 0xFF, 0x00, 0x00, 2, [dasm_30], [dasm_30]>>8,1, 0x03 ;JR NC,e + defb 0x28, 0xFF, 0x00, 0x00, 2, [dasm_28], [dasm_28]>>8,1, 0x03 ;JR Z,e + defb 0x20, 0xFF, 0x00, 0x00, 2, [dasm_20], [dasm_20]>>8,1, 0x03 ;JR NZ,e + defb 0xE9, 0xFF, 0x00, 0x00, 2, [dasm_E9], [dasm_E9]>>8,0 ;JP (HL) + defb 0xDD, 0xFF, 0xE9, 0xFF, 2, [dasm_DD], [dasm_DD]>>8,0 ;JP (IX) + defb 0xFD, 0xFF, 0xE9, 0xFF, 2, [dasm_FD], [dasm_FD]>>8,0 ;JP (IY) + defb 0x10, 0xFF, 0x00, 0x00, 2, [dasm_10], [dasm_10]>>8,1, 0x03 ;DJNZ, e + ;Call and Return Group + defb 0xCD, 0xFF, 0x00, 0x00, 3, [dasm_CD], [dasm_CD]>>8,1, 0x01 ;CALL nn + defb 0xC4, 0xC7, 0x00, 0x00, 3, [dasm_CD], [dasm_CD]>>8,2, 0x02, 0x01 ;CALL cc,nn + defb 0xC9, 0xFF, 0x00, 0x00, 1, [dasm_C9], [dasm_C9]>>8,0 ;RET + defb 0xC0, 0xC7, 0x00, 0x00, 1, [dasm_C9], [dasm_C9]>>8,1, 0x02 ;RET cc + defb 0xED, 0xFF, 0x4D, 0xFF, 2, [dasm_ED_4D], [dasm_ED_4D]>>8,0 ;RETI + defb 0xED, 0xFF, 0x45, 0xFF, 2, [dasm_ED_45], [dasm_ED_45]>>8,0 ;RETN + + defb 0xC7, 0xC7, 0x00, 0x00, 1, [dasm_FF], [dasm_FF]>>8,1, 0x05 ;RST + ;8-Bit load group + defb 0x0A, 0xFF, 0x00, 0x00, 1, [dasm_0A], [dasm_0A]>>8, 0 ;LD A, (BC) + defb 0x1A, 0xFF, 0x00, 0x00, 1, [dasm_1A], [dasm_1A]>>8, 0 ;LD A, (DE) + defb 0x3A, 0xFF, 0x00, 0x00, 3, [dasm_3A], [dasm_3A]>>8, 2, 0x09, 0x80 ;LD A, (nn) + defb 0x02, 0xFF, 0x00, 0x00, 1, [dasm_02], [dasm_02]>>8, 0 ;LD (BC), A + defb 0x12, 0xFF, 0x00, 0x00, 1, [dasm_12], [dasm_12]>>8, 0 ;LD (DE), A + defb 0x32, 0xFF, 0x00, 0x00, 3, [dasm_32], [dasm_32]>>8, 2, 0x09, 0x80 ;LD (nn), A + defb 0xED, 0xFF, 0x57, 0xFF, 2, [dasm__ED_57], [dasm__ED_57]>>8, 0 ;LD A, I + defb 0xED, 0xFF, 0x5F, 0xFF, 2, [dasm__ED_5F], [dasm__ED_5F]>>8, 0 ;LD A, R + defb 0xED, 0xFF, 0x47, 0xFF, 2, [dasm__ED_47], [dasm__ED_47]>>8, 0 ;LD I, A + defb 0xED, 0xFF, 0x4F, 0xFF, 2, [dasm__ED_4F], [dasm__ED_4F]>>8, 0 ;LD R, A + + defb 0x06, 0xC7, 0x00, 0x00, 2, [dasm__LD], [dasm__LD]>>8, 2, 0x06, 0x08 ;LD r, n + defb 0x40, 0xC0, 0x00, 0x00, 1, [dasm__LD], [dasm__LD]>>8, 2, 0x06, 0x07 ;LD r, r' / LD r, (HL) / LD (HL), r + + ;8-Bit Arithmetic Group + defb 0x80, 0xF8, 0x00, 0x00, 1, [dasm_80C6], [dasm_80C6]>>8, 1, 0x07 ;ADD A, r / ADD A, (HL) + defb 0xC6, 0xFF, 0x00, 0x00, 2, [dasm_80C6], [dasm_80C6]>>8, 1, 0x08 ;ADD A, n + defb 0xDD, 0xFF, 0x86, 0xFF, 3, [dasm_DD_86], [dasm_DD_86]>>8, 2, 0x08, 0x80 ;ADD A, (IX + d) + defb 0xFD, 0xFF, 0x86, 0xFF, 3, [dasm_FD_86], [dasm_FD_86]>>8, 2, 0x08, 0x80 ;ADD A, (IY + d) + defb 0xC8, 0xF8, 0x00, 0x00, 1, [dasm_C88E], [dasm_C88E]>>8, 1, 0x07 ;ADC A, r / ADC A, (HL) + defb 0x8E, 0xF8, 0x00, 0x00, 2, [dasm_C88E], [dasm_C88E]>>8, 1, 0x08 ;ADC A, n + defb 0xDD, 0xFF, 0x8E, 0xFF, 3, [dasm_DD_8E], [dasm_DD_8E]>>8, 2, 0x08, 0x80 ;ADC A, (IX + d) + defb 0xFD, 0xFF, 0x8E, 0xFF, 3, [dasm_FD_8E], [dasm_FD_8E]>>8, 2, 0x08, 0x80 ;ADC A, (IY + d) + defb 0x90, 0xF8, 0x00, 0x00, 1, [dasm__SUB], [dasm__SUB]>>8, 1, 0x07 ;SUB r / SUB A, (HL) + defb 0xD6, 0xFF, 0x00, 0x00, 2, [dasm__SUB], [dasm__SUB]>>8, 1, 0x08 ;SUB n + defb 0xDD, 0xFF, 0x96, 0xFF, 3, [dasm_DD_96], [dasm_DD_96]>>8, 2, 0x08, 0x80 ;SUB (IX + d) + defb 0xFD, 0xFF, 0x96, 0xFF, 3, [dasm_FD_96], [dasm_FD_96]>>8, 2, 0x08, 0x80 ;SUB (IY + d) + defb 0x94, 0xF8, 0x00, 0x00, 1, [dasm__SBC], [dasm__SBC]>>8, 1, 0x07 ;SBC A,r / SBC A, (HL) + defb 0xDE, 0xFF, 0x00, 0x00, 2, [dasm__SBC], [dasm__SBC]>>8, 1, 0x08 ;SBC A,n + defb 0xDD, 0xFF, 0x9E, 0xFF, 3, [dasm_DD_9E], [dasm_DD_9E]>>8, 2, 0x08, 0x80 ;SBC A,(IX + d) + defb 0xFD, 0xFF, 0x9E, 0xFF, 3, [dasm_FD_9E], [dasm_FD_9E]>>8, 2, 0x08, 0x80 ;SBC A,(IY + d) + defb 0xA0, 0xF8, 0x00, 0x00, 1, [dasm__AND], [dasm__AND]>>8, 1, 0x07 ;AND A,r / AND A, (HL) + defb 0xE6, 0xFF, 0x00, 0x00, 2, [dasm__AND], [dasm__AND]>>8, 1, 0x08 ;AND A,n + defb 0xDD, 0xFF, 0xA6, 0xFF, 3, [dasm_DD_A6], [dasm_DD_A6]>>8, 2, 0x08, 0x80 ;AND A,(IX + d) + defb 0xFD, 0xFF, 0xA6, 0xFF, 3, [dasm_FD_A6], [dasm_FD_A6]>>8, 2, 0x08, 0x80 ;AND A,(IY + d) + defb 0xB0, 0xF8, 0x00, 0x00, 1, [dasm__OR], [dasm__OR]>>8, 1, 0x07 ;OR A,r / OR A, (HL) + defb 0xF6, 0xFF, 0x00, 0x00, 2, [dasm__OR], [dasm__OR]>>8, 1, 0x08 ;OR A,n + defb 0xDD, 0xFF, 0xB6, 0xFF, 3, [dasm_DD_B6], [dasm_DD_B6]>>8, 2, 0x08, 0x80 ;OR A,(IX + d) + defb 0xFD, 0xFF, 0xB6, 0xFF, 3, [dasm_FD_B6], [dasm_FD_B6]>>8, 2, 0x08, 0x80 ;OR A,(IY + d) + defb 0xA8, 0xF8, 0x00, 0x00, 1, [dasm__XOR], [dasm__XOR]>>8, 1, 0x07 ;XOR A,r / XOR A, (HL) + defb 0xEE, 0xFF, 0x00, 0x00, 2, [dasm__XOR], [dasm__XOR]>>8, 1, 0x08 ;XOR A,n + defb 0xDD, 0xFF, 0xAE, 0xFF, 3, [dasm_DD_AE], [dasm_DD_AE]>>8, 2, 0x08, 0x80 ;XOR A,(IX + d) + defb 0xFD, 0xFF, 0xAE, 0xFF, 3, [dasm_FD_AE], [dasm_FD_AE]>>8, 2, 0x08, 0x80 ;XOR A,(IY + d) + defb 0xB8, 0xF8, 0x00, 0x00, 1, [dasm__CP], [dasm__CP]>>8, 1, 0x07 ;CP A,r / CP A, (HL) + defb 0xFE, 0xFF, 0x00, 0x00, 2, [dasm__CP], [dasm__CP]>>8, 1, 0x08 ;CP A,n + defb 0xDD, 0xFF, 0xBE, 0xFF, 3, [dasm_DD_BE], [dasm_DD_BE]>>8, 2, 0x08, 0x80 ;CP A,(IX + d) + defb 0xFD, 0xFF, 0xBE, 0xFF, 3, [dasm_FD_BE], [dasm_FD_BE]>>8, 2, 0x08, 0x80 ;CP A,(IY + d) + defb 0x04, 0xC7, 0x00, 0x00, 1, [dasm__INC], [dasm__INC]>>8, 1, 0x10 ;INC r / INC (HL) + defb 0xDD, 0xFF, 0x34, 0xFF, 3, [dasm_DD_34], [dasm_DD_34]>>8, 2, 0x08, 0x80 ;INC (IX + d) + defb 0xFD, 0xFF, 0x34, 0xFF, 3, [dasm_FD_34], [dasm_FD_34]>>8, 2, 0x08, 0x80 ;INC (IY + d) + defb 0x05, 0xC7, 0x00, 0x00, 1, [dasm__DEC], [dasm__DEC]>>8, 1, 0x10 ;DEC r / DEC (HL) + defb 0xDD, 0xFF, 0x35, 0xFF, 3, [dasm_DD_35], [dasm_DD_35]>>8, 2, 0x08, 0x80 ;DEC (IX + d) + defb 0xFD, 0xFF, 0x35, 0xFF, 3, [dasm_FD_35], [dasm_FD_35]>>8, 2, 0x08, 0x80 ;DEC (IY + d) + ;16-Bit Arithmetic Group + defb 0x09, 0xCF, 0x00, 0x00, 1, [dasm_09], [dasm_09]>>8, 1, 0x11 ;ADD HL, ss + defb 0xED, 0xFF, 0x4A, 0xCF, 2, [dasm_ED_4A], [dasm_ED_4A]>>8, 1, 0x12 ;ADC HL, ss + defb 0xED, 0xFF, 0x42, 0xCF, 2, [dasm_ED_42], [dasm_ED_42]>>8, 1, 0x12 ;SBC HL, ss + defb 0xDD, 0xFF, 0x09, 0xCF, 2, [dasm_DD_09], [dasm_DD_09]>>8, 1, 0x12 ;ADD IX, ss + defb 0xFD, 0xFF, 0x09, 0xCF, 2, [dasm_FD_09], [dasm_FD_09]>>8, 1, 0x12 ;ADD IY, ss + defb 0x03, 0xCF, 0x00, 0x00, 1, [dasm_03], [dasm_03]>>8, 1, 0x11 ;INC ss + defb 0xDD, 0xFF, 0x23, 0xFF, 2, [dasm_DD_23], [dasm_DD_23]>>8, 0 ;INC IX + defb 0xFD, 0xFF, 0x23, 0xFF, 2, [dasm_FD_23], [dasm_FD_23]>>8, 0 ;INC IY + defb 0x0B, 0xCF, 0x00, 0x00, 1, [dasm_0B], [dasm_0B]>>8, 1, 0x11 ;DEC ss + defb 0xDD, 0xFF, 0x2B, 0xFF, 2, [dasm_DD_2B], [dasm_DD_2B]>>8, 0 ;DEC IX + defb 0xFD, 0xFF, 0x2B, 0xFF, 2, [dasm_FD_2B], [dasm_FD_2B]>>8, 0 ;DEC IY + ;16-Bit Load Group + defb 0x01, 0xCF, 0x00, 0x00, 3, [dasm_01], [dasm_01]>>8, 3, 0x11, 0x80, 0x09 ;LD dd, nn + defb 0xDD, 0xFF, 0x21, 0xFF, 4, [dasm_DD_01], [dasm_DD_01]>>8, 1, 0x0A ;LD IX, nn + defb 0xFD, 0xFF, 0x21, 0xFF, 4, [dasm_FD_01], [dasm_FD_01]>>8, 1, 0x0A ;LD IY, nn + defb 0x2A, 0xFF, 0x00, 0x00, 3, [dasm_2A], [dasm_2A]>>8, 2, 0x09, 0x80 ;LD HL, (nn) + defb 0xED, 0xFF, 0x4B, 0xCF, 4, [dasm_ED_4B], [dasm_ED_4B]>>8, 4, 0x12, 0x80, 0x0A, 0x81 ;LD dd, (nn) + defb 0xDD, 0xFF, 0x2A, 0xFF, 4, [dasm_DD_2A], [dasm_DD_2A]>>8, 1, 0x0A ;LD IX, (nn) + defb 0xFD, 0xFF, 0x2A, 0xFF, 4, [dasm_FD_2A], [dasm_FD_2A]>>8, 1, 0x0A ;LD IY, (nn) + defb 0x22, 0xFF, 0x00, 0x00, 3, [dasm_22], [dasm_22]>>8, 2, 0x0A, 0x80 ;LD (nn), HL + defb 0xED, 0xFF, 0x43, 0xCF, 4, [dasm_ED_43], [dasm_ED_43]>>8, 3, 0x0A, 0x80, 0x12 ;LD (nn), dd + defb 0xDD, 0xFF, 0x22, 0xCF, 4, [dasm_DD_22], [dasm_DD_22]>>8, 2, 0x0A, 0x80 ;LD (nn), IX + defb 0xFD, 0xFF, 0x22, 0xCF, 4, [dasm_FD_22], [dasm_FD_22]>>8, 2, 0x0A, 0x80 ;LD (nn), IY + defb 0xF9, 0xFF, 0x00, 0x00, 1, [dasm_F9], [dasm_F9]>>8, 0 ;LD SP, HL + defb 0xDD, 0xFF, 0xF9, 0xFF, 2, [dasm_DD_F9], [dasm_DD_F9]>>8, 0 ;LD SP, IX + defb 0xFD, 0xFF, 0xF9, 0xFF, 2, [dasm_FD_F9], [dasm_FD_F9]>>8, 0 ;LD SP, IY + defb 0xC5, 0xCF, 0x00, 0x00, 1, [dasm_E5], [dasm_E5]>>8, 1, 0x13 ;PUSH qq + defb 0xDD, 0xFF, 0xE5, 0xFF, 2, [dasm_DD_E5], [dasm_DD_E5]>>8, 0 ;PUSH IX + defb 0xFD, 0xFF, 0xE5, 0xFF, 2, [dasm_FD_E5], [dasm_FD_E5]>>8, 0 ;PUSH IY + defb 0xC1, 0xCF, 0x00, 0x00, 1, [dasm_E1], [dasm_E1]>>8, 1, 0x13 ;POP qq + defb 0xDD, 0xFF, 0xE1, 0xFF, 2, [dasm_DD_E1], [dasm_DD_E1]>>8, 0 ;POP IX + defb 0xFD, 0xFF, 0xE1, 0xFF, 2, [dasm_FD_E1], [dasm_FD_E1]>>8, 0 ;POP IY + + +dasm_00: db "NOP",0x00 +;JUMP Group +dasm_C3: db "JP ",0x00,", ",0x00 +dasm_18: db "JR ",0x00 +dasm_38: db "JR C, ",0x00 +dasm_30: db "JR NC, ",0x00 +dasm_28: db "JR Z, ",0x00 +dasm_20: db "JR NZ, ",0x00 +dasm_E9: db "JP (HL) ",0x00 +dasm_DD: db "JP (IX) ",0x00 +dasm_FD: db "JP (IY) ",0x00 +dasm_10: db "DJNZ ",0x00 +;Call and Return Group +dasm_CD: db "CALL ",0x00 +dasm_C9: db "RET ",0x00 +dasm_ED_4D: db "RETI",0x00 +dasm_ED_45: db "RETN",0x00 +dasm_FF: db "RST ",0x00 +;8-Bit load group +dasm_0A: db "LD A,(BC)",0x00 +dasm_1A: db "LD A,(DE)",0x00 +dasm_3A: db "LD A,(",0x00, "h)",0x00 +dasm_02: db "LD (BC), A",0x00 +dasm_12: db "LD (DE), A",0x00 +dasm_32: db "LD (",0x00, "h), A",0x00 +dasm__LD: db "LD ",0x00 +dasm__ED_57: db "LD A, I",0x00 +dasm__ED_5F: db "LD A, R",0x00 +dasm__ED_47: db "LD I, A",0x00 +dasm__ED_4F: db "LD R, A",0x00 +;General-Purpose Arithmetic and CPU Control Groups +dasm_27: db "DAA",0x00 +dasm_2F: db "CPL",0x00 +dasm_ED_44: db "NEG",0x00 +dasm_3F: db "CCF",0x00 +dasm_37: db "SCF",0x00 +dasm_76: db "HALT",0x00 +dasm_F3: db "DI",0x00 +dasm_FB: db "EI",0x00 +dasm_ED_46: db "IM 0",0x00 +dasm_ED_56: db "IM 1",0x00 +dasm_ED_5E: db "IM 2",0x00 +;Exchange, Block Transfer, and Search Group +dasm_BE: db "EX DE, HL",0x00 +dasm_08: db "EX AF, AF′",0x00 +dasm_D9: db "EXX",0x00 +dasm_E3: db "EX (SP), HL",0x00 +dasm_DD_E3: db "EX (SP), IX",0x00 +dasm_FD_E3: db "EX (SP), IY",0x00 +dasm_ED_A0: db "LDI",0x00 +dasm_ED_B0: db "LDIR",0x00 +dasm_ED_A8: db "LDD",0x00 +dasm_ED_B8: db "LDDR",0x00 +dasm_ED_A1: db "CPI",0x00 +dasm_ED_B1: db "CPIR",0x00 +dasm_ED_A9: db "CPD",0x00 +dasm_ED_B9: db "CPDR",0x00 +;8-Bit Arithmetic Group +dasm_80C6: db "ADD A, ", 0x00 +dasm_DD_86: db "ADD A, (IX+", 0x00, "h)",0x00 +dasm_FD_86: db "ADD A, (IY+", 0x00, "h)",0x00 +dasm_C88E: db "ADC A, ", 0x00 +dasm_DD_8E: db "ADC A, (IX+", 0x00, "h)",0x00 +dasm_FD_8E: db "ADC A, (IY+", 0x00, "h)",0x00 +dasm__SUB: db "SUB ", 0x00 +dasm_DD_96: db "SUB (IX+", 0x00, "h)",0x00 +dasm_FD_96: db "SUB (IY+", 0x00, "h)",0x00 +dasm__SBC: db "SBC A, ", 0x00 +dasm_DD_9E: db "SBC A,(IX+", 0x00, "h)",0x00 +dasm_FD_9E: db "SBC A,(IY+", 0x00, "h)",0x00 +dasm__AND: db "AND ", 0x00 +dasm_DD_A6: db "AND (IX+", 0x00, "h)",0x00 +dasm_FD_A6: db "AND (IY+", 0x00, "h)",0x00 +dasm__OR: db "OR ", 0x00 +dasm_DD_B6: db "OR (IX+", 0x00, "h)",0x00 +dasm_FD_B6: db "OR (IY+", 0x00, "h)",0x00 +dasm__XOR: db "XOR ", 0x00 +dasm_DD_AE: db "XOR (IX+", 0x00, "h)",0x00 +dasm_FD_AE: db "XOR (IY+", 0x00, "h)",0x00 +dasm__CP: db "CP ", 0x00 +dasm_DD_BE: db "CP (IX+", 0x00, "h)",0x00 +dasm_FD_BE: db "CP (IY+", 0x00, "h)",0x00 +dasm__INC: db "INC ", 0x00 +dasm_DD_34: db "INC (IX+", 0x00, "h)",0x00 +dasm_FD_34: db "INC (IY+", 0x00, "h)",0x00 +dasm__DEC: db "DEC ", 0x00 +dasm_DD_35: db "DEC (IX+", 0x00, "h)",0x00 +dasm_FD_35: db "DEC (IY+", 0x00, "h)",0x00 +;16-Bit Arithmetic Group +dasm_09: db "ADD HL, ",0x00 +dasm_ED_4A: db "ADC HL, ",0x00 +dasm_ED_42: db "SBC HL, ",0x00 +dasm_DD_09: db "ADD IX, ",0x00 +dasm_FD_09: db "ADD IY, ",0x00 +dasm_03: db "INC ",0x00 +dasm_DD_23: db "INC IX, ",0x00 +dasm_FD_23: db "INC IY, ",0x00 +dasm_0B: db "DEC ",0x00 +dasm_DD_2B: db "DEC IX, ",0x00 +dasm_FD_2B: db "DEC IY, ",0x00 +;16-Bit Load Group +dasm_01: db "LD ",0x00, ", ",0x00 +dasm_DD_01: db "LD IX, ",0x00 +dasm_FD_01: db "LD IY, ",0x00 +dasm_2A: db "LD HL, (",0x00,"h)",0x00 +dasm_ED_4B: db "LD ",0x00,", (",0x00,"h)",0x00 +dasm_DD_2A: db "LD IX, (",0x00,"h)",0x00 +dasm_FD_2A: db "LD IY, (",0x00,"h)",0x00 +dasm_22: db "LD (",0x00,"h), HL",0x00 +dasm_ED_43: db "LD (",0x00,"h), ",0x00 +dasm_DD_22: db "LD (",0x00,"h), IX",0x00 +dasm_FD_22: db "LD (",0x00,"h), IY",0x00 +dasm_F9: db "LD SP, HL",0x00 +dasm_DD_F9: db "LD SP, IX",0x00 +dasm_FD_F9: db "LD SP, IY",0x00 +dasm_E5: db "PUSH ",0x00 +dasm_DD_E5: db "PUSH IX",0x00 +dasm_FD_E5: db "PUSH IY",0x00 +dasm_E1: db "PUSH ",0x00 +dasm_DD_E1: db "PUSH IX",0x00 +dasm_FD_E1: db "PUSH IY",0x00 + +;Misc +dasm_UU: db ".?.",0x00 +dasm_UW: db " ",0x00 + +dasm_printFlags_table: + db "NZ" + db "Z",0 + db "NC" + db "C",0 + db "PO" + db "PE" + db "P",0 + db "M",0 + +dasm_printRegister8_table: + db "B" + db "C" + db "D" + db "E" + db "H" + db "L" + db "S" ;only 18 bit (SP) + db "P" ;only 18 bit (SP) + +dasm_printRegisterIX_table: + db "BC" + db "DE" + db "IX" + db "SP" +dasm_printRegisterIY_table: + db "BC" + db "DE" + db "IY" + db "SP" + +dasm_printRegisterSP_table: + db "BC" + db "DE" + db "HL" + db "AF" + +dasm_printRegister8_table_HL: + db "(HL)", 0 \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/include/keyboard.s b/OperatingSystem/monitor_v2/include/keyboard.s new file mode 100644 index 0000000..3212e20 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/keyboard.s @@ -0,0 +1,158 @@ +;---------------------------------------------------------------- +;Keyboard input library for Z8C +;by Dennis Gunia (04/2022) +;---------------------------------------------------------------- + +var_ps2_extension equ var_ps2mem+4 ;extension code +var_ps2_shift equ var_ps2mem+5 ;shift down = 0xFF, up = 0x00 +var_ps2_raw equ var_ps2mem+6 ;raw scan code + +keybd_read: + xor a + ld (var_ps2_extension), a + call keybd_read_wait + cp 0xE0 + jr z, keybd_read_extended ;handle extended scancodes + cp 0xE1 + jr z, keybd_read_extended_E1 ;handle extended scancodes for stupid pause button .... + ;else fall through to keybd_read_simple + +keybd_read_simple: + cp 0xF0 ;check if break + jr z, keybd_read_break ;handle break code logic + cp 0x12 + jr z, keybd_shift_down + cp 0x59 + jr z, keybd_shift_down + ;else process key + jr keybd_read_return + +keybd_read_extended: + ld (var_ps2_extension), a ;store first byte to ram + call keybd_read_wait ;read key + cp 0xF0 ;check if break + jr z, keybd_read_break_extended ;handle break code logic + ;else process key + jr keybd_read_return + +keybd_read_extended_E1: ;pause key + call keybd_read_wait ;read realeased key + call keybd_read_wait ;read realeased key + call keybd_read_wait ;read realeased key + call keybd_read_wait ;read realeased key + call keybd_read_wait ;read realeased key + call keybd_read_wait ;read realeased key + ;fall-thorugh for last byte +keybd_read_break_extended: + call keybd_read_wait ;read realeased key + jr keybd_read + +keybd_read_break: + call keybd_read_wait ;read realeased key + cp 0x12 + jr z, keybd_shift_up + cp 0x59 + jr z, keybd_shift_up + jp keybd_read + +keybd_read_return: + ;a contains scan code + ret + + +keybd_shift_down: + ld a,0x01 + ld (var_ps2_shift),a + jr keybd_read +keybd_shift_up: + xor a + ld (var_ps2_shift),a + jr keybd_read + + +;wait for keyboard input +keybd_read_wait: + call keyboard_read + jr z, keybd_read_wait ;read again if error + ret + + +keybd_read_ascii: + call keybd_read + ;push af + ;call print_a_hex + ;pop af + + ld ix, [keybd_lut] ;LUT base address + ld bc, 4 ;increments + ld d, a ;Load scancode into d +keybd_read_ascii_seekloop: + ld a, (ix) ;load scancode from table + or a ;test if scancode is 0x00 -> indicates end of list + jr z, keybd_read_ascii_notfound ;reached end of list wizhout match + cp d ;compare scancode + jr z, keybd_read_ascii_match ;found entry + add ix,bc + jr keybd_read_ascii_seekloop + +keybd_read_ascii_match: + ld b,0 + ld a, (var_ps2_shift) ;if shift offset+1 + inc a ;add ofset for column1 + ld c,a + add ix,bc ;add column address to row address + ld a,(ix) + ret + +keybd_read_ascii_notfound: + jr keybd_read_ascii + +keybd_lut: + defb 0x1C, "a", "A", "@" + defb 0x32, "b", "B", 0x00 + defb 0x21, "c", "C", 0x00 + defb 0x23, "d", "D", 0x00 + defb 0x24, "e", "E", 0x00 + defb 0x2B, "f", "F", 0x00 + defb 0x34, "g", "G", 0x00 + defb 0x33, "h", "H", 0x00 + defb 0x43, "i", "I", 0x00 + defb 0x3B, "j", "J", 0x00 + defb 0x42, "k", "K", 0x00 + defb 0x4B, "l", "L", 0x00 + defb 0x3A, "m", "M", 0x00 + defb 0x31, "n", "N", 0x00 + defb 0x44, "o", "O", 0x00 + defb 0x4D, "p", "P", 0x00 + defb 0x15, "q", "Q", 0x00 + defb 0x2D, "r", "R", 0x00 + defb 0x1B, "s", "S", 0x00 + defb 0x2C, "t", "T", 0x00 + defb 0x3C, "u", "U", 0x00 + defb 0x2A, "v", "V", 0x00 + defb 0x1D, "w", "W", 0x00 + defb 0x22, "x", "X", 0x00 + defb 0x1A, "y", "Y", 0x00 + defb 0x35, "z", "Z", 0x00 + defb 0x45, "0", "=", "}" + defb 0x16, "1", "!", 0x00 + defb 0x1E, "2", 0x22, 0x00 + defb 0x26, "3", "3", 0x00 + defb 0x25, "4", "$", 0x00 + defb 0x2E, "5", "%", 0x00 + defb 0x36, "6", "&", 0x00 + defb 0x3D, "7", "/", "{" + defb 0x3E, "8", "(", "[" + defb 0x46, "9", ")", "]" + defb 0x41, ",", ";", 0x00 + defb 0x49, ".", ":", 0x00 + defb 0x4A, "-", "_", 0x00 + defb 0x5D, "#", "'", 0x00 + defb 0x5B, "+", "*", "~" + defb 0x4E, "s", "?", 0x5C + defb 0x61, "<", ">", "|" + defb 0x5A, 13, 13, 13 ;enter + defb 0x66, 0x08, 0x08, 0x08 ;backspace + defb 0x29, " ", " ", 0x00 ;space + defb 0x00 ;end of LUT + \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/include/parity.s b/OperatingSystem/monitor_v2/include/parity.s new file mode 100644 index 0000000..015e052 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/parity.s @@ -0,0 +1,16 @@ +; a contains data +; bc destroied +; carry is set if odd, reset if even +calc_parity: + ld c,0 ;parity data + ld b,8 ;bit counter +calc_parity_loop: + rrca + jr nc,calc_parity_loop_2 ;if not zero then skip increment + inc c +calc_parity_loop_2: + djnz calc_parity_loop + ld a,c + rra ;carry is set to bit 0 of high-counter. + ;if bit1 is set -> odd # of 1s else even # of 1s + ret \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/include/rst.s b/OperatingSystem/monitor_v2/include/rst.s new file mode 100644 index 0000000..1c7c9e4 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/rst.s @@ -0,0 +1,22 @@ +EXEC_RST_08: + call print_char + ret + + +EXEC_RST_10: + push bc + push de + push hl + ;call vdp_cursor_on + call read_char + push af + ;call vdp_cursor_off + pop af + pop hl + pop de + pop bc + ret + +EXEC_RST_18: + ld a,0 + ret diff --git a/OperatingSystem/monitor_v2/include/vt82c42.s b/OperatingSystem/monitor_v2/include/vt82c42.s new file mode 100644 index 0000000..ddea613 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/vt82c42.s @@ -0,0 +1,96 @@ +;---------------------------------------------------------------- +;Keyboard interface driver for Z8C +;Controller used: vt82c42 +;Datasheet: http://www.s100computers.com/My%20System%20Pages/MSDOS%20Board/vt82c42%20PC%20Keyboard%20conrtroller.pdf +;by Dennis Gunia (04/2022) +;---------------------------------------------------------------- + +;IO Ports +CS_VT82C42_DATA .EQU F0h +CS_VT82C42_CTRL .EQU F1h + +keyboard_init_io: ;Subroutine for initializing keyboard controller + LD A, A7h ;Disable Mouse + OUT (CS_VT82C42_CTRL), A + LD A, ADh ;Disable Keyboard + OUT (CS_VT82C42_CTRL), A +_keyboard_init_flush_buffer: + IN A,(CS_VT82C42_DATA) ;Read buffer + IN A,(CS_VT82C42_CTRL) ;Read status byte + BIT 0,A ;Test if buffer is empty + JR Z, _keyboard_init_flush_buffer + ;buffer is now flushed. Now set the Controller Configuration Byte + IN A,(CS_VT82C42_CTRL) ;Disable bits 0,1,6 (disablee IRQ and Translation) + AND 10111100 + OUT (CS_VT82C42_CTRL),A + ;Perform Controller Self Test + LD A, AAh + OUT (CS_VT82C42_CTRL), A + NOP + IN A,(CS_VT82C42_CTRL) ;Check results + CP 55h + JR NZ, keyboard_init_failed + ;Perform Interface Tests + LD A, ABh + OUT (CS_VT82C42_CTRL), A + NOP + IN A,(CS_VT82C42_CTRL) ;Check results + CP 00h + JR NZ, _keyboard_init_failed + ;Enable Devices + LD A,AEh + OUT (CS_VT82C42_CTRL), A + ;Reset Devices + LD A,FFh + OUT (CS_VT82C42_DATA), A ;Send reset to keboard (0xFF command) + NOP + IN A,(CS_VT82C42_CTRL) ;Read status byte + BIT 0,A ;Test if buffer is empty -> no keyboard found + JP NZ, _keyboard_init_dev_missing + CP A, 0xFC + JR Z, _keyboard_init_okay ; 0xFC -> Success. Init done! + ;Else device error + LD HL, [STR_keyboard_init_failed] + CALL print_str + HALT +_keyboard_init_failed: + LD HL, [STR_keyboard_init_err] + CALL print_str + HALT +_keyboard_init_dev_missing: + LD HL, [STR_keyboard_init_missing] + CALL print_str + HALT +_keyboard_init_okay: + LD HL, [STR_keyboard_init_okay] + CALL print_str + RET + +;Keyboard IO functions +keyboard_read: + IN A,(CS_VT82C42_CTRL) ;Read status byte + BIT 0,A ;Test if buffer is empty + RET NZ ;Return if empty + IN A,(CS_VT82C42_DATA) + RET ;Return with data in A + +keyboard_write: + PUSH AF +_keyboard_write_wait: + IN A,(CS_VT82C42_CTRL) ;Read status byte + BIT 1,A ;Test if buffer is full + JR Z, _keyboard_write_wait ;Wait if input buffer is full + POP AF + OUT (CS_VT82C42_DATA), A + RET + + +;Status message strings +STR_keyboard_init_okay: + .BYTE "PS/2 Keyboard initialized.",0 +STR_keyboard_init_err: + .BYTE "PS/2 Controller error! System HALT!",0 +STR_keyboard_init_failed: + .BYTE "PS/2 Keyboard error! System HALT!",0 +STR_keyboard_init_missing: + .BYTE "PS/2 no keyboard found!",0 \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/include/xmodem.s b/OperatingSystem/monitor_v2/include/xmodem.s new file mode 100644 index 0000000..010dbc7 --- /dev/null +++ b/OperatingSystem/monitor_v2/include/xmodem.s @@ -0,0 +1,286 @@ +;------------------------------------------------------------------------- +; Z80 XMODEM implementation by Dennis Gunia +; 2022 - www,dennisgunia.de +; +; important doc: https://web.mit.edu/6.115/www/amulet/xmodem.htm +; http://www.blunk-electronic.de/train-z/pdf/xymodem.pdf +;------------------------------------------------------------------------- + +;Symbols +SYM_SOH equ 0x01 +SYM_EOT equ 0x04 +SYM_ACK equ 0x06 +SYM_NAK equ 0x15 +SYM_ETB equ 0x17 +SYM_CAN equ 0x18 +SYM_C equ 0x43 + +;Memory locations +MEM_VAR_BLOCK equ 0x40FB ;last block +MEM_VAR_TIMEA equ 0x40FC ;timer var (mills) +MEM_VAR_TIMER equ 0x40FE ;timer var (seconds) +MEM_INT_VEC_T equ 0x40FE ;interrupt vector table + +MEM_LOC_LOAD equ 0x4400 ;load location for program + +;XMODEM routine +xmodem_init: + call A_RTS_OFF + + LD A,10100111b ; Init CTC Channel 3 + OUT (CS_CTC_2),A + LD A,14 ; 1028.57Hz ISR + OUT (CS_CTC_2),A + LD A,00h ; Set CTC Ch3 Interrupt Vector + OUT (CS_CTC_0),A + ;load int vector to ram + ld hl,xmodem_int ;CTC Ch3 INT routine + ld (0x4200 + 0x04),hl + ;reset timer vars + ld hl,0x0000 + ld (MEM_VAR_TIMEA),hl + ld (MEM_VAR_TIMER),hl + + ld a,0x42 ; Set interrupt vector register + ld i,a + im 2 ; Z80 Interrupt mode + + ld hl,MSG_START ; Print start banner + call print_str + ei ; Enable interrupts + ; init done. Continue with xmodem_await_conn + call xmodem_wait + +xmodem_await_conn: ;Wait for initial connection + ld a, SYM_C ;Send C to notify sender, that we want CRC + call xmodem_out + call xmodem_read_wait ;Read with timeout + jp c, xmodem_await_conn ;Carry flag set = timeout -> repeat + ;else continue + +xmodem_packet: ;XmodemCRC packet start + ;use 1st byte to decide further processing + cp SYM_EOT ;End of Transmission + jp z, xmodem_packet_EOT + cp SYM_CAN ;Cancel (Force receiver to start sending C's) + jp z, xmodem_await_conn + cp SYM_SOH ;Start of + jp z, xmodem_packet_get + + jp xmodem_err ;anything else is an error -> abort transmission + +xmodem_packet_get: ;if first byte == SYM_SOH -> receive block + call xmodem_read_wait ;get byte 2 => block ID + jp c, xmodem_nak + ld b,a + ld (MEM_VAR_BLOCK), a ;store block id to memory + call xmodem_read_wait ;get byte 3 => block ID complement + jp c, xmodem_nak + add b + cp 255 ;both size infos should always sum to 255 + jp nz,xmodem_err ;if not 255 then its an error + + ;calculate block start address in RAM + ;multiply by 128 + ;use more efficient bit-wise operations + dec a ;a-1 to remove 1 sector offset + ld a,b + rra ;shift 1 bit to the right + and 0x7F + ld h,a + ld a,b + dec a ;a-1 to remove 1 sector offset + rrca ;shift bit0 to bit 7 + and 0x80 ;mask out all other bits + ld l,a + ;result: + ;hl = 0aaaaaaa a000000 + + ld de,MEM_LOC_LOAD + add hl,de ;add calculated offset to base address + ;hl now contains the true start address of this sector + + ld b,128 ;preload counter for data baytes + ld c,0 ;packet length counter ( used for overflow error ) + +xmodem_packet_get_data: ;get 128 data bytes (loop) + push hl ;push hl onto stack because xmodem_read_wait destroys hl + call xmodem_read_wait ;read byte or timeout + jp c, xmodem_nak ;if timeout -> nak and retry + pop hl ;restore hl + ld (hl), a ;store received byte in memory + inc hl ;increment pointer + inc c ;increment packet length counter + dec b ;decerment data bytes remmaining + jp nz, xmodem_packet_get_data ;if bytes remaining, loop + ;else continue with crc bytes + +xmodem_packet_get_crc: ;get 16-Bit CRC + call xmodem_read_wait + jp c, xmodem_nak + ld d,a + inc c + call xmodem_read_wait + jp c, xmodem_nak + ld e,a + inc c + ;de now contains CRC value + ;check if c is not bigger than 130 byte (128 data + 2crc) + ;TODO if so NACK + + ;de contains 16-bit CRC + ;TODO if crc error NACK + jp xmodem_ack ;ack block -> then jump to start again + +xmodem_packet_EOT: ;End of transmission SUB. + ld a, SYM_ACK ;Acknowledge EOT + call xmodem_out + jp xmodem_end ;and end xmodem + + + +xmodem_err: ;non recoverable error -> abort + ld a, SYM_CAN + call xmodem_out + ld a, SYM_CAN + call xmodem_out + ld a, SYM_CAN + call xmodem_out + ld a, SYM_CAN + call xmodem_out + ld a, SYM_CAN + call xmodem_out + ld a, SYM_CAN + call xmodem_out + ld a, SYM_CAN + call xmodem_out + ld a, SYM_CAN + call xmodem_out + ld a, SYM_CAN + call xmodem_out + ld a, SYM_CAN + call xmodem_out + ld a, SYM_CAN + + ld hl, MSG_ERROR + call print_str + + ;overflow to end +xmodem_end: + di ;disable interrupts + call print_newLine ;print new line + jp PROMPT_BEGIN ;return ti prompt + +;isr is used as counter for timeouts +xmodem_int: + di ;setup ISR (disable further interrupts, exchange registers) + ex AF,AF' + exx + + ld hl,(MEM_VAR_TIMEA) ;millis counter + inc hl + ld (MEM_VAR_TIMEA),hl + + ld de,1028 ;every 1028 millis counter + sbc hl,de + jp nz, xmodem_int_cont ;if less than 1028 millis, loop + + ld hl,0 ;reset millis + ld (MEM_VAR_TIMEA),hl + ld hl,(MEM_VAR_TIMER) ;incement seconds + inc hl + ld (MEM_VAR_TIMER),hl +xmodem_int_cont: ;end isr + ex AF,AF' ;restore registers + exx + EI ;enable interrupts + reti ;exit ISR + + + + + +; A returns char +; Carry is set if timeout +xmodem_read_timeount equ 3 ;3 seconds timeout +xmodem_read_wait: + di + ld hl,0 + ld (MEM_VAR_TIMEA),hl + ld (MEM_VAR_TIMER),hl + ei + call A_RTS_ON +xmodem_read_wait_loop: + ;check timeout + ld hl,(MEM_VAR_TIMER) + ld a, l + cp xmodem_read_timeount + jp z, xmodem_read_wait_timeout ;if timeout retry + + ; if no timeout + xor a ; a = 0 + out (CS_SIO_A_C), a ; select reg 0 + in a, (CS_SIO_A_C) ; read reg 0 + and 1 ; mask D0 (recieve char available) + jp Z,xmodem_read_wait_loop ; wait if no char + + ; if char avail + in a, (CS_SIO_A_D) ; read char + ;call debug_a_hex + push af + call A_RTS_OFF + pop af + scf + ccf + ret ; return +xmodem_read_wait_timeout: + scf + ret + + +xmodem_out: + out (CS_SIO_A_D), a + call xmodem_wait_out + ret + +xmodem_wait_out: + sub a ;clear a, write into WR0: select RR0 + inc a ;select RR1 + out (CS_SIO_A_C),A + in A,(CS_SIO_A_C) ;read RRx + bit 0,A + jr z,xmodem_wait_out + ret + +MSG_ERROR: + db "Error: unexpected byte",13,10,0 + +MSG_START: + db "Await xmodem connection",13,10,0 + + +xmodem_ack: ;ack routine. Only use when expecting transmission afterwards. + ld a, SYM_ACK ;send ACK + call xmodem_out + call xmodem_read_wait ;wait for response + jp c, xmodem_ack ;if timeout repeat + jp xmodem_packet ;if received, continue with new packet + +xmodem_nak: ;nak routine. Only use when expecting transmission afterwards. + ld a, SYM_NAK ;send NAK + call xmodem_out + call xmodem_read_wait ;wait for response + jp c, xmodem_nak ;if timeout repeat + jp xmodem_packet ;if received, continue with new packet + +xmodem_wait: + ld hl, 0xFF + ld bc, 0x01 +xmodem_wait_1: + nop + nop + nop + nop + sbc hl,bc + ret Z + jr xmodem_wait_1 \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/main.asm b/OperatingSystem/monitor_v2/main.asm new file mode 100644 index 0000000..6247f5b --- /dev/null +++ b/OperatingSystem/monitor_v2/main.asm @@ -0,0 +1,489 @@ +SYS_RAM_START equ 0x4000 +SYS_BUF_START equ 0x4010 +PRG_RAM_START equ 0x4110 +PRG_RAM_TOP equ 0xFF00 +STACK_RAM_TOP equ 0xFFFF + +;VAR_CONSOLE_CONF equ 0x07 ;CLK/TRG Clock @ 1843220.5/s +VAR_CONSOLE_CONF equ 0x0F ;CPU/16 Clock @ 230402.5625/s + +VAR_CONSOLE_BAUD equ 24 ;BAUD timer constant + ;CLK/TRG Clock @ 1843220.5/s + ; -> 0x16 : 14400 + ;CPU/16 Clock @ 230402.5625/s + ; -> 12 : 19200 + ; -> 24 : 9600 + +; include IO device addresses +.include "addresses.s" + + org 0x0000 +RST_00: ;Hardware Restart + jp mon_start_init_sound + + org 0x0008 +RST_08 ;Print Char + jp EXEC_RST_08 + + org 0x0010 +RST_10 ;receive char + jp EXEC_RST_10 + + org 0x0018 +RST_18 ;Buffer length + jp EXEC_RST_18 + + +INT_VEC: + org 0x0044 + ;DEFW EXEC_INT_VDP + +;memory var template +mon_var_template: + phase SYS_RAM_START + +var_buffer_len: + defb 0 +var_last_char: + defb 0 +var_curserx: + defb 0 +var_cursery: + defb 0 +var_curserstate: + defb 0 +var_curseron: + defb 0 +var_curserchar: + defb 0 +var_curserlastaddr: + defw 0 +var_scratch: + defs 16 ;16 bytes space for scratch vars +var_ps2mem: + defs 16 ;16 bytes space for scratch vars +var_buffer: + defb 0 ;var lentgh + +mon_var_template_end: + dephase +;end memory var template + org 0x0050 +mon_start_init_sound: + ;CALL BTLDR_ENTRY ;call bootloader first + ;ld D,0x08 ; Select register #8 + ;ld A,0x00 ; Volume channel A 0 + ;call AY0_WRITE_REG + ;ld D,0x09 ; Select register #9 + ;ld A,0x00 ; Volume channel B 0 + ;call AY0_WRITE_REG + ;ld D,0x0A ; Select register #10 + ;ld A,0x00 ; Volume channel C 0 + ;call AY0_WRITE_REG + +mon_start_init_ctc: + ld sp, 0xffff + ; 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 + ; Init CTC Channel 2 + ;LD A,10100111b + ;OUT (IO_CTC0_C2),A + ;LD A,0x34 ; 55Hz ISR + ;LD A,0xFF ; 55Hz ISR + ;OUT (IO_CTC0_C2),A + + xor a + ;ld i, a + ;im 2 ;set int mode 2 + + ld (var_curserstate),a + ld (var_curseron),a + ld a, " " + ld (var_curserchar),a + + + ;ei ; Enable Interrupts + + ;jr mon_start_ram ;skip serial, cause not used atm +mon_start_init_serial: + call CONSOLE_INIT +mon_start_ram: + ld hl,mon_var_template + ld de,mon_var_template_end + ld bc,SYS_RAM_START +mon_start_ram_loop: + ld a,(hl) ;copy values + ld (bc),a + inc hl + inc bc + push hl ;check if end is reached + sbc hl,de + pop hl + jp nz, mon_start_ram_loop + ;template copy done + +mon_start_complete: + + ;call keyboard_init_io + ;call vdpconsole_init + + ;call print_str + + + ;jp splash_run + + ;jp ps2demo_run + ;call debug_init + ;call vdp_cursor_on + ;jp COLD + + call print_clear + ld hl, [STR_Banner_Start] + call print_str + + ;halt + + ;call vdp_cursor_on + call PROMPT_BEGIN + + ;halt CPU if prompt exits + halt + +; Misc Functions +AY0_WRITE_REG: + LD B,A + LD A,D + OUT (IO_AY0_ADDR),A + LD A,B + OUT (IO_AY0_DATA),A + RET + +PROMPT_BEGIN: + call print_newLine + ;call A_RTS_ON + ld a,'>' + call print_char + xor a ;reset buffer len + ld (var_buffer_len),a + +PROMPT_BEGIN_READ_LOOP: + call read_char + ;call keybd_read_ascii + jp z, PROMPT_BEGIN_READ_LOOP ; wait until char avail + push af + pop af + ; process special ops + cp 13 ; enter + jp z,PROMPT_BEGIN_READ_PROCESS + cp 10 + jp z, PROMPT_BEGIN_READ_LOOP; skip LF for file load + cp 0x08 ; backspace 0x08 VT102 0x7f Putty + jp z,PROMPT_BEGIN_READ_BACKSPACE + + push af + ; a contains latest char + ld hl,[var_buffer] + ld d,0 + ld a,(var_buffer_len) + ld e,a + add hl,de ;hl now contains pointer to last position in buffer + inc a + ld (var_buffer_len),a ;store incremented buffer length + + pop af + ld (hl),a + call print_char + inc hl + xor a ;a = 0 + ld (hl),a ;always add null termination after last char + jp PROMPT_BEGIN_READ_LOOP + +PROMPT_BEGIN_READ_BACKSPACE: + ld a,(var_buffer_len) + and a + jp z, PROMPT_BEGIN_READ_LOOP ; do not continue if already at char 0 + dec a ;decrement length + ld (var_buffer_len),a ;and store it + ld e,a ;load de with decremented value + ld d,0 + ld hl,[var_buffer] + add hl,de ;hl now contains pointer to last position in buffer + xor a ; store null byte to current location + ld (hl),a + ;call print_delete + ld a, 0x08 + call print_char + ld a, 0x20 + call print_char + ld a, 0x08 + call print_char + jp PROMPT_BEGIN_READ_LOOP + +PROMPT_BEGIN_READ_PROCESS: + ;call print_newLine + ;ld hl,var_buffer + ;call print_str + + ld a,([var_buffer]) + cp '$' ;jump to addr + jp z, CMD_EXEC + cp '?' ;print hexdump + jp z, CMD_VIEW + cp '!' ;set memory + jp z, CMD_SET + cp 'i' ;in IO + jp z, CMD_IO_READ + cp 'o' ;out IO + jp z, CMD_IO_WRITE + cp 'd' ;disassemble + jp z, CMD_DASM + cp 'x' ;start xmodem + jp z, xmodem_init + + + call print_newLine + ld hl, [STR_Unknown] + call print_str + jp PROMPT_BEGIN + + ret + +CMD_EXEC: + xor a ;write null byte to buffer pos 0 to prevent reexecute the last command + ld (var_buffer),a + + ld hl,var_buffer+1 ;load 1st byte + call DHEX_TO_BYTE + ld b,a ;store result in b + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + + ld hl,var_buffer+3 ;load 2nd byte + call DHEX_TO_BYTE + ld c,a + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + + ld h,b + ld l,c + jp (hl) + +CMD_VIEW: + call print_newLine + ld hl,var_buffer+1 ;load 1st byte + call DHEX_TO_BYTE + ld b,a ;store result in b + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + + ld hl,var_buffer+3 ;load 2nd byte + call DHEX_TO_BYTE + ld c,a + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + + + ld a,(var_buffer+5) + cp ' ' + jp nz, CMD_SYNTAX_ERROR + + ld hl,var_buffer+6 ;load length + call DHEX_TO_BYTE + push af + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + + ;draw header + ld hl,[STR_HEXDUMP_HEADER] + call print_str + + pop af + ;loading vars done. display results + ld h, b ;pointer to current byte + ld l, c ;pointer to current byte + ld b, a ;bytes counter + + ;draw row +CMD_VIEW_ROW: + call print_newLine + ld a,h ;print start + call print_a_hex + ld a,l + call print_a_hex + ld a, ' ' + call print_char + ld c, 8 ;column counter +CMD_VIEW_ROW_LOOP: + ld a,(hl) + call print_a_hex + + inc hl ;increment pointer + dec b ;decrement byte counter + dec c ;decrement column counter + + ld a,b + and a + jp z,CMD_VIEW_END ;if byte counter = 0 -> end reached + + ld a,c + and a + jp z,CMD_VIEW_ROW ;else if column counter = 0 -> 16 chars printed. next row + + ld a, ' ' + call print_char + jp CMD_VIEW_ROW_LOOP ;else +CMD_VIEW_END: + call print_newLine + jp PROMPT_BEGIN + +CMD_SET: + ld hl,var_buffer+1 ;load 1st byte + call DHEX_TO_BYTE + ld b,a ;store result in b + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + + ld hl,var_buffer+3 ;load 2nd byte + call DHEX_TO_BYTE + ld c,a + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + ;bc now contains the start address + + ld hl,var_buffer+5 +CMD_SET_LOOP: + ld a,(hl) + cp 0 ;if 0 then end + jp z, CMD_SET_END + cp ' ' + jp nz, CMD_SYNTAX_ERROR + inc hl ;next byte + call DHEX_TO_BYTE + ld (bc),a ;load byte to + ld a,e + and a + jp nz, CMD_SYNTAX_ERROR + inc bc + inc hl + inc hl + jp CMD_SET_LOOP +CMD_SET_END: + call print_newLine + jp PROMPT_BEGIN + + +CMD_IO_WRITE: + ld hl,var_buffer+1 ;load 1st byte + call DHEX_TO_BYTE + ld c,a ;store result in b + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + + ld a,(var_buffer+3) + cp ' ' + jp nz, CMD_SYNTAX_ERROR + + ld hl,var_buffer+4 ;load 1st byte + call DHEX_TO_BYTE + push af + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + + pop af + out (c),a + call print_newLine + jp PROMPT_BEGIN + +CMD_IO_READ: + ld hl,var_buffer+1 ;load 1st byte + call DHEX_TO_BYTE + ld c,a ;store result in b + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + + in a,(c) + push af + call print_newLine + pop af + call print_a_hex + call print_newLine + jp PROMPT_BEGIN + +CMD_DASM: + call print_newLine + ld hl,var_buffer+1 ;load 1st byte + call DHEX_TO_BYTE + ld b,a ;store result in b + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + + ld hl,var_buffer+3 ;load 2nd byte + call DHEX_TO_BYTE + ld c,a + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + + + ld a,(var_buffer+5) + cp ' ' + jp nz, CMD_SYNTAX_ERROR + + ld hl,var_buffer+6 ;load length + call DHEX_TO_BYTE + push af + ld a,e ;check for error + and a + jp nz, CMD_SYNTAX_ERROR + + ld h,b + ld l,c + + pop af ;restore af + ld b,a + + call disassemble + + + jp PROMPT_BEGIN + +CMD_SYNTAX_ERROR: + call print_newLine + ld hl, [STR_SyntaxError] + call print_str + jp PROMPT_BEGIN + + + +Includes: +;.include "bootldr.s" +.include "console.s" +.include "conversions.s" +;.include "basic.s" +.include "disassembler.s" +.include "disassembler_table.s" +.include "rst.s" +; Strings +STR_Banner_Start: + db "Z8C Monitor V2 by Dennis Gunia (2022)",0 +STR_SyntaxError: + db "syn?",0 +STR_Unknown: + db "cmd?",0 +STR_HEXDUMP_HEADER: + db 'BASE 0 1 2 3 4 5 6 7',0 + +.include "xmodem.s" +;.include "debug.s" \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/monitor.md b/OperatingSystem/monitor_v2/monitor.md new file mode 100644 index 0000000..f371c92 --- /dev/null +++ b/OperatingSystem/monitor_v2/monitor.md @@ -0,0 +1,55 @@ +# Z8C Monitor V2 +Monitor V2 is a less bloated monitor for my Z80 homebrew computer + +## System +* Z80 CPU @ 3.686411MHz +* 48k Ram +* TMS9918 VDP (not used for normal operations) +* 2x AY3-8901 +* Serial RS232 Ports + +not implemented yet but already present in hardware: +* PS/2 Keyboard Interface +* RTC72421B real time clock + +planned +* IDE interface +* 28J60 10Mbit ethernet interface +* dual joystick gameports + + +## Terminal +* `baud`: 19200 +* `mode`: 8N1 +* `parity`: none +* `temrinal`: vt102 +* `flow`: none / RTS(not implemented yet) + +## Commands +### View memory content +`? ` +* `addr`: word in hex -> start address of hexdump +* `len`: byte in hex -> length of hexdump + +### Write memory content +`! ,,...` +* `addr`: word in hex -> start address +* `byte`: byte in hex followed by space -> bytes to write to memory + +### Run program +`$` +* `addr`: word in hex -> start address of program + +### X-Modem +`x` +* `addr`: word in hex -> start address of recieved binary (at least 0x0420) + +### Write IO port +`w ` +* `addr`: byte in hex -> IO port address +* `len`: byte in hex -> data + +### Read IO port +`r` +* `addr`: byte in hex -> IO port address + diff --git a/OperatingSystem/monitor_v2/properties.env b/OperatingSystem/monitor_v2/properties.env new file mode 100644 index 0000000..8801668 --- /dev/null +++ b/OperatingSystem/monitor_v2/properties.env @@ -0,0 +1,5 @@ +export OPT_GEN_SYMBOLTABLE=1 +export OPT_GEN_MONFILE=0 +export OPT_GEN_OBJFILE=1 +export OPT_WRITEROM=1 +export FILENAME=main \ No newline at end of file diff --git a/OperatingSystem/monitor_v2/zout/main.bin b/OperatingSystem/monitor_v2/zout/main.bin new file mode 100644 index 0000000..19819ce Binary files /dev/null and b/OperatingSystem/monitor_v2/zout/main.bin differ diff --git a/OperatingSystem/monitor_v2/zout/main.hex b/OperatingSystem/monitor_v2/zout/main.hex new file mode 100644 index 0000000..dd6e956 --- /dev/null +++ b/OperatingSystem/monitor_v2/zout/main.hex @@ -0,0 +1,271 @@ +:03000000C35000EA +:03000800C3B60E6E +:03001000C3BA0E62 +:03001800C3C60E4E +: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 +:00000001FF diff --git a/OperatingSystem/monitor_v2/zout/main.lst b/OperatingSystem/monitor_v2/zout/main.lst new file mode 100644 index 0000000..648494b --- /dev/null +++ b/OperatingSystem/monitor_v2/zout/main.lst @@ -0,0 +1,2724 @@ + 1: - 4000 SYS_RAM_START equ 0x4000 + 2: - 4010 SYS_BUF_START equ 0x4010 + 3: - 4110 PRG_RAM_START equ 0x4110 + 4: - FF00 PRG_RAM_TOP equ 0xFF00 + 5: - FFFF STACK_RAM_TOP equ 0xFFFF + 6: + 7: ;VAR_CONSOLE_CONF equ 0x07 ;CLK/TRG Clock @ 1843220.5/s + 8: - 000F VAR_CONSOLE_CONF equ 0x0F ;CPU/16 Clock @ 230402.5625/s + 9: + 10: - 0018 VAR_CONSOLE_BAUD equ 24 ;BAUD timer constant + 11: ;CLK/TRG Clock @ 1843220.5/s + 12: ; -> 0x16 : 14400 + 13: ;CPU/16 Clock @ 230402.5625/s + 14: ; -> 12 : 19200 + 15: ; -> 24 : 9600 + 16: + 17: ; include IO device addresses + 18: .include "addresses.s" +**** include/addresses.s **** + 1: - 0000 CS_BANK equ 0000000b + 2: - 0001 CS_DIP equ 0000001b + 3: - 0004 CS_CTC_0 equ 0000100b + 4: - 0005 CS_CTC_1 equ 0000101b + 5: - 0006 CS_CTC_2 equ 0000110b + 6: - 0007 CS_CTC_3 equ 0000111b + 7: - 0008 CS_SIO_A_D equ 0001000b + 8: - 0009 CS_SIO_A_C equ 0001001b + 9: - 000A CS_SIO_B_D equ 0001010b + 10: - 000B CS_SIO_B_C equ 0001011b + 11: + 12: - 0020 IO_RTC_SEC0 equ 00100000b + 13: - 0021 IO_RTC_SEC1 equ 00100001b + 14: - 0022 IO_RTC_MIN0 equ 00100010b + 15: - 0023 IO_RTC_MIN1 equ 00100011b + 16: - 0024 IO_RTC_HOUR equ 00100100b + 17: - 0025 IO_RTC_AMPM equ 00100101b + 18: - 0026 IO_RTC_DAY0 equ 00100110b + 19: - 0027 IO_RTC_DAY1 equ 00100111b + 20: - 0028 IO_RTC_MON0 equ 00101000b + 21: - 0029 IO_RTC_MON1 equ 00101001b + 22: - 002A IO_RTC_YERR0 equ 00101010b + 23: - 002B IO_RTC_YEAR1 equ 00101011b + 24: - 002C IO_RTC_WEEK equ 00101100b + 25: - 002D IO_RTC_CTR_D equ 00101101b + 26: - 002E IO_RTC_CTR_E equ 00101110b + 27: - 002F IO_RTC_CTR_F equ 00101111b + 28: + 29: - 0040 IO_AY0_ADDR equ 01000000b ;64 + 30: - 0041 IO_AY0_DATA equ 01000001b ;65 + 31: - 0042 IO_AY1_ADDR equ 01000010b ;66 + 32: - 0043 IO_AY1_DATA equ 01000011b ;67 + 33: + 34: - 0000 START_ROM equ 0x0000 + 35: - 0020 IO_REG0 equ 0x20 + 36: + 37: - 0081 VDP_REG equ 0x81 + 38: - 0080 VDP_MEM equ 0x80 + 39: + 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 +**** main.asm **** + 19: + 20: - 0000 org 0x0000 + 21: - 0000 RST_00: ;Hardware Restart + 22: 0+10 0000 C35000 jp mon_start_init_sound + 23: + 24: - 0008 org 0x0008 + 25: - 0008 RST_08 ;Print Char + 26: 10+10 0008 C3B60E jp EXEC_RST_08 + 27: + 28: - 0010 org 0x0010 + 29: - 0010 RST_10 ;receive char + 30: 20+10 0010 C3BA0E jp EXEC_RST_10 + 31: + 32: - 0018 org 0x0018 + 33: - 0018 RST_18 ;Buffer length + 34: 30+10 0018 C3C60E jp EXEC_RST_18 + 35: + 36: + 37: - 001B INT_VEC: + 38: - 0044 org 0x0044 + 39: ;DEFW EXEC_INT_VDP + 40: + 41: ;memory var template + 42: - 0044 mon_var_template: + 43: - 4000 phase SYS_RAM_START + 44: + 45: - 4000 var_buffer_len: + 46: - 4000 00 defb 0 + 47: - 4001 var_last_char: + 48: - 4001 00 defb 0 + 49: - 4002 var_curserx: + 50: - 4002 00 defb 0 + 51: - 4003 var_cursery: + 52: - 4003 00 defb 0 + 53: - 4004 var_curserstate: + 54: - 4004 00 defb 0 + 55: - 4005 var_curseron: + 56: - 4005 00 defb 0 + 57: - 4006 var_curserchar: + 58: - 4006 00 defb 0 + 59: - 4007 var_curserlastaddr: + 60: - 4007 0000 defw 0 + 61: - 4009 var_scratch: + 62: - 4009 ..4018 00 defs 16 ;16 bytes space for scratch vars + 63: - 4019 var_ps2mem: + 64: - 4019 ..4028 00 defs 16 ;16 bytes space for scratch vars + 65: - 4029 var_buffer: + 66: - 4029 00 defb 0 ;var lentgh + 67: + 68: - 402A mon_var_template_end: + 69: - 006E dephase + 70: ;end memory var template + 71: - 0050 org 0x0050 + 72: - 0050 mon_start_init_sound: + 73: ;CALL BTLDR_ENTRY ;call bootloader first + 74: ;ld D,0x08 ; Select register #8 + 75: ;ld A,0x00 ; Volume channel A 0 + 76: ;call AY0_WRITE_REG + 77: ;ld D,0x09 ; Select register #9 + 78: ;ld A,0x00 ; Volume channel B 0 + 79: ;call AY0_WRITE_REG + 80: ;ld D,0x0A ; Select register #10 + 81: ;ld A,0x00 ; Volume channel C 0 + 82: ;call AY0_WRITE_REG + 83: + 84: - 0050 mon_start_init_ctc: + 85: 40+10 0050 31FFFF ld sp, 0xffff + 86: ; Set CTC Ch2 Interrupt Vector + 87: ;LD A,40h ; it vector defined in bit 7­3,bit 2­1 don't care, bit 0 = 0 + 88: ;OUT (IO_CTC0_C0),A + 89: ; Init CTC Channel 2 + 90: ;LD A,10100111b + 91: ;OUT (IO_CTC0_C2),A + 92: ;LD A,0x34 ; 55Hz ISR + 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 + 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 + 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 + 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: + 468: + 469: + 470: - 0270 Includes: + 471: ;.include "bootldr.s" + 472: .include "console.s" +**** include/console.s **** + 1: ;DIP SWICTHES + 2: ;1843200 CLK / x16 SIO CLOCK MODE = 115200 + 3: ;MAX BAUD RATE = 115200 + 4: ;DIP VALUE = 115200/ + 5: ; + 6: ;9600 -> 12 / 00110000 + 7: ; + 8: + 9: - 0270 CONSOLE_INIT: + 10: - 0270 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 + 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) + 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 + 43: ;Channel A RX active + 44: 2725+10 02A8 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 + 53: ;call print_char + 54: 2784+10 02B0 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 + 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 + 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 + 79: ; destroys a + 80: - 02CE 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 + 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 + 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 + 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 + 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 +**** main.asm **** + 473: 3308+10 0315 C9 ret + 474: .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 + 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 + 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 + 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 + 29: ;LD A,0x00 + 30: 3471+10 0334 E1 POP HL + 31: 3481+10 0335 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 + 50: + 51: + 52: ;***************** + 53: ; Convert Byte to Hex Char (ASCII) + 54: ;***************** + 55: ;Description: the StrLength function inline + 56: ; + 57: ;Inputs: A contains input byte + 58: ; + 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 + 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 + 73: ;LD A,D + 74: 3659+4 035A 4F LD C,A + 75: 3663+10 035B 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) + 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: + 86: ;LD D,A + 87: 3716+10 0366 C9 RET + 88: + 89: +**** main.asm **** + 475: ;.include "basic.s" + 476: .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 + 3: - 4114 var_opcode equ PRG_RAM_START+4 ;8 bit opcode value + 4: - 4115 var_opcode_x equ PRG_RAM_START+5 ;8 bit opcode extension value + 5: - 4116 var_opcode_length equ PRG_RAM_START+6 ;8 bit opcode length (in bytes) + 6: - 4117 var_opcode_string equ PRG_RAM_START+7 ;16 bit pointer to opcode string + 7: - 4119 var_opcode_pcount equ PRG_RAM_START+9 ;8 bit opcode param count + 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: + 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 + 28: + 29: 3846+20 0380 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 + 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 + 53: + 54: 4023+13 03A1 3A1641 ld a,(var_opcode_length) + 55: 4036+4 03A4 47 ld b, a + 56: + 57: ;print up to 4 opcode bytes + 58: 4040+16 03A5 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 + 65: + 66: 4094+7 03AF 3E68 ld a,"h" + 67: 4101+17 03B1 CDA902 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 + 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 + 83: + 84: 4230+11 03CD E5 push hl + 85: ;print opcode + 86: 4241+16 03CE 2A1741 ld hl,(var_opcode_string) + 87: 4257+17 03D1 CDB102 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 + 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: + 101: ;ld a,(hl) ;load param + 102: ;call print_a_hex + 103: 4355+7 03E6 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 + 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 + 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 + 154: + 155: - 044D disassemble_continue: + 156: + 157: 4765+17 044D CDC302 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 258: + 259: + 260: + 261: + 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 + 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 + 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 + 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 + 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) + 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 + 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 + 339: + 340: - 0545 param_03_done: + 341: 6100+17 0545 CD6706 call param_comma + 342: 6117+10 0548 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 + 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 + 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 + 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 + 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 + 391: + 392: 6511+17 058E CD4206 call param_printRegister + 393: 6528+10 0591 C1 pop bc + 394: 6538+10 0592 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 522: ;found + 523: 7515+4 0638 05 dec b ;found but counter too high + 524: 7519+10 0639 C23306 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 + 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 + 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 + 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 + 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 +**** main.asm **** + 477: 7846+10 0675 C9 ret + 478: .include "disassembler_table.s" +**** include/disassembler_table.s **** + 1: ;disassembler tables + 2: + 3: - 0676 dasm_opcode_table: + 4: ;byte 0 = opcode + 5: ;byte 1 = opcode mask + 6: ;byte 2 = opcode extended + 7: ;byte 3 = opcode extended mask + 8: ;byte 4 = length + 9: ;byte 5+6 = pointer to string + 10: ;byte 7 = params = count of paramters + 11: ;byte 8+ = paramters + 12: ; 0x01 16bit address pointer + 13: ; 0x02 flag bit 3-5 + 14: ; 0x03 relative jmp address + 15: ; 0x04 RETI/RETN + 16: ; 0x05 RST Vector + 17: ; 0x06 register (r) + 18: ; 0x07 register (r') + 19: ; 0x08 8-Bit value + 20: ; 0x09 16-Bit value + 21: ; 0x0A 16-bit value with offset +1 + 22: ; 0x10 same as 0x06 without "," + 23: ; 0x11 print 16 bit register from 1st byte + 24: ; 0x12 print 16 bit register from 2nd byte + 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 + 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 + 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 + 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 + 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 + 02210C00 + 57: - 073E EDFFB9FF defb 0xED, 0xFF, 0xB9, 0xFF, 2, [dasm_ED_B9], [dasm_ED_B9]>>8, 0 ;CPDR + 02250C00 + 58: + 59: ;JUMP Group + 60: - 0746 C3FF0000 defb 0xC3, 0xFF, 0x00, 0x00, 3, [dasm_C3], [dasm_C3]>>8,1, 0x01 ;JP nn + 03D20A01 + 01 + 61: - 074F C2C70000 defb 0xC2, 0xC7, 0x00, 0x00, 3, [dasm_C3], [dasm_C3]>>8,3, 0x02, 0x80, 0x01 ;JP cc,nn + 03D20A03 + 028001 + 62: - 075A 18FF0000 defb 0x18, 0xFF, 0x00, 0x00, 2, [dasm_18], [dasm_18]>>8,1, 0x03 ;JR e + 02D90A01 + 03 + 63: - 0763 38FF0000 defb 0x38, 0xFF, 0x00, 0x00, 2, [dasm_38], [dasm_38]>>8,1, 0x03 ;JR C,e + 02DD0A01 + 03 + 64: - 076C 30FF0000 defb 0x30, 0xFF, 0x00, 0x00, 2, [dasm_30], [dasm_30]>>8,1, 0x03 ;JR NC,e + 02E40A01 + 03 + 65: - 0775 28FF0000 defb 0x28, 0xFF, 0x00, 0x00, 2, [dasm_28], [dasm_28]>>8,1, 0x03 ;JR Z,e + 02EC0A01 + 03 + 66: - 077E 20FF0000 defb 0x20, 0xFF, 0x00, 0x00, 2, [dasm_20], [dasm_20]>>8,1, 0x03 ;JR NZ,e + 02F30A01 + 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 + 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 + 01 + 73: - 07B1 C4C70000 defb 0xC4, 0xC7, 0x00, 0x00, 3, [dasm_CD], [dasm_CD]>>8,2, 0x02, 0x01 ;CALL cc,nn + 031C0B02 + 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 + 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 + 78: + 79: - 07DC C7C70000 defb 0xC7, 0xC7, 0x00, 0x00, 1, [dasm_FF], [dasm_FF]>>8,1, 0x05 ;RST + 01310B01 + 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 + 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 + 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 + 91: + 92: - 0839 06C70000 defb 0x06, 0xC7, 0x00, 0x00, 2, [dasm__LD], [dasm__LD]>>8, 2, 0x06, 0x08 ;LD r, n + 02750B02 + 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 + 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 + 07 + 97: - 0856 C6FF0000 defb 0xC6, 0xFF, 0x00, 0x00, 2, [dasm_80C6], [dasm_80C6]>>8, 1, 0x08 ;ADD A, n + 022A0C01 + 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 + 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 + 0880 + 100: - 0873 C8F80000 defb 0xC8, 0xF8, 0x00, 0x00, 1, [dasm_C88E], [dasm_C88E]>>8, 1, 0x07 ;ADC A, r / ADC A, (HL) + 01500C01 + 07 + 101: - 087C 8EF80000 defb 0x8E, 0xF8, 0x00, 0x00, 2, [dasm_C88E], [dasm_C88E]>>8, 1, 0x08 ;ADC A, n + 02500C01 + 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 + 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 + 0880 + 104: - 0899 90F80000 defb 0x90, 0xF8, 0x00, 0x00, 1, [dasm__SUB], [dasm__SUB]>>8, 1, 0x07 ;SUB r / SUB A, (HL) + 01760C01 + 07 + 105: - 08A2 D6FF0000 defb 0xD6, 0xFF, 0x00, 0x00, 2, [dasm__SUB], [dasm__SUB]>>8, 1, 0x08 ;SUB n + 02760C01 + 08 + 106: - 08AB DDFF96FF defb 0xDD, 0xFF, 0x96, 0xFF, 3, [dasm_DD_96], [dasm_DD_96]>>8, 2, 0x08, 0x80 ;SUB (IX + d) + 037B0C02 + 0880 + 107: - 08B5 FDFF96FF defb 0xFD, 0xFF, 0x96, 0xFF, 3, [dasm_FD_96], [dasm_FD_96]>>8, 2, 0x08, 0x80 ;SUB (IY + d) + 03870C02 + 0880 + 108: - 08BF 94F80000 defb 0x94, 0xF8, 0x00, 0x00, 1, [dasm__SBC], [dasm__SBC]>>8, 1, 0x07 ;SBC A,r / SBC A, (HL) + 01930C01 + 07 + 109: - 08C8 DEFF0000 defb 0xDE, 0xFF, 0x00, 0x00, 2, [dasm__SBC], [dasm__SBC]>>8, 1, 0x08 ;SBC A,n + 02930C01 + 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) + 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 + 07 + 113: - 08EE E6FF0000 defb 0xE6, 0xFF, 0x00, 0x00, 2, [dasm__AND], [dasm__AND]>>8, 1, 0x08 ;AND A,n + 02B70C01 + 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 + 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 + 0880 + 116: - 090B B0F80000 defb 0xB0, 0xF8, 0x00, 0x00, 1, [dasm__OR], [dasm__OR]>>8, 1, 0x07 ;OR A,r / OR A, (HL) + 01D40C01 + 07 + 117: - 0914 F6FF0000 defb 0xF6, 0xFF, 0x00, 0x00, 2, [dasm__OR], [dasm__OR]>>8, 1, 0x08 ;OR A,n + 02D40C01 + 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 + 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 + 0880 + 120: - 0931 A8F80000 defb 0xA8, 0xF8, 0x00, 0x00, 1, [dasm__XOR], [dasm__XOR]>>8, 1, 0x07 ;XOR A,r / XOR A, (HL) + 01EE0C01 + 07 + 121: - 093A EEFF0000 defb 0xEE, 0xFF, 0x00, 0x00, 2, [dasm__XOR], [dasm__XOR]>>8, 1, 0x08 ;XOR A,n + 02EE0C01 + 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 + 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 + 0880 + 124: - 0957 B8F80000 defb 0xB8, 0xF8, 0x00, 0x00, 1, [dasm__CP], [dasm__CP]>>8, 1, 0x07 ;CP A,r / CP A, (HL) + 010B0D01 + 07 + 125: - 0960 FEFF0000 defb 0xFE, 0xFF, 0x00, 0x00, 2, [dasm__CP], [dasm__CP]>>8, 1, 0x08 ;CP A,n + 020B0D01 + 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 + 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 + 0880 + 128: - 097D 04C70000 defb 0x04, 0xC7, 0x00, 0x00, 1, [dasm__INC], [dasm__INC]>>8, 1, 0x10 ;INC r / INC (HL) + 01250D01 + 10 + 129: - 0986 DDFF34FF defb 0xDD, 0xFF, 0x34, 0xFF, 3, [dasm_DD_34], [dasm_DD_34]>>8, 2, 0x08, 0x80 ;INC (IX + d) + 032A0D02 + 0880 + 130: - 0990 FDFF34FF defb 0xFD, 0xFF, 0x34, 0xFF, 3, [dasm_FD_34], [dasm_FD_34]>>8, 2, 0x08, 0x80 ;INC (IY + d) + 03360D02 + 0880 + 131: - 099A 05C70000 defb 0x05, 0xC7, 0x00, 0x00, 1, [dasm__DEC], [dasm__DEC]>>8, 1, 0x10 ;DEC r / DEC (HL) + 01420D01 + 10 + 132: - 09A3 DDFF35FF defb 0xDD, 0xFF, 0x35, 0xFF, 3, [dasm_DD_35], [dasm_DD_35]>>8, 2, 0x08, 0x80 ;DEC (IX + d) + 03470D02 + 0880 + 133: - 09AD FDFF35FF defb 0xFD, 0xFF, 0x35, 0xFF, 3, [dasm_FD_35], [dasm_FD_35]>>8, 2, 0x08, 0x80 ;DEC (IY + d) + 03530D02 + 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 + 11 + 136: - 09C0 EDFF4ACF defb 0xED, 0xFF, 0x4A, 0xCF, 2, [dasm_ED_4A], [dasm_ED_4A]>>8, 1, 0x12 ;ADC HL, ss + 02680D01 + 12 + 137: - 09C9 EDFF42CF defb 0xED, 0xFF, 0x42, 0xCF, 2, [dasm_ED_42], [dasm_ED_42]>>8, 1, 0x12 ;SBC HL, ss + 02710D01 + 12 + 138: - 09D2 DDFF09CF defb 0xDD, 0xFF, 0x09, 0xCF, 2, [dasm_DD_09], [dasm_DD_09]>>8, 1, 0x12 ;ADD IX, ss + 027A0D01 + 12 + 139: - 09DB FDFF09CF defb 0xFD, 0xFF, 0x09, 0xCF, 2, [dasm_FD_09], [dasm_FD_09]>>8, 1, 0x12 ;ADD IY, ss + 02830D01 + 12 + 140: - 09E4 03CF0000 defb 0x03, 0xCF, 0x00, 0x00, 1, [dasm_03], [dasm_03]>>8, 1, 0x11 ;INC ss + 018C0D01 + 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 + 02A80D00 + 145: - 0A0E FDFF2BFF defb 0xFD, 0xFF, 0x2B, 0xFF, 2, [dasm_FD_2B], [dasm_FD_2B]>>8, 0 ;DEC IY + 02B10D00 + 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 + 118009 + 148: - 0A21 DDFF21FF defb 0xDD, 0xFF, 0x21, 0xFF, 4, [dasm_DD_01], [dasm_DD_01]>>8, 1, 0x0A ;LD IX, nn + 04C10D01 + 0A + 149: - 0A2A FDFF21FF defb 0xFD, 0xFF, 0x21, 0xFF, 4, [dasm_FD_01], [dasm_FD_01]>>8, 1, 0x0A ;LD IY, nn + 04C90D01 + 0A + 150: - 0A33 2AFF0000 defb 0x2A, 0xFF, 0x00, 0x00, 3, [dasm_2A], [dasm_2A]>>8, 2, 0x09, 0x80 ;LD HL, (nn) + 03D10D02 + 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 + 12800A81 + 152: - 0A49 DDFF2AFF defb 0xDD, 0xFF, 0x2A, 0xFF, 4, [dasm_DD_2A], [dasm_DD_2A]>>8, 1, 0x0A ;LD IX, (nn) + 04E80D01 + 0A + 153: - 0A52 FDFF2AFF defb 0xFD, 0xFF, 0x2A, 0xFF, 4, [dasm_FD_2A], [dasm_FD_2A]>>8, 1, 0x0A ;LD IY, (nn) + 04F40D01 + 0A + 154: - 0A5B 22FF0000 defb 0x22, 0xFF, 0x00, 0x00, 3, [dasm_22], [dasm_22]>>8, 2, 0x0A, 0x80 ;LD (nn), HL + 03000E02 + 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 + 0A8012 + 156: - 0A70 DDFF22CF defb 0xDD, 0xFF, 0x22, 0xCF, 4, [dasm_DD_22], [dasm_DD_22]>>8, 2, 0x0A, 0x80 ;LD (nn), IX + 04160E02 + 0A80 + 157: - 0A7A FDFF22CF defb 0xFD, 0xFF, 0x22, 0xCF, 4, [dasm_FD_22], [dasm_FD_22]>>8, 2, 0x0A, 0x80 ;LD (nn), IY + 04220E02 + 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 + 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 + 02680E00 + 166: - 0AC6 FDFFE1FF defb 0xFD, 0xFF, 0xE1, 0xFF, 2, [dasm_FD_E1], [dasm_FD_E1]>>8, 0 ;POP IY + 02700E00 + 167: + 168: + 169: - 0ACE 4E4F5000 dasm_00: db "NOP",0x00 + 170: ;JUMP Group + 171: - 0AD2 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 + 2C2000 + 174: - 0AE4 4A52204E dasm_30: db "JR NC, ",0x00 + 432C2000 + 175: - 0AEC 4A52205A dasm_28: db "JR Z, ",0x00 + 2C2000 + 176: - 0AF3 4A52204E dasm_20: db "JR NZ, ",0x00 + 5A2C2000 + 177: - 0AFB 4A502028 dasm_E9: db "JP (HL) ",0x00 + 484C2920 + 00 + 178: - 0B04 4A502028 dasm_DD: db "JP (IX) ",0x00 + 49582920 + 00 + 179: - 0B0D 4A502028 dasm_FD: db "JP (IY) ",0x00 + 49592920 + 00 + 180: - 0B16 444A4E5A dasm_10: db "DJNZ ",0x00 + 2000 + 181: ;Call and Return Group + 182: - 0B1C 43414C4C dasm_CD: db "CALL ",0x00 + 2000 + 183: - 0B22 52455420 dasm_C9: db "RET ",0x00 + 00 + 184: - 0B27 52455449 dasm_ED_4D: db "RETI",0x00 + 00 + 185: - 0B2C 5245544E dasm_ED_45: db "RETN",0x00 + 00 + 186: - 0B31 52535420 dasm_FF: db "RST ",0x00 + 00 + 187: ;8-Bit load group + 188: - 0B36 4C442041 dasm_0A: db "LD A,(BC)",0x00 + 2C284243 + 2900 + 189: - 0B40 4C442041 dasm_1A: db "LD A,(DE)",0x00 + 2C284445 + 2900 + 190: - 0B4A 4C442041 dasm_3A: db "LD A,(",0x00, "h)",0x00 + 2C280068 + 2900 + 191: - 0B54 4C442028 dasm_02: db "LD (BC), A",0x00 + 4243292C + 204100 + 192: - 0B5F 4C442028 dasm_12: db "LD (DE), A",0x00 + 4445292C + 204100 + 193: - 0B6A 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 + 2C204900 + 196: - 0B81 4C442041 dasm__ED_5F: db "LD A, R",0x00 + 2C205200 + 197: - 0B89 4C442049 dasm__ED_47: db "LD I, A",0x00 + 2C204100 + 198: - 0B91 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 + 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 + 00 + 209: - 0BBD 494D2031 dasm_ED_56: db "IM 1",0x00 + 00 + 210: - 0BC2 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 + 452C2048 + 4C00 + 213: - 0BD1 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 + 5350292C + 20484C00 + 216: - 0BEE 45582028 dasm_DD_E3: db "EX (SP), IX",0x00 + 5350292C + 20495800 + 217: - 0BFA 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 + 00 + 220: - 0C0F 4C444400 dasm_ED_A8: db "LDD",0x00 + 221: - 0C13 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 + 00 + 224: - 0C21 43504400 dasm_ED_A9: db "CPD",0x00 + 225: - 0C25 43504452 dasm_ED_B9: db "CPDR",0x00 + 00 + 226: ;8-Bit Arithmetic Group + 227: - 0C2A 41444420 dasm_80C6: db "ADD A, ", 0x00 + 412C2000 + 228: - 0C32 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 + 412C2028 + 49592B00 + 682900 + 230: - 0C50 41444320 dasm_C88E: db "ADC A, ", 0x00 + 412C2000 + 231: - 0C58 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 + 412C2028 + 49592B00 + 682900 + 233: - 0C76 53554220 dasm__SUB: db "SUB ", 0x00 + 00 + 234: - 0C7B 53554220 dasm_DD_96: db "SUB (IX+", 0x00, "h)",0x00 + 2849582B + 00682900 + 235: - 0C87 53554220 dasm_FD_96: db "SUB (IY+", 0x00, "h)",0x00 + 2849592B + 00682900 + 236: - 0C93 53424320 dasm__SBC: db "SBC A, ", 0x00 + 412C2000 + 237: - 0C9B 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 + 412C2849 + 592B0068 + 2900 + 239: - 0CB7 414E4420 dasm__AND: db "AND ", 0x00 + 00 + 240: - 0CBC 414E4420 dasm_DD_A6: db "AND (IX+", 0x00, "h)",0x00 + 2849582B + 00682900 + 241: - 0CC8 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 + 49582B00 + 682900 + 244: - 0CE3 4F522028 dasm_FD_B6: db "OR (IY+", 0x00, "h)",0x00 + 49592B00 + 682900 + 245: - 0CEE 584F5220 dasm__XOR: db "XOR ", 0x00 + 00 + 246: - 0CF3 584F5220 dasm_DD_AE: db "XOR (IX+", 0x00, "h)",0x00 + 2849582B + 00682900 + 247: - 0CFF 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 + 49582B00 + 682900 + 250: - 0D1A 43502028 dasm_FD_BE: db "CP (IY+", 0x00, "h)",0x00 + 49592B00 + 682900 + 251: - 0D25 494E4320 dasm__INC: db "INC ", 0x00 + 00 + 252: - 0D2A 494E4320 dasm_DD_34: db "INC (IX+", 0x00, "h)",0x00 + 2849582B + 00682900 + 253: - 0D36 494E4320 dasm_FD_34: db "INC (IY+", 0x00, "h)",0x00 + 2849592B + 00682900 + 254: - 0D42 44454320 dasm__DEC: db "DEC ", 0x00 + 00 + 255: - 0D47 44454320 dasm_DD_35: db "DEC (IX+", 0x00, "h)",0x00 + 2849582B + 00682900 + 256: - 0D53 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 + 484C2C20 + 00 + 259: - 0D68 41444320 dasm_ED_4A: db "ADC HL, ",0x00 + 484C2C20 + 00 + 260: - 0D71 53424320 dasm_ED_42: db "SBC HL, ",0x00 + 484C2C20 + 00 + 261: - 0D7A 41444420 dasm_DD_09: db "ADD IX, ",0x00 + 49582C20 + 00 + 262: - 0D83 41444420 dasm_FD_09: db "ADD IY, ",0x00 + 49592C20 + 00 + 263: - 0D8C 494E4320 dasm_03: db "INC ",0x00 + 00 + 264: - 0D91 494E4320 dasm_DD_23: db "INC IX, ",0x00 + 49582C20 + 00 + 265: - 0D9A 494E4320 dasm_FD_23: db "INC IY, ",0x00 + 49592C20 + 00 + 266: - 0DA3 44454320 dasm_0B: db "DEC ",0x00 + 00 + 267: - 0DA8 44454320 dasm_DD_2B: db "DEC IX, ",0x00 + 49582C20 + 00 + 268: - 0DB1 44454320 dasm_FD_2B: db "DEC IY, ",0x00 + 49592C20 + 00 + 269: ;16-Bit Load Group + 270: - 0DBA 4C442000 dasm_01: db "LD ",0x00, ", ",0x00 + 2C2000 + 271: - 0DC1 4C442049 dasm_DD_01: db "LD IX, ",0x00 + 582C2000 + 272: - 0DC9 4C442049 dasm_FD_01: db "LD IY, ",0x00 + 592C2000 + 273: - 0DD1 4C442048 dasm_2A: db "LD HL, (",0x00,"h)",0x00 + 4C2C2028 + 00682900 + 274: - 0DDD 4C442000 dasm_ED_4B: db "LD ",0x00,", (",0x00,"h)",0x00 + 2C202800 + 682900 + 275: - 0DE8 4C442049 dasm_DD_2A: db "LD IX, (",0x00,"h)",0x00 + 582C2028 + 00682900 + 276: - 0DF4 4C442049 dasm_FD_2A: db "LD IY, (",0x00,"h)",0x00 + 592C2028 + 00682900 + 277: - 0E00 4C442028 dasm_22: db "LD (",0x00,"h), HL",0x00 + 0068292C + 20484C00 + 278: - 0E0C 4C442028 dasm_ED_43: db "LD (",0x00,"h), ",0x00 + 0068292C + 2000 + 279: - 0E16 4C442028 dasm_DD_22: db "LD (",0x00,"h), IX",0x00 + 0068292C + 20495800 + 280: - 0E22 4C442028 dasm_FD_22: db "LD (",0x00,"h), IY",0x00 + 0068292C + 20495900 + 281: - 0E2E 4C442053 dasm_F9: db "LD SP, HL",0x00 + 502C2048 + 4C00 + 282: - 0E38 4C442053 dasm_DD_F9: db "LD SP, IX",0x00 + 502C2049 + 5800 + 283: - 0E42 4C442053 dasm_FD_F9: db "LD SP, IY",0x00 + 502C2049 + 5900 + 284: - 0E4C 50555348 dasm_E5: db "PUSH ",0x00 + 2000 + 285: - 0E52 50555348 dasm_DD_E5: db "PUSH IX",0x00 + 20495800 + 286: - 0E5A 50555348 dasm_FD_E5: db "PUSH IY",0x00 + 20495900 + 287: - 0E62 50555348 dasm_E1: db "PUSH ",0x00 + 2000 + 288: - 0E68 50555348 dasm_DD_E1: db "PUSH IX",0x00 + 20495800 + 289: - 0E70 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 + 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 + 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) + 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" + 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" + 331: + 332: - 0EB1 dasm_printRegister8_table_HL: +**** main.asm **** + 479: - 0EB1 28484C29 db "(HL)", 0 + 00 + 480: .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 + 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 + 10: ;call vdp_cursor_on + 11: 7916+17 0EBD CDEA02 call read_char + 12: 7933+11 0EC0 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 + 19: + 20: - 0EC6 EXEC_RST_18: + 21: 7994+7 0EC6 3E00 ld a,0 + 22: 8001+10 0EC8 C9 ret +**** main.asm **** + 481: ; Strings + 482: - 0EC9 STR_Banner_Start: + 483: - 0EC9 5A384320 db "Z8C Monitor V2 by Dennis Gunia (2022)",0 + 4D6F6E69 + 746F7220 + 56322062 + 79204465 + 6E6E6973 + 2047756E + 69612028 + 32303232 + 2900 + 484: - 0EEF STR_SyntaxError: + 485: - 0EEF 73796E3F db "syn?",0 + 00 + 486: - 0EF4 STR_Unknown: + 487: - 0EF4 636D643F db "cmd?",0 + 00 + 488: - 0EF9 STR_HEXDUMP_HEADER: + 489: - 0EF9 42415345 db 'BASE 0 1 2 3 4 5 6 7',0 + 20302020 + 31202032 + 20203320 + 20342020 + 35202036 + 20203700 + 490: + 491: .include "xmodem.s" +**** include/xmodem.s **** + 1: ;------------------------------------------------------------------------- + 2: ; Z80 XMODEM implementation by Dennis Gunia + 3: ; 2022 - www,dennisgunia.de + 4: ; + 5: ; important doc: https://web.mit.edu/6.115/www/amulet/xmodem.htm + 6: ; http://www.blunk-electronic.de/train-z/pdf/xymodem.pdf + 7: ;------------------------------------------------------------------------- + 8: + 9: ;Symbols + 10: - 0001 SYM_SOH equ 0x01 + 11: - 0004 SYM_EOT equ 0x04 + 12: - 0006 SYM_ACK equ 0x06 + 13: - 0015 SYM_NAK equ 0x15 + 14: - 0017 SYM_ETB equ 0x17 + 15: - 0018 SYM_CAN equ 0x18 + 16: - 0043 SYM_C equ 0x43 + 17: + 18: ;Memory locations + 19: - 40FB MEM_VAR_BLOCK equ 0x40FB ;last block + 20: - 40FC MEM_VAR_TIMEA equ 0x40FC ;timer var (mills) + 21: - 40FE MEM_VAR_TIMER equ 0x40FE ;timer var (seconds) + 22: - 40FE MEM_INT_VEC_T equ 0x40FE ;interrupt vector table + 23: + 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 + 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 + 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 + 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 + 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 + 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 + 51: ; init done. Continue with xmodem_await_conn + 52: 8205+17 0F40 CDA610 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 + 59: ;else continue + 60: + 61: - 0F4E 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 + 69: + 70: 8324+10 0F5D C3B40F 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 + 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 + 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 + 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 ) + 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 + 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 + 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 + 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 + 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 + 164: + 165: 8947+10 0FE8 215710 ld hl, MSG_ERROR + 166: 8957+17 0FEB CDB102 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 + 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 + 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 + 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 + 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 + 198: + 199: + 200: + 201: + 202: + 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: + 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 + 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 + 226: + 227: ; if char avail + 228: 9327+11 103A 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 + 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 + 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 + 254: + 255: - 1057 MSG_ERROR: + 256: - 1057 4572726F db "Error: unexpected byte",13,10,0 + 723A2075 + 6E657870 + 65637465 + 64206279 + 74650D0A + 00 + 257: + 258: - 1070 MSG_START: + 259: - 1070 41776169 db "Await xmodem connection",13,10,0 + 7420786D + 6F64656D + 20636F6E + 6E656374 + 696F6E0D + 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 + 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 + 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 +**** main.asm **** + 492: 9679+12 10B3 18F7 jr xmodem_wait_1 +**** main.asm **** + 493: ;.include "debug.s" + + + +Statistics: + + 4 passes + 0 jr promotions + 332 symbols + 4251 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 +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_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 +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 +IO_RTC_CTR_E =2E 46 +IO_RTC_CTR_F =2F 47 +IO_RTC_DAY0 =26 38 +IO_RTC_DAY1 =27 39 +IO_RTC_HOUR =24 36 +IO_RTC_MIN0 =22 34 +IO_RTC_MIN1 =23 35 +IO_RTC_MON0 =28 40 +IO_RTC_MON1 =29 41 +IO_RTC_SEC0 =20 32 +IO_RTC_SEC1 =21 33 +IO_RTC_WEEK =2C 44 +IO_RTC_YEAR1 =2B 43 +IO_RTC_YERR0 =2A 42 +Includes 270 624 +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 +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 +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 +SYM_ACK =06 6 +SYM_C =43 67 +SYM_CAN =18 24 +SYM_EOT =04 4 +SYM_ETB =17 23 +SYM_NAK =15 21 +SYM_SOH =01 1 +SYS_BUF_START =4010 16400 +SYS_RAM_START =4000 16384 +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 +mon_start_init_ctc 50 80 +mon_start_init_serial 5F 95 +mon_start_init_sound 50 80 +mon_start_ram 62 98 +mon_start_ram_loop 6B 107 +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 +var_buffer 4029 16425 +var_buffer_len 4000 16384 +var_bytes_count=411A 16666 +var_curserchar 4006 16390 +var_curserlastaddr 4007 16391 +var_curseron 4005 16389 +var_curserstate 4004 16388 +var_curserx 4002 16386 +var_cursery 4003 16387 +var_last_char 4001 16385 +var_opcode =4114 16660 +var_opcode_length=4116 16662 +var_opcode_pcount=4119 16665 +var_opcode_start=4110 16656 +var_opcode_string=4117 16663 +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_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 diff --git a/OperatingSystem/monitor_v2/zout/main.mon b/OperatingSystem/monitor_v2/zout/main.mon new file mode 100644 index 0000000..6e7c7ae --- /dev/null +++ b/OperatingSystem/monitor_v2/zout/main.mon @@ -0,0 +1,270 @@ +!0000 C3 50 00 +!0008 C3 B6 0E +!0010 C3 BA 0E +!0018 C3 C6 0E +!0044 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +!0054 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +!0064 00 00 00 00 00 00 00 00 00 00 +!0050 31 FF FF AF 32 04 40 32 05 40 3E 20 32 06 40 CD +!0060 70 02 21 44 00 11 2A 40 01 00 40 7E 02 23 03 E5 +!0070 ED 52 E1 C2 6B 00 CD BC 02 21 C9 0E CD B1 02 CD +!0080 8B 00 76 47 7A D3 40 78 D3 41 C9 CD C3 02 3E 3E +!0090 CD A9 02 AF 32 00 40 CD EA 02 CA 97 00 F5 F1 FE +!00A0 0D CA EE 00 FE 0A CA 97 00 FE 08 CA C8 00 F5 21 +!00B0 29 40 16 00 3A 00 40 5F 19 3C 32 00 40 F1 77 CD +!00C0 A9 02 23 AF 77 C3 97 00 3A 00 40 A7 CA 97 00 3D +!00D0 32 00 40 5F 16 00 21 29 40 19 AF 77 3E 08 CD A9 +!00E0 02 3E 20 CD A9 02 3E 08 CD A9 02 C3 97 00 3A 29 +!00F0 40 FE 24 CA 21 01 FE 3F CA 40 01 FE 21 CA AA 01 +!0100 FE 69 CA 0F 02 FE 6F CA E6 01 FE 64 CA 2B 02 FE +!0110 78 CA 15 0F CD C3 02 21 F4 0E CD B1 02 C3 8B 00 +!0120 C9 AF 32 29 40 21 2A 40 CD 16 03 47 7B A7 C2 64 +!0130 02 21 2C 40 CD 16 03 4F 7B A7 C2 64 02 60 69 E9 +!0140 CD C3 02 21 2A 40 CD 16 03 47 7B A7 C2 64 02 21 +!0150 2C 40 CD 16 03 4F 7B A7 C2 64 02 3A 2E 40 FE 20 +!0160 C2 64 02 21 2F 40 CD 16 03 F5 7B A7 C2 64 02 21 +!0170 F9 0E CD B1 02 F1 60 69 47 CD C3 02 7C CD D9 02 +!0180 7D CD D9 02 3E 20 CD A9 02 0E 08 7E CD D9 02 23 +!0190 05 0D 78 A7 CA A4 01 79 A7 CA 79 01 3E 20 CD A9 +!01A0 02 C3 8B 01 CD C3 02 C3 8B 00 21 2A 40 CD 16 03 +!01B0 47 7B A7 C2 64 02 21 2C 40 CD 16 03 4F 7B A7 C2 +!01C0 64 02 21 2E 40 7E FE 00 CA E0 01 FE 20 C2 64 02 +!01D0 23 CD 16 03 02 7B A7 C2 64 02 03 23 23 C3 C5 01 +!01E0 CD C3 02 C3 8B 00 21 2A 40 CD 16 03 4F 7B A7 C2 +!01F0 64 02 3A 2C 40 FE 20 C2 64 02 21 2D 40 CD 16 03 +!0200 F5 7B A7 C2 64 02 F1 ED 79 CD C3 02 C3 8B 00 21 +!0210 2A 40 CD 16 03 4F 7B A7 C2 64 02 ED 78 F5 CD C3 +!0220 02 F1 CD D9 02 CD C3 02 C3 8B 00 CD C3 02 21 2A +!0230 40 CD 16 03 47 7B A7 C2 64 02 21 2C 40 CD 16 03 +!0240 4F 7B A7 C2 64 02 3A 2E 40 FE 20 C2 64 02 21 2F +!0250 40 CD 16 03 F5 7B A7 C2 64 02 60 69 F1 47 CD 67 +!0260 03 C3 8B 00 CD C3 02 21 EF 0E CD B1 02 C3 8B 00 +!0270 3E 4F D3 04 DB 01 D3 04 3E 30 D3 09 3E 18 D3 09 +!0280 3E 04 D3 09 3E 44 D3 09 3E 05 D3 09 3E E8 D3 09 +!0290 3E 01 D3 09 3E 04 D3 09 3E 02 D3 09 3E 00 D3 09 +!02A0 3E 03 D3 09 3E C1 D3 09 C9 F5 D3 08 CD CE 02 F1 +!02B0 C9 7E B7 28 06 CD A9 02 23 18 F6 C9 21 FC 02 CD +!02C0 B1 02 C9 3E 0A CD A9 02 3E 0D CD A9 02 C9 97 3C +!02D0 D3 09 DB 09 CB 47 28 F6 C9 F5 C5 D5 CD 4D 03 78 +!02E0 CD A9 02 79 CD A9 02 D1 C1 F1 CD 0D 03 00 AF D3 +!02F0 09 DB 09 E6 01 CD 04 03 C8 DB 08 C9 1B 5B 32 4A +!0300 1B 5B 48 00 3E 05 D3 09 3E 68 D3 09 C9 3E 05 D3 +!0310 09 3E EA D3 09 C9 E5 7E CD 36 03 38 15 CB 27 CB +!0320 27 CB 27 CB 27 57 23 7E CD 36 03 38 05 B2 E1 1E +!0330 00 C9 1E FF E1 C9 D6 30 EA 4B 03 FE 0A 38 05 D6 +!0340 07 EA 4B 03 FE 10 30 03 E6 0F C9 37 C9 F5 1F 1F +!0350 1F 1F CD 5C 03 47 F1 CD 5C 03 4F C9 E6 0F C6 30 +!0360 FE 3A D8 C6 07 C9 C9 78 32 1A 41 22 10 41 7E 32 +!0370 14 41 23 7E 32 15 41 2B CD 5B 04 78 B1 CA 3D 04 +!0380 ED 43 12 41 03 03 03 03 0A 32 16 41 03 0A 5F 03 +!0390 0A 57 ED 53 17 41 03 0A 32 19 41 2A 10 41 CD A3 +!03A0 04 3A 16 41 47 2A 10 41 7E CD D9 02 23 10 F9 3E +!03B0 68 CD A9 02 3A 16 41 47 3E 06 90 47 3E 20 CD A9 +!03C0 02 3E 20 CD A9 02 10 F4 3E 20 CD A9 02 E5 2A 17 +!03D0 41 CD B1 02 3A 19 41 B7 CA 3A 04 2A 12 41 01 08 +!03E0 00 09 3A 19 41 47 7E FE 01 CC C9 04 FE 02 CC F0 +!03F0 04 FE 03 CC 0D 05 FE 04 CC 49 05 FE 05 CC 5F 05 +!0400 FE 06 CC 6C 05 FE 07 CC 86 05 FE 08 CC 93 05 FE +!0410 09 CC A8 05 FE 10 CC BD 05 FE 11 CC CD 05 FE 12 +!0420 CC D5 05 FE 13 CC 0D 06 FE 0A CC 9F 05 FE 80 CC +!0430 2C 06 FE 81 CC 23 06 23 10 AC E1 18 10 CD A3 04 +!0440 7E CD BB 04 23 E5 21 78 0E CD B1 02 E1 CD C3 02 +!0450 3A 1A 41 3D 32 1A 41 C2 6B 03 C9 E5 21 76 06 3A +!0460 14 41 4F 7E FE FF CA 9D 04 F5 23 46 2B 79 A0 4F +!0470 F1 B9 28 0B 06 00 0E 07 09 7E 4F 09 23 18 E0 23 +!0480 23 4E 23 3A 15 41 46 A0 B9 2B 2B 2B 28 0B 06 00 +!0490 0E 07 09 7E 4F 09 23 18 C6 44 4D E1 C9 06 00 0E +!04A0 00 E1 C9 3E 24 CD A9 02 7C CD D9 02 7D CD D9 02 +!04B0 3E 68 CD A9 02 3E 20 CD A9 02 C9 CD D9 02 3E 68 +!04C0 CD A9 02 3E 20 CD A9 02 C9 E5 ED 5B 10 41 13 1A +!04D0 6F 13 1A 67 3E 24 CD A9 02 7C CD D9 02 7D CD D9 +!04E0 02 3E 68 CD A9 02 3E 20 CD A9 02 CD 67 06 E1 C9 +!04F0 C5 ED 5B 10 41 1A 1F 1F E6 0E E5 21 81 0E 06 00 +!0500 4F 09 CD B1 02 3E 20 CD A9 02 E1 C1 C9 ED 5B 10 +!0510 41 13 1A F5 E6 80 C2 2E 05 3E 24 CD A9 02 3E 2B +!0520 CD A9 02 F1 CD D9 02 3E 68 CD A9 02 18 17 3E 24 +!0530 CD A9 02 3E 2D CD A9 02 F1 ED 44 CD D9 02 3E 68 +!0540 CD A9 02 18 00 CD 67 06 C9 ED 5B 10 41 13 1A FE +!0550 4D 28 06 3E 4E CD A9 02 C9 3E 49 CD A9 02 C9 C5 +!0560 ED 5B 10 41 1A E6 38 CD BB 04 C1 C9 C5 ED 5B 10 +!0570 41 1A 1F 1F 1F E6 07 CD 42 06 3E 20 CD A9 02 3E +!0580 2C CD A9 02 C1 C9 C5 ED 5B 10 41 1A E6 07 CD 42 +!0590 06 C1 C9 C5 ED 5B 10 41 13 1A CD BB 04 C1 C9 E5 +!05A0 ED 5B 10 41 13 13 18 06 E5 ED 5B 10 41 13 1A 6F +!05B0 13 1A 67 7C CD D9 02 7D CD D9 02 E1 C9 C5 ED 5B +!05C0 10 41 1A 1F 1F 1F E6 07 CD 42 06 C1 C9 E5 C5 ED +!05D0 5B 10 41 18 07 E5 C5 ED 5B 10 41 13 1A 1F 1F 1F +!05E0 E6 06 F5 2A 10 41 7E FE DD 28 09 FE FD 28 0A 21 +!05F0 91 0E 18 08 21 99 0E 18 03 21 A1 0E F1 06 00 4F +!0600 09 7E CD A9 02 23 7E CD A9 02 C1 E1 C9 E5 C5 ED +!0610 5B 10 41 1A 1F 1F 1F E6 06 F5 2A 10 41 7E 21 A9 +!0620 0E 18 D9 E5 C5 2A 17 41 06 02 18 07 E5 C5 2A 17 +!0630 41 06 01 7E 23 A7 20 FB 05 C2 33 06 CD B1 02 C1 +!0640 E1 C9 E5 FE 06 28 11 FE 07 28 15 21 91 0E 06 00 +!0650 4F 09 7E CD A9 02 E1 C9 21 B1 0E CD B1 02 E1 C9 +!0660 3E 41 CD A9 02 E1 C9 78 FE 01 C8 3E 20 CD A9 02 +!0670 3E 2C CD A9 02 C9 00 FF 00 00 01 CE 0A 00 27 FF +!0680 00 00 01 99 0B 00 2F FF 00 00 01 9D 0B 00 ED FF +!0690 44 FF 02 A1 0B 00 3F FF 00 00 01 A5 0B 00 37 FF +!06A0 00 00 01 A9 0B 00 76 FF 00 00 01 AD 0B 00 F3 FF +!06B0 00 00 01 B2 0B 00 FB FF 00 00 01 B5 0B 00 ED FF +!06C0 46 FF 02 B8 0B 00 ED FF 56 FF 02 BD 0B 00 ED FF +!06D0 5E FF 02 C2 0B 00 EB FF 00 00 01 C7 0B 00 08 FF +!06E0 00 00 01 D1 0B 00 D9 FF 00 00 01 DE 0B 00 E3 FF +!06F0 00 00 01 E2 0B 00 DD FF E3 FF 02 EE 0B 00 FD FF +!0700 E3 FF 02 FA 0B 00 ED FF A0 FF 02 06 0C 00 ED FF +!0710 B0 FF 02 0A 0C 00 ED FF A8 FF 02 0F 0C 00 ED FF +!0720 B8 FF 02 13 0C 00 ED FF A1 FF 02 18 0C 00 ED FF +!0730 B1 FF 02 1C 0C 00 ED FF A9 FF 02 21 0C 00 ED FF +!0740 B9 FF 02 25 0C 00 C3 FF 00 00 03 D2 0A 01 01 C2 +!0750 C7 00 00 03 D2 0A 03 02 80 01 18 FF 00 00 02 D9 +!0760 0A 01 03 38 FF 00 00 02 DD 0A 01 03 30 FF 00 00 +!0770 02 E4 0A 01 03 28 FF 00 00 02 EC 0A 01 03 20 FF +!0780 00 00 02 F3 0A 01 03 E9 FF 00 00 02 FB 0A 00 DD +!0790 FF E9 FF 02 04 0B 00 FD FF E9 FF 02 0D 0B 00 10 +!07A0 FF 00 00 02 16 0B 01 03 CD FF 00 00 03 1C 0B 01 +!07B0 01 C4 C7 00 00 03 1C 0B 02 02 01 C9 FF 00 00 01 +!07C0 22 0B 00 C0 C7 00 00 01 22 0B 01 02 ED FF 4D FF +!07D0 02 27 0B 00 ED FF 45 FF 02 2C 0B 00 C7 C7 00 00 +!07E0 01 31 0B 01 05 0A FF 00 00 01 36 0B 00 1A FF 00 +!07F0 00 01 40 0B 00 3A FF 00 00 03 4A 0B 02 09 80 02 +!0800 FF 00 00 01 54 0B 00 12 FF 00 00 01 5F 0B 00 32 +!0810 FF 00 00 03 6A 0B 02 09 80 ED FF 57 FF 02 79 0B +!0820 00 ED FF 5F FF 02 81 0B 00 ED FF 47 FF 02 89 0B +!0830 00 ED FF 4F FF 02 91 0B 00 06 C7 00 00 02 75 0B +!0840 02 06 08 40 C0 00 00 01 75 0B 02 06 07 80 F8 00 +!0850 00 01 2A 0C 01 07 C6 FF 00 00 02 2A 0C 01 08 DD +!0860 FF 86 FF 03 32 0C 02 08 80 FD FF 86 FF 03 41 0C +!0870 02 08 80 C8 F8 00 00 01 50 0C 01 07 8E F8 00 00 +!0880 02 50 0C 01 08 DD FF 8E FF 03 58 0C 02 08 80 FD +!0890 FF 8E FF 03 67 0C 02 08 80 90 F8 00 00 01 76 0C +!08A0 01 07 D6 FF 00 00 02 76 0C 01 08 DD FF 96 FF 03 +!08B0 7B 0C 02 08 80 FD FF 96 FF 03 87 0C 02 08 80 94 +!08C0 F8 00 00 01 93 0C 01 07 DE FF 00 00 02 93 0C 01 +!08D0 08 DD FF 9E FF 03 9B 0C 02 08 80 FD FF 9E FF 03 +!08E0 A9 0C 02 08 80 A0 F8 00 00 01 B7 0C 01 07 E6 FF +!08F0 00 00 02 B7 0C 01 08 DD FF A6 FF 03 BC 0C 02 08 +!0900 80 FD FF A6 FF 03 C8 0C 02 08 80 B0 F8 00 00 01 +!0910 D4 0C 01 07 F6 FF 00 00 02 D4 0C 01 08 DD FF B6 +!0920 FF 03 D8 0C 02 08 80 FD FF B6 FF 03 E3 0C 02 08 +!0930 80 A8 F8 00 00 01 EE 0C 01 07 EE FF 00 00 02 EE +!0940 0C 01 08 DD FF AE FF 03 F3 0C 02 08 80 FD FF AE +!0950 FF 03 FF 0C 02 08 80 B8 F8 00 00 01 0B 0D 01 07 +!0960 FE FF 00 00 02 0B 0D 01 08 DD FF BE FF 03 0F 0D +!0970 02 08 80 FD FF BE FF 03 1A 0D 02 08 80 04 C7 00 +!0980 00 01 25 0D 01 10 DD FF 34 FF 03 2A 0D 02 08 80 +!0990 FD FF 34 FF 03 36 0D 02 08 80 05 C7 00 00 01 42 +!09A0 0D 01 10 DD FF 35 FF 03 47 0D 02 08 80 FD FF 35 +!09B0 FF 03 53 0D 02 08 80 09 CF 00 00 01 5F 0D 01 11 +!09C0 ED FF 4A CF 02 68 0D 01 12 ED FF 42 CF 02 71 0D +!09D0 01 12 DD FF 09 CF 02 7A 0D 01 12 FD FF 09 CF 02 +!09E0 83 0D 01 12 03 CF 00 00 01 8C 0D 01 11 DD FF 23 +!09F0 FF 02 91 0D 00 FD FF 23 FF 02 9A 0D 00 0B CF 00 +!0A00 00 01 A3 0D 01 11 DD FF 2B FF 02 A8 0D 00 FD FF +!0A10 2B FF 02 B1 0D 00 01 CF 00 00 03 BA 0D 03 11 80 +!0A20 09 DD FF 21 FF 04 C1 0D 01 0A FD FF 21 FF 04 C9 +!0A30 0D 01 0A 2A FF 00 00 03 D1 0D 02 09 80 ED FF 4B +!0A40 CF 04 DD 0D 04 12 80 0A 81 DD FF 2A FF 04 E8 0D +!0A50 01 0A FD FF 2A FF 04 F4 0D 01 0A 22 FF 00 00 03 +!0A60 00 0E 02 0A 80 ED FF 43 CF 04 0C 0E 03 0A 80 12 +!0A70 DD FF 22 CF 04 16 0E 02 0A 80 FD FF 22 CF 04 22 +!0A80 0E 02 0A 80 F9 FF 00 00 01 2E 0E 00 DD FF F9 FF +!0A90 02 38 0E 00 FD FF F9 FF 02 42 0E 00 C5 CF 00 00 +!0AA0 01 4C 0E 01 13 DD FF E5 FF 02 52 0E 00 FD FF E5 +!0AB0 FF 02 5A 0E 00 C1 CF 00 00 01 62 0E 01 13 DD FF +!0AC0 E1 FF 02 68 0E 00 FD FF E1 FF 02 70 0E 00 4E 4F +!0AD0 50 00 4A 50 20 00 2C 20 00 4A 52 20 00 4A 52 20 +!0AE0 43 2C 20 00 4A 52 20 4E 43 2C 20 00 4A 52 20 5A +!0AF0 2C 20 00 4A 52 20 4E 5A 2C 20 00 4A 50 20 28 48 +!0B00 4C 29 20 00 4A 50 20 28 49 58 29 20 00 4A 50 20 +!0B10 28 49 59 29 20 00 44 4A 4E 5A 20 00 43 41 4C 4C +!0B20 20 00 52 45 54 20 00 52 45 54 49 00 52 45 54 4E +!0B30 00 52 53 54 20 00 4C 44 20 41 2C 28 42 43 29 00 +!0B40 4C 44 20 41 2C 28 44 45 29 00 4C 44 20 41 2C 28 +!0B50 00 68 29 00 4C 44 20 28 42 43 29 2C 20 41 00 4C +!0B60 44 20 28 44 45 29 2C 20 41 00 4C 44 20 28 00 68 +!0B70 29 2C 20 41 00 4C 44 20 00 4C 44 20 41 2C 20 49 +!0B80 00 4C 44 20 41 2C 20 52 00 4C 44 20 49 2C 20 41 +!0B90 00 4C 44 20 52 2C 20 41 00 44 41 41 00 43 50 4C +!0BA0 00 4E 45 47 00 43 43 46 00 53 43 46 00 48 41 4C +!0BB0 54 00 44 49 00 45 49 00 49 4D 20 30 00 49 4D 20 +!0BC0 31 00 49 4D 20 32 00 45 58 20 44 45 2C 20 48 4C +!0BD0 00 45 58 20 41 46 2C 20 41 46 E2 80 B2 00 45 58 +!0BE0 58 00 45 58 20 28 53 50 29 2C 20 48 4C 00 45 58 +!0BF0 20 28 53 50 29 2C 20 49 58 00 45 58 20 28 53 50 +!0C00 29 2C 20 49 59 00 4C 44 49 00 4C 44 49 52 00 4C +!0C10 44 44 00 4C 44 44 52 00 43 50 49 00 43 50 49 52 +!0C20 00 43 50 44 00 43 50 44 52 00 41 44 44 20 41 2C +!0C30 20 00 41 44 44 20 41 2C 20 28 49 58 2B 00 68 29 +!0C40 00 41 44 44 20 41 2C 20 28 49 59 2B 00 68 29 00 +!0C50 41 44 43 20 41 2C 20 00 41 44 43 20 41 2C 20 28 +!0C60 49 58 2B 00 68 29 00 41 44 43 20 41 2C 20 28 49 +!0C70 59 2B 00 68 29 00 53 55 42 20 00 53 55 42 20 28 +!0C80 49 58 2B 00 68 29 00 53 55 42 20 28 49 59 2B 00 +!0C90 68 29 00 53 42 43 20 41 2C 20 00 53 42 43 20 41 +!0CA0 2C 28 49 58 2B 00 68 29 00 53 42 43 20 41 2C 28 +!0CB0 49 59 2B 00 68 29 00 41 4E 44 20 00 41 4E 44 20 +!0CC0 28 49 58 2B 00 68 29 00 41 4E 44 20 28 49 59 2B +!0CD0 00 68 29 00 4F 52 20 00 4F 52 20 28 49 58 2B 00 +!0CE0 68 29 00 4F 52 20 28 49 59 2B 00 68 29 00 58 4F +!0CF0 52 20 00 58 4F 52 20 28 49 58 2B 00 68 29 00 58 +!0D00 4F 52 20 28 49 59 2B 00 68 29 00 43 50 20 00 43 +!0D10 50 20 28 49 58 2B 00 68 29 00 43 50 20 28 49 59 +!0D20 2B 00 68 29 00 49 4E 43 20 00 49 4E 43 20 28 49 +!0D30 58 2B 00 68 29 00 49 4E 43 20 28 49 59 2B 00 68 +!0D40 29 00 44 45 43 20 00 44 45 43 20 28 49 58 2B 00 +!0D50 68 29 00 44 45 43 20 28 49 59 2B 00 68 29 00 41 +!0D60 44 44 20 48 4C 2C 20 00 41 44 43 20 48 4C 2C 20 +!0D70 00 53 42 43 20 48 4C 2C 20 00 41 44 44 20 49 58 +!0D80 2C 20 00 41 44 44 20 49 59 2C 20 00 49 4E 43 20 +!0D90 00 49 4E 43 20 49 58 2C 20 00 49 4E 43 20 49 59 +!0DA0 2C 20 00 44 45 43 20 00 44 45 43 20 49 58 2C 20 +!0DB0 00 44 45 43 20 49 59 2C 20 00 4C 44 20 00 2C 20 +!0DC0 00 4C 44 20 49 58 2C 20 00 4C 44 20 49 59 2C 20 +!0DD0 00 4C 44 20 48 4C 2C 20 28 00 68 29 00 4C 44 20 +!0DE0 00 2C 20 28 00 68 29 00 4C 44 20 49 58 2C 20 28 +!0DF0 00 68 29 00 4C 44 20 49 59 2C 20 28 00 68 29 00 +!0E00 4C 44 20 28 00 68 29 2C 20 48 4C 00 4C 44 20 28 +!0E10 00 68 29 2C 20 00 4C 44 20 28 00 68 29 2C 20 49 +!0E20 58 00 4C 44 20 28 00 68 29 2C 20 49 59 00 4C 44 +!0E30 20 53 50 2C 20 48 4C 00 4C 44 20 53 50 2C 20 49 +!0E40 58 00 4C 44 20 53 50 2C 20 49 59 00 50 55 53 48 +!0E50 20 00 50 55 53 48 20 49 58 00 50 55 53 48 20 49 +!0E60 59 00 50 55 53 48 20 00 50 55 53 48 20 49 58 00 +!0E70 50 55 53 48 20 49 59 00 2E 3F 2E 00 20 20 20 20 +!0E80 00 4E 5A 5A 00 4E 43 43 00 50 4F 50 45 50 00 4D +!0E90 00 42 43 44 45 48 4C 53 50 42 43 44 45 49 58 53 +!0EA0 50 42 43 44 45 49 59 53 50 42 43 44 45 48 4C 41 +!0EB0 46 28 48 4C 29 00 CD A9 02 C9 C5 D5 E5 CD EA 02 +!0EC0 F5 F1 E1 D1 C1 C9 3E 00 C9 5A 38 43 20 4D 6F 6E +!0ED0 69 74 6F 72 20 56 32 20 62 79 20 44 65 6E 6E 69 +!0EE0 73 20 47 75 6E 69 61 20 28 32 30 32 32 29 00 73 +!0EF0 79 6E 3F 00 63 6D 64 3F 00 42 41 53 45 20 30 20 +!0F00 20 31 20 20 32 20 20 33 20 20 34 20 20 35 20 20 +!0F10 36 20 20 37 00 CD 04 03 3E A7 D3 06 3E 0E D3 06 +!0F20 3E 00 D3 04 21 F5 0F 22 04 42 21 00 00 22 FC 40 +!0F30 22 FE 40 3E 42 ED 47 ED 5E 21 70 10 CD B1 02 FB +!0F40 CD A6 10 3E 43 CD 46 10 CD 19 10 DA 43 0F FE 04 +!0F50 CA AC 0F FE 18 CA 43 0F FE 01 CA 60 0F C3 B4 0F +!0F60 CD 19 10 DA 98 10 47 32 FB 40 CD 19 10 DA 98 10 +!0F70 80 FE FF C2 B4 0F 3D 78 1F E6 7F 67 78 3D 0F E6 +!0F80 80 6F 11 00 44 19 06 80 0E 00 E5 CD 19 10 DA 98 +!0F90 10 E1 77 23 0C 05 C2 8A 0F CD 19 10 DA 98 10 57 +!0FA0 0C CD 19 10 DA 98 10 5F 0C C3 8A 10 3E 06 CD 46 +!0FB0 10 C3 EE 0F 3E 18 CD 46 10 3E 18 CD 46 10 3E 18 +!0FC0 CD 46 10 3E 18 CD 46 10 3E 18 CD 46 10 3E 18 CD +!0FD0 46 10 3E 18 CD 46 10 3E 18 CD 46 10 3E 18 CD 46 +!0FE0 10 3E 18 CD 46 10 3E 18 21 57 10 CD B1 02 F3 CD +!0FF0 C3 02 C3 8B 00 F3 08 D9 2A FC 40 23 22 FC 40 11 +!1000 04 04 ED 52 C2 14 10 21 00 00 22 FC 40 2A FE 40 +!1010 23 22 FE 40 08 D9 FB ED 4D F3 21 00 00 22 FC 40 +!1020 22 FE 40 FB CD 0D 03 2A FE 40 7D FE 03 CA 44 10 +!1030 AF D3 09 DB 09 E6 01 CA 27 10 DB 08 F5 CD 04 03 +!1040 F1 37 3F C9 37 C9 D3 08 CD 4C 10 C9 97 3C D3 09 +!1050 DB 09 CB 47 28 F6 C9 45 72 72 6F 72 3A 20 75 6E +!1060 65 78 70 65 63 74 65 64 20 62 79 74 65 0D 0A 00 +!1070 41 77 61 69 74 20 78 6D 6F 64 65 6D 20 63 6F 6E +!1080 6E 65 63 74 69 6F 6E 0D 0A 00 3E 06 CD 46 10 CD +!1090 19 10 DA 8A 10 C3 4E 0F 3E 15 CD 46 10 CD 19 10 +!10A0 DA 98 10 C3 4E 0F 21 FF 00 01 01 00 00 00 00 00 +!10B0 ED 42 C8 18 F7 diff --git a/OperatingSystem/monitor_v2/zout/symbols.s b/OperatingSystem/monitor_v2/zout/symbols.s new file mode 100644 index 0000000..b345c6f --- /dev/null +++ b/OperatingSystem/monitor_v2/zout/symbols.s @@ -0,0 +1,263 @@ +;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 +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 +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 +mon_start_init_ctc equ 0x50 +mon_start_init_serial equ 0x5F +mon_start_init_sound equ 0x50 +mon_start_ram equ 0x62 +mon_start_ram_loop equ 0x6B +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 +var_buffer equ 0x4029 +var_buffer_len equ 0x4000 +var_curserchar equ 0x4006 +var_curserlastaddr equ 0x4007 +var_curseron equ 0x4005 +var_curserstate equ 0x4004 +var_curserx equ 0x4002 +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 diff --git a/OperatingSystem/software/include/extern_symbols.s b/OperatingSystem/software/include/extern_symbols.s new file mode 120000 index 0000000..93116e9 --- /dev/null +++ b/OperatingSystem/software/include/extern_symbols.s @@ -0,0 +1 @@ +../../monitor_v2/zout/symbols.s \ No newline at end of file diff --git a/OperatingSystem/software/properties.env b/OperatingSystem/software/properties.env new file mode 100644 index 0000000..11748b8 --- /dev/null +++ b/OperatingSystem/software/properties.env @@ -0,0 +1,5 @@ +export OPT_GEN_SYMBOLTABLE=0 +export OPT_GEN_MONFILE=1 +export OPT_GEN_OBJFILE=1 +export OPT_WRITEROM=0 +export FILENAME=test \ No newline at end of file diff --git a/OperatingSystem/software/test.asm b/OperatingSystem/software/test.asm new file mode 100644 index 0000000..f2178da --- /dev/null +++ b/OperatingSystem/software/test.asm @@ -0,0 +1,10 @@ + .include "extern_symbols.s" ;include monitor symbols. + org 0x8000 + + LD A,4 + LD B,5 + ADD A,b + LD (0x8010),A + JP PROMPT_BEGIN + + diff --git a/OperatingSystem/software/zout/test.bin b/OperatingSystem/software/zout/test.bin new file mode 100644 index 0000000..ec3955f Binary files /dev/null and b/OperatingSystem/software/zout/test.bin differ diff --git a/OperatingSystem/software/zout/test.hex b/OperatingSystem/software/zout/test.hex new file mode 100644 index 0000000..4408072 --- /dev/null +++ b/OperatingSystem/software/zout/test.hex @@ -0,0 +1,2 @@ +:0B8000003E04060580321080C38B0098 +:00000001FF diff --git a/OperatingSystem/software/zout/test.lst b/OperatingSystem/software/zout/test.lst new file mode 100644 index 0000000..cc7b9f3 --- /dev/null +++ b/OperatingSystem/software/zout/test.lst @@ -0,0 +1,549 @@ + 1: .include "extern_symbols.s" ;include monitor symbols. +**** include/extern_symbols.s **** + 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 + 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 + 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 +**** 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: + 10: + + + +Statistics: + + 3 passes + 0 jr promotions + 260 symbols + 11 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 +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 +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 +mon_start_init_ctc=50 80 +mon_start_init_serial=5F 95 +mon_start_init_sound=50 80 +mon_start_ram =62 98 +mon_start_ram_loop=6B 107 +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 +var_buffer =4029 16425 +var_buffer_len =4000 16384 +var_curserchar =4006 16390 +var_curserlastaddr=4007 16391 +var_curseron =4005 16389 +var_curserstate=4004 16388 +var_curserx =4002 16386 +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 diff --git a/OperatingSystem/software/zout/test.mon b/OperatingSystem/software/zout/test.mon new file mode 100644 index 0000000..ce710f6 --- /dev/null +++ b/OperatingSystem/software/zout/test.mon @@ -0,0 +1 @@ +!8000 3E 04 06 05 80 32 10 80 C3 8B 00 diff --git a/README.md b/README.md index d53ba3a..626351f 100644 --- a/README.md +++ b/README.md @@ -1 +1,89 @@ # Z8C-Homebrew-Computer + +## Using the build tools +The Z8C uses the zmac macro assembler (http://48k.ca/zmac.html) + +To easily develop for my Z80 homebrew system, I designed a simple +assempler development environment. This packs the following tasks into one script: +* zmac assembly +* object file creation (for xmodem upload) +* monitor file creation (creates monitor commands for ascii upload) +* symbol table include file generation +* eeprom programming for the minipro + +### Prequisites +* zmac - self-compiled version included in ./Utility. +* minipro (https://gitlab.com/DavidGriffith/minipro) +* binutils (apt-get install binutils-multiarch, + pacman -S aarch64-linux-gnu-binutils ) + +### Building a project +`./build.sh ` +* `dir`: Path to the location of the asm file +* `asm filename`: name of the assembly file without suffix + +``` + # e.g.: + cd ./Utility + ./build.sh ../OperatingSystem/monitor_v2 + ./build.sh ../OperatingSystem/software +``` +### Building a project with a properties file + +`./build.sh ` +* `dir`: Path to the location of the asm file + +The directory must contain a file called `properties.env` +This file can contain project-specific options. + +Example: +``` +export OPT_GEN_SYMBOLTABLE=1 +export OPT_GEN_MONFILE=0 +export OPT_GEN_OBJFILE=1 +export OPT_WRITEROM=1 +export FILENAME=main +``` + +#### Options +* `OPT_GEN_SYMBOLTABLE` if set to 1: Generates the symbols.s file +* `OPT_GEN_MONFILE` if set to 1: Generates the monitor file +* `OPT_GEN_OBJFILE` if set to 1: Generates the object file +* `OPT_WRITEROM` if set to 1: Starts eeprom programmer +* `FILENAME` same as the `` paramter of the build script +* `ROOT_DIR` overrides the project root path. required if git is not used +* `EEPROM_PART` sets EEPROM part for minipro. Default: `AT28C256` + + +## System design +The Z80 Hombrew computer is modular computer system, designed arround a custom backplane. + +### Available modules +#### Z8C CPU/COM Board +* Z80 ZPU @ 4MHz (6MHz planned) +* 64 KiB SRAM +* 32 KiB EEPROM (R/W switchable) +* Z80 CTC with external 1.8432MHz Clock switchable per channel +* Z80 SIO (Up to 115200 BAUD possible @ X16 SIO prescaler) +* 1 FTDI Connector +* 1 RS232 DSUB-9 Port +* 8 front-facing DIP switches (currently used for baud-rate setup) +* Power-On-Reset Circuit + +``` +Memory Layout + Default ($00 = 0x00) Mode 1 ($00 = 0x02) Mode 2 ($00 = 0x01) +$0000 +--------------------+--------------------+--------------------+ + | EEPROM Lower 16KiB | EEPROM Upper 16KiB | SRAM | +$4000 +--------------------+--------------------+ | + | SRAM | SRAM | | + | | | | + | | | | +$FFFF +--------------------+--------------------+--------------------+ + +IO Addresses: +$00 Memory register +$01 DIP Switches +$04 CTC (First address) +$08 SIO (First address) +``` \ No newline at end of file diff --git a/Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2022-11-02_133032.zip b/Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2022-11-02_133032.zip new file mode 100644 index 0000000..e1a5802 Binary files /dev/null and b/Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2022-11-02_133032.zip differ diff --git a/Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2022-11-02_172613.zip b/Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2022-11-02_172613.zip new file mode 100644 index 0000000..cb408ef Binary files /dev/null and b/Schematics/Z80-IDE/Z80-IDE-backups/Z80-IDE-2022-11-02_172613.zip differ diff --git a/Schematics/Z80-IDE/Z80-IDE.kicad_sch b/Schematics/Z80-IDE/Z80-IDE.kicad_sch index a52e59a..1d96e44 100644 --- a/Schematics/Z80-IDE/Z80-IDE.kicad_sch +++ b/Schematics/Z80-IDE/Z80-IDE.kicad_sch @@ -40,7 +40,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)) ) @@ -78,7 +78,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)) ) @@ -128,7 +128,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)) ) @@ -166,7 +166,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)) ) @@ -216,7 +216,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)) ) @@ -254,7 +254,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)) ) @@ -304,7 +304,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)) ) @@ -342,7 +342,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)) ) @@ -10145,20 +10145,8 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 187.325 47.117 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid ea966899-4bde-4a56-b6b4-55d56680b0ef)) - (pin "2" (uuid 9688ccbe-ea8a-4297-8bf8-ff9528de589d)) (pin "3" (uuid 42399c56-e0f4-408a-9350-07cb5b6d7f4a)) (pin "4" (uuid 8eb26a33-1ed2-47a7-bea7-d4fb234cf846)) - (pin "5" (uuid 9d76b60f-aa66-4ba7-a436-dea5679b5dd4)) - (pin "6" (uuid 0e0be57b-f293-4133-a71a-4018a5c708f2)) - (pin "8" (uuid f16bf821-0bff-4070-96a8-85bb70622ada)) - (pin "9" (uuid 328e2515-4e56-40fa-b869-71d9d148e805)) - (pin "10" (uuid d911cf16-dd9b-4153-aa56-cfe690cdf083)) - (pin "11" (uuid b0ce1fb7-0632-4799-a680-b317da495db8)) - (pin "12" (uuid 6d5f86fa-3f67-4c51-9cb1-d497c3f206cc)) - (pin "13" (uuid 98608ce4-907f-42d2-8245-3942449051f9)) - (pin "14" (uuid f73f81b1-4dd4-4f4f-ada1-428ca369647c)) - (pin "7" (uuid 5e943cb8-ba57-4d23-b6c6-3bc096bf10a2)) ) (symbol (lib_id "power:GND") (at 224.79 198.628 0) (unit 1) @@ -10258,17 +10246,6 @@ (pin "1" (uuid eb20a1e2-7c28-47ce-8b2f-a5284bd45dee)) (pin "2" (uuid a261f855-2e47-4b0b-9303-1e8bdced1e18)) (pin "3" (uuid 0c955ca8-fd0e-4417-8853-daf3ed77316c)) - (pin "4" (uuid e05b5b58-e2fd-419d-a39f-28430735064e)) - (pin "5" (uuid d8eb17ae-7649-4800-80b1-d0d15ccee7cc)) - (pin "6" (uuid 6f79cfdc-03c1-407f-a84f-91f27baeafba)) - (pin "10" (uuid 812065ce-5f01-4f3f-94cf-cef416146be7)) - (pin "8" (uuid ee974ca5-c429-4072-bb88-2107b1eadcfa)) - (pin "9" (uuid dcc1b4d9-0694-4552-af63-e44fd3049230)) - (pin "11" (uuid ac8d5d63-35ba-4ef1-b4e8-8bc719c6baf5)) - (pin "12" (uuid 32f97159-f487-4078-8fcf-601f1198c7fd)) - (pin "13" (uuid 543b7110-8cf8-4b19-bab1-5a27656e6eea)) - (pin "14" (uuid 34d70169-f461-4cbc-bd67-6d4abb544206)) - (pin "7" (uuid 50aa8e35-be72-4125-bcf9-e795dd8a0d3e)) ) (symbol (lib_id "power:GND") (at 24.257 81.534 0) (unit 1) @@ -10298,20 +10275,8 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 287.528 222.504 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid e157f6e2-f0a0-40ec-82af-d1a4a142b53d)) - (pin "2" (uuid 7b0666c4-94c4-4b4f-9f3f-236cabc5fca6)) - (pin "3" (uuid 32f49f5c-1642-40f9-9b18-9ad7321354e7)) - (pin "4" (uuid 376bc595-dcc7-4f6b-87d6-97bff6b9444e)) - (pin "5" (uuid 9eab2a74-7819-4f65-8cc6-c6bfea329d49)) - (pin "6" (uuid c90abac9-738b-4b05-98c4-dec0f8dce5c2)) - (pin "8" (uuid 51e4f943-835c-4476-882a-7a3e4d26af2b)) - (pin "9" (uuid dd2caa7b-e7b6-458c-bbe6-9ee4d2d6ae22)) - (pin "10" (uuid 1d8fe69d-9fee-4d4b-a74a-5bb815fdc20b)) - (pin "11" (uuid 9fe6601e-2a0f-45e5-aae6-589e4182e4b0)) (pin "12" (uuid 3e35d241-33bf-4456-8daf-c6ab3b11199f)) (pin "13" (uuid 83dfac92-84bb-4294-8e83-88993079f665)) - (pin "14" (uuid de54d837-f4b7-4cf7-a81c-938adf10fca9)) - (pin "7" (uuid 0fc40bef-18cf-4821-9cb3-f36cf4358ace)) ) (symbol (lib_id "power:+5V") (at 375.412 97.79 0) (unit 1) @@ -10408,20 +10373,8 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 187.325 87.122 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 107f2e2e-70ca-4ab4-9d71-918d71770815)) - (pin "2" (uuid 69cb10ff-a0e2-4975-ba58-2a7c71078a26)) - (pin "3" (uuid 42399c56-e0f4-408a-9350-07cb5b6d7f4b)) - (pin "4" (uuid 8eb26a33-1ed2-47a7-bea7-d4fb234cf847)) - (pin "5" (uuid 9d76b60f-aa66-4ba7-a436-dea5679b5dd5)) - (pin "6" (uuid 0e0be57b-f293-4133-a71a-4018a5c708f3)) - (pin "8" (uuid f16bf821-0bff-4070-96a8-85bb70622adb)) - (pin "9" (uuid 328e2515-4e56-40fa-b869-71d9d148e806)) (pin "10" (uuid d911cf16-dd9b-4153-aa56-cfe690cdf084)) (pin "11" (uuid b0ce1fb7-0632-4799-a680-b317da495db9)) - (pin "12" (uuid 6d5f86fa-3f67-4c51-9cb1-d497c3f206cd)) - (pin "13" (uuid 98608ce4-907f-42d2-8245-3942449051fa)) - (pin "14" (uuid f73f81b1-4dd4-4f4f-ada1-428ca369647d)) - (pin "7" (uuid 5e943cb8-ba57-4d23-b6c6-3bc096bf10a3)) ) (symbol (lib_id "power:+5V") (at 398.272 97.79 0) (unit 1) @@ -10467,20 +10420,8 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 286.766 187.706 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid e157f6e2-f0a0-40ec-82af-d1a4a142b53e)) - (pin "2" (uuid 7b0666c4-94c4-4b4f-9f3f-236cabc5fca7)) - (pin "3" (uuid 32f49f5c-1642-40f9-9b18-9ad7321354e8)) - (pin "4" (uuid 376bc595-dcc7-4f6b-87d6-97bff6b9444f)) (pin "5" (uuid 471495fe-252b-4f0b-8470-686a3c6221dc)) (pin "6" (uuid 0116113f-4c86-400e-80e1-6175941574db)) - (pin "8" (uuid 51e4f943-835c-4476-882a-7a3e4d26af2c)) - (pin "9" (uuid dd2caa7b-e7b6-458c-bbe6-9ee4d2d6ae23)) - (pin "10" (uuid e67478b8-907e-448f-9d1e-bcf596708798)) - (pin "11" (uuid 58b1bf9e-a4b1-45c7-bda9-ca0c5dbb182e)) - (pin "12" (uuid 3e35d241-33bf-4456-8daf-c6ab3b1119a0)) - (pin "13" (uuid 83dfac92-84bb-4294-8e83-88993079f666)) - (pin "14" (uuid de54d837-f4b7-4cf7-a81c-938adf10fcaa)) - (pin "7" (uuid 0fc40bef-18cf-4821-9cb3-f36cf4358acf)) ) (symbol (lib_id "power:GND") (at 74.422 174.244 0) (unit 1) @@ -10514,20 +10455,12 @@ (property "Datasheet" "74xx/74hc_hct74.pdf" (id 3) (at 58.42 124.968 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid d2da9c11-b1df-4cc9-a0f9-b55b00bfaf30)) - (pin "2" (uuid 06eeb444-1ce9-479b-b772-906054c0cc1c)) - (pin "3" (uuid eef7e591-dd26-43b3-9bf9-c82d74c613a6)) - (pin "4" (uuid 83e1d78e-eef8-42fc-acb2-7a7d5ce9ee82)) - (pin "5" (uuid d6bffcbd-f2bd-4115-9535-aa28727d4a08)) - (pin "6" (uuid 2a51be14-2cea-4af4-a52d-a0bbea63f056)) (pin "10" (uuid aad3b9b9-438a-40c4-a42e-79eefd361626)) (pin "11" (uuid e6e27987-f1e4-45c7-b8d3-f3decc2166b0)) (pin "12" (uuid af5fadaa-8199-4b79-a435-1d9060d52fb3)) (pin "13" (uuid 7a161f3b-f74f-4267-b505-94eb6490288e)) (pin "8" (uuid 978cdad3-b292-4e46-949d-807d2da8c148)) (pin "9" (uuid 71389ba3-5975-43c0-be26-657886e74dc9)) - (pin "14" (uuid 2c35a585-0c26-4c99-8bcd-54908f10b551)) - (pin "7" (uuid 1ce7278b-8505-44e3-b07e-1ddb0e09f4f8)) ) (symbol (lib_id "Jumper:Jumper_3_Open") (at 309.88 75.946 90) (unit 1) @@ -10646,18 +10579,6 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 261.366 268.478 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid e157f6e2-f0a0-40ec-82af-d1a4a142b53f)) - (pin "2" (uuid 7b0666c4-94c4-4b4f-9f3f-236cabc5fca8)) - (pin "3" (uuid 32f49f5c-1642-40f9-9b18-9ad7321354e9)) - (pin "4" (uuid 376bc595-dcc7-4f6b-87d6-97bff6b94450)) - (pin "5" (uuid 9eab2a74-7819-4f65-8cc6-c6bfea329d4a)) - (pin "6" (uuid c90abac9-738b-4b05-98c4-dec0f8dce5c3)) - (pin "8" (uuid 51e4f943-835c-4476-882a-7a3e4d26af2d)) - (pin "9" (uuid dd2caa7b-e7b6-458c-bbe6-9ee4d2d6ae24)) - (pin "10" (uuid 1d8fe69d-9fee-4d4b-a74a-5bb815fdc20c)) - (pin "11" (uuid 9fe6601e-2a0f-45e5-aae6-589e4182e4b1)) - (pin "12" (uuid 1129e31c-b5f3-42b0-8dc9-2115840e7f2d)) - (pin "13" (uuid a2284364-fd8d-4ee8-aca0-1f91109bb078)) (pin "14" (uuid de54d837-f4b7-4cf7-a81c-938adf10fcab)) (pin "7" (uuid 0fc40bef-18cf-4821-9cb3-f36cf4358ad0)) ) @@ -10840,20 +10761,8 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 287.274 210.82 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid e157f6e2-f0a0-40ec-82af-d1a4a142b540)) - (pin "2" (uuid 7b0666c4-94c4-4b4f-9f3f-236cabc5fca9)) - (pin "3" (uuid 32f49f5c-1642-40f9-9b18-9ad7321354ea)) - (pin "4" (uuid 376bc595-dcc7-4f6b-87d6-97bff6b94451)) - (pin "5" (uuid 9eab2a74-7819-4f65-8cc6-c6bfea329d4b)) - (pin "6" (uuid c90abac9-738b-4b05-98c4-dec0f8dce5c4)) - (pin "8" (uuid 51e4f943-835c-4476-882a-7a3e4d26af2e)) - (pin "9" (uuid dd2caa7b-e7b6-458c-bbe6-9ee4d2d6ae25)) (pin "10" (uuid e67478b8-907e-448f-9d1e-bcf596708799)) (pin "11" (uuid 58b1bf9e-a4b1-45c7-bda9-ca0c5dbb182f)) - (pin "12" (uuid 3e35d241-33bf-4456-8daf-c6ab3b1119a1)) - (pin "13" (uuid 83dfac92-84bb-4294-8e83-88993079f667)) - (pin "14" (uuid de54d837-f4b7-4cf7-a81c-938adf10fcac)) - (pin "7" (uuid 0fc40bef-18cf-4821-9cb3-f36cf4358ad1)) ) (symbol (lib_id "Device:C_Small") (at 363.982 135.89 0) (unit 1) @@ -10958,25 +10867,13 @@ (in_bom yes) (on_board yes) (uuid 4991d4a0-6bf5-4325-88e8-8eba5fb919d0) (property "Reference" "U11" (id 0) (at 241.3 264.16 0)) - (property "Value" "74HC14" (id 1) (at 241.3 262.128 0)) + (property "Value" "74HCT14" (id 1) (at 241.3 262.128 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket_LongPads" (id 2) (at 241.3 268.478 0) (effects (font (size 1.27 1.27)) hide) ) (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC14" (id 3) (at 241.3 268.478 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 4bae2103-dba2-494c-9964-6026342a6a5e)) - (pin "2" (uuid 3565b236-ad54-4c18-8a08-db3c85a606af)) - (pin "3" (uuid b6f4c4df-4b7c-4555-9ab8-fc3cf25d2127)) - (pin "4" (uuid c64a8456-b14e-4d4e-b386-f8bfd1e08400)) - (pin "5" (uuid 98dec1ce-67b4-42e9-af00-a07d1e4c70d9)) - (pin "6" (uuid 7fec7485-e5ae-4c8a-aadb-9dee232c8239)) - (pin "8" (uuid 2d0d97e8-4d71-475a-891b-b5fd8c48c5f5)) - (pin "9" (uuid 0217bc67-6323-4971-a852-fa86076bd8a8)) - (pin "10" (uuid a41ef2fb-0af7-474d-9a1e-9c912a01ff69)) - (pin "11" (uuid bb73d9bc-5179-4e43-9eae-b94e0eb59c1d)) - (pin "12" (uuid 65315837-6e2e-4ecd-8759-319e4cea7030)) - (pin "13" (uuid a1b1849e-044f-4c9b-a32f-a307cceec4e9)) (pin "14" (uuid b82866a6-71a2-4bd0-b8cd-917449236930)) (pin "7" (uuid d0c22809-3fdf-4267-aca7-d13a5cd288cf)) ) @@ -11136,18 +11033,6 @@ ) (pin "1" (uuid 64f83bb6-48dd-4ae5-addf-c5eb5aa2f94f)) (pin "2" (uuid de2b92d5-c15c-4a3e-a280-ea883ca377f7)) - (pin "3" (uuid 42399c56-e0f4-408a-9350-07cb5b6d7f4c)) - (pin "4" (uuid 8eb26a33-1ed2-47a7-bea7-d4fb234cf848)) - (pin "5" (uuid 9d76b60f-aa66-4ba7-a436-dea5679b5dd6)) - (pin "6" (uuid 0e0be57b-f293-4133-a71a-4018a5c708f4)) - (pin "8" (uuid f16bf821-0bff-4070-96a8-85bb70622adc)) - (pin "9" (uuid 328e2515-4e56-40fa-b869-71d9d148e807)) - (pin "10" (uuid d911cf16-dd9b-4153-aa56-cfe690cdf085)) - (pin "11" (uuid b0ce1fb7-0632-4799-a680-b317da495dba)) - (pin "12" (uuid 6d5f86fa-3f67-4c51-9cb1-d497c3f206ce)) - (pin "13" (uuid 98608ce4-907f-42d2-8245-3942449051fb)) - (pin "14" (uuid f73f81b1-4dd4-4f4f-ada1-428ca369647e)) - (pin "7" (uuid 5e943cb8-ba57-4d23-b6c6-3bc096bf10a4)) ) (symbol (lib_id "74xx:74HC245") (at 87.122 252.984 0) (unit 1) @@ -11210,27 +11095,15 @@ (in_bom yes) (on_board yes) (uuid 58a8b3a1-a7aa-40fe-9a58-06c1422ea30c) (property "Reference" "U11" (id 0) (at 286.004 146.558 0)) - (property "Value" "74HC14" (id 1) (at 286.004 144.526 0)) + (property "Value" "74HCT14" (id 1) (at 286.004 144.526 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket_LongPads" (id 2) (at 286.004 150.876 0) (effects (font (size 1.27 1.27)) hide) ) (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC14" (id 3) (at 286.004 150.876 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 4bae2103-dba2-494c-9964-6026342a6a5f)) - (pin "2" (uuid 3565b236-ad54-4c18-8a08-db3c85a606b0)) - (pin "3" (uuid 3df825ec-9b11-46c7-a8c0-d60af9138927)) - (pin "4" (uuid 7f96a666-be9e-4c71-97d5-b7f84393d84a)) - (pin "5" (uuid 185ce7fc-526c-482b-8fb9-9f46d21f1907)) - (pin "6" (uuid 8d53f151-9fcc-4e74-8790-790c5624eb89)) (pin "8" (uuid 2d0d97e8-4d71-475a-891b-b5fd8c48c5f6)) (pin "9" (uuid 0217bc67-6323-4971-a852-fa86076bd8a9)) - (pin "10" (uuid a41ef2fb-0af7-474d-9a1e-9c912a01ff6a)) - (pin "11" (uuid bb73d9bc-5179-4e43-9eae-b94e0eb59c1e)) - (pin "12" (uuid 65315837-6e2e-4ecd-8759-319e4cea7031)) - (pin "13" (uuid a1b1849e-044f-4c9b-a32f-a307cceec4ea)) - (pin "14" (uuid b82866a6-71a2-4bd0-b8cd-917449236931)) - (pin "7" (uuid d0c22809-3fdf-4267-aca7-d13a5cd288d0)) ) (symbol (lib_id "power:GND") (at 125.73 121.412 0) (unit 1) @@ -11356,27 +11229,15 @@ (in_bom yes) (on_board yes) (uuid 5e60ccf7-42d3-46c6-8396-05d33b7f1d6c) (property "Reference" "U11" (id 0) (at 285.496 123.698 0)) - (property "Value" "74HC14" (id 1) (at 285.496 121.666 0)) + (property "Value" "74HCT14" (id 1) (at 285.496 121.666 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket_LongPads" (id 2) (at 285.496 128.016 0) (effects (font (size 1.27 1.27)) hide) ) (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC14" (id 3) (at 285.496 128.016 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 4bae2103-dba2-494c-9964-6026342a6a60)) - (pin "2" (uuid 3565b236-ad54-4c18-8a08-db3c85a606b1)) (pin "3" (uuid b41e4517-98c8-4329-8bc0-978b2fa63c4e)) (pin "4" (uuid abb12b97-eb39-44f2-812c-40fa60185ec2)) - (pin "5" (uuid 98dec1ce-67b4-42e9-af00-a07d1e4c70da)) - (pin "6" (uuid 7fec7485-e5ae-4c8a-aadb-9dee232c823a)) - (pin "8" (uuid 2d0d97e8-4d71-475a-891b-b5fd8c48c5f7)) - (pin "9" (uuid 0217bc67-6323-4971-a852-fa86076bd8aa)) - (pin "10" (uuid a41ef2fb-0af7-474d-9a1e-9c912a01ff6b)) - (pin "11" (uuid bb73d9bc-5179-4e43-9eae-b94e0eb59c1f)) - (pin "12" (uuid 65315837-6e2e-4ecd-8759-319e4cea7032)) - (pin "13" (uuid a1b1849e-044f-4c9b-a32f-a307cceec4eb)) - (pin "14" (uuid b82866a6-71a2-4bd0-b8cd-917449236932)) - (pin "7" (uuid d0c22809-3fdf-4267-aca7-d13a5cd288d1)) ) (symbol (lib_id "power:GND") (at 375.412 120.65 0) (unit 1) @@ -11432,15 +11293,6 @@ (pin "5" (uuid 183833a8-040b-4ba3-807a-b833a904df7c)) (pin "6" (uuid 201d184b-7b0f-4824-a007-7a42ffa3185b)) (pin "7" (uuid 2c400c97-957c-4ba6-9d55-40dcf8a81ffb)) - (pin "10" (uuid 8bed721e-0582-48dc-8187-6670c6fe02a6)) - (pin "11" (uuid 09c7dd60-7daa-4408-aace-33223dcf0bc2)) - (pin "12" (uuid 48a67817-c73a-481b-8887-fa0c0830e720)) - (pin "13" (uuid ba7e6b92-c928-4f92-a271-96b8e62738c9)) - (pin "14" (uuid b57660d0-90cf-4a3d-8400-f31c860d76e6)) - (pin "15" (uuid 2902e1e1-c70e-45ef-aa14-e00d289e1fe1)) - (pin "9" (uuid 44ab579e-237d-4b69-a927-9e295a07cc99)) - (pin "16" (uuid 5b41d5ec-007e-4bd4-a2a2-857347e6312c)) - (pin "8" (uuid e2b641fc-798b-4ecd-a86f-e0c82d02f9d1)) ) (symbol (lib_id "power:GND") (at 398.018 120.65 0) (unit 1) @@ -11567,18 +11419,6 @@ ) (pin "1" (uuid f843aa59-5974-45a8-8f1c-4846a2800e32)) (pin "2" (uuid 093da910-d9bc-44e1-9e5e-2abecb68c45a)) - (pin "3" (uuid 7df1a0fa-405b-4e17-8b5a-ae77baf2219d)) - (pin "4" (uuid 96f88dad-3c49-4bd8-9234-89f784b07f1c)) - (pin "5" (uuid 471495fe-252b-4f0b-8470-686a3c6221dd)) - (pin "6" (uuid 0116113f-4c86-400e-80e1-6175941574dc)) - (pin "8" (uuid 51e4f943-835c-4476-882a-7a3e4d26af2f)) - (pin "9" (uuid dd2caa7b-e7b6-458c-bbe6-9ee4d2d6ae26)) - (pin "10" (uuid e67478b8-907e-448f-9d1e-bcf59670879a)) - (pin "11" (uuid 58b1bf9e-a4b1-45c7-bda9-ca0c5dbb1830)) - (pin "12" (uuid 3e35d241-33bf-4456-8daf-c6ab3b1119a2)) - (pin "13" (uuid 83dfac92-84bb-4294-8e83-88993079f668)) - (pin "14" (uuid de54d837-f4b7-4cf7-a81c-938adf10fcad)) - (pin "7" (uuid 0fc40bef-18cf-4821-9cb3-f36cf4358ad2)) ) (symbol (lib_id "Device:R") (at 186.436 111.252 90) (unit 1) @@ -11695,52 +11535,6 @@ (property "Datasheet" "" (id 3) (at 287.02 107.442 0) (effects (font (size 1.524 1.524))) ) - (pin "10" (uuid 4573b838-470c-4cd0-9786-6cc932344caa)) - (pin "11" (uuid 03061bef-6029-435a-8c52-c3ab8bd5f0e4)) - (pin "12" (uuid a655ef23-01a3-4028-9a58-0c7805547fec)) - (pin "14" (uuid 3946998f-39d2-46f6-9e6f-591426da3d24)) - (pin "15" (uuid 378814bd-4ffb-413d-9e70-9ee78e35f685)) - (pin "16" (uuid 3fb15544-4451-49aa-a16f-d90cd5d3c2e3)) - (pin "17" (uuid 2d3046ba-0906-41ad-9df3-9941e110127c)) - (pin "18" (uuid dd6ce3f4-9a25-4dec-a134-1ca12dc9cf04)) - (pin "19" (uuid b54d048e-6075-4647-b71d-429e378b293b)) - (pin "2" (uuid 71f47bbb-1271-4fa4-9356-f356ceb286ec)) - (pin "20" (uuid ba6ec220-debd-444b-9c64-11963b4c14a2)) - (pin "21" (uuid 1efdba85-db9e-4762-a4e7-0d3a9e76977f)) - (pin "22" (uuid 03edd7f0-aacb-4b40-8b6a-32e8ada40c84)) - (pin "23" (uuid 86a1df0f-100f-445f-a32e-cf30029006ca)) - (pin "24" (uuid 6897b7b0-f038-401d-b5ad-8005cddfddcc)) - (pin "25" (uuid 0e573c80-fdde-446b-88cb-32b46fb63075)) - (pin "26" (uuid f9f71155-af8b-495d-aa06-90f1ece6b6ce)) - (pin "27" (uuid 87fc5146-30b5-4afb-97a4-34f39f63e981)) - (pin "28" (uuid 6af2cad3-1a5e-484a-aead-785d7e708a85)) - (pin "29" (uuid 42210ae4-f2e0-47d6-9858-08082c52f6d4)) - (pin "3" (uuid f9bc07cb-1b3a-42a0-a1a8-14e98b0b1a94)) - (pin "30" (uuid d9ddf81c-ece8-496d-99ab-f40dd3f95ea3)) - (pin "31" (uuid fd57b678-cfdb-4383-85e6-775aea6f0e27)) - (pin "32" (uuid cfe21da7-312f-4708-99f5-43c1ee18d4aa)) - (pin "33" (uuid 243bb984-3fb6-45ca-be1c-c35231010be8)) - (pin "34" (uuid a7182102-8f89-4e2e-9252-1175fbddfd92)) - (pin "35" (uuid f21977b5-2535-42c5-a99a-f755b124522b)) - (pin "36" (uuid 04c8be6b-702b-41c2-bd20-bad7f508d0b4)) - (pin "37" (uuid eab2d464-1641-4ce3-83b2-523a18d6d533)) - (pin "39" (uuid 231bf5c2-f094-4df2-993a-68d53479b961)) - (pin "4" (uuid eabb45c8-b438-476d-9acd-fa03e43fd995)) - (pin "40" (uuid 24e3051e-ae2f-47a9-931e-21e05b9b0691)) - (pin "41" (uuid d00290fa-7680-497e-b992-d2b5aff90495)) - (pin "42" (uuid eaf0c236-0e0f-4b7d-9e7e-09853cadea40)) - (pin "43" (uuid d08596da-3c6a-4725-99cb-248b1206282f)) - (pin "44" (uuid 6142e2ac-d8a7-48dc-80ae-85f81c305d2d)) - (pin "45" (uuid 3d100e69-01a6-4a47-9caa-6069399c800c)) - (pin "46" (uuid 3e8cd463-1477-4ded-86a5-f3305a60f996)) - (pin "47" (uuid 0997ccd0-4111-4936-b37c-ac8323eac75f)) - (pin "48" (uuid 541ad014-76fb-4ad5-9539-86c1d904b0a3)) - (pin "49" (uuid 8579a3d4-8081-4fe2-afe7-64d3f7575d03)) - (pin "5" (uuid ba9ccb80-387d-4f20-8a15-3a05507cedf9)) - (pin "6" (uuid 7896ab11-59df-46cf-906a-46a03f7fb23e)) - (pin "7" (uuid 24921957-2f43-49db-8b7e-ab1ee0aca8ab)) - (pin "8" (uuid 0408065f-7853-42c6-8104-3e481bc2860d)) - (pin "9" (uuid 3bae65ba-263b-4582-a012-e6d16f896473)) (pin "1" (uuid d2434890-0174-4195-98c8-d920051d2d76)) (pin "13" (uuid aea30e0e-36d8-4348-8bd9-845ff148bced)) (pin "38" (uuid 895fdc1a-6cba-4857-86e0-cdf46cf7810d)) @@ -11955,18 +11749,6 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74hc02" (id 3) (at 198.882 268.732 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid d80687dc-d793-48ab-96aa-5587f458d27a)) - (pin "2" (uuid e116256e-8f08-4c19-9967-3c1b0697bf5d)) - (pin "3" (uuid f67032f2-0ef3-417d-892e-025a6a35b6c9)) - (pin "4" (uuid e05b5b58-e2fd-419d-a39f-28430735064f)) - (pin "5" (uuid d8eb17ae-7649-4800-80b1-d0d15ccee7cd)) - (pin "6" (uuid 6f79cfdc-03c1-407f-a84f-91f27baeafbb)) - (pin "10" (uuid 812065ce-5f01-4f3f-94cf-cef416146be8)) - (pin "8" (uuid ee974ca5-c429-4072-bb88-2107b1eadcfb)) - (pin "9" (uuid dcc1b4d9-0694-4552-af63-e44fd3049231)) - (pin "11" (uuid ac8d5d63-35ba-4ef1-b4e8-8bc719c6baf6)) - (pin "12" (uuid 32f97159-f487-4078-8fcf-601f1198c7fe)) - (pin "13" (uuid 543b7110-8cf8-4b19-bab1-5a27656e6eeb)) (pin "14" (uuid 34d70169-f461-4cbc-bd67-6d4abb544207)) (pin "7" (uuid 50aa8e35-be72-4125-bcf9-e795dd8a0d3f)) ) @@ -12023,27 +11805,15 @@ (in_bom yes) (on_board yes) (uuid 873af6b6-9a62-48b1-9afe-8d3f03695547) (property "Reference" "U11" (id 0) (at 301.244 146.558 0)) - (property "Value" "74HC14" (id 1) (at 301.244 144.526 0)) + (property "Value" "74HCT14" (id 1) (at 301.244 144.526 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket_LongPads" (id 2) (at 301.244 150.876 0) (effects (font (size 1.27 1.27)) hide) ) (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC14" (id 3) (at 301.244 150.876 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 4bae2103-dba2-494c-9964-6026342a6a61)) - (pin "2" (uuid 3565b236-ad54-4c18-8a08-db3c85a606b2)) - (pin "3" (uuid 3df825ec-9b11-46c7-a8c0-d60af9138928)) - (pin "4" (uuid 7f96a666-be9e-4c71-97d5-b7f84393d84b)) - (pin "5" (uuid 0551fd65-2e97-4509-a8ca-0bcb8c35f0f9)) - (pin "6" (uuid 56f5b349-7ac7-450e-b25f-ee062a61a5a8)) - (pin "8" (uuid 2d0d97e8-4d71-475a-891b-b5fd8c48c5f8)) - (pin "9" (uuid 0217bc67-6323-4971-a852-fa86076bd8ab)) (pin "10" (uuid a41ef2fb-0af7-474d-9a1e-9c912a01ff6c)) (pin "11" (uuid bb73d9bc-5179-4e43-9eae-b94e0eb59c20)) - (pin "12" (uuid 65315837-6e2e-4ecd-8759-319e4cea7033)) - (pin "13" (uuid a1b1849e-044f-4c9b-a32f-a307cceec4ec)) - (pin "14" (uuid b82866a6-71a2-4bd0-b8cd-917449236933)) - (pin "7" (uuid d0c22809-3fdf-4267-aca7-d13a5cd288d2)) ) (symbol (lib_id "power:GND") (at 386.842 156.21 0) (unit 1) @@ -12272,18 +12042,6 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 179.07 268.224 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 25a56790-aca2-42bb-beb0-900be700f21e)) - (pin "2" (uuid 47a14ce8-3e5b-4820-9c5d-29fbe2828c17)) - (pin "3" (uuid 42399c56-e0f4-408a-9350-07cb5b6d7f4f)) - (pin "4" (uuid 8eb26a33-1ed2-47a7-bea7-d4fb234cf84b)) - (pin "5" (uuid 9d76b60f-aa66-4ba7-a436-dea5679b5dd9)) - (pin "6" (uuid 0e0be57b-f293-4133-a71a-4018a5c708f7)) - (pin "8" (uuid f16bf821-0bff-4070-96a8-85bb70622adf)) - (pin "9" (uuid 328e2515-4e56-40fa-b869-71d9d148e80a)) - (pin "10" (uuid d911cf16-dd9b-4153-aa56-cfe690cdf088)) - (pin "11" (uuid b0ce1fb7-0632-4799-a680-b317da495dbd)) - (pin "12" (uuid c67c2563-38e8-42ab-96d0-aa1899b2088b)) - (pin "13" (uuid e2627a68-9841-4a4c-b3d2-2830ec14883c)) (pin "14" (uuid f73f81b1-4dd4-4f4f-ada1-428ca3696481)) (pin "7" (uuid 5e943cb8-ba57-4d23-b6c6-3bc096bf10a7)) ) @@ -12371,7 +12129,7 @@ (in_bom yes) (on_board yes) (uuid 9afe87de-9bfb-4f0e-8863-52198a180967) (property "Reference" "U11" (id 0) (at 181.61 235.712 0)) - (property "Value" "74HC14" (id 1) (at 181.61 233.68 0)) + (property "Value" "74HCT14" (id 1) (at 181.61 233.68 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket_LongPads" (id 2) (at 181.61 240.03 0) (effects (font (size 1.27 1.27)) hide) ) @@ -12380,18 +12138,6 @@ ) (pin "1" (uuid b12c2461-60ed-4d88-a0e5-3261e77822d2)) (pin "2" (uuid 5119eb2c-419a-46da-b091-7658b638518e)) - (pin "3" (uuid b41e4517-98c8-4329-8bc0-978b2fa63c4f)) - (pin "4" (uuid abb12b97-eb39-44f2-812c-40fa60185ec3)) - (pin "5" (uuid 98dec1ce-67b4-42e9-af00-a07d1e4c70db)) - (pin "6" (uuid 7fec7485-e5ae-4c8a-aadb-9dee232c823b)) - (pin "8" (uuid 2d0d97e8-4d71-475a-891b-b5fd8c48c5f9)) - (pin "9" (uuid 0217bc67-6323-4971-a852-fa86076bd8ac)) - (pin "10" (uuid a41ef2fb-0af7-474d-9a1e-9c912a01ff6d)) - (pin "11" (uuid bb73d9bc-5179-4e43-9eae-b94e0eb59c21)) - (pin "12" (uuid 65315837-6e2e-4ecd-8759-319e4cea7034)) - (pin "13" (uuid a1b1849e-044f-4c9b-a32f-a307cceec4ed)) - (pin "14" (uuid b82866a6-71a2-4bd0-b8cd-917449236934)) - (pin "7" (uuid d0c22809-3fdf-4267-aca7-d13a5cd288d3)) ) (symbol (lib_id "power:+5V") (at 137.922 143.764 0) (unit 1) @@ -12473,20 +12219,6 @@ (property "Datasheet" "http://www.ti.com/lit/ds/symlink/sn74ls139a.pdf" (id 3) (at 219.71 268.478 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 13612cd9-b773-4a33-8e9a-3668b39fb070)) - (pin "2" (uuid 2b5f0047-1a3f-4b0d-91ee-7b53167aa24c)) - (pin "3" (uuid 437aa696-e56e-4d70-8acb-bd842651e13e)) - (pin "4" (uuid 7885a3f2-33ec-4aff-bd6f-b10a71b329f6)) - (pin "5" (uuid 37679587-bb0a-400e-ab1e-82c73c51661b)) - (pin "6" (uuid ddfc2e44-416e-40aa-aff3-98b50a8d27bd)) - (pin "7" (uuid 40b055d8-03e8-4a52-872c-52fca5daa643)) - (pin "10" (uuid 8bed721e-0582-48dc-8187-6670c6fe02a7)) - (pin "11" (uuid 09c7dd60-7daa-4408-aace-33223dcf0bc3)) - (pin "12" (uuid 48a67817-c73a-481b-8887-fa0c0830e721)) - (pin "13" (uuid ba7e6b92-c928-4f92-a271-96b8e62738ca)) - (pin "14" (uuid b57660d0-90cf-4a3d-8400-f31c860d76e7)) - (pin "15" (uuid 2902e1e1-c70e-45ef-aa14-e00d289e1fe2)) - (pin "9" (uuid 44ab579e-237d-4b69-a927-9e295a07cc9a)) (pin "16" (uuid 5b41d5ec-007e-4bd4-a2a2-857347e6312d)) (pin "8" (uuid e2b641fc-798b-4ecd-a86f-e0c82d02f9d2)) ) @@ -12495,27 +12227,15 @@ (in_bom yes) (on_board yes) (uuid 9d41c33f-c4c1-40d0-bff1-733a96e8404b) (property "Reference" "U11" (id 0) (at 285.75 135.128 0)) - (property "Value" "74HC14" (id 1) (at 285.75 133.096 0)) + (property "Value" "74HCT14" (id 1) (at 285.75 133.096 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket_LongPads" (id 2) (at 285.75 139.446 0) (effects (font (size 1.27 1.27)) hide) ) (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC14" (id 3) (at 285.75 139.446 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 4bae2103-dba2-494c-9964-6026342a6a62)) - (pin "2" (uuid 3565b236-ad54-4c18-8a08-db3c85a606b3)) - (pin "3" (uuid 3df825ec-9b11-46c7-a8c0-d60af9138929)) - (pin "4" (uuid 7f96a666-be9e-4c71-97d5-b7f84393d84c)) (pin "5" (uuid 98dec1ce-67b4-42e9-af00-a07d1e4c70dc)) (pin "6" (uuid 7fec7485-e5ae-4c8a-aadb-9dee232c823c)) - (pin "8" (uuid 2d0d97e8-4d71-475a-891b-b5fd8c48c5fa)) - (pin "9" (uuid 0217bc67-6323-4971-a852-fa86076bd8ad)) - (pin "10" (uuid a41ef2fb-0af7-474d-9a1e-9c912a01ff6e)) - (pin "11" (uuid bb73d9bc-5179-4e43-9eae-b94e0eb59c22)) - (pin "12" (uuid 65315837-6e2e-4ecd-8759-319e4cea7035)) - (pin "13" (uuid a1b1849e-044f-4c9b-a32f-a307cceec4ee)) - (pin "14" (uuid b82866a6-71a2-4bd0-b8cd-917449236935)) - (pin "7" (uuid d0c22809-3fdf-4267-aca7-d13a5cd288d4)) ) (symbol (lib_id "power:GND") (at 27.432 265.049 0) (unit 1) @@ -12561,20 +12281,8 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 187.325 60.452 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 9fdfc075-73d9-4ae1-b8d0-0c2b02fac986)) - (pin "2" (uuid 53cfa486-4753-423f-9dc3-861c9460d8c7)) - (pin "3" (uuid 42399c56-e0f4-408a-9350-07cb5b6d7f4d)) - (pin "4" (uuid 8eb26a33-1ed2-47a7-bea7-d4fb234cf849)) (pin "5" (uuid 9d76b60f-aa66-4ba7-a436-dea5679b5dd7)) (pin "6" (uuid 0e0be57b-f293-4133-a71a-4018a5c708f5)) - (pin "8" (uuid f16bf821-0bff-4070-96a8-85bb70622add)) - (pin "9" (uuid 328e2515-4e56-40fa-b869-71d9d148e808)) - (pin "10" (uuid d911cf16-dd9b-4153-aa56-cfe690cdf086)) - (pin "11" (uuid b0ce1fb7-0632-4799-a680-b317da495dbb)) - (pin "12" (uuid 6d5f86fa-3f67-4c51-9cb1-d497c3f206cf)) - (pin "13" (uuid 98608ce4-907f-42d2-8245-3942449051fc)) - (pin "14" (uuid f73f81b1-4dd4-4f4f-ada1-428ca369647f)) - (pin "7" (uuid 5e943cb8-ba57-4d23-b6c6-3bc096bf10a5)) ) (symbol (lib_id "power:+5V") (at 386.842 115.57 0) (unit 1) @@ -12670,20 +12378,8 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 286.512 176.276 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid e157f6e2-f0a0-40ec-82af-d1a4a142b541)) - (pin "2" (uuid 7b0666c4-94c4-4b4f-9f3f-236cabc5fcaa)) (pin "3" (uuid 7df1a0fa-405b-4e17-8b5a-ae77baf2219e)) (pin "4" (uuid 96f88dad-3c49-4bd8-9234-89f784b07f1d)) - (pin "5" (uuid 471495fe-252b-4f0b-8470-686a3c6221de)) - (pin "6" (uuid 0116113f-4c86-400e-80e1-6175941574dd)) - (pin "8" (uuid 51e4f943-835c-4476-882a-7a3e4d26af30)) - (pin "9" (uuid dd2caa7b-e7b6-458c-bbe6-9ee4d2d6ae27)) - (pin "10" (uuid e67478b8-907e-448f-9d1e-bcf59670879b)) - (pin "11" (uuid 58b1bf9e-a4b1-45c7-bda9-ca0c5dbb1831)) - (pin "12" (uuid 3e35d241-33bf-4456-8daf-c6ab3b1119a3)) - (pin "13" (uuid 83dfac92-84bb-4294-8e83-88993079f669)) - (pin "14" (uuid de54d837-f4b7-4cf7-a81c-938adf10fcae)) - (pin "7" (uuid 0fc40bef-18cf-4821-9cb3-f36cf4358ad3)) ) (symbol (lib_id "power:GND") (at 289.56 115.062 0) (unit 1) @@ -12857,20 +12553,8 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 287.02 199.39 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid e157f6e2-f0a0-40ec-82af-d1a4a142b542)) - (pin "2" (uuid 7b0666c4-94c4-4b4f-9f3f-236cabc5fcab)) - (pin "3" (uuid 32f49f5c-1642-40f9-9b18-9ad7321354eb)) - (pin "4" (uuid 376bc595-dcc7-4f6b-87d6-97bff6b94452)) - (pin "5" (uuid 533804da-2d24-4263-877d-f16bfbfd81ee)) - (pin "6" (uuid 578592cd-b5cb-4d48-b2a0-2251221c79a3)) (pin "8" (uuid 51e4f943-835c-4476-882a-7a3e4d26af31)) (pin "9" (uuid dd2caa7b-e7b6-458c-bbe6-9ee4d2d6ae28)) - (pin "10" (uuid e67478b8-907e-448f-9d1e-bcf59670879c)) - (pin "11" (uuid 58b1bf9e-a4b1-45c7-bda9-ca0c5dbb1832)) - (pin "12" (uuid 3e35d241-33bf-4456-8daf-c6ab3b1119a4)) - (pin "13" (uuid 83dfac92-84bb-4294-8e83-88993079f66a)) - (pin "14" (uuid de54d837-f4b7-4cf7-a81c-938adf10fcaf)) - (pin "7" (uuid 0fc40bef-18cf-4821-9cb3-f36cf4358ad4)) ) (symbol (lib_id "Device:R_Network08") (at 31.242 69.469 90) (unit 1) @@ -13186,20 +12870,8 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 187.325 73.787 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 08710212-7112-44d9-b6c8-2e81165ad1bf)) - (pin "2" (uuid 90f76c30-f4d2-4d00-8ec6-02e06b949e31)) - (pin "3" (uuid 42399c56-e0f4-408a-9350-07cb5b6d7f4e)) - (pin "4" (uuid 8eb26a33-1ed2-47a7-bea7-d4fb234cf84a)) - (pin "5" (uuid 9d76b60f-aa66-4ba7-a436-dea5679b5dd8)) - (pin "6" (uuid 0e0be57b-f293-4133-a71a-4018a5c708f6)) (pin "8" (uuid f16bf821-0bff-4070-96a8-85bb70622ade)) (pin "9" (uuid 328e2515-4e56-40fa-b869-71d9d148e809)) - (pin "10" (uuid d911cf16-dd9b-4153-aa56-cfe690cdf087)) - (pin "11" (uuid b0ce1fb7-0632-4799-a680-b317da495dbc)) - (pin "12" (uuid 6d5f86fa-3f67-4c51-9cb1-d497c3f206d0)) - (pin "13" (uuid 98608ce4-907f-42d2-8245-3942449051fd)) - (pin "14" (uuid f73f81b1-4dd4-4f4f-ada1-428ca3696480)) - (pin "7" (uuid 5e943cb8-ba57-4d23-b6c6-3bc096bf10a6)) ) (symbol (lib_id "74xx:74HC245") (at 87.122 161.544 0) (unit 1) @@ -13258,14 +12930,6 @@ (pin "4" (uuid 9587fb5f-5611-4cf1-9cbc-3266b9e74a85)) (pin "5" (uuid 7611e64f-5d32-47d0-b2d0-556ea903fad3)) (pin "6" (uuid 82bcd7d4-3cb3-45e6-a8e2-70ac5c470ca0)) - (pin "10" (uuid c8bb0c9a-4a18-4c50-8458-2e404be460f8)) - (pin "11" (uuid 69fcf607-e6fb-4830-9517-fe4ec6f5ad45)) - (pin "12" (uuid f3fc77d0-92dd-4113-8833-356586ce3633)) - (pin "13" (uuid b2c8224b-730d-4cb5-bc1f-d0be3f96c297)) - (pin "8" (uuid c1615d0e-c441-4f89-b436-82004412de19)) - (pin "9" (uuid 5c7dc3c6-d6f7-4aad-95d0-49576a6a5833)) - (pin "14" (uuid b22ccddb-616b-4574-83bd-43ee7ff88ee5)) - (pin "7" (uuid 30be24ca-4399-449e-8136-3f2718d5af1f)) ) (symbol (lib_id "Device:R") (at 166.624 137.414 90) (unit 1) @@ -13333,18 +12997,6 @@ (property "Datasheet" "74xx/74hc_hct74.pdf" (id 3) (at 160.02 267.97 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 8f99d6ea-f96b-40e6-9a04-4ab5fd0930b1)) - (pin "2" (uuid 5d5551e1-a33d-4104-8660-158dad8a6a57)) - (pin "3" (uuid 5bd8f6a8-f0cc-46ea-97b8-3533e0465690)) - (pin "4" (uuid eb3448b4-dd84-401f-9dd6-f2fe819b49e2)) - (pin "5" (uuid 361ae140-753c-4ffd-b5d6-dca1a35f40fd)) - (pin "6" (uuid 5c6ed10a-14c5-438c-b7ac-2130a5f620db)) - (pin "10" (uuid c993b6cb-25fb-4c6f-bb59-d48e438da83e)) - (pin "11" (uuid c8d1068b-1c54-4174-95c1-37a03dff9b1b)) - (pin "12" (uuid c49804c5-51c4-45fa-97ab-350536614ade)) - (pin "13" (uuid cb6006cd-c15a-4513-be5a-d8547623a083)) - (pin "8" (uuid 10445ca9-78d8-44a3-880e-46faca1204d4)) - (pin "9" (uuid 33c169ad-9106-4c9b-9bbb-6cee93b688a8)) (pin "14" (uuid 416807b3-0ba3-4311-983b-bebca4252eaa)) (pin "7" (uuid 91e8ac46-2762-444f-8f19-7db8009307f8)) ) @@ -13385,27 +13037,15 @@ (in_bom yes) (on_board yes) (uuid dbc8c9af-f33d-4244-9cbb-abe15bde7419) (property "Reference" "U11" (id 0) (at 244.348 234.95 0)) - (property "Value" "74HC14" (id 1) (at 244.348 232.918 0)) + (property "Value" "74HCT14" (id 1) (at 244.348 232.918 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket_LongPads" (id 2) (at 244.348 239.268 0) (effects (font (size 1.27 1.27)) hide) ) (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC14" (id 3) (at 244.348 239.268 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid e3b00d1a-86fa-4003-adb4-d1371f72aced)) - (pin "2" (uuid c74d1ac5-73dc-4e36-8617-c4795142ff14)) - (pin "3" (uuid b41e4517-98c8-4329-8bc0-978b2fa63c50)) - (pin "4" (uuid abb12b97-eb39-44f2-812c-40fa60185ec4)) - (pin "5" (uuid 98dec1ce-67b4-42e9-af00-a07d1e4c70dd)) - (pin "6" (uuid 7fec7485-e5ae-4c8a-aadb-9dee232c823d)) - (pin "8" (uuid 2d0d97e8-4d71-475a-891b-b5fd8c48c5fb)) - (pin "9" (uuid 0217bc67-6323-4971-a852-fa86076bd8ae)) - (pin "10" (uuid a41ef2fb-0af7-474d-9a1e-9c912a01ff6f)) - (pin "11" (uuid bb73d9bc-5179-4e43-9eae-b94e0eb59c23)) (pin "12" (uuid 65315837-6e2e-4ecd-8759-319e4cea7036)) (pin "13" (uuid a1b1849e-044f-4c9b-a32f-a307cceec4ef)) - (pin "14" (uuid b82866a6-71a2-4bd0-b8cd-917449236936)) - (pin "7" (uuid d0c22809-3fdf-4267-aca7-d13a5cd288d5)) ) (symbol (lib_id "power:+5V") (at 219.71 255.778 0) (unit 1) @@ -13578,10 +13218,6 @@ (pin "7" (uuid c1b18d9b-b2ab-411a-be66-4b608bd87e7f)) (pin "8" (uuid e6aa6f71-c0bc-44a8-b6af-fd25e07bec37)) (pin "9" (uuid cd1cdfac-8bf0-4ac6-861c-ae16691b500a)) - (pin "1" (uuid d2434890-0174-4195-98c8-d920051d2d77)) - (pin "13" (uuid aea30e0e-36d8-4348-8bd9-845ff148bcee)) - (pin "38" (uuid 895fdc1a-6cba-4857-86e0-cdf46cf7810e)) - (pin "50" (uuid 1b5af669-6c08-49e7-aef6-dbae710c9785)) ) (symbol (lib_id "74xx:74HCT04") (at 187.325 101.092 0) (unit 6) @@ -13595,20 +13231,8 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 187.325 101.092 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 25a56790-aca2-42bb-beb0-900be700f21f)) - (pin "2" (uuid 47a14ce8-3e5b-4820-9c5d-29fbe2828c18)) - (pin "3" (uuid 42399c56-e0f4-408a-9350-07cb5b6d7f50)) - (pin "4" (uuid 8eb26a33-1ed2-47a7-bea7-d4fb234cf84c)) - (pin "5" (uuid 9d76b60f-aa66-4ba7-a436-dea5679b5dda)) - (pin "6" (uuid 0e0be57b-f293-4133-a71a-4018a5c708f8)) - (pin "8" (uuid f16bf821-0bff-4070-96a8-85bb70622ae0)) - (pin "9" (uuid 328e2515-4e56-40fa-b869-71d9d148e80b)) - (pin "10" (uuid d911cf16-dd9b-4153-aa56-cfe690cdf089)) - (pin "11" (uuid b0ce1fb7-0632-4799-a680-b317da495dbe)) (pin "12" (uuid 6d5f86fa-3f67-4c51-9cb1-d497c3f206d1)) (pin "13" (uuid 98608ce4-907f-42d2-8245-3942449051fe)) - (pin "14" (uuid f73f81b1-4dd4-4f4f-ada1-428ca3696482)) - (pin "7" (uuid 5e943cb8-ba57-4d23-b6c6-3bc096bf10a8)) ) (symbol (lib_id "Connector:TestPoint") (at 329.692 221.742 270) (unit 1) @@ -13781,20 +13405,9 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74hc02" (id 3) (at 146.304 196.596 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid d80687dc-d793-48ab-96aa-5587f458d27b)) - (pin "2" (uuid e116256e-8f08-4c19-9967-3c1b0697bf5e)) - (pin "3" (uuid f67032f2-0ef3-417d-892e-025a6a35b6ca)) (pin "4" (uuid e05b5b58-e2fd-419d-a39f-284307350650)) (pin "5" (uuid d8eb17ae-7649-4800-80b1-d0d15ccee7ce)) (pin "6" (uuid 6f79cfdc-03c1-407f-a84f-91f27baeafbc)) - (pin "10" (uuid 812065ce-5f01-4f3f-94cf-cef416146be9)) - (pin "8" (uuid ee974ca5-c429-4072-bb88-2107b1eadcfc)) - (pin "9" (uuid dcc1b4d9-0694-4552-af63-e44fd3049232)) - (pin "11" (uuid ac8d5d63-35ba-4ef1-b4e8-8bc719c6baf7)) - (pin "12" (uuid 32f97159-f487-4078-8fcf-601f1198c7ff)) - (pin "13" (uuid 543b7110-8cf8-4b19-bab1-5a27656e6eec)) - (pin "14" (uuid 5a6274f1-c1b4-4e61-a387-e24481ee2fc3)) - (pin "7" (uuid 179be303-b3f5-4fbd-a9ac-aad80b796be1)) ) (symbol (lib_id "power:GND") (at 219.71 281.178 0) (unit 1) @@ -14484,25 +14097,25 @@ (reference "U10") (unit 7) (value "74HCT04") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") ) (path "/9afe87de-9bfb-4f0e-8863-52198a180967" - (reference "U11") (unit 1) (value "74HC14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") + (reference "U11") (unit 1) (value "74HCT14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") ) (path "/5e60ccf7-42d3-46c6-8396-05d33b7f1d6c" - (reference "U11") (unit 2) (value "74HC14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") + (reference "U11") (unit 2) (value "74HCT14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") ) (path "/9d41c33f-c4c1-40d0-bff1-733a96e8404b" - (reference "U11") (unit 3) (value "74HC14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") + (reference "U11") (unit 3) (value "74HCT14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") ) (path "/58a8b3a1-a7aa-40fe-9a58-06c1422ea30c" - (reference "U11") (unit 4) (value "74HC14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") + (reference "U11") (unit 4) (value "74HCT14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") ) (path "/873af6b6-9a62-48b1-9afe-8d3f03695547" - (reference "U11") (unit 5) (value "74HC14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") + (reference "U11") (unit 5) (value "74HCT14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") ) (path "/dbc8c9af-f33d-4244-9cbb-abe15bde7419" - (reference "U11") (unit 6) (value "74HC14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") + (reference "U11") (unit 6) (value "74HCT14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") ) (path "/4991d4a0-6bf5-4325-88e8-8eba5fb919d0" - (reference "U11") (unit 7) (value "74HC14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") + (reference "U11") (unit 7) (value "74HCT14") (footprint "Package_DIP:DIP-14_W7.62mm_Socket_LongPads") ) (path "/61bb57b3-b259-44c7-8355-3e1e40d84459" (reference "U12") (unit 1) (value "74HCT139") (footprint "Package_DIP:DIP-16_W7.62mm_Socket_LongPads") diff --git a/Schematics/Z80-MIO/Z80-MIO-backups/Z80-MIO-2022-11-02_165028.zip b/Schematics/Z80-MIO/Z80-MIO-backups/Z80-MIO-2022-11-02_165028.zip new file mode 100644 index 0000000..2e615fa Binary files /dev/null and b/Schematics/Z80-MIO/Z80-MIO-backups/Z80-MIO-2022-11-02_165028.zip differ diff --git a/Schematics/Z80-MIO/Z80-MIO-backups/Z80-MIO-2022-11-02_165530.zip b/Schematics/Z80-MIO/Z80-MIO-backups/Z80-MIO-2022-11-02_165530.zip new file mode 100644 index 0000000..b713b84 Binary files /dev/null and b/Schematics/Z80-MIO/Z80-MIO-backups/Z80-MIO-2022-11-02_165530.zip differ diff --git a/Schematics/Z80-MIO/Z80-MIO.kicad_pcb b/Schematics/Z80-MIO/Z80-MIO.kicad_pcb index b62f648..0c983ea 100644 --- a/Schematics/Z80-MIO/Z80-MIO.kicad_pcb +++ b/Schematics/Z80-MIO/Z80-MIO.kicad_pcb @@ -5,6 +5,10 @@ ) (paper "A4") + (title_block + (rev "2") + ) + (layers (0 "F.Cu" signal) (31 "B.Cu" signal) @@ -161,105 +165,104 @@ (net 71 "Net-(RN1-Pad7)") (net 72 "Net-(RN1-Pad8)") (net 73 "Net-(RN1-Pad9)") - (net 74 "/{slash}IOREQ") - (net 75 "Net-(U1-Pad19)") - (net 76 "/~{#IOREQ}") - (net 77 "/~{#RD}") - (net 78 "/~{#WR}") - (net 79 "unconnected-(U2-Pad9)") - (net 80 "unconnected-(U2-Pad11)") - (net 81 "BUSDIR") - (net 82 "unconnected-(U2-Pad13)") - (net 83 "unconnected-(U2-Pad14)") - (net 84 "Net-(J4-Pad8)") - (net 85 "Net-(U2-Pad16)") - (net 86 "Net-(J4-Pad9)") - (net 87 "/CS_PS2") - (net 88 "/BOARD_CS") - (net 89 "/#D0") - (net 90 "/#D1") - (net 91 "/#D2") - (net 92 "/#D3") - (net 93 "/#D4") - (net 94 "/#D5") - (net 95 "/#D6") - (net 96 "/#D7") - (net 97 "/#A0") - (net 98 "/#A1") - (net 99 "/#A2") - (net 100 "/#A3") - (net 101 "/#A4") - (net 102 "/#A5") - (net 103 "/#A6") - (net 104 "/#A7") - (net 105 "/~{INT3}") - (net 106 "Net-(J4-Pad10)") - (net 107 "Net-(U6-Pad14)") - (net 108 "unconnected-(J5-Pad2)") - (net 109 "unconnected-(U6-Pad16)") - (net 110 "unconnected-(U6-Pad17)") - (net 111 "unconnected-(U6-Pad18)") - (net 112 "unconnected-(U6-Pad21)") - (net 113 "/#CLK_CPU") - (net 114 "/~{#M1}") - (net 115 "MSCO") - (net 116 "MSDO") - (net 117 "KBDO") - (net 118 "KBCO") - (net 119 "Net-(U7-Pad11)") - (net 120 "/~{#RESET}") - (net 121 "unconnected-(U9-Pad11)") - (net 122 "unconnected-(U9-Pad21)") - (net 123 "unconnected-(U9-Pad22)") - (net 124 "unconnected-(U9-Pad29)") - (net 125 "unconnected-(U9-Pad30)") - (net 126 "unconnected-(U9-Pad31)") - (net 127 "unconnected-(U9-Pad32)") - (net 128 "unconnected-(U9-Pad33)") - (net 129 "unconnected-(U9-Pad34)") - (net 130 "Net-(U10-Pad1)") - (net 131 "Net-(U10-Pad2)") - (net 132 "unconnected-(U10-Pad7)") - (net 133 "unconnected-(U5-Pad4)") - (net 134 "Net-(J1-Pad4)") - (net 135 "Net-(J1-Pad6)") - (net 136 "Net-(J1-Pad8)") - (net 137 "Net-(J1-Pad10)") - (net 138 "Net-(BT1-Padpos)") - (net 139 "Net-(D3-Pad1)") - (net 140 "Net-(D4-Pad1)") - (net 141 "Net-(D5-Pad1)") - (net 142 "Net-(D6-Pad1)") - (net 143 "Net-(D7-Pad1)") - (net 144 "Net-(D8-Pad1)") - (net 145 "Net-(D11-Pad1)") - (net 146 "unconnected-(J5-Pad6)") - (net 147 "unconnected-(J6-Pad2)") - (net 148 "unconnected-(J6-Pad6)") - (net 149 "Net-(R1-Pad2)") - (net 150 "Net-(R2-Pad2)") - (net 151 "Net-(R3-Pad1)") - (net 152 "Net-(R18-Pad2)") - (net 153 "Net-(R20-Pad2)") - (net 154 "Net-(J7-Pad2)") - (net 155 "Net-(J8-Pad2)") - (net 156 "/CS_FPU") - (net 157 "/CS_IIC") - (net 158 "unconnected-(U11-Pad15)") - (net 159 "unconnected-(U12-Pad5)") - (net 160 "unconnected-(U12-Pad6)") - (net 161 "unconnected-(U12-Pad7)") - (net 162 "Net-(J9-Pad1)") - (net 163 "unconnected-(J1-Pad2)") - (net 164 "Net-(RN1-Pad6)") - (net 165 "unconnected-(U5-Pad6)") - (net 166 "Net-(U7-Pad13)") - (net 167 "Net-(J9-Pad2)") - (net 168 "Net-(J9-Pad3)") - (net 169 "Net-(J9-Pad5)") - (net 170 "Net-(J9-Pad7)") - (net 171 "/I2C_SDA") - (net 172 "/I2C_SCL") + (net 74 "Net-(U1-Pad19)") + (net 75 "/~{#IOREQ}") + (net 76 "/~{#RD}") + (net 77 "/~{#WR}") + (net 78 "unconnected-(U2-Pad9)") + (net 79 "unconnected-(U2-Pad11)") + (net 80 "BUSDIR") + (net 81 "unconnected-(U2-Pad13)") + (net 82 "unconnected-(U2-Pad14)") + (net 83 "Net-(J4-Pad8)") + (net 84 "Net-(U2-Pad16)") + (net 85 "Net-(J4-Pad9)") + (net 86 "/CS_PS2") + (net 87 "/BOARD_CS") + (net 88 "/#D0") + (net 89 "/#D1") + (net 90 "/#D2") + (net 91 "/#D3") + (net 92 "/#D4") + (net 93 "/#D5") + (net 94 "/#D6") + (net 95 "/#D7") + (net 96 "/#A0") + (net 97 "/#A1") + (net 98 "/#A2") + (net 99 "/#A3") + (net 100 "/#A4") + (net 101 "/#A5") + (net 102 "/#A6") + (net 103 "/#A7") + (net 104 "/~{INT3}") + (net 105 "Net-(J4-Pad10)") + (net 106 "Net-(U6-Pad14)") + (net 107 "unconnected-(J5-Pad2)") + (net 108 "unconnected-(U6-Pad16)") + (net 109 "unconnected-(U6-Pad17)") + (net 110 "unconnected-(U6-Pad18)") + (net 111 "unconnected-(U6-Pad21)") + (net 112 "/#CLK_CPU") + (net 113 "/~{#M1}") + (net 114 "MSCO") + (net 115 "MSDO") + (net 116 "KBDO") + (net 117 "KBCO") + (net 118 "Net-(U7-Pad11)") + (net 119 "/~{#RESET}") + (net 120 "unconnected-(U9-Pad11)") + (net 121 "unconnected-(U9-Pad21)") + (net 122 "unconnected-(U9-Pad22)") + (net 123 "unconnected-(U9-Pad29)") + (net 124 "unconnected-(U9-Pad30)") + (net 125 "unconnected-(U9-Pad31)") + (net 126 "unconnected-(U9-Pad32)") + (net 127 "unconnected-(U9-Pad33)") + (net 128 "unconnected-(U9-Pad34)") + (net 129 "Net-(U10-Pad1)") + (net 130 "Net-(U10-Pad2)") + (net 131 "unconnected-(U10-Pad7)") + (net 132 "unconnected-(U5-Pad4)") + (net 133 "Net-(J1-Pad4)") + (net 134 "Net-(J1-Pad6)") + (net 135 "Net-(J1-Pad8)") + (net 136 "Net-(J1-Pad10)") + (net 137 "Net-(BT1-Padpos)") + (net 138 "Net-(D3-Pad1)") + (net 139 "Net-(D4-Pad1)") + (net 140 "Net-(D5-Pad1)") + (net 141 "Net-(D6-Pad1)") + (net 142 "Net-(D7-Pad1)") + (net 143 "Net-(D8-Pad1)") + (net 144 "Net-(D11-Pad1)") + (net 145 "unconnected-(J5-Pad6)") + (net 146 "unconnected-(J6-Pad2)") + (net 147 "unconnected-(J6-Pad6)") + (net 148 "Net-(R1-Pad2)") + (net 149 "Net-(R2-Pad2)") + (net 150 "Net-(R3-Pad1)") + (net 151 "Net-(R18-Pad2)") + (net 152 "Net-(R20-Pad2)") + (net 153 "Net-(J7-Pad2)") + (net 154 "Net-(J8-Pad2)") + (net 155 "/CS_FPU") + (net 156 "/CS_IIC") + (net 157 "unconnected-(U11-Pad15)") + (net 158 "unconnected-(U12-Pad5)") + (net 159 "unconnected-(U12-Pad6)") + (net 160 "unconnected-(U12-Pad7)") + (net 161 "Net-(J9-Pad1)") + (net 162 "unconnected-(J1-Pad2)") + (net 163 "Net-(RN1-Pad6)") + (net 164 "unconnected-(U5-Pad6)") + (net 165 "Net-(U7-Pad13)") + (net 166 "Net-(J9-Pad2)") + (net 167 "Net-(J9-Pad3)") + (net 168 "Net-(J9-Pad5)") + (net 169 "Net-(J9-Pad7)") + (net 170 "/I2C_SDA") + (net 171 "/I2C_SCL") (footprint "Diode_THT:D_DO-34_SOD68_P7.62mm_Horizontal" (layer "F.Cu") (tedit 5AE50CD5) (tstamp 018cf8d1-d77c-4034-97de-bbd5b0d76010) @@ -313,7 +316,7 @@ (fp_line (start 2.29 0.8) (end 5.33 0.8) (layer "F.Fab") (width 0.1) (tstamp d81bea63-96c5-4505-98ab-d08df1bd1cc0)) (fp_line (start 5.33 -0.8) (end 2.29 -0.8) (layer "F.Fab") (width 0.1) (tstamp e8061de1-41ee-4a2e-9165-f8a0f13de45f)) (pad "1" thru_hole rect (at 0 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 144 "Net-(D8-Pad1)") (pinfunction "K") (pintype "passive") (tstamp 90903bfd-ab53-4d00-845a-c5cbb88881bd)) + (net 143 "Net-(D8-Pad1)") (pinfunction "K") (pintype "passive") (tstamp 90903bfd-ab53-4d00-845a-c5cbb88881bd)) (pad "2" thru_hole oval (at 7.62 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "A") (pintype "passive") (tstamp 0e337db9-afe3-4956-90ba-727313d3e34b)) (model "${KICAD6_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-34_SOD68_P7.62mm_Horizontal.wrl" @@ -482,7 +485,7 @@ (pad "1" thru_hole circle (at 0 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) (net 6 "+5V") (pintype "passive") (tstamp 2c470bda-aade-4b94-aff0-22829f7b3d5c)) (pad "2" thru_hole oval (at 7.62 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 155 "Net-(J8-Pad2)") (pintype "passive") (tstamp b6a4ac7f-cf2d-479d-b5c0-1dd269f8c55d)) + (net 154 "Net-(J8-Pad2)") (pintype "passive") (tstamp b6a4ac7f-cf2d-479d-b5c0-1dd269f8c55d)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -542,7 +545,7 @@ (fp_line (start 2.29 0.8) (end 5.33 0.8) (layer "F.Fab") (width 0.1) (tstamp da87f383-3de0-41e8-a91e-ace2b3adf9ea)) (fp_line (start 2.646 -0.8) (end 2.646 0.8) (layer "F.Fab") (width 0.1) (tstamp e8bb3067-9505-4f5b-835f-889437268fe6)) (pad "1" thru_hole rect (at 0 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 140 "Net-(D4-Pad1)") (pinfunction "K") (pintype "passive") (tstamp bc4c228f-50d6-4633-9598-f691b8e37799)) + (net 139 "Net-(D4-Pad1)") (pinfunction "K") (pintype "passive") (tstamp bc4c228f-50d6-4633-9598-f691b8e37799)) (pad "2" thru_hole oval (at 7.62 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "A") (pintype "passive") (tstamp 97f36c59-8abf-43ab-af1f-a423e824a205)) (model "${KICAD6_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-34_SOD68_P7.62mm_Horizontal.wrl" @@ -590,9 +593,9 @@ (fp_line (start 5.61 0.8) (end 5.61 -0.8) (layer "F.Fab") (width 0.1) (tstamp db9b6076-4b5a-4434-94ed-594f0502f664)) (fp_line (start 5.61 -0.8) (end 2.01 -0.8) (layer "F.Fab") (width 0.1) (tstamp f235ca2c-639b-4576-a97b-ccddb20a2a9b)) (pad "1" thru_hole circle (at 0 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 143 "Net-(D7-Pad1)") (pintype "passive") (tstamp c468ddeb-67b0-4bc8-a93c-9128b3b26050)) + (net 142 "Net-(D7-Pad1)") (pintype "passive") (tstamp c468ddeb-67b0-4bc8-a93c-9128b3b26050)) (pad "2" thru_hole oval (at 7.62 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 84 "Net-(J4-Pad8)") (pintype "passive") (tstamp f6f3f8c6-cddb-4e97-aa84-de392913b748)) + (net 83 "Net-(J4-Pad8)") (pintype "passive") (tstamp f6f3f8c6-cddb-4e97-aa84-de392913b748)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -645,15 +648,15 @@ (fp_line (start 0.635 16.51) (end 0.635 -0.27) (layer "F.Fab") (width 0.1) (tstamp aa7a268d-95c3-415d-b496-a31927c1db12)) (fp_line (start 6.985 -1.27) (end 6.985 16.51) (layer "F.Fab") (width 0.1) (tstamp bfd02265-d0a9-4bcb-a92c-2436038ad725)) (pad "1" thru_hole rect (at 0 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 115 "MSCO") (pintype "input") (tstamp 81a33a35-3519-4444-bf16-0e00c9ba0141)) + (net 114 "MSCO") (pintype "input") (tstamp 81a33a35-3519-4444-bf16-0e00c9ba0141)) (pad "2" thru_hole oval (at 0 2.54) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 3 "MSCI") (pintype "open_collector") (tstamp f7e5e016-e989-4803-aa41-84ec0d5c0c32)) (pad "3" thru_hole oval (at 0 5.08) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 116 "MSDO") (pintype "input") (tstamp 45389e14-2451-4ed6-a778-077654028db2)) + (net 115 "MSDO") (pintype "input") (tstamp 45389e14-2451-4ed6-a778-077654028db2)) (pad "4" thru_hole oval (at 0 7.62) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 1 "MSDI") (pintype "open_collector") (tstamp c1d71183-d1b5-4134-a70a-51ef8506ad6b)) (pad "5" thru_hole oval (at 0 10.16) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 117 "KBDO") (pintype "input") (tstamp 50d7bb69-65fb-4ba7-9b22-20ec2b538cba)) + (net 116 "KBDO") (pintype "input") (tstamp 50d7bb69-65fb-4ba7-9b22-20ec2b538cba)) (pad "6" thru_hole oval (at 0 12.7) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 4 "KBDI") (pintype "open_collector") (tstamp ebe8563a-9657-4968-83e2-e2ebe795f297)) (pad "7" thru_hole oval (at 0 15.24) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) @@ -661,15 +664,15 @@ (pad "8" thru_hole oval (at 7.62 15.24) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 5 "KBCI") (pintype "open_collector") (tstamp bf0a3c89-f7df-4d76-8d2b-8e1fcdde08b0)) (pad "9" thru_hole oval (at 7.62 12.7) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 118 "KBCO") (pintype "input") (tstamp 8616931c-4074-40fe-bc19-eeda4862d511)) + (net 117 "KBCO") (pintype "input") (tstamp 8616931c-4074-40fe-bc19-eeda4862d511)) (pad "10" thru_hole oval (at 7.62 10.16) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 149 "Net-(R1-Pad2)") (pintype "open_collector") (tstamp b1400d54-b7d3-45de-b4a9-d42e72fe63f6)) + (net 148 "Net-(R1-Pad2)") (pintype "open_collector") (tstamp b1400d54-b7d3-45de-b4a9-d42e72fe63f6)) (pad "11" thru_hole oval (at 7.62 7.62) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 119 "Net-(U7-Pad11)") (pintype "input") (tstamp a7fa668c-e23c-46ab-a619-decf446802c9)) + (net 118 "Net-(U7-Pad11)") (pintype "input") (tstamp a7fa668c-e23c-46ab-a619-decf446802c9)) (pad "12" thru_hole oval (at 7.62 5.08) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 149 "Net-(R1-Pad2)") (pintype "open_collector") (tstamp 9d7007ff-fb5e-44f7-8a73-bc8bd62a7eb6)) + (net 148 "Net-(R1-Pad2)") (pintype "open_collector") (tstamp 9d7007ff-fb5e-44f7-8a73-bc8bd62a7eb6)) (pad "13" thru_hole oval (at 7.62 2.54) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 166 "Net-(U7-Pad13)") (pintype "input") (tstamp e92bce43-9c3b-455d-88d1-f9ac0e202bf9)) + (net 165 "Net-(U7-Pad13)") (pintype "input") (tstamp e92bce43-9c3b-455d-88d1-f9ac0e202bf9)) (pad "14" thru_hole oval (at 7.62 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "VCC") (pintype "power_in") (tstamp 349b9ee3-b234-464d-91a9-940104fa2add)) (model "${KICAD6_3DMODEL_DIR}/Package_DIP.3dshapes/DIP-14_W7.62mm_Socket.wrl" @@ -779,7 +782,7 @@ (fp_line (start 2.29 -0.8) (end 2.29 0.8) (layer "F.Fab") (width 0.1) (tstamp e47b96ac-440d-4fa0-8006-a34cc2b1a8a0)) (fp_line (start 2.746 -0.8) (end 2.746 0.8) (layer "F.Fab") (width 0.1) (tstamp f0f07374-c983-4952-abf8-4296dc44312a)) (pad "1" thru_hole rect (at 0 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 171 "/I2C_SDA") (pinfunction "K") (pintype "passive") (tstamp ed0adb2f-96fe-4d1c-817a-a08a22eef9e2)) + (net 170 "/I2C_SDA") (pinfunction "K") (pintype "passive") (tstamp ed0adb2f-96fe-4d1c-817a-a08a22eef9e2)) (pad "2" thru_hole oval (at 7.62 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "A") (pintype "passive") (tstamp a4890acb-bf1b-44b9-8fb4-ad46f39265fc)) (model "${KICAD6_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-34_SOD68_P7.62mm_Horizontal.wrl" @@ -829,7 +832,7 @@ (pad "1" thru_hole circle (at 0 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) (net 6 "+5V") (pintype "passive") (tstamp 6934c034-e75d-467f-b5db-48d2643cb9aa)) (pad "2" thru_hole oval (at 7.62 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 150 "Net-(R2-Pad2)") (pintype "passive") (tstamp 71dfba1c-8d0e-470c-b011-83f8ae9cce7c)) + (net 149 "Net-(R2-Pad2)") (pintype "passive") (tstamp 71dfba1c-8d0e-470c-b011-83f8ae9cce7c)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -920,41 +923,41 @@ (pad "1" thru_hole rect (at 0 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "G") (pintype "input") (tstamp 24a2c7bd-35d4-439e-bba6-d670f6b194fa)) (pad "2" thru_hole oval (at 0 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 74 "/{slash}IOREQ") (pinfunction "P0") (pintype "input") (tstamp 1b014ebe-82a5-4485-9a1e-fd4384195f8d)) + (net 75 "/~{#IOREQ}") (pinfunction "P0") (pintype "input") (tstamp 1b014ebe-82a5-4485-9a1e-fd4384195f8d)) (pad "3" thru_hole oval (at 0 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 73 "Net-(RN1-Pad9)") (pinfunction "R0") (pintype "input") (tstamp b38b303f-85e4-499f-b225-d8b57d3a595f)) (pad "4" thru_hole oval (at 0 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 74 "/{slash}IOREQ") (pinfunction "P1") (pintype "input") (tstamp 21c76d76-82f2-4004-9f9f-1523c86e986f)) + (net 75 "/~{#IOREQ}") (pinfunction "P1") (pintype "input") (tstamp 21c76d76-82f2-4004-9f9f-1523c86e986f)) (pad "5" thru_hole oval (at 0 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 72 "Net-(RN1-Pad8)") (pinfunction "R1") (pintype "input") (tstamp 2e32f3d4-ea5e-4b26-b1e0-b9d0ecf2b9ba)) (pad "6" thru_hole oval (at 0 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 74 "/{slash}IOREQ") (pinfunction "P2") (pintype "input") (tstamp 606f5e9c-8362-4b58-ac1b-b68fa5ab5bea)) + (net 75 "/~{#IOREQ}") (pinfunction "P2") (pintype "input") (tstamp 606f5e9c-8362-4b58-ac1b-b68fa5ab5bea)) (pad "7" thru_hole oval (at 0 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 71 "Net-(RN1-Pad7)") (pinfunction "R2") (pintype "input") (tstamp 3da1790c-151f-487f-8856-bfeb324e8f3b)) (pad "8" thru_hole oval (at 0 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 74 "/{slash}IOREQ") (pinfunction "P3") (pintype "input") (tstamp 9a56dfbe-8643-4d28-bf27-6ed576a1d85d)) + (net 75 "/~{#IOREQ}") (pinfunction "P3") (pintype "input") (tstamp 9a56dfbe-8643-4d28-bf27-6ed576a1d85d)) (pad "9" thru_hole oval (at 0 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 164 "Net-(RN1-Pad6)") (pinfunction "R3") (pintype "input") (tstamp 25f3d434-d5ad-4eee-9a37-77fe8bf5d698)) + (net 163 "Net-(RN1-Pad6)") (pinfunction "R3") (pintype "input") (tstamp 25f3d434-d5ad-4eee-9a37-77fe8bf5d698)) (pad "10" thru_hole oval (at 0 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "GND") (pintype "power_in") (tstamp 950889fb-cb23-42d5-843c-f9b127eb1937)) (pad "11" thru_hole oval (at 7.62 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 101 "/#A4") (pinfunction "P4") (pintype "input") (tstamp 87d770fc-2b54-42d5-87dc-54f7fe615843)) + (net 100 "/#A4") (pinfunction "P4") (pintype "input") (tstamp 87d770fc-2b54-42d5-87dc-54f7fe615843)) (pad "12" thru_hole oval (at 7.62 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 134 "Net-(J1-Pad4)") (pinfunction "R4") (pintype "input") (tstamp 4a24e8b4-3875-409b-80c9-eb313a12063c)) + (net 133 "Net-(J1-Pad4)") (pinfunction "R4") (pintype "input") (tstamp 4a24e8b4-3875-409b-80c9-eb313a12063c)) (pad "13" thru_hole oval (at 7.62 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 102 "/#A5") (pinfunction "P5") (pintype "input") (tstamp c1a748b7-6507-4c93-b866-90e275d228c3)) + (net 101 "/#A5") (pinfunction "P5") (pintype "input") (tstamp c1a748b7-6507-4c93-b866-90e275d228c3)) (pad "14" thru_hole oval (at 7.62 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 135 "Net-(J1-Pad6)") (pinfunction "R5") (pintype "input") (tstamp 547aa651-e343-4584-855e-e942bca31204)) + (net 134 "Net-(J1-Pad6)") (pinfunction "R5") (pintype "input") (tstamp 547aa651-e343-4584-855e-e942bca31204)) (pad "15" thru_hole oval (at 7.62 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 103 "/#A6") (pinfunction "P6") (pintype "input") (tstamp 5f0db6fd-5092-485f-9f2b-d19c03fbefd5)) + (net 102 "/#A6") (pinfunction "P6") (pintype "input") (tstamp 5f0db6fd-5092-485f-9f2b-d19c03fbefd5)) (pad "16" thru_hole oval (at 7.62 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 136 "Net-(J1-Pad8)") (pinfunction "R6") (pintype "input") (tstamp e6400616-cf24-473c-93bf-41f9a01f60c6)) + (net 135 "Net-(J1-Pad8)") (pinfunction "R6") (pintype "input") (tstamp e6400616-cf24-473c-93bf-41f9a01f60c6)) (pad "17" thru_hole oval (at 7.62 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 104 "/#A7") (pinfunction "P7") (pintype "input") (tstamp 692f0243-1784-42bd-a644-eb996ee5a76f)) + (net 103 "/#A7") (pinfunction "P7") (pintype "input") (tstamp 692f0243-1784-42bd-a644-eb996ee5a76f)) (pad "18" thru_hole oval (at 7.62 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 137 "Net-(J1-Pad10)") (pinfunction "R7") (pintype "input") (tstamp 7c199a1e-bd59-43a9-838c-4cce47bc2d5d)) + (net 136 "Net-(J1-Pad10)") (pinfunction "R7") (pintype "input") (tstamp 7c199a1e-bd59-43a9-838c-4cce47bc2d5d)) (pad "19" thru_hole oval (at 7.62 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 75 "Net-(U1-Pad19)") (pinfunction "P=R") (pintype "output") (tstamp 587a9adc-9b2d-415f-97e6-d41536308877)) + (net 74 "Net-(U1-Pad19)") (pinfunction "P=R") (pintype "output") (tstamp 587a9adc-9b2d-415f-97e6-d41536308877)) (pad "20" thru_hole oval (at 7.62 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "VCC") (pintype "power_in") (tstamp 4f1b9f2b-7d21-4aef-8efb-c85b91e5acfa)) (model "${KICAD6_3DMODEL_DIR}/Package_DIP.3dshapes/DIP-20_W7.62mm.wrl" @@ -1096,7 +1099,7 @@ (pad "1" thru_hole circle (at 0 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) (net 6 "+5V") (pintype "passive") (tstamp d5e8ecca-ec2d-4f63-aa4f-9844d6ae6a02)) (pad "2" thru_hole oval (at 7.62 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 172 "/I2C_SCL") (pintype "passive") (tstamp 9faae3fc-22e7-4475-98e1-cdc9bb414201)) + (net 171 "/I2C_SCL") (pintype "passive") (tstamp 9faae3fc-22e7-4475-98e1-cdc9bb414201)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -1231,19 +1234,19 @@ (fp_line (start 1.255 -1.27) (end 14.985 -1.27) (layer "F.Fab") (width 0.1) (tstamp a6192ce7-b24f-4c72-8174-9c7233b192db)) (fp_line (start 0.255 -0.27) (end 1.255 -1.27) (layer "F.Fab") (width 0.1) (tstamp e5ef810a-2093-4c0c-9ff4-ae46ac281c51)) (pad "1" thru_hole rect (at 0 0 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 91 "/#D2") (pinfunction "D2") (pintype "bidirectional") (tstamp a20ac3ae-af35-4bad-873e-914ac46506a0)) + (net 90 "/#D2") (pinfunction "D2") (pintype "bidirectional") (tstamp a20ac3ae-af35-4bad-873e-914ac46506a0)) (pad "2" thru_hole oval (at 0 2.54 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 96 "/#D7") (pinfunction "D7") (pintype "bidirectional") (tstamp ee142ffe-94bd-47fe-9c8a-66bc3f28d6dd)) + (net 95 "/#D7") (pinfunction "D7") (pintype "bidirectional") (tstamp ee142ffe-94bd-47fe-9c8a-66bc3f28d6dd)) (pad "3" thru_hole oval (at 0 5.08 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 95 "/#D6") (pinfunction "D6") (pintype "bidirectional") (tstamp 7445db70-84aa-4b8f-ac31-dd21ca55d697)) + (net 94 "/#D6") (pinfunction "D6") (pintype "bidirectional") (tstamp 7445db70-84aa-4b8f-ac31-dd21ca55d697)) (pad "4" thru_hole oval (at 0 7.62 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 85 "Net-(U2-Pad16)") (pinfunction "~{CE}") (pintype "input") (tstamp a8c80ea1-dcfb-47f6-ab70-bfc319a49d05)) + (net 84 "Net-(U2-Pad16)") (pinfunction "~{CE}") (pintype "input") (tstamp a8c80ea1-dcfb-47f6-ab70-bfc319a49d05)) (pad "5" thru_hole oval (at 0 10.16 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 98 "/#A1") (pinfunction "C/~{D}") (pintype "input") (tstamp 2b38f935-d567-4d87-81e7-f2c38b013f0f)) + (net 97 "/#A1") (pinfunction "C/~{D}") (pintype "input") (tstamp 2b38f935-d567-4d87-81e7-f2c38b013f0f)) (pad "6" thru_hole oval (at 0 12.7 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 97 "/#A0") (pinfunction "B/~{A}") (pintype "input") (tstamp 2705fbd2-ce56-4707-94a8-cee518bd84e7)) + (net 96 "/#A0") (pinfunction "B/~{A}") (pintype "input") (tstamp 2705fbd2-ce56-4707-94a8-cee518bd84e7)) (pad "7" thru_hole oval (at 0 15.24 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 105 "/~{INT3}") (pinfunction "PA7") (pintype "bidirectional") (tstamp bf5a1926-4a2a-4805-882f-e417c590b5ee)) + (net 104 "/~{INT3}") (pinfunction "PA7") (pintype "bidirectional") (tstamp bf5a1926-4a2a-4805-882f-e417c590b5ee)) (pad "8" thru_hole oval (at 0 17.78 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 42 "/~{INT2}") (pinfunction "PA6") (pintype "bidirectional") (tstamp 6b86744c-828b-4b6d-85fd-e9c6041b17c4)) (pad "9" thru_hole oval (at 0 20.32 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) @@ -1253,25 +1256,25 @@ (pad "11" thru_hole oval (at 0 25.4 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "GND") (pintype "power_in") (tstamp 42ff71dc-a9cf-409d-a7f6-5ef59335c9bc)) (pad "12" thru_hole oval (at 0 27.94 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 151 "Net-(R3-Pad1)") (pinfunction "PA3") (pintype "bidirectional") (tstamp eaadcced-de6a-4f90-8ebd-30f4a7a45054)) + (net 150 "Net-(R3-Pad1)") (pinfunction "PA3") (pintype "bidirectional") (tstamp eaadcced-de6a-4f90-8ebd-30f4a7a45054)) (pad "13" thru_hole oval (at 0 30.48 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 149 "Net-(R1-Pad2)") (pinfunction "PA2") (pintype "bidirectional") (tstamp 8a8433a6-0374-4d2d-8648-b9e8474d1f0c)) + (net 148 "Net-(R1-Pad2)") (pinfunction "PA2") (pintype "bidirectional") (tstamp 8a8433a6-0374-4d2d-8648-b9e8474d1f0c)) (pad "14" thru_hole oval (at 0 33.02 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 107 "Net-(U6-Pad14)") (pinfunction "PA1") (pintype "bidirectional") (tstamp 99c93431-f446-46fc-84ee-d3f6ca772eda)) + (net 106 "Net-(U6-Pad14)") (pinfunction "PA1") (pintype "bidirectional") (tstamp 99c93431-f446-46fc-84ee-d3f6ca772eda)) (pad "15" thru_hole oval (at 0 35.56 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 150 "Net-(R2-Pad2)") (pinfunction "PA0") (pintype "bidirectional") (tstamp 0f968a3e-60c2-43a8-9603-d53e972bc66b)) + (net 149 "Net-(R2-Pad2)") (pinfunction "PA0") (pintype "bidirectional") (tstamp 0f968a3e-60c2-43a8-9603-d53e972bc66b)) (pad "16" thru_hole oval (at 0 38.1 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 109 "unconnected-(U6-Pad16)") (pinfunction "~{ASTB}") (pintype "input+no_connect") (tstamp 42dc223e-26e6-4734-9ad8-5ca3d2ecc45c)) + (net 108 "unconnected-(U6-Pad16)") (pinfunction "~{ASTB}") (pintype "input+no_connect") (tstamp 42dc223e-26e6-4734-9ad8-5ca3d2ecc45c)) (pad "17" thru_hole oval (at 0 40.64 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 110 "unconnected-(U6-Pad17)") (pinfunction "~{BSTB}") (pintype "input+no_connect") (tstamp a16ddff8-ffc9-41cd-879e-623ce00db76a)) + (net 109 "unconnected-(U6-Pad17)") (pinfunction "~{BSTB}") (pintype "input+no_connect") (tstamp a16ddff8-ffc9-41cd-879e-623ce00db76a)) (pad "18" thru_hole oval (at 0 43.18 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 111 "unconnected-(U6-Pad18)") (pinfunction "ARDY") (pintype "output+no_connect") (tstamp 5fa16787-4040-48a6-8f17-5db2bd6dd769)) + (net 110 "unconnected-(U6-Pad18)") (pinfunction "ARDY") (pintype "output+no_connect") (tstamp 5fa16787-4040-48a6-8f17-5db2bd6dd769)) (pad "19" thru_hole oval (at 0 45.72 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 89 "/#D0") (pinfunction "D0") (pintype "bidirectional") (tstamp 3588ebea-c1dc-46a3-be62-665ce2e6266a)) + (net 88 "/#D0") (pinfunction "D0") (pintype "bidirectional") (tstamp 3588ebea-c1dc-46a3-be62-665ce2e6266a)) (pad "20" thru_hole oval (at 0 48.26 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 90 "/#D1") (pinfunction "D1") (pintype "bidirectional") (tstamp f61f831d-238d-4c9f-8dbf-0722730c8042)) + (net 89 "/#D1") (pinfunction "D1") (pintype "bidirectional") (tstamp f61f831d-238d-4c9f-8dbf-0722730c8042)) (pad "21" thru_hole oval (at 15.24 48.26 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 112 "unconnected-(U6-Pad21)") (pinfunction "BRDY") (pintype "output+no_connect") (tstamp bae95875-f778-4edf-8453-595f0d1aaec1)) + (net 111 "unconnected-(U6-Pad21)") (pinfunction "BRDY") (pintype "output+no_connect") (tstamp bae95875-f778-4edf-8453-595f0d1aaec1)) (pad "22" thru_hole oval (at 15.24 45.72 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 12 "Net-(J2-Padb27)") (pinfunction "IEO") (pintype "output") (tstamp 12a2d63b-5743-46a4-91b2-d0b5d483abbc)) (pad "23" thru_hole oval (at 15.24 43.18 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) @@ -1279,7 +1282,7 @@ (pad "24" thru_hole oval (at 15.24 40.64 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 11 "Net-(J2-Padb26)") (pinfunction "IEI") (pintype "input") (tstamp 55c9a809-e0eb-4019-b686-39f91a7fefa2)) (pad "25" thru_hole oval (at 15.24 38.1 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 113 "/#CLK_CPU") (pinfunction "CLK") (pintype "input") (tstamp 553b6f56-3570-411e-9284-e8b6da242d15)) + (net 112 "/#CLK_CPU") (pinfunction "CLK") (pintype "input") (tstamp 553b6f56-3570-411e-9284-e8b6da242d15)) (pad "26" thru_hole oval (at 15.24 35.56 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "VCC") (pintype "power_in") (tstamp 99e074f1-498d-4abc-944c-8d42e8ab5ab8)) (pad "27" thru_hole oval (at 15.24 33.02 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) @@ -1287,29 +1290,29 @@ (pad "28" thru_hole oval (at 15.24 30.48 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 8 "Net-(D2-Pad1)") (pinfunction "PB1") (pintype "bidirectional") (tstamp 296eda7d-57c1-40de-8e8e-00cb45c0acb3)) (pad "29" thru_hole oval (at 15.24 27.94 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 139 "Net-(D3-Pad1)") (pinfunction "PB2") (pintype "bidirectional") (tstamp 6519c812-8fe1-40db-91a2-03ee90d6f207)) + (net 138 "Net-(D3-Pad1)") (pinfunction "PB2") (pintype "bidirectional") (tstamp 6519c812-8fe1-40db-91a2-03ee90d6f207)) (pad "30" thru_hole oval (at 15.24 25.4 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 140 "Net-(D4-Pad1)") (pinfunction "PB3") (pintype "bidirectional") (tstamp 5065cac9-bee6-47ed-b893-108aab4f42d3)) + (net 139 "Net-(D4-Pad1)") (pinfunction "PB3") (pintype "bidirectional") (tstamp 5065cac9-bee6-47ed-b893-108aab4f42d3)) (pad "31" thru_hole oval (at 15.24 22.86 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 144 "Net-(D8-Pad1)") (pinfunction "PB4") (pintype "bidirectional") (tstamp f5f0d5e3-3d14-428e-91df-7456a59cbf8b)) + (net 143 "Net-(D8-Pad1)") (pinfunction "PB4") (pintype "bidirectional") (tstamp f5f0d5e3-3d14-428e-91df-7456a59cbf8b)) (pad "32" thru_hole oval (at 15.24 20.32 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 143 "Net-(D7-Pad1)") (pinfunction "PB5") (pintype "bidirectional") (tstamp d0896fd5-675d-4f51-8ceb-78ef8a2cca3e)) + (net 142 "Net-(D7-Pad1)") (pinfunction "PB5") (pintype "bidirectional") (tstamp d0896fd5-675d-4f51-8ceb-78ef8a2cca3e)) (pad "33" thru_hole oval (at 15.24 17.78 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 142 "Net-(D6-Pad1)") (pinfunction "PB6") (pintype "bidirectional") (tstamp c9e3168c-bc1d-46b9-a241-745d3c32565c)) + (net 141 "Net-(D6-Pad1)") (pinfunction "PB6") (pintype "bidirectional") (tstamp c9e3168c-bc1d-46b9-a241-745d3c32565c)) (pad "34" thru_hole oval (at 15.24 15.24 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 141 "Net-(D5-Pad1)") (pinfunction "PB7") (pintype "bidirectional") (tstamp e9d01f3b-6889-4df0-900a-cc60c2d5364a)) + (net 140 "Net-(D5-Pad1)") (pinfunction "PB7") (pintype "bidirectional") (tstamp e9d01f3b-6889-4df0-900a-cc60c2d5364a)) (pad "35" thru_hole oval (at 15.24 12.7 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 77 "/~{#RD}") (pinfunction "~{RD}") (pintype "input") (tstamp c19371c1-6bd8-46d5-9c99-8eeac2418cd9)) + (net 76 "/~{#RD}") (pinfunction "~{RD}") (pintype "input") (tstamp c19371c1-6bd8-46d5-9c99-8eeac2418cd9)) (pad "36" thru_hole oval (at 15.24 10.16 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 76 "/~{#IOREQ}") (pinfunction "~{IORQ}") (pintype "input") (tstamp 8e7b6c4f-949d-4de0-872b-12c27857d9b3)) + (net 75 "/~{#IOREQ}") (pinfunction "~{IORQ}") (pintype "input") (tstamp 8e7b6c4f-949d-4de0-872b-12c27857d9b3)) (pad "37" thru_hole oval (at 15.24 7.62 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 114 "/~{#M1}") (pinfunction "~{M1}") (pintype "input") (tstamp dd32ce49-edcc-43a3-b077-34e90dd5c560)) + (net 113 "/~{#M1}") (pinfunction "~{M1}") (pintype "input") (tstamp dd32ce49-edcc-43a3-b077-34e90dd5c560)) (pad "38" thru_hole oval (at 15.24 5.08 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 94 "/#D5") (pinfunction "D5") (pintype "bidirectional") (tstamp 598f6016-68b7-44d0-a11e-d05ebb6206e7)) + (net 93 "/#D5") (pinfunction "D5") (pintype "bidirectional") (tstamp 598f6016-68b7-44d0-a11e-d05ebb6206e7)) (pad "39" thru_hole oval (at 15.24 2.54 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 93 "/#D4") (pinfunction "D4") (pintype "bidirectional") (tstamp 7def7d16-b0fe-41c7-8cfd-9b1913bd420a)) + (net 92 "/#D4") (pinfunction "D4") (pintype "bidirectional") (tstamp 7def7d16-b0fe-41c7-8cfd-9b1913bd420a)) (pad "40" thru_hole oval (at 15.24 0 90) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 92 "/#D3") (pinfunction "D3") (pintype "bidirectional") (tstamp 36c80e0a-c893-443c-b4e2-a563b10cde63)) + (net 91 "/#D3") (pinfunction "D3") (pintype "bidirectional") (tstamp 36c80e0a-c893-443c-b4e2-a563b10cde63)) (model "${KICAD6_3DMODEL_DIR}/Package_DIP.3dshapes/DIP-40_W15.24mm.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -1355,9 +1358,9 @@ (fp_line (start 5.61 -0.8) (end 2.01 -0.8) (layer "F.Fab") (width 0.1) (tstamp b9f636ec-ed3f-45ee-8961-7100ba281f1d)) (fp_line (start 5.61 0.8) (end 5.61 -0.8) (layer "F.Fab") (width 0.1) (tstamp ff35dada-301b-40db-a178-884d352acb76)) (pad "1" thru_hole circle (at 0 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 144 "Net-(D8-Pad1)") (pintype "passive") (tstamp 4c692092-8b47-4b0e-861b-ecce85cd9ee0)) + (net 143 "Net-(D8-Pad1)") (pintype "passive") (tstamp 4c692092-8b47-4b0e-861b-ecce85cd9ee0)) (pad "2" thru_hole oval (at 7.62 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 106 "Net-(J4-Pad10)") (pintype "passive") (tstamp 59998902-3750-4a6a-899b-fc3652098b65)) + (net 105 "Net-(J4-Pad10)") (pintype "passive") (tstamp 59998902-3750-4a6a-899b-fc3652098b65)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -1405,7 +1408,7 @@ (pad "1" thru_hole circle (at 0 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) (net 6 "+5V") (pintype "passive") (tstamp 911e458a-c00a-4d73-b032-b38b455659b8)) (pad "2" thru_hole oval (at 7.62 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 152 "Net-(R18-Pad2)") (pintype "passive") (tstamp 0155977b-38c6-4d03-80d0-f61b117e1f83)) + (net 151 "Net-(R18-Pad2)") (pintype "passive") (tstamp 0155977b-38c6-4d03-80d0-f61b117e1f83)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -1502,23 +1505,23 @@ (pad "1" thru_hole rect (at 0 0 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "Pin_1") (pintype "passive") (tstamp 92cbcf93-974f-476f-bfa6-1ba370d74aaf)) (pad "2" thru_hole oval (at 2.54 0 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 163 "unconnected-(J1-Pad2)") (pinfunction "Pin_2") (pintype "passive") (tstamp 18a1ecfa-b6de-450f-b27c-e2324e3469f8)) + (net 162 "unconnected-(J1-Pad2)") (pinfunction "Pin_2") (pintype "passive") (tstamp 18a1ecfa-b6de-450f-b27c-e2324e3469f8)) (pad "3" thru_hole oval (at 0 2.54 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "Pin_3") (pintype "passive") (tstamp 932f9d3d-2cfc-4be9-98a2-3c0fbbe43e6f)) (pad "4" thru_hole oval (at 2.54 2.54 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 134 "Net-(J1-Pad4)") (pinfunction "Pin_4") (pintype "passive") (tstamp ffde31d3-db7c-4735-b03f-d3c28fa4a66b)) + (net 133 "Net-(J1-Pad4)") (pinfunction "Pin_4") (pintype "passive") (tstamp ffde31d3-db7c-4735-b03f-d3c28fa4a66b)) (pad "5" thru_hole oval (at 0 5.08 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "Pin_5") (pintype "passive") (tstamp 486c2438-35de-4221-820a-52a255e440cd)) (pad "6" thru_hole oval (at 2.54 5.08 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 135 "Net-(J1-Pad6)") (pinfunction "Pin_6") (pintype "passive") (tstamp a8040beb-6c9f-4086-858e-d1281d0dc401)) + (net 134 "Net-(J1-Pad6)") (pinfunction "Pin_6") (pintype "passive") (tstamp a8040beb-6c9f-4086-858e-d1281d0dc401)) (pad "7" thru_hole oval (at 0 7.62 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "Pin_7") (pintype "passive") (tstamp ada37c7b-c131-4685-be07-7f65b67d6c12)) (pad "8" thru_hole oval (at 2.54 7.62 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 136 "Net-(J1-Pad8)") (pinfunction "Pin_8") (pintype "passive") (tstamp 3672b147-bfa4-46f4-8fc5-2fafe2b7a955)) + (net 135 "Net-(J1-Pad8)") (pinfunction "Pin_8") (pintype "passive") (tstamp 3672b147-bfa4-46f4-8fc5-2fafe2b7a955)) (pad "9" thru_hole oval (at 0 10.16 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "Pin_9") (pintype "passive") (tstamp 41327f1e-8894-48f0-9163-e0e5cce476a2)) (pad "10" thru_hole oval (at 2.54 10.16 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 137 "Net-(J1-Pad10)") (pinfunction "Pin_10") (pintype "passive") (tstamp 5ae8f9f3-f7fb-4995-8579-85b9ab813b85)) + (net 136 "Net-(J1-Pad10)") (pinfunction "Pin_10") (pintype "passive") (tstamp 5ae8f9f3-f7fb-4995-8579-85b9ab813b85)) (model "${KICAD6_3DMODEL_DIR}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_2x05_P2.54mm_Vertical.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -1565,9 +1568,9 @@ (fp_line (start -1.27 3.81) (end -1.27 0) (layer "F.Fab") (width 0.1) (tstamp 97305e49-1b96-4966-b854-97719491c98d)) (fp_line (start -1.27 0) (end 0 -1.27) (layer "F.Fab") (width 0.1) (tstamp df2bc5b1-8420-4d9c-936b-e42e3b416681)) (pad "1" thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 172 "/I2C_SCL") (pinfunction "Pin_1") (pintype "passive") (tstamp 59b9144d-775e-4171-a862-812bb74554bb)) + (net 171 "/I2C_SCL") (pinfunction "Pin_1") (pintype "passive") (tstamp 59b9144d-775e-4171-a862-812bb74554bb)) (pad "2" thru_hole oval (at 2.54 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 171 "/I2C_SDA") (pinfunction "Pin_2") (pintype "passive") (tstamp 08227d2e-ba4f-4e45-95fc-1fb4799c854b)) + (net 170 "/I2C_SDA") (pinfunction "Pin_2") (pintype "passive") (tstamp 08227d2e-ba4f-4e45-95fc-1fb4799c854b)) (pad "3" thru_hole oval (at 0 2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) (net 9 "/A22") (pinfunction "Pin_3") (pintype "passive") (tstamp 6eb67859-7e00-41c4-aec4-ced940227f93)) (pad "4" thru_hole oval (at 2.54 2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) @@ -1619,7 +1622,7 @@ (pad "1" thru_hole circle (at 0 0 270) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) (net 6 "+5V") (pintype "passive") (tstamp 39601894-092e-47b1-bbf4-75f57de41020)) (pad "2" thru_hole oval (at 7.62 0 270) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 149 "Net-(R1-Pad2)") (pintype "passive") (tstamp 6c5af4ff-b695-402d-a14f-b45efbfe8c47)) + (net 148 "Net-(R1-Pad2)") (pintype "passive") (tstamp 6c5af4ff-b695-402d-a14f-b45efbfe8c47)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -1679,7 +1682,7 @@ (fp_line (start 5.33 0.8) (end 5.33 -0.8) (layer "F.Fab") (width 0.1) (tstamp d78df32e-bc5f-46c4-b0f6-3c29c0f01082)) (fp_line (start 2.29 0.8) (end 5.33 0.8) (layer "F.Fab") (width 0.1) (tstamp db1af755-808c-47f4-b56b-a6d2cd0619a7)) (pad "1" thru_hole rect (at 0 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 139 "Net-(D3-Pad1)") (pinfunction "K") (pintype "passive") (tstamp 6b8cec08-cc9d-402e-8818-0ad0c2722783)) + (net 138 "Net-(D3-Pad1)") (pinfunction "K") (pintype "passive") (tstamp 6b8cec08-cc9d-402e-8818-0ad0c2722783)) (pad "2" thru_hole oval (at 7.62 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "A") (pintype "passive") (tstamp 1210220f-7c95-4036-9cb2-b669cf5c0f63)) (model "${KICAD6_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-34_SOD68_P7.62mm_Horizontal.wrl" @@ -1726,9 +1729,9 @@ (fp_line (start 6.985 -1.27) (end 6.985 19.05) (layer "F.Fab") (width 0.1) (tstamp eb78d82e-8e98-4c43-b796-6639339ee0a4)) (fp_line (start 0.635 19.05) (end 0.635 -0.27) (layer "F.Fab") (width 0.1) (tstamp f285aa52-e974-4a68-ac10-7b05914fc456)) (pad "1" thru_hole rect (at 0 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 120 "/~{#RESET}") (pinfunction "~{MR}") (pintype "input") (tstamp 0841549f-4d60-45b2-bb32-a6d0029897e8)) + (net 119 "/~{#RESET}") (pinfunction "~{MR}") (pintype "input") (tstamp 0841549f-4d60-45b2-bb32-a6d0029897e8)) (pad "2" thru_hole oval (at 0 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 113 "/#CLK_CPU") (pinfunction "CP") (pintype "input") (tstamp a950fff4-067a-4a8f-8821-e47ecb1f81bf)) + (net 112 "/#CLK_CPU") (pinfunction "CP") (pintype "input") (tstamp a950fff4-067a-4a8f-8821-e47ecb1f81bf)) (pad "3" thru_hole oval (at 0 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "D0") (pintype "input") (tstamp 11fc00d8-cf83-45e9-a23a-528b6a55bf23)) (pad "4" thru_hole oval (at 0 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) @@ -1746,15 +1749,15 @@ (pad "10" thru_hole oval (at 7.62 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "CET") (pintype "input") (tstamp 7ba34541-1b23-4c8f-ac1d-75271d5cdb08)) (pad "11" thru_hole oval (at 7.62 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 170 "Net-(J9-Pad7)") (pinfunction "Q3") (pintype "output") (tstamp 6e07c130-5b34-45ee-9206-a5a5d00d69d0)) + (net 169 "Net-(J9-Pad7)") (pinfunction "Q3") (pintype "output") (tstamp 6e07c130-5b34-45ee-9206-a5a5d00d69d0)) (pad "12" thru_hole oval (at 7.62 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 169 "Net-(J9-Pad5)") (pinfunction "Q2") (pintype "output") (tstamp 9ac6c9c9-dcba-4baa-8e1c-1c02164138e8)) + (net 168 "Net-(J9-Pad5)") (pinfunction "Q2") (pintype "output") (tstamp 9ac6c9c9-dcba-4baa-8e1c-1c02164138e8)) (pad "13" thru_hole oval (at 7.62 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 168 "Net-(J9-Pad3)") (pinfunction "Q1") (pintype "output") (tstamp cb63d0fb-f60d-4bc6-bcb6-0202547c7e2a)) + (net 167 "Net-(J9-Pad3)") (pinfunction "Q1") (pintype "output") (tstamp cb63d0fb-f60d-4bc6-bcb6-0202547c7e2a)) (pad "14" thru_hole oval (at 7.62 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 162 "Net-(J9-Pad1)") (pinfunction "Q0") (pintype "output") (tstamp 48c8bfcf-1c00-4ca3-802b-d71b23cd48eb)) + (net 161 "Net-(J9-Pad1)") (pinfunction "Q0") (pintype "output") (tstamp 48c8bfcf-1c00-4ca3-802b-d71b23cd48eb)) (pad "15" thru_hole oval (at 7.62 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 158 "unconnected-(U11-Pad15)") (pinfunction "TC") (pintype "output+no_connect") (tstamp b40182eb-d14e-49cd-af7e-7a07626f7c9b)) + (net 157 "unconnected-(U11-Pad15)") (pinfunction "TC") (pintype "output+no_connect") (tstamp b40182eb-d14e-49cd-af7e-7a07626f7c9b)) (pad "16" thru_hole oval (at 7.62 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "VCC") (pintype "power_in") (tstamp 18a6789b-b42c-4957-88a1-b9b8dd693fe5)) (model "${KICAD6_3DMODEL_DIR}/Package_DIP.3dshapes/DIP-16_W7.62mm.wrl" @@ -1802,7 +1805,7 @@ (fp_line (start 7.62 0) (end 5.61 0) (layer "F.Fab") (width 0.1) (tstamp 500da3b5-f100-4756-8289-96a6155970be)) (fp_line (start 5.61 -0.8) (end 2.01 -0.8) (layer "F.Fab") (width 0.1) (tstamp 8b96bc73-ef9f-4c5e-85f6-604e9884d540)) (pad "1" thru_hole circle (at 0 0 270) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 151 "Net-(R3-Pad1)") (pintype "passive") (tstamp 6be47c12-cbbf-467d-8303-0d55b5b310c7)) + (net 150 "Net-(R3-Pad1)") (pintype "passive") (tstamp 6be47c12-cbbf-467d-8303-0d55b5b310c7)) (pad "2" thru_hole oval (at 7.62 0 270) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) (net 69 "Net-(Q1-Pad2)") (pintype "passive") (tstamp 8f1f7229-a366-419d-9edc-906ebbb682ab)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" @@ -1958,7 +1961,7 @@ (fp_line (start 2.01 -0.8) (end 2.01 0.8) (layer "F.Fab") (width 0.1) (tstamp a0e3f5cb-633b-4ccb-9612-06295755fd63)) (fp_line (start 5.61 -0.8) (end 2.01 -0.8) (layer "F.Fab") (width 0.1) (tstamp b4315830-f866-4f2e-a545-42c5017733d5)) (pad "1" thru_hole circle (at 0 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 139 "Net-(D3-Pad1)") (pintype "passive") (tstamp 3643d2b5-7e5c-4544-b8d2-e2fc8eab8f74)) + (net 138 "Net-(D3-Pad1)") (pintype "passive") (tstamp 3643d2b5-7e5c-4544-b8d2-e2fc8eab8f74)) (pad "2" thru_hole oval (at 7.62 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) (net 70 "Net-(J4-Pad7)") (pintype "passive") (tstamp 8bb56243-f03b-4d61-a6c5-d0d6c3ea3df8)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" @@ -2005,23 +2008,23 @@ (fp_line (start 6.985 -1.27) (end 6.985 24.13) (layer "F.Fab") (width 0.1) (tstamp cfedf1bb-40cb-43c7-bcad-bc5b12152a00)) (fp_line (start 0.635 24.13) (end 0.635 -0.27) (layer "F.Fab") (width 0.1) (tstamp f1b830b6-7ef2-4da2-9576-c2a1ef4d76e4)) (pad "1" thru_hole rect (at 0 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 81 "BUSDIR") (pinfunction "A->B") (pintype "input") (tstamp c5724be6-ad80-4bd4-a21e-b3973e2a9c77)) + (net 80 "BUSDIR") (pinfunction "A->B") (pintype "input") (tstamp c5724be6-ad80-4bd4-a21e-b3973e2a9c77)) (pad "2" thru_hole oval (at 0 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 89 "/#D0") (pinfunction "A0") (pintype "tri_state") (tstamp c855939e-33fb-4664-9ad6-50c4c0536a66)) + (net 88 "/#D0") (pinfunction "A0") (pintype "tri_state") (tstamp c855939e-33fb-4664-9ad6-50c4c0536a66)) (pad "3" thru_hole oval (at 0 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 90 "/#D1") (pinfunction "A1") (pintype "tri_state") (tstamp 1a52a89c-8682-4b86-96c8-37e2c23085b0)) + (net 89 "/#D1") (pinfunction "A1") (pintype "tri_state") (tstamp 1a52a89c-8682-4b86-96c8-37e2c23085b0)) (pad "4" thru_hole oval (at 0 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 91 "/#D2") (pinfunction "A2") (pintype "tri_state") (tstamp 01e312fb-40d3-49e4-a54b-a307a66e96ef)) + (net 90 "/#D2") (pinfunction "A2") (pintype "tri_state") (tstamp 01e312fb-40d3-49e4-a54b-a307a66e96ef)) (pad "5" thru_hole oval (at 0 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 92 "/#D3") (pinfunction "A3") (pintype "tri_state") (tstamp 9da477a5-8c72-43e7-a7c9-6a80d493c546)) + (net 91 "/#D3") (pinfunction "A3") (pintype "tri_state") (tstamp 9da477a5-8c72-43e7-a7c9-6a80d493c546)) (pad "6" thru_hole oval (at 0 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 93 "/#D4") (pinfunction "A4") (pintype "tri_state") (tstamp a069d719-3612-4cd6-956f-722fa6eb5d3f)) + (net 92 "/#D4") (pinfunction "A4") (pintype "tri_state") (tstamp a069d719-3612-4cd6-956f-722fa6eb5d3f)) (pad "7" thru_hole oval (at 0 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 94 "/#D5") (pinfunction "A5") (pintype "tri_state") (tstamp 48fbf426-2b3e-4dc5-841b-5bae1b650a83)) + (net 93 "/#D5") (pinfunction "A5") (pintype "tri_state") (tstamp 48fbf426-2b3e-4dc5-841b-5bae1b650a83)) (pad "8" thru_hole oval (at 0 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 95 "/#D6") (pinfunction "A6") (pintype "tri_state") (tstamp e1669825-ddf5-45c2-9e8a-592d9d67e2f6)) + (net 94 "/#D6") (pinfunction "A6") (pintype "tri_state") (tstamp e1669825-ddf5-45c2-9e8a-592d9d67e2f6)) (pad "9" thru_hole oval (at 0 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 96 "/#D7") (pinfunction "A7") (pintype "tri_state") (tstamp e102d31a-7f95-41e0-be06-868048cd5f87)) + (net 95 "/#D7") (pinfunction "A7") (pintype "tri_state") (tstamp e102d31a-7f95-41e0-be06-868048cd5f87)) (pad "10" thru_hole oval (at 0 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "GND") (pintype "power_in") (tstamp 1775540d-aec8-4594-9f46-ec7b6975da5f)) (pad "11" thru_hole oval (at 7.62 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) @@ -2103,7 +2106,7 @@ (fp_line (start 2.29 -0.8) (end 2.29 0.8) (layer "F.Fab") (width 0.1) (tstamp f49a8f2b-c37c-4dc8-bd45-9b8ddec2abc9)) (fp_line (start 2.646 -0.8) (end 2.646 0.8) (layer "F.Fab") (width 0.1) (tstamp fb2daeb4-0768-4007-a68f-6f861cc59a36)) (pad "1" thru_hole rect (at 0 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 141 "Net-(D5-Pad1)") (pinfunction "K") (pintype "passive") (tstamp f16a67d8-d31a-4402-8ca6-3a745fd8a411)) + (net 140 "Net-(D5-Pad1)") (pinfunction "K") (pintype "passive") (tstamp f16a67d8-d31a-4402-8ca6-3a745fd8a411)) (pad "2" thru_hole oval (at 7.62 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "A") (pintype "passive") (tstamp 49c3571d-8ffe-457a-bfef-ffbc46f87970)) (model "${KICAD6_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-34_SOD68_P7.62mm_Horizontal.wrl" @@ -2151,15 +2154,15 @@ (pad "1" thru_hole rect (at 0 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "common") (pintype "passive") (tstamp 1cd37efe-ca57-45a4-a971-e28ac0e2e0d3)) (pad "2" thru_hole oval (at 2.54 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 137 "Net-(J1-Pad10)") (pinfunction "R1") (pintype "passive") (tstamp 3d833438-5456-40bc-87f2-f51ae11028ad)) + (net 136 "Net-(J1-Pad10)") (pinfunction "R1") (pintype "passive") (tstamp 3d833438-5456-40bc-87f2-f51ae11028ad)) (pad "3" thru_hole oval (at 5.08 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 136 "Net-(J1-Pad8)") (pinfunction "R2") (pintype "passive") (tstamp 6ae1bca3-efe0-4248-b320-dc46396e05f4)) + (net 135 "Net-(J1-Pad8)") (pinfunction "R2") (pintype "passive") (tstamp 6ae1bca3-efe0-4248-b320-dc46396e05f4)) (pad "4" thru_hole oval (at 7.62 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 135 "Net-(J1-Pad6)") (pinfunction "R3") (pintype "passive") (tstamp 6c3baf61-1710-49e6-9158-ae9eb1a91e88)) + (net 134 "Net-(J1-Pad6)") (pinfunction "R3") (pintype "passive") (tstamp 6c3baf61-1710-49e6-9158-ae9eb1a91e88)) (pad "5" thru_hole oval (at 10.16 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 134 "Net-(J1-Pad4)") (pinfunction "R4") (pintype "passive") (tstamp 906c2b89-e0fe-4649-9791-22895d86e305)) + (net 133 "Net-(J1-Pad4)") (pinfunction "R4") (pintype "passive") (tstamp 906c2b89-e0fe-4649-9791-22895d86e305)) (pad "6" thru_hole oval (at 12.7 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 164 "Net-(RN1-Pad6)") (pinfunction "R5") (pintype "passive") (tstamp 1e2f3ffd-77d1-4f41-a112-bfb7c0242cb0)) + (net 163 "Net-(RN1-Pad6)") (pinfunction "R5") (pintype "passive") (tstamp 1e2f3ffd-77d1-4f41-a112-bfb7c0242cb0)) (pad "7" thru_hole oval (at 15.24 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 71 "Net-(RN1-Pad7)") (pinfunction "R6") (pintype "passive") (tstamp c96f9b04-85b8-4867-bdd1-e2de3492db9a)) (pad "8" thru_hole oval (at 17.78 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) @@ -2210,19 +2213,19 @@ (fp_line (start 1.635 -1.27) (end 6.985 -1.27) (layer "F.Fab") (width 0.1) (tstamp 7bb0d55d-b404-4481-8700-71521c063fb9)) (fp_line (start 6.985 8.89) (end 0.635 8.89) (layer "F.Fab") (width 0.1) (tstamp 9100ee31-69db-435b-a193-135b1ec4ff35)) (pad "1" thru_hole rect (at 0 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 130 "Net-(U10-Pad1)") (pinfunction "X1") (pintype "input") (tstamp d261f35d-0cbc-4647-a972-96323318fdbd)) + (net 129 "Net-(U10-Pad1)") (pinfunction "X1") (pintype "input") (tstamp d261f35d-0cbc-4647-a972-96323318fdbd)) (pad "2" thru_hole oval (at 0 2.54) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 131 "Net-(U10-Pad2)") (pinfunction "X2") (pintype "input") (tstamp 5d0a4d9a-4e0e-4917-8cc4-8bc3d500d165)) + (net 130 "Net-(U10-Pad2)") (pinfunction "X2") (pintype "input") (tstamp 5d0a4d9a-4e0e-4917-8cc4-8bc3d500d165)) (pad "3" thru_hole oval (at 0 5.08) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 138 "Net-(BT1-Padpos)") (pinfunction "VBAT") (pintype "power_in") (tstamp f541d4d1-de81-4564-9505-bad30f9c131d)) + (net 137 "Net-(BT1-Padpos)") (pinfunction "VBAT") (pintype "power_in") (tstamp f541d4d1-de81-4564-9505-bad30f9c131d)) (pad "4" thru_hole oval (at 0 7.62) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "GND") (pintype "power_in") (tstamp 4650a564-8737-42dd-93b7-7d6beb7c51e3)) (pad "5" thru_hole oval (at 7.62 7.62) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 171 "/I2C_SDA") (pinfunction "SDA") (pintype "bidirectional") (tstamp 4089dfab-6113-422c-b52d-3c5aa12584cc)) + (net 170 "/I2C_SDA") (pinfunction "SDA") (pintype "bidirectional") (tstamp 4089dfab-6113-422c-b52d-3c5aa12584cc)) (pad "6" thru_hole oval (at 7.62 5.08) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 172 "/I2C_SCL") (pinfunction "SCL") (pintype "input") (tstamp d1238931-fd05-48ce-b254-cf6847b09b08)) + (net 171 "/I2C_SCL") (pinfunction "SCL") (pintype "input") (tstamp d1238931-fd05-48ce-b254-cf6847b09b08)) (pad "7" thru_hole oval (at 7.62 2.54) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 132 "unconnected-(U10-Pad7)") (pinfunction "SQW/OUT") (pintype "open_collector+no_connect") (tstamp a09a43e1-08da-4f53-bd30-8877493490a3)) + (net 131 "unconnected-(U10-Pad7)") (pinfunction "SQW/OUT") (pintype "open_collector+no_connect") (tstamp a09a43e1-08da-4f53-bd30-8877493490a3)) (pad "8" thru_hole oval (at 7.62 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "VCC") (pintype "power_in") (tstamp 0ceeefba-9d3b-47b7-8e64-bbb71a4b304d)) (model "${KICAD6_3DMODEL_DIR}/Package_DIP.3dshapes/DIP-8_W7.62mm.wrl" @@ -2233,7 +2236,7 @@ ) (footprint "w_conn_av:PS2" (layer "F.Cu") - (tedit 0) (tstamp 80af0ec6-5f6d-4b15-a47c-8ad196343281) + (tedit 6362923F) (tstamp 80af0ec6-5f6d-4b15-a47c-8ad196343281) (at 43.429 88.529 90) (property "Sheetfile" "Z80-MIO.kicad_sch") (property "Sheetname" "") @@ -2263,22 +2266,22 @@ (fp_line (start 0 12.9) (end 0 0) (layer "F.CrtYd") (width 0.05) (tstamp 66d1cdc6-bf7f-48f1-8a37-5af3a38149c9)) (fp_line (start 0 0) (end 14 0) (layer "F.CrtYd") (width 0.05) (tstamp d02cc305-cc9d-4a81-9683-c30ba7989ea7)) (fp_line (start 14 0) (end 14 12.9) (layer "F.CrtYd") (width 0.05) (tstamp e28ee848-67ce-467b-bd3c-f331d94b5071)) - (pad "1" thru_hole circle (at 8.3 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) - (net 4 "KBDI") (pintype "passive") (tstamp 2b0175f4-7d47-478e-b3e6-ce672e2d7055)) - (pad "2" thru_hole circle (at 5.7 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) - (net 147 "unconnected-(J6-Pad2)") (pintype "passive") (tstamp 5456ca40-a7a4-42bd-a10d-8ccb2511cbe1)) - (pad "3" thru_hole circle (at 10.4 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) - (net 2 "GND") (pintype "passive") (tstamp 1b1548c2-b109-4fc4-95b0-2bb4a700f3ce)) + (pad "1" thru_hole circle (at 5.7 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) + (net 4 "KBDI") (pintype "passive") (tstamp 5456ca40-a7a4-42bd-a10d-8ccb2511cbe1)) + (pad "2" thru_hole circle (at 8.3 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) + (net 146 "unconnected-(J6-Pad2)") (pintype "passive") (tstamp 2b0175f4-7d47-478e-b3e6-ce672e2d7055)) + (pad "3" thru_hole circle (at 3.6 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) + (net 2 "GND") (pintype "passive") (tstamp 82c511d0-3975-4ace-9105-d43d486600ef)) (pad "3" thru_hole roundrect (at 0 5.5 90) (size 2.2 3) (drill oval 1.2 2.2) (layers *.Cu *.Mask) (roundrect_rratio 0.25) (net 2 "GND") (pintype "passive") (tstamp d33953f7-bc7b-4103-947a-59e9278f5423)) (pad "3" thru_hole roundrect (at 14 5.5 90) (size 2.2 3) (drill oval 1.2 2.2) (layers *.Cu *.Mask) (roundrect_rratio 0.25) (net 2 "GND") (pintype "passive") (tstamp e65148b4-eb46-42d9-b5f0-58ed22e50085)) - (pad "4" thru_hole circle (at 3.6 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) - (net 6 "+5V") (pintype "passive") (tstamp 82c511d0-3975-4ace-9105-d43d486600ef)) - (pad "5" thru_hole circle (at 10.4 11 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) - (net 5 "KBCI") (pintype "passive") (tstamp 69e8710e-6218-4b6e-8db0-eaeab8478013)) - (pad "6" thru_hole circle (at 3.6 11 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) - (net 148 "unconnected-(J6-Pad6)") (pintype "passive") (tstamp 61fa851c-0703-4688-bf0f-9cc32a6397f8)) + (pad "4" thru_hole circle (at 10.4 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) + (net 6 "+5V") (pintype "passive") (tstamp 1b1548c2-b109-4fc4-95b0-2bb4a700f3ce)) + (pad "5" thru_hole circle (at 3.6 11 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) + (net 5 "KBCI") (pintype "passive") (tstamp 61fa851c-0703-4688-bf0f-9cc32a6397f8)) + (pad "6" thru_hole circle (at 10.4 11 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) + (net 147 "unconnected-(J6-Pad6)") (pintype "passive") (tstamp 69e8710e-6218-4b6e-8db0-eaeab8478013)) ) (footprint "Diode_THT:D_DO-34_SOD68_P7.62mm_Horizontal" (layer "F.Cu") @@ -2381,7 +2384,7 @@ (fp_line (start 5.61 0.8) (end 5.61 -0.8) (layer "F.Fab") (width 0.1) (tstamp 68d44551-068d-4d1e-ac86-d75e7bed9595)) (fp_line (start 2.01 -0.8) (end 2.01 0.8) (layer "F.Fab") (width 0.1) (tstamp fd0407cc-c421-4934-92bb-3db48c0b0fb0)) (pad "1" thru_hole circle (at 0 0 90) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 105 "/~{INT3}") (pintype "passive") (tstamp 78c2d25a-7704-4d6a-8453-108b43cfd1d6)) + (net 104 "/~{INT3}") (pintype "passive") (tstamp 78c2d25a-7704-4d6a-8453-108b43cfd1d6)) (pad "2" thru_hole oval (at 7.62 0 90) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) (net 6 "+5V") (pintype "passive") (tstamp 096d4c8d-7560-4a0d-9a28-bc1738645c4d)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" @@ -2430,21 +2433,21 @@ (pad "1" thru_hole rect (at 0 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "A->B") (pintype "input") (tstamp 5189aa6e-70ab-4a3f-b077-dda1741f91b7)) (pad "2" thru_hole oval (at 0 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 97 "/#A0") (pinfunction "A0") (pintype "tri_state") (tstamp 0229d18d-d271-49be-8c03-8e4b32448bbc)) + (net 96 "/#A0") (pinfunction "A0") (pintype "tri_state") (tstamp 0229d18d-d271-49be-8c03-8e4b32448bbc)) (pad "3" thru_hole oval (at 0 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 98 "/#A1") (pinfunction "A1") (pintype "tri_state") (tstamp 95d1d7e6-2af7-45cd-9cac-96ff641999ad)) + (net 97 "/#A1") (pinfunction "A1") (pintype "tri_state") (tstamp 95d1d7e6-2af7-45cd-9cac-96ff641999ad)) (pad "4" thru_hole oval (at 0 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 99 "/#A2") (pinfunction "A2") (pintype "tri_state") (tstamp d58aee08-764b-495e-ad45-18c000aae31b)) + (net 98 "/#A2") (pinfunction "A2") (pintype "tri_state") (tstamp d58aee08-764b-495e-ad45-18c000aae31b)) (pad "5" thru_hole oval (at 0 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 100 "/#A3") (pinfunction "A3") (pintype "tri_state") (tstamp f49feac5-a65e-47a5-9dac-96706dc167fe)) + (net 99 "/#A3") (pinfunction "A3") (pintype "tri_state") (tstamp f49feac5-a65e-47a5-9dac-96706dc167fe)) (pad "6" thru_hole oval (at 0 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 101 "/#A4") (pinfunction "A4") (pintype "tri_state") (tstamp 46623689-012f-493c-b0fa-8293f4b8597b)) + (net 100 "/#A4") (pinfunction "A4") (pintype "tri_state") (tstamp 46623689-012f-493c-b0fa-8293f4b8597b)) (pad "7" thru_hole oval (at 0 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 102 "/#A5") (pinfunction "A5") (pintype "tri_state") (tstamp 2ba67b9a-0055-45b4-8f97-f7b22b6fd99c)) + (net 101 "/#A5") (pinfunction "A5") (pintype "tri_state") (tstamp 2ba67b9a-0055-45b4-8f97-f7b22b6fd99c)) (pad "8" thru_hole oval (at 0 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 103 "/#A6") (pinfunction "A6") (pintype "tri_state") (tstamp 623fe86a-f595-45e2-9b63-20e36835dfb1)) + (net 102 "/#A6") (pinfunction "A6") (pintype "tri_state") (tstamp 623fe86a-f595-45e2-9b63-20e36835dfb1)) (pad "9" thru_hole oval (at 0 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 104 "/#A7") (pinfunction "A7") (pintype "tri_state") (tstamp faf77604-f7a6-410f-89b4-59d461dad720)) + (net 103 "/#A7") (pinfunction "A7") (pintype "tri_state") (tstamp faf77604-f7a6-410f-89b4-59d461dad720)) (pad "10" thru_hole oval (at 0 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "GND") (pintype "power_in") (tstamp f551cf08-2ea0-4d57-b536-75e72cbad732)) (pad "11" thru_hole oval (at 7.62 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) @@ -2513,21 +2516,21 @@ (fp_line (start 0 -1.27) (end 3.81 -1.27) (layer "F.Fab") (width 0.1) (tstamp e1e508d7-c1a6-431b-82b8-72ca1342b368)) (fp_line (start 3.81 -1.27) (end 3.81 8.89) (layer "F.Fab") (width 0.1) (tstamp ef3115c4-23ab-4f71-a4e9-698c2541e1bf)) (pad "1" thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 162 "Net-(J9-Pad1)") (pinfunction "Pin_1") (pintype "passive") (tstamp 6f9768aa-a42d-4c54-8fd6-1e83bd60d092)) + (net 161 "Net-(J9-Pad1)") (pinfunction "Pin_1") (pintype "passive") (tstamp 6f9768aa-a42d-4c54-8fd6-1e83bd60d092)) (pad "2" thru_hole oval (at 2.54 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 167 "Net-(J9-Pad2)") (pinfunction "Pin_2") (pintype "passive") (tstamp 73611aa0-14a7-4661-9995-407a177db15a)) + (net 166 "Net-(J9-Pad2)") (pinfunction "Pin_2") (pintype "passive") (tstamp 73611aa0-14a7-4661-9995-407a177db15a)) (pad "3" thru_hole oval (at 0 2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 168 "Net-(J9-Pad3)") (pinfunction "Pin_3") (pintype "passive") (tstamp 33855b55-d8ca-4025-93ff-bde42f0af16c)) + (net 167 "Net-(J9-Pad3)") (pinfunction "Pin_3") (pintype "passive") (tstamp 33855b55-d8ca-4025-93ff-bde42f0af16c)) (pad "4" thru_hole oval (at 2.54 2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 167 "Net-(J9-Pad2)") (pinfunction "Pin_4") (pintype "passive") (tstamp eda76c5c-e61c-4413-93ff-3f8b8f08c362)) + (net 166 "Net-(J9-Pad2)") (pinfunction "Pin_4") (pintype "passive") (tstamp eda76c5c-e61c-4413-93ff-3f8b8f08c362)) (pad "5" thru_hole oval (at 0 5.08) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 169 "Net-(J9-Pad5)") (pinfunction "Pin_5") (pintype "passive") (tstamp 2b813d2f-433c-4151-8dd8-f3f6cde04e62)) + (net 168 "Net-(J9-Pad5)") (pinfunction "Pin_5") (pintype "passive") (tstamp 2b813d2f-433c-4151-8dd8-f3f6cde04e62)) (pad "6" thru_hole oval (at 2.54 5.08) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 167 "Net-(J9-Pad2)") (pinfunction "Pin_6") (pintype "passive") (tstamp db8d9adb-c0be-4d33-89a8-203607ad24a7)) + (net 166 "Net-(J9-Pad2)") (pinfunction "Pin_6") (pintype "passive") (tstamp db8d9adb-c0be-4d33-89a8-203607ad24a7)) (pad "7" thru_hole oval (at 0 7.62) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 170 "Net-(J9-Pad7)") (pinfunction "Pin_7") (pintype "passive") (tstamp 309d5684-dc7c-4967-8535-170de839af9c)) + (net 169 "Net-(J9-Pad7)") (pinfunction "Pin_7") (pintype "passive") (tstamp 309d5684-dc7c-4967-8535-170de839af9c)) (pad "8" thru_hole oval (at 2.54 7.62) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 167 "Net-(J9-Pad2)") (pinfunction "Pin_8") (pintype "passive") (tstamp 5041026a-8a32-4d9b-bbf9-e5553c0671c9)) + (net 166 "Net-(J9-Pad2)") (pinfunction "Pin_8") (pintype "passive") (tstamp 5041026a-8a32-4d9b-bbf9-e5553c0671c9)) (model "${KICAD6_3DMODEL_DIR}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_2x04_P2.54mm_Vertical.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -2587,9 +2590,9 @@ (fp_line (start 2.29 -0.8) (end 2.29 0.8) (layer "F.Fab") (width 0.1) (tstamp d7ffa858-fb3e-4b87-b054-5bf244b6970b)) (fp_line (start 5.33 0.8) (end 5.33 -0.8) (layer "F.Fab") (width 0.1) (tstamp fd705517-e1d2-422a-bc2f-c4bfd1d4997b)) (pad "1" thru_hole rect (at 0 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 145 "Net-(D11-Pad1)") (pinfunction "K") (pintype "passive") (tstamp cd793d41-979c-45e1-9a10-8011d6a17af7)) + (net 144 "Net-(D11-Pad1)") (pinfunction "K") (pintype "passive") (tstamp cd793d41-979c-45e1-9a10-8011d6a17af7)) (pad "2" thru_hole oval (at 7.62 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 171 "/I2C_SDA") (pinfunction "A") (pintype "passive") (tstamp cf3ba1db-ffb8-4a85-95c6-e0c67e62e98d)) + (net 170 "/I2C_SDA") (pinfunction "A") (pintype "passive") (tstamp cf3ba1db-ffb8-4a85-95c6-e0c67e62e98d)) (model "${KICAD6_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-34_SOD68_P7.62mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -2667,9 +2670,9 @@ (fp_line (start 1.87 3) (end 2.54 1.5) (layer "F.Fab") (width 0.1) (tstamp be3a3bf8-7ebc-4ff9-89c7-f7a7d0390fea)) (fp_line (start -0.23 13.5) (end 2.77 13.5) (layer "F.Fab") (width 0.1) (tstamp d4314823-092e-4dda-9b5c-162370dc81a0)) (pad "1" thru_hole circle (at 0 0) (size 1 1) (drill 0.5) (layers *.Cu *.Mask) - (net 131 "Net-(U10-Pad2)") (pinfunction "1") (pintype "passive") (tstamp 739609af-b6cd-435e-9508-bf2af1bca4d4)) + (net 130 "Net-(U10-Pad2)") (pinfunction "1") (pintype "passive") (tstamp 739609af-b6cd-435e-9508-bf2af1bca4d4)) (pad "2" thru_hole circle (at 2.54 0) (size 1 1) (drill 0.5) (layers *.Cu *.Mask) - (net 130 "Net-(U10-Pad1)") (pinfunction "2") (pintype "passive") (tstamp f297c95d-d526-45d5-8df3-33ae870c43cf)) + (net 129 "Net-(U10-Pad1)") (pinfunction "2") (pintype "passive") (tstamp f297c95d-d526-45d5-8df3-33ae870c43cf)) (model "${KICAD6_3DMODEL_DIR}/Crystal.3dshapes/Crystal_AT310_D3.0mm_L10.0mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -2718,49 +2721,49 @@ (pad "2" thru_hole oval (at 0 2.54 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "X1") (pintype "input") (tstamp d491e79f-9780-4662-9daf-f546943732f7)) (pad "3" thru_hole oval (at 0 5.08 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 113 "/#CLK_CPU") (pinfunction "X2") (pintype "output") (tstamp 99cf65b6-7fd1-4279-ac95-e2f48809fbd6)) + (net 112 "/#CLK_CPU") (pinfunction "X2") (pintype "output") (tstamp 99cf65b6-7fd1-4279-ac95-e2f48809fbd6)) (pad "4" thru_hole oval (at 0 7.62 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 120 "/~{#RESET}") (pinfunction "~{RESET}") (pintype "input") (tstamp 7f4e060b-9e6c-44f5-9022-212391e75ec4)) + (net 119 "/~{#RESET}") (pinfunction "~{RESET}") (pintype "input") (tstamp 7f4e060b-9e6c-44f5-9022-212391e75ec4)) (pad "5" thru_hole oval (at 0 10.16 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "~{SS}") (pintype "input") (tstamp 2d760bd7-8dda-4a69-a3b9-d7883649e4d5)) (pad "6" thru_hole oval (at 0 12.7 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 87 "/CS_PS2") (pinfunction "~{INT}") (pintype "input") (tstamp c4b42900-1724-41ae-9165-c4d470a216da)) + (net 86 "/CS_PS2") (pinfunction "~{INT}") (pintype "input") (tstamp c4b42900-1724-41ae-9165-c4d470a216da)) (pad "7" thru_hole oval (at 0 15.24 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "EA") (pintype "input") (tstamp 68c5da9d-df79-44e2-ba25-856fe2980103)) (pad "8" thru_hole oval (at 0 17.78 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 77 "/~{#RD}") (pinfunction "~{RD}") (pintype "output") (tstamp 34db7dbd-5d09-45ea-a4f4-a6af33c207ae)) + (net 76 "/~{#RD}") (pinfunction "~{RD}") (pintype "output") (tstamp 34db7dbd-5d09-45ea-a4f4-a6af33c207ae)) (pad "9" thru_hole oval (at 0 20.32 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 97 "/#A0") (pinfunction "~{PSEN}") (pintype "output") (tstamp c1eb79c8-c971-4813-8f4e-4ef413e23f8e)) + (net 96 "/#A0") (pinfunction "~{PSEN}") (pintype "output") (tstamp c1eb79c8-c971-4813-8f4e-4ef413e23f8e)) (pad "10" thru_hole oval (at 0 22.86 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 78 "/~{#WR}") (pinfunction "~{WR}") (pintype "output") (tstamp 191a164f-e07f-43e1-bc93-87f597c2bb29)) + (net 77 "/~{#WR}") (pinfunction "~{WR}") (pintype "output") (tstamp 191a164f-e07f-43e1-bc93-87f597c2bb29)) (pad "11" thru_hole oval (at 0 25.4 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 121 "unconnected-(U9-Pad11)") (pinfunction "ALE") (pintype "output+no_connect") (tstamp a3db9c1b-8b39-4d6b-a561-8ff3a03577c1)) + (net 120 "unconnected-(U9-Pad11)") (pinfunction "ALE") (pintype "output+no_connect") (tstamp a3db9c1b-8b39-4d6b-a561-8ff3a03577c1)) (pad "12" thru_hole oval (at 0 27.94 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 89 "/#D0") (pinfunction "DB.0") (pintype "bidirectional") (tstamp 994adb6e-943f-462f-a2b4-ae20f4c60920)) + (net 88 "/#D0") (pinfunction "DB.0") (pintype "bidirectional") (tstamp 994adb6e-943f-462f-a2b4-ae20f4c60920)) (pad "13" thru_hole oval (at 0 30.48 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 90 "/#D1") (pinfunction "DB.1") (pintype "bidirectional") (tstamp 2b77f9da-f17d-4e9a-800a-449426ecabc6)) + (net 89 "/#D1") (pinfunction "DB.1") (pintype "bidirectional") (tstamp 2b77f9da-f17d-4e9a-800a-449426ecabc6)) (pad "14" thru_hole oval (at 0 33.02 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 91 "/#D2") (pinfunction "DB.2") (pintype "bidirectional") (tstamp 3e6161e6-4dc1-4ac2-a26e-1c12e5acdd7a)) + (net 90 "/#D2") (pinfunction "DB.2") (pintype "bidirectional") (tstamp 3e6161e6-4dc1-4ac2-a26e-1c12e5acdd7a)) (pad "15" thru_hole oval (at 0 35.56 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 92 "/#D3") (pinfunction "DB.3") (pintype "bidirectional") (tstamp 3f6188c6-f2db-4c88-adc8-a34b79bc9199)) + (net 91 "/#D3") (pinfunction "DB.3") (pintype "bidirectional") (tstamp 3f6188c6-f2db-4c88-adc8-a34b79bc9199)) (pad "16" thru_hole oval (at 0 38.1 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 93 "/#D4") (pinfunction "DB.4") (pintype "bidirectional") (tstamp 115b6f7a-b2f0-451e-a900-965c41dae61f)) + (net 92 "/#D4") (pinfunction "DB.4") (pintype "bidirectional") (tstamp 115b6f7a-b2f0-451e-a900-965c41dae61f)) (pad "17" thru_hole oval (at 0 40.64 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 94 "/#D5") (pinfunction "DB.5") (pintype "bidirectional") (tstamp d39ea64c-ed24-4ee0-9498-c07b0a329d29)) + (net 93 "/#D5") (pinfunction "DB.5") (pintype "bidirectional") (tstamp d39ea64c-ed24-4ee0-9498-c07b0a329d29)) (pad "18" thru_hole oval (at 0 43.18 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 95 "/#D6") (pinfunction "DB.6") (pintype "bidirectional") (tstamp d2ce1fbc-bc03-42e1-b8d0-4839e8bc6182)) + (net 94 "/#D6") (pinfunction "DB.6") (pintype "bidirectional") (tstamp d2ce1fbc-bc03-42e1-b8d0-4839e8bc6182)) (pad "19" thru_hole oval (at 0 45.72 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 96 "/#D7") (pinfunction "DB.7") (pintype "bidirectional") (tstamp ccba2929-850a-4610-8541-6c7fd675031a)) + (net 95 "/#D7") (pinfunction "DB.7") (pintype "bidirectional") (tstamp ccba2929-850a-4610-8541-6c7fd675031a)) (pad "20" thru_hole oval (at 0 48.26 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "GND") (pintype "power_in") (tstamp b7c8444d-6681-4d89-b405-3a56277db767)) (pad "21" thru_hole oval (at 15.24 48.26 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 122 "unconnected-(U9-Pad21)") (pinfunction "P2.0") (pintype "bidirectional+no_connect") (tstamp 3ef53b79-bade-42ea-9987-a3ec5ba8e832)) + (net 121 "unconnected-(U9-Pad21)") (pinfunction "P2.0") (pintype "bidirectional+no_connect") (tstamp 3ef53b79-bade-42ea-9987-a3ec5ba8e832)) (pad "22" thru_hole oval (at 15.24 45.72 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 123 "unconnected-(U9-Pad22)") (pinfunction "P2.1") (pintype "bidirectional+no_connect") (tstamp 1041da4b-7441-4e73-8691-f4fa9d51a980)) + (net 122 "unconnected-(U9-Pad22)") (pinfunction "P2.1") (pintype "bidirectional+no_connect") (tstamp 1041da4b-7441-4e73-8691-f4fa9d51a980)) (pad "23" thru_hole oval (at 15.24 43.18 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 116 "MSDO") (pinfunction "P2.2") (pintype "bidirectional") (tstamp 3b47e5e5-159c-420e-91cd-771e39868d59)) + (net 115 "MSDO") (pinfunction "P2.2") (pintype "bidirectional") (tstamp 3b47e5e5-159c-420e-91cd-771e39868d59)) (pad "24" thru_hole oval (at 15.24 40.64 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 115 "MSCO") (pinfunction "P2.3") (pintype "bidirectional") (tstamp 9e355f0d-8866-4021-9373-7e1a5674b4e2)) + (net 114 "MSCO") (pinfunction "P2.3") (pintype "bidirectional") (tstamp 9e355f0d-8866-4021-9373-7e1a5674b4e2)) (pad "25" thru_hole oval (at 15.24 38.1 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "PROG") (pintype "output") (tstamp 9e69aef3-6e68-4a89-8fb2-c8211c868c04)) (pad "26" thru_hole oval (at 15.24 35.56 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) @@ -2770,25 +2773,25 @@ (pad "28" thru_hole oval (at 15.24 30.48 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 1 "MSDI") (pinfunction "P1.1") (pintype "bidirectional") (tstamp 96d5d53d-faf3-4026-bab6-7894ca8c1367)) (pad "29" thru_hole oval (at 15.24 27.94 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 124 "unconnected-(U9-Pad29)") (pinfunction "P1.2") (pintype "bidirectional+no_connect") (tstamp 365a9f24-7589-4a9e-9d86-c7f3815abd7c)) + (net 123 "unconnected-(U9-Pad29)") (pinfunction "P1.2") (pintype "bidirectional+no_connect") (tstamp 365a9f24-7589-4a9e-9d86-c7f3815abd7c)) (pad "30" thru_hole oval (at 15.24 25.4 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 125 "unconnected-(U9-Pad30)") (pinfunction "P1.3") (pintype "bidirectional+no_connect") (tstamp 38409c78-b39c-48ed-92b0-0604b33b4812)) + (net 124 "unconnected-(U9-Pad30)") (pinfunction "P1.3") (pintype "bidirectional+no_connect") (tstamp 38409c78-b39c-48ed-92b0-0604b33b4812)) (pad "31" thru_hole oval (at 15.24 22.86 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 126 "unconnected-(U9-Pad31)") (pinfunction "P1.4") (pintype "bidirectional+no_connect") (tstamp 901f37ac-b4b0-4741-aed1-794e93ecd642)) + (net 125 "unconnected-(U9-Pad31)") (pinfunction "P1.4") (pintype "bidirectional+no_connect") (tstamp 901f37ac-b4b0-4741-aed1-794e93ecd642)) (pad "32" thru_hole oval (at 15.24 20.32 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 127 "unconnected-(U9-Pad32)") (pinfunction "P1.5") (pintype "bidirectional+no_connect") (tstamp 172c5f04-6919-4eab-86f3-ee25ac112011)) + (net 126 "unconnected-(U9-Pad32)") (pinfunction "P1.5") (pintype "bidirectional+no_connect") (tstamp 172c5f04-6919-4eab-86f3-ee25ac112011)) (pad "33" thru_hole oval (at 15.24 17.78 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 128 "unconnected-(U9-Pad33)") (pinfunction "P1.6") (pintype "bidirectional+no_connect") (tstamp 3a7acd1a-a80c-40c5-a099-37feb88fbe20)) + (net 127 "unconnected-(U9-Pad33)") (pinfunction "P1.6") (pintype "bidirectional+no_connect") (tstamp 3a7acd1a-a80c-40c5-a099-37feb88fbe20)) (pad "34" thru_hole oval (at 15.24 15.24 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 129 "unconnected-(U9-Pad34)") (pinfunction "P1.7") (pintype "bidirectional+no_connect") (tstamp b3ba4f28-bfb4-4a1d-83f8-8ec43a35be29)) + (net 128 "unconnected-(U9-Pad34)") (pinfunction "P1.7") (pintype "bidirectional+no_connect") (tstamp b3ba4f28-bfb4-4a1d-83f8-8ec43a35be29)) (pad "35" thru_hole oval (at 15.24 12.7 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 119 "Net-(U7-Pad11)") (pinfunction "P2.4") (pintype "bidirectional") (tstamp 79a7e891-df9d-4325-909f-ac369f77c54c)) + (net 118 "Net-(U7-Pad11)") (pinfunction "P2.4") (pintype "bidirectional") (tstamp 79a7e891-df9d-4325-909f-ac369f77c54c)) (pad "36" thru_hole oval (at 15.24 10.16 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 166 "Net-(U7-Pad13)") (pinfunction "P2.5") (pintype "bidirectional") (tstamp 3333ebbd-b600-46c6-8cf0-8b6e02842df3)) + (net 165 "Net-(U7-Pad13)") (pinfunction "P2.5") (pintype "bidirectional") (tstamp 3333ebbd-b600-46c6-8cf0-8b6e02842df3)) (pad "37" thru_hole oval (at 15.24 7.62 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 118 "KBCO") (pinfunction "P2.6") (pintype "bidirectional") (tstamp d1851cec-0898-4ecb-9de2-d90a57dc0d95)) + (net 117 "KBCO") (pinfunction "P2.6") (pintype "bidirectional") (tstamp d1851cec-0898-4ecb-9de2-d90a57dc0d95)) (pad "38" thru_hole oval (at 15.24 5.08 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 117 "KBDO") (pinfunction "P2.7") (pintype "bidirectional") (tstamp c4d1ce88-3cb0-4fe8-8b84-80e87a78cd3a)) + (net 116 "KBDO") (pinfunction "P2.7") (pintype "bidirectional") (tstamp c4d1ce88-3cb0-4fe8-8b84-80e87a78cd3a)) (pad "39" thru_hole oval (at 15.24 2.54 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 3 "MSCI") (pinfunction "T1") (pintype "input") (tstamp 5bdd1992-6afd-49b5-be69-1b5cff462f84)) (pad "40" thru_hole oval (at 15.24 0 90) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) @@ -2912,21 +2915,21 @@ (pad "1" thru_hole rect (at 0 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "A->B") (pintype "input") (tstamp a4504b9f-077e-405e-9fd7-29dfc69e5229)) (pad "2" thru_hole oval (at 0 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 77 "/~{#RD}") (pinfunction "A0") (pintype "tri_state") (tstamp 3c8e8f2a-31bf-4356-848e-06b433cb1f15)) + (net 76 "/~{#RD}") (pinfunction "A0") (pintype "tri_state") (tstamp 3c8e8f2a-31bf-4356-848e-06b433cb1f15)) (pad "3" thru_hole oval (at 0 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 78 "/~{#WR}") (pinfunction "A1") (pintype "tri_state") (tstamp d29e8112-d7b1-4408-bccb-c88e474009d3)) + (net 77 "/~{#WR}") (pinfunction "A1") (pintype "tri_state") (tstamp d29e8112-d7b1-4408-bccb-c88e474009d3)) (pad "4" thru_hole oval (at 0 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 133 "unconnected-(U5-Pad4)") (pinfunction "A2") (pintype "tri_state+no_connect") (tstamp 639ed656-91b0-4941-87e5-f8104d914c63)) + (net 132 "unconnected-(U5-Pad4)") (pinfunction "A2") (pintype "tri_state+no_connect") (tstamp 639ed656-91b0-4941-87e5-f8104d914c63)) (pad "5" thru_hole oval (at 0 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 76 "/~{#IOREQ}") (pinfunction "A3") (pintype "tri_state") (tstamp aa4b260f-49c4-4336-869a-9fc778cc7b79)) + (net 75 "/~{#IOREQ}") (pinfunction "A3") (pintype "tri_state") (tstamp aa4b260f-49c4-4336-869a-9fc778cc7b79)) (pad "6" thru_hole oval (at 0 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 165 "unconnected-(U5-Pad6)") (pinfunction "A4") (pintype "tri_state+no_connect") (tstamp 6734f166-06cf-4857-b933-90ccbabe4a11)) + (net 164 "unconnected-(U5-Pad6)") (pinfunction "A4") (pintype "tri_state+no_connect") (tstamp 6734f166-06cf-4857-b933-90ccbabe4a11)) (pad "7" thru_hole oval (at 0 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 113 "/#CLK_CPU") (pinfunction "A5") (pintype "tri_state") (tstamp d99c5898-e956-4de4-b128-c4f72815a2b1)) + (net 112 "/#CLK_CPU") (pinfunction "A5") (pintype "tri_state") (tstamp d99c5898-e956-4de4-b128-c4f72815a2b1)) (pad "8" thru_hole oval (at 0 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 114 "/~{#M1}") (pinfunction "A6") (pintype "tri_state") (tstamp 19a8ec0e-3f66-4549-84f1-2404f9be175f)) + (net 113 "/~{#M1}") (pinfunction "A6") (pintype "tri_state") (tstamp 19a8ec0e-3f66-4549-84f1-2404f9be175f)) (pad "9" thru_hole oval (at 0 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 120 "/~{#RESET}") (pinfunction "A7") (pintype "tri_state") (tstamp e0b6636f-62b9-430c-a8cd-ac04e092cfb7)) + (net 119 "/~{#RESET}") (pinfunction "A7") (pintype "tri_state") (tstamp e0b6636f-62b9-430c-a8cd-ac04e092cfb7)) (pad "10" thru_hole oval (at 0 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "GND") (pintype "power_in") (tstamp a893b0a2-5ce4-4fc8-8874-82ea0e60fbf0)) (pad "11" thru_hole oval (at 7.62 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) @@ -3008,7 +3011,7 @@ (fp_line (start 2.746 -0.8) (end 2.746 0.8) (layer "F.Fab") (width 0.1) (tstamp dd417306-d383-46ca-9cbe-e19202391dcc)) (fp_line (start 2.846 -0.8) (end 2.846 0.8) (layer "F.Fab") (width 0.1) (tstamp ed8ac756-1c98-4fb1-9625-1ecc9897a8f4)) (pad "1" thru_hole rect (at 0 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 143 "Net-(D7-Pad1)") (pinfunction "K") (pintype "passive") (tstamp 3ee3b340-9230-46c1-beb7-5c21ad87d588)) + (net 142 "Net-(D7-Pad1)") (pinfunction "K") (pintype "passive") (tstamp 3ee3b340-9230-46c1-beb7-5c21ad87d588)) (pad "2" thru_hole oval (at 7.62 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "A") (pintype "passive") (tstamp 66aea3c9-146c-4766-ae38-50f020e290d7)) (model "${KICAD6_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-34_SOD68_P7.62mm_Horizontal.wrl" @@ -3125,7 +3128,7 @@ (pad "a5" thru_hole circle (at 10.16 0 270) (size 1.55 1.55) (drill 1) (layers *.Cu *.Mask) (net 15 "/MEMAQ") (pinfunction "Pin_a5") (pintype "passive") (tstamp 9d690fea-02a7-469e-b42c-7ede0fdf0a89)) (pad "a6" thru_hole circle (at 12.7 0 270) (size 1.55 1.55) (drill 1) (layers *.Cu *.Mask) - (net 105 "/~{INT3}") (pinfunction "Pin_a6") (pintype "passive") (tstamp 45bbf99b-0cb7-4538-a920-f47408db897d)) + (net 104 "/~{INT3}") (pinfunction "Pin_a6") (pintype "passive") (tstamp 45bbf99b-0cb7-4538-a920-f47408db897d)) (pad "a7" thru_hole circle (at 15.24 0 270) (size 1.55 1.55) (drill 1) (layers *.Cu *.Mask) (net 16 "/A0") (pinfunction "Pin_a7") (pintype "passive") (tstamp 1665c907-a2f4-4b9d-ac7b-7b6fdac1a008)) (pad "a8" thru_hole circle (at 17.78 0 270) (size 1.55 1.55) (drill 1) (layers *.Cu *.Mask) @@ -3301,7 +3304,7 @@ (fp_line (start 0 0) (end 2.29 0) (layer "F.Fab") (width 0.1) (tstamp fe8a5dcd-d80a-47f2-a462-46725d763b57)) (fp_line (start 2.29 -0.8) (end 2.29 0.8) (layer "F.Fab") (width 0.1) (tstamp ff413d93-25d3-4f5b-8134-bbdf00f8775c)) (pad "1" thru_hole rect (at 0 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 142 "Net-(D6-Pad1)") (pinfunction "K") (pintype "passive") (tstamp b8650d51-eff7-4c07-9f39-e52b608b61ce)) + (net 141 "Net-(D6-Pad1)") (pinfunction "K") (pintype "passive") (tstamp b8650d51-eff7-4c07-9f39-e52b608b61ce)) (pad "2" thru_hole oval (at 7.62 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "A") (pintype "passive") (tstamp a4a6043e-c9eb-462a-92d5-53721f05f7f1)) (model "${KICAD6_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-34_SOD68_P7.62mm_Horizontal.wrl" @@ -3363,7 +3366,7 @@ (fp_line (start 2.746 -0.8) (end 2.746 0.8) (layer "F.Fab") (width 0.1) (tstamp ee2ecb28-13e9-4420-9ecb-79839421bfe8)) (fp_line (start 2.646 -0.8) (end 2.646 0.8) (layer "F.Fab") (width 0.1) (tstamp f1f4889f-5ff3-41fe-922f-2b1e879ab480)) (pad "1" thru_hole rect (at 0 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 145 "Net-(D11-Pad1)") (pinfunction "K") (pintype "passive") (tstamp 83a2abec-109b-48e8-ba6b-f90c6de3029b)) + (net 144 "Net-(D11-Pad1)") (pinfunction "K") (pintype "passive") (tstamp 83a2abec-109b-48e8-ba6b-f90c6de3029b)) (pad "2" thru_hole oval (at 7.62 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "A") (pintype "passive") (tstamp 4aed9311-9c16-4f57-8abd-fd424443f672)) (model "${KICAD6_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-34_SOD68_P7.62mm_Horizontal.wrl" @@ -3459,7 +3462,7 @@ (pad "1" thru_hole circle (at 0 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) (net 6 "+5V") (pintype "passive") (tstamp 5a183ca8-3aeb-43ff-b515-80b406aade00)) (pad "2" thru_hole oval (at 7.62 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 153 "Net-(R20-Pad2)") (pintype "passive") (tstamp e6482501-3313-457e-81eb-ccd51c15e6bf)) + (net 152 "Net-(R20-Pad2)") (pintype "passive") (tstamp e6482501-3313-457e-81eb-ccd51c15e6bf)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -3508,19 +3511,19 @@ (pad "1" thru_hole rect (at 0 0 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) (net 40 "/~{INT0}") (pinfunction "Pin_1") (pintype "passive") (tstamp 60ac9bbc-ab88-461c-84b2-ab062e70f4f4)) (pad "2" thru_hole oval (at 2.54 0 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 155 "Net-(J8-Pad2)") (pinfunction "Pin_2") (pintype "passive") (tstamp acd18701-a4ed-492d-a44b-f46c0ff11a07)) + (net 154 "Net-(J8-Pad2)") (pinfunction "Pin_2") (pintype "passive") (tstamp acd18701-a4ed-492d-a44b-f46c0ff11a07)) (pad "3" thru_hole oval (at 0 2.54 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) (net 41 "/~{INT1}") (pinfunction "Pin_3") (pintype "passive") (tstamp 6987431d-46da-4786-8718-591cfd165b0a)) (pad "4" thru_hole oval (at 2.54 2.54 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 155 "Net-(J8-Pad2)") (pinfunction "Pin_4") (pintype "passive") (tstamp c13cb299-c112-4746-b939-055f3bcd5f66)) + (net 154 "Net-(J8-Pad2)") (pinfunction "Pin_4") (pintype "passive") (tstamp c13cb299-c112-4746-b939-055f3bcd5f66)) (pad "5" thru_hole oval (at 0 5.08 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) (net 42 "/~{INT2}") (pinfunction "Pin_5") (pintype "passive") (tstamp f582a032-2f09-4662-8757-5c8bf0aa1311)) (pad "6" thru_hole oval (at 2.54 5.08 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 155 "Net-(J8-Pad2)") (pinfunction "Pin_6") (pintype "passive") (tstamp 855ed567-09e1-4ac3-90b0-f7e25f211a13)) + (net 154 "Net-(J8-Pad2)") (pinfunction "Pin_6") (pintype "passive") (tstamp 855ed567-09e1-4ac3-90b0-f7e25f211a13)) (pad "7" thru_hole oval (at 0 7.62 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 105 "/~{INT3}") (pinfunction "Pin_7") (pintype "passive") (tstamp 84cf4453-2e8f-4291-a518-c15e255d2112)) + (net 104 "/~{INT3}") (pinfunction "Pin_7") (pintype "passive") (tstamp 84cf4453-2e8f-4291-a518-c15e255d2112)) (pad "8" thru_hole oval (at 2.54 7.62 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 155 "Net-(J8-Pad2)") (pinfunction "Pin_8") (pintype "passive") (tstamp 7054d370-b592-4b76-9916-601c7db6771a)) + (net 154 "Net-(J8-Pad2)") (pinfunction "Pin_8") (pintype "passive") (tstamp 7054d370-b592-4b76-9916-601c7db6771a)) (model "${KICAD6_3DMODEL_DIR}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_2x04_P2.54mm_Vertical.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -3659,7 +3662,7 @@ (pad "1" thru_hole rect (at 0 0 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) (net 56 "/~{WAIT}") (pinfunction "A") (pintype "passive") (tstamp 6b88ceb7-3edb-467d-9e94-661682389487)) (pad "2" thru_hole oval (at 0 2.54 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 154 "Net-(J7-Pad2)") (pinfunction "B") (pintype "passive") (tstamp 68bd9244-ad41-43e6-b7c7-8d19b53f9a7a)) + (net 153 "Net-(J7-Pad2)") (pinfunction "B") (pintype "passive") (tstamp 68bd9244-ad41-43e6-b7c7-8d19b53f9a7a)) (model "${KICAD6_3DMODEL_DIR}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_1x02_P2.54mm_Vertical.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -3891,7 +3894,7 @@ (fp_line (start 2.01 -0.8) (end 2.01 0.8) (layer "F.Fab") (width 0.1) (tstamp d4d72bff-adda-467d-a11e-c564e59916da)) (fp_line (start 5.61 -0.8) (end 2.01 -0.8) (layer "F.Fab") (width 0.1) (tstamp fb51008f-9d27-4579-81f0-636de7d8dc82)) (pad "1" thru_hole circle (at 0 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 142 "Net-(D6-Pad1)") (pintype "passive") (tstamp 63a8ed76-5a53-40c9-ba43-5100324a4390)) + (net 141 "Net-(D6-Pad1)") (pintype "passive") (tstamp 63a8ed76-5a53-40c9-ba43-5100324a4390)) (pad "2" thru_hole oval (at 7.62 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) (net 63 "Net-(J4-Pad6)") (pintype "passive") (tstamp 9ed03e41-dd8e-4c64-81e8-0958330ef15f)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" @@ -3937,7 +3940,7 @@ (pad "neg" thru_hole rect (at 0 0) (size 2.17 2.17) (drill 1.17) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "neg") (pintype "passive") (tstamp 580ec9aa-7868-4157-a1fa-b865c39776b8)) (pad "pos" thru_hole circle (at 20 0) (size 2.5 2.5) (drill 1.5) (layers *.Cu *.Mask) - (net 138 "Net-(BT1-Padpos)") (pinfunction "pos") (pintype "passive") (tstamp ccd8375e-4514-4085-b073-9091b5b7d131)) + (net 137 "Net-(BT1-Padpos)") (pinfunction "pos") (pintype "passive") (tstamp ccd8375e-4514-4085-b073-9091b5b7d131)) ) (footprint "Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm" (layer "F.Cu") @@ -4143,15 +4146,15 @@ (pad "7" thru_hole circle (at 0 7.62 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) (net 70 "Net-(J4-Pad7)") (pinfunction "Pin_7") (pintype "passive") (tstamp 1216309f-c89b-491a-96c1-c7275dfdccbf)) (pad "8" thru_hole circle (at 2.54 7.62 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 84 "Net-(J4-Pad8)") (pinfunction "Pin_8") (pintype "passive") (tstamp d58dd58a-9845-4aac-ba77-df2118be6934)) + (net 83 "Net-(J4-Pad8)") (pinfunction "Pin_8") (pintype "passive") (tstamp d58dd58a-9845-4aac-ba77-df2118be6934)) (pad "9" thru_hole circle (at 0 10.16 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 86 "Net-(J4-Pad9)") (pinfunction "Pin_9") (pintype "passive") (tstamp 116b5e53-e5bb-40bf-9f62-75ba5d26cda6)) + (net 85 "Net-(J4-Pad9)") (pinfunction "Pin_9") (pintype "passive") (tstamp 116b5e53-e5bb-40bf-9f62-75ba5d26cda6)) (pad "10" thru_hole circle (at 2.54 10.16 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 106 "Net-(J4-Pad10)") (pinfunction "Pin_10") (pintype "passive") (tstamp f93c023b-f257-49eb-ba52-a4f8778a73b6)) + (net 105 "Net-(J4-Pad10)") (pinfunction "Pin_10") (pintype "passive") (tstamp f93c023b-f257-49eb-ba52-a4f8778a73b6)) (pad "11" thru_hole circle (at 0 12.7 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 172 "/I2C_SCL") (pinfunction "Pin_11") (pintype "passive") (tstamp d833f82f-91f9-4396-b86f-3a863c980fcc)) + (net 171 "/I2C_SCL") (pinfunction "Pin_11") (pintype "passive") (tstamp d833f82f-91f9-4396-b86f-3a863c980fcc)) (pad "12" thru_hole circle (at 2.54 12.7 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) - (net 171 "/I2C_SDA") (pinfunction "Pin_12") (pintype "passive") (tstamp c90f4b90-8a1f-4fd1-a19f-af61ea8da622)) + (net 170 "/I2C_SDA") (pinfunction "Pin_12") (pintype "passive") (tstamp c90f4b90-8a1f-4fd1-a19f-af61ea8da622)) (model "${KICAD6_3DMODEL_DIR}/Connector_IDC.3dshapes/IDC-Header_2x06_P2.54mm_Latch_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -4197,7 +4200,7 @@ (fp_line (start 2.01 -0.8) (end 2.01 0.8) (layer "F.Fab") (width 0.1) (tstamp e1123b74-38d5-45a1-bc35-92b7e051cd0a)) (fp_line (start 7.62 0) (end 5.61 0) (layer "F.Fab") (width 0.1) (tstamp fd96c640-1671-420e-b6b7-a2c4e6a84219)) (pad "1" thru_hole circle (at 0 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 141 "Net-(D5-Pad1)") (pintype "passive") (tstamp d019af93-fdc1-42d6-982b-9e7b8c0e5ba5)) + (net 140 "Net-(D5-Pad1)") (pintype "passive") (tstamp d019af93-fdc1-42d6-982b-9e7b8c0e5ba5)) (pad "2" thru_hole oval (at 7.62 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) (net 14 "Net-(J4-Pad4)") (pintype "passive") (tstamp 6b8a0ee8-4b54-43ae-ba18-9fbf791eb7e1)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" @@ -4248,49 +4251,49 @@ (pad "2" thru_hole oval (at 0 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "VCC") (pintype "power_in") (tstamp efd2fbb0-c0ec-4b0b-b6ec-2e9adfda3175)) (pad "3" thru_hole oval (at 0 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 152 "Net-(R18-Pad2)") (pinfunction "~{EACK}") (pintype "input") (tstamp 9f2fd9e7-880f-4692-af4b-0d2ac9a8dc90)) + (net 151 "Net-(R18-Pad2)") (pinfunction "~{EACK}") (pintype "input") (tstamp 9f2fd9e7-880f-4692-af4b-0d2ac9a8dc90)) (pad "4" thru_hole oval (at 0 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 153 "Net-(R20-Pad2)") (pinfunction "~{SVACK}") (pintype "input") (tstamp 1ea18858-8f9e-439d-b645-95795a23705c)) + (net 152 "Net-(R20-Pad2)") (pinfunction "~{SVACK}") (pintype "input") (tstamp 1ea18858-8f9e-439d-b645-95795a23705c)) (pad "5" thru_hole oval (at 0 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 159 "unconnected-(U12-Pad5)") (pinfunction "SVREQ") (pintype "output+no_connect") (tstamp 1ddd4659-9737-4cd7-abe9-b99340dc3ccc)) + (net 158 "unconnected-(U12-Pad5)") (pinfunction "SVREQ") (pintype "output+no_connect") (tstamp 1ddd4659-9737-4cd7-abe9-b99340dc3ccc)) (pad "6" thru_hole oval (at 0 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 160 "unconnected-(U12-Pad6)") (pinfunction "NC") (pintype "input+no_connect") (tstamp c7e0938f-9b18-4d30-91b0-1ef6784bcce7)) + (net 159 "unconnected-(U12-Pad6)") (pinfunction "NC") (pintype "input+no_connect") (tstamp c7e0938f-9b18-4d30-91b0-1ef6784bcce7)) (pad "7" thru_hole oval (at 0 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 161 "unconnected-(U12-Pad7)") (pinfunction "NC") (pintype "input+no_connect") (tstamp 5b21f87b-558d-4643-ad6d-8779a7c34bb1)) + (net 160 "unconnected-(U12-Pad7)") (pinfunction "NC") (pintype "input+no_connect") (tstamp 5b21f87b-558d-4643-ad6d-8779a7c34bb1)) (pad "8" thru_hole oval (at 0 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 89 "/#D0") (pinfunction "D0") (pintype "tri_state") (tstamp 97ef128f-5ebc-49e0-8a60-0bb31425ecac)) + (net 88 "/#D0") (pinfunction "D0") (pintype "tri_state") (tstamp 97ef128f-5ebc-49e0-8a60-0bb31425ecac)) (pad "9" thru_hole oval (at 0 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 90 "/#D1") (pinfunction "D1") (pintype "tri_state") (tstamp 41326be6-2bd7-4f78-945e-4148413a46af)) + (net 89 "/#D1") (pinfunction "D1") (pintype "tri_state") (tstamp 41326be6-2bd7-4f78-945e-4148413a46af)) (pad "10" thru_hole oval (at 0 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 91 "/#D2") (pinfunction "D2") (pintype "tri_state") (tstamp e5c3f5b3-a5f3-46be-9b89-679fc8febc4b)) + (net 90 "/#D2") (pinfunction "D2") (pintype "tri_state") (tstamp e5c3f5b3-a5f3-46be-9b89-679fc8febc4b)) (pad "11" thru_hole oval (at 0 25.4) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 92 "/#D3") (pinfunction "D3") (pintype "tri_state") (tstamp 65ed6649-7f77-42ba-8364-96e8d5d3ec59)) + (net 91 "/#D3") (pinfunction "D3") (pintype "tri_state") (tstamp 65ed6649-7f77-42ba-8364-96e8d5d3ec59)) (pad "12" thru_hole oval (at 0 27.94) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 93 "/#D4") (pinfunction "D4") (pintype "tri_state") (tstamp 79e2f0c8-67c7-4822-912a-bfefb7447fda)) + (net 92 "/#D4") (pinfunction "D4") (pintype "tri_state") (tstamp 79e2f0c8-67c7-4822-912a-bfefb7447fda)) (pad "13" thru_hole oval (at 15.24 27.94) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 94 "/#D5") (pinfunction "D5") (pintype "tri_state") (tstamp b8b149e4-65a4-4964-83b6-fe55de9bebc9)) + (net 93 "/#D5") (pinfunction "D5") (pintype "tri_state") (tstamp b8b149e4-65a4-4964-83b6-fe55de9bebc9)) (pad "14" thru_hole oval (at 15.24 25.4) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 95 "/#D6") (pinfunction "D6") (pintype "tri_state") (tstamp 706c7d9e-7199-40e6-b700-2d77bf0a1288)) + (net 94 "/#D6") (pinfunction "D6") (pintype "tri_state") (tstamp 706c7d9e-7199-40e6-b700-2d77bf0a1288)) (pad "15" thru_hole oval (at 15.24 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 96 "/#D7") (pinfunction "D7") (pintype "tri_state") (tstamp 6636101f-621a-4b4e-9672-a9efe1298b31)) + (net 95 "/#D7") (pinfunction "D7") (pintype "tri_state") (tstamp 6636101f-621a-4b4e-9672-a9efe1298b31)) (pad "16" thru_hole oval (at 15.24 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 64 "+12V") (pinfunction "VDD") (pintype "power_in") (tstamp 23d35687-89bf-4cdc-87c6-80e91910a1b5)) (pad "17" thru_hole oval (at 15.24 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 154 "Net-(J7-Pad2)") (pinfunction "~{PAUSE}") (pintype "output") (tstamp 260a063d-601d-4ab7-899e-b152bac081ed)) + (net 153 "Net-(J7-Pad2)") (pinfunction "~{PAUSE}") (pintype "output") (tstamp 260a063d-601d-4ab7-899e-b152bac081ed)) (pad "18" thru_hole oval (at 15.24 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 156 "/CS_FPU") (pinfunction "~{CS}") (pintype "input") (tstamp 841b60a4-3888-4360-a243-d963cd11ff0b)) + (net 155 "/CS_FPU") (pinfunction "~{CS}") (pintype "input") (tstamp 841b60a4-3888-4360-a243-d963cd11ff0b)) (pad "19" thru_hole oval (at 15.24 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 78 "/~{#WR}") (pinfunction "~{WR}") (pintype "input") (tstamp 550c820d-e7db-4041-b6f7-f5c9700443db)) + (net 77 "/~{#WR}") (pinfunction "~{WR}") (pintype "input") (tstamp 550c820d-e7db-4041-b6f7-f5c9700443db)) (pad "20" thru_hole oval (at 15.24 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 77 "/~{#RD}") (pinfunction "~{RD}") (pintype "input") (tstamp 6bd9f3aa-d4fa-4a08-8adf-fe9de5f6b829)) + (net 76 "/~{#RD}") (pinfunction "~{RD}") (pintype "input") (tstamp 6bd9f3aa-d4fa-4a08-8adf-fe9de5f6b829)) (pad "21" thru_hole oval (at 15.24 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 97 "/#A0") (pinfunction "C/~{D}") (pintype "input") (tstamp c6a4d814-3443-4e90-8c83-4f44c1c33a30)) + (net 96 "/#A0") (pinfunction "C/~{D}") (pintype "input") (tstamp c6a4d814-3443-4e90-8c83-4f44c1c33a30)) (pad "22" thru_hole oval (at 15.24 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 120 "/~{#RESET}") (pinfunction "RESET") (pintype "input") (tstamp 077ffb99-1963-4e46-a9b2-3ff435a9e6e6)) + (net 119 "/~{#RESET}") (pinfunction "RESET") (pintype "input") (tstamp 077ffb99-1963-4e46-a9b2-3ff435a9e6e6)) (pad "23" thru_hole oval (at 15.24 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 167 "Net-(J9-Pad2)") (pinfunction "CLK") (pintype "input") (tstamp 56a6243c-1598-45e5-bfe0-832d04778962)) + (net 166 "Net-(J9-Pad2)") (pinfunction "CLK") (pintype "input") (tstamp 56a6243c-1598-45e5-bfe0-832d04778962)) (pad "24" thru_hole oval (at 15.24 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 155 "Net-(J8-Pad2)") (pinfunction "~{END}") (pintype "output") (tstamp 920b1566-9775-4a0f-87ef-e76c57484711)) + (net 154 "Net-(J8-Pad2)") (pinfunction "~{END}") (pintype "output") (tstamp 920b1566-9775-4a0f-87ef-e76c57484711)) (model "${KICAD6_3DMODEL_DIR}/Package_DIP.3dshapes/DIP-24_W15.24mm.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -4335,43 +4338,43 @@ (fp_line (start 1.635 -1.27) (end 6.985 -1.27) (layer "F.Fab") (width 0.1) (tstamp cd914efc-af8e-4f0a-a357-7058f3b85b01)) (fp_line (start 6.985 24.13) (end 0.635 24.13) (layer "F.Fab") (width 0.1) (tstamp d94a8ab5-5b07-4985-9e8d-39c4f373cbcc)) (pad "1" thru_hole rect (at 0 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 76 "/~{#IOREQ}") (pinfunction "I1/CLK") (pintype "input") (tstamp 8779130a-8bad-48ca-bb1c-22e6b269dc9b)) + (net 75 "/~{#IOREQ}") (pinfunction "I1/CLK") (pintype "input") (tstamp 8779130a-8bad-48ca-bb1c-22e6b269dc9b)) (pad "2" thru_hole oval (at 0 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 77 "/~{#RD}") (pinfunction "I2") (pintype "input") (tstamp 091aac02-dd88-4e5b-aadf-58ed20138dc4)) + (net 76 "/~{#RD}") (pinfunction "I2") (pintype "input") (tstamp 091aac02-dd88-4e5b-aadf-58ed20138dc4)) (pad "3" thru_hole oval (at 0 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 78 "/~{#WR}") (pinfunction "I3") (pintype "input") (tstamp a16d404a-f55b-47f6-8db2-d9c5c2ca68a7)) + (net 77 "/~{#WR}") (pinfunction "I3") (pintype "input") (tstamp a16d404a-f55b-47f6-8db2-d9c5c2ca68a7)) (pad "4" thru_hole oval (at 0 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 97 "/#A0") (pinfunction "I4") (pintype "input") (tstamp 9d9fe44d-fc79-4fbe-a7af-28e16082c8cb)) + (net 96 "/#A0") (pinfunction "I4") (pintype "input") (tstamp 9d9fe44d-fc79-4fbe-a7af-28e16082c8cb)) (pad "5" thru_hole oval (at 0 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 98 "/#A1") (pinfunction "I5") (pintype "input") (tstamp 3d2de93f-a7ac-4978-b883-af4c0e13417d)) + (net 97 "/#A1") (pinfunction "I5") (pintype "input") (tstamp 3d2de93f-a7ac-4978-b883-af4c0e13417d)) (pad "6" thru_hole oval (at 0 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 99 "/#A2") (pinfunction "I6") (pintype "input") (tstamp 82b4533d-9984-4f05-b8dd-a2715f410729)) + (net 98 "/#A2") (pinfunction "I6") (pintype "input") (tstamp 82b4533d-9984-4f05-b8dd-a2715f410729)) (pad "7" thru_hole oval (at 0 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 100 "/#A3") (pinfunction "I7") (pintype "input") (tstamp d658a137-b98f-4b19-ada6-31782d57b57e)) + (net 99 "/#A3") (pinfunction "I7") (pintype "input") (tstamp d658a137-b98f-4b19-ada6-31782d57b57e)) (pad "8" thru_hole oval (at 0 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 75 "Net-(U1-Pad19)") (pinfunction "I8") (pintype "input") (tstamp f6174b87-d70f-4a84-8a01-eb1c51def5a0)) + (net 74 "Net-(U1-Pad19)") (pinfunction "I8") (pintype "input") (tstamp f6174b87-d70f-4a84-8a01-eb1c51def5a0)) (pad "9" thru_hole oval (at 0 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 79 "unconnected-(U2-Pad9)") (pinfunction "I9") (pintype "input+no_connect") (tstamp 3d609631-e9ca-499e-bf96-d324d0182cc1)) + (net 78 "unconnected-(U2-Pad9)") (pinfunction "I9") (pintype "input+no_connect") (tstamp 3d609631-e9ca-499e-bf96-d324d0182cc1)) (pad "10" thru_hole oval (at 0 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "GND") (pintype "power_in") (tstamp 0581cfc8-a68e-4f23-acd6-6ad4854bcd78)) (pad "11" thru_hole oval (at 7.62 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 80 "unconnected-(U2-Pad11)") (pinfunction "I10/~{OE}") (pintype "input+no_connect") (tstamp 8a7eb07c-e542-49ac-a707-87cea2894aa0)) + (net 79 "unconnected-(U2-Pad11)") (pinfunction "I10/~{OE}") (pintype "input+no_connect") (tstamp 8a7eb07c-e542-49ac-a707-87cea2894aa0)) (pad "12" thru_hole oval (at 7.62 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 81 "BUSDIR") (pinfunction "IO8") (pintype "tri_state") (tstamp 475d0f51-ac36-49e4-9747-f47c6d461765)) + (net 80 "BUSDIR") (pinfunction "IO8") (pintype "tri_state") (tstamp 475d0f51-ac36-49e4-9747-f47c6d461765)) (pad "13" thru_hole oval (at 7.62 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 82 "unconnected-(U2-Pad13)") (pinfunction "IO7") (pintype "tri_state+no_connect") (tstamp 8d54e2fd-80e7-4c7c-add5-f9f466253751)) + (net 81 "unconnected-(U2-Pad13)") (pinfunction "IO7") (pintype "tri_state+no_connect") (tstamp 8d54e2fd-80e7-4c7c-add5-f9f466253751)) (pad "14" thru_hole oval (at 7.62 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 83 "unconnected-(U2-Pad14)") (pinfunction "IO6") (pintype "tri_state+no_connect") (tstamp 115d1fe1-c398-44c2-8502-d9c3f017fb88)) + (net 82 "unconnected-(U2-Pad14)") (pinfunction "IO6") (pintype "tri_state+no_connect") (tstamp 115d1fe1-c398-44c2-8502-d9c3f017fb88)) (pad "15" thru_hole oval (at 7.62 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 156 "/CS_FPU") (pinfunction "IO5") (pintype "tri_state") (tstamp 2a861977-664b-4b9b-ab36-46f87da2332c)) + (net 155 "/CS_FPU") (pinfunction "IO5") (pintype "tri_state") (tstamp 2a861977-664b-4b9b-ab36-46f87da2332c)) (pad "16" thru_hole oval (at 7.62 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 85 "Net-(U2-Pad16)") (pinfunction "IO4") (pintype "tri_state") (tstamp c5e55012-ff62-48eb-84b8-48c452790456)) + (net 84 "Net-(U2-Pad16)") (pinfunction "IO4") (pintype "tri_state") (tstamp c5e55012-ff62-48eb-84b8-48c452790456)) (pad "17" thru_hole oval (at 7.62 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 157 "/CS_IIC") (pinfunction "I03") (pintype "tri_state") (tstamp 410812af-2420-4da0-bd68-ae0f5b00a47f)) + (net 156 "/CS_IIC") (pinfunction "I03") (pintype "tri_state") (tstamp 410812af-2420-4da0-bd68-ae0f5b00a47f)) (pad "18" thru_hole oval (at 7.62 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 87 "/CS_PS2") (pinfunction "IO2") (pintype "tri_state") (tstamp 3401626f-0918-4d29-959d-1c4cb85ae6c8)) + (net 86 "/CS_PS2") (pinfunction "IO2") (pintype "tri_state") (tstamp 3401626f-0918-4d29-959d-1c4cb85ae6c8)) (pad "19" thru_hole oval (at 7.62 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 88 "/BOARD_CS") (pinfunction "IO1") (pintype "tri_state") (tstamp 8901d597-531c-484d-9211-d5a861cbf6a0)) + (net 87 "/BOARD_CS") (pinfunction "IO1") (pintype "tri_state") (tstamp 8901d597-531c-484d-9211-d5a861cbf6a0)) (pad "20" thru_hole oval (at 7.62 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "VCC") (pintype "power_in") (tstamp 82ceefb4-e589-4281-a72d-65b63cfc5735)) (model "${KICAD6_3DMODEL_DIR}/Package_DIP.3dshapes/DIP-20_W7.62mm.wrl" @@ -4433,9 +4436,9 @@ (fp_line (start 0 0) (end 2.29 0) (layer "F.Fab") (width 0.1) (tstamp 752f5649-07ee-47e5-90d0-9bb21cec1710)) (fp_line (start 2.29 0.8) (end 5.33 0.8) (layer "F.Fab") (width 0.1) (tstamp ac29aa0a-46b0-4a81-9467-565339e4422b)) (pad "1" thru_hole rect (at 0 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 145 "Net-(D11-Pad1)") (pinfunction "K") (pintype "passive") (tstamp b2c74ee8-320e-42fb-97a6-1df824f3bea1)) + (net 144 "Net-(D11-Pad1)") (pinfunction "K") (pintype "passive") (tstamp b2c74ee8-320e-42fb-97a6-1df824f3bea1)) (pad "2" thru_hole oval (at 7.62 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 172 "/I2C_SCL") (pinfunction "A") (pintype "passive") (tstamp fd60b7fd-7ecd-4583-ba28-77392ee1ecb0)) + (net 171 "/I2C_SCL") (pinfunction "A") (pintype "passive") (tstamp fd60b7fd-7ecd-4583-ba28-77392ee1ecb0)) (model "${KICAD6_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-34_SOD68_P7.62mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -4483,7 +4486,7 @@ (pad "1" thru_hole circle (at 0 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) (net 6 "+5V") (pintype "passive") (tstamp a1bf63b1-aef8-421a-9ad4-00aebc6542dd)) (pad "2" thru_hole oval (at 7.62 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 171 "/I2C_SDA") (pintype "passive") (tstamp a01728b0-6be2-4560-8b83-056df9dc21b7)) + (net 170 "/I2C_SDA") (pintype "passive") (tstamp a01728b0-6be2-4560-8b83-056df9dc21b7)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -4543,7 +4546,7 @@ (fp_line (start 5.33 -0.8) (end 2.29 -0.8) (layer "F.Fab") (width 0.1) (tstamp eea86075-a6b2-4f79-9618-529a09e26272)) (fp_line (start 2.29 -0.8) (end 2.29 0.8) (layer "F.Fab") (width 0.1) (tstamp f4e9244e-1d4d-4c53-a90b-f4042dbfcaa7)) (pad "1" thru_hole rect (at 0 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) - (net 172 "/I2C_SCL") (pinfunction "K") (pintype "passive") (tstamp 76563f0e-e40e-4490-b14d-2495a5f496ed)) + (net 171 "/I2C_SCL") (pinfunction "K") (pintype "passive") (tstamp 76563f0e-e40e-4490-b14d-2495a5f496ed)) (pad "2" thru_hole oval (at 7.62 0) (size 1.5 1.5) (drill 0.75) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "A") (pintype "passive") (tstamp 3a4eed6a-6df1-4a5a-a0fa-9587287020a5)) (model "${KICAD6_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-34_SOD68_P7.62mm_Horizontal.wrl" @@ -4554,7 +4557,7 @@ ) (footprint "w_conn_av:PS2" (layer "F.Cu") - (tedit 0) (tstamp f10edb18-7741-4220-8180-7bbfcd6af7a4) + (tedit 63629216) (tstamp f10edb18-7741-4220-8180-7bbfcd6af7a4) (at 43.429 71.765 90) (property "Sheetfile" "Z80-MIO.kicad_sch") (property "Sheetname" "") @@ -4584,22 +4587,22 @@ (fp_line (start 0 12.9) (end 0 0) (layer "F.CrtYd") (width 0.05) (tstamp 3ff4471a-d9da-4126-af01-ea9a764303aa)) (fp_line (start 14 0) (end 14 12.9) (layer "F.CrtYd") (width 0.05) (tstamp 4b2faaca-ea8a-45ff-96f7-9c84dbd6b827)) (fp_line (start 0 0) (end 14 0) (layer "F.CrtYd") (width 0.05) (tstamp 54d58a8b-bb47-48b9-87b6-d27597f93cfc)) - (pad "1" thru_hole circle (at 8.3 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) - (net 1 "MSDI") (pintype "passive") (tstamp 7da82053-ba3b-46bf-b2cc-08b410b5dbbd)) - (pad "2" thru_hole circle (at 5.7 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) - (net 108 "unconnected-(J5-Pad2)") (pintype "passive") (tstamp 7561ab9d-8318-4161-a9c9-2fca76045e8f)) + (pad "1" thru_hole circle (at 5.7 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) + (net 1 "MSDI") (pintype "passive") (tstamp 7561ab9d-8318-4161-a9c9-2fca76045e8f)) + (pad "2" thru_hole circle (at 8.3 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) + (net 107 "unconnected-(J5-Pad2)") (pintype "passive") (tstamp 7da82053-ba3b-46bf-b2cc-08b410b5dbbd)) (pad "3" thru_hole roundrect (at 0 5.5 90) (size 2.2 3) (drill oval 1.2 2.2) (layers *.Cu *.Mask) (roundrect_rratio 0.25) (net 2 "GND") (pintype "passive") (tstamp 34ec56a7-34dd-4165-b766-9e0afb610e3e)) (pad "3" thru_hole roundrect (at 14 5.5 90) (size 2.2 3) (drill oval 1.2 2.2) (layers *.Cu *.Mask) (roundrect_rratio 0.25) (net 2 "GND") (pintype "passive") (tstamp 8da16b23-cc56-4ee5-9f66-14b3ece5b598)) - (pad "3" thru_hole circle (at 10.4 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) - (net 2 "GND") (pintype "passive") (tstamp de22094c-8628-49c1-b5fe-32a92703a5d1)) - (pad "4" thru_hole circle (at 3.6 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) - (net 6 "+5V") (pintype "passive") (tstamp 8ee96512-3f68-4bae-801d-8d5a52f9e457)) - (pad "5" thru_hole circle (at 10.4 11 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) - (net 3 "MSCI") (pintype "passive") (tstamp 0767f1bf-7fa5-49d2-a66d-5ce4df620bd8)) - (pad "6" thru_hole circle (at 3.6 11 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) - (net 146 "unconnected-(J5-Pad6)") (pintype "passive") (tstamp 873fbd6e-d81b-4589-bb20-d35bd6e0a01f)) + (pad "3" thru_hole circle (at 3.6 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) + (net 2 "GND") (pintype "passive") (tstamp 8ee96512-3f68-4bae-801d-8d5a52f9e457)) + (pad "4" thru_hole circle (at 10.4 8.5 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) + (net 6 "+5V") (pintype "passive") (tstamp de22094c-8628-49c1-b5fe-32a92703a5d1)) + (pad "5" thru_hole circle (at 3.6 11 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) + (net 3 "MSCI") (pintype "passive") (tstamp 873fbd6e-d81b-4589-bb20-d35bd6e0a01f)) + (pad "6" thru_hole circle (at 10.4 11 90) (size 1.6 1.6) (drill oval 1) (layers *.Cu *.Mask) + (net 145 "unconnected-(J5-Pad6)") (pintype "passive") (tstamp 0767f1bf-7fa5-49d2-a66d-5ce4df620bd8)) ) (footprint "Package_DIP:DIP-20_W7.62mm_LongPads" (layer "F.Cu") @@ -4639,43 +4642,43 @@ (fp_line (start 6.985 24.13) (end 0.635 24.13) (layer "F.Fab") (width 0.1) (tstamp 9e9f7fb4-5a29-4eca-8d85-dd7ab5d886ee)) (fp_line (start 6.985 -1.27) (end 6.985 24.13) (layer "F.Fab") (width 0.1) (tstamp fea4403d-c1aa-4a96-80b1-0d83eb4f0bf3)) (pad "1" thru_hole rect (at 0 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 113 "/#CLK_CPU") (pinfunction "CLK") (pintype "input") (tstamp 1f97d4ba-8dd1-4d23-a1db-1c4549464103)) + (net 112 "/#CLK_CPU") (pinfunction "CLK") (pintype "input") (tstamp 1f97d4ba-8dd1-4d23-a1db-1c4549464103)) (pad "2" thru_hole oval (at 0 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 171 "/I2C_SDA") (pinfunction "SDA") (pintype "bidirectional") (tstamp afb11357-1c53-4a8e-9b7f-b8995b3d515b)) + (net 170 "/I2C_SDA") (pinfunction "SDA") (pintype "bidirectional") (tstamp afb11357-1c53-4a8e-9b7f-b8995b3d515b)) (pad "3" thru_hole oval (at 0 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 172 "/I2C_SCL") (pinfunction "SCL") (pintype "bidirectional") (tstamp 17875c8c-8727-42c5-8872-c4d3b4705644)) + (net 171 "/I2C_SCL") (pinfunction "SCL") (pintype "bidirectional") (tstamp 17875c8c-8727-42c5-8872-c4d3b4705644)) (pad "4" thru_hole oval (at 0 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 107 "Net-(U6-Pad14)") (pinfunction "~{IACK}") (pintype "input") (tstamp 3924b59f-04a2-4816-a264-b373ff52ed93)) + (net 106 "Net-(U6-Pad14)") (pinfunction "~{IACK}") (pintype "input") (tstamp 3924b59f-04a2-4816-a264-b373ff52ed93)) (pad "5" thru_hole oval (at 0 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 150 "Net-(R2-Pad2)") (pinfunction "~{INT}") (pintype "output") (tstamp 18529aee-fa68-401f-9d49-0e60d0263079)) + (net 149 "Net-(R2-Pad2)") (pinfunction "~{INT}") (pintype "output") (tstamp 18529aee-fa68-401f-9d49-0e60d0263079)) (pad "6" thru_hole oval (at 0 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 97 "/#A0") (pinfunction "A0") (pintype "input") (tstamp f05e2533-f911-4c72-841c-db33649aaa0b)) + (net 96 "/#A0") (pinfunction "A0") (pintype "input") (tstamp f05e2533-f911-4c72-841c-db33649aaa0b)) (pad "7" thru_hole oval (at 0 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 89 "/#D0") (pinfunction "D0") (pintype "tri_state") (tstamp a9ac2053-4d34-4641-a149-08a0ee7619e4)) + (net 88 "/#D0") (pinfunction "D0") (pintype "tri_state") (tstamp a9ac2053-4d34-4641-a149-08a0ee7619e4)) (pad "8" thru_hole oval (at 0 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 90 "/#D1") (pinfunction "D1") (pintype "tri_state") (tstamp 88fcb3b2-e22a-45da-ae72-b8bad33cf65b)) + (net 89 "/#D1") (pinfunction "D1") (pintype "tri_state") (tstamp 88fcb3b2-e22a-45da-ae72-b8bad33cf65b)) (pad "9" thru_hole oval (at 0 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 91 "/#D2") (pinfunction "D2") (pintype "tri_state") (tstamp bf798407-0164-46d5-bbe8-3cac96c9565f)) + (net 90 "/#D2") (pinfunction "D2") (pintype "tri_state") (tstamp bf798407-0164-46d5-bbe8-3cac96c9565f)) (pad "10" thru_hole oval (at 0 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 2 "GND") (pinfunction "VSS") (pintype "power_in") (tstamp 81e7a2db-4514-4d9e-ab04-395eb1c3f32a)) (pad "11" thru_hole oval (at 7.62 22.86) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 92 "/#D3") (pinfunction "D3") (pintype "tri_state") (tstamp 9b7fc178-1588-4ad2-9ee6-c2d184dd0fe1)) + (net 91 "/#D3") (pinfunction "D3") (pintype "tri_state") (tstamp 9b7fc178-1588-4ad2-9ee6-c2d184dd0fe1)) (pad "12" thru_hole oval (at 7.62 20.32) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 93 "/#D4") (pinfunction "D4") (pintype "tri_state") (tstamp f01dc7a1-172b-4ea2-badd-a4253a165448)) + (net 92 "/#D4") (pinfunction "D4") (pintype "tri_state") (tstamp f01dc7a1-172b-4ea2-badd-a4253a165448)) (pad "13" thru_hole oval (at 7.62 17.78) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 94 "/#D5") (pinfunction "D5") (pintype "tri_state") (tstamp faa47df8-079a-4cf0-9532-c75cf51ad6aa)) + (net 93 "/#D5") (pinfunction "D5") (pintype "tri_state") (tstamp faa47df8-079a-4cf0-9532-c75cf51ad6aa)) (pad "14" thru_hole oval (at 7.62 15.24) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 95 "/#D6") (pinfunction "D6") (pintype "tri_state") (tstamp 8c6d2a68-1e86-4cd8-86da-9252a6831921)) + (net 94 "/#D6") (pinfunction "D6") (pintype "tri_state") (tstamp 8c6d2a68-1e86-4cd8-86da-9252a6831921)) (pad "15" thru_hole oval (at 7.62 12.7) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 96 "/#D7") (pinfunction "D7") (pintype "tri_state") (tstamp 2c75b0fd-8d39-4134-8230-331aada634fa)) + (net 95 "/#D7") (pinfunction "D7") (pintype "tri_state") (tstamp 2c75b0fd-8d39-4134-8230-331aada634fa)) (pad "16" thru_hole oval (at 7.62 10.16) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 77 "/~{#RD}") (pinfunction "~{RD}") (pintype "passive") (tstamp 0ae91059-c3cb-42ca-b237-3365d95bbdf4)) + (net 76 "/~{#RD}") (pinfunction "~{RD}") (pintype "passive") (tstamp 0ae91059-c3cb-42ca-b237-3365d95bbdf4)) (pad "17" thru_hole oval (at 7.62 7.62) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 157 "/CS_IIC") (pinfunction "~{CS}") (pintype "input") (tstamp 0e8b54b8-a5f4-4bb5-915f-c2ac7f05bd90)) + (net 156 "/CS_IIC") (pinfunction "~{CS}") (pintype "input") (tstamp 0e8b54b8-a5f4-4bb5-915f-c2ac7f05bd90)) (pad "18" thru_hole oval (at 7.62 5.08) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 78 "/~{#WR}") (pinfunction "~{WR}") (pintype "input") (tstamp 413ed2ad-bd97-4c0d-9d65-9fd24c3213ef)) + (net 77 "/~{#WR}") (pinfunction "~{WR}") (pintype "input") (tstamp 413ed2ad-bd97-4c0d-9d65-9fd24c3213ef)) (pad "19" thru_hole oval (at 7.62 2.54) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) - (net 120 "/~{#RESET}") (pinfunction "~{RST}") (pintype "bidirectional") (tstamp fb81bcb2-26d4-495a-a97a-504a52f05b3f)) + (net 119 "/~{#RESET}") (pinfunction "~{RST}") (pintype "bidirectional") (tstamp fb81bcb2-26d4-495a-a97a-504a52f05b3f)) (pad "20" thru_hole oval (at 7.62 0) (size 2.4 1.6) (drill 0.8) (layers *.Cu *.Mask) (net 6 "+5V") (pinfunction "VDD") (pintype "power_in") (tstamp 1258e808-54e6-48cf-a7b0-8fb92a54260a)) (model "${KICAD6_3DMODEL_DIR}/Package_DIP.3dshapes/DIP-20_W7.62mm.wrl" @@ -4723,9 +4726,9 @@ (fp_line (start 2.01 -0.8) (end 2.01 0.8) (layer "F.Fab") (width 0.1) (tstamp b04d00ab-9b67-403a-a4b0-6ee0a8c1db67)) (fp_line (start 5.61 0.8) (end 5.61 -0.8) (layer "F.Fab") (width 0.1) (tstamp e4d153d4-6a2e-43e6-9245-8290691f3919)) (pad "1" thru_hole circle (at 0 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 140 "Net-(D4-Pad1)") (pintype "passive") (tstamp d57479cf-3fe8-40d8-a5af-671aef7a24e4)) + (net 139 "Net-(D4-Pad1)") (pintype "passive") (tstamp d57479cf-3fe8-40d8-a5af-671aef7a24e4)) (pad "2" thru_hole oval (at 7.62 0 180) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask) - (net 86 "Net-(J4-Pad9)") (pintype "passive") (tstamp 2b6a1004-c527-4b4a-acd8-4eefe37adac0)) + (net 85 "Net-(J4-Pad9)") (pintype "passive") (tstamp 2b6a1004-c527-4b4a-acd8-4eefe37adac0)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -4786,7 +4789,7 @@ (gr_text "J7 APU Pause" (at 105.41 143.51) (layer "F.SilkS") (tstamp 1e9d0907-eae6-4b87-a782-af578fe9f07d) (effects (font (size 1 1) (thickness 0.15))) ) - (gr_text "J8 APU Clock\n1-2 /2\n3-4 /4\n5-6 /8\n7-8 /16\nMax. 3MHz" (at 79.248 118.11) (layer "F.SilkS") (tstamp 220212a8-01f1-48fe-8c97-196871557f12) + (gr_text "J9 APU Clock\n1-2 /2\n3-4 /4\n5-6 /8\n7-8 /16\nMax. 3MHz" (at 79.248 118.11) (layer "F.SilkS") (tstamp 220212a8-01f1-48fe-8c97-196871557f12) (effects (font (size 1 1) (thickness 0.15)) (justify left)) ) (gr_text "Mouse" (at 58.42 69.85) (layer "F.SilkS") (tstamp 2e4f868e-3d99-443d-9438-a0ffa71260ec) @@ -4801,16 +4804,16 @@ (gr_text "GPIO Port A" (at 55.88 105.156) (layer "F.SilkS") (tstamp 541aa92a-7b98-4ca2-b957-c9549cc431b4) (effects (font (size 1 1) (thickness 0.15)) (justify left)) ) - (gr_text "J2 I2C Routing\n1-2 SDA>A23\n3-4 SDC>A22" (at 125.136011 121.497989) (layer "F.SilkS") (tstamp 672af4ad-6c5d-41af-8c99-b39f72725af4) + (gr_text "J3 I2C Routing\n1-2 SDA>A23\n3-4 SDC>A22" (at 125.136011 121.497989) (layer "F.SilkS") (tstamp 672af4ad-6c5d-41af-8c99-b39f72725af4) (effects (font (size 1 1) (thickness 0.15)) (justify left)) ) (gr_text "Keyboard" (at 58.42 86.614) (layer "F.SilkS") (tstamp 697f3209-803b-41f5-8e70-fba8c56b2e4a) (effects (font (size 1 1) (thickness 0.15)) (justify left)) ) - (gr_text "J7 APU Int\n1-2 INT0\n3-4 INT1\n5-6 INT2\n7-8 INT3" (at 79.248 107.696) (layer "F.SilkS") (tstamp 7cb08f43-2b4d-4935-9aa1-c640ec00f0d2) + (gr_text "J8 APU Int\n1-2 INT0\n3-4 INT1\n5-6 INT2\n7-8 INT3" (at 79.248 107.696) (layer "F.SilkS") (tstamp 7cb08f43-2b4d-4935-9aa1-c640ec00f0d2) (effects (font (size 1 1) (thickness 0.15)) (justify left)) ) - (gr_text "Z8C Multi I/O Board\n2022 - www.dennisgunia.de" (at 58.928 142.748) (layer "F.SilkS") (tstamp 9f003089-5836-4383-954e-4aec27777528) + (gr_text "Z8C Multi I/O Board Rev.2\n2022 - www.dennisgunia.de" (at 58.928 142.748) (layer "F.SilkS") (tstamp 9f003089-5836-4383-954e-4aec27777528) (effects (font (size 1 1) (thickness 0.15)) (justify left)) ) (gr_text "Z8C - MIO" (at 67.31 139.7) (layer "F.SilkS") (tstamp b195e2f5-b9a0-4c92-980d-8f55e51f45e6) @@ -4820,9 +4823,11 @@ (segment (start 75.078011 66.125989) (end 78.146011 66.125989) (width 0.153) (layer "F.Cu") (net 1) (tstamp 104b570a-ca9f-4bbb-b651-4cc05bf82f16)) (segment (start 72.417022 63.465) (end 75.078011 66.125989) (width 0.153) (layer "F.Cu") (net 1) (tstamp 81388963-d64e-4fef-957f-ef1f20200c32)) (segment (start 78.146011 66.125989) (end 78.156011 66.115989) (width 0.153) (layer "F.Cu") (net 1) (tstamp 82bdce3f-1017-493c-a375-210ce629b2b0)) + (segment (start 55.788 63.465) (end 72.417022 63.465) (width 0.153) (layer "F.Cu") (net 1) (tstamp a8b38a1d-f8ed-4035-ae51-620c65fd8548)) + (segment (start 53.188 66.065) (end 55.788 63.465) (width 0.153) (layer "F.Cu") (net 1) (tstamp aeb03404-1811-48a6-870b-874f10199264)) (segment (start 79.232022 65.039978) (end 125.355989 65.039978) (width 0.153) (layer "F.Cu") (net 1) (tstamp bdbb9681-0cc2-4734-ba69-1894b3d45bbd)) (segment (start 78.156011 66.115989) (end 79.232022 65.039978) (width 0.153) (layer "F.Cu") (net 1) (tstamp d935e91b-04a0-4a13-8207-ddbdc8f3ad8f)) - (segment (start 51.929 63.465) (end 72.417022 63.465) (width 0.153) (layer "F.Cu") (net 1) (tstamp e6fa6050-87ad-4c90-b680-b017fd9ee670)) + (segment (start 51.929 66.065) (end 53.188 66.065) (width 0.153) (layer "F.Cu") (net 1) (tstamp dacff793-2cf8-4983-8b59-2dfd51474563)) (segment (start 125.355989 65.039978) (end 125.644011 65.328) (width 0.153) (layer "F.Cu") (net 1) (tstamp f7afd1dd-6abe-479c-862b-ac8e72023355)) (via (at 125.644011 65.328) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 1) (tstamp 9ca683bf-a263-4ada-8e0e-c53d4d8c1e57)) (segment (start 125.644011 65.328) (end 125.644011 58.480989) (width 0.153) (layer "B.Cu") (net 1) (tstamp 2d4b889f-ae66-4627-8cec-39d0552fa853)) @@ -4876,6 +4881,7 @@ (segment (start 80.766011 55.711989) (end 80.766011 71.125989) (width 1) (layer "B.Cu") (net 2) (tstamp 154b2302-ab24-476b-a9c3-6a03f0fcc811)) (segment (start 109.728 147.32) (end 135.128 147.32) (width 2) (layer "B.Cu") (net 2) (tstamp 1625eac3-465f-408c-b608-e0c59d7d6368)) (segment (start 179.572011 55.631989) (end 176.952011 58.251989) (width 0.5) (layer "B.Cu") (net 2) (tstamp 16a06cac-74c6-4f9a-b55f-2c4992f652dd)) + (segment (start 44.484 68.165) (end 44.432489 68.216511) (width 0.153) (layer "B.Cu") (net 2) (tstamp 18be7ca6-5942-4bc1-bf13-c4393b1dbad1)) (segment (start 74.163 115.316) (end 74.163 117.348) (width 1) (layer "B.Cu") (net 2) (tstamp 1b253447-1492-4014-96a8-41eed889322f)) (segment (start 135.764011 81.111989) (end 136.033011 81.111989) (width 1) (layer "B.Cu") (net 2) (tstamp 1b8c440e-7c2c-494f-ab5b-1478c0fff077)) (segment (start 74.163 125.476) (end 74.163 127.508) (width 1) (layer "B.Cu") (net 2) (tstamp 1ee63787-d3f2-4f94-8466-c83ffe153638)) @@ -4884,7 +4890,6 @@ (segment (start 74.163 117.348) (end 74.163 119.38) (width 1) (layer "B.Cu") (net 2) (tstamp 22e9ca35-e0dc-40ac-b418-5170b45be0d2)) (segment (start 44.432489 71.137511) (end 44.432489 74.912489) (width 2) (layer "B.Cu") (net 2) (tstamp 27143256-355f-4a33-93fc-14476079634a)) (segment (start 152.226 113.284) (end 152.226 136.059) (width 0.5) (layer "B.Cu") (net 2) (tstamp 279ade2c-1fd4-4d7c-b8f8-e45837da31ce)) - (segment (start 44.432489 61.958489) (end 44.432489 71.137511) (width 2) (layer "B.Cu") (net 2) (tstamp 2d1442a0-42a1-4462-8abe-805cecc8a9ab)) (segment (start 177.546 147.32) (end 195.326 147.32) (width 2) (layer "B.Cu") (net 2) (tstamp 302bbc37-d8e2-4696-a74f-0f04998beaa7)) (segment (start 96.228 75.197) (end 97.704011 73.720989) (width 0.153) (layer "B.Cu") (net 2) (tstamp 31480246-7f93-4c03-93c0-aadcd43c6a9b)) (segment (start 179.324 89.662) (end 179.572011 89.413989) (width 0.153) (layer "B.Cu") (net 2) (tstamp 318fd860-855c-4812-bc87-84b3e0c7357a)) @@ -4892,6 +4897,7 @@ (segment (start 146.558 58.928) (end 146.558 50.038) (width 1) (layer "B.Cu") (net 2) (tstamp 32f0ce55-d820-4b9e-a854-09c399d56584)) (segment (start 80.766011 49.789989) (end 81.026 49.53) (width 1) (layer "B.Cu") (net 2) (tstamp 3686cda2-2f98-4b4c-9335-64a2a8a9f83e)) (segment (start 143.424011 73.720989) (end 143.424011 65.954011) (width 1) (layer "B.Cu") (net 2) (tstamp 3727e5de-3b01-4115-8101-4a418a864abb)) + (segment (start 51.929 84.929) (end 44.507978 84.929) (width 0.153) (layer "B.Cu") (net 2) (tstamp 3a42bce0-7657-48ba-87fb-f076f875d51e)) (segment (start 110.404011 73.720989) (end 110.404011 69.935989) (width 0.5) (layer "B.Cu") (net 2) (tstamp 3a8eb805-91a1-42c4-bb6c-459077fae74a)) (segment (start 179.572011 60.711989) (end 179.572011 84.413989) (width 0.5) (layer "B.Cu") (net 2) (tstamp 3ba39770-ca98-4ae6-8481-6ec9ce0ab9c5)) (segment (start 44.821 88.529) (end 44.432489 88.917511) (width 0.5) (layer "B.Cu") (net 2) (tstamp 3bcfffe8-5e76-493f-b818-66863ff6279d)) @@ -4912,10 +4918,8 @@ (segment (start 197.731479 59.047479) (end 197.731479 49.649479) (width 2) (layer "B.Cu") (net 2) (tstamp 587bd345-cb15-446b-a3b0-6de45ec336b4)) (segment (start 197.612 49.53) (end 184.658 49.53) (width 2) (layer "B.Cu") (net 2) (tstamp 5e5cb320-7522-4287-b2a9-e17747c9c359)) (segment (start 165.816011 136.184989) (end 163.236011 138.764989) (width 0.5) (layer "B.Cu") (net 2) (tstamp 5fd69a2d-aba3-4059-be7c-6d4a202e4bac)) - (segment (start 48.26 81.534) (end 48.26 79.248) (width 0.153) (layer "B.Cu") (net 2) (tstamp 6132fd3b-9e64-4a02-b20d-7d40354a3480)) (segment (start 93.894011 147.151989) (end 93.726 147.32) (width 0.5) (layer "B.Cu") (net 2) (tstamp 61edaeef-e1f4-433a-8b25-31a940f03604)) (segment (start 93.726 147.32) (end 109.728 147.32) (width 2) (layer "B.Cu") (net 2) (tstamp 61f943fe-8f1d-49b4-8382-827e58850b8a)) - (segment (start 48.26 79.248) (end 47.141 78.129) (width 0.153) (layer "B.Cu") (net 2) (tstamp 65c5908f-9aee-4c54-9b44-697f69bdf66b)) (segment (start 170.942 49.53) (end 166.116 49.53) (width 2) (layer "B.Cu") (net 2) (tstamp 68baac89-b699-4408-827b-5456fdd8029e)) (segment (start 44.517978 78.129) (end 44.432489 78.214489) (width 1.5) (layer "B.Cu") (net 2) (tstamp 69233f2d-a6c7-446e-bd19-41ea9762ede6)) (segment (start 176.952011 146.726011) (end 177.546 147.32) (width 1) (layer "B.Cu") (net 2) (tstamp 6af8f53a-4432-49ba-a80a-1bf0d409869d)) @@ -4941,7 +4945,6 @@ (segment (start 44.432489 147.302489) (end 44.45 147.32) (width 2) (layer "B.Cu") (net 2) (tstamp 871014f0-a325-4093-aeb5-f3afd86f20f4)) (segment (start 183.095991 127.541009) (end 184.572011 126.064989) (width 0.153) (layer "B.Cu") (net 2) (tstamp 8766ff6e-6628-4818-a50f-96472da391b2)) (segment (start 44.432489 88.917511) (end 44.432489 123.207511) (width 2) (layer "B.Cu") (net 2) (tstamp 87c6ec9b-db3a-46da-8d67-0dcf3b66e351)) - (segment (start 51.929 78.129) (end 47.141 78.129) (width 1.5) (layer "B.Cu") (net 2) (tstamp 8834245a-a1b5-4995-8ac2-19e28d91e50a)) (segment (start 165.816011 113.115989) (end 165.816011 136.184989) (width 0.5) (layer "B.Cu") (net 2) (tstamp 88437077-51e6-442d-8c51-aa205bc28a0e)) (segment (start 179.572011 107.447989) (end 176.952011 110.067989) (width 0.5) (layer "B.Cu") (net 2) (tstamp 88a58cd7-50cb-48c5-9606-2b54dd90a871)) (segment (start 48.768 53.848) (end 48.768 49.784) (width 0.153) (layer "B.Cu") (net 2) (tstamp 890dcef7-6cb4-499e-841e-27455d2b90ed)) @@ -4955,6 +4958,7 @@ (segment (start 197.866 64.262) (end 197.866 66.802) (width 2) (layer "B.Cu") (net 2) (tstamp 919cf83a-4a5e-4a4a-ad6d-5d18018c0bfc)) (segment (start 143.424011 65.954011) (end 143.424011 62.061989) (width 1) (layer "B.Cu") (net 2) (tstamp 91bc6bc9-c503-4013-be9a-4f5e1ed43eed)) (segment (start 80.766011 55.711989) (end 80.766011 49.789989) (width 1) (layer "B.Cu") (net 2) (tstamp 92b6888e-e3b2-438a-b70e-10eef343550d)) + (segment (start 44.432489 78.214489) (end 44.432489 84.853511) (width 2) (layer "B.Cu") (net 2) (tstamp 94ade9c6-2ad4-4cf9-9c37-4d26de34f693)) (segment (start 151.552011 50.123989) (end 152.146 49.53) (width 1) (layer "B.Cu") (net 2) (tstamp 98d765ff-991b-4b29-a080-12d6ded67668)) (segment (start 179.532011 116.032011) (end 179.532011 118.572011) (width 0.5) (layer "B.Cu") (net 2) (tstamp 9bf91ec6-89a7-4211-9bd2-e7a6ee682ac6)) (segment (start 74.163 121.412) (end 74.163 123.444) (width 1) (layer "B.Cu") (net 2) (tstamp 9cc69d71-6b2f-4cd5-b062-7c26c8991a78)) @@ -4994,34 +4998,36 @@ (segment (start 48.545511 74.912489) (end 44.432489 74.912489) (width 0.5) (layer "B.Cu") (net 2) (tstamp c0f60d46-07d4-40ee-9d6e-5a637ac57746)) (segment (start 49.022 122.428) (end 48.242489 123.207511) (width 2) (layer "B.Cu") (net 2) (tstamp c487f02f-599b-4a40-a05b-c1c5c4c038f7)) (segment (start 96.56 123.658) (end 96.56 118.11) (width 0.5) (layer "B.Cu") (net 2) (tstamp c54a5e13-fd48-4c0f-a70a-1b3c02043d9a)) - (segment (start 44.432489 78.214489) (end 44.432489 88.917511) (width 2) (layer "B.Cu") (net 2) (tstamp c6158c4c-3eeb-492b-a27d-c6ed8d6e1705)) (segment (start 149.098 98.806) (end 149.349522 98.554478) (width 1) (layer "B.Cu") (net 2) (tstamp c8d5edaa-038f-4466-bd7e-b1f29764f0a7)) (segment (start 48.929 57.765) (end 45.069978 57.765) (width 0.5) (layer "B.Cu") (net 2) (tstamp c98adc9d-e127-44cf-a05d-26d36cf523ca)) (segment (start 48.514 147.32) (end 74.422 147.32) (width 2) (layer "B.Cu") (net 2) (tstamp c9c69bb3-7092-42fc-b6c8-d733b2051439)) (segment (start 184.572011 126.064989) (end 183.095991 124.588969) (width 0.153) (layer "B.Cu") (net 2) (tstamp c9e50e3d-49c5-47f8-8fff-7236fa673bcf)) (segment (start 74.163 111.252) (end 74.163 113.284) (width 1) (layer "B.Cu") (net 2) (tstamp cdccb862-6a81-4ea9-b713-40c7b40c372b)) + (segment (start 44.432489 84.853511) (end 44.432489 88.917511) (width 2) (layer "B.Cu") (net 2) (tstamp cde3b9d0-093e-498f-9000-b98af9c727a5)) + (segment (start 44.507978 84.929) (end 44.432489 84.853511) (width 0.153) (layer "B.Cu") (net 2) (tstamp ceec7167-0834-4472-b45d-d666f60ac721)) (segment (start 165.856011 55.457989) (end 165.856011 49.789989) (width 0.5) (layer "B.Cu") (net 2) (tstamp d3d87295-89ce-4266-999c-acf9c46589f2)) (segment (start 165.856011 49.789989) (end 166.116 49.53) (width 0.5) (layer "B.Cu") (net 2) (tstamp d40a03e8-c159-46a9-9843-105087e30f16)) (segment (start 110.324011 73.800989) (end 110.404011 73.720989) (width 1) (layer "B.Cu") (net 2) (tstamp d501a8a5-0712-4363-a1f7-d692ad6a7ad4)) (segment (start 49.022 49.53) (end 44.45 49.53) (width 2) (layer "B.Cu") (net 2) (tstamp d60dbde9-50a2-4979-b120-8bf10ca6d2f5)) (segment (start 107.99 110.704) (end 107.95 110.744) (width 0.5) (layer "B.Cu") (net 2) (tstamp d665d0ee-eb3b-407d-8ee0-81800d094c15)) (segment (start 146.05 49.53) (end 81.026 49.53) (width 2) (layer "B.Cu") (net 2) (tstamp d763f7c8-a80b-4e58-b877-a50de240cd07)) + (segment (start 51.929 68.165) (end 44.484 68.165) (width 0.153) (layer "B.Cu") (net 2) (tstamp db1f4398-ca47-4790-8977-1174e237b997)) (segment (start 179.832 49.53) (end 170.942 49.53) (width 2) (layer "B.Cu") (net 2) (tstamp dbd0c4e6-308c-4d41-b0f0-db9754e810bc)) (segment (start 109.84952 112.64352) (end 109.84952 147.19848) (width 1) (layer "B.Cu") (net 2) (tstamp dd375fc5-e12d-4a50-bd79-048993ed2cf7)) (segment (start 135.128 147.32) (end 149.86 147.32) (width 2) (layer "B.Cu") (net 2) (tstamp dd534e65-8dda-49ee-a81a-b52b55a4a6a2)) (segment (start 48.929 71.765) (end 45.059978 71.765) (width 0.5) (layer "B.Cu") (net 2) (tstamp dea0e926-87ac-470d-983d-91cdaff0be20)) (segment (start 44.432489 123.207511) (end 44.432489 147.302489) (width 2) (layer "B.Cu") (net 2) (tstamp df549650-2eca-4d5e-bbc5-e7be795e4b23)) (segment (start 94.234 138.684) (end 94.234 146.812) (width 1) (layer "B.Cu") (net 2) (tstamp e324de23-a387-4c68-bab9-dcc69f1f46a3)) + (segment (start 44.432489 61.958489) (end 44.432489 68.216511) (width 2) (layer "B.Cu") (net 2) (tstamp e50e9611-de2c-47be-a629-f1750f587de4)) + (segment (start 44.432489 68.216511) (end 44.432489 71.137511) (width 2) (layer "B.Cu") (net 2) (tstamp e5a6b7b6-ade5-4210-be8b-e2b673edf673)) (segment (start 135.296011 138.779989) (end 135.296011 147.151989) (width 1) (layer "B.Cu") (net 2) (tstamp e6a85107-18a4-455b-9cd0-a0c6952ff24d)) (segment (start 109.84952 147.19848) (end 109.728 147.32) (width 1) (layer "B.Cu") (net 2) (tstamp e7ef55bd-b405-45b8-9c2e-c2b3259d390d)) (segment (start 74.163 129.535) (end 74.168 129.54) (width 1) (layer "B.Cu") (net 2) (tstamp e95f7615-6547-498d-94da-56b2857a02ea)) - (segment (start 51.929 61.365) (end 45.025978 61.365) (width 1.5) (layer "B.Cu") (net 2) (tstamp e96426b1-4ac0-4c1f-bdd1-4fb1e97bf0fe)) (segment (start 163.236011 147.151989) (end 163.068 147.32) (width 1) (layer "B.Cu") (net 2) (tstamp ec4b6add-445a-499a-99a3-70ec18d23405)) (segment (start 179.572011 55.457989) (end 179.572011 49.789989) (width 0.5) (layer "B.Cu") (net 2) (tstamp ef9a746c-d065-4177-8f58-39c5515d2fee)) (segment (start 166.116 49.53) (end 152.146 49.53) (width 2) (layer "B.Cu") (net 2) (tstamp f2265eac-bf40-4789-a6dc-78d32bf1acdb)) (segment (start 184.572011 131.144989) (end 183.095991 129.668969) (width 0.153) (layer "B.Cu") (net 2) (tstamp f38570f3-d153-42ef-bc5f-a19249fc44a2)) (segment (start 170.856011 49.615989) (end 170.942 49.53) (width 1) (layer "B.Cu") (net 2) (tstamp f4769371-2757-46c6-8e32-7bebe103e755)) - (segment (start 47.141 78.129) (end 44.517978 78.129) (width 1.5) (layer "B.Cu") (net 2) (tstamp f7768f41-7c37-465b-b636-bb78e0c90c9f)) (segment (start 179.572011 88.894011) (end 179.572011 107.447989) (width 0.5) (layer "B.Cu") (net 2) (tstamp f7ff72ea-816f-4586-931f-401f8e0c0425)) (segment (start 179.572011 55.457989) (end 179.572011 55.631989) (width 0.5) (layer "B.Cu") (net 2) (tstamp f8e8d4dd-ae2a-42e9-b003-00b2a30936ea)) (segment (start 72.578011 66.125989) (end 72.578011 61.045989) (width 0.153) (layer "B.Cu") (net 2) (tstamp fa55a925-3499-4f70-9d0f-1bcea653dd08)) @@ -5033,11 +5039,13 @@ (segment (start 96.225022 59.959978) (end 79.232022 59.959978) (width 0.153) (layer "F.Cu") (net 3) (tstamp 05207458-2849-4373-a9bc-e30bb9fbc775)) (segment (start 73.959001 62.164999) (end 75.078011 61.045989) (width 0.153) (layer "F.Cu") (net 3) (tstamp 4699b162-0db5-4ff0-a4d6-ef19f46c321a)) (segment (start 97.704011 58.480989) (end 96.225022 59.959978) (width 0.153) (layer "F.Cu") (net 3) (tstamp 7089da75-4958-4ada-bd5c-0a37433d96b8)) - (segment (start 54.429 61.365) (end 55.228999 62.164999) (width 0.153) (layer "F.Cu") (net 3) (tstamp 78b48045-ef70-4f0e-95b9-fd876296d588)) (segment (start 75.078011 61.045989) (end 78.146011 61.045989) (width 0.153) (layer "F.Cu") (net 3) (tstamp 89de7074-45fa-4d15-8d8d-52a70bf3fcf7)) - (segment (start 55.228999 62.164999) (end 73.959001 62.164999) (width 0.153) (layer "F.Cu") (net 3) (tstamp a4ee06ee-99db-4b0b-afcd-901a26778d7e)) + (segment (start 55.814999 62.164999) (end 73.959001 62.164999) (width 0.153) (layer "F.Cu") (net 3) (tstamp b59a572b-45e4-4532-9f92-de20c7c8cb61)) (segment (start 78.146011 61.045989) (end 78.156011 61.035989) (width 0.153) (layer "F.Cu") (net 3) (tstamp ba141d84-636e-43aa-820b-c11d5e843ab4)) (segment (start 79.232022 59.959978) (end 78.156011 61.035989) (width 0.153) (layer "F.Cu") (net 3) (tstamp d4f263a5-d4cc-4edb-abec-70446783fae3)) + (via (at 55.814999 62.164999) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 3) (tstamp e2569042-5686-437a-a88d-838ec26ff52c)) + (segment (start 54.429 68.165) (end 54.429 63.550998) (width 0.153) (layer "B.Cu") (net 3) (tstamp 4fde5988-6c04-40c6-8e35-8cc8bcac92ab)) + (segment (start 54.429 63.550998) (end 55.814999 62.164999) (width 0.153) (layer "B.Cu") (net 3) (tstamp b2ca14c3-9645-4c6b-8d7c-fa1223882a76)) (segment (start 98.50452 70.119978) (end 98.742542 70.358) (width 0.153) (layer "F.Cu") (net 4) (tstamp 0383bc75-73c2-4d56-87e1-3e4137197c5d)) (segment (start 62.011 80.229) (end 72.110022 70.129978) (width 0.153) (layer "F.Cu") (net 4) (tstamp 1a552e98-a9ae-456a-90fe-313bde3ac750)) (segment (start 74.002 70.129978) (end 75.078011 71.205989) (width 0.153) (layer "F.Cu") (net 4) (tstamp 26d86219-3aba-4f46-84ef-a33f3a297134)) @@ -5047,32 +5055,40 @@ (segment (start 72.110022 70.129978) (end 74.002 70.129978) (width 0.153) (layer "F.Cu") (net 4) (tstamp 962f8533-df1b-424a-bee8-9a9cc72756ae)) (segment (start 98.742542 70.358) (end 128.016 70.358) (width 0.153) (layer "F.Cu") (net 4) (tstamp c8317861-2e6b-4b58-a586-acb810f5fb6c)) (segment (start 75.078011 71.205989) (end 78.146011 71.205989) (width 0.153) (layer "F.Cu") (net 4) (tstamp d130ab32-8da1-4a4c-a30f-60c4c0219f60)) - (segment (start 51.929 80.229) (end 62.011 80.229) (width 0.153) (layer "F.Cu") (net 4) (tstamp e440b61b-7596-4937-99a5-c8a0489572f7)) + (segment (start 53.502 80.229) (end 62.011 80.229) (width 0.153) (layer "F.Cu") (net 4) (tstamp f317a55a-3f53-45e0-a352-278d50b066b4)) (segment (start 78.156011 71.195989) (end 79.232022 70.119978) (width 0.153) (layer "F.Cu") (net 4) (tstamp fbf9e3cb-ec6a-4740-989c-f3ab488f7dbc)) + (via (at 53.502 80.229) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 4) (tstamp 7b29841a-0b38-41b4-9172-65505c8726d4)) (via (at 128.184011 70.189989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 4) (tstamp 9332add1-2a6e-4696-ad6c-fe1c884af597)) + (segment (start 53.502 81.256) (end 53.502 80.229) (width 0.153) (layer "B.Cu") (net 4) (tstamp 595e2f4d-29ee-41ad-a759-9ed666e92c79)) + (segment (start 51.929 82.829) (end 53.502 81.256) (width 0.153) (layer "B.Cu") (net 4) (tstamp 6826f5de-c6a5-409d-aace-d0542a57ae6a)) (segment (start 128.184011 70.189989) (end 128.184011 58.480989) (width 0.153) (layer "B.Cu") (net 4) (tstamp f66091bc-d4a5-48d0-a7c9-b5150dd9f777)) (segment (start 89.910022 72.669978) (end 94.113 72.669978) (width 0.153) (layer "F.Cu") (net 5) (tstamp 198546ca-ddd2-4c69-99e9-f41381771a78)) + (segment (start 55.6745 76.8835) (end 64.978022 67.579978) (width 0.153) (layer "F.Cu") (net 5) (tstamp 23adc280-7bed-4b43-8a2b-bde543d4ad17)) (segment (start 83.073978 67.579978) (end 83.312 67.818) (width 0.153) (layer "F.Cu") (net 5) (tstamp 2d36d9ad-3b12-46e1-b8e8-25e76a1fb8e6)) (segment (start 64.978022 67.579978) (end 83.073978 67.579978) (width 0.153) (layer "F.Cu") (net 5) (tstamp 4a6b5e51-08c4-4a53-b502-5e9a0bc86a3b)) - (segment (start 54.429 78.129) (end 64.978022 67.579978) (width 0.153) (layer "F.Cu") (net 5) (tstamp 6fa2d402-6c4e-426d-b467-a6a861573609)) (segment (start 88.824011 73.735989) (end 88.834011 73.745989) (width 0.153) (layer "F.Cu") (net 5) (tstamp bbde6441-468d-455a-b9b8-9e8fb17764e1)) (segment (start 88.834011 73.745989) (end 89.910022 72.669978) (width 0.153) (layer "F.Cu") (net 5) (tstamp c04fae9c-0e40-4e78-b910-2f62e6128f87)) (segment (start 94.113 72.669978) (end 95.164011 73.720989) (width 0.153) (layer "F.Cu") (net 5) (tstamp eba53bfc-5e1c-4d16-8a09-ad151476d84f)) (segment (start 85.776011 73.735989) (end 88.824011 73.735989) (width 0.153) (layer "F.Cu") (net 5) (tstamp f2106b91-aa10-4bd6-8a6a-e89dcefd64a2)) + (via (at 55.6745 76.8835) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 5) (tstamp 1550eec9-61b8-4a78-9169-ce138015a6a4)) (via (at 83.312 67.818) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 5) (tstamp b1f8c214-5b04-4c26-8db7-219ed89d9e1d)) + (segment (start 55.505011 77.052989) (end 55.6745 76.8835) (width 0.153) (layer "B.Cu") (net 5) (tstamp 3b6c0748-74f2-434d-9dab-9cb69878bbfb)) (segment (start 83.312 67.818) (end 83.312 71.271978) (width 0.153) (layer "B.Cu") (net 5) (tstamp 67feae4f-a7e2-4e1d-8ca1-1b700aab4caa)) + (segment (start 54.429 84.929) (end 55.505011 83.852989) (width 0.153) (layer "B.Cu") (net 5) (tstamp 7db57f0e-c003-4a7f-a15f-ca598dae4432)) + (segment (start 55.505011 83.852989) (end 55.505011 77.052989) (width 0.153) (layer "B.Cu") (net 5) (tstamp 9e86cb8e-1a22-46de-862e-4afe62210ba6)) (segment (start 83.312 71.271978) (end 85.776011 73.735989) (width 0.153) (layer "B.Cu") (net 5) (tstamp f5c6af2a-66c4-4ac4-b6f4-74453f8911fb)) (segment (start 93.98 113.792) (end 93.98 115.824) (width 1) (layer "F.Cu") (net 6) (tstamp 051b0c8e-32ef-49f8-b2c1-add28a73a722)) + (segment (start 44.432489 68.562489) (end 44.432489 77.995511) (width 2) (layer "F.Cu") (net 6) (tstamp 05e30385-9720-4c8f-ae5b-7032bf82a198)) (segment (start 170.688 51.308) (end 170.688 49.53) (width 1) (layer "F.Cu") (net 6) (tstamp 07f875e7-4b82-48b2-875e-9b66c9e169ab)) (segment (start 177.411381 113.115989) (end 170.816011 113.115989) (width 1) (layer "F.Cu") (net 6) (tstamp 08b7d414-78e2-4998-bc4b-a45f2efc0866)) (segment (start 105.156 49.53) (end 85.852 49.53) (width 2) (layer "F.Cu") (net 6) (tstamp 0bfb69dc-52b4-462f-a454-584b741913e4)) (segment (start 195.326 59.182) (end 195.326 50.038) (width 2) (layer "F.Cu") (net 6) (tstamp 0cdc9f2f-f9cd-4538-9aa3-dfff258e593d)) - (segment (start 44.432489 49.547511) (end 44.432489 68.562489) (width 2) (layer "F.Cu") (net 6) (tstamp 12a024fd-2864-46c3-b818-3a8b75b49725)) + (segment (start 44.68 61.365) (end 44.432489 61.612511) (width 0.153) (layer "F.Cu") (net 6) (tstamp 0d6119cf-bed9-4092-a011-ff1067c20e29)) + (segment (start 51.929 61.365) (end 44.68 61.365) (width 0.153) (layer "F.Cu") (net 6) (tstamp 159708b6-a89a-4829-ae69-325457ae34ce)) (segment (start 133.096 51.562) (end 132.842 51.308) (width 1) (layer "F.Cu") (net 6) (tstamp 1a5c9ad6-09f5-4727-a7a7-a9e47cb90c06)) (segment (start 102.108 147.32) (end 144.018 147.32) (width 2) (layer "F.Cu") (net 6) (tstamp 1da93f1e-29ae-42c4-bcbe-d09dba2bb8cc)) (segment (start 132.842 51.308) (end 132.842 49.53) (width 1) (layer "F.Cu") (net 6) (tstamp 1f7b3ce1-46ef-4b3f-92fd-8be8bc2fef6d)) (segment (start 95.164011 58.480989) (end 85.791011 58.480989) (width 0.5) (layer "F.Cu") (net 6) (tstamp 269c74a8-f3e5-4563-9da2-28cb6fac8c92)) - (segment (start 51.929 84.929) (end 44.865 84.929) (width 1.5) (layer "F.Cu") (net 6) (tstamp 2791ac6e-378a-4a4d-a0ad-7eef2df44d81)) (segment (start 44.432489 119.616489) (end 44.432489 147.302489) (width 2) (layer "F.Cu") (net 6) (tstamp 29aea0f3-dbd4-4430-8f1e-77270a5cd610)) (segment (start 44.45 49.53) (end 44.432489 49.547511) (width 2) (layer "F.Cu") (net 6) (tstamp 29b63803-f621-43dd-ac81-c2a46a51a957)) (segment (start 44.865 84.929) (end 44.432489 85.361511) (width 1.5) (layer "F.Cu") (net 6) (tstamp 3754eec4-592e-494f-a584-b3fcd9eb1d71)) @@ -5082,7 +5098,6 @@ (segment (start 144.526 145.542) (end 144.526 146.812) (width 1) (layer "F.Cu") (net 6) (tstamp 3efbae6b-23ff-4bca-8cd9-e5f1ac730623)) (segment (start 144.526 146.812) (end 144.018 147.32) (width 1) (layer "F.Cu") (net 6) (tstamp 4203aec3-e7b3-46d2-a29e-08418bca3125)) (segment (start 44.708978 94.274) (end 44.432489 93.997511) (width 0.153) (layer "F.Cu") (net 6) (tstamp 4437cd18-8847-42e1-af53-5fbbb41d76ac)) - (segment (start 51.929 68.165) (end 44.829978 68.165) (width 1.5) (layer "F.Cu") (net 6) (tstamp 44b180c9-b713-40d6-b3e7-33ac5962196c)) (segment (start 184.532011 113.115989) (end 183.0325 114.6155) (width 1) (layer "F.Cu") (net 6) (tstamp 518bd59c-a6d5-49e0-8ba8-8a2935a47d99)) (segment (start 195.326 50.038) (end 194.818 49.53) (width 2) (layer "F.Cu") (net 6) (tstamp 5559256d-84f7-4c57-8ae3-3d99b4ab03bf)) (segment (start 184.404 51.562) (end 184.404 50.546) (width 1) (layer "F.Cu") (net 6) (tstamp 555e08f0-b7fa-411b-b778-b9403f01709a)) @@ -5092,20 +5107,25 @@ (segment (start 44.45 147.32) (end 89.662 147.32) (width 2) (layer "F.Cu") (net 6) (tstamp 653c41ed-2e34-4e85-932f-3b11aef54474)) (segment (start 183.0325 114.6155) (end 178.910892 114.6155) (width 1) (layer "F.Cu") (net 6) (tstamp 661c7d50-f911-4990-ad97-6a6f238faad7)) (segment (start 82.042 76.962) (end 84.074 76.962) (width 0.153) (layer "F.Cu") (net 6) (tstamp 67ec7f44-85c4-474d-913d-50866152d1cc)) + (segment (start 44.565978 78.129) (end 44.432489 77.995511) (width 0.153) (layer "F.Cu") (net 6) (tstamp 6ce3bb28-b009-4709-a2ab-4a5bbf49ec8e)) (segment (start 77.216 76.962) (end 80.01 76.962) (width 0.153) (layer "F.Cu") (net 6) (tstamp 708806d0-584e-4cea-8734-b22d610cefe2)) (segment (start 178.910892 114.6155) (end 177.411381 113.115989) (width 1) (layer "F.Cu") (net 6) (tstamp 83a4ee0d-2f1a-4203-8508-d62c389fb3d3)) (segment (start 102.108 145.288) (end 102.108 147.32) (width 1) (layer "F.Cu") (net 6) (tstamp 8513a519-80ec-4cf3-a63a-9269285f1eb7)) (segment (start 144.018 147.32) (end 195.326 147.32) (width 2) (layer "F.Cu") (net 6) (tstamp 86cf6ab9-538a-4907-8239-c7dd24e7e507)) (segment (start 157.988 49.53) (end 132.842 49.53) (width 2) (layer "F.Cu") (net 6) (tstamp 8ea4af81-dc71-4f2c-bb04-2d3e49d81583)) + (segment (start 44.432489 77.995511) (end 44.432489 85.361511) (width 2) (layer "F.Cu") (net 6) (tstamp 917d20db-c252-4964-a306-c81f4655cd64)) (segment (start 103.253511 112.392489) (end 95.379511 112.392489) (width 1) (layer "F.Cu") (net 6) (tstamp 93d80040-ef84-421f-bfe5-b70c610edc74)) (segment (start 85.852 49.53) (end 44.45 49.53) (width 2) (layer "F.Cu") (net 6) (tstamp 95b4840a-ea6d-4a19-84b7-0451a57601a2)) (segment (start 44.432489 93.997511) (end 44.432489 119.616489) (width 2) (layer "F.Cu") (net 6) (tstamp 9763c914-f8aa-4dd7-b59f-527ecaa9c34c)) (segment (start 44.432489 147.302489) (end 44.45 147.32) (width 2) (layer "F.Cu") (net 6) (tstamp 9eabb0f0-ec26-4200-8a70-1ae22d8b18a8)) + (segment (start 44.432489 49.547511) (end 44.432489 61.612511) (width 2) (layer "F.Cu") (net 6) (tstamp a1638525-3a99-431f-a7f4-4c6c7e2b31aa)) (segment (start 107.058489 112.392489) (end 105.280489 112.392489) (width 1) (layer "F.Cu") (net 6) (tstamp a488637f-cdaa-4a5e-88ff-3e4c5197667b)) (segment (start 132.842 49.53) (end 105.156 49.53) (width 2) (layer "F.Cu") (net 6) (tstamp a49d736a-c592-4e37-8d31-52cf393325be)) (segment (start 169.3165 114.6155) (end 165.194892 114.6155) (width 1) (layer "F.Cu") (net 6) (tstamp a5c9f42a-a883-47fa-94ee-9b161370130d)) + (segment (start 51.929 78.129) (end 44.565978 78.129) (width 0.153) (layer "F.Cu") (net 6) (tstamp a7a8fd9d-9905-4464-82d7-9519a17e2e21)) (segment (start 184.404 50.546) (end 185.42 49.53) (width 1) (layer "F.Cu") (net 6) (tstamp aa529978-3ae7-4007-a23a-bc08f70ff3fe)) (segment (start 163.863392 113.284) (end 157.226 113.284) (width 1) (layer "F.Cu") (net 6) (tstamp b818b1c9-84cc-4c47-85fa-5de19a8138b6)) + (segment (start 44.432489 61.612511) (end 44.432489 68.562489) (width 2) (layer "F.Cu") (net 6) (tstamp bfc0f578-4078-411f-9954-16365ddf85d8)) (segment (start 134.38548 129.731458) (end 141.48748 129.731458) (width 0.153) (layer "F.Cu") (net 6) (tstamp c0211250-e82e-4e5e-b268-6c09a1a98bab)) (segment (start 89.662 147.32) (end 102.108 147.32) (width 2) (layer "F.Cu") (net 6) (tstamp d31ef0ad-dd9e-4f23-948f-3fc326fbe0a7)) (segment (start 165.194892 114.6155) (end 163.863392 113.284) (width 1) (layer "F.Cu") (net 6) (tstamp d494b466-97cb-4617-94dd-6b37c9584639)) @@ -5114,7 +5134,6 @@ (segment (start 44.432489 85.361511) (end 44.432489 93.997511) (width 2) (layer "F.Cu") (net 6) (tstamp d703fba0-a65a-4138-8bf1-f5b4136f2bb7)) (segment (start 141.48748 129.731458) (end 142.916011 131.159989) (width 0.153) (layer "F.Cu") (net 6) (tstamp dc9a3036-a89c-4ea8-b728-81ddffab082a)) (segment (start 113.03 113.03) (end 112.776 113.284) (width 0.5) (layer "F.Cu") (net 6) (tstamp e36f78bb-94a6-4922-b20b-7b8e3e8805cd)) - (segment (start 44.432489 68.562489) (end 44.432489 85.361511) (width 2) (layer "F.Cu") (net 6) (tstamp e633dcce-c429-4e08-91cd-69533e8cfa17)) (segment (start 80.01 76.962) (end 82.042 76.962) (width 0.153) (layer "F.Cu") (net 6) (tstamp e7b8a5bc-4de7-4ae2-8942-cbadcc7d43bc)) (segment (start 158.242 49.784) (end 157.988 49.53) (width 0.5) (layer "F.Cu") (net 6) (tstamp ee360b83-75aa-460c-b13a-1b7df8b6e9bf)) (segment (start 86.36 51.562) (end 86.36 50.038) (width 1) (layer "F.Cu") (net 6) (tstamp eec07291-8bb2-4f9e-bb42-122984cdda66)) @@ -5682,1036 +5701,1043 @@ (segment (start 160.359989 66.208011) (end 163.236011 63.331989) (width 0.153) (layer "B.Cu") (net 73) (tstamp 6b19b23d-52e8-4b1e-a17a-7b962b0f754d)) (segment (start 161.036 78.486) (end 160.359989 77.809989) (width 0.153) (layer "B.Cu") (net 73) (tstamp f535fc67-8310-4c78-b9cb-21d22fc83e21)) (segment (start 160.359989 77.809989) (end 160.359989 66.208011) (width 0.153) (layer "B.Cu") (net 73) (tstamp f65a2a99-e5be-469b-b980-284cba5c9ea5)) - (segment (start 164.712031 72.428009) (end 163.236011 70.951989) (width 0.153) (layer "B.Cu") (net 74) (tstamp 2c889527-07a3-475a-8965-7b2b4dc763d5)) - (segment (start 163.236011 70.443989) (end 163.236011 70.951989) (width 0.153) (layer "B.Cu") (net 74) (tstamp 3d924d32-e9c3-4c4c-8436-6dd465cba739)) - (segment (start 164.712031 64.395969) (end 163.236011 65.871989) (width 0.153) (layer "B.Cu") (net 74) (tstamp 97d8e1ea-856d-4c40-b501-692f2be849ed)) - (segment (start 164.712031 62.268009) (end 164.712031 64.395969) (width 0.153) (layer "B.Cu") (net 74) (tstamp 9a5824fb-3fde-4db4-a17b-edcc00bb0cf0)) - (segment (start 163.236011 65.871989) (end 164.712031 67.348009) (width 0.153) (layer "B.Cu") (net 74) (tstamp 9bab215b-5975-4ac9-a9ce-1aa34c0ed791)) - (segment (start 163.236011 60.791989) (end 164.712031 62.268009) (width 0.153) (layer "B.Cu") (net 74) (tstamp a44e180d-61db-48eb-aeb5-fcf2e01d2b9e)) - (segment (start 164.712031 68.967969) (end 163.236011 70.443989) (width 0.153) (layer "B.Cu") (net 74) (tstamp a56784e5-9a70-464e-9546-565b3cb409ca)) - (segment (start 164.712031 74.555969) (end 164.712031 72.428009) (width 0.153) (layer "B.Cu") (net 74) (tstamp afcb523b-bc3a-4124-b856-e3a175554fbc)) - (segment (start 163.236011 76.031989) (end 164.712031 74.555969) (width 0.153) (layer "B.Cu") (net 74) (tstamp ed135af6-ac34-4f59-8ef6-6fda1b94704a)) - (segment (start 164.712031 67.348009) (end 164.712031 68.967969) (width 0.153) (layer "B.Cu") (net 74) (tstamp ef7237d8-a9aa-4361-bb1a-1a29277caf40)) - (segment (start 165.877531 133.684989) (end 166.665511 132.897009) (width 0.153) (layer "F.Cu") (net 75) (tstamp 6a517ac8-ca06-4fa7-9d98-736c3347dc23)) - (segment (start 163.236011 133.684989) (end 165.877531 133.684989) (width 0.153) (layer "F.Cu") (net 75) (tstamp fd860199-502d-4a64-928c-0842494b48c5)) - (via (at 166.665511 132.897009) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 75) (tstamp e95a2ec6-a21f-413f-87c7-5a9053b01a86)) - (segment (start 169.379991 62.268009) (end 169.379991 79.286009) (width 0.153) (layer "B.Cu") (net 75) (tstamp 0bedea36-45e0-4e32-a21d-f38bfa30c5ba)) - (segment (start 166.37 132.601498) (end 166.665511 132.897009) (width 0.153) (layer "B.Cu") (net 75) (tstamp 31a5f17b-74f8-4f85-8431-d662b1d73cf4)) - (segment (start 166.37 115.57) (end 166.37 132.601498) (width 0.153) (layer "B.Cu") (net 75) (tstamp 3e8f66b1-9ce9-4b66-b2a2-c2ed591b9820)) - (segment (start 167.03348 108.55652) (end 167.03348 114.90652) (width 0.153) (layer "B.Cu") (net 75) (tstamp 9cff695b-9caa-4f75-b154-dd4db4946e39)) - (segment (start 167.03348 114.90652) (end 166.37 115.57) (width 0.153) (layer "B.Cu") (net 75) (tstamp b535996f-be90-496f-9546-77bb4c89f2d5)) - (segment (start 169.379991 79.286009) (end 166.709989 81.956011) (width 0.153) (layer "B.Cu") (net 75) (tstamp e275ca83-a031-4366-b385-674652a6199a)) - (segment (start 166.709989 81.956011) (end 166.709989 108.233029) (width 0.153) (layer "B.Cu") (net 75) (tstamp ed3638f0-f9f2-4476-8224-1b4ba8c26f28)) - (segment (start 170.856011 60.791989) (end 169.379991 62.268009) (width 0.153) (layer "B.Cu") (net 75) (tstamp eebb9796-503a-455a-ba7a-15361abde042)) - (segment (start 166.709989 108.233029) (end 167.03348 108.55652) (width 0.153) (layer "B.Cu") (net 75) (tstamp fddc859e-b03c-4423-acdb-f0c29b54512a)) - (segment (start 164.312031 116.981009) (end 163.236011 115.904989) (width 0.153) (layer "F.Cu") (net 76) (tstamp 5b2db697-2465-4d85-82e9-e0a64c8c4735)) - (segment (start 163.236011 115.904989) (end 162.011 114.679978) (width 0.153) (layer "F.Cu") (net 76) (tstamp 7980e81c-b202-4f56-b14d-d1222208c3cb)) - (segment (start 105.027978 114.679978) (end 104.902 114.554) (width 0.153) (layer "F.Cu") (net 76) (tstamp 930a6034-33b3-4efd-92b0-51439ecaa722)) - (segment (start 175.006 116.078) (end 174.102991 116.981009) (width 0.153) (layer "F.Cu") (net 76) (tstamp a17b2747-3789-4d75-bdbe-67027ffc06f2)) - (segment (start 174.102991 116.981009) (end 164.312031 116.981009) (width 0.153) (layer "F.Cu") (net 76) (tstamp a9ba904e-5cc2-413e-9bd1-46edcba0b936)) - (segment (start 162.011 114.679978) (end 105.027978 114.679978) (width 0.153) (layer "F.Cu") (net 76) (tstamp fd9e6a86-17b3-4dc6-be57-d4d21735c44f)) - (via (at 104.902 114.554) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 76) (tstamp 3468a9bc-27e4-4ac2-933c-07667ecda4d4)) - (via (at 175.006 116.078) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 76) (tstamp 86909625-1417-478b-aee1-e91fbdc6d2f9)) - (segment (start 104.14 105.41) (end 104.248 105.302) (width 0.153) (layer "B.Cu") (net 76) (tstamp 097b0031-195b-4a29-9510-0689001f55da)) - (segment (start 104.14 106.68) (end 104.14 105.41) (width 0.153) (layer "B.Cu") (net 76) (tstamp 20f9696d-ca07-424a-a494-2f7bf1e0aa43)) - (segment (start 176.952011 126.064989) (end 175.006 124.118978) (width 0.153) (layer "B.Cu") (net 76) (tstamp 2a3dccb0-fc4d-4c3f-89e3-68afada173b1)) - (segment (start 104.248 106.788) (end 104.14 106.68) (width 0.153) (layer "B.Cu") (net 76) (tstamp 55168a8d-dc7e-47ac-a042-c73814ab19b7)) - (segment (start 104.902 114.554) (end 104.248 113.9) (width 0.153) (layer "B.Cu") (net 76) (tstamp 72e8bbfa-b0aa-4294-8854-fe200521267b)) - (segment (start 104.248 84.474) (end 105.324011 83.397989) (width 0.153) (layer "B.Cu") (net 76) (tstamp baf136ea-9c4c-4f0e-917d-788ee401328b)) - (segment (start 104.248 105.302) (end 104.248 84.474) (width 0.153) (layer "B.Cu") (net 76) (tstamp d5195ac3-08bf-448c-84bc-c56a1be7546e)) - (segment (start 175.006 124.118978) (end 175.006 116.078) (width 0.153) (layer "B.Cu") (net 76) (tstamp f0c78fbd-4d56-41d3-b3f9-c091b1cd0fef)) - (segment (start 104.248 113.9) (end 104.248 106.788) (width 0.153) (layer "B.Cu") (net 76) (tstamp f20069ef-727e-4603-a70b-ccd6e9df8aec)) - (segment (start 123.19 120.904) (end 125.921 123.635) (width 0.153) (layer "F.Cu") (net 77) (tstamp 21820b1d-e1e7-40fa-bedc-6aa2c72ac61d)) - (segment (start 173.715031 117.368969) (end 164.312031 117.368969) (width 0.153) (layer "F.Cu") (net 77) (tstamp 29aa335b-758f-477a-af4b-8a1558985f41)) - (segment (start 146.495 123.635) (end 147.848969 124.988969) (width 0.153) (layer "F.Cu") (net 77) (tstamp 3fa6370a-076b-4d3b-a728-f17c96a25856)) - (segment (start 156.063991 124.988969) (end 157.140011 126.064989) (width 0.153) (layer "F.Cu") (net 77) (tstamp 4610ce87-eabc-429f-b008-23819a1b2c4c)) - (segment (start 176.952011 118.444989) (end 175.875991 117.368969) (width 0.153) (layer "F.Cu") (net 77) (tstamp 48f846b8-42ff-4b23-bac7-bfa280198f61)) - (segment (start 159.512 118.618) (end 159.685011 118.444989) (width 0.153) (layer "F.Cu") (net 77) (tstamp 592c77bb-f800-4d6f-bef1-3431ed057d2d)) - (segment (start 122.11398 121.98002) (end 123.19 120.904) (width 0.153) (layer "F.Cu") (net 77) (tstamp 76787f79-a72f-4556-acd1-5edd980c0953)) - (segment (start 106.172 121.666) (end 106.48602 121.98002) (width 0.153) (layer "F.Cu") (net 77) (tstamp 8db0373a-0180-4ab2-9b2f-2b0038b7eb8c)) - (segment (start 159.685011 118.444989) (end 163.236011 118.444989) (width 0.153) (layer "F.Cu") (net 77) (tstamp 9153b275-5d41-4580-ad8e-41e155312639)) - (segment (start 173.756969 117.368969) (end 173.715031 117.368969) (width 0.153) (layer "F.Cu") (net 77) (tstamp ac0af998-a59b-47c9-859a-a545e868a379)) - (segment (start 164.312031 117.368969) (end 163.236011 118.444989) (width 0.153) (layer "F.Cu") (net 77) (tstamp c92c7b1d-a2f1-4ca7-9223-fb0e2e07e22b)) - (segment (start 175.875991 117.368969) (end 173.715031 117.368969) (width 0.153) (layer "F.Cu") (net 77) (tstamp da8991cc-4fc6-4851-a345-5c93848b3571)) - (segment (start 106.48602 121.98002) (end 122.11398 121.98002) (width 0.153) (layer "F.Cu") (net 77) (tstamp eb552423-c0e5-4786-895d-1e0982d41516)) - (segment (start 125.921 123.635) (end 146.495 123.635) (width 0.153) (layer "F.Cu") (net 77) (tstamp eb8a119c-29f5-4ed5-8013-fb69adf3394b)) - (segment (start 147.848969 124.988969) (end 156.063991 124.988969) (width 0.153) (layer "F.Cu") (net 77) (tstamp fa40a9d7-c377-4eeb-82c6-e39390f9cb0f)) - (via (at 159.512 118.618) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 77) (tstamp 4e89c179-8cd7-4cc5-a5f5-15161c417b5c)) - (via (at 106.172 121.666) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 77) (tstamp bb9f6a62-8859-49b0-b6ba-63405618889b)) - (segment (start 107.864011 83.397989) (end 106.788 84.474) (width 0.153) (layer "B.Cu") (net 77) (tstamp 4ad5df6d-4fe0-434f-8225-2f5c6385ac7c)) - (segment (start 159.512 123.693) (end 159.512 118.618) (width 0.153) (layer "B.Cu") (net 77) (tstamp 79284748-4dd3-445c-b573-acba9dd76717)) - (segment (start 106.788 109.074) (end 106.172 109.69) (width 0.153) (layer "B.Cu") (net 77) (tstamp 89581e1e-6777-4e66-8fbd-58c0d5ad1419)) - (segment (start 106.172 109.69) (end 106.172 121.666) (width 0.153) (layer "B.Cu") (net 77) (tstamp 8f985d53-63e2-4398-9d4e-d49896694710)) - (segment (start 157.140011 126.064989) (end 159.512 123.693) (width 0.153) (layer "B.Cu") (net 77) (tstamp b17d7af4-85e2-47bf-9957-850c91249fb4)) - (segment (start 107.864011 83.397989) (end 112.944011 78.317989) (width 0.153) (layer "B.Cu") (net 77) (tstamp b8ad27b0-4373-4000-a974-ed4af38cc8b0)) - (segment (start 112.944011 78.317989) (end 112.944011 73.720989) (width 0.153) (layer "B.Cu") (net 77) (tstamp c2c8d1b6-81b7-4f80-aa1c-65074ec69e80)) - (segment (start 106.788 84.474) (end 106.788 109.074) (width 0.153) (layer "B.Cu") (net 77) (tstamp de86ffb5-0f6e-42d6-8680-b0a3b86069cd)) - (segment (start 112.014 123.444) (end 123.19 123.444) (width 0.153) (layer "F.Cu") (net 78) (tstamp 2d5bd612-983b-45c0-89ab-48bbc7bfeb9f)) - (segment (start 116.185022 71.882) (end 118.024011 73.720989) (width 0.153) (layer "F.Cu") (net 78) (tstamp 3f9344e9-6c05-4a4e-b2b3-26c659ef7d71)) - (segment (start 124.714 123.444) (end 123.19 123.444) (width 0.153) (layer "F.Cu") (net 78) (tstamp 4c6ef715-668f-468c-880e-aa52d4e82d1e)) - (segment (start 125.222 123.952) (end 124.714 123.444) (width 0.153) (layer "F.Cu") (net 78) (tstamp 5d1bfe1e-848d-4cdd-961e-e72bdbda276b)) - (segment (start 156.063991 119.908969) (end 125.709031 119.908969) (width 0.153) (layer "F.Cu") (net 78) (tstamp 6a8a7660-67c7-44c5-8ef3-bb33be497d3b)) - (segment (start 114.046 71.882) (end 116.185022 71.882) (width 0.153) (layer "F.Cu") (net 78) (tstamp 6fbe60dd-943f-4955-839f-306850ec8e37)) - (segment (start 125.709031 119.908969) (end 125.476 120.142) (width 0.153) (layer "F.Cu") (net 78) (tstamp 90f3d599-bb98-41e3-85f2-638568426026)) - (segment (start 164.312031 119.908969) (end 163.236011 120.984989) (width 0.153) (layer "F.Cu") (net 78) (tstamp 9cf193aa-add0-4dcf-a99e-ad234059cbfd)) - (segment (start 175.875991 119.908969) (end 164.312031 119.908969) (width 0.153) (layer "F.Cu") (net 78) (tstamp bb65db1b-534d-4075-880b-f614f1e2604e)) - (segment (start 163.236011 120.984989) (end 157.140011 120.984989) (width 0.153) (layer "F.Cu") (net 78) (tstamp c576aea3-8e4c-4272-a2f9-c956665842dd)) - (segment (start 111.76 123.698) (end 112.014 123.444) (width 0.153) (layer "F.Cu") (net 78) (tstamp e1a21f9b-f127-47ea-9131-236d708e7764)) - (segment (start 157.140011 120.984989) (end 156.063991 119.908969) (width 0.153) (layer "F.Cu") (net 78) (tstamp f0be5aa9-485e-46d0-9332-676e80eb10b7)) - (segment (start 176.952011 120.984989) (end 175.875991 119.908969) (width 0.153) (layer "F.Cu") (net 78) (tstamp f6a7829b-fdf4-45a4-a345-38d662cc6fec)) - (via (at 111.76 123.698) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 78) (tstamp 1f7625e6-16f4-40ff-bcdc-c9e804ef0401)) - (via (at 125.476 120.142) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 78) (tstamp 666b110b-64b3-4b1b-b648-8cefb6eb0bcb)) - (via (at 114.046 71.882) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 78) (tstamp ae8a84a4-922f-4371-84ed-1aac579960e3)) - (via (at 125.222 123.952) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 78) (tstamp c363df37-be76-44cd-846e-5e1010ee0d3e)) - (segment (start 108.961269 98.716957) (end 110.998 100.753688) (width 0.153) (layer "B.Cu") (net 78) (tstamp 1583f87b-2312-4152-9f2e-0184cec48a0b)) - (segment (start 110.998 113.03) (end 110.998 122.936) (width 0.153) (layer "B.Cu") (net 78) (tstamp 3c0876d8-5601-40bb-96e6-2ad76ce65dbd)) - (segment (start 114.046 77.714538) (end 114.046 71.882) (width 0.153) (layer "B.Cu") (net 78) (tstamp 548e8240-75d4-4cd1-823f-19f0d296c254)) - (segment (start 108.961269 82.799269) (end 114.046 77.714538) (width 0.153) (layer "B.Cu") (net 78) (tstamp 7f97076a-12a8-4598-95d3-2ce163e24701)) - (segment (start 108.961269 82.799269) (end 108.961269 98.716957) (width 0.153) (layer "B.Cu") (net 78) (tstamp 997f880b-4143-452b-8b77-0ec2f9455013)) - (segment (start 125.476 123.698) (end 125.222 123.952) (width 0.153) (layer "B.Cu") (net 78) (tstamp bbc6895f-68fd-489a-9103-e6f23cebc08f)) - (segment (start 125.476 120.142) (end 125.476 123.698) (width 0.153) (layer "B.Cu") (net 78) (tstamp c20c6b29-8399-49c4-8d84-2b2fcb52d731)) - (segment (start 110.998 122.936) (end 111.76 123.698) (width 0.153) (layer "B.Cu") (net 78) (tstamp d993481d-e7b8-424e-807c-4042ed38c704)) - (segment (start 110.998 100.753688) (end 110.998 113.03) (width 0.153) (layer "B.Cu") (net 78) (tstamp e4b51845-ca8a-4c6c-a2a5-c74fd52d359a)) - (segment (start 175.067697 136.224989) (end 175.155252 136.137434) (width 0.153) (layer "F.Cu") (net 81) (tstamp 0e4bc78d-2163-408b-98a0-20832ab2c20f)) - (segment (start 170.856011 136.224989) (end 175.067697 136.224989) (width 0.153) (layer "F.Cu") (net 81) (tstamp 1d18f2cf-c501-453c-9948-aaa772872acf)) - (segment (start 179.324 111.76) (end 180.34 110.744) (width 0.153) (layer "F.Cu") (net 81) (tstamp 643d8d48-d6c0-465f-b2f0-8ceb95e35f35)) - (segment (start 180.421511 87.63) (end 179.9995 87.207989) (width 0.153) (layer "F.Cu") (net 81) (tstamp 98042644-fedb-441c-b998-2ba26dea87cd)) - (segment (start 176.784 111.76) (end 179.324 111.76) (width 0.153) (layer "F.Cu") (net 81) (tstamp 9b5c8397-0a15-4866-89cc-fdb3b8a7b344)) - (segment (start 179.9995 87.207989) (end 176.952011 87.207989) (width 0.153) (layer "F.Cu") (net 81) (tstamp ebe9e3f9-25f9-4b2f-801a-9ccf2857ef14)) - (via (at 180.34 110.744) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 81) (tstamp 58ad491d-39be-4c58-85bc-4ea42d0f2726)) - (via (at 176.784 111.76) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 81) (tstamp 7374d825-d6c9-4565-9cd9-8a3c27145ee7)) - (via (at 180.421511 87.63) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 81) (tstamp e2383f1b-4012-4306-bc66-eeab01cf1aa5)) - (via (at 175.155252 136.137434) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 81) (tstamp eacf7487-55dd-4253-b1a4-440052099d3e)) - (segment (start 173.482 122.272519) (end 173.482 117.602) (width 0.153) (layer "B.Cu") (net 81) (tstamp 0a457752-0313-49f4-873c-929e153bfc9e)) - (segment (start 174.653481 123.444) (end 173.482 122.272519) (width 0.153) (layer "B.Cu") (net 81) (tstamp 6077e8e1-1281-45f9-b616-9ff610b933f2)) - (segment (start 173.482 117.602) (end 173.482 114.3) (width 0.153) (layer "B.Cu") (net 81) (tstamp 6f71c78b-cef8-4e72-92cb-5022570fd43b)) - (segment (start 180.098031 89.154) (end 180.098031 87.95348) (width 0.153) (layer "B.Cu") (net 81) (tstamp 79bd3989-5641-49a8-a81d-95ce03df6940)) - (segment (start 176.022 111.76) (end 176.784 111.76) (width 0.153) (layer "B.Cu") (net 81) (tstamp 81a1f2cf-ee7f-48b7-8687-fba37e0af761)) - (segment (start 180.34 110.744) (end 180.098031 110.502031) (width 0.153) (layer "B.Cu") (net 81) (tstamp 90703544-59d4-44bc-a65c-09b23a8e2108)) - (segment (start 175.155252 136.137434) (end 174.65348 135.635662) (width 0.153) (layer "B.Cu") (net 81) (tstamp af317941-765b-456b-86d3-f7e7b77cdc2d)) - (segment (start 180.098031 110.502031) (end 180.098031 89.154) (width 0.153) (layer "B.Cu") (net 81) (tstamp b5e23bb3-440f-49bb-a4cd-896d06fea044)) - (segment (start 173.482 114.3) (end 176.022 111.76) (width 0.153) (layer "B.Cu") (net 81) (tstamp c3c6e638-6255-4b9e-8ea2-c68bdd7acbfc)) - (segment (start 180.098031 87.95348) (end 180.421511 87.63) (width 0.153) (layer "B.Cu") (net 81) (tstamp c813c0df-b22b-4aa8-b1c6-5abae26a493e)) - (segment (start 174.65348 135.635662) (end 174.653481 123.444) (width 0.153) (layer "B.Cu") (net 81) (tstamp eebc4f5f-b92a-40c2-a3c8-4b66576f3c0f)) - (segment (start 46.482 112.522) (end 47.752 111.252) (width 0.153) (layer "F.Cu") (net 84) (tstamp 3b02ccb2-9fdb-438a-a8f0-ba04e2bf7595)) - (segment (start 47.752 111.252) (end 56.896 111.252) (width 0.153) (layer "F.Cu") (net 84) (tstamp 4bad2182-d979-4f20-8617-ee39b73128b7)) - (segment (start 104.902 96.52) (end 169.926 96.52) (width 0.153) (layer "F.Cu") (net 85) (tstamp 3772fe6e-5bf7-4415-a6e3-caae4ee2288d)) - (segment (start 102.784011 98.637989) (end 104.902 96.52) (width 0.153) (layer "F.Cu") (net 85) (tstamp 5be020be-c034-48b9-a552-8dbaeb4d16f9)) - (via (at 169.926 96.52) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 85) (tstamp a4a36958-5160-4442-9cc6-3f42f15434c8)) - (segment (start 169.926 110.704268) (end 172.332031 113.110299) (width 0.153) (layer "B.Cu") (net 85) (tstamp 53a23065-8232-4184-b863-f877796fb155)) - (segment (start 172.332031 113.110299) (end 172.332031 124.588969) (width 0.153) (layer "B.Cu") (net 85) (tstamp a89701b8-a6da-49e4-89e7-73d771a7d0cd)) - (segment (start 169.926 96.52) (end 169.926 110.704268) (width 0.153) (layer "B.Cu") (net 85) (tstamp ddca445e-dc8e-4d72-8946-3d45b6bbcf5d)) - (segment (start 172.332031 124.588969) (end 170.856011 126.064989) (width 0.153) (layer "B.Cu") (net 85) (tstamp f3e36bb5-03d2-422f-9fbe-a4588cbd8e29)) - (segment (start 57.872011 116.371989) (end 56.896 117.348) (width 0.153) (layer "F.Cu") (net 86) (tstamp 039ed1c8-2205-4863-ad3c-73ddb9acd44b)) - (segment (start 57.618011 110.196011) (end 57.872011 110.450011) (width 0.153) (layer "F.Cu") (net 86) (tstamp 0afb163c-aa9c-41dd-937f-4ffa9adf893d)) - (segment (start 49.022 109.982) (end 49.236011 110.196011) (width 0.153) (layer "F.Cu") (net 86) (tstamp 3f692482-2499-4018-aaf7-eac29b775fd4)) - (segment (start 57.872011 110.450011) (end 57.872011 116.371989) (width 0.153) (layer "F.Cu") (net 86) (tstamp 83a0e894-9cfd-42c4-bde1-c104f55ce4fe)) - (segment (start 49.236011 110.196011) (end 57.618011 110.196011) (width 0.153) (layer "F.Cu") (net 86) (tstamp f9ade409-45d3-4d9c-87d3-4871c68d6da3)) - (segment (start 112.268 120.904) (end 121.268278 120.904) (width 0.153) (layer "F.Cu") (net 87) (tstamp 18539c98-e31a-4fe2-adc5-747757079997)) - (segment (start 121.268278 120.904) (end 122.344298 119.82798) (width 0.153) (layer "F.Cu") (net 87) (tstamp 1c43f85f-a873-4be5-91f0-94f402d2ee5d)) - (segment (start 141.769452 122.061009) (end 140.664221 120.955779) (width 0.153) (layer "F.Cu") (net 87) (tstamp 79aba9b1-fdb3-4a3d-b3ff-8c34d39daed4)) - (segment (start 111.506 81.28) (end 107.442 81.28) (width 0.153) (layer "F.Cu") (net 87) (tstamp 829728db-ee53-4bf0-aad4-8f3858664f97)) - (segment (start 169.779991 122.061009) (end 141.769452 122.061009) (width 0.153) (layer "F.Cu") (net 87) (tstamp b23b6cac-5ffa-409b-9fb3-0d19b863e8c1)) - (segment (start 170.856011 120.984989) (end 169.779991 122.061009) (width 0.153) (layer "F.Cu") (net 87) (tstamp e5bab8f5-ebb5-4335-9fe2-0e15aa3de49d)) - (segment (start 124.205955 119.82798) (end 125.333754 120.955779) (width 0.153) (layer "F.Cu") (net 87) (tstamp e805a8a8-2916-40db-9333-8705f99e0592)) - (segment (start 122.344298 119.82798) (end 124.205955 119.82798) (width 0.153) (layer "F.Cu") (net 87) (tstamp e98b0f5f-545e-40d6-9f9b-f26c2c8045f4)) - (segment (start 125.333754 120.955779) (end 140.664221 120.955779) (width 0.153) (layer "F.Cu") (net 87) (tstamp fd47751d-2846-4df4-8713-fa9986ba9582)) - (via (at 112.268 120.904) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 87) (tstamp 3ff019bc-07ef-4ded-8213-d63c0f6bac18)) - (via (at 111.506 81.28) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 87) (tstamp 9707cc66-e3ea-474e-bd0b-da8d6be9a840)) - (via (at 107.442 81.28) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 87) (tstamp fd2ed63c-cf4a-47f8-b3e3-c53c769b9709)) - (segment (start 107.864011 80.857989) (end 107.864011 73.720989) (width 0.153) (layer "B.Cu") (net 87) (tstamp 0dc700b2-4ea9-43ac-92d5-ce87900b996c)) - (segment (start 107.442 81.28) (end 107.864011 80.857989) (width 0.153) (layer "B.Cu") (net 87) (tstamp 3dee8453-9ccd-4b5e-b8b4-5ba689bd8797)) - (segment (start 111.496527 99.831473) (end 111.35052 99.97748) (width 0.153) (layer "B.Cu") (net 87) (tstamp 41a5f446-e8f2-41d3-ab29-2c884e4ef27b)) - (segment (start 111.496527 81.289473) (end 111.496527 99.831473) (width 0.153) (layer "B.Cu") (net 87) (tstamp 6268433e-87f5-47bd-a47b-9b24ff92af93)) - (segment (start 111.506 81.28) (end 111.496527 81.289473) (width 0.153) (layer "B.Cu") (net 87) (tstamp 72ae4882-586b-4b51-83d8-234174429d26)) - (segment (start 111.35052 101.854) (end 111.35052 119.98652) (width 0.153) (layer "B.Cu") (net 87) (tstamp 965c0623-2775-4b49-bc5f-8f5f9a7f7d2b)) - (segment (start 111.35052 99.97748) (end 111.35052 101.854) (width 0.153) (layer "B.Cu") (net 87) (tstamp d2c32a07-9cb2-4764-affc-eb0cb91debed)) - (segment (start 111.35052 119.98652) (end 112.268 120.904) (width 0.153) (layer "B.Cu") (net 87) (tstamp da272dc4-c9d8-4f82-b1f4-37520596c70d)) - (segment (start 149.120011 131.144989) (end 149.520011 131.144989) (width 0.153) (layer "F.Cu") (net 89) (tstamp 16ad8d21-33e3-42cb-9b38-0df97e6a5f1e)) - (segment (start 141.392011 89.747989) (end 140.97 90.17) (width 0.153) (layer "F.Cu") (net 89) (tstamp 54a861a1-960e-43ed-b92e-d097543c4f5d)) - (segment (start 145.255 127.279978) (end 149.120011 131.144989) (width 0.153) (layer "F.Cu") (net 89) (tstamp 5cf0794f-8b26-4066-a6c1-a6eb34abf22c)) - (segment (start 140.716 90.424) (end 140.97 90.17) (width 0.153) (layer "F.Cu") (net 89) (tstamp 5d8d34a2-c4db-4510-9abd-8ebad0377774)) - (segment (start 109.194022 127.279978) (end 145.255 127.279978) (width 0.153) (layer "F.Cu") (net 89) (tstamp 6ed7653f-0ec4-4b05-bc5a-4b20756d8e1d)) - (segment (start 107.95 128.524) (end 109.194022 127.279978) (width 0.153) (layer "F.Cu") (net 89) (tstamp 7b84d7cb-481e-4ce4-9161-b78f90c20424)) - (segment (start 150.707989 89.747989) (end 149.945989 89.747989) (width 0.153) (layer "F.Cu") (net 89) (tstamp 7ca0faa2-4571-4985-a555-f6902a1d6ec5)) - (segment (start 122.174 90.424) (end 140.716 90.424) (width 0.153) (layer "F.Cu") (net 89) (tstamp 9711caa4-343f-48bc-ab93-11a3d27bd29a)) - (segment (start 149.945989 89.747989) (end 141.392011 89.747989) (width 0.153) (layer "F.Cu") (net 89) (tstamp ec56010a-e204-43d1-9816-57cdb20f8b60)) - (segment (start 176.952011 89.747989) (end 150.707989 89.747989) (width 0.153) (layer "F.Cu") (net 89) (tstamp faa335d6-af61-4b70-8fe9-de8897a3fb58)) - (via (at 122.174 90.424) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp 6aeb838f-13fd-4d87-bf48-fa16b9d8c983)) - (via (at 150.707989 89.747989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp 85e233d2-efcc-48be-ae01-4c33dfab7794)) - (via (at 140.97 90.17) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp f233eb27-e79d-43e4-afb3-d52928839636)) - (segment (start 151.13 114.736558) (end 150.797469 114.404027) (width 0.153) (layer "B.Cu") (net 89) (tstamp 1ab81cbc-d5d3-4573-913c-b44e6e40223e)) - (segment (start 122.028 90.278) (end 122.174 90.424) (width 0.153) (layer "B.Cu") (net 89) (tstamp 2f702f89-9197-4d57-8484-79e8bdfccbb2)) - (segment (start 151.13 129.535) (end 151.13 114.736558) (width 0.153) (layer "B.Cu") (net 89) (tstamp 409e790a-3652-4ebf-9f7e-bb2d4f31a7b2)) - (segment (start 150.797469 89.837469) (end 150.707989 89.747989) (width 0.153) (layer "B.Cu") (net 89) (tstamp 656280dd-14a0-4af0-8cdb-49f3de2dc31b)) - (segment (start 150.797469 114.404027) (end 150.797469 89.837469) (width 0.153) (layer "B.Cu") (net 89) (tstamp 71a61b59-4d6c-492c-9fee-5d6bf2a6b84b)) - (segment (start 123.104011 73.720989) (end 122.028 74.797) (width 0.153) (layer "B.Cu") (net 89) (tstamp 77881c4e-cc64-4139-8b4f-2ff5b340d816)) - (segment (start 149.520011 131.144989) (end 151.13 129.535) (width 0.153) (layer "B.Cu") (net 89) (tstamp 7ad59e5f-0655-44b3-8c67-30c4e8ecb6ca)) - (segment (start 140.884011 90.255989) (end 140.884011 98.637989) (width 0.153) (layer "B.Cu") (net 89) (tstamp b3698f9b-d632-4f42-8df9-0b77b082dd9d)) - (segment (start 140.97 90.17) (end 140.884011 90.255989) (width 0.153) (layer "B.Cu") (net 89) (tstamp d528737b-e86b-4999-92f2-a8deea29c6e9)) - (segment (start 122.028 74.797) (end 122.028 90.278) (width 0.153) (layer "B.Cu") (net 89) (tstamp d75fac0e-b044-4fb8-b764-6ebef3b3bb68)) - (segment (start 107.95 131.064) (end 109.02602 129.98798) (width 0.153) (layer "F.Cu") (net 90) (tstamp 0a57f313-b605-4f58-a118-629c0196d61c)) - (segment (start 133.194511 129.98798) (end 133.290509 130.083978) (width 0.153) (layer "F.Cu") (net 90) (tstamp 0de4d3a7-9a88-447c-9919-517e6583fdd2)) - (segment (start 123.952 89.748) (end 124.304531 89.395469) (width 0.153) (layer "F.Cu") (net 90) (tstamp 0f1f41cd-26fc-4f5b-a8b0-9da648db3afa)) - (segment (start 142.822312 132.588) (end 148.423022 132.588) (width 0.153) (layer "F.Cu") (net 90) (tstamp 103476bd-a25d-46ae-b03f-5bcf726c23f6)) - (segment (start 176.615989 92.287989) (end 174.752 90.424) (width 0.153) (layer "F.Cu") (net 90) (tstamp 224dbee6-1223-488c-a9bd-4f3c1413212a)) - (segment (start 174.752 90.424) (end 151.638 90.424) (width 0.153) (layer "F.Cu") (net 90) (tstamp 22d884bd-057e-46a8-8547-25d92719d5ac)) - (segment (start 109.02602 129.98798) (end 133.194511 129.98798) (width 0.153) (layer "F.Cu") (net 90) (tstamp 23a983a3-5674-4829-98c2-27172d7b52be)) - (segment (start 151.638 90.424) (end 143.764 90.424) (width 0.153) (layer "F.Cu") (net 90) (tstamp 464721f7-6d62-49ce-85eb-66e5589ddf31)) - (segment (start 176.952011 92.287989) (end 176.615989 92.287989) (width 0.153) (layer "F.Cu") (net 90) (tstamp 5de14dd2-5f09-4b8c-9bb9-d630b518de16)) - (segment (start 124.304531 89.395469) (end 141.732 89.39547) (width 0.153) (layer "F.Cu") (net 90) (tstamp 70e8a06f-a7a9-43ab-be82-a8078cf2d956)) - (segment (start 148.423022 132.588) (end 149.520011 133.684989) (width 0.153) (layer "F.Cu") (net 90) (tstamp 82d724a5-de80-4959-9980-3b9fa5de964e)) - (segment (start 133.290509 130.083978) (end 140.31829 130.083978) (width 0.153) (layer "F.Cu") (net 90) (tstamp 9f1f62b9-462e-449b-9b52-c6c443e7a2e4)) - (segment (start 142.055481 89.071989) (end 143.51 89.071989) (width 0.153) (layer "F.Cu") (net 90) (tstamp ae6561b5-a2a7-4bc1-b531-2de946b79d9b)) - (segment (start 143.764 90.424) (end 143.51 90.678) (width 0.153) (layer "F.Cu") (net 90) (tstamp ca9a919b-fa6d-436d-80bb-f23fd3339cc8)) - (segment (start 140.31829 130.083978) (end 142.822312 132.588) (width 0.153) (layer "F.Cu") (net 90) (tstamp cd4e2187-9a56-4be6-8ba6-fe72381b453c)) - (segment (start 141.732 89.39547) (end 142.055481 89.071989) (width 0.153) (layer "F.Cu") (net 90) (tstamp f495a193-d775-413b-89ee-3101938f31ba)) - (via (at 151.638 90.424) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 90) (tstamp 2f144852-3294-41fd-a945-3e1ff928ee42)) - (via (at 123.952 89.748) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 90) (tstamp 5760c86b-b9e2-45af-a694-ae3a6e2f5f31)) - (via (at 143.51 90.678) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 90) (tstamp 68d1f9a0-2926-40b9-bdaf-baf2d79291ed)) - (via (at 143.51 89.071989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 90) (tstamp bda6d824-d506-4f2c-b366-f8d2de191c79)) - (segment (start 143.51 89.071989) (end 143.51 90.678) (width 0.153) (layer "B.Cu") (net 90) (tstamp 0e30577c-9632-4544-81f0-d32c376bdb34)) - (segment (start 143.424011 90.763989) (end 143.424011 98.637989) (width 0.153) (layer "B.Cu") (net 90) (tstamp 12b00029-165f-47dc-95b7-a7a7f6d50b38)) - (segment (start 124.568 74.797) (end 124.568 89.132) (width 0.153) (layer "B.Cu") (net 90) (tstamp 2e564962-9c43-407f-b91e-d613705d1b9e)) - (segment (start 143.51 90.678) (end 143.424011 90.763989) (width 0.153) (layer "B.Cu") (net 90) (tstamp 316212b3-4f2c-48f5-b963-3f538ab38bd9)) - (segment (start 151.149989 114.258009) (end 151.149989 90.912011) (width 0.153) (layer "B.Cu") (net 90) (tstamp 33990e6f-d24e-48a0-81b6-690c743d398c)) - (segment (start 151.69998 114.808) (end 151.149989 114.258009) (width 0.153) (layer "B.Cu") (net 90) (tstamp 4df08e12-98c4-46af-ba8f-67c25269cf6d)) - (segment (start 149.520011 133.684989) (end 151.69998 131.50502) (width 0.153) (layer "B.Cu") (net 90) (tstamp 8c488bd8-8ec3-4b8c-95ac-970221426416)) - (segment (start 151.149989 90.912011) (end 151.638 90.424) (width 0.153) (layer "B.Cu") (net 90) (tstamp b5bfe264-7127-497f-88f7-a5ed2cf58217)) - (segment (start 124.568 89.132) (end 123.952 89.748) (width 0.153) (layer "B.Cu") (net 90) (tstamp bc6480a7-c730-41b7-85a4-2a8759ddf2f7)) - (segment (start 125.644011 73.720989) (end 124.568 74.797) (width 0.153) (layer "B.Cu") (net 90) (tstamp ddc7baa6-4ce1-4e77-8af7-7c8b238f9d9b)) - (segment (start 151.69998 131.50502) (end 151.69998 114.808) (width 0.153) (layer "B.Cu") (net 90) (tstamp fece4cc4-25a1-41d0-a4a0-66889afb2d5a)) - (segment (start 125.726554 132.334) (end 127.578576 130.481978) (width 0.153) (layer "F.Cu") (net 91) (tstamp 01e69ef0-b560-41dd-b16f-bc921bd65607)) - (segment (start 127.508 91.272) (end 127.590011 91.354011) (width 0.153) (layer "F.Cu") (net 91) (tstamp 090384f9-c72d-4299-a728-976ea8719db9)) - (segment (start 174.329989 91.354011) (end 128.184011 91.354011) (width 0.153) (layer "F.Cu") (net 91) (tstamp 1fa95604-c8d0-4d6b-b667-715ed29d3825)) - (segment (start 147.146989 136.224989) (end 149.520011 136.224989) (width 0.153) (layer "F.Cu") (net 91) (tstamp 2c6ebfef-ec4f-4bce-9d24-541a922c9adf)) - (segment (start 174.498 91.186) (end 174.329989 91.354011) (width 0.153) (layer "F.Cu") (net 91) (tstamp 3323e552-376e-463d-8dc2-2af5636277bc)) - (segment (start 128.221446 130.481978) (end 130.363446 132.623978) (width 0.153) (layer "F.Cu") (net 91) (tstamp 38541585-663b-40c5-92ae-86b487bed3b9)) - (segment (start 142.822312 135.128) (end 146.05 135.128) (width 0.153) (layer "F.Cu") (net 91) (tstamp 4459289b-9c92-4997-b475-b4c0bc1d01e6)) - (segment (start 130.363446 132.623978) (end 140.31829 132.623978) (width 0.153) (layer "F.Cu") (net 91) (tstamp 5b4ca86c-ae63-4f30-b793-373734769e47)) - (segment (start 109.22 132.334) (end 125.726554 132.334) (width 0.153) (layer "F.Cu") (net 91) (tstamp 5c825377-bd8e-43e4-b509-00f6b856ddb4)) - (segment (start 107.95 133.604) (end 109.22 132.334) (width 0.153) (layer "F.Cu") (net 91) (tstamp 66688207-03e2-4a1f-8506-66e5dd158546)) - (segment (start 128.184011 91.354011) (end 95.843989 91.354011) (width 0.153) (layer "F.Cu") (net 91) (tstamp 8c91c81c-e010-40a6-88e5-4bdba92d0ab3)) - (segment (start 175.345989 94.827989) (end 175.006 94.488) (width 0.153) (layer "F.Cu") (net 91) (tstamp 921bb901-3f3e-4cd1-84eb-dcd52dcfa731)) - (segment (start 140.31829 132.623978) (end 142.822312 135.128) (width 0.153) (layer "F.Cu") (net 91) (tstamp af988139-e4a2-4a79-8faf-c94d50a2ed3a)) - (segment (start 127.590011 91.354011) (end 128.184011 91.354011) (width 0.153) (layer "F.Cu") (net 91) (tstamp bf7be330-7de9-4710-9e8f-5cdf073ed5a5)) - (segment (start 95.843989 91.354011) (end 95.758 91.44) (width 0.153) (layer "F.Cu") (net 91) (tstamp d1cf9fad-2e90-46a6-bc80-2cc519781a6d)) - (segment (start 146.05 135.128) (end 147.146989 136.224989) (width 0.153) (layer "F.Cu") (net 91) (tstamp f0195274-e7ae-49a4-8d3a-51bc10f187b6)) - (segment (start 127.578576 130.481978) (end 128.221446 130.481978) (width 0.153) (layer "F.Cu") (net 91) (tstamp f4445ff0-10cb-4441-a446-324ab085cce6)) - (segment (start 176.952011 94.827989) (end 175.345989 94.827989) (width 0.153) (layer "F.Cu") (net 91) (tstamp fd10f7e1-28fa-480a-b440-7c63cc078b19)) - (via (at 175.006 94.488) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 91) (tstamp 02378ade-0a29-4095-9bce-3b9895a5ae96)) - (via (at 174.498 91.186) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 91) (tstamp 3a092cf7-7f6b-4912-adf9-b20ef0214ea3)) - (via (at 148.250011 91.272) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 91) (tstamp 7036fd53-c1e9-4ed3-96b3-7b4a604ad18d)) - (via (at 95.758 91.44) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 91) (tstamp 932ce4bc-8552-4307-8ea8-dea0ca8842f0)) - (via (at 127.508 91.272) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 91) (tstamp 9f73f71a-c56d-4e1c-8a5f-ecfcfb3652af)) - (segment (start 149.520011 136.224989) (end 148.043991 134.748969) (width 0.153) (layer "B.Cu") (net 91) (tstamp 02d41da7-64cf-4e54-b71b-87587ccade04)) - (segment (start 148.043991 134.748969) (end 148.043991 91.47802) (width 0.153) (layer "B.Cu") (net 91) (tstamp 1e1dcd28-037c-43db-9f40-7f8cabc845f9)) - (segment (start 95.758 91.44) (end 95.164011 92.033989) (width 0.153) (layer "B.Cu") (net 91) (tstamp 21a00d01-5859-4665-9552-8699ae22a7e7)) - (segment (start 148.043991 91.47802) (end 148.250011 91.272) (width 0.153) (layer "B.Cu") (net 91) (tstamp 32b2469b-031b-48c2-9ee8-139629db3d97)) - (segment (start 128.184011 73.720989) (end 127.108 74.797) (width 0.153) (layer "B.Cu") (net 91) (tstamp 37e2e9d2-6fae-48fc-8003-3a17a1a49819)) - (segment (start 95.164011 92.033989) (end 95.164011 98.637989) (width 0.153) (layer "B.Cu") (net 91) (tstamp 60bae3d6-4824-4ced-90b3-08e314905d05)) - (segment (start 175.006 94.488) (end 175.006 91.694) (width 0.153) (layer "B.Cu") (net 91) (tstamp 6b7c1ba9-5b88-45d2-8cb6-33a72af83fea)) - (segment (start 127.108 74.797) (end 127.108 90.872) (width 0.153) (layer "B.Cu") (net 91) (tstamp 81b7c496-d346-4564-8e7d-7dc0d9990956)) - (segment (start 175.006 91.694) (end 174.498 91.186) (width 0.153) (layer "B.Cu") (net 91) (tstamp 8ab40167-1771-4470-b9d4-7cf4bc809184)) - (segment (start 127.108 90.872) (end 127.508 91.272) (width 0.153) (layer "B.Cu") (net 91) (tstamp 8d3f96bb-bf2e-40a2-bfc6-4ac863ce84c4)) - (segment (start 175.345989 97.367989) (end 174.752 96.774) (width 0.153) (layer "F.Cu") (net 92) (tstamp 37dd3281-5837-4ee9-8402-61955c590cda)) - (segment (start 111.662 139.856) (end 156.049 139.856) (width 0.153) (layer "F.Cu") (net 92) (tstamp 53561a3b-1b6d-4a7f-9cb4-a179e35e2d6b)) - (segment (start 176.952011 97.367989) (end 175.345989 97.367989) (width 0.153) (layer "F.Cu") (net 92) (tstamp 5ba57511-87bb-4d3f-abfc-78cf045b2b07)) - (segment (start 154.349989 91.948) (end 153.67 91.948) (width 0.153) (layer "F.Cu") (net 92) (tstamp 6bc81bfe-86fc-4b66-951e-3c5c10d2ddee)) - (segment (start 156.049 139.856) (end 157.140011 138.764989) (width 0.153) (layer "F.Cu") (net 92) (tstamp 7b23884d-f67d-48a3-b4cf-f4ac92f4187c)) - (segment (start 173.88822 91.948) (end 154.432 91.948) (width 0.153) (layer "F.Cu") (net 92) (tstamp 7d32571e-22e1-42cb-8e13-15cd40d8e201)) - (segment (start 154.432 91.948) (end 153.67 91.948) (width 0.153) (layer "F.Cu") (net 92) (tstamp 8115d232-67ef-4836-82a4-09919266a349)) - (segment (start 107.95 136.144) (end 111.662 139.856) (width 0.153) (layer "F.Cu") (net 92) (tstamp 8b92ee1d-d157-4c2a-b64f-3f1862471234)) - (segment (start 154.432 92.030011) (end 154.349989 91.948) (width 0.153) (layer "F.Cu") (net 92) (tstamp b6005547-ea23-427c-be4a-3476ef8a921a)) - (segment (start 153.67 91.948) (end 99.06 91.948) (width 0.153) (layer "F.Cu") (net 92) (tstamp cf036cd9-e2b5-475c-906e-09d3d3c401f8)) - (segment (start 98.552 92.456) (end 94.488 92.456) (width 0.153) (layer "F.Cu") (net 92) (tstamp ec43a9fd-b648-472e-9a8f-3329ffddda47)) - (segment (start 173.982572 92.042352) (end 173.88822 91.948) (width 0.153) (layer "F.Cu") (net 92) (tstamp fc4b8e98-144d-40ce-9650-6ceac083128f)) - (segment (start 99.06 91.948) (end 98.552 92.456) (width 0.153) (layer "F.Cu") (net 92) (tstamp fc8fe0f1-da91-42a4-8ea5-8471f315a904)) - (via (at 154.432 92.030011) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 92) (tstamp 1247f985-08e3-4a87-801a-78b2f509b01f)) - (via (at 173.982572 92.042352) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 92) (tstamp 22010f7e-494d-4849-aedc-d787ece534d2)) - (via (at 129.286 92.030011) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 92) (tstamp 7275d887-fc5e-4a0f-b7a3-587c96c75b3c)) - (via (at 94.488 92.456) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 92) (tstamp b53f9df6-4be0-4e9b-b6a0-3c836a9a00df)) - (via (at 174.752 96.774) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 92) (tstamp f3573d11-15c3-4484-8b36-37b05c4e3c39)) - (segment (start 174.329989 96.351989) (end 174.329989 92.389769) (width 0.153) (layer "B.Cu") (net 92) (tstamp 0391e2ad-55f5-4ce6-ac37-4d9d64d78bce)) - (segment (start 154.841481 96.167481) (end 154.432 95.758) (width 0.153) (layer "B.Cu") (net 92) (tstamp 07e7ad91-91f4-4b92-b0bc-f5a53df18e97)) - (segment (start 154.841481 131.064) (end 154.841481 96.167481) (width 0.153) (layer "B.Cu") (net 92) (tstamp 26dd666b-4351-4216-9bc2-66480e3830ec)) - (segment (start 154.841481 136.466459) (end 154.841481 131.064) (width 0.153) (layer "B.Cu") (net 92) (tstamp 281d0ab2-cfd7-4811-8e62-fb98fb0928e9)) - (segment (start 174.329989 92.389769) (end 173.982572 92.042352) (width 0.153) (layer "B.Cu") (net 92) (tstamp 336e1cf0-178a-4fe3-9e11-3cb616fd6b2e)) - (segment (start 129.260022 92.004033) (end 129.286 92.030011) (width 0.153) (layer "B.Cu") (net 92) (tstamp 49d2e652-f629-486b-8764-371320b6e2cb)) - (segment (start 130.724011 73.720989) (end 129.260022 75.184978) (width 0.153) (layer "B.Cu") (net 92) (tstamp 4f2110c1-3081-4083-b007-fa30705cd0f4)) - (segment (start 129.260022 75.184978) (end 129.260022 92.004033) (width 0.153) (layer "B.Cu") (net 92) (tstamp 9519200c-1bc4-4bad-ad55-47801216b728)) - (segment (start 94.488 84.074) (end 95.164011 83.397989) (width 0.153) (layer "B.Cu") (net 92) (tstamp ac2d6b55-7011-4cab-bb35-92e383c1a780)) - (segment (start 174.752 96.774) (end 174.329989 96.351989) (width 0.153) (layer "B.Cu") (net 92) (tstamp cbb0049c-6af0-4a6f-a9b8-bdfc6e3c9cc1)) - (segment (start 157.140011 138.764989) (end 154.841481 136.466459) (width 0.153) (layer "B.Cu") (net 92) (tstamp e6bdae92-078c-4a7f-8272-1d6e94454ff8)) - (segment (start 94.488 92.456) (end 94.488 84.074) (width 0.153) (layer "B.Cu") (net 92) (tstamp f6f8ceec-8694-4d7b-a315-d0f0d0d47851)) - (segment (start 154.432 95.758) (end 154.432 92.030011) (width 0.153) (layer "B.Cu") (net 92) (tstamp fe37de5b-c376-46b5-9798-0440f6df596a)) - (segment (start 159.004 136.144) (end 158.923011 136.224989) (width 0.153) (layer "F.Cu") (net 93) (tstamp 0780db56-7a8c-41e6-be3e-44096034dae9)) - (segment (start 155.194 92.71) (end 132.08 92.71) (width 0.153) (layer "F.Cu") (net 93) (tstamp 0bdb67db-d33b-440f-b650-67719037396e)) - (segment (start 107.95 138.684) (end 109.728 140.462) (width 0.153) (layer "F.Cu") (net 93) (tstamp 5574bb8a-ba10-44a2-ac08-ee45b5a92f41)) - (segment (start 173.228 92.71) (end 155.194 92.71) (width 0.153) (layer "F.Cu") (net 93) (tstamp 5ad801f5-5a87-4dae-9dd2-8484ad0df5ea)) - (segment (start 132.08 92.71) (end 99.314 92.71) (width 0.153) (layer "F.Cu") (net 93) (tstamp b49ac487-cf57-4e7b-b3d2-434bd54f9326)) - (segment (start 158.923011 136.224989) (end 157.140011 136.224989) (width 0.153) (layer "F.Cu") (net 93) (tstamp c92f15f2-07fb-4899-9b02-2cd6f5f65c46)) - (segment (start 109.728 140.462) (end 158.75 140.462) (width 0.153) (layer "F.Cu") (net 93) (tstamp deb81508-91e5-4ace-bdb6-0cf5c62d1999)) - (via (at 132.08 92.71) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp 02e28039-cdda-4616-9f4f-147a1bf71560)) - (via (at 173.228 92.71) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp a1295b7b-3e78-47a2-ac3d-8e8a27e5cc94)) - (via (at 159.004 136.144) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp b4a1e95d-aca5-464c-9d46-106ac063b2ca)) - (via (at 158.75 140.462) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp b9ff2bc9-2909-44de-b87f-01ae5ef3e5c6)) - (via (at 99.314 92.71) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp ceb83952-18d0-48c5-8083-a210b3e03de1)) - (via (at 155.194 92.71) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp f1c4e1c5-b637-4060-8da1-31a1fb873aa2)) - (segment (start 133.264011 73.720989) (end 133.264011 80.133699) (width 0.153) (layer "B.Cu") (net 93) (tstamp 0cbb6a23-9cfd-47e6-a6fe-b61c476b54fc)) - (segment (start 97.704011 91.100011) (end 97.704011 83.397989) (width 0.153) (layer "B.Cu") (net 93) (tstamp 228168ae-913f-461a-a9c0-bbf493cc1442)) - (segment (start 176.952011 99.907989) (end 176.552011 99.907989) (width 0.153) (layer "B.Cu") (net 93) (tstamp 239bcc60-0f84-40da-973e-ea9aedd1bce4)) - (segment (start 133.264011 80.133699) (end 132.08 81.31771) (width 0.153) (layer "B.Cu") (net 93) (tstamp 4a98b3f4-4617-442a-91c4-c4dec798325a)) - (segment (start 155.194 134.278978) (end 155.194 92.71) (width 0.153) (layer "B.Cu") (net 93) (tstamp 59d4f052-1e93-476f-b9eb-1d5e1c239494)) - (segment (start 173.228 96.583978) (end 173.228 92.71) (width 0.153) (layer "B.Cu") (net 93) (tstamp 89bb5784-ad4b-4bbd-a865-b0df5b4214cb)) - (segment (start 176.552011 99.907989) (end 173.228 96.583978) (width 0.153) (layer "B.Cu") (net 93) (tstamp b0f93277-98e2-475a-b164-17f70d461034)) - (segment (start 99.314 92.71) (end 97.704011 91.100011) (width 0.153) (layer "B.Cu") (net 93) (tstamp d21d2cf2-c25c-4cb6-bf5d-49ef23fcde1e)) - (segment (start 158.75 140.462) (end 159.004 140.208) (width 0.153) (layer "B.Cu") (net 93) (tstamp e1370b42-1833-45c1-a436-f4eef723e541)) - (segment (start 157.140011 136.224989) (end 155.194 134.278978) (width 0.153) (layer "B.Cu") (net 93) (tstamp eab08b3b-3dc7-462e-8a23-1417c9663b6c)) - (segment (start 159.004 140.208) (end 159.004 136.144) (width 0.153) (layer "B.Cu") (net 93) (tstamp f44144d6-356c-4ad5-a503-90e3da1e3a81)) - (segment (start 132.08 81.31771) (end 132.08 92.71) (width 0.153) (layer "B.Cu") (net 93) (tstamp fe565d7d-ea13-4bed-a129-e3402ad0fada)) - (segment (start 155.886364 93.541636) (end 134.550364 93.541636) (width 0.153) (layer "F.Cu") (net 94) (tstamp 0261b807-c869-4765-be9a-1137d8adc8da)) - (segment (start 159.37406 141.224) (end 159.581636 141.016424) (width 0.153) (layer "F.Cu") (net 94) (tstamp 0bc0a6c2-c975-4b15-ac71-9d1b6a059e02)) - (segment (start 133.108 138.684) (end 133.604 139.18) (width 0.153) (layer "F.Cu") (net 94) (tstamp 0cf558aa-1c79-4925-8ed9-ad30743a35b2)) - (segment (start 123.19 138.684) (end 133.108 138.684) (width 0.153) (layer "F.Cu") (net 94) (tstamp 1c222caf-bc87-4e30-b714-6db8bdfffc40)) - (segment (start 159.338989 133.684989) (end 157.140011 133.684989) (width 0.153) (layer "F.Cu") (net 94) (tstamp 4f7dccf8-2433-4876-9a50-803c8819423b)) - (segment (start 100.231636 93.541636) (end 100.076 93.386) (width 0.153) (layer "F.Cu") (net 94) (tstamp 69428fb7-bb14-466b-bfbb-8f8ddd1fb1b3)) - (segment (start 133.858 141.224) (end 159.37406 141.224) (width 0.153) (layer "F.Cu") (net 94) (tstamp a776e414-9046-42a3-a7a7-5139c42ce5c9)) - (segment (start 172.552 93.541636) (end 155.886364 93.541636) (width 0.153) (layer "F.Cu") (net 94) (tstamp b33d203d-c71d-447c-ac99-5dd9986082e5)) - (segment (start 134.550364 93.541636) (end 100.231636 93.541636) (width 0.153) (layer "F.Cu") (net 94) (tstamp fb3732be-065b-40aa-8625-13549e0c3713)) - (segment (start 159.766 134.112) (end 159.338989 133.684989) (width 0.153) (layer "F.Cu") (net 94) (tstamp fd3e665e-4faf-4888-87b3-84b7f58127b7)) - (via (at 159.581636 141.016424) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp 34f89d32-181f-4839-97f4-3267d9970a0f)) - (via (at 133.604 139.18) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp 3bc8340e-b4e8-472d-ab3a-317d18df9a32)) - (via (at 172.552 93.541636) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp 99f6a4ca-3bd4-4163-a270-282a922a4394)) - (via (at 159.766 134.112) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp b84ffd7e-97cb-4e5b-9370-a4e1fbf35adf)) - (via (at 155.886364 93.541636) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp d64d73bd-7ebe-4492-bd74-937afb8219f9)) - (via (at 100.076 93.386) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp ece2678a-4290-4fa6-b414-432de85d9c8d)) - (via (at 133.858 141.224) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp f66cc2d1-f731-4bd1-944b-cfe55a8b03fc)) - (via (at 134.550364 93.541636) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp fa30750a-b061-4142-bac7-b42d86ee2aa9)) - (segment (start 159.581636 141.016424) (end 159.766 140.83206) (width 0.153) (layer "B.Cu") (net 94) (tstamp 0bcf5d75-8ae4-48da-8d28-451020f9030c)) - (segment (start 100.244011 93.217989) (end 100.244011 83.397989) (width 0.153) (layer "B.Cu") (net 94) (tstamp 0f82dbf5-96ff-4b51-80be-aeab8727c6d4)) - (segment (start 155.663991 93.764009) (end 155.886364 93.541636) (width 0.153) (layer "B.Cu") (net 94) (tstamp 111640d6-3d17-4733-9e90-af266226b7c8)) - (segment (start 133.604 139.18) (end 133.858 139.434) (width 0.153) (layer "B.Cu") (net 94) (tstamp 2af6e0c9-21c5-48a4-afd7-587c45983047)) - (segment (start 134.688 93.404) (end 134.550364 93.541636) (width 0.153) (layer "B.Cu") (net 94) (tstamp 4583aa32-4a24-4fe3-b33f-c74987f57c00)) - (segment (start 155.663991 132.208969) (end 155.663991 93.764009) (width 0.153) (layer "B.Cu") (net 94) (tstamp 4ea93f13-bc5f-4433-b364-71f78c6a785a)) - (segment (start 172.552 96.606) (end 172.552 93.541636) (width 0.153) (layer "B.Cu") (net 94) (tstamp 5202091f-ad3a-4ea7-a492-f2f46df04016)) - (segment (start 100.076 93.386) (end 100.244011 93.217989) (width 0.153) (layer "B.Cu") (net 94) (tstamp 5982690c-c904-43ea-9b07-f5a98e62cf87)) - (segment (start 175.475991 99.529991) (end 172.552 96.606) (width 0.153) (layer "B.Cu") (net 94) (tstamp 8cb1b8eb-50b8-4a9f-9a50-13d2c09dceb9)) - (segment (start 135.804011 73.720989) (end 134.688 74.837) (width 0.153) (layer "B.Cu") (net 94) (tstamp 945127e9-c832-41ff-a1f3-744b95d271f8)) - (segment (start 176.952011 102.447989) (end 175.475991 100.971969) (width 0.153) (layer "B.Cu") (net 94) (tstamp 94d25cad-e95e-48f1-8aa6-d2113d2dae4b)) - (segment (start 159.766 140.83206) (end 159.766 134.112) (width 0.153) (layer "B.Cu") (net 94) (tstamp baad08c7-56ab-439d-833c-77eaa9b26615)) - (segment (start 157.140011 133.684989) (end 155.663991 132.208969) (width 0.153) (layer "B.Cu") (net 94) (tstamp baf98b89-c0eb-4960-9a34-3f33f20dc588)) - (segment (start 133.858 139.434) (end 133.858 141.224) (width 0.153) (layer "B.Cu") (net 94) (tstamp bf16e2d9-be98-400a-818b-6eab42dacfe9)) - (segment (start 175.475991 100.971969) (end 175.475991 99.529991) (width 0.153) (layer "B.Cu") (net 94) (tstamp cb72bd68-f4c3-4aa9-a920-52103bec3713)) - (segment (start 134.688 74.837) (end 134.688 93.404) (width 0.153) (layer "B.Cu") (net 94) (tstamp f1e0c08b-9031-4819-ae96-2a141e46cb46)) - (segment (start 125.644011 141.900011) (end 160.105989 141.900011) (width 0.153) (layer "F.Cu") (net 95) (tstamp 04bbc413-e283-4b61-8d86-3ef35a6d658a)) - (segment (start 100.584 94.234) (end 100.33 94.488) (width 0.153) (layer "F.Cu") (net 95) (tstamp 0afe783d-5bf2-468e-be7a-3b72947f44a9)) - (segment (start 159.431011 131.144989) (end 157.140011 131.144989) (width 0.153) (layer "F.Cu") (net 95) (tstamp 0fc22e47-e3e4-4f52-8a2d-6e89932d9ec0)) - (segment (start 159.512 131.064) (end 159.431011 131.144989) (width 0.153) (layer "F.Cu") (net 95) (tstamp 1178d5f9-06e1-486d-90df-3b4bb9847340)) - (segment (start 124.46 136.144) (end 124.968 136.652) (width 0.153) (layer "F.Cu") (net 95) (tstamp 132c381c-4387-496f-b6d4-f1cf3f602e2f)) - (segment (start 136.652 94.234) (end 135.89 94.234) (width 0.153) (layer "F.Cu") (net 95) (tstamp 2095df53-ef98-44bc-8f11-92771b0145a1)) - (segment (start 171.876 94.300219) (end 171.809781 94.234) (width 0.153) (layer "F.Cu") (net 95) (tstamp 4745e00d-52fd-4053-8fd0-f39cf97ec6bb)) - (segment (start 137.922 77.47) (end 137.922 80.777928) (width 0.153) (layer "F.Cu") (net 95) (tstamp 521e5fa1-2c68-48bf-8202-3e18777b4420)) - (segment (start 135.89 94.234) (end 100.584 94.234) (width 0.153) (layer "F.Cu") (net 95) (tstamp 7c7d7dbd-c38e-49b4-bc0d-04d2cfdd55b9)) - (segment (start 124.968 141.224) (end 125.644011 141.900011) (width 0.153) (layer "F.Cu") (net 95) (tstamp 7cad555b-56d0-4123-a175-d82151d0b0be)) - (segment (start 160.105989 141.900011) (end 160.528 141.478) (width 0.153) (layer "F.Cu") (net 95) (tstamp a427cd29-1289-4f88-a440-1171f1098ce5)) - (segment (start 137.922 80.777928) (end 137.797964 80.901964) (width 0.153) (layer "F.Cu") (net 95) (tstamp a4cd795b-7712-4fca-bb41-98d7756718ab)) - (segment (start 161.29 94.234) (end 136.652 94.234) (width 0.153) (layer "F.Cu") (net 95) (tstamp bd4dff0b-0826-4ef6-9616-d019db92a268)) - (segment (start 171.809781 94.234) (end 161.29 94.234) (width 0.153) (layer "F.Cu") (net 95) (tstamp c4e8c1a7-abea-49e9-88e3-9a401ee7e8e5)) - (segment (start 123.19 136.144) (end 124.46 136.144) (width 0.153) (layer "F.Cu") (net 95) (tstamp c6b363e7-d579-4adb-9089-40385b8266a2)) - (via (at 100.33 94.488) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp 2a14df37-a18f-467f-bae4-aef847f9e143)) - (via (at 124.968 136.652) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp 43170e90-ecde-4a07-ab23-5381e3afaa15)) - (via (at 137.922 77.47) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp 873b31ee-c2f5-4fc1-802d-856b1dfbfffc)) - (via (at 124.968 141.224) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp 89862d72-f870-47fe-874b-39014e5ff9e1)) - (via (at 159.512 131.064) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp b0e2906b-727b-4321-9edb-c621d676ee2d)) - (via (at 160.528 141.478) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp c4869ae2-e5fb-449a-94ff-8c8c29a9b3c9)) - (via (at 161.29 94.234) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp c48a0440-98ad-430f-bbb5-017b37b88723)) - (via (at 137.797964 80.901964) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp da12eed6-912a-4ef1-bc31-54fc259cb292)) - (via (at 136.652 94.234) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp e1b5850a-c7cc-4c9f-8f3e-3e43c51cabf2)) - (via (at 171.876 94.300219) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp f6b86680-3331-41ce-8709-2996d571077b)) - (segment (start 161.29 95.758) (end 161.29 94.234) (width 0.153) (layer "B.Cu") (net 95) (tstamp 11aecfe4-735d-46d2-bf53-227a2b2d1ad0)) - (segment (start 159.512 126.731538) (end 160.626519 125.617019) (width 0.153) (layer "B.Cu") (net 95) (tstamp 20bba664-a1e3-4ff3-a1f9-a3f50e6f9f2f)) - (segment (start 137.797964 80.901964) (end 136.906 81.793928) (width 0.153) (layer "B.Cu") (net 95) (tstamp 47c28f90-cd71-48f0-9838-ded5eeea2e3c)) - (segment (start 160.626519 96.421481) (end 161.29 95.758) (width 0.153) (layer "B.Cu") (net 95) (tstamp 50cb73ea-d218-4d16-a282-eecc2f52ae4a)) - (segment (start 136.906 88.138) (end 136.906 93.98) (width 0.153) (layer "B.Cu") (net 95) (tstamp 61e414bf-82f8-4b6b-b66e-975f77b8bd25)) - (segment (start 100.33 94.488) (end 100.244011 94.573989) (width 0.153) (layer "B.Cu") (net 95) (tstamp 7958ad75-6bdf-4ff2-81e7-48a3c32f0c9b)) - (segment (start 160.626519 125.617019) (end 160.626519 96.421481) (width 0.153) (layer "B.Cu") (net 95) (tstamp 83bfed84-942d-4cc6-aded-9d290f1f83ce)) - (segment (start 171.750289 94.42593) (end 171.876 94.300219) (width 0.153) (layer "B.Cu") (net 95) (tstamp 83d96118-32ea-4627-81e8-46442ae55293)) - (segment (start 159.512 131.064) (end 159.512 126.731538) (width 0.153) (layer "B.Cu") (net 95) (tstamp 88660d40-8db7-45ab-8f2a-f31140279f23)) - (segment (start 176.952011 104.987989) (end 175.776182 104.987989) (width 0.153) (layer "B.Cu") (net 95) (tstamp 8adf095b-b562-422a-983d-1bbd0e371e6f)) - (segment (start 136.906 81.793928) (end 136.906 88.138) (width 0.153) (layer "B.Cu") (net 95) (tstamp 9173c061-379f-462b-8c89-7b4f92519871)) - (segment (start 138.344011 77.047989) (end 137.922 77.47) (width 0.153) (layer "B.Cu") (net 95) (tstamp 991661c9-dbe9-46a5-87d6-adc75c917df3)) - (segment (start 124.968 136.652) (end 124.968 141.224) (width 0.153) (layer "B.Cu") (net 95) (tstamp a06c6164-121d-4824-a605-31d579ffd013)) - (segment (start 160.528 132.08) (end 159.512 131.064) (width 0.153) (layer "B.Cu") (net 95) (tstamp a5c682ee-f2ec-4aad-b1e0-5c500720c558)) - (segment (start 171.750289 100.962096) (end 171.750289 94.42593) (width 0.153) (layer "B.Cu") (net 95) (tstamp a94acc18-6062-4ab6-b424-a8cc22f541f5)) - (segment (start 175.776182 104.987989) (end 171.750289 100.962096) (width 0.153) (layer "B.Cu") (net 95) (tstamp dec41eca-196c-4859-a2e8-3d541621c6b3)) - (segment (start 160.528 141.478) (end 160.528 132.08) (width 0.153) (layer "B.Cu") (net 95) (tstamp f46d3a48-8a70-46da-b285-a3f70a416cfb)) - (segment (start 100.244011 94.573989) (end 100.244011 98.637989) (width 0.153) (layer "B.Cu") (net 95) (tstamp fa5a0d5d-11c3-4f16-b85e-81e47abfbb68)) - (segment (start 136.906 93.98) (end 136.652 94.234) (width 0.153) (layer "B.Cu") (net 95) (tstamp fb46aae8-d558-4d97-8237-0f42fe112c1a)) - (segment (start 138.344011 73.720989) (end 138.344011 77.047989) (width 0.153) (layer "B.Cu") (net 95) (tstamp fb7f247a-d4cb-4083-b15c-610cc603d12d)) - (segment (start 138.684 95.25) (end 138.598011 95.164011) (width 0.153) (layer "F.Cu") (net 96) (tstamp 280abadf-d7d0-470c-8f52-5385af0b3bb2)) - (segment (start 139.446 95.25) (end 138.684 95.25) (width 0.153) (layer "F.Cu") (net 96) (tstamp 37cacaf8-9545-49db-986b-28eda39f93fe)) - (segment (start 98.212011 95.164011) (end 97.79 94.742) (width 0.153) (layer "F.Cu") (net 96) (tstamp 38c2ac2c-6adc-49d3-8476-1c1ca6e25cf8)) - (segment (start 125.222 142.494) (end 160.782 142.494) (width 0.153) (layer "F.Cu") (net 96) (tstamp 46bb9798-24c6-4cf3-9622-ff5a15dda441)) - (segment (start 160.100989 128.604989) (end 157.140011 128.604989) (width 0.153) (layer "F.Cu") (net 96) (tstamp 4992fdb8-1d02-40f9-90d4-e37783fa7b64)) - (segment (start 160.274 95.25) (end 160.188011 95.164011) (width 0.153) (layer "F.Cu") (net 96) (tstamp 4c130217-696e-4d44-ace6-c9e7603055e6)) - (segment (start 123.19 133.604) (end 124.714 133.604) (width 0.153) (layer "F.Cu") (net 96) (tstamp 562f1037-af08-4159-a58e-63e7e58ef857)) - (segment (start 160.188011 95.164011) (end 159.597989 95.164011) (width 0.153) (layer "F.Cu") (net 96) (tstamp 5ecdd595-0783-489c-b7b5-4744fd35c4ef)) - (segment (start 124.714 133.604) (end 125.222 134.112) (width 0.153) (layer "F.Cu") (net 96) (tstamp 7df3fd22-de7e-4054-9004-a4746fbf168f)) - (segment (start 159.597989 95.164011) (end 138.598011 95.164011) (width 0.153) (layer "F.Cu") (net 96) (tstamp 90d88e89-357a-4473-bc5d-c9e477b4bc93)) - (segment (start 140.884011 77.815917) (end 140.718964 77.980964) (width 0.153) (layer "F.Cu") (net 96) (tstamp c247838c-6063-412a-8696-ecc4a098fad8)) - (segment (start 138.598011 95.164011) (end 98.212011 95.164011) (width 0.153) (layer "F.Cu") (net 96) (tstamp cab2880f-c15f-4d46-8d26-2a411d0d7b91)) - (segment (start 170.773989 95.164011) (end 159.597989 95.164011) (width 0.153) (layer "F.Cu") (net 96) (tstamp d859513e-390a-4f82-a604-2717c6cca901)) - (segment (start 170.942 94.996) (end 170.773989 95.164011) (width 0.153) (layer "F.Cu") (net 96) (tstamp dbfa1d47-c174-4e8a-8946-b7d26712f8c9)) - (segment (start 160.528 129.032) (end 160.100989 128.604989) (width 0.153) (layer "F.Cu") (net 96) (tstamp e4a4c001-d5d5-4327-92f5-42c799a0a3a6)) - (segment (start 140.884011 73.720989) (end 140.884011 77.815917) (width 0.153) (layer "F.Cu") (net 96) (tstamp ec1605aa-953a-4398-891d-7d565e003c3a)) - (via (at 160.274 95.25) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp 0dd6f2ff-91c9-41cc-a2db-21affad0ea5d)) - (via (at 160.528 129.032) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp 2326e1fe-e71b-4012-a484-420d21f8d27f)) - (via (at 97.79 94.742) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp 2c00e9f0-a92e-447a-bec5-ccc3dd51c787)) - (via (at 160.782 142.494) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp 2edee38e-e93a-4281-8495-d62f7125bebf)) - (via (at 125.222 134.112) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp 68f5c86c-661b-4096-a813-702cb68638ed)) - (via (at 140.718964 77.980964) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp 84626d0e-4082-4cf0-8492-bf7e9cdcc0a8)) - (via (at 139.446 95.25) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp a8ce08a6-3d07-4972-bf48-cd1709b04465)) - (via (at 170.942 94.996) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp ad8e13a7-95d5-4531-82f5-c05ef223752d)) - (via (at 125.222 142.494) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp c9371e67-e57c-4594-8978-f91170b0640b)) - (segment (start 160.274 125.471) (end 160.274 95.25) (width 0.153) (layer "B.Cu") (net 96) (tstamp 054d48b4-f343-403d-b405-4bc9b38b7ce2)) - (segment (start 139.446 79.253928) (end 139.446 95.25) (width 0.153) (layer "B.Cu") (net 96) (tstamp 2b2e6e7d-b563-4aae-b573-200341c174e8)) - (segment (start 125.644011 134.534011) (end 125.644011 142.071989) (width 0.153) (layer "B.Cu") (net 96) (tstamp 2f54e94d-2de6-45c6-8494-1eb4132408e8)) - (segment (start 140.718964 77.980964) (end 139.446 79.253928) (width 0.153) (layer "B.Cu") (net 96) (tstamp 35ca87cf-25f3-4b95-befb-41c514c6bfc3)) - (segment (start 161.204011 142.071989) (end 161.204011 134.026011) (width 0.153) (layer "B.Cu") (net 96) (tstamp 580c17f7-95bc-4b0a-8d4c-36db427ae677)) - (segment (start 170.942 101.517978) (end 170.942 94.996) (width 0.153) (layer "B.Cu") (net 96) (tstamp 7e069d4f-c857-41eb-b0b4-0e655f3cce1b)) - (segment (start 161.036 133.858) (end 161.036 130.81) (width 0.153) (layer "B.Cu") (net 96) (tstamp 7f52473d-750f-4ec7-ac69-a7d2ed94e2fe)) - (segment (start 160.782 142.494) (end 161.204011 142.071989) (width 0.153) (layer "B.Cu") (net 96) (tstamp b10591d6-69cc-4a30-95b9-936c15a346a0)) - (segment (start 161.036 130.81) (end 161.036 129.54) (width 0.153) (layer "B.Cu") (net 96) (tstamp b3dc6c44-e498-4d65-8b82-29f3ac40c565)) - (segment (start 97.79 94.742) (end 97.704011 94.827989) (width 0.153) (layer "B.Cu") (net 96) (tstamp b997d132-56f5-4a59-9114-7753edd8ffc0)) - (segment (start 161.036 129.54) (end 160.528 129.032) (width 0.153) (layer "B.Cu") (net 96) (tstamp be6f2b1c-81da-4095-bbc1-80d016edf23e)) - (segment (start 157.140011 128.604989) (end 160.274 125.471) (width 0.153) (layer "B.Cu") (net 96) (tstamp c29925b6-40f3-4d1c-8aa1-6cb330f91851)) - (segment (start 161.204011 134.026011) (end 161.036 133.858) (width 0.153) (layer "B.Cu") (net 96) (tstamp cd10a77e-9039-48e1-88f1-30e6cff9af6c)) - (segment (start 125.222 134.112) (end 125.644011 134.534011) (width 0.153) (layer "B.Cu") (net 96) (tstamp cd7dd474-65b2-4bfe-8b79-793a2672f389)) - (segment (start 176.952011 107.527989) (end 170.942 101.517978) (width 0.153) (layer "B.Cu") (net 96) (tstamp d9293267-e1c8-4fb1-aeef-e64792a53c72)) - (segment (start 97.704011 94.827989) (end 97.704011 98.637989) (width 0.153) (layer "B.Cu") (net 96) (tstamp ea1be5a7-fdc7-4431-90d8-b6e7dc7db25b)) - (segment (start 125.644011 142.071989) (end 125.222 142.494) (width 0.153) (layer "B.Cu") (net 96) (tstamp f45cdba4-f6ec-4933-9dde-ddb591f15d05)) - (segment (start 158.622421 57.374978) (end 154.969022 57.374978) (width 0.153) (layer "F.Cu") (net 97) (tstamp 1bd52a38-26db-4e6e-b61a-20cce2a5ca75)) - (segment (start 146.714995 116.742995) (end 147.32 117.348) (width 0.153) (layer "F.Cu") (net 97) (tstamp 211b0445-d650-4fad-94f2-6b21eb6b7c2e)) - (segment (start 152.721639 59.622361) (end 147.760361 59.622361) (width 0.153) (layer "F.Cu") (net 97) (tstamp 2a6e3e15-2515-46d1-966d-688223fdfce1)) - (segment (start 175.488031 59.328009) (end 168.040009 59.328009) (width 0.153) (layer "F.Cu") (net 97) (tstamp 2b93f3ed-77c6-4e53-a7db-11ca385825f3)) - (segment (start 125.065005 116.742995) (end 146.714995 116.742995) (width 0.153) (layer "F.Cu") (net 97) (tstamp 310331c0-7496-4a5e-94d2-a2eb9dc5fb56)) - (segment (start 149.520011 128.604989) (end 150.623033 129.708011) (width 0.153) (layer "F.Cu") (net 97) (tstamp 3224ab5c-9677-4547-a712-6f7272ae269d)) - (segment (start 164.702542 59.33748) (end 160.584923 59.33748) (width 0.153) (layer "F.Cu") (net 97) (tstamp 35a6c42c-9b9e-47b5-83a0-f66aa4fbfedc)) - (segment (start 164.5445 129.708011) (end 164.966511 129.286) (width 0.153) (layer "F.Cu") (net 97) (tstamp 40fabc39-b829-4da7-a256-5b4d7317587d)) - (segment (start 154.969022 57.374978) (end 152.721639 59.622361) (width 0.153) (layer "F.Cu") (net 97) (tstamp 580faa35-43e6-44e7-ad00-b400078f484c)) - (segment (start 144.204361 59.622361) (end 143.374722 60.452) (width 0.153) (layer "F.Cu") (net 97) (tstamp 87ee3d88-ef28-4dd4-9574-5c8ac74f1780)) - (segment (start 150.623033 129.708011) (end 164.5445 129.708011) (width 0.153) (layer "F.Cu") (net 97) (tstamp 9b60c8ab-fdb0-4b87-8045-126ccc8030be)) - (segment (start 176.952011 60.791989) (end 175.488031 59.328009) (width 0.153) (layer "F.Cu") (net 97) (tstamp a981cb20-9159-4fe6-a383-83527b953fdc)) - (segment (start 113.792 95.840011) (end 108.204 95.840011) (width 0.153) (layer "F.Cu") (net 97) (tstamp b98a51e4-b94f-4f4a-91a7-e1a439cdcf4d)) - (segment (start 168.040009 59.328009) (end 167.725989 59.013989) (width 0.153) (layer "F.Cu") (net 97) (tstamp c8cb9af9-cd6e-46a0-b91d-ce4d0b075ee5)) - (segment (start 147.908989 128.604989) (end 147.32 128.016) (width 0.153) (layer "F.Cu") (net 97) (tstamp d1472820-24c1-41c4-9341-1d2374c82f25)) - (segment (start 149.520011 128.604989) (end 147.908989 128.604989) (width 0.153) (layer "F.Cu") (net 97) (tstamp db8cab9d-6597-4f11-849e-6babdc470e34)) - (segment (start 147.760361 59.622361) (end 144.204361 59.622361) (width 0.153) (layer "F.Cu") (net 97) (tstamp dd217fcc-0997-457b-9774-907d39586513)) - (segment (start 143.374722 60.452) (end 117.856 60.452) (width 0.153) (layer "F.Cu") (net 97) (tstamp e565c9d6-7777-4802-9bbc-37f3fd166dfc)) - (segment (start 167.725989 59.013989) (end 165.026033 59.013989) (width 0.153) (layer "F.Cu") (net 97) (tstamp ec1c21ab-010a-4325-8fc2-3e42f61d03e6)) - (segment (start 165.026033 59.013989) (end 164.702542 59.33748) (width 0.153) (layer "F.Cu") (net 97) (tstamp ed9e0ebd-c512-404d-aa5a-9c0cfc95ea4a)) - (segment (start 160.584923 59.33748) (end 158.622421 57.374978) (width 0.153) (layer "F.Cu") (net 97) (tstamp ee3b186d-3285-433e-821b-340a1f1fabed)) - (via (at 125.065005 116.742995) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp 3b47d1fb-8ece-4926-af09-8fdcddfa3a36)) - (via (at 147.760361 59.622361) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp 40679a14-31a4-491a-b955-812e5b7a66e5)) - (via (at 147.32 128.016) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp 5cbc69dc-bade-4f19-84ff-8211a74ba13c)) - (via (at 113.792 95.840011) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp b1054118-81cf-4390-8579-fa0e32cf582f)) - (via (at 147.32 117.348) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp b4fdb35e-9fa7-49de-9853-808384f4f47a)) - (via (at 164.966511 129.286) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp e6f5225c-3a59-4255-b9ee-f731a99e2e29)) - (via (at 108.204 95.840011) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp fa182492-8175-4773-aab1-50028665ebc0)) - (via (at 117.856 60.452) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp fa6ed117-4f55-4f26-adf5-21dc47e6cac2)) - (segment (start 114.408 74.797) (end 114.408 95.224011) (width 0.153) (layer "B.Cu") (net 97) (tstamp 0369ac05-636f-47f8-8e14-aacc80c110ac)) - (segment (start 108.204 95.840011) (end 107.864011 96.18) (width 0.153) (layer "B.Cu") (net 97) (tstamp 04b597d3-379b-420b-833c-4dd665f2fe12)) - (segment (start 164.592 123.444) (end 163.317 123.444) (width 0.153) (layer "B.Cu") (net 97) (tstamp 077629db-6740-4000-aea5-9de01a1bf1d0)) - (segment (start 147.32 117.348) (end 147.32 60.062722) (width 0.153) (layer "B.Cu") (net 97) (tstamp 09c8f157-2c93-41ca-8539-98ca09da717f)) - (segment (start 125.065005 116.742995) (end 123.444 118.364) (width 0.153) (layer "B.Cu") (net 97) (tstamp 0bdff0ca-f61f-4082-9396-7bc6687b042a)) - (segment (start 115.484011 73.720989) (end 114.408 74.797) (width 0.153) (layer "B.Cu") (net 97) (tstamp 14ba2f97-df75-42d5-a684-12080dc8de3a)) - (segment (start 107.864011 96.18) (end 107.864011 98.637989) (width 0.153) (layer "B.Cu") (net 97) (tstamp 45614e92-df9b-446c-b354-b86a4be657cc)) - (segment (start 147.32 128.016) (end 147.32 117.348) (width 0.153) (layer "B.Cu") (net 97) (tstamp 4ecf2168-17c5-4109-b8a9-456884e6e712)) - (segment (start 164.966511 129.286) (end 164.966511 123.818511) (width 0.153) (layer "B.Cu") (net 97) (tstamp 84121085-e076-41d0-9e51-3611b4bb143a)) - (segment (start 147.32 60.062722) (end 147.760361 59.622361) (width 0.153) (layer "B.Cu") (net 97) (tstamp a1031473-b6d8-458a-9e5c-b8929e513d8a)) - (segment (start 163.317 123.444) (end 163.236011 123.524989) (width 0.153) (layer "B.Cu") (net 97) (tstamp aacc9053-e892-4aec-bc82-695916696241)) - (segment (start 123.444 118.364) (end 123.19 118.364) (width 0.153) (layer "B.Cu") (net 97) (tstamp ba0d3380-9a63-4bc2-9e63-18b312114e91)) - (segment (start 114.408 95.224011) (end 113.792 95.840011) (width 0.153) (layer "B.Cu") (net 97) (tstamp d477b635-439c-4c08-b7b7-f4a800c9c58f)) - (segment (start 117.856 60.452) (end 115.484011 62.823989) (width 0.153) (layer "B.Cu") (net 97) (tstamp de336ff9-7035-47b8-8363-b99313b67681)) - (segment (start 164.966511 123.818511) (end 164.592 123.444) (width 0.153) (layer "B.Cu") (net 97) (tstamp de84d871-c860-4ac0-b649-ff493dd357fa)) - (segment (start 115.484011 62.823989) (end 115.484011 73.720989) (width 0.153) (layer "B.Cu") (net 97) (tstamp ec64d2ff-a1be-491b-b00f-ea5e71c0f7f0)) - (segment (start 169.926 89.071989) (end 165.944011 89.071989) (width 0.153) (layer "F.Cu") (net 98) (tstamp 0d779ae2-7c11-4b75-9ed7-8e0498ad6009)) - (segment (start 105.41 88.9) (end 106.172 88.138) (width 0.153) (layer "F.Cu") (net 98) (tstamp 22faeb3a-7193-4833-ad63-5af8f61315d6)) - (segment (start 145.205989 89.071989) (end 144.272 88.138) (width 0.153) (layer "F.Cu") (net 98) (tstamp 624099d6-59e0-4937-8cf0-31e3e44d23d0)) - (segment (start 106.172 88.138) (end 144.272 88.138) (width 0.153) (layer "F.Cu") (net 98) (tstamp 8d9d12d4-ca0b-46f2-9a0b-7ae3ab6f0f60)) - (segment (start 165.944011 89.071989) (end 145.205989 89.071989) (width 0.153) (layer "F.Cu") (net 98) (tstamp d9824c55-fd2e-42fc-9f56-e7a4f90f3d70)) - (via (at 165.944011 89.071989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 98) (tstamp 2e344f82-9c97-4308-8080-3143d3067432)) - (via (at 169.926 89.071989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 98) (tstamp 658bce0f-bb38-4fb9-8c75-2f28026ffcfe)) - (via (at 105.41 88.9) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 98) (tstamp b113c840-43a2-4125-91cc-8e19bda5cda8)) - (segment (start 105.324011 88.985989) (end 105.324011 98.637989) (width 0.153) (layer "B.Cu") (net 98) (tstamp 48f987a2-a2a4-427c-8474-5b07b10dfa2a)) - (segment (start 161.544 97.780538) (end 166.116 93.208538) (width 0.153) (layer "B.Cu") (net 98) (tstamp 6306b161-7cbd-4f99-9031-2727e21073ed)) - (segment (start 175.26 65.024) (end 175.26 83.312) (width 0.153) (layer "B.Cu") (net 98) (tstamp 6ea4b74b-b449-4bf2-82c0-d96faae023ac)) - (segment (start 161.544 124.372978) (end 161.544 97.780538) (width 0.153) (layer "B.Cu") (net 98) (tstamp 890bb53b-cc18-4a62-b5a4-8955e084c2be)) - (segment (start 166.116 93.208538) (end 166.116 89.243978) (width 0.153) (layer "B.Cu") (net 98) (tstamp 90c9314d-d1e4-4f52-b11d-e4ed58f10be0)) - (segment (start 176.952011 63.331989) (end 175.26 65.024) (width 0.153) (layer "B.Cu") (net 98) (tstamp 989f6e33-c98f-4410-8fa4-28e531ffe172)) - (segment (start 163.236011 126.064989) (end 161.544 124.372978) (width 0.153) (layer "B.Cu") (net 98) (tstamp b0423f3b-8ba5-4502-ab23-bc31f9a73941)) - (segment (start 166.116 89.243978) (end 165.944011 89.071989) (width 0.153) (layer "B.Cu") (net 98) (tstamp bd85d824-388f-4ee9-a787-09098e8d41d7)) - (segment (start 174.08634 83.312) (end 169.926 87.47234) (width 0.153) (layer "B.Cu") (net 98) (tstamp d4b23562-e3f9-438e-86f5-c61b8b3c25d6)) - (segment (start 169.926 87.47234) (end 169.926 89.071989) (width 0.153) (layer "B.Cu") (net 98) (tstamp d920233b-47cf-4b07-81d2-4f1810fdbed4)) - (segment (start 105.41 88.9) (end 105.324011 88.985989) (width 0.153) (layer "B.Cu") (net 98) (tstamp f282e691-1ac7-4c25-8fb0-429c944a136b)) - (segment (start 175.26 83.312) (end 174.08634 83.312) (width 0.153) (layer "B.Cu") (net 98) (tstamp f7bc900a-cef2-403c-adb2-ab1120a6ca1a)) - (segment (start 166.624 80.264) (end 167.132 79.756) (width 0.153) (layer "F.Cu") (net 99) (tstamp 298429aa-b9fe-4fe9-8ab1-4e52fb62da02)) - (segment (start 167.132 79.756) (end 178.722511 79.756) (width 0.153) (layer "F.Cu") (net 99) (tstamp eaff18e1-b7f5-4313-b9ab-a19ed4797e3c)) - (via (at 178.722511 79.756) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 99) (tstamp 22de0127-cab0-41cb-84ba-e19e46e4a1ea)) - (via (at 166.624 80.264) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 99) (tstamp a384912f-ee59-48ae-9171-38f7c43b0d2d)) - (segment (start 178.722511 79.756) (end 178.722511 65.946511) (width 0.153) (layer "B.Cu") (net 99) (tstamp 06f0b516-c700-499c-a391-cc6ba5276593)) - (segment (start 178.562 65.786) (end 178.476011 65.871989) (width 0.153) (layer "B.Cu") (net 99) (tstamp 13152b73-fce8-499d-bd61-0ee14194d9d4)) - (segment (start 163.236011 128.604989) (end 161.036 126.404978) (width 0.153) (layer "B.Cu") (net 99) (tstamp 2576fd49-abff-443c-91fe-92e27cf80c16)) - (segment (start 161.036 97.79) (end 165.354 93.472) (width 0.153) (layer "B.Cu") (net 99) (tstamp 3f30038c-a630-430e-b905-010756f5acd4)) - (segment (start 161.036 126.404978) (end 161.036 97.79) (width 0.153) (layer "B.Cu") (net 99) (tstamp 41117fc9-ebe0-4201-b64b-f04da5ef9858)) - (segment (start 165.354 89.408) (end 165.1 89.154) (width 0.153) (layer "B.Cu") (net 99) (tstamp 7b493daa-00cc-424e-8a6c-f99c2e08ae97)) - (segment (start 165.608 81.28) (end 166.624 80.264) (width 0.153) (layer "B.Cu") (net 99) (tstamp 9e068493-2043-40dc-be64-adfed2311e1d)) - (segment (start 165.1 82.042) (end 165.608 81.534) (width 0.153) (layer "B.Cu") (net 99) (tstamp a3470146-1ad5-4d28-98aa-6ac3fdd225c9)) - (segment (start 165.608 81.534) (end 165.608 81.28) (width 0.153) (layer "B.Cu") (net 99) (tstamp ab5925ef-651f-459b-bd52-6fdcbae0df62)) - (segment (start 178.722511 65.946511) (end 178.562 65.786) (width 0.153) (layer "B.Cu") (net 99) (tstamp bd1bda33-a6e8-4b7a-84c9-4708052367e9)) - (segment (start 165.1 89.154) (end 165.1 82.042) (width 0.153) (layer "B.Cu") (net 99) (tstamp d9250175-01cd-4d68-9b17-72df05a0f673)) - (segment (start 165.354 93.472) (end 165.354 89.408) (width 0.153) (layer "B.Cu") (net 99) (tstamp f45455f3-1402-4823-9611-cfe2a47af47e)) - (segment (start 178.476011 65.871989) (end 176.952011 65.871989) (width 0.153) (layer "B.Cu") (net 99) (tstamp f4eda90d-f85a-44aa-8578-e7ae414120a2)) - (segment (start 169.164 129.794) (end 167.813011 131.144989) (width 0.153) (layer "F.Cu") (net 100) (tstamp 055a0a23-17b5-46db-9c57-a50cc40d8ba3)) - (segment (start 167.813011 131.144989) (end 163.236011 131.144989) (width 0.153) (layer "F.Cu") (net 100) (tstamp 2a79b406-01b1-4910-87a0-10ad61322f38)) - (segment (start 168.656 81.534) (end 166.937975 81.534) (width 0.153) (layer "F.Cu") (net 100) (tstamp 53487912-ee9f-45cb-81f1-9eee4564bf9b)) - (segment (start 166.937975 81.534) (end 165.413975 80.01) (width 0.153) (layer "F.Cu") (net 100) (tstamp 8f5c8b56-c7dd-49a7-a266-d55191194447)) - (segment (start 168.884031 69.875969) (end 168.656 70.104) (width 0.153) (layer "F.Cu") (net 100) (tstamp b0e2fee4-00b6-4f32-b564-cdfe25d26df4)) - (segment (start 176.952011 68.411989) (end 172.897473 68.411989) (width 0.153) (layer "F.Cu") (net 100) (tstamp ca1d02d9-97c2-481d-b327-7db9c8485b97)) - (segment (start 172.897473 68.411989) (end 171.433493 69.875969) (width 0.153) (layer "F.Cu") (net 100) (tstamp f567b8ef-2e4d-499d-97ea-2aa8407120a4)) - (segment (start 171.433493 69.875969) (end 168.884031 69.875969) (width 0.153) (layer "F.Cu") (net 100) (tstamp fb0f7b5c-5f4a-483f-b9f8-cb6cea2f1e73)) - (via (at 165.624959 80.233616) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 100) (tstamp 47bfb954-7eac-4b7e-91fa-cf4363a3f79e)) - (via (at 168.656 81.534) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 100) (tstamp 50a44b93-c39c-44cc-ab4c-3226d338b611)) - (via (at 168.656 70.104) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 100) (tstamp 8357c2de-ee61-43ba-8644-e5e9505c9117)) - (via (at 169.164 129.794) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 100) (tstamp d67b926d-1683-4eea-8655-558afc0c6faa)) - (segment (start 168.656 77.202575) (end 165.624959 80.233616) (width 0.153) (layer "B.Cu") (net 100) (tstamp 023bcc7e-d846-4274-9deb-47b78abbe970)) - (segment (start 168.656 70.104) (end 168.656 77.202575) (width 0.153) (layer "B.Cu") (net 100) (tstamp 307eadd9-28d3-4b4f-bd7e-8fd282de5da7)) - (segment (start 169.164 129.794) (end 169.164 119.888) (width 0.153) (layer "B.Cu") (net 100) (tstamp 6ebd7e4a-cf36-4c5d-b67f-e867eb2d0ec3)) - (segment (start 169.164 82.042) (end 168.656 81.534) (width 0.153) (layer "B.Cu") (net 100) (tstamp 6f51cc95-701e-4eab-b932-ff0c0ae8a72f)) - (segment (start 169.164 119.888) (end 169.164 82.042) (width 0.153) (layer "B.Cu") (net 100) (tstamp 89e80b59-bcbe-4313-a974-f76ec9f0254b)) - (segment (start 172.805989 70.951989) (end 172.72 70.866) (width 0.153) (layer "F.Cu") (net 101) (tstamp 55d81435-736e-40b4-a41e-14a5437b3fab)) - (segment (start 176.952011 70.951989) (end 172.805989 70.951989) (width 0.153) (layer "F.Cu") (net 101) (tstamp ea9b0c91-823e-49cd-9b5e-12459c7a5ba3)) - (via (at 172.72 70.866) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 101) (tstamp 6624aa7d-e6c0-4171-bf57-d809df36d58d)) - (segment (start 172.72 79.248) (end 170.856011 81.111989) (width 0.153) (layer "B.Cu") (net 101) (tstamp 4bb7560f-00ac-4216-a28a-0fdf07c50cbe)) - (segment (start 172.72 70.866) (end 172.72 79.248) (width 0.153) (layer "B.Cu") (net 101) (tstamp dc669a0c-be80-4490-8d1c-8919cbb60976)) - (segment (start 173.396011 73.491989) (end 170.856011 76.031989) (width 0.153) (layer "F.Cu") (net 102) (tstamp 00e39eab-2d9a-4ade-86aa-d30984a6b7e0)) - (segment (start 176.952011 73.491989) (end 173.396011 73.491989) (width 0.153) (layer "F.Cu") (net 102) (tstamp 4d60ad1e-e02c-4ff3-8b78-ce51c17269d6)) - (segment (start 173.735989 76.031989) (end 173.396 75.692) (width 0.153) (layer "F.Cu") (net 103) (tstamp 046593bd-0067-498b-8116-f4ea16fe4921)) - (segment (start 173.668211 70.275989) (end 173.668211 70.425789) (width 0.153) (layer "F.Cu") (net 103) (tstamp 7d049e2d-810e-43fc-9d1b-8365554a1075)) - (segment (start 173.668211 70.425789) (end 173.432411 70.189989) (width 0.153) (layer "F.Cu") (net 103) (tstamp 8c3c55d5-5789-4394-b624-9cf2d32946d7)) - (segment (start 173.432411 70.189989) (end 171.618011 70.189989) (width 0.153) (layer "F.Cu") (net 103) (tstamp a16f9451-2ef3-4b71-a4aa-21feaf5d440f)) - (segment (start 176.952011 76.031989) (end 173.735989 76.031989) (width 0.153) (layer "F.Cu") (net 103) (tstamp c5449350-e56c-4ee5-a900-907a950e2ac3)) - (segment (start 171.618011 70.189989) (end 170.856011 70.951989) (width 0.153) (layer "F.Cu") (net 103) (tstamp f1e9be9d-94f9-44bb-b612-138942de7865)) - (via (at 173.668211 70.275989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 103) (tstamp 3946a672-038c-441f-851e-419d993df391)) - (via (at 173.396 75.692) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 103) (tstamp d772fbdf-16f9-4663-aa4d-ef88a57493e9)) - (segment (start 173.668211 75.419789) (end 173.668211 70.275989) (width 0.153) (layer "B.Cu") (net 103) (tstamp d39fc335-8bc0-4c33-9d35-f1b1f4248b67)) - (segment (start 173.396 75.692) (end 173.668211 75.419789) (width 0.153) (layer "B.Cu") (net 103) (tstamp ec7e7693-74a6-4f40-876d-f97164e515c1)) - (segment (start 173.567989 78.571989) (end 173.482 78.486) (width 0.153) (layer "F.Cu") (net 104) (tstamp 1f79eed3-60fb-437f-af7a-39d857d41878)) - (segment (start 172.805989 65.871989) (end 170.856011 65.871989) (width 0.153) (layer "F.Cu") (net 104) (tstamp 33f14199-d704-45ea-a3e4-b843a14328fd)) - (segment (start 172.974 66.04) (end 172.805989 65.871989) (width 0.153) (layer "F.Cu") (net 104) (tstamp 727527ec-097b-4d1b-b9a3-f2dbdeb6d0bb)) - (segment (start 176.952011 78.571989) (end 173.567989 78.571989) (width 0.153) (layer "F.Cu") (net 104) (tstamp 947b2df8-80e3-48e4-8fe6-1f9051300f33)) - (via (at 173.482 78.486) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 104) (tstamp 232ed077-a6b2-41c5-b3c3-d991af30ef61)) - (via (at 172.974 66.04) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 104) (tstamp 397391ee-7c44-4570-8e3a-829dffab62fe)) - (segment (start 174.344222 71.019778) (end 174.344222 67.410222) (width 0.153) (layer "B.Cu") (net 104) (tstamp 1fa6812c-835d-468a-8877-dcb3ffa3dbce)) - (segment (start 174.072011 77.895989) (end 174.072011 71.291989) (width 0.153) (layer "B.Cu") (net 104) (tstamp 3e05f0be-061e-4ddf-ae44-34cd51a85ed9)) - (segment (start 173.482 78.486) (end 174.072011 77.895989) (width 0.153) (layer "B.Cu") (net 104) (tstamp 675ede1d-c2a9-45be-b190-a094580d2ae6)) - (segment (start 174.244 71.12) (end 174.344222 71.019778) (width 0.153) (layer "B.Cu") (net 104) (tstamp ba38a82a-4fd3-428c-abed-26c4be919ac8)) - (segment (start 174.344222 67.410222) (end 172.974 66.04) (width 0.153) (layer "B.Cu") (net 104) (tstamp c312a2f1-ab11-4478-89a5-852e7a244a50)) - (segment (start 174.072011 71.291989) (end 174.244 71.12) (width 0.153) (layer "B.Cu") (net 104) (tstamp e56d68dd-10ee-4488-bcf4-70be1dd7a11c)) - (segment (start 113.998022 80.035978) (end 113.527 80.507) (width 0.153) (layer "F.Cu") (net 105) (tstamp 1a587d70-a43c-41be-9338-6253db01963e)) - (segment (start 95.926011 80.603989) (end 113.430011 80.603989) (width 0.153) (layer "F.Cu") (net 105) (tstamp 1de10e49-5e6b-4ea1-8088-2896040c7441)) - (segment (start 190.384012 83.173988) (end 189.506024 82.296) (width 0.153) (layer "F.Cu") (net 105) (tstamp 248c1e11-ccfb-48a8-8f7d-9b8a22293b8c)) - (segment (start 130.327978 80.035978) (end 113.998022 80.035978) (width 0.153) (layer "F.Cu") (net 105) (tstamp 278e5ce4-670d-4322-900b-e7af6e0bb8be)) - (segment (start 153.063978 81.181978) (end 138.473975 81.181978) (width 0.153) (layer "F.Cu") (net 105) (tstamp 27da3893-a91c-4540-9f01-a93ba92bb235)) - (segment (start 130.048 79.502) (end 130.327978 79.781978) (width 0.153) (layer "F.Cu") (net 105) (tstamp 28fed9ed-21d4-46f3-b68d-009abb5a9773)) - (segment (start 86.106 84.582) (end 91.948 84.582) (width 0.153) (layer "F.Cu") (net 105) (tstamp 2b977c13-818c-480a-8482-33e46e27c09b)) - (segment (start 111.846 97.196) (end 110.404011 98.637989) (width 0.153) (layer "F.Cu") (net 105) (tstamp 45f62cf8-c27a-4775-8028-c2697f589c4e)) - (segment (start 197.866 71.882) (end 198.917011 72.933011) (width 0.153) (layer "F.Cu") (net 105) (tstamp 4d80a9da-5a0b-4c8e-9855-4403cec472c8)) - (segment (start 198.220367 83.173988) (end 190.384012 83.173988) (width 0.153) (layer "F.Cu") (net 105) (tstamp 55aaefef-5a9f-470c-be4a-88370c127f80)) - (segment (start 130.327978 79.781978) (end 130.327978 80.035978) (width 0.153) (layer "F.Cu") (net 105) (tstamp 78f48891-53ad-44ed-b4bf-def711ac079b)) - (segment (start 189.506024 82.296) (end 154.178 82.296) (width 0.153) (layer "F.Cu") (net 105) (tstamp 87782c71-9754-4c03-9064-40ef503b365a)) - (segment (start 198.917011 72.933011) (end 198.917011 82.477344) (width 0.153) (layer "F.Cu") (net 105) (tstamp 963e3ccc-4b40-4b2d-bb80-d43a60a86aa7)) - (segment (start 136.20971 80.035978) (end 130.327978 80.035978) (width 0.153) (layer "F.Cu") (net 105) (tstamp 9b291a0d-0428-4880-9c74-dd76a7f2a3fd)) - (segment (start 112.172538 97.196) (end 111.846 97.196) (width 0.153) (layer "F.Cu") (net 105) (tstamp a5a7f0e9-37be-4198-8a74-d541fad62c85)) - (segment (start 136.840022 80.66629) (end 136.20971 80.035978) (width 0.153) (layer "F.Cu") (net 105) (tstamp a85323a5-d1f3-441b-b3d6-879a8dd97ecc)) - (segment (start 113.430011 80.603989) (end 113.527 80.507) (width 0.153) (layer "F.Cu") (net 105) (tstamp aa156a11-71a8-453d-b78f-d13dbdb327c2)) - (segment (start 154.178 82.296) (end 153.063978 81.181978) (width 0.153) (layer "F.Cu") (net 105) (tstamp bad761a8-773a-4365-b287-09a13a981dd0)) - (segment (start 198.917011 82.477344) (end 198.220367 83.173988) (width 0.153) (layer "F.Cu") (net 105) (tstamp bb0eed3c-4b1c-440d-8964-be5f2f971f9e)) - (segment (start 138.473975 81.181978) (end 138.077978 81.577975) (width 0.153) (layer "F.Cu") (net 105) (tstamp d2e28132-5465-432c-8191-6df6be89f68b)) - (segment (start 91.948 84.582) (end 95.926011 80.603989) (width 0.153) (layer "F.Cu") (net 105) (tstamp d60b6f99-90f9-4138-bc75-b2bfe9d9e801)) - (segment (start 113.527 80.507) (end 112.522 81.512) (width 0.153) (layer "F.Cu") (net 105) (tstamp d841acd2-2568-4303-b2a6-ce2190259387)) - (segment (start 137.391997 81.577975) (end 136.840022 81.026) (width 0.153) (layer "F.Cu") (net 105) (tstamp ea0cf1e9-e6a6-41d5-967f-a2dc86b483ba)) - (segment (start 138.077978 81.577975) (end 137.391997 81.577975) (width 0.153) (layer "F.Cu") (net 105) (tstamp ea4c9353-6235-4ccc-a490-a23ae2a84b18)) - (segment (start 136.840022 81.026) (end 136.840022 80.66629) (width 0.153) (layer "F.Cu") (net 105) (tstamp ee21401c-8626-4442-8fab-1b8667c61872)) - (via (at 112.172538 97.196) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 105) (tstamp 6dfc7607-753b-42d4-a7c0-f4af38e14d9e)) - (via (at 112.522 81.512) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 105) (tstamp 90b79843-9af5-4abd-b32e-f7e8a1a7c055)) - (via (at 130.048 79.502) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 105) (tstamp bd631d25-c4d3-4dfd-857d-5758a7c83797)) - (segment (start 111.868 82.166) (end 111.868 96.891462) (width 0.153) (layer "B.Cu") (net 105) (tstamp 026c4973-674f-48ba-b492-194b94bb20b3)) - (segment (start 129.53 108.199) (end 129.53 92.742036) (width 0.153) (layer "B.Cu") (net 105) (tstamp 3bde8baf-bf21-4c82-b4a3-a1306c89718d)) - (segment (start 129.962011 92.310025) (end 129.962011 84.157699) (width 0.153) (layer "B.Cu") (net 105) (tstamp 4ae2f50a-03a0-4b39-9079-a963fcb3f68c)) - (segment (start 129.648 79.902) (end 130.048 79.502) (width 0.153) (layer "B.Cu") (net 105) (tstamp 54c071f1-f679-439f-851a-ec424af893e5)) - (segment (start 129.648 83.843688) (end 129.648 79.902) (width 0.153) (layer "B.Cu") (net 105) (tstamp 71fb5b31-746a-4b38-94f9-e1ddea6a1917)) - (segment (start 111.868 96.891462) (end 112.172538 97.196) (width 0.153) (layer "B.Cu") (net 105) (tstamp 7effe963-ed53-4295-a954-555a27c69719)) - (segment (start 129.962011 84.157699) (end 129.648 83.843688) (width 0.153) (layer "B.Cu") (net 105) (tstamp 7f3ce262-913e-4532-8ef4-073d4865a8fa)) - (segment (start 129.53 92.742036) (end 129.962011 92.310025) (width 0.153) (layer "B.Cu") (net 105) (tstamp adf3f024-cd7d-4127-b632-cb314ad61bde)) - (segment (start 112.522 81.512) (end 111.868 82.166) (width 0.153) (layer "B.Cu") (net 105) (tstamp d8436b18-99fe-4297-b15a-0f9e331352d8)) - (segment (start 47.608011 108.855989) (end 46.482 109.982) (width 0.153) (layer "F.Cu") (net 106) (tstamp 4bae2c89-a446-4a3d-bbb9-b45643e9b460)) - (segment (start 56.896 109.22) (end 56.531989 108.855989) (width 0.153) (layer "F.Cu") (net 106) (tstamp 66b89b29-5fdd-469a-a320-5ca75f50f040)) - (segment (start 56.531989 108.855989) (end 47.608011 108.855989) (width 0.153) (layer "F.Cu") (net 106) (tstamp fed4f588-860d-499e-b77d-5da4b86c65bd)) - (segment (start 147.43198 123.524989) (end 146.644 122.737009) (width 0.153) (layer "F.Cu") (net 107) (tstamp 06982e35-e70a-49ec-8ee1-96b77220a29f)) - (segment (start 149.520011 123.524989) (end 147.43198 123.524989) (width 0.153) (layer "F.Cu") (net 107) (tstamp 12c1fec4-f6c9-4678-9e5a-addb23d96a09)) - (segment (start 128.356 97.282) (end 128.27 97.196) (width 0.153) (layer "F.Cu") (net 107) (tstamp 57226b86-8bfc-4f34-9962-760fec9645a0)) - (segment (start 146.558 97.282) (end 128.356 97.282) (width 0.153) (layer "F.Cu") (net 107) (tstamp 79ba8637-0e7d-4c41-857a-21b8cca58449)) - (via (at 146.558 97.282) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 107) (tstamp 08d2fa8b-e7b2-4ba7-8b3a-6c338361c13d)) - (via (at 146.644 122.737009) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 107) (tstamp 28bf9a00-d219-42dc-bc93-1205b7caa3ae)) - (via (at 128.27 97.196) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 107) (tstamp 969b8c3e-e766-4f2a-afb5-b3a29a5fe618)) - (segment (start 146.644 122.737009) (end 146.644 97.368) (width 0.153) (layer "B.Cu") (net 107) (tstamp 350c050d-7bb0-4fae-ae10-95750bfa19d0)) - (segment (start 146.644 97.368) (end 146.558 97.282) (width 0.153) (layer "B.Cu") (net 107) (tstamp 43866f0e-3403-4990-89d4-78175c16bcd7)) - (segment (start 128.27 98.552) (end 128.184011 98.637989) (width 0.153) (layer "B.Cu") (net 107) (tstamp 4af28255-af56-4a67-b621-201bf3bcb737)) - (segment (start 128.27 97.196) (end 128.27 98.552) (width 0.153) (layer "B.Cu") (net 107) (tstamp 4c023176-4bf0-4894-b9e2-b3280b524d12)) - (segment (start 134.366 82.296) (end 133.264011 83.397989) (width 0.153) (layer "F.Cu") (net 113) (tstamp 0502cf59-662d-4137-beab-92bea9ec95b6)) - (segment (start 152.902489 115.904989) (end 149.520011 115.904989) (width 0.153) (layer "F.Cu") (net 113) (tstamp 10bf76be-872b-415a-9eab-9a07ad8a6bc0)) - (segment (start 176.952011 131.144989) (end 175.875991 132.221009) (width 0.153) (layer "F.Cu") (net 113) (tstamp 17bed37a-23b7-43f2-9170-94868af11ba8)) - (segment (start 152.146 82.042) (end 152 82.188) (width 0.153) (layer "F.Cu") (net 113) (tstamp 4d76a28a-7770-44db-95c0-30dac7f128f9)) - (segment (start 153.274991 132.221009) (end 153.162 132.334) (width 0.153) (layer "F.Cu") (net 113) (tstamp 7f89df2e-2b22-457f-a0d5-f39af97e8779)) - (segment (start 96.774 81.788) (end 101.346 81.788) (width 0.153) (layer "F.Cu") (net 113) (tstamp 910a4e2b-9b09-4bac-98c6-986d951d84c6)) - (segment (start 101.346 81.788) (end 101.6 81.534) (width 0.153) (layer "F.Cu") (net 113) (tstamp 97572ba6-e8c9-422d-9a89-956b1fbdb208)) - (segment (start 101.6 81.534) (end 102.254 82.188) (width 0.153) (layer "F.Cu") (net 113) (tstamp a4fa3d31-1b73-40af-a57b-d985ac3bdff0)) - (segment (start 175.875991 132.221009) (end 153.274991 132.221009) (width 0.153) (layer "F.Cu") (net 113) (tstamp ac87c8b1-7da6-41a3-a0da-b760ad7b4c2b)) - (segment (start 153.0755 116.078) (end 152.902489 115.904989) (width 0.153) (layer "F.Cu") (net 113) (tstamp b8b30303-9430-4e80-82ba-53c751b1d4a1)) - (segment (start 134.474 82.188) (end 134.366 82.296) (width 0.153) (layer "F.Cu") (net 113) (tstamp c04c93b2-ac3d-4da0-bdd9-10405558da53)) - (segment (start 152 82.188) (end 134.474 82.188) (width 0.153) (layer "F.Cu") (net 113) (tstamp d52cea5e-5d6b-4de3-86fc-0942bb61ae4e)) - (segment (start 102.254 82.188) (end 134.258 82.188) (width 0.153) (layer "F.Cu") (net 113) (tstamp df4f484b-29c0-4341-8987-3c13fecb9d38)) - (segment (start 134.258 82.188) (end 134.366 82.296) (width 0.153) (layer "F.Cu") (net 113) (tstamp f995a195-4f5a-4245-a742-4de5c83aca03)) - (via (at 153.162 132.334) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 113) (tstamp 05a80a66-5d93-438e-8b81-eac21c56f913)) - (via (at 101.6 81.534) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 113) (tstamp 723eb018-ddf4-42fc-a624-3eaf40fa9c89)) - (via (at 153.0755 116.078) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 113) (tstamp 7a7e6508-3ae3-4093-aa84-6a019f7b81a5)) - (via (at 152.146 82.042) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 113) (tstamp b67bb17a-663b-4dc5-8c83-f11dd7238de8)) - (via (at 96.774 81.788) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 113) (tstamp cb1e27e6-b6cb-4b53-abaa-1e2d9caf4065)) - (segment (start 154.178 112.268) (end 151.638 109.728) (width 0.153) (layer "B.Cu") (net 113) (tstamp 10864117-6b36-486c-9f98-4c445d9ff4e4)) - (segment (start 151.638 92.202) (end 153.162 90.678) (width 0.153) (layer "B.Cu") (net 113) (tstamp 40db0c08-438a-46df-9f26-c58c612faa20)) - (segment (start 96.52 102.87) (end 96.52 101.771978) (width 0.153) (layer "B.Cu") (net 113) (tstamp 43533884-4da3-4d39-bb8a-8358a28d4c6f)) - (segment (start 153.162 116.1645) (end 153.0755 116.078) (width 0.153) (layer "B.Cu") (net 113) (tstamp 462fea3c-7afe-4f6c-8f54-4c795746b9e8)) - (segment (start 92.71 106.68) (end 96.52 102.87) (width 0.153) (layer "B.Cu") (net 113) (tstamp 4b009266-d309-4daa-b0d0-be665b559a6a)) - (segment (start 94.234 123.444) (end 92.71 121.92) (width 0.153) (layer "B.Cu") (net 113) (tstamp 4ba19258-57f4-4cd2-b9ab-e7bbda8c5281)) - (segment (start 153.0755 114.3865) (end 154.178 113.284) (width 0.153) (layer "B.Cu") (net 113) (tstamp 4ed4a6af-0d1c-4b59-9b6c-b69ebf5a58bd)) - (segment (start 154.178 113.284) (end 154.178 112.268) (width 0.153) (layer "B.Cu") (net 113) (tstamp 5778e10e-3347-4b63-bfde-51d8183229b0)) - (segment (start 153.162 90.678) (end 153.162 83.058) (width 0.153) (layer "B.Cu") (net 113) (tstamp 75fcbf4d-8391-4d84-9d17-1059e59f3431)) - (segment (start 96.434011 101.685989) (end 96.434011 82.127989) (width 0.153) (layer "B.Cu") (net 113) (tstamp 876e02d5-b6b2-43de-8108-a8160b701ea6)) - (segment (start 153.162 83.058) (end 152.146 82.042) (width 0.153) (layer "B.Cu") (net 113) (tstamp 89660022-f6f0-4545-a85f-dcf19348066a)) - (segment (start 96.434011 82.127989) (end 96.774 81.788) (width 0.153) (layer "B.Cu") (net 113) (tstamp 91da706f-249e-44c9-9298-6fef32e6c1c4)) - (segment (start 153.162 132.334) (end 153.162 116.1645) (width 0.153) (layer "B.Cu") (net 113) (tstamp 925149ee-9813-4ee2-beb6-10077cea9328)) - (segment (start 92.71 121.92) (end 92.71 106.68) (width 0.153) (layer "B.Cu") (net 113) (tstamp 93d8d71a-481e-4c79-81c0-1a0f17959d8f)) - (segment (start 96.52 101.771978) (end 96.434011 101.685989) (width 0.153) (layer "B.Cu") (net 113) (tstamp cad34b51-52ee-4e43-ad54-a47d49d1d043)) - (segment (start 101.320022 74.797) (end 101.320022 81.254022) (width 0.153) (layer "B.Cu") (net 113) (tstamp d0507fed-a45c-4d4c-aa4b-b07475ef9ed8)) - (segment (start 100.244011 73.720989) (end 101.320022 74.797) (width 0.153) (layer "B.Cu") (net 113) (tstamp dd476558-fb20-4b18-bc5f-f843ae82f6a6)) - (segment (start 151.638 109.728) (end 151.638 92.202) (width 0.153) (layer "B.Cu") (net 113) (tstamp decb5701-61a7-4218-8f2c-3615ccfbec72)) - (segment (start 153.0755 116.078) (end 153.0755 114.3865) (width 0.153) (layer "B.Cu") (net 113) (tstamp e8254be0-76c7-4892-8297-50e42dd1f8c0)) - (segment (start 101.320022 81.254022) (end 101.6 81.534) (width 0.153) (layer "B.Cu") (net 113) (tstamp efa25fd4-41b5-4cd0-ace4-81164170d0c1)) - (segment (start 156.718 134.796449) (end 156.329749 134.796449) (width 0.153) (layer "F.Cu") (net 114) (tstamp 0e9aaf55-7847-41c7-922d-4f56c7cebba5)) - (segment (start 145.034 85.09) (end 103.378 85.09) (width 0.153) (layer "F.Cu") (net 114) (tstamp 30ec1a80-9ff7-4c67-954e-2b839c05dfad)) - (segment (start 176.952011 133.684989) (end 175.840551 134.796449) (width 0.153) (layer "F.Cu") (net 114) (tstamp 3988fc91-b192-4e37-ae82-68fc98b409b0)) - (segment (start 156.329749 134.796449) (end 155.985289 134.451989) (width 0.153) (layer "F.Cu") (net 114) (tstamp 6672bc86-9a6e-457b-9a02-ffe31f86125d)) - (segment (start 175.840551 134.796449) (end 156.718 134.796449) (width 0.153) (layer "F.Cu") (net 114) (tstamp a2198995-0e6f-4e71-9b8f-826cedd944cf)) - (segment (start 150.388969 134.874) (end 146.812 134.874) (width 0.153) (layer "F.Cu") (net 114) (tstamp b2a1d165-b631-4582-b146-fe6c0101445c)) - (segment (start 150.81098 134.451989) (end 150.388969 134.874) (width 0.153) (layer "F.Cu") (net 114) (tstamp d2bafc08-f68d-4250-8149-439a4e4b9175)) - (segment (start 155.985289 134.451989) (end 150.81098 134.451989) (width 0.153) (layer "F.Cu") (net 114) (tstamp d96d5cbd-beec-4148-a5ab-e369b04f8490)) - (via (at 103.378 85.09) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 114) (tstamp 1de075ba-a0a9-4b75-af87-9e41190a9b52)) - (via (at 145.034 85.09) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 114) (tstamp 3c64c62f-0c2e-4652-a086-5b5213a12b7a)) - (via (at 146.812 134.874) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 114) (tstamp 82bd64f5-9495-410e-ab5f-ed6d55f9a715)) - (segment (start 145.291989 102.111989) (end 145.291989 85.347989) (width 0.153) (layer "B.Cu") (net 114) (tstamp 19db1ab7-ce26-4d8d-8d02-dc396aa28449)) - (segment (start 145.291989 85.347989) (end 145.034 85.09) (width 0.153) (layer "B.Cu") (net 114) (tstamp 24a06175-f54a-4a74-8f7b-3a9f1c759693)) - (segment (start 102.784011 84.496011) (end 102.784011 83.397989) (width 0.153) (layer "B.Cu") (net 114) (tstamp 4e8cb0b4-f006-4915-8649-0171fbcae19f)) - (segment (start 145.542 102.362) (end 145.291989 102.111989) (width 0.153) (layer "B.Cu") (net 114) (tstamp a1837e5a-cc51-4a64-a0b4-8e98881c9ed1)) - (segment (start 146.812 129.286) (end 146.05 128.524) (width 0.153) (layer "B.Cu") (net 114) (tstamp c3c556f2-b060-479f-937a-4cc0b84ea190)) - (segment (start 145.542 128.016) (end 145.542 102.362) (width 0.153) (layer "B.Cu") (net 114) (tstamp ca56bbd0-ac32-443b-83ad-99f949d43442)) - (segment (start 146.812 134.874) (end 146.812 129.286) (width 0.153) (layer "B.Cu") (net 114) (tstamp d78b29ca-2a56-4bd8-8482-af0bfc9a2224)) - (segment (start 103.378 85.09) (end 102.784011 84.496011) (width 0.153) (layer "B.Cu") (net 114) (tstamp f654263f-9383-488a-b3e6-66be7b67b252)) - (segment (start 146.05 128.524) (end 145.542 128.016) (width 0.153) (layer "B.Cu") (net 114) (tstamp f6dda2c2-3c76-424d-89b9-c989a4bc5702)) - (segment (start 135.636 55.88) (end 134.728 56.788) (width 0.153) (layer "F.Cu") (net 115) (tstamp 1ccef4f7-f481-4c47-8f4b-097532d6d3ee)) - (segment (start 79.864 56.788) (end 78.156011 58.495989) (width 0.153) (layer "F.Cu") (net 115) (tstamp 8d742335-7112-4714-9cbd-54718291a200)) - (segment (start 134.728 56.788) (end 79.864 56.788) (width 0.153) (layer "F.Cu") (net 115) (tstamp cc9fac93-e823-48ae-bf28-09621c40636f)) - (via (at 135.636 55.88) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 115) (tstamp 6cdf23b4-b128-424a-8038-8c41c03ad3ad)) - (segment (start 135.804011 56.048011) (end 135.636 55.88) (width 0.153) (layer "B.Cu") (net 115) (tstamp 75f4eabb-66f7-4ee7-b687-a0c42b65ba23)) - (segment (start 135.804011 58.480989) (end 135.804011 56.048011) (width 0.153) (layer "B.Cu") (net 115) (tstamp cab57dc3-0029-43ee-951e-3ff4d79aef60)) - (segment (start 79.232022 64.652) (end 138.04 64.652) (width 0.153) (layer "F.Cu") (net 116) (tstamp 1ebf2cda-eac1-4e48-8ba4-6bd1ee36da91)) - (segment (start 138.04 64.652) (end 138.344011 64.347989) (width 0.153) (layer "F.Cu") (net 116) (tstamp d6071e8d-b2ae-4b78-9652-63391928c901)) - (segment (start 78.156011 63.575989) (end 79.232022 64.652) (width 0.153) (layer "F.Cu") (net 116) (tstamp e0908e49-4cbd-4b60-a7f7-786f055fa7f1)) - (via (at 138.344011 64.347989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 116) (tstamp 52f30898-0df3-4751-aaad-5c10e93a4adb)) - (segment (start 138.344011 64.347989) (end 138.344011 58.480989) (width 0.153) (layer "B.Cu") (net 116) (tstamp 845a968c-bec1-4f26-810d-79e25cd9a586)) - (segment (start 100.194 69.732) (end 100.244011 69.681989) (width 0.153) (layer "F.Cu") (net 117) (tstamp aaf2931e-d59a-40ce-9d55-4129334b9866)) - (segment (start 79.232022 69.732) (end 100.194 69.732) (width 0.153) (layer "F.Cu") (net 117) (tstamp bed34c58-a4e4-46c5-bf59-d9cdc2cb1022)) - (segment (start 78.156011 68.655989) (end 79.232022 69.732) (width 0.153) (layer "F.Cu") (net 117) (tstamp c833344e-68f4-49ea-986a-f28d5218b539)) - (via (at 100.244011 69.681989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 117) (tstamp 2741c423-0e0e-4208-864d-0e914805989c)) - (segment (start 100.244011 69.681989) (end 100.244011 58.480989) (width 0.153) (layer "B.Cu") (net 117) (tstamp 4261a3fd-61d8-42e4-bfe1-2ffd5c266079)) - (segment (start 85.776011 71.195989) (end 103.028011 71.195989) (width 0.153) (layer "F.Cu") (net 118) (tstamp 0f3f4d09-d9eb-4bb4-8f36-e16b0c814b14)) - (segment (start 103.028011 71.195989) (end 103.038011 71.205989) (width 0.153) (layer "F.Cu") (net 118) (tstamp c9928d47-0ea2-497d-aa63-d8628df554f4)) - (via (at 103.038011 71.205989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 118) (tstamp 4cf18d75-78fe-4d4a-9087-d5e595e5fd6b)) - (segment (start 102.784011 70.951989) (end 102.784011 58.480989) (width 0.153) (layer "B.Cu") (net 118) (tstamp 28535a45-3d17-4d92-bd63-d48b0620ed62)) - (segment (start 103.038011 71.205989) (end 102.784011 70.951989) (width 0.153) (layer "B.Cu") (net 118) (tstamp 73760ff2-afba-4b21-8b1d-e922e48a4daa)) - (segment (start 85.776011 66.115989) (end 107.464 66.115989) (width 0.153) (layer "F.Cu") (net 119) (tstamp 0a8c9431-c442-4446-af96-dbc787b35f6c)) - (segment (start 107.464 66.115989) (end 107.864011 65.715978) (width 0.153) (layer "F.Cu") (net 119) (tstamp 4ad424d6-8980-420a-a40a-4fefc1109bea)) - (via (at 107.864011 65.715978) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 119) (tstamp 73ee5f92-0b91-489f-8941-c647b58e9a3d)) - (segment (start 107.864011 65.715978) (end 107.864011 58.480989) (width 0.153) (layer "B.Cu") (net 119) (tstamp fa16f3ab-60b0-407e-ba75-2839523bcc58)) - (segment (start 154.157031 135.148969) (end 153.67 135.636) (width 0.153) (layer "F.Cu") (net 120) (tstamp 12e6a1a7-b0f9-4a64-a94d-7872e5e6da44)) - (segment (start 119.466 115.824) (end 123.19 115.824) (width 0.153) (layer "F.Cu") (net 120) (tstamp 18992020-375e-47b6-bfbe-9123e8f760c3)) - (segment (start 153.924 119.126) (end 154.065009 119.267009) (width 0.153) (layer "F.Cu") (net 120) (tstamp 27d81d6f-e912-40e5-99a8-87b9df2db0b8)) - (segment (start 126.887009 119.521009) (end 154.065009 119.521009) (width 0.153) (layer "F.Cu") (net 120) (tstamp 5a6ef91f-deac-4d46-b317-13aa57e49f0c)) - (segment (start 98.99998 119.82798) (end 119.01802 119.82798) (width 0.153) (layer "F.Cu") (net 120) (tstamp 5ae18a5b-9ac1-4436-b060-0e21c04b8307)) - (segment (start 154.065009 119.267009) (end 154.065009 119.521009) (width 0.153) (layer "F.Cu") (net 120) (tstamp 7ccf26f8-c13a-479c-9e7f-e9d556344325)) - (segment (start 170.010309 135.148969) (end 154.157031 135.148969) (width 0.153) (layer "F.Cu") (net 120) (tstamp 8f2a7c35-f5f3-4a23-9b22-313737e1ebcb)) - (segment (start 95.31002 119.82798) (end 98.99998 119.82798) (width 0.153) (layer "F.Cu") (net 120) (tstamp a2c5166f-11c3-442e-b882-b1c70652e85c)) - (segment (start 154.065009 119.521009) (end 156.562529 119.521009) (width 0.153) (layer "F.Cu") (net 120) (tstamp ac3846b8-b9ae-429b-96a4-77b2654ef2fa)) - (segment (start 94.234 120.904) (end 95.31002 119.82798) (width 0.153) (layer "F.Cu") (net 120) (tstamp b05c0657-5a37-485e-adea-fa0ebfc933b9)) - (segment (start 123.19 115.824) (end 126.887009 119.521009) (width 0.153) (layer "F.Cu") (net 120) (tstamp ccff3b88-fb8c-4e75-a673-9cd93e328bbe)) - (segment (start 156.562529 119.521009) (end 157.38928 118.694258) (width 0.153) (layer "F.Cu") (net 120) (tstamp d1fea838-030d-4a43-b0a2-0be620d60b63)) - (segment (start 176.952011 136.224989) (end 175.875991 135.148969) (width 0.153) (layer "F.Cu") (net 120) (tstamp d92b146f-35bb-4be8-a1d2-a14eb0da4923)) - (segment (start 175.875991 135.148969) (end 170.010309 135.148969) (width 0.153) (layer "F.Cu") (net 120) (tstamp e9f3f2ba-f30c-40a0-b769-e0df77b56488)) - (segment (start 119.01802 119.82798) (end 119.466 119.38) (width 0.153) (layer "F.Cu") (net 120) (tstamp fab6a35e-a002-4fc3-9a38-e0d6b14cd821)) - (via (at 119.466 115.824) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 120) (tstamp 57b0f576-79aa-463e-bfd4-75aebbf4bdfe)) - (via (at 153.924 119.126) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 120) (tstamp 9881478c-760d-4061-be9d-086d8cf7b51c)) - (via (at 153.67 135.636) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 120) (tstamp 9f361b55-17fe-47b5-8223-c2856b77ec6d)) - (via (at 98.99998 119.82798) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 120) (tstamp e834efda-792d-48b9-9ff6-1ee4395753db)) - (via (at 119.466 119.38) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 120) (tstamp fd72a07a-0723-448e-ac62-5d70dade8cad)) - (segment (start 101.320022 112.691689) (end 99.314 114.697711) (width 0.153) (layer "B.Cu") (net 120) (tstamp 47a6bb92-393c-4880-bc41-6fbeebb1085f)) - (segment (start 153.838011 119.211989) (end 153.924 119.126) (width 0.153) (layer "B.Cu") (net 120) (tstamp 4ee747f1-56e6-45e5-b119-936102fe8dae)) - (segment (start 153.67 135.636) (end 153.838011 135.467989) (width 0.153) (layer "B.Cu") (net 120) (tstamp 62a80cae-386d-4363-b83c-4962e2660a9c)) - (segment (start 99.314 114.697711) (end 99.314 119.51396) (width 0.153) (layer "B.Cu") (net 120) (tstamp 733872bb-4ed6-4607-9c65-84cf5f641c2a)) - (segment (start 102.784011 81.876279) (end 101.320022 83.340268) (width 0.153) (layer "B.Cu") (net 120) (tstamp 80adc1d9-a2d7-416a-895f-c3c02ff05f38)) - (segment (start 99.314 119.51396) (end 98.99998 119.82798) (width 0.153) (layer "B.Cu") (net 120) (tstamp 9ac4d1d1-26b5-4cdd-8da8-c51128ddcab6)) - (segment (start 102.784011 73.720989) (end 102.784011 81.876279) (width 0.153) (layer "B.Cu") (net 120) (tstamp c2c55c61-f56f-40e6-9377-b1b1bcd95f57)) - (segment (start 119.466 119.38) (end 119.466 115.824) (width 0.153) (layer "B.Cu") (net 120) (tstamp d23310e9-2661-4e80-80b4-eaa573465cac)) - (segment (start 153.838011 135.467989) (end 153.838011 119.211989) (width 0.153) (layer "B.Cu") (net 120) (tstamp d8c509a8-ebbf-4131-862d-690449a49ec6)) - (segment (start 101.320022 83.340268) (end 101.320022 112.691689) (width 0.153) (layer "B.Cu") (net 120) (tstamp f3b865b0-df8c-4a3e-95c0-74d1c974a228)) - (segment (start 135.198011 131.257989) (end 135.296011 131.159989) (width 0.153) (layer "F.Cu") (net 130) (tstamp 400beb0d-f554-4792-a85e-a3c3e5b510fd)) - (segment (start 130.440011 131.257989) (end 135.198011 131.257989) (width 0.153) (layer "F.Cu") (net 130) (tstamp 6d3f2f44-8a49-4ec9-8b3f-7cc3dbc7a4c7)) - (segment (start 127.900011 131.257989) (end 130.342011 133.699989) (width 0.153) (layer "F.Cu") (net 131) (tstamp 3c3963d0-f70f-4dc1-babb-52ea4d342657)) - (segment (start 130.342011 133.699989) (end 135.296011 133.699989) (width 0.153) (layer "F.Cu") (net 131) (tstamp f33cfa25-414e-462d-9e72-92ccc2ef39a5)) - (segment (start 153.340011 68.396989) (end 155.616011 66.120989) (width 0.153) (layer "F.Cu") (net 134) (tstamp 617e57e5-6da7-4b33-99f5-2328407dbc50)) - (segment (start 156.972 77.47) (end 169.754022 77.47) (width 0.153) (layer "F.Cu") (net 134) (tstamp ae262540-7af5-49dc-96cd-e27adbbeb526)) - (segment (start 151.552011 68.396989) (end 153.340011 68.396989) (width 0.153) (layer "F.Cu") (net 134) (tstamp c8e43fa0-c9cf-48a3-a0a7-2efd9708172a)) - (segment (start 169.754022 77.47) (end 170.856011 78.571989) (width 0.153) (layer "F.Cu") (net 134) (tstamp d2752abe-16e7-48b8-87f8-bc40c7d1fb13)) - (via (at 156.972 77.47) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 134) (tstamp a9e5d77d-dd36-43a6-a63d-ab0093314659)) - (segment (start 156.972 67.476978) (end 156.972 77.47) (width 0.153) (layer "B.Cu") (net 134) (tstamp 05dfdf2e-deee-4d8c-a0ab-51ef04389bce)) - (segment (start 155.616011 66.120989) (end 156.972 67.476978) (width 0.153) (layer "B.Cu") (net 134) (tstamp 3612a680-bce9-4e23-bac1-329f55c3b73e)) - (segment (start 153.340011 65.856989) (end 155.616011 63.580989) (width 0.153) (layer "F.Cu") (net 135) (tstamp 3b237e01-701c-4af3-9a89-87defbe6b4c5)) - (segment (start 166.705511 73.66) (end 166.873522 73.491989) (width 0.153) (layer "F.Cu") (net 135) (tstamp 3fe406a2-101c-4872-93d8-121c5f7f223a)) - (segment (start 151.552011 65.856989) (end 153.340011 65.856989) (width 0.153) (layer "F.Cu") (net 135) (tstamp 60b0f6f4-d046-4c43-a3a6-27d2b37c92b0)) - (segment (start 166.873522 73.491989) (end 170.856011 73.491989) (width 0.153) (layer "F.Cu") (net 135) (tstamp 686f7eb4-7a50-47fa-add6-41550f4c51c4)) - (segment (start 166.47748 64.795969) (end 166.705511 65.024) (width 0.153) (layer "F.Cu") (net 135) (tstamp 74c6fd60-d4d7-465d-afaf-b9baf11f6074)) - (segment (start 156.830991 64.795969) (end 166.47748 64.795969) (width 0.153) (layer "F.Cu") (net 135) (tstamp 8f89fb18-044e-44a3-be27-73bc51acf0e2)) - (segment (start 155.616011 63.580989) (end 156.830991 64.795969) (width 0.153) (layer "F.Cu") (net 135) (tstamp ed5e7913-7730-4786-b058-3b210d69c234)) - (via (at 166.705511 73.66) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 135) (tstamp 3803ec7e-3a07-48d8-8c04-4e0f563a0b6b)) - (via (at 166.705511 65.024) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 135) (tstamp c46030ea-37d4-4955-ac81-af4ae2cd7703)) - (segment (start 166.705511 65.024) (end 166.705511 73.66) (width 0.153) (layer "B.Cu") (net 135) (tstamp 2bb8662f-abf9-4395-9a2c-87171449dd4f)) - (segment (start 155.616011 61.040989) (end 156.805022 62.23) (width 0.153) (layer "F.Cu") (net 136) (tstamp 07da304c-1a27-4734-9b36-9bc279ee8727)) - (segment (start 156.805022 62.23) (end 166.878 62.23) (width 0.153) (layer "F.Cu") (net 136) (tstamp 4b618a16-d9d4-4b87-9cb0-5f797f58b3d6)) - (segment (start 167.471989 68.411989) (end 170.856011 68.411989) (width 0.153) (layer "F.Cu") (net 136) (tstamp 4f94497c-2c91-40f6-909e-f53426a4a798)) - (segment (start 153.340011 63.316989) (end 155.616011 61.040989) (width 0.153) (layer "F.Cu") (net 136) (tstamp 6ecf9d71-fe10-42ea-bf07-5c511433e325)) - (segment (start 151.552011 63.316989) (end 153.340011 63.316989) (width 0.153) (layer "F.Cu") (net 136) (tstamp c651f1bc-48bc-49b3-ad44-3a59300ca80e)) - (segment (start 167.386 68.326) (end 167.471989 68.411989) (width 0.153) (layer "F.Cu") (net 136) (tstamp cf6c0c78-e50e-4617-9f73-2a22257e951b)) - (via (at 166.878 62.23) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 136) (tstamp 6ca3f9d4-73c2-4403-95c5-391ded83c5a7)) - (via (at 167.386 68.326) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 136) (tstamp 8f459228-a05a-4a09-b49f-46f5a3c902b8)) - (segment (start 167.386 64.516) (end 167.386 68.326) (width 0.153) (layer "B.Cu") (net 136) (tstamp 55ae0a43-3727-4944-a263-42289d67b5d2)) - (segment (start 166.878 62.23) (end 166.878 64.008) (width 0.153) (layer "B.Cu") (net 136) (tstamp 6446c51c-638f-46c2-bf1a-e50d5f8c9eba)) - (segment (start 166.878 64.008) (end 167.386 64.516) (width 0.153) (layer "B.Cu") (net 136) (tstamp e9719986-b321-4b86-ae34-9de68cad1345)) - (segment (start 156.805022 59.69) (end 166.705511 59.69) (width 0.153) (layer "F.Cu") (net 137) (tstamp 39a11ca3-d62b-4e02-8e84-3ce48469117e)) - (segment (start 167.64 63.246) (end 167.725989 63.331989) (width 0.153) (layer "F.Cu") (net 137) (tstamp 3c9d75a6-def7-4835-b1be-c7958703ae76)) - (segment (start 167.725989 63.331989) (end 170.856011 63.331989) (width 0.153) (layer "F.Cu") (net 137) (tstamp a0a65edd-8c9e-4af1-bac8-b8df8f9cfd0e)) - (segment (start 151.552011 60.776989) (end 153.340011 60.776989) (width 0.153) (layer "F.Cu") (net 137) (tstamp a2c273fa-7ac0-42ed-a9b2-dfa782fecb5d)) - (segment (start 153.340011 60.776989) (end 155.616011 58.500989) (width 0.153) (layer "F.Cu") (net 137) (tstamp c50e49aa-146c-4b34-ad61-ab4542c3f785)) - (segment (start 155.616011 58.500989) (end 156.805022 59.69) (width 0.153) (layer "F.Cu") (net 137) (tstamp eca21109-af97-417e-9838-2563967f1ead)) - (via (at 166.705511 59.69) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 137) (tstamp 5fed948c-4637-40d8-9ff2-07416762338e)) - (via (at 167.64 63.246) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 137) (tstamp ebcc22b2-3d37-4027-adbf-71594c66a596)) - (segment (start 167.132 61.214) (end 167.64 61.722) (width 0.153) (layer "B.Cu") (net 137) (tstamp 28d50917-6dc2-40e3-9196-582b703a7ee3)) - (segment (start 166.705511 59.69) (end 167.132 60.116489) (width 0.153) (layer "B.Cu") (net 137) (tstamp 8294a170-576f-4b1e-8bf8-58d15712a78d)) - (segment (start 167.132 60.116489) (end 167.132 61.214) (width 0.153) (layer "B.Cu") (net 137) (tstamp d1fa1c2f-5a01-4dba-be86-f620cd2f139e)) - (segment (start 167.64 61.722) (end 167.64 63.246) (width 0.153) (layer "B.Cu") (net 137) (tstamp f54dcf18-11ee-426d-b656-54daa5f79835)) - (segment (start 173.2763 100.33) (end 170.1448 103.4615) (width 0.153) (layer "F.Cu") (net 138) (tstamp 20cd1075-923b-4d9c-9669-8abdad518d27)) - (segment (start 170.1448 103.4615) (end 139.7 103.4615) (width 0.153) (layer "F.Cu") (net 138) (tstamp fd97a34a-7ab3-4217-885b-c9443e0bde3f)) - (via (at 139.7 103.4615) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 138) (tstamp abe739d9-3714-4d76-98a0-21f3ca0fd367)) - (segment (start 136.372022 135.163978) (end 135.296011 136.239989) (width 0.153) (layer "B.Cu") (net 138) (tstamp 0cb2ae97-0542-4447-9280-28eb5a854376)) - (segment (start 136.372022 121.969956) (end 136.372022 135.163978) (width 0.153) (layer "B.Cu") (net 138) (tstamp 1e86c3c2-a1e0-4ee4-8a37-5d5be08d2691)) - (segment (start 139.7 118.641978) (end 136.372022 121.969956) (width 0.153) (layer "B.Cu") (net 138) (tstamp 8d71514b-4044-4455-a15c-ed3ddeac46ef)) - (segment (start 139.7 103.4615) (end 139.7 118.641978) (width 0.153) (layer "B.Cu") (net 138) (tstamp c573884d-a470-43f2-a98a-fd61956f1629)) - (segment (start 64.516 119.38) (end 66.543 119.38) (width 0.153) (layer "F.Cu") (net 139) (tstamp 79f396a4-8f91-4be0-90fd-229cff8c6df7)) - (segment (start 119.38 100.076) (end 70.866 100.076) (width 0.153) (layer "F.Cu") (net 139) (tstamp 7bfc3866-772c-4278-b062-fefdda3380ae)) - (segment (start 70.866 100.076) (end 69.85 101.092) (width 0.153) (layer "F.Cu") (net 139) (tstamp 9eab2a74-7819-4f65-8cc6-c6bfea329d49)) - (via (at 119.38 100.076) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 139) (tstamp c90abac9-738b-4b05-98c4-dec0f8dce5c2)) - (via (at 69.85 101.092) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 139) (tstamp f50eef54-9115-430e-be15-3fadcb876fe5)) - (segment (start 123.104011 83.397989) (end 123.104011 90.450014) (width 0.153) (layer "B.Cu") (net 139) (tstamp 0bb7a5a7-02cb-432a-a1b2-55d75dbc750e)) - (segment (start 69.596 115.316) (end 69.596 117.23) (width 0.153) (layer "B.Cu") (net 139) (tstamp 2ed8cd91-74d8-45d4-b0c5-06683e7282b0)) - (segment (start 119.38 94.174025) (end 119.38 100.076) (width 0.153) (layer "B.Cu") (net 139) (tstamp 3e54d026-4886-49f4-bca7-bdd1052cee34)) - (segment (start 69.875051 115.036949) (end 69.596 115.316) (width 0.153) (layer "B.Cu") (net 139) (tstamp 7100bd08-f72d-4b75-835f-73b64d2f50c2)) - (segment (start 69.875051 101.117051) (end 69.875051 115.036949) (width 0.153) (layer "B.Cu") (net 139) (tstamp 816be861-4d47-43c8-aa23-6f66dc65aef7)) - (segment (start 69.596 117.23) (end 67.446 119.38) (width 0.153) (layer "B.Cu") (net 139) (tstamp 8996b77c-1998-47a3-b99d-b5030ad6cf9b)) - (segment (start 69.85 101.092) (end 69.875051 101.117051) (width 0.153) (layer "B.Cu") (net 139) (tstamp 9ae454cf-b0fe-4984-af9e-03110ed1fc03)) - (segment (start 123.104011 90.450014) (end 119.38 94.174025) (width 0.153) (layer "B.Cu") (net 139) (tstamp b46220ab-fbf0-4c4a-a131-ec586cd8f162)) - (segment (start 67.446 119.38) (end 66.543 119.38) (width 0.153) (layer "B.Cu") (net 139) (tstamp c3e74f24-285b-4b88-8de5-51b7fdcff2d0)) - (segment (start 118.532225 89.231293) (end 117.593518 90.17) (width 0.153) (layer "F.Cu") (net 140) (tstamp 0ddf941e-ebf8-4e6e-aab7-dedacfd2d9d5)) - (segment (start 106.172 90.17) (end 105.918 90.424) (width 0.153) (layer "F.Cu") (net 140) (tstamp 11667559-03d7-4111-a527-3a569f0b5cad)) - (segment (start 71.752953 88.9) (end 71.423797 89.229156) (width 0.153) (layer "F.Cu") (net 140) (tstamp 52890491-f19f-4a4f-a80d-83853f5fedee)) - (segment (start 67.818 117.348) (end 66.543 117.348) (width 0.153) (layer "F.Cu") (net 140) (tstamp 627a58ad-c76a-49c2-92f7-2023c5dbb653)) - (segment (start 117.593518 90.17) (end 106.172 90.17) (width 0.153) (layer "F.Cu") (net 140) (tstamp 62a32971-4a70-44c4-af89-37bfc73aa9a2)) - (segment (start 103.378 88.9) (end 71.752953 88.9) (width 0.153) (layer "F.Cu") (net 140) (tstamp 697862bf-7f29-44ec-b3d9-72bb90eaba75)) - (segment (start 105.918 90.424) (end 104.902 90.424) (width 0.153) (layer "F.Cu") (net 140) (tstamp 7bcc6940-b69f-4cab-84cc-c8fa8471bb19)) - (segment (start 104.902 90.424) (end 103.378 88.9) (width 0.153) (layer "F.Cu") (net 140) (tstamp 7bf5826a-ae0c-4c4d-9a31-eeb8c95f8509)) - (segment (start 64.516 117.348) (end 66.543 117.348) (width 0.153) (layer "F.Cu") (net 140) (tstamp f6528876-4fca-43f8-971c-c63baf711f46)) - (via (at 67.818 117.348) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 140) (tstamp 7af706b8-a615-4840-9879-dffb873c669d)) - (via (at 118.532225 89.231293) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 140) (tstamp b665857f-f0f8-4aae-a88a-1527a895bd09)) - (via (at 71.423797 89.229156) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 140) (tstamp e2204e47-3b71-49cf-bd14-1d134f42bbe3)) - (segment (start 69.088 113.284) (end 67.818 114.554) (width 0.153) (layer "B.Cu") (net 140) (tstamp 15c1cf96-3af4-4adf-8856-63731c10f1d2)) - (segment (start 69.522531 112.849469) (end 69.088 113.284) (width 0.153) (layer "B.Cu") (net 140) (tstamp 28761a28-e279-4b79-932e-49b7b1ccf67e)) - (segment (start 68.93252 106.68) (end 69.522531 107.270011) (width 0.153) (layer "B.Cu") (net 140) (tstamp 329442f7-901c-4589-87b9-378ef25c7c2e)) - (segment (start 118.872 88.522025) (end 118.872 88.9) (width 0.153) (layer "B.Cu") (net 140) (tstamp 4ed5a070-3c19-4b8f-8131-75bdf73ae17b)) - (segment (start 68.93252 91.720433) (end 68.93252 106.68) (width 0.153) (layer "B.Cu") (net 140) (tstamp 52610313-f7e3-4703-b654-c020d727370c)) - (segment (start 118.540707 89.231293) (end 118.532225 89.231293) (width 0.153) (layer "B.Cu") (net 140) (tstamp 5b12b72a-9709-40da-8d06-c791c55cc240)) - (segment (start 71.423797 89.229156) (end 68.93252 91.720433) (width 0.153) (layer "B.Cu") (net 140) (tstamp 5c41986d-f2cb-491b-a3b5-c111510d7129)) - (segment (start 69.522531 107.270011) (end 69.522531 112.849469) (width 0.153) (layer "B.Cu") (net 140) (tstamp 8aa3d455-e002-4d5f-9978-8537774dc9ec)) - (segment (start 120.564011 83.397989) (end 120.564011 86.830014) (width 0.153) (layer "B.Cu") (net 140) (tstamp 91903e63-0444-4ae4-bc48-3375ae94318c)) - (segment (start 120.564011 86.830014) (end 118.872 88.522025) (width 0.153) (layer "B.Cu") (net 140) (tstamp cf238f21-75aa-4f1e-9b3d-0e18054793d4)) - (segment (start 118.872 88.9) (end 118.540707 89.231293) (width 0.153) (layer "B.Cu") (net 140) (tstamp e2d34d9b-50f8-46f1-8caa-24f942aaa5f9)) - (segment (start 67.818 114.554) (end 67.818 117.348) (width 0.153) (layer "B.Cu") (net 140) (tstamp e97cfab3-a441-44f4-bdff-207fe206c24e)) - (segment (start 109.642 85.852) (end 91.44 85.852) (width 0.153) (layer "F.Cu") (net 141) (tstamp 225595bc-b1cf-4692-9d8f-bc0f518ee9c7)) - (segment (start 69.342 85.852) (end 69.088 86.106) (width 0.153) (layer "F.Cu") (net 141) (tstamp 6f6d7062-aafe-488e-936b-b3488fa9d2ea)) - (segment (start 109.728 85.766) (end 109.642 85.852) (width 0.153) (layer "F.Cu") (net 141) (tstamp 721e791e-f5f0-4f65-9011-af75ebea4021)) - (segment (start 64.516 115.316) (end 66.543 115.316) (width 0.153) (layer "F.Cu") (net 141) (tstamp a2547d4a-345c-4659-9f08-4bef024ed1a5)) - (segment (start 91.44 85.852) (end 69.342 85.852) (width 0.153) (layer "F.Cu") (net 141) (tstamp b459ab65-558d-4f4a-b0b5-55789e099862)) - (via (at 69.088 86.106) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 141) (tstamp 83f004b2-ac53-4521-bdad-57591b955885)) - (via (at 109.728 85.766) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 141) (tstamp d5a30424-12f1-45b4-8289-ecc1126fc6e0)) - (segment (start 69.088 86.106) (end 65.516989 89.677011) (width 0.153) (layer "B.Cu") (net 141) (tstamp 026259c8-2858-4142-8ecb-715e9ba37acd)) - (segment (start 110.404011 83.397989) (end 110.404011 85.089989) (width 0.153) (layer "B.Cu") (net 141) (tstamp a5531d6b-5b66-40c1-8dac-fbe0dae1a98e)) - (segment (start 110.404011 85.089989) (end 109.728 85.766) (width 0.153) (layer "B.Cu") (net 141) (tstamp bee1ed75-7eb2-4c4a-b813-dfa171b56c24)) - (segment (start 65.516989 89.677011) (end 65.516989 114.315011) (width 0.153) (layer "B.Cu") (net 141) (tstamp dcdf918a-a31d-4e01-be07-ccc07f845d70)) - (segment (start 65.516989 114.315011) (end 64.516 115.316) (width 0.153) (layer "B.Cu") (net 141) (tstamp e6040b03-2b0c-42ea-bdaa-f9c2ce6a08c6)) - (segment (start 112.729576 86.937636) (end 112.40594 86.614) (width 0.153) (layer "F.Cu") (net 142) (tstamp 212a6a11-e42e-4eaf-8f32-08eacd4900d9)) - (segment (start 69.85 86.614) (end 69.342 87.122) (width 0.153) (layer "F.Cu") (net 142) (tstamp 301ba014-6c23-46ea-bde2-89b5cf7f87b8)) - (segment (start 99.822 86.614) (end 69.85 86.614) (width 0.153) (layer "F.Cu") (net 142) (tstamp a20b0812-51f9-416f-a8a8-751dc17080b5)) - (segment (start 112.40594 86.614) (end 99.822 86.614) (width 0.153) (layer "F.Cu") (net 142) (tstamp dffb2880-4bb8-44e6-80a2-927cfeab82fc)) - (segment (start 64.516 113.284) (end 66.543 113.284) (width 0.153) (layer "F.Cu") (net 142) (tstamp f7571c27-5c21-4c68-9660-be4ade61b9b8)) - (via (at 69.342 87.122) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 142) (tstamp 350a34a0-b45e-441f-b220-f407a3cf34a4)) - (via (at 112.729576 86.937636) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 142) (tstamp 5f018b0d-5f1b-420f-bf09-c733f687f0ec)) - (segment (start 112.944011 83.397989) (end 112.607989 83.734011) (width 0.153) (layer "B.Cu") (net 142) (tstamp 2c7102cc-2728-4f7f-986d-ea2892476887)) - (segment (start 67.31 113.284) (end 66.543 113.284) (width 0.153) (layer "B.Cu") (net 142) (tstamp 6c29bdf7-686d-4c03-b0f7-9214779f9cdf)) - (segment (start 69.342 87.122) (end 67.818 88.646) (width 0.153) (layer "B.Cu") (net 142) (tstamp a86b70ea-9777-484e-a593-793116f5ccf2)) - (segment (start 67.818 88.646) (end 67.818 112.776) (width 0.153) (layer "B.Cu") (net 142) (tstamp c1d4d116-f501-40f9-bd92-be87c0b834dc)) - (segment (start 112.607989 83.734011) (end 112.607989 86.816049) (width 0.153) (layer "B.Cu") (net 142) (tstamp d9bc7f59-8b31-43c0-bfc0-dad4aaf5d9ff)) - (segment (start 112.607989 86.816049) (end 112.729576 86.937636) (width 0.153) (layer "B.Cu") (net 142) (tstamp f4b50fa3-1e69-4b70-88dd-cdb47a0ebd46)) - (segment (start 67.818 112.776) (end 67.31 113.284) (width 0.153) (layer "B.Cu") (net 142) (tstamp f940a322-2e9d-4422-b642-cbaee0fdd8d3)) - (segment (start 115.316 86.868) (end 114.808 87.376) (width 0.153) (layer "F.Cu") (net 143) (tstamp 2f2ebad1-c71a-4d6b-a3a1-f08abc951a13)) - (segment (start 114.808 87.376) (end 113.538 87.376) (width 0.153) (layer "F.Cu") (net 143) (tstamp 46dc0ee4-eef5-47d8-a8fa-fa737a9d248c)) - (segment (start 113.538 87.376) (end 113.284 87.63) (width 0.153) (layer "F.Cu") (net 143) (tstamp 49d85621-e8fb-4509-9dc7-b80bdee489b9)) - (segment (start 70.24751 87.63) (end 70.048755 87.828755) (width 0.153) (layer "F.Cu") (net 143) (tstamp 4cff42f1-a63d-4b34-97a3-a87ad00411ed)) - (segment (start 68.494 111.252) (end 66.543 111.252) (width 0.153) (layer "F.Cu") (net 143) (tstamp 77ed4aef-5705-4cc4-899c-757fec668cd3)) - (segment (start 112.522 87.63) (end 70.24751 87.63) (width 0.153) (layer "F.Cu") (net 143) (tstamp 970fb40a-f0e1-4ba4-9520-5f978fe3ce57)) - (segment (start 113.284 87.63) (end 112.522 87.63) (width 0.153) (layer "F.Cu") (net 143) (tstamp dc125375-56f4-49f7-9ef1-a627a4bc8e34)) - (segment (start 64.516 111.252) (end 66.543 111.252) (width 0.153) (layer "F.Cu") (net 143) (tstamp f8fe32bc-8e66-4ea1-ba92-a160a9d697fc)) - (via (at 115.316 86.868) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 143) (tstamp 35b72dc3-83bf-4d25-bb50-df74b9991a65)) - (via (at 70.048755 87.828755) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 143) (tstamp ef759805-f7ca-4b25-aed1-e58c8e7f626a)) - (via (at 68.494 111.252) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 143) (tstamp f7942e59-cf67-4b2d-9365-937734f4c831)) - (segment (start 68.17052 89.70699) (end 68.17052 108.712) (width 0.153) (layer "B.Cu") (net 143) (tstamp 108ef117-ac5e-4600-b4e4-9a40f8f1b23d)) - (segment (start 68.17052 108.712) (end 68.17052 110.92852) (width 0.153) (layer "B.Cu") (net 143) (tstamp 47e07e02-e00a-4f38-94c4-60a53f710c2c)) - (segment (start 70.048755 87.828755) (end 68.17052 89.70699) (width 0.153) (layer "B.Cu") (net 143) (tstamp 6b1fd357-9da5-4e80-a1be-df4b4e23d73b)) - (segment (start 68.17052 110.92852) (end 68.494 111.252) (width 0.153) (layer "B.Cu") (net 143) (tstamp bc36ddf7-001f-4797-8866-a72199ef6b93)) - (segment (start 115.484011 83.397989) (end 115.484011 86.699989) (width 0.153) (layer "B.Cu") (net 143) (tstamp da1ac03c-c2dc-415f-85e1-6d08615ea5ab)) - (segment (start 115.484011 86.699989) (end 115.316 86.868) (width 0.153) (layer "B.Cu") (net 143) (tstamp ef9ebb1d-1fa3-45a4-bf1d-686a886062fb)) - (segment (start 117.456 88.646) (end 106.934 88.646) (width 0.153) (layer "F.Cu") (net 144) (tstamp 0b784fac-0df4-4190-a690-d32ad4fd5dd4)) - (segment (start 106.934 88.646) (end 105.664 89.916) (width 0.153) (layer "F.Cu") (net 144) (tstamp 417b34c8-2f9d-47e2-81a9-31ae5ad09c33)) - (segment (start 117.624 88.814) (end 117.456 88.646) (width 0.153) (layer "F.Cu") (net 144) (tstamp 4437b9e2-28a1-49d6-863f-f93b80e274c2)) - (segment (start 104.14 88.646) (end 103.889951 88.395951) (width 0.153) (layer "F.Cu") (net 144) (tstamp 61d5ba98-2294-4ee3-94a7-67a20208e998)) - (segment (start 105.41 89.916) (end 104.14 88.646) (width 0.153) (layer "F.Cu") (net 144) (tstamp 8cbddf8a-6bb0-407f-9843-9233236e0721)) - (segment (start 105.664 89.916) (end 105.41 89.916) (width 0.153) (layer "F.Cu") (net 144) (tstamp a0890f4f-13d0-47c3-b2a9-43a0bea341de)) - (segment (start 64.516 109.22) (end 66.543 109.22) (width 0.153) (layer "F.Cu") (net 144) (tstamp baa84e37-4cea-4da1-87ef-6fa2ca852029)) - (segment (start 103.889951 88.395951) (end 70.871733 88.395951) (width 0.153) (layer "F.Cu") (net 144) (tstamp ee34bb90-a36c-49a0-acab-9de8a81d0d52)) - (segment (start 68.84652 109.22) (end 66.543 109.22) (width 0.153) (layer "F.Cu") (net 144) (tstamp f1890433-bea6-4b77-b474-b08dd25694ec)) - (via (at 68.84652 109.22) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 144) (tstamp 1356e543-570b-4b2c-88ee-a2120bcae422)) - (via (at 70.871733 88.395951) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 144) (tstamp 466f07b6-1166-495b-9a48-cdd80efd43d8)) - (via (at 117.624 88.814) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 144) (tstamp fcb931a7-c959-4ca3-95a3-5be8d6076b4b)) - (segment (start 118.024011 83.397989) (end 118.024011 88.413989) (width 0.153) (layer "B.Cu") (net 144) (tstamp 02b0a95a-a5c1-4d74-b52c-2eeb6b332e00)) - (segment (start 118.024011 88.413989) (end 117.624 88.814) (width 0.153) (layer "B.Cu") (net 144) (tstamp 49ad7dd4-5e43-4ad0-a868-fd3ca9909e47)) - (segment (start 68.58 108.95348) (end 68.84652 109.22) (width 0.153) (layer "B.Cu") (net 144) (tstamp 759a662c-b51d-4fe3-b89e-8302f9c25136)) - (segment (start 68.58 90.932) (end 68.58 108.95348) (width 0.153) (layer "B.Cu") (net 144) (tstamp 7d53fe5d-743a-4821-bb1b-3dd3f8adfca3)) - (segment (start 70.871733 88.395951) (end 68.58 90.687684) (width 0.153) (layer "B.Cu") (net 144) (tstamp 9845d150-1855-4cde-8422-f04d6fdc571c)) - (segment (start 68.58 90.687684) (end 68.58 90.932) (width 0.153) (layer "B.Cu") (net 144) (tstamp ecfeeca2-9881-41d4-9ec9-33892228e844)) - (segment (start 56.891 127.508) (end 56.891 129.535) (width 0.25) (layer "F.Cu") (net 145) (tstamp 1333587b-1249-460c-8ecf-6640552106f2)) - (segment (start 56.891 129.535) (end 56.896 129.54) (width 0.25) (layer "F.Cu") (net 145) (tstamp 50ea97a0-ac13-4fa1-9f0e-ce1cab78ecbb)) - (segment (start 66.543 125.476) (end 57.404 125.476) (width 0.25) (layer "F.Cu") (net 145) (tstamp 72fbaf5a-15a2-44c9-a5ee-db3ea50c3a5a)) - (segment (start 56.891 125.989) (end 56.891 127.508) (width 0.25) (layer "F.Cu") (net 145) (tstamp bf41dd98-de14-4fec-b561-2fd80320ff97)) - (segment (start 57.404 125.476) (end 56.891 125.989) (width 0.25) (layer "F.Cu") (net 145) (tstamp cc6c37d9-61f4-4612-8658-95d052cd8dd5)) - (segment (start 125.297989 68.655989) (end 125.73 69.088) (width 0.153) (layer "F.Cu") (net 149) (tstamp 149bb241-6107-4377-b28e-1c175b9fbc32)) - (segment (start 79.844522 68.655989) (end 79.666511 68.834) (width 0.153) (layer "F.Cu") (net 149) (tstamp 4d08b4dd-0373-4cb2-9741-de325956913d)) - (segment (start 85.776011 68.655989) (end 125.297989 68.655989) (width 0.153) (layer "F.Cu") (net 149) (tstamp 5e0be134-6a66-451b-9cbb-33ffae57dc0a)) - (segment (start 85.776011 68.655989) (end 79.844522 68.655989) (width 0.153) (layer "F.Cu") (net 149) (tstamp 9a6810f5-342c-457e-bd5c-63a8b8889ca1)) - (via (at 125.73 69.088) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 149) (tstamp 5101cfb7-d40a-42c1-8d7b-c8ef769d1f4b)) - (via (at 79.666511 68.834) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 149) (tstamp f77486ef-3086-4cf3-beb8-995a39e8c782)) - (segment (start 76.239989 71.590301) (end 76.239989 83.605989) (width 0.153) (layer "B.Cu") (net 149) (tstamp 27e36ff1-3402-4bd5-a57e-7606b7b774b6)) - (segment (start 78.380533 70.119978) (end 77.710312 70.119978) (width 0.153) (layer "B.Cu") (net 149) (tstamp 29c0677c-5c04-4b31-9915-181840337e29)) - (segment (start 77.710312 70.119978) (end 76.239989 71.590301) (width 0.153) (layer "B.Cu") (net 149) (tstamp 3b70a57c-8e35-4bcb-bd65-e56191567ecb)) - (segment (start 126.720022 97.561978) (end 125.644011 98.637989) (width 0.153) (layer "B.Cu") (net 149) (tstamp 76950ea0-d3a8-4e6f-8105-c59122776499)) - (segment (start 84.7 67.579978) (end 85.776011 68.655989) (width 0.153) (layer "B.Cu") (net 149) (tstamp 7b0292d4-2ceb-4ac3-a9f4-e05169478370)) - (segment (start 126.720022 70.078022) (end 126.720022 97.561978) (width 0.153) (layer "B.Cu") (net 149) (tstamp 9d465175-e699-4a2c-a74a-51b5e5cb1daf)) - (segment (start 76.239989 83.605989) (end 77.216 84.582) (width 0.153) (layer "B.Cu") (net 149) (tstamp a2583a54-2f63-4105-b150-a85fa374a75b)) - (segment (start 84.7 64.652) (end 84.7 67.579978) (width 0.153) (layer "B.Cu") (net 149) (tstamp a26423e8-a742-43f7-974b-eb1262ad5e2e)) - (segment (start 125.73 69.088) (end 126.720022 70.078022) (width 0.153) (layer "B.Cu") (net 149) (tstamp a3932bf5-3291-4ec1-baf1-390141d8878c)) - (segment (start 79.666511 68.834) (end 78.380533 70.119978) (width 0.153) (layer "B.Cu") (net 149) (tstamp b2382dc7-a58b-42c3-bf27-8f1904165621)) - (segment (start 85.776011 63.575989) (end 84.7 64.652) (width 0.153) (layer "B.Cu") (net 149) (tstamp c00fa227-fbb0-4988-a227-88d383cd308b)) - (segment (start 145.968 100.076) (end 132.162022 100.076) (width 0.153) (layer "F.Cu") (net 150) (tstamp 23ee6b40-3b9c-4876-b8b5-01ae1c7e217d)) - (segment (start 143.51 125.476) (end 146.558 125.476) (width 0.153) (layer "F.Cu") (net 150) (tstamp 33a98190-8da1-4358-9671-71c733e24920)) - (segment (start 132.162022 100.076) (end 130.724011 98.637989) (width 0.153) (layer "F.Cu") (net 150) (tstamp 54dab9f3-801e-4991-bcd3-eee98a3ce42b)) - (segment (start 149.520011 126.064989) (end 147.146989 126.064989) (width 0.153) (layer "F.Cu") (net 150) (tstamp a08a5a9b-604a-429b-b03e-b0a51c8b3a18)) - (segment (start 147.146989 126.064989) (end 146.558 125.476) (width 0.153) (layer "F.Cu") (net 150) (tstamp b3d0fca7-cf90-476e-9b83-ce17c5530a28)) - (via (at 146.558 125.476) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 150) (tstamp 6bd49134-690b-483d-bd85-2ccfb7dac18b)) - (via (at 143.51 125.476) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 150) (tstamp 988050a9-aa6e-42fd-9c26-f740a02bf215)) - (via (at 145.968 100.076) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 150) (tstamp ad1cb49e-0b4d-49bf-8e41-c62ba3062b7b)) - (segment (start 143.991986 116.051986) (end 143.991986 122.259989) (width 0.153) (layer "B.Cu") (net 150) (tstamp 14d06773-cca6-4e95-89cc-a9a4eb26ce3c)) - (segment (start 143.991986 122.259989) (end 143.51 122.741975) (width 0.153) (layer "B.Cu") (net 150) (tstamp 3c89105c-d41a-4456-91f0-9ef094f847d9)) - (segment (start 143.51 122.741975) (end 143.51 125.476) (width 0.153) (layer "B.Cu") (net 150) (tstamp 5d9a79ad-c69e-492a-a897-5d5762811551)) - (segment (start 145.967989 100.076011) (end 145.968 100.076) (width 0.153) (layer "B.Cu") (net 150) (tstamp 6d432170-d188-4ee2-a5be-ee0a39fca72f)) - (segment (start 145.967989 124.885989) (end 145.967989 100.076011) (width 0.153) (layer "B.Cu") (net 150) (tstamp d15d8fe5-17ca-4409-aa30-282225f3af5f)) - (segment (start 141.224 113.284) (end 143.991986 116.051986) (width 0.153) (layer "B.Cu") (net 150) (tstamp d450c1b6-a2c6-4015-a553-6a28a22df730)) - (segment (start 146.558 125.476) (end 145.967989 124.885989) (width 0.153) (layer "B.Cu") (net 150) (tstamp f61d7b21-e246-4ab2-8b49-9d2a9eda24d4)) - (segment (start 123.104011 98.637989) (end 123.104011 100.923989) (width 0.153) (layer "B.Cu") (net 151) (tstamp f2123d03-b307-4d93-99c6-536f4c1a1362)) - (segment (start 103.632 115.824) (end 101.6 113.792) (width 0.153) (layer "F.Cu") (net 152) (tstamp a65d31ba-082b-4e4d-b4fd-cfc57a038a7b)) - (segment (start 107.95 115.824) (end 103.632 115.824) (width 0.153) (layer "F.Cu") (net 152) (tstamp af3f9069-37ea-4c48-9bf7-f29dbeeca588)) - (segment (start 101.6 115.824) (end 104.14 118.364) (width 0.153) (layer "F.Cu") (net 153) (tstamp 4d8db566-01fe-47ba-b00e-3fd7c7b925c8)) - (segment (start 104.14 118.364) (end 107.95 118.364) (width 0.153) (layer "F.Cu") (net 153) (tstamp 7fc08243-5052-4499-a768-f184f51f05fc)) - (segment (start 123.19 128.524) (end 117.62798 128.524) (width 0.153) (layer "F.Cu") (net 154) (tstamp 6c8d28fe-c192-4804-9e42-a4c260418767)) - (segment (start 117.62798 128.524) (end 116.84 129.31198) (width 0.153) (layer "F.Cu") (net 154) (tstamp a9fc3d7b-b46b-4155-b4df-d6a1843c8a7d)) - (via (at 116.84 129.31198) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 154) (tstamp b05de7ca-a659-467a-84b1-52a60302fca4)) - (segment (start 116.84 129.31198) (end 116.84 143.51) (width 0.153) (layer "B.Cu") (net 154) (tstamp 36b98e31-3876-40da-8067-6274e9b9502f)) - (segment (start 123.19 110.744) (end 129.525 110.744) (width 0.153) (layer "F.Cu") (net 155) (tstamp 136243cf-518a-4b22-a809-e555cc85004e)) - (segment (start 112.776 105.918) (end 114.066011 107.208011) (width 0.153) (layer "F.Cu") (net 155) (tstamp 1eec8543-621f-4092-873a-1da3134d3489)) - (segment (start 129.525 110.744) (end 129.53 110.739) (width 0.153) (layer "F.Cu") (net 155) (tstamp 2a26c95f-56c4-4dd0-9834-93ede69767b0)) - (segment (start 134.61 110.739) (end 137.15 110.739) (width 0.153) (layer "F.Cu") (net 155) (tstamp 3a5f10dc-48e4-40de-aa20-1a3b6c3963f2)) - (segment (start 129.53 110.739) (end 132.07 110.739) (width 0.153) (layer "F.Cu") (net 155) (tstamp 45a464bd-89dc-4670-8cb6-465fa00b164f)) - (segment (start 114.066011 107.208011) (end 114.066011 108.224011) (width 0.153) (layer "F.Cu") (net 155) (tstamp 91627a62-5348-407c-80a9-afb7e23030c2)) - (segment (start 114.066011 108.224011) (end 116.586 110.744) (width 0.153) (layer "F.Cu") (net 155) (tstamp a86f77df-ac92-4476-b50e-4ef800599018)) - (segment (start 132.07 110.739) (end 134.61 110.739) (width 0.153) (layer "F.Cu") (net 155) (tstamp ea0edf99-dc98-4a03-a5c3-fc227dbd5d1e)) - (segment (start 116.586 110.744) (end 123.19 110.744) (width 0.153) (layer "F.Cu") (net 155) (tstamp f6817723-e2ba-4568-abc3-4eff60387083)) - (segment (start 128.016 125.984) (end 123.19 125.984) (width 0.153) (layer "F.Cu") (net 156) (tstamp 18521a35-75be-4ca8-973c-4c4d31c83cdb)) - (segment (start 128.27 125.73) (end 128.016 125.984) (width 0.153) (layer "F.Cu") (net 156) (tstamp 349c5424-554a-4af3-a494-98582698a2e7)) - (segment (start 170.856011 128.604989) (end 171.791022 129.54) (width 0.153) (layer "F.Cu") (net 156) (tstamp 37ed7359-18c4-4394-a3f3-6fb336c0bb27)) - (segment (start 171.45 143.51) (end 128.27 143.51) (width 0.153) (layer "F.Cu") (net 156) (tstamp 80cf8585-90ff-4f4e-a81f-4dbf7e59ef63)) - (segment (start 171.791022 129.54) (end 172.72 129.54) (width 0.153) (layer "F.Cu") (net 156) (tstamp 9b962d72-ec9b-4ad3-9844-454940a098f0)) - (via (at 172.72 129.54) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 156) (tstamp 4d3cff36-00dc-4624-864d-ff3e1ed835f9)) - (via (at 171.45 143.51) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 156) (tstamp 9373769f-8ce9-4bcb-9b72-e5e308bd5605)) - (via (at 128.27 125.73) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 156) (tstamp 99dde06d-181a-4198-8b47-9c448d28aa2c)) - (via (at 128.27 143.51) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 156) (tstamp d40ea2ef-ed2e-4041-9420-5252f017c2d0)) - (segment (start 172.72 142.24) (end 171.45 143.51) (width 0.153) (layer "B.Cu") (net 156) (tstamp 0923c87e-f76f-44c5-b3c6-0c1398ba4449)) - (segment (start 128.27 143.51) (end 128.676022 143.103978) (width 0.153) (layer "B.Cu") (net 156) (tstamp 333877d9-fa92-48a1-8219-0391a82f5daa)) - (segment (start 128.676022 126.136022) (end 128.27 125.73) (width 0.153) (layer "B.Cu") (net 156) (tstamp 34282c49-707d-45fb-b77b-021ddc811b60)) - (segment (start 128.676022 143.103978) (end 128.676022 126.136022) (width 0.153) (layer "B.Cu") (net 156) (tstamp 50b4ae4c-0e7c-4437-a448-be83abe3a6ad)) - (segment (start 172.72 129.54) (end 172.72 142.24) (width 0.153) (layer "B.Cu") (net 156) (tstamp 66f3c310-45d4-42f4-a379-788fc82799c0)) - (segment (start 158.216031 124.601009) (end 169.779991 124.601009) (width 0.153) (layer "F.Cu") (net 157) (tstamp 318f3a14-5f0c-4084-8949-d363829d8200)) - (segment (start 169.779991 124.601009) (end 170.856011 123.524989) (width 0.153) (layer "F.Cu") (net 157) (tstamp 32200d98-99ff-45fe-b54b-a98d19545d84)) - (segment (start 157.140011 123.524989) (end 158.216031 124.601009) (width 0.153) (layer "F.Cu") (net 157) (tstamp 58e0fd1d-ffa6-4c8a-a9a8-2b4a67e8fcd4)) - (segment (start 91.186028 127.120011) (end 88.751011 127.120011) (width 0.153) (layer "F.Cu") (net 162) (tstamp 1668320b-3c34-4f5e-a53d-7dd2527dcb5e)) - (segment (start 100.77798 127.06002) (end 91.246019 127.06002) (width 0.153) (layer "F.Cu") (net 162) (tstamp 5b1a67de-c509-4b57-b4fc-6bbf1ee082cc)) - (segment (start 88.751011 127.120011) (end 87.625 125.994) (width 0.153) (layer "F.Cu") (net 162) (tstamp a5898181-60b9-4630-afea-af86291acbc9)) - (segment (start 101.854 125.984) (end 100.77798 127.06002) (width 0.153) (layer "F.Cu") (net 162) (tstamp a713617b-3378-4f46-8dbd-ef822fb12706)) - (segment (start 91.246019 127.06002) (end 91.186028 127.120011) (width 0.153) (layer "F.Cu") (net 162) (tstamp e3778274-e1f7-42ce-9ebc-52e32a1734c0)) - (segment (start 151.552011 70.936989) (end 159.328989 70.936989) (width 0.153) (layer "F.Cu") (net 164) (tstamp 11ad1c26-9a47-4245-b61e-3facc5fa10fb)) - (segment (start 159.328989 70.936989) (end 159.512 71.12) (width 0.153) (layer "F.Cu") (net 164) (tstamp 1ff03249-e140-48d9-869b-1421417af19f)) - (segment (start 162.56 79.248) (end 163.236011 78.571989) (width 0.153) (layer "F.Cu") (net 164) (tstamp 75a89771-14e4-4247-82b9-b7a38bde6bfe)) - (segment (start 160.02 79.248) (end 162.56 79.248) (width 0.153) (layer "F.Cu") (net 164) (tstamp f0085920-61a6-408e-93ea-8df16fd59fa3)) - (via (at 159.512 71.12) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 164) (tstamp 17cdc0c3-1914-4b1a-8fa7-fb66894ef625)) - (via (at 160.02 79.248) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 164) (tstamp cbfcf7a4-2dbf-41a1-bb1d-3b6edd9158b0)) - (segment (start 159.512 78.74) (end 160.02 79.248) (width 0.153) (layer "B.Cu") (net 164) (tstamp 9c6ec345-04a4-46fe-858c-42b9a80e7210)) - (segment (start 159.512 71.12) (end 159.512 78.74) (width 0.153) (layer "B.Cu") (net 164) (tstamp ce55243a-bec8-4e20-9b0f-27e87a6a9f10)) - (segment (start 102.769011 61.035989) (end 105.324011 58.480989) (width 0.153) (layer "F.Cu") (net 166) (tstamp 4a548f20-130b-4497-b0e0-a4ba11a2a53d)) - (segment (start 85.776011 61.035989) (end 102.769011 61.035989) (width 0.153) (layer "F.Cu") (net 166) (tstamp d06d2f30-ca6f-41b4-bf79-a91f5c8fb9ee)) - (segment (start 91.25102 124.90798) (end 119.69402 124.90798) (width 0.153) (layer "F.Cu") (net 167) (tstamp 0d5815f6-28a9-467e-b51f-2cbe47189f59)) - (segment (start 119.69402 124.90798) (end 120.142 124.46) (width 0.153) (layer "F.Cu") (net 167) (tstamp 3f850cc3-2f60-413e-9a12-8572aadab9f9)) - (segment (start 90.165 125.994) (end 91.25102 124.90798) (width 0.153) (layer "F.Cu") (net 167) (tstamp 639d3d6c-dc64-4c3d-80bb-ae3dada7f944)) - (segment (start 121.158 113.284) (end 123.19 113.284) (width 0.153) (layer "F.Cu") (net 167) (tstamp d36cd51a-c1ad-47c7-90d9-3f2ccea1b822)) - (via (at 120.142 124.46) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 167) (tstamp 3a7a7e3d-aeb0-478b-a01f-f03b60149355)) - (via (at 121.158 113.284) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 167) (tstamp cb3e0923-788c-4425-8423-f5554dd16623)) - (segment (start 90.165 133.614) (end 90.165 131.074) (width 0.153) (layer "B.Cu") (net 167) (tstamp 4bde1f76-d2d5-49cb-8b28-1df7ae13b5e9)) - (segment (start 90.165 131.074) (end 90.165 128.534) (width 0.153) (layer "B.Cu") (net 167) (tstamp 68665e85-8355-4356-8878-61b3d6423eb8)) - (segment (start 90.165 128.534) (end 90.165 125.994) (width 0.153) (layer "B.Cu") (net 167) (tstamp 89acf144-a5e3-43b8-a11b-2acf109785f7)) - (segment (start 120.142 114.3) (end 121.158 113.284) (width 0.153) (layer "B.Cu") (net 167) (tstamp f81cf28d-7f8a-45aa-8733-bbbd77ce5ecf)) - (segment (start 120.142 124.46) (end 120.142 114.3) (width 0.153) (layer "B.Cu") (net 167) (tstamp fa7a8c05-618f-42cb-966b-3664b5480436)) - (segment (start 101.854 128.524) (end 100.717989 129.660011) (width 0.153) (layer "F.Cu") (net 168) (tstamp 02492028-a30a-48e5-aa42-12840e563f92)) - (segment (start 100.717989 129.660011) (end 88.751011 129.660011) (width 0.153) (layer "F.Cu") (net 168) (tstamp 3447a8ca-fcff-464d-b95f-b3434989d765)) - (segment (start 88.751011 129.660011) (end 87.625 128.534) (width 0.153) (layer "F.Cu") (net 168) (tstamp 8c64cc8d-2148-4fbd-8885-a05e454b3fd3)) - (segment (start 101.854 131.064) (end 100.717989 132.200011) (width 0.153) (layer "F.Cu") (net 169) (tstamp 14a95f80-8628-4275-af09-b9e2d4b2bbfd)) - (segment (start 88.751011 132.200011) (end 87.625 131.074) (width 0.153) (layer "F.Cu") (net 169) (tstamp 1cb02ec6-1f53-4864-9517-5cc91087a720)) - (segment (start 100.717989 132.200011) (end 88.751011 132.200011) (width 0.153) (layer "F.Cu") (net 169) (tstamp f4f57e38-24e0-42dc-a111-e8511a56a979)) - (segment (start 101.854 133.604) (end 100.717989 134.740011) (width 0.153) (layer "F.Cu") (net 170) (tstamp b4224c00-58fe-42db-8f0b-576e679b776e)) - (segment (start 88.751011 134.740011) (end 87.625 133.614) (width 0.153) (layer "F.Cu") (net 170) (tstamp d2e243ef-188e-40b6-8f69-38990dd6eee5)) - (segment (start 100.717989 134.740011) (end 88.751011 134.740011) (width 0.153) (layer "F.Cu") (net 170) (tstamp e1cdeb56-1db0-456a-9bd8-60f63304f719)) - (segment (start 123.952 143.256) (end 122.174 141.478) (width 0.153) (layer "F.Cu") (net 171) (tstamp 02edce56-9bec-457d-9b6f-223166de9302)) - (segment (start 52.578 107.95) (end 50.943989 106.315989) (width 0.153) (layer "F.Cu") (net 171) (tstamp 0b0e7f39-fb27-4734-b980-82fd16f8692f)) - (segment (start 143.844989 122.508989) (end 140.625011 122.508989) (width 0.153) (layer "F.Cu") (net 171) (tstamp 1d6d9779-e274-46c6-baf1-3fdccfd9e25d)) - (segment (start 140.625011 122.508989) (end 139.465724 121.349702) (width 0.153) (layer "F.Cu") (net 171) (tstamp 1fcb48be-393e-4e24-90b1-01bceb957b69)) - (segment (start 68.326 129.286) (end 68.326 128.27) (width 0.153) (layer "F.Cu") (net 171) (tstamp 4e3adc66-4c91-4121-8315-13922907b67c)) - (segment (start 47.608011 106.315989) (end 46.482 107.442) (width 0.153) (layer "F.Cu") (net 171) (tstamp 590d1ecb-60d0-4b85-b8ff-ef2da108e9ee)) - (segment (start 146.731011 115.655989) (end 149.520011 118.444989) (width 0.153) (layer "F.Cu") (net 171) (tstamp 5d796207-08ff-411d-8cd4-7e7d8ef59c74)) - (segment (start 67.564 127.508) (end 66.543 127.508) (width 0.153) (layer "F.Cu") (net 171) (tstamp 799807fd-dbb4-4f0c-b4e1-39b2629a5e30)) - (segment (start 139.465724 121.349702) (end 128.078298 121.349702) (width 0.153) (layer "F.Cu") (net 171) (tstamp 7f86d6a6-18bd-48ea-82a6-52534556d4c6)) - (segment (start 128.078298 121.349702) (end 126.492 122.936) (width 0.153) (layer "F.Cu") (net 171) (tstamp 8612c671-4a3c-414e-8299-ecd366692c36)) - (segment (start 141.138011 115.655989) (end 146.731011 115.655989) (width 0.153) (layer "F.Cu") (net 171) (tstamp 9aa2608c-84df-4784-8f31-cd92c7ce8b15)) - (segment (start 68.326 128.27) (end 67.564 127.508) (width 0.153) (layer "F.Cu") (net 171) (tstamp a69c7ff0-ab72-40e6-a0e7-ac6b1c3c9d14)) - (segment (start 64.511 127.508) (end 66.543 127.508) (width 0.25) (layer "F.Cu") (net 171) (tstamp a8547715-7f41-45cd-ad3f-19f73630ff73)) - (segment (start 50.943989 106.315989) (end 47.608011 106.315989) (width 0.153) (layer "F.Cu") (net 171) (tstamp aa2f504c-dd34-416a-9a64-74630b0aa3e4)) - (segment (start 144.272 122.936) (end 143.844989 122.508989) (width 0.153) (layer "F.Cu") (net 171) (tstamp aec75f93-cddf-49ed-95ca-e960ecfe7f42)) - (segment (start 122.174 141.478) (end 80.518 141.478) (width 0.153) (layer "F.Cu") (net 171) (tstamp b51635a8-31fa-4688-956d-dad659d7034f)) - (segment (start 142.916011 138.779989) (end 145.529511 138.779989) (width 0.153) (layer "F.Cu") (net 171) (tstamp bcfc1e36-7393-4e36-b356-1cfb9d870df9)) - (segment (start 145.529511 138.779989) (end 145.6255 138.684) (width 0.153) (layer "F.Cu") (net 171) (tstamp e1c6f49f-2aa2-4c9f-8895-ca76c6077c34)) - (segment (start 80.518 141.478) (end 68.326 129.286) (width 0.153) (layer "F.Cu") (net 171) (tstamp ffaa2101-e644-41bb-a045-4176539cf30a)) - (via (at 52.578 107.95) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 171) (tstamp 24136ba8-332c-4ce0-8271-dd47abc71e18)) - (via (at 123.952 143.256) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 171) (tstamp 6d3b542f-fc52-4f8e-80ca-6d2a90695479)) - (via (at 144.272 122.936) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 171) (tstamp 7d0a4da7-5a9e-4fb6-844a-3d9fbaef9ddc)) - (via (at 126.492 122.936) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 171) (tstamp 8352256b-fa97-4655-9c1b-9ecdc9eac837)) - (via (at 145.6255 138.684) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 171) (tstamp 956631aa-5031-4d84-b074-e0f442f1d2d5)) - (segment (start 57.872011 110.847722) (end 57.300278 110.275989) (width 0.153) (layer "B.Cu") (net 171) (tstamp 07da2f0b-ee16-4da9-9e0c-5fb001da2d9b)) - (segment (start 57.872011 120.869011) (end 57.872011 110.847722) (width 0.153) (layer "B.Cu") (net 171) (tstamp 17be285b-4ecd-4970-a155-b691f1fd7205)) - (segment (start 145.6255 138.684) (end 145.6255 130.8935) (width 0.153) (layer "B.Cu") (net 171) (tstamp 1b70c4c7-68c6-417c-bee3-1fca2cb65f73)) - (segment (start 142.114022 121.019978) (end 140.625011 122.508989) (width 0.153) (layer "B.Cu") (net 171) (tstamp 28c8c9e8-8e7c-44b8-ae4b-01a6f137763c)) - (segment (start 142.114022 116.632) (end 142.114022 121.019978) (width 0.153) (layer "B.Cu") (net 171) (tstamp 2c8ac497-191b-4a81-be92-a673fb5afa50)) - (segment (start 141.138011 115.655989) (end 142.114022 116.632) (width 0.153) (layer "B.Cu") (net 171) (tstamp 2d34c4cd-c608-41e0-9843-f61b696fd6a5)) - (segment (start 144.272 129.54) (end 144.272 122.936) (width 0.153) (layer "B.Cu") (net 171) (tstamp 2d89a462-a6b5-4b4f-a87e-a59a50fef619)) - (segment (start 145.542 130.81) (end 144.272 129.54) (width 0.153) (layer "B.Cu") (net 171) (tstamp 6903f208-d369-412b-a2c2-cdf21de712e7)) - (segment (start 54.903989 110.275989) (end 52.578 107.95) (width 0.153) (layer "B.Cu") (net 171) (tstamp 7925872c-fa02-49c8-861c-dcf385d9117d)) - (segment (start 125.416025 143.256) (end 123.952 143.256) (width 0.153) (layer "B.Cu") (net 171) (tstamp 9adca723-c279-4d2f-92b0-b0ce93a643f8)) - (segment (start 126.492 122.936) (end 126.492 142.180025) (width 0.153) (layer "B.Cu") (net 171) (tstamp ae2a91ea-95c3-4736-b8c0-351eb46ad624)) - (segment (start 126.492 142.180025) (end 125.416025 143.256) (width 0.153) (layer "B.Cu") (net 171) (tstamp ddd99edd-e605-4dcf-b72e-dc73978d0132)) - (segment (start 64.511 127.508) (end 57.872011 120.869011) (width 0.153) (layer "B.Cu") (net 171) (tstamp de4d2843-ded3-4c83-87c7-853aff452a26)) - (segment (start 145.6255 130.8935) (end 145.542 130.81) (width 0.153) (layer "B.Cu") (net 171) (tstamp e9580edd-98a7-430b-9ab2-37b71cad36e1)) - (segment (start 57.300278 110.275989) (end 54.903989 110.275989) (width 0.153) (layer "B.Cu") (net 171) (tstamp fa304455-72bd-42d6-81c1-f3b83f2f0c8b)) - (segment (start 121.412 141.986) (end 80.518 141.986) (width 0.153) (layer "F.Cu") (net 172) (tstamp 0317945b-d8ca-4706-837f-54f39afcada6)) - (segment (start 142.790022 118.364) (end 142.622011 118.195989) (width 0.153) (layer "F.Cu") (net 172) (tstamp 06394eaa-90a9-4aed-8bb4-e1b5c1f7adb9)) - (segment (start 142.622011 118.195989) (end 141.138011 118.195989) (width 0.153) (layer "F.Cu") (net 172) (tstamp 2aa6f064-6cd5-45e9-bd1d-023d97ad17d1)) - (segment (start 122.936 143.51) (end 121.412 141.986) (width 0.153) (layer "F.Cu") (net 172) (tstamp 5d7f9a45-466c-45ec-9470-1daded31c965)) - (segment (start 64.516 129.54) (end 66.548 129.54) (width 0.25) (layer "F.Cu") (net 172) (tstamp 6b8424c0-baf5-40c8-b4af-3e6226d2db03)) - (segment (start 80.518 141.986) (end 68.072 129.54) (width 0.153) (layer "F.Cu") (net 172) (tstamp 6bdc4c17-5025-452e-8733-6275f5499854)) - (segment (start 143.590989 120.984989) (end 143.256 120.65) (width 0.153) (layer "F.Cu") (net 172) (tstamp a92f5a3b-0adf-4b76-b31c-4ea10ecb2964)) - (segment (start 68.072 129.54) (end 66.548 129.54) (width 0.153) (layer "F.Cu") (net 172) (tstamp cd006846-61d7-42df-bf33-ca52850b998f)) - (segment (start 138.085011 122.508989) (end 127.958011 122.508989) (width 0.153) (layer "F.Cu") (net 172) (tstamp d7174d41-27ff-4bd6-b07d-c48deed025cf)) - (segment (start 149.520011 120.984989) (end 143.590989 120.984989) (width 0.153) (layer "F.Cu") (net 172) (tstamp f79136c5-d7fc-4eb9-87bb-1e0bc02f2b01)) - (segment (start 127.958011 122.508989) (end 127.508 122.959) (width 0.153) (layer "F.Cu") (net 172) (tstamp fb7088db-89b5-4e10-ae90-0f57841ee0f8)) - (via (at 142.790022 118.364) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 172) (tstamp 4dd7d69a-71db-4150-8469-25c50a6ff685)) - (via (at 143.256 120.65) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 172) (tstamp 846aacfe-074f-4b89-aac0-5d9c09351e14)) - (via (at 127.508 122.959) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 172) (tstamp a8d34971-1818-4a79-9459-97178770109d)) - (via (at 122.936 143.51) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 172) (tstamp f9632810-8434-4111-a115-259c7b3db0f3)) - (segment (start 123.358011 143.932011) (end 122.936 143.51) (width 0.153) (layer "B.Cu") (net 172) (tstamp 426da786-ae38-4676-bf47-0b965c0fd160)) - (segment (start 125.238552 143.932011) (end 123.358011 143.932011) (width 0.153) (layer "B.Cu") (net 172) (tstamp 72affcd6-184d-4286-bbe4-06965e4a5152)) - (segment (start 138.085011 122.508989) (end 139.499 123.922978) (width 0.153) (layer "B.Cu") (net 172) (tstamp 89289247-6fb7-43f0-8f37-c3c4ed37a91d)) - (segment (start 50.292 108.712) (end 49.022 107.442) (width 0.153) (layer "B.Cu") (net 172) (tstamp 89ce4b6b-f800-4d4c-938b-cfbe0da788e1)) - (segment (start 142.790022 120.184022) (end 142.790022 118.364) (width 0.153) (layer "B.Cu") (net 172) (tstamp 91ef4684-7de9-471d-8625-e5394729e151)) - (segment (start 126.844519 142.326044) (end 125.238552 143.932011) (width 0.153) (layer "B.Cu") (net 172) (tstamp 9419c671-b65b-4663-beaf-4e5bfeff2983)) - (segment (start 143.256 120.65) (end 142.790022 120.184022) (width 0.153) (layer "B.Cu") (net 172) (tstamp 98959b2b-f811-460b-884a-daca78772a0b)) - (segment (start 126.844519 123.622481) (end 126.844519 142.326044) (width 0.153) (layer "B.Cu") (net 172) (tstamp 990e03d9-67d9-47fe-9e44-1cd980ce2859)) - (segment (start 141.138011 118.195989) (end 141.138011 119.455989) (width 0.153) (layer "B.Cu") (net 172) (tstamp 9b8798c5-7d21-43b4-8f8b-208b02f212bd)) - (segment (start 57.364011 122.388011) (end 56.491722 122.388011) (width 0.153) (layer "B.Cu") (net 172) (tstamp a25c8d1c-b461-4a6b-a344-262bedf37ffa)) - (segment (start 127.508 122.959) (end 126.844519 123.622481) (width 0.153) (layer "B.Cu") (net 172) (tstamp a5aab502-0ef0-4deb-93bb-71ad265f5c95)) - (segment (start 141.138011 119.455989) (end 138.085011 122.508989) (width 0.153) (layer "B.Cu") (net 172) (tstamp a6a9b1a7-488a-41f4-9f77-8d8c8eb8c516)) - (segment (start 50.292 116.188289) (end 50.292 108.712) (width 0.153) (layer "B.Cu") (net 172) (tstamp bdb9a630-621c-4beb-8202-e9e9111b3ef4)) - (segment (start 56.491722 122.388011) (end 50.292 116.188289) (width 0.153) (layer "B.Cu") (net 172) (tstamp d5566f44-1afb-4bf2-baa9-053fc1fa6637)) - (segment (start 139.499 132.822978) (end 142.916011 136.239989) (width 0.153) (layer "B.Cu") (net 172) (tstamp dbfd0abf-478b-4c29-be07-a33ee7b4eda5)) - (segment (start 139.499 123.922978) (end 139.499 132.822978) (width 0.153) (layer "B.Cu") (net 172) (tstamp ddbd9504-1f1b-48dc-9500-c82abf0a954f)) - (segment (start 64.516 129.54) (end 57.364011 122.388011) (width 0.153) (layer "B.Cu") (net 172) (tstamp e62ec55c-9bad-4e79-9c03-cbf8efe83ca9)) + (segment (start 165.877531 133.684989) (end 166.665511 132.897009) (width 0.153) (layer "F.Cu") (net 74) (tstamp 6a517ac8-ca06-4fa7-9d98-736c3347dc23)) + (segment (start 163.236011 133.684989) (end 165.877531 133.684989) (width 0.153) (layer "F.Cu") (net 74) (tstamp fd860199-502d-4a64-928c-0842494b48c5)) + (via (at 166.665511 132.897009) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 74) (tstamp e95a2ec6-a21f-413f-87c7-5a9053b01a86)) + (segment (start 169.379991 62.268009) (end 169.379991 79.286009) (width 0.153) (layer "B.Cu") (net 74) (tstamp 0bedea36-45e0-4e32-a21d-f38bfa30c5ba)) + (segment (start 166.37 132.601498) (end 166.665511 132.897009) (width 0.153) (layer "B.Cu") (net 74) (tstamp 31a5f17b-74f8-4f85-8431-d662b1d73cf4)) + (segment (start 166.37 115.57) (end 166.37 132.601498) (width 0.153) (layer "B.Cu") (net 74) (tstamp 3e8f66b1-9ce9-4b66-b2a2-c2ed591b9820)) + (segment (start 167.03348 108.55652) (end 167.03348 114.90652) (width 0.153) (layer "B.Cu") (net 74) (tstamp 9cff695b-9caa-4f75-b154-dd4db4946e39)) + (segment (start 167.03348 114.90652) (end 166.37 115.57) (width 0.153) (layer "B.Cu") (net 74) (tstamp b535996f-be90-496f-9546-77bb4c89f2d5)) + (segment (start 169.379991 79.286009) (end 166.709989 81.956011) (width 0.153) (layer "B.Cu") (net 74) (tstamp e275ca83-a031-4366-b385-674652a6199a)) + (segment (start 166.709989 81.956011) (end 166.709989 108.233029) (width 0.153) (layer "B.Cu") (net 74) (tstamp ed3638f0-f9f2-4476-8224-1b4ba8c26f28)) + (segment (start 170.856011 60.791989) (end 169.379991 62.268009) (width 0.153) (layer "B.Cu") (net 74) (tstamp eebb9796-503a-455a-ba7a-15361abde042)) + (segment (start 166.709989 108.233029) (end 167.03348 108.55652) (width 0.153) (layer "B.Cu") (net 74) (tstamp fddc859e-b03c-4423-acdb-f0c29b54512a)) + (segment (start 164.312031 116.981009) (end 163.236011 115.904989) (width 0.153) (layer "F.Cu") (net 75) (tstamp 5b2db697-2465-4d85-82e9-e0a64c8c4735)) + (segment (start 163.236011 115.904989) (end 162.011 114.679978) (width 0.153) (layer "F.Cu") (net 75) (tstamp 7980e81c-b202-4f56-b14d-d1222208c3cb)) + (segment (start 159.513022 114.679978) (end 105.027978 114.679978) (width 0.153) (layer "F.Cu") (net 75) (tstamp 8aa5025c-ec47-4dcf-ad74-9679e3cdef83)) + (segment (start 105.027978 114.679978) (end 104.902 114.554) (width 0.153) (layer "F.Cu") (net 75) (tstamp 930a6034-33b3-4efd-92b0-51439ecaa722)) + (segment (start 175.006 116.078) (end 174.102991 116.981009) (width 0.153) (layer "F.Cu") (net 75) (tstamp a17b2747-3789-4d75-bdbe-67027ffc06f2)) + (segment (start 174.102991 116.981009) (end 164.312031 116.981009) (width 0.153) (layer "F.Cu") (net 75) (tstamp a9ba904e-5cc2-413e-9bd1-46edcba0b936)) + (segment (start 162.011 114.679978) (end 159.513022 114.679978) (width 0.153) (layer "F.Cu") (net 75) (tstamp f2d084d5-3227-4cf1-b8a1-119fd8bd10e9)) + (via (at 104.902 114.554) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 75) (tstamp 3468a9bc-27e4-4ac2-933c-07667ecda4d4)) + (via (at 159.513022 114.679978) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 75) (tstamp 512529e9-be80-4d45-a96f-1145329198b3)) + (via (at 175.006 116.078) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 75) (tstamp 86909625-1417-478b-aee1-e91fbdc6d2f9)) + (segment (start 104.14 105.41) (end 104.248 105.302) (width 0.153) (layer "B.Cu") (net 75) (tstamp 097b0031-195b-4a29-9510-0689001f55da)) + (segment (start 163.236011 76.031989) (end 161.759991 77.508009) (width 0.153) (layer "B.Cu") (net 75) (tstamp 2052f0e6-2be5-4448-8bdb-ca816b0c14f9)) + (segment (start 104.14 106.68) (end 104.14 105.41) (width 0.153) (layer "B.Cu") (net 75) (tstamp 20f9696d-ca07-424a-a494-2f7bf1e0aa43)) + (segment (start 176.952011 126.064989) (end 175.006 124.118978) (width 0.153) (layer "B.Cu") (net 75) (tstamp 2a3dccb0-fc4d-4c3f-89e3-68afada173b1)) + (segment (start 164.712031 72.428009) (end 163.236011 70.951989) (width 0.153) (layer "B.Cu") (net 75) (tstamp 2c889527-07a3-475a-8965-7b2b4dc763d5)) + (segment (start 163.236011 70.443989) (end 163.236011 70.951989) (width 0.153) (layer "B.Cu") (net 75) (tstamp 3d924d32-e9c3-4c4c-8436-6dd465cba739)) + (segment (start 104.248 106.788) (end 104.14 106.68) (width 0.153) (layer "B.Cu") (net 75) (tstamp 55168a8d-dc7e-47ac-a042-c73814ab19b7)) + (segment (start 159.512 94.234) (end 159.512 114.678956) (width 0.153) (layer "B.Cu") (net 75) (tstamp 6674fcc9-0153-4fac-a3bc-75055a4b6fad)) + (segment (start 104.902 114.554) (end 104.248 113.9) (width 0.153) (layer "B.Cu") (net 75) (tstamp 72e8bbfa-b0aa-4294-8854-fe200521267b)) + (segment (start 161.759991 91.986009) (end 159.512 94.234) (width 0.153) (layer "B.Cu") (net 75) (tstamp 75e40396-82ab-4fbe-8918-2c9f61b8e319)) + (segment (start 159.512 114.678956) (end 159.513022 114.679978) (width 0.153) (layer "B.Cu") (net 75) (tstamp 7e011950-a3cc-4e75-9a13-7c672e770701)) + (segment (start 164.712031 64.395969) (end 163.236011 65.871989) (width 0.153) (layer "B.Cu") (net 75) (tstamp 97d8e1ea-856d-4c40-b501-692f2be849ed)) + (segment (start 164.712031 62.268009) (end 164.712031 64.395969) (width 0.153) (layer "B.Cu") (net 75) (tstamp 9a5824fb-3fde-4db4-a17b-edcc00bb0cf0)) + (segment (start 163.236011 65.871989) (end 164.712031 67.348009) (width 0.153) (layer "B.Cu") (net 75) (tstamp 9bab215b-5975-4ac9-a9ce-1aa34c0ed791)) + (segment (start 163.236011 60.791989) (end 164.712031 62.268009) (width 0.153) (layer "B.Cu") (net 75) (tstamp a44e180d-61db-48eb-aeb5-fcf2e01d2b9e)) + (segment (start 164.712031 68.967969) (end 163.236011 70.443989) (width 0.153) (layer "B.Cu") (net 75) (tstamp a56784e5-9a70-464e-9546-565b3cb409ca)) + (segment (start 164.712031 74.555969) (end 164.712031 72.428009) (width 0.153) (layer "B.Cu") (net 75) (tstamp afcb523b-bc3a-4124-b856-e3a175554fbc)) + (segment (start 104.248 84.474) (end 105.324011 83.397989) (width 0.153) (layer "B.Cu") (net 75) (tstamp baf136ea-9c4c-4f0e-917d-788ee401328b)) + (segment (start 104.248 105.302) (end 104.248 84.474) (width 0.153) (layer "B.Cu") (net 75) (tstamp d5195ac3-08bf-448c-84bc-c56a1be7546e)) + (segment (start 163.236011 76.031989) (end 164.712031 74.555969) (width 0.153) (layer "B.Cu") (net 75) (tstamp ed135af6-ac34-4f59-8ef6-6fda1b94704a)) + (segment (start 164.712031 67.348009) (end 164.712031 68.967969) (width 0.153) (layer "B.Cu") (net 75) (tstamp ef7237d8-a9aa-4361-bb1a-1a29277caf40)) + (segment (start 175.006 124.118978) (end 175.006 116.078) (width 0.153) (layer "B.Cu") (net 75) (tstamp f0c78fbd-4d56-41d3-b3f9-c091b1cd0fef)) + (segment (start 104.248 113.9) (end 104.248 106.788) (width 0.153) (layer "B.Cu") (net 75) (tstamp f20069ef-727e-4603-a70b-ccd6e9df8aec)) + (segment (start 161.759991 77.508009) (end 161.759991 91.986009) (width 0.153) (layer "B.Cu") (net 75) (tstamp fdf1af1e-7b70-446f-a9f4-cf49c40310fd)) + (segment (start 123.19 120.904) (end 125.921 123.635) (width 0.153) (layer "F.Cu") (net 76) (tstamp 21820b1d-e1e7-40fa-bedc-6aa2c72ac61d)) + (segment (start 173.715031 117.368969) (end 164.312031 117.368969) (width 0.153) (layer "F.Cu") (net 76) (tstamp 29aa335b-758f-477a-af4b-8a1558985f41)) + (segment (start 146.495 123.635) (end 147.848969 124.988969) (width 0.153) (layer "F.Cu") (net 76) (tstamp 3fa6370a-076b-4d3b-a728-f17c96a25856)) + (segment (start 156.063991 124.988969) (end 157.140011 126.064989) (width 0.153) (layer "F.Cu") (net 76) (tstamp 4610ce87-eabc-429f-b008-23819a1b2c4c)) + (segment (start 176.952011 118.444989) (end 175.875991 117.368969) (width 0.153) (layer "F.Cu") (net 76) (tstamp 48f846b8-42ff-4b23-bac7-bfa280198f61)) + (segment (start 159.512 118.618) (end 159.685011 118.444989) (width 0.153) (layer "F.Cu") (net 76) (tstamp 592c77bb-f800-4d6f-bef1-3431ed057d2d)) + (segment (start 122.11398 121.98002) (end 123.19 120.904) (width 0.153) (layer "F.Cu") (net 76) (tstamp 76787f79-a72f-4556-acd1-5edd980c0953)) + (segment (start 106.172 121.666) (end 106.48602 121.98002) (width 0.153) (layer "F.Cu") (net 76) (tstamp 8db0373a-0180-4ab2-9b2f-2b0038b7eb8c)) + (segment (start 159.685011 118.444989) (end 163.236011 118.444989) (width 0.153) (layer "F.Cu") (net 76) (tstamp 9153b275-5d41-4580-ad8e-41e155312639)) + (segment (start 173.756969 117.368969) (end 173.715031 117.368969) (width 0.153) (layer "F.Cu") (net 76) (tstamp ac0af998-a59b-47c9-859a-a545e868a379)) + (segment (start 164.312031 117.368969) (end 163.236011 118.444989) (width 0.153) (layer "F.Cu") (net 76) (tstamp c92c7b1d-a2f1-4ca7-9223-fb0e2e07e22b)) + (segment (start 175.875991 117.368969) (end 173.715031 117.368969) (width 0.153) (layer "F.Cu") (net 76) (tstamp da8991cc-4fc6-4851-a345-5c93848b3571)) + (segment (start 106.48602 121.98002) (end 122.11398 121.98002) (width 0.153) (layer "F.Cu") (net 76) (tstamp eb552423-c0e5-4786-895d-1e0982d41516)) + (segment (start 125.921 123.635) (end 146.495 123.635) (width 0.153) (layer "F.Cu") (net 76) (tstamp eb8a119c-29f5-4ed5-8013-fb69adf3394b)) + (segment (start 147.848969 124.988969) (end 156.063991 124.988969) (width 0.153) (layer "F.Cu") (net 76) (tstamp fa40a9d7-c377-4eeb-82c6-e39390f9cb0f)) + (via (at 159.512 118.618) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 76) (tstamp 4e89c179-8cd7-4cc5-a5f5-15161c417b5c)) + (via (at 106.172 121.666) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 76) (tstamp bb9f6a62-8859-49b0-b6ba-63405618889b)) + (segment (start 107.864011 83.397989) (end 106.788 84.474) (width 0.153) (layer "B.Cu") (net 76) (tstamp 4ad5df6d-4fe0-434f-8225-2f5c6385ac7c)) + (segment (start 159.512 123.693) (end 159.512 118.618) (width 0.153) (layer "B.Cu") (net 76) (tstamp 79284748-4dd3-445c-b573-acba9dd76717)) + (segment (start 106.788 109.074) (end 106.172 109.69) (width 0.153) (layer "B.Cu") (net 76) (tstamp 89581e1e-6777-4e66-8fbd-58c0d5ad1419)) + (segment (start 106.172 109.69) (end 106.172 121.666) (width 0.153) (layer "B.Cu") (net 76) (tstamp 8f985d53-63e2-4398-9d4e-d49896694710)) + (segment (start 157.140011 126.064989) (end 159.512 123.693) (width 0.153) (layer "B.Cu") (net 76) (tstamp b17d7af4-85e2-47bf-9957-850c91249fb4)) + (segment (start 107.864011 83.397989) (end 112.944011 78.317989) (width 0.153) (layer "B.Cu") (net 76) (tstamp b8ad27b0-4373-4000-a974-ed4af38cc8b0)) + (segment (start 112.944011 78.317989) (end 112.944011 73.720989) (width 0.153) (layer "B.Cu") (net 76) (tstamp c2c8d1b6-81b7-4f80-aa1c-65074ec69e80)) + (segment (start 106.788 84.474) (end 106.788 109.074) (width 0.153) (layer "B.Cu") (net 76) (tstamp de86ffb5-0f6e-42d6-8680-b0a3b86069cd)) + (segment (start 112.014 123.444) (end 123.19 123.444) (width 0.153) (layer "F.Cu") (net 77) (tstamp 2d5bd612-983b-45c0-89ab-48bbc7bfeb9f)) + (segment (start 116.185022 71.882) (end 118.024011 73.720989) (width 0.153) (layer "F.Cu") (net 77) (tstamp 3f9344e9-6c05-4a4e-b2b3-26c659ef7d71)) + (segment (start 124.714 123.444) (end 123.19 123.444) (width 0.153) (layer "F.Cu") (net 77) (tstamp 4c6ef715-668f-468c-880e-aa52d4e82d1e)) + (segment (start 125.222 123.952) (end 124.714 123.444) (width 0.153) (layer "F.Cu") (net 77) (tstamp 5d1bfe1e-848d-4cdd-961e-e72bdbda276b)) + (segment (start 156.063991 119.908969) (end 125.709031 119.908969) (width 0.153) (layer "F.Cu") (net 77) (tstamp 6a8a7660-67c7-44c5-8ef3-bb33be497d3b)) + (segment (start 114.046 71.882) (end 116.185022 71.882) (width 0.153) (layer "F.Cu") (net 77) (tstamp 6fbe60dd-943f-4955-839f-306850ec8e37)) + (segment (start 125.709031 119.908969) (end 125.476 120.142) (width 0.153) (layer "F.Cu") (net 77) (tstamp 90f3d599-bb98-41e3-85f2-638568426026)) + (segment (start 164.312031 119.908969) (end 163.236011 120.984989) (width 0.153) (layer "F.Cu") (net 77) (tstamp 9cf193aa-add0-4dcf-a99e-ad234059cbfd)) + (segment (start 175.875991 119.908969) (end 164.312031 119.908969) (width 0.153) (layer "F.Cu") (net 77) (tstamp bb65db1b-534d-4075-880b-f614f1e2604e)) + (segment (start 163.236011 120.984989) (end 157.140011 120.984989) (width 0.153) (layer "F.Cu") (net 77) (tstamp c576aea3-8e4c-4272-a2f9-c956665842dd)) + (segment (start 111.76 123.698) (end 112.014 123.444) (width 0.153) (layer "F.Cu") (net 77) (tstamp e1a21f9b-f127-47ea-9131-236d708e7764)) + (segment (start 157.140011 120.984989) (end 156.063991 119.908969) (width 0.153) (layer "F.Cu") (net 77) (tstamp f0be5aa9-485e-46d0-9332-676e80eb10b7)) + (segment (start 176.952011 120.984989) (end 175.875991 119.908969) (width 0.153) (layer "F.Cu") (net 77) (tstamp f6a7829b-fdf4-45a4-a345-38d662cc6fec)) + (via (at 111.76 123.698) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 77) (tstamp 1f7625e6-16f4-40ff-bcdc-c9e804ef0401)) + (via (at 125.476 120.142) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 77) (tstamp 666b110b-64b3-4b1b-b648-8cefb6eb0bcb)) + (via (at 114.046 71.882) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 77) (tstamp ae8a84a4-922f-4371-84ed-1aac579960e3)) + (via (at 125.222 123.952) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 77) (tstamp c363df37-be76-44cd-846e-5e1010ee0d3e)) + (segment (start 108.961269 98.716957) (end 110.998 100.753688) (width 0.153) (layer "B.Cu") (net 77) (tstamp 1583f87b-2312-4152-9f2e-0184cec48a0b)) + (segment (start 110.998 113.03) (end 110.998 122.936) (width 0.153) (layer "B.Cu") (net 77) (tstamp 3c0876d8-5601-40bb-96e6-2ad76ce65dbd)) + (segment (start 114.046 77.714538) (end 114.046 71.882) (width 0.153) (layer "B.Cu") (net 77) (tstamp 548e8240-75d4-4cd1-823f-19f0d296c254)) + (segment (start 108.961269 82.799269) (end 114.046 77.714538) (width 0.153) (layer "B.Cu") (net 77) (tstamp 7f97076a-12a8-4598-95d3-2ce163e24701)) + (segment (start 108.961269 82.799269) (end 108.961269 98.716957) (width 0.153) (layer "B.Cu") (net 77) (tstamp 997f880b-4143-452b-8b77-0ec2f9455013)) + (segment (start 125.476 123.698) (end 125.222 123.952) (width 0.153) (layer "B.Cu") (net 77) (tstamp bbc6895f-68fd-489a-9103-e6f23cebc08f)) + (segment (start 125.476 120.142) (end 125.476 123.698) (width 0.153) (layer "B.Cu") (net 77) (tstamp c20c6b29-8399-49c4-8d84-2b2fcb52d731)) + (segment (start 110.998 122.936) (end 111.76 123.698) (width 0.153) (layer "B.Cu") (net 77) (tstamp d993481d-e7b8-424e-807c-4042ed38c704)) + (segment (start 110.998 100.753688) (end 110.998 113.03) (width 0.153) (layer "B.Cu") (net 77) (tstamp e4b51845-ca8a-4c6c-a2a5-c74fd52d359a)) + (segment (start 175.067697 136.224989) (end 175.155252 136.137434) (width 0.153) (layer "F.Cu") (net 80) (tstamp 0e4bc78d-2163-408b-98a0-20832ab2c20f)) + (segment (start 170.856011 136.224989) (end 175.067697 136.224989) (width 0.153) (layer "F.Cu") (net 80) (tstamp 1d18f2cf-c501-453c-9948-aaa772872acf)) + (segment (start 179.324 111.76) (end 180.34 110.744) (width 0.153) (layer "F.Cu") (net 80) (tstamp 643d8d48-d6c0-465f-b2f0-8ceb95e35f35)) + (segment (start 180.421511 87.63) (end 179.9995 87.207989) (width 0.153) (layer "F.Cu") (net 80) (tstamp 98042644-fedb-441c-b998-2ba26dea87cd)) + (segment (start 176.784 111.76) (end 179.324 111.76) (width 0.153) (layer "F.Cu") (net 80) (tstamp 9b5c8397-0a15-4866-89cc-fdb3b8a7b344)) + (segment (start 179.9995 87.207989) (end 176.952011 87.207989) (width 0.153) (layer "F.Cu") (net 80) (tstamp ebe9e3f9-25f9-4b2f-801a-9ccf2857ef14)) + (via (at 180.34 110.744) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 80) (tstamp 58ad491d-39be-4c58-85bc-4ea42d0f2726)) + (via (at 176.784 111.76) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 80) (tstamp 7374d825-d6c9-4565-9cd9-8a3c27145ee7)) + (via (at 180.421511 87.63) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 80) (tstamp e2383f1b-4012-4306-bc66-eeab01cf1aa5)) + (via (at 175.155252 136.137434) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 80) (tstamp eacf7487-55dd-4253-b1a4-440052099d3e)) + (segment (start 173.482 122.272519) (end 173.482 117.602) (width 0.153) (layer "B.Cu") (net 80) (tstamp 0a457752-0313-49f4-873c-929e153bfc9e)) + (segment (start 174.653481 123.444) (end 173.482 122.272519) (width 0.153) (layer "B.Cu") (net 80) (tstamp 6077e8e1-1281-45f9-b616-9ff610b933f2)) + (segment (start 173.482 117.602) (end 173.482 114.3) (width 0.153) (layer "B.Cu") (net 80) (tstamp 6f71c78b-cef8-4e72-92cb-5022570fd43b)) + (segment (start 180.098031 89.154) (end 180.098031 87.95348) (width 0.153) (layer "B.Cu") (net 80) (tstamp 79bd3989-5641-49a8-a81d-95ce03df6940)) + (segment (start 176.022 111.76) (end 176.784 111.76) (width 0.153) (layer "B.Cu") (net 80) (tstamp 81a1f2cf-ee7f-48b7-8687-fba37e0af761)) + (segment (start 180.34 110.744) (end 180.098031 110.502031) (width 0.153) (layer "B.Cu") (net 80) (tstamp 90703544-59d4-44bc-a65c-09b23a8e2108)) + (segment (start 175.155252 136.137434) (end 174.65348 135.635662) (width 0.153) (layer "B.Cu") (net 80) (tstamp af317941-765b-456b-86d3-f7e7b77cdc2d)) + (segment (start 180.098031 110.502031) (end 180.098031 89.154) (width 0.153) (layer "B.Cu") (net 80) (tstamp b5e23bb3-440f-49bb-a4cd-896d06fea044)) + (segment (start 173.482 114.3) (end 176.022 111.76) (width 0.153) (layer "B.Cu") (net 80) (tstamp c3c6e638-6255-4b9e-8ea2-c68bdd7acbfc)) + (segment (start 180.098031 87.95348) (end 180.421511 87.63) (width 0.153) (layer "B.Cu") (net 80) (tstamp c813c0df-b22b-4aa8-b1c6-5abae26a493e)) + (segment (start 174.65348 135.635662) (end 174.653481 123.444) (width 0.153) (layer "B.Cu") (net 80) (tstamp eebc4f5f-b92a-40c2-a3c8-4b66576f3c0f)) + (segment (start 46.482 112.522) (end 47.752 111.252) (width 0.153) (layer "F.Cu") (net 83) (tstamp 3b02ccb2-9fdb-438a-a8f0-ba04e2bf7595)) + (segment (start 47.752 111.252) (end 56.896 111.252) (width 0.153) (layer "F.Cu") (net 83) (tstamp 4bad2182-d979-4f20-8617-ee39b73128b7)) + (segment (start 104.902 96.52) (end 169.926 96.52) (width 0.153) (layer "F.Cu") (net 84) (tstamp 3772fe6e-5bf7-4415-a6e3-caae4ee2288d)) + (segment (start 102.784011 98.637989) (end 104.902 96.52) (width 0.153) (layer "F.Cu") (net 84) (tstamp 5be020be-c034-48b9-a552-8dbaeb4d16f9)) + (via (at 169.926 96.52) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 84) (tstamp a4a36958-5160-4442-9cc6-3f42f15434c8)) + (segment (start 169.926 110.704268) (end 172.332031 113.110299) (width 0.153) (layer "B.Cu") (net 84) (tstamp 53a23065-8232-4184-b863-f877796fb155)) + (segment (start 172.332031 113.110299) (end 172.332031 124.588969) (width 0.153) (layer "B.Cu") (net 84) (tstamp a89701b8-a6da-49e4-89e7-73d771a7d0cd)) + (segment (start 169.926 96.52) (end 169.926 110.704268) (width 0.153) (layer "B.Cu") (net 84) (tstamp ddca445e-dc8e-4d72-8946-3d45b6bbcf5d)) + (segment (start 172.332031 124.588969) (end 170.856011 126.064989) (width 0.153) (layer "B.Cu") (net 84) (tstamp f3e36bb5-03d2-422f-9fbe-a4588cbd8e29)) + (segment (start 57.872011 116.371989) (end 56.896 117.348) (width 0.153) (layer "F.Cu") (net 85) (tstamp 039ed1c8-2205-4863-ad3c-73ddb9acd44b)) + (segment (start 57.618011 110.196011) (end 57.872011 110.450011) (width 0.153) (layer "F.Cu") (net 85) (tstamp 0afb163c-aa9c-41dd-937f-4ffa9adf893d)) + (segment (start 49.022 109.982) (end 49.236011 110.196011) (width 0.153) (layer "F.Cu") (net 85) (tstamp 3f692482-2499-4018-aaf7-eac29b775fd4)) + (segment (start 57.872011 110.450011) (end 57.872011 116.371989) (width 0.153) (layer "F.Cu") (net 85) (tstamp 83a0e894-9cfd-42c4-bde1-c104f55ce4fe)) + (segment (start 49.236011 110.196011) (end 57.618011 110.196011) (width 0.153) (layer "F.Cu") (net 85) (tstamp f9ade409-45d3-4d9c-87d3-4871c68d6da3)) + (segment (start 112.268 120.904) (end 121.268278 120.904) (width 0.153) (layer "F.Cu") (net 86) (tstamp 18539c98-e31a-4fe2-adc5-747757079997)) + (segment (start 121.268278 120.904) (end 122.344298 119.82798) (width 0.153) (layer "F.Cu") (net 86) (tstamp 1c43f85f-a873-4be5-91f0-94f402d2ee5d)) + (segment (start 141.769452 122.061009) (end 140.664221 120.955779) (width 0.153) (layer "F.Cu") (net 86) (tstamp 79aba9b1-fdb3-4a3d-b3ff-8c34d39daed4)) + (segment (start 111.506 81.28) (end 107.442 81.28) (width 0.153) (layer "F.Cu") (net 86) (tstamp 829728db-ee53-4bf0-aad4-8f3858664f97)) + (segment (start 169.779991 122.061009) (end 141.769452 122.061009) (width 0.153) (layer "F.Cu") (net 86) (tstamp b23b6cac-5ffa-409b-9fb3-0d19b863e8c1)) + (segment (start 170.856011 120.984989) (end 169.779991 122.061009) (width 0.153) (layer "F.Cu") (net 86) (tstamp e5bab8f5-ebb5-4335-9fe2-0e15aa3de49d)) + (segment (start 124.205955 119.82798) (end 125.333754 120.955779) (width 0.153) (layer "F.Cu") (net 86) (tstamp e805a8a8-2916-40db-9333-8705f99e0592)) + (segment (start 122.344298 119.82798) (end 124.205955 119.82798) (width 0.153) (layer "F.Cu") (net 86) (tstamp e98b0f5f-545e-40d6-9f9b-f26c2c8045f4)) + (segment (start 125.333754 120.955779) (end 140.664221 120.955779) (width 0.153) (layer "F.Cu") (net 86) (tstamp fd47751d-2846-4df4-8713-fa9986ba9582)) + (via (at 112.268 120.904) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 86) (tstamp 3ff019bc-07ef-4ded-8213-d63c0f6bac18)) + (via (at 111.506 81.28) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 86) (tstamp 9707cc66-e3ea-474e-bd0b-da8d6be9a840)) + (via (at 107.442 81.28) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 86) (tstamp fd2ed63c-cf4a-47f8-b3e3-c53c769b9709)) + (segment (start 107.864011 80.857989) (end 107.864011 73.720989) (width 0.153) (layer "B.Cu") (net 86) (tstamp 0dc700b2-4ea9-43ac-92d5-ce87900b996c)) + (segment (start 107.442 81.28) (end 107.864011 80.857989) (width 0.153) (layer "B.Cu") (net 86) (tstamp 3dee8453-9ccd-4b5e-b8b4-5ba689bd8797)) + (segment (start 111.496527 99.831473) (end 111.35052 99.97748) (width 0.153) (layer "B.Cu") (net 86) (tstamp 41a5f446-e8f2-41d3-ab29-2c884e4ef27b)) + (segment (start 111.496527 81.289473) (end 111.496527 99.831473) (width 0.153) (layer "B.Cu") (net 86) (tstamp 6268433e-87f5-47bd-a47b-9b24ff92af93)) + (segment (start 111.506 81.28) (end 111.496527 81.289473) (width 0.153) (layer "B.Cu") (net 86) (tstamp 72ae4882-586b-4b51-83d8-234174429d26)) + (segment (start 111.35052 101.854) (end 111.35052 119.98652) (width 0.153) (layer "B.Cu") (net 86) (tstamp 965c0623-2775-4b49-bc5f-8f5f9a7f7d2b)) + (segment (start 111.35052 99.97748) (end 111.35052 101.854) (width 0.153) (layer "B.Cu") (net 86) (tstamp d2c32a07-9cb2-4764-affc-eb0cb91debed)) + (segment (start 111.35052 119.98652) (end 112.268 120.904) (width 0.153) (layer "B.Cu") (net 86) (tstamp da272dc4-c9d8-4f82-b1f4-37520596c70d)) + (segment (start 149.120011 131.144989) (end 149.520011 131.144989) (width 0.153) (layer "F.Cu") (net 88) (tstamp 16ad8d21-33e3-42cb-9b38-0df97e6a5f1e)) + (segment (start 141.392011 89.747989) (end 140.97 90.17) (width 0.153) (layer "F.Cu") (net 88) (tstamp 54a861a1-960e-43ed-b92e-d097543c4f5d)) + (segment (start 145.255 127.279978) (end 149.120011 131.144989) (width 0.153) (layer "F.Cu") (net 88) (tstamp 5cf0794f-8b26-4066-a6c1-a6eb34abf22c)) + (segment (start 140.716 90.424) (end 140.97 90.17) (width 0.153) (layer "F.Cu") (net 88) (tstamp 5d8d34a2-c4db-4510-9abd-8ebad0377774)) + (segment (start 109.194022 127.279978) (end 145.255 127.279978) (width 0.153) (layer "F.Cu") (net 88) (tstamp 6ed7653f-0ec4-4b05-bc5a-4b20756d8e1d)) + (segment (start 107.95 128.524) (end 109.194022 127.279978) (width 0.153) (layer "F.Cu") (net 88) (tstamp 7b84d7cb-481e-4ce4-9161-b78f90c20424)) + (segment (start 150.707989 89.747989) (end 149.945989 89.747989) (width 0.153) (layer "F.Cu") (net 88) (tstamp 7ca0faa2-4571-4985-a555-f6902a1d6ec5)) + (segment (start 122.174 90.424) (end 140.716 90.424) (width 0.153) (layer "F.Cu") (net 88) (tstamp 9711caa4-343f-48bc-ab93-11a3d27bd29a)) + (segment (start 149.945989 89.747989) (end 141.392011 89.747989) (width 0.153) (layer "F.Cu") (net 88) (tstamp ec56010a-e204-43d1-9816-57cdb20f8b60)) + (segment (start 176.952011 89.747989) (end 150.707989 89.747989) (width 0.153) (layer "F.Cu") (net 88) (tstamp faa335d6-af61-4b70-8fe9-de8897a3fb58)) + (via (at 122.174 90.424) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 88) (tstamp 6aeb838f-13fd-4d87-bf48-fa16b9d8c983)) + (via (at 150.707989 89.747989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 88) (tstamp 85e233d2-efcc-48be-ae01-4c33dfab7794)) + (via (at 140.97 90.17) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 88) (tstamp f233eb27-e79d-43e4-afb3-d52928839636)) + (segment (start 151.13 114.736558) (end 150.797469 114.404027) (width 0.153) (layer "B.Cu") (net 88) (tstamp 1ab81cbc-d5d3-4573-913c-b44e6e40223e)) + (segment (start 122.028 90.278) (end 122.174 90.424) (width 0.153) (layer "B.Cu") (net 88) (tstamp 2f702f89-9197-4d57-8484-79e8bdfccbb2)) + (segment (start 151.13 129.535) (end 151.13 114.736558) (width 0.153) (layer "B.Cu") (net 88) (tstamp 409e790a-3652-4ebf-9f7e-bb2d4f31a7b2)) + (segment (start 150.797469 89.837469) (end 150.707989 89.747989) (width 0.153) (layer "B.Cu") (net 88) (tstamp 656280dd-14a0-4af0-8cdb-49f3de2dc31b)) + (segment (start 150.797469 114.404027) (end 150.797469 89.837469) (width 0.153) (layer "B.Cu") (net 88) (tstamp 71a61b59-4d6c-492c-9fee-5d6bf2a6b84b)) + (segment (start 123.104011 73.720989) (end 122.028 74.797) (width 0.153) (layer "B.Cu") (net 88) (tstamp 77881c4e-cc64-4139-8b4f-2ff5b340d816)) + (segment (start 149.520011 131.144989) (end 151.13 129.535) (width 0.153) (layer "B.Cu") (net 88) (tstamp 7ad59e5f-0655-44b3-8c67-30c4e8ecb6ca)) + (segment (start 140.884011 90.255989) (end 140.884011 98.637989) (width 0.153) (layer "B.Cu") (net 88) (tstamp b3698f9b-d632-4f42-8df9-0b77b082dd9d)) + (segment (start 140.97 90.17) (end 140.884011 90.255989) (width 0.153) (layer "B.Cu") (net 88) (tstamp d528737b-e86b-4999-92f2-a8deea29c6e9)) + (segment (start 122.028 74.797) (end 122.028 90.278) (width 0.153) (layer "B.Cu") (net 88) (tstamp d75fac0e-b044-4fb8-b764-6ebef3b3bb68)) + (segment (start 107.95 131.064) (end 109.02602 129.98798) (width 0.153) (layer "F.Cu") (net 89) (tstamp 0a57f313-b605-4f58-a118-629c0196d61c)) + (segment (start 133.194511 129.98798) (end 133.290509 130.083978) (width 0.153) (layer "F.Cu") (net 89) (tstamp 0de4d3a7-9a88-447c-9919-517e6583fdd2)) + (segment (start 123.952 89.748) (end 124.304531 89.395469) (width 0.153) (layer "F.Cu") (net 89) (tstamp 0f1f41cd-26fc-4f5b-a8b0-9da648db3afa)) + (segment (start 142.822312 132.588) (end 148.423022 132.588) (width 0.153) (layer "F.Cu") (net 89) (tstamp 103476bd-a25d-46ae-b03f-5bcf726c23f6)) + (segment (start 176.615989 92.287989) (end 174.752 90.424) (width 0.153) (layer "F.Cu") (net 89) (tstamp 224dbee6-1223-488c-a9bd-4f3c1413212a)) + (segment (start 174.752 90.424) (end 151.638 90.424) (width 0.153) (layer "F.Cu") (net 89) (tstamp 22d884bd-057e-46a8-8547-25d92719d5ac)) + (segment (start 109.02602 129.98798) (end 133.194511 129.98798) (width 0.153) (layer "F.Cu") (net 89) (tstamp 23a983a3-5674-4829-98c2-27172d7b52be)) + (segment (start 151.638 90.424) (end 143.764 90.424) (width 0.153) (layer "F.Cu") (net 89) (tstamp 464721f7-6d62-49ce-85eb-66e5589ddf31)) + (segment (start 176.952011 92.287989) (end 176.615989 92.287989) (width 0.153) (layer "F.Cu") (net 89) (tstamp 5de14dd2-5f09-4b8c-9bb9-d630b518de16)) + (segment (start 124.304531 89.395469) (end 141.732 89.39547) (width 0.153) (layer "F.Cu") (net 89) (tstamp 70e8a06f-a7a9-43ab-be82-a8078cf2d956)) + (segment (start 148.423022 132.588) (end 149.520011 133.684989) (width 0.153) (layer "F.Cu") (net 89) (tstamp 82d724a5-de80-4959-9980-3b9fa5de964e)) + (segment (start 133.290509 130.083978) (end 140.31829 130.083978) (width 0.153) (layer "F.Cu") (net 89) (tstamp 9f1f62b9-462e-449b-9b52-c6c443e7a2e4)) + (segment (start 142.055481 89.071989) (end 143.51 89.071989) (width 0.153) (layer "F.Cu") (net 89) (tstamp ae6561b5-a2a7-4bc1-b531-2de946b79d9b)) + (segment (start 143.764 90.424) (end 143.51 90.678) (width 0.153) (layer "F.Cu") (net 89) (tstamp ca9a919b-fa6d-436d-80bb-f23fd3339cc8)) + (segment (start 140.31829 130.083978) (end 142.822312 132.588) (width 0.153) (layer "F.Cu") (net 89) (tstamp cd4e2187-9a56-4be6-8ba6-fe72381b453c)) + (segment (start 141.732 89.39547) (end 142.055481 89.071989) (width 0.153) (layer "F.Cu") (net 89) (tstamp f495a193-d775-413b-89ee-3101938f31ba)) + (via (at 151.638 90.424) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp 2f144852-3294-41fd-a945-3e1ff928ee42)) + (via (at 123.952 89.748) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp 5760c86b-b9e2-45af-a694-ae3a6e2f5f31)) + (via (at 143.51 90.678) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp 68d1f9a0-2926-40b9-bdaf-baf2d79291ed)) + (via (at 143.51 89.071989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 89) (tstamp bda6d824-d506-4f2c-b366-f8d2de191c79)) + (segment (start 143.51 89.071989) (end 143.51 90.678) (width 0.153) (layer "B.Cu") (net 89) (tstamp 0e30577c-9632-4544-81f0-d32c376bdb34)) + (segment (start 143.424011 90.763989) (end 143.424011 98.637989) (width 0.153) (layer "B.Cu") (net 89) (tstamp 12b00029-165f-47dc-95b7-a7a7f6d50b38)) + (segment (start 124.568 74.797) (end 124.568 89.132) (width 0.153) (layer "B.Cu") (net 89) (tstamp 2e564962-9c43-407f-b91e-d613705d1b9e)) + (segment (start 143.51 90.678) (end 143.424011 90.763989) (width 0.153) (layer "B.Cu") (net 89) (tstamp 316212b3-4f2c-48f5-b963-3f538ab38bd9)) + (segment (start 151.149989 114.258009) (end 151.149989 90.912011) (width 0.153) (layer "B.Cu") (net 89) (tstamp 33990e6f-d24e-48a0-81b6-690c743d398c)) + (segment (start 151.69998 114.808) (end 151.149989 114.258009) (width 0.153) (layer "B.Cu") (net 89) (tstamp 4df08e12-98c4-46af-ba8f-67c25269cf6d)) + (segment (start 149.520011 133.684989) (end 151.69998 131.50502) (width 0.153) (layer "B.Cu") (net 89) (tstamp 8c488bd8-8ec3-4b8c-95ac-970221426416)) + (segment (start 151.149989 90.912011) (end 151.638 90.424) (width 0.153) (layer "B.Cu") (net 89) (tstamp b5bfe264-7127-497f-88f7-a5ed2cf58217)) + (segment (start 124.568 89.132) (end 123.952 89.748) (width 0.153) (layer "B.Cu") (net 89) (tstamp bc6480a7-c730-41b7-85a4-2a8759ddf2f7)) + (segment (start 125.644011 73.720989) (end 124.568 74.797) (width 0.153) (layer "B.Cu") (net 89) (tstamp ddc7baa6-4ce1-4e77-8af7-7c8b238f9d9b)) + (segment (start 151.69998 131.50502) (end 151.69998 114.808) (width 0.153) (layer "B.Cu") (net 89) (tstamp fece4cc4-25a1-41d0-a4a0-66889afb2d5a)) + (segment (start 125.726554 132.334) (end 127.578576 130.481978) (width 0.153) (layer "F.Cu") (net 90) (tstamp 01e69ef0-b560-41dd-b16f-bc921bd65607)) + (segment (start 127.508 91.272) (end 127.590011 91.354011) (width 0.153) (layer "F.Cu") (net 90) (tstamp 090384f9-c72d-4299-a728-976ea8719db9)) + (segment (start 174.329989 91.354011) (end 128.184011 91.354011) (width 0.153) (layer "F.Cu") (net 90) (tstamp 1fa95604-c8d0-4d6b-b667-715ed29d3825)) + (segment (start 147.146989 136.224989) (end 149.520011 136.224989) (width 0.153) (layer "F.Cu") (net 90) (tstamp 2c6ebfef-ec4f-4bce-9d24-541a922c9adf)) + (segment (start 174.498 91.186) (end 174.329989 91.354011) (width 0.153) (layer "F.Cu") (net 90) (tstamp 3323e552-376e-463d-8dc2-2af5636277bc)) + (segment (start 128.221446 130.481978) (end 130.363446 132.623978) (width 0.153) (layer "F.Cu") (net 90) (tstamp 38541585-663b-40c5-92ae-86b487bed3b9)) + (segment (start 142.822312 135.128) (end 146.05 135.128) (width 0.153) (layer "F.Cu") (net 90) (tstamp 4459289b-9c92-4997-b475-b4c0bc1d01e6)) + (segment (start 130.363446 132.623978) (end 140.31829 132.623978) (width 0.153) (layer "F.Cu") (net 90) (tstamp 5b4ca86c-ae63-4f30-b793-373734769e47)) + (segment (start 109.22 132.334) (end 125.726554 132.334) (width 0.153) (layer "F.Cu") (net 90) (tstamp 5c825377-bd8e-43e4-b509-00f6b856ddb4)) + (segment (start 107.95 133.604) (end 109.22 132.334) (width 0.153) (layer "F.Cu") (net 90) (tstamp 66688207-03e2-4a1f-8506-66e5dd158546)) + (segment (start 128.184011 91.354011) (end 95.843989 91.354011) (width 0.153) (layer "F.Cu") (net 90) (tstamp 8c91c81c-e010-40a6-88e5-4bdba92d0ab3)) + (segment (start 175.345989 94.827989) (end 175.006 94.488) (width 0.153) (layer "F.Cu") (net 90) (tstamp 921bb901-3f3e-4cd1-84eb-dcd52dcfa731)) + (segment (start 140.31829 132.623978) (end 142.822312 135.128) (width 0.153) (layer "F.Cu") (net 90) (tstamp af988139-e4a2-4a79-8faf-c94d50a2ed3a)) + (segment (start 127.590011 91.354011) (end 128.184011 91.354011) (width 0.153) (layer "F.Cu") (net 90) (tstamp bf7be330-7de9-4710-9e8f-5cdf073ed5a5)) + (segment (start 95.843989 91.354011) (end 95.758 91.44) (width 0.153) (layer "F.Cu") (net 90) (tstamp d1cf9fad-2e90-46a6-bc80-2cc519781a6d)) + (segment (start 146.05 135.128) (end 147.146989 136.224989) (width 0.153) (layer "F.Cu") (net 90) (tstamp f0195274-e7ae-49a4-8d3a-51bc10f187b6)) + (segment (start 127.578576 130.481978) (end 128.221446 130.481978) (width 0.153) (layer "F.Cu") (net 90) (tstamp f4445ff0-10cb-4441-a446-324ab085cce6)) + (segment (start 176.952011 94.827989) (end 175.345989 94.827989) (width 0.153) (layer "F.Cu") (net 90) (tstamp fd10f7e1-28fa-480a-b440-7c63cc078b19)) + (via (at 175.006 94.488) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 90) (tstamp 02378ade-0a29-4095-9bce-3b9895a5ae96)) + (via (at 174.498 91.186) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 90) (tstamp 3a092cf7-7f6b-4912-adf9-b20ef0214ea3)) + (via (at 148.250011 91.272) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 90) (tstamp 7036fd53-c1e9-4ed3-96b3-7b4a604ad18d)) + (via (at 95.758 91.44) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 90) (tstamp 932ce4bc-8552-4307-8ea8-dea0ca8842f0)) + (via (at 127.508 91.272) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 90) (tstamp 9f73f71a-c56d-4e1c-8a5f-ecfcfb3652af)) + (segment (start 149.520011 136.224989) (end 148.043991 134.748969) (width 0.153) (layer "B.Cu") (net 90) (tstamp 02d41da7-64cf-4e54-b71b-87587ccade04)) + (segment (start 148.043991 134.748969) (end 148.043991 91.47802) (width 0.153) (layer "B.Cu") (net 90) (tstamp 1e1dcd28-037c-43db-9f40-7f8cabc845f9)) + (segment (start 95.758 91.44) (end 95.164011 92.033989) (width 0.153) (layer "B.Cu") (net 90) (tstamp 21a00d01-5859-4665-9552-8699ae22a7e7)) + (segment (start 148.043991 91.47802) (end 148.250011 91.272) (width 0.153) (layer "B.Cu") (net 90) (tstamp 32b2469b-031b-48c2-9ee8-139629db3d97)) + (segment (start 128.184011 73.720989) (end 127.108 74.797) (width 0.153) (layer "B.Cu") (net 90) (tstamp 37e2e9d2-6fae-48fc-8003-3a17a1a49819)) + (segment (start 95.164011 92.033989) (end 95.164011 98.637989) (width 0.153) (layer "B.Cu") (net 90) (tstamp 60bae3d6-4824-4ced-90b3-08e314905d05)) + (segment (start 175.006 94.488) (end 175.006 91.694) (width 0.153) (layer "B.Cu") (net 90) (tstamp 6b7c1ba9-5b88-45d2-8cb6-33a72af83fea)) + (segment (start 127.108 74.797) (end 127.108 90.872) (width 0.153) (layer "B.Cu") (net 90) (tstamp 81b7c496-d346-4564-8e7d-7dc0d9990956)) + (segment (start 175.006 91.694) (end 174.498 91.186) (width 0.153) (layer "B.Cu") (net 90) (tstamp 8ab40167-1771-4470-b9d4-7cf4bc809184)) + (segment (start 127.108 90.872) (end 127.508 91.272) (width 0.153) (layer "B.Cu") (net 90) (tstamp 8d3f96bb-bf2e-40a2-bfc6-4ac863ce84c4)) + (segment (start 175.345989 97.367989) (end 174.752 96.774) (width 0.153) (layer "F.Cu") (net 91) (tstamp 37dd3281-5837-4ee9-8402-61955c590cda)) + (segment (start 111.662 139.856) (end 156.049 139.856) (width 0.153) (layer "F.Cu") (net 91) (tstamp 53561a3b-1b6d-4a7f-9cb4-a179e35e2d6b)) + (segment (start 176.952011 97.367989) (end 175.345989 97.367989) (width 0.153) (layer "F.Cu") (net 91) (tstamp 5ba57511-87bb-4d3f-abfc-78cf045b2b07)) + (segment (start 154.349989 91.948) (end 153.67 91.948) (width 0.153) (layer "F.Cu") (net 91) (tstamp 6bc81bfe-86fc-4b66-951e-3c5c10d2ddee)) + (segment (start 156.049 139.856) (end 157.140011 138.764989) (width 0.153) (layer "F.Cu") (net 91) (tstamp 7b23884d-f67d-48a3-b4cf-f4ac92f4187c)) + (segment (start 173.88822 91.948) (end 154.432 91.948) (width 0.153) (layer "F.Cu") (net 91) (tstamp 7d32571e-22e1-42cb-8e13-15cd40d8e201)) + (segment (start 154.432 91.948) (end 153.67 91.948) (width 0.153) (layer "F.Cu") (net 91) (tstamp 8115d232-67ef-4836-82a4-09919266a349)) + (segment (start 107.95 136.144) (end 111.662 139.856) (width 0.153) (layer "F.Cu") (net 91) (tstamp 8b92ee1d-d157-4c2a-b64f-3f1862471234)) + (segment (start 154.432 92.030011) (end 154.349989 91.948) (width 0.153) (layer "F.Cu") (net 91) (tstamp b6005547-ea23-427c-be4a-3476ef8a921a)) + (segment (start 153.67 91.948) (end 99.06 91.948) (width 0.153) (layer "F.Cu") (net 91) (tstamp cf036cd9-e2b5-475c-906e-09d3d3c401f8)) + (segment (start 98.552 92.456) (end 94.488 92.456) (width 0.153) (layer "F.Cu") (net 91) (tstamp ec43a9fd-b648-472e-9a8f-3329ffddda47)) + (segment (start 173.982572 92.042352) (end 173.88822 91.948) (width 0.153) (layer "F.Cu") (net 91) (tstamp fc4b8e98-144d-40ce-9650-6ceac083128f)) + (segment (start 99.06 91.948) (end 98.552 92.456) (width 0.153) (layer "F.Cu") (net 91) (tstamp fc8fe0f1-da91-42a4-8ea5-8471f315a904)) + (via (at 154.432 92.030011) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 91) (tstamp 1247f985-08e3-4a87-801a-78b2f509b01f)) + (via (at 173.982572 92.042352) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 91) (tstamp 22010f7e-494d-4849-aedc-d787ece534d2)) + (via (at 129.286 92.030011) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 91) (tstamp 7275d887-fc5e-4a0f-b7a3-587c96c75b3c)) + (via (at 94.488 92.456) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 91) (tstamp b53f9df6-4be0-4e9b-b6a0-3c836a9a00df)) + (via (at 174.752 96.774) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 91) (tstamp f3573d11-15c3-4484-8b36-37b05c4e3c39)) + (segment (start 174.329989 96.351989) (end 174.329989 92.389769) (width 0.153) (layer "B.Cu") (net 91) (tstamp 0391e2ad-55f5-4ce6-ac37-4d9d64d78bce)) + (segment (start 154.841481 96.167481) (end 154.432 95.758) (width 0.153) (layer "B.Cu") (net 91) (tstamp 07e7ad91-91f4-4b92-b0bc-f5a53df18e97)) + (segment (start 154.841481 131.064) (end 154.841481 96.167481) (width 0.153) (layer "B.Cu") (net 91) (tstamp 26dd666b-4351-4216-9bc2-66480e3830ec)) + (segment (start 154.841481 136.466459) (end 154.841481 131.064) (width 0.153) (layer "B.Cu") (net 91) (tstamp 281d0ab2-cfd7-4811-8e62-fb98fb0928e9)) + (segment (start 174.329989 92.389769) (end 173.982572 92.042352) (width 0.153) (layer "B.Cu") (net 91) (tstamp 336e1cf0-178a-4fe3-9e11-3cb616fd6b2e)) + (segment (start 129.260022 92.004033) (end 129.286 92.030011) (width 0.153) (layer "B.Cu") (net 91) (tstamp 49d2e652-f629-486b-8764-371320b6e2cb)) + (segment (start 130.724011 73.720989) (end 129.260022 75.184978) (width 0.153) (layer "B.Cu") (net 91) (tstamp 4f2110c1-3081-4083-b007-fa30705cd0f4)) + (segment (start 129.260022 75.184978) (end 129.260022 92.004033) (width 0.153) (layer "B.Cu") (net 91) (tstamp 9519200c-1bc4-4bad-ad55-47801216b728)) + (segment (start 94.488 84.074) (end 95.164011 83.397989) (width 0.153) (layer "B.Cu") (net 91) (tstamp ac2d6b55-7011-4cab-bb35-92e383c1a780)) + (segment (start 174.752 96.774) (end 174.329989 96.351989) (width 0.153) (layer "B.Cu") (net 91) (tstamp cbb0049c-6af0-4a6f-a9b8-bdfc6e3c9cc1)) + (segment (start 157.140011 138.764989) (end 154.841481 136.466459) (width 0.153) (layer "B.Cu") (net 91) (tstamp e6bdae92-078c-4a7f-8272-1d6e94454ff8)) + (segment (start 94.488 92.456) (end 94.488 84.074) (width 0.153) (layer "B.Cu") (net 91) (tstamp f6f8ceec-8694-4d7b-a315-d0f0d0d47851)) + (segment (start 154.432 95.758) (end 154.432 92.030011) (width 0.153) (layer "B.Cu") (net 91) (tstamp fe37de5b-c376-46b5-9798-0440f6df596a)) + (segment (start 159.004 136.144) (end 158.923011 136.224989) (width 0.153) (layer "F.Cu") (net 92) (tstamp 0780db56-7a8c-41e6-be3e-44096034dae9)) + (segment (start 155.194 92.71) (end 132.08 92.71) (width 0.153) (layer "F.Cu") (net 92) (tstamp 0bdb67db-d33b-440f-b650-67719037396e)) + (segment (start 107.95 138.684) (end 109.728 140.462) (width 0.153) (layer "F.Cu") (net 92) (tstamp 5574bb8a-ba10-44a2-ac08-ee45b5a92f41)) + (segment (start 173.228 92.71) (end 155.194 92.71) (width 0.153) (layer "F.Cu") (net 92) (tstamp 5ad801f5-5a87-4dae-9dd2-8484ad0df5ea)) + (segment (start 132.08 92.71) (end 99.314 92.71) (width 0.153) (layer "F.Cu") (net 92) (tstamp b49ac487-cf57-4e7b-b3d2-434bd54f9326)) + (segment (start 158.923011 136.224989) (end 157.140011 136.224989) (width 0.153) (layer "F.Cu") (net 92) (tstamp c92f15f2-07fb-4899-9b02-2cd6f5f65c46)) + (segment (start 109.728 140.462) (end 158.75 140.462) (width 0.153) (layer "F.Cu") (net 92) (tstamp deb81508-91e5-4ace-bdb6-0cf5c62d1999)) + (via (at 132.08 92.71) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 92) (tstamp 02e28039-cdda-4616-9f4f-147a1bf71560)) + (via (at 173.228 92.71) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 92) (tstamp a1295b7b-3e78-47a2-ac3d-8e8a27e5cc94)) + (via (at 159.004 136.144) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 92) (tstamp b4a1e95d-aca5-464c-9d46-106ac063b2ca)) + (via (at 158.75 140.462) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 92) (tstamp b9ff2bc9-2909-44de-b87f-01ae5ef3e5c6)) + (via (at 99.314 92.71) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 92) (tstamp ceb83952-18d0-48c5-8083-a210b3e03de1)) + (via (at 155.194 92.71) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 92) (tstamp f1c4e1c5-b637-4060-8da1-31a1fb873aa2)) + (segment (start 133.264011 73.720989) (end 133.264011 80.133699) (width 0.153) (layer "B.Cu") (net 92) (tstamp 0cbb6a23-9cfd-47e6-a6fe-b61c476b54fc)) + (segment (start 97.704011 91.100011) (end 97.704011 83.397989) (width 0.153) (layer "B.Cu") (net 92) (tstamp 228168ae-913f-461a-a9c0-bbf493cc1442)) + (segment (start 176.952011 99.907989) (end 176.552011 99.907989) (width 0.153) (layer "B.Cu") (net 92) (tstamp 239bcc60-0f84-40da-973e-ea9aedd1bce4)) + (segment (start 133.264011 80.133699) (end 132.08 81.31771) (width 0.153) (layer "B.Cu") (net 92) (tstamp 4a98b3f4-4617-442a-91c4-c4dec798325a)) + (segment (start 155.194 134.278978) (end 155.194 92.71) (width 0.153) (layer "B.Cu") (net 92) (tstamp 59d4f052-1e93-476f-b9eb-1d5e1c239494)) + (segment (start 173.228 96.583978) (end 173.228 92.71) (width 0.153) (layer "B.Cu") (net 92) (tstamp 89bb5784-ad4b-4bbd-a865-b0df5b4214cb)) + (segment (start 176.552011 99.907989) (end 173.228 96.583978) (width 0.153) (layer "B.Cu") (net 92) (tstamp b0f93277-98e2-475a-b164-17f70d461034)) + (segment (start 99.314 92.71) (end 97.704011 91.100011) (width 0.153) (layer "B.Cu") (net 92) (tstamp d21d2cf2-c25c-4cb6-bf5d-49ef23fcde1e)) + (segment (start 158.75 140.462) (end 159.004 140.208) (width 0.153) (layer "B.Cu") (net 92) (tstamp e1370b42-1833-45c1-a436-f4eef723e541)) + (segment (start 157.140011 136.224989) (end 155.194 134.278978) (width 0.153) (layer "B.Cu") (net 92) (tstamp eab08b3b-3dc7-462e-8a23-1417c9663b6c)) + (segment (start 159.004 140.208) (end 159.004 136.144) (width 0.153) (layer "B.Cu") (net 92) (tstamp f44144d6-356c-4ad5-a503-90e3da1e3a81)) + (segment (start 132.08 81.31771) (end 132.08 92.71) (width 0.153) (layer "B.Cu") (net 92) (tstamp fe565d7d-ea13-4bed-a129-e3402ad0fada)) + (segment (start 155.886364 93.541636) (end 134.550364 93.541636) (width 0.153) (layer "F.Cu") (net 93) (tstamp 0261b807-c869-4765-be9a-1137d8adc8da)) + (segment (start 159.37406 141.224) (end 159.581636 141.016424) (width 0.153) (layer "F.Cu") (net 93) (tstamp 0bc0a6c2-c975-4b15-ac71-9d1b6a059e02)) + (segment (start 133.108 138.684) (end 133.604 139.18) (width 0.153) (layer "F.Cu") (net 93) (tstamp 0cf558aa-1c79-4925-8ed9-ad30743a35b2)) + (segment (start 123.19 138.684) (end 133.108 138.684) (width 0.153) (layer "F.Cu") (net 93) (tstamp 1c222caf-bc87-4e30-b714-6db8bdfffc40)) + (segment (start 159.338989 133.684989) (end 157.140011 133.684989) (width 0.153) (layer "F.Cu") (net 93) (tstamp 4f7dccf8-2433-4876-9a50-803c8819423b)) + (segment (start 100.231636 93.541636) (end 100.076 93.386) (width 0.153) (layer "F.Cu") (net 93) (tstamp 69428fb7-bb14-466b-bfbb-8f8ddd1fb1b3)) + (segment (start 133.858 141.224) (end 159.37406 141.224) (width 0.153) (layer "F.Cu") (net 93) (tstamp a776e414-9046-42a3-a7a7-5139c42ce5c9)) + (segment (start 172.552 93.541636) (end 155.886364 93.541636) (width 0.153) (layer "F.Cu") (net 93) (tstamp b33d203d-c71d-447c-ac99-5dd9986082e5)) + (segment (start 134.550364 93.541636) (end 100.231636 93.541636) (width 0.153) (layer "F.Cu") (net 93) (tstamp fb3732be-065b-40aa-8625-13549e0c3713)) + (segment (start 159.766 134.112) (end 159.338989 133.684989) (width 0.153) (layer "F.Cu") (net 93) (tstamp fd3e665e-4faf-4888-87b3-84b7f58127b7)) + (via (at 159.581636 141.016424) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp 34f89d32-181f-4839-97f4-3267d9970a0f)) + (via (at 133.604 139.18) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp 3bc8340e-b4e8-472d-ab3a-317d18df9a32)) + (via (at 172.552 93.541636) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp 99f6a4ca-3bd4-4163-a270-282a922a4394)) + (via (at 159.766 134.112) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp b84ffd7e-97cb-4e5b-9370-a4e1fbf35adf)) + (via (at 155.886364 93.541636) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp d64d73bd-7ebe-4492-bd74-937afb8219f9)) + (via (at 100.076 93.386) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp ece2678a-4290-4fa6-b414-432de85d9c8d)) + (via (at 133.858 141.224) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp f66cc2d1-f731-4bd1-944b-cfe55a8b03fc)) + (via (at 134.550364 93.541636) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 93) (tstamp fa30750a-b061-4142-bac7-b42d86ee2aa9)) + (segment (start 159.581636 141.016424) (end 159.766 140.83206) (width 0.153) (layer "B.Cu") (net 93) (tstamp 0bcf5d75-8ae4-48da-8d28-451020f9030c)) + (segment (start 100.244011 93.217989) (end 100.244011 83.397989) (width 0.153) (layer "B.Cu") (net 93) (tstamp 0f82dbf5-96ff-4b51-80be-aeab8727c6d4)) + (segment (start 155.663991 93.764009) (end 155.886364 93.541636) (width 0.153) (layer "B.Cu") (net 93) (tstamp 111640d6-3d17-4733-9e90-af266226b7c8)) + (segment (start 133.604 139.18) (end 133.858 139.434) (width 0.153) (layer "B.Cu") (net 93) (tstamp 2af6e0c9-21c5-48a4-afd7-587c45983047)) + (segment (start 134.688 93.404) (end 134.550364 93.541636) (width 0.153) (layer "B.Cu") (net 93) (tstamp 4583aa32-4a24-4fe3-b33f-c74987f57c00)) + (segment (start 155.663991 132.208969) (end 155.663991 93.764009) (width 0.153) (layer "B.Cu") (net 93) (tstamp 4ea93f13-bc5f-4433-b364-71f78c6a785a)) + (segment (start 172.552 96.606) (end 172.552 93.541636) (width 0.153) (layer "B.Cu") (net 93) (tstamp 5202091f-ad3a-4ea7-a492-f2f46df04016)) + (segment (start 100.076 93.386) (end 100.244011 93.217989) (width 0.153) (layer "B.Cu") (net 93) (tstamp 5982690c-c904-43ea-9b07-f5a98e62cf87)) + (segment (start 175.475991 99.529991) (end 172.552 96.606) (width 0.153) (layer "B.Cu") (net 93) (tstamp 8cb1b8eb-50b8-4a9f-9a50-13d2c09dceb9)) + (segment (start 135.804011 73.720989) (end 134.688 74.837) (width 0.153) (layer "B.Cu") (net 93) (tstamp 945127e9-c832-41ff-a1f3-744b95d271f8)) + (segment (start 176.952011 102.447989) (end 175.475991 100.971969) (width 0.153) (layer "B.Cu") (net 93) (tstamp 94d25cad-e95e-48f1-8aa6-d2113d2dae4b)) + (segment (start 159.766 140.83206) (end 159.766 134.112) (width 0.153) (layer "B.Cu") (net 93) (tstamp baad08c7-56ab-439d-833c-77eaa9b26615)) + (segment (start 157.140011 133.684989) (end 155.663991 132.208969) (width 0.153) (layer "B.Cu") (net 93) (tstamp baf98b89-c0eb-4960-9a34-3f33f20dc588)) + (segment (start 133.858 139.434) (end 133.858 141.224) (width 0.153) (layer "B.Cu") (net 93) (tstamp bf16e2d9-be98-400a-818b-6eab42dacfe9)) + (segment (start 175.475991 100.971969) (end 175.475991 99.529991) (width 0.153) (layer "B.Cu") (net 93) (tstamp cb72bd68-f4c3-4aa9-a920-52103bec3713)) + (segment (start 134.688 74.837) (end 134.688 93.404) (width 0.153) (layer "B.Cu") (net 93) (tstamp f1e0c08b-9031-4819-ae96-2a141e46cb46)) + (segment (start 125.644011 141.900011) (end 160.105989 141.900011) (width 0.153) (layer "F.Cu") (net 94) (tstamp 04bbc413-e283-4b61-8d86-3ef35a6d658a)) + (segment (start 100.584 94.234) (end 100.33 94.488) (width 0.153) (layer "F.Cu") (net 94) (tstamp 0afe783d-5bf2-468e-be7a-3b72947f44a9)) + (segment (start 159.431011 131.144989) (end 157.140011 131.144989) (width 0.153) (layer "F.Cu") (net 94) (tstamp 0fc22e47-e3e4-4f52-8a2d-6e89932d9ec0)) + (segment (start 159.512 131.064) (end 159.431011 131.144989) (width 0.153) (layer "F.Cu") (net 94) (tstamp 1178d5f9-06e1-486d-90df-3b4bb9847340)) + (segment (start 124.46 136.144) (end 124.968 136.652) (width 0.153) (layer "F.Cu") (net 94) (tstamp 132c381c-4387-496f-b6d4-f1cf3f602e2f)) + (segment (start 136.652 94.234) (end 135.89 94.234) (width 0.153) (layer "F.Cu") (net 94) (tstamp 2095df53-ef98-44bc-8f11-92771b0145a1)) + (segment (start 171.876 94.300219) (end 171.809781 94.234) (width 0.153) (layer "F.Cu") (net 94) (tstamp 4745e00d-52fd-4053-8fd0-f39cf97ec6bb)) + (segment (start 137.922 77.47) (end 137.922 80.777928) (width 0.153) (layer "F.Cu") (net 94) (tstamp 521e5fa1-2c68-48bf-8202-3e18777b4420)) + (segment (start 135.89 94.234) (end 100.584 94.234) (width 0.153) (layer "F.Cu") (net 94) (tstamp 7c7d7dbd-c38e-49b4-bc0d-04d2cfdd55b9)) + (segment (start 124.968 141.224) (end 125.644011 141.900011) (width 0.153) (layer "F.Cu") (net 94) (tstamp 7cad555b-56d0-4123-a175-d82151d0b0be)) + (segment (start 160.105989 141.900011) (end 160.528 141.478) (width 0.153) (layer "F.Cu") (net 94) (tstamp a427cd29-1289-4f88-a440-1171f1098ce5)) + (segment (start 137.922 80.777928) (end 137.797964 80.901964) (width 0.153) (layer "F.Cu") (net 94) (tstamp a4cd795b-7712-4fca-bb41-98d7756718ab)) + (segment (start 161.29 94.234) (end 136.652 94.234) (width 0.153) (layer "F.Cu") (net 94) (tstamp bd4dff0b-0826-4ef6-9616-d019db92a268)) + (segment (start 171.809781 94.234) (end 161.29 94.234) (width 0.153) (layer "F.Cu") (net 94) (tstamp c4e8c1a7-abea-49e9-88e3-9a401ee7e8e5)) + (segment (start 123.19 136.144) (end 124.46 136.144) (width 0.153) (layer "F.Cu") (net 94) (tstamp c6b363e7-d579-4adb-9089-40385b8266a2)) + (via (at 100.33 94.488) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp 2a14df37-a18f-467f-bae4-aef847f9e143)) + (via (at 124.968 136.652) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp 43170e90-ecde-4a07-ab23-5381e3afaa15)) + (via (at 137.922 77.47) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp 873b31ee-c2f5-4fc1-802d-856b1dfbfffc)) + (via (at 124.968 141.224) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp 89862d72-f870-47fe-874b-39014e5ff9e1)) + (via (at 159.512 131.064) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp b0e2906b-727b-4321-9edb-c621d676ee2d)) + (via (at 160.528 141.478) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp c4869ae2-e5fb-449a-94ff-8c8c29a9b3c9)) + (via (at 161.29 94.234) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp c48a0440-98ad-430f-bbb5-017b37b88723)) + (via (at 137.797964 80.901964) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp da12eed6-912a-4ef1-bc31-54fc259cb292)) + (via (at 136.652 94.234) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp e1b5850a-c7cc-4c9f-8f3e-3e43c51cabf2)) + (via (at 171.876 94.300219) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 94) (tstamp f6b86680-3331-41ce-8709-2996d571077b)) + (segment (start 161.29 95.758) (end 161.29 94.234) (width 0.153) (layer "B.Cu") (net 94) (tstamp 11aecfe4-735d-46d2-bf53-227a2b2d1ad0)) + (segment (start 159.512 126.731538) (end 160.626519 125.617019) (width 0.153) (layer "B.Cu") (net 94) (tstamp 20bba664-a1e3-4ff3-a1f9-a3f50e6f9f2f)) + (segment (start 137.797964 80.901964) (end 136.906 81.793928) (width 0.153) (layer "B.Cu") (net 94) (tstamp 47c28f90-cd71-48f0-9838-ded5eeea2e3c)) + (segment (start 160.626519 96.421481) (end 161.29 95.758) (width 0.153) (layer "B.Cu") (net 94) (tstamp 50cb73ea-d218-4d16-a282-eecc2f52ae4a)) + (segment (start 136.906 88.138) (end 136.906 93.98) (width 0.153) (layer "B.Cu") (net 94) (tstamp 61e414bf-82f8-4b6b-b66e-975f77b8bd25)) + (segment (start 100.33 94.488) (end 100.244011 94.573989) (width 0.153) (layer "B.Cu") (net 94) (tstamp 7958ad75-6bdf-4ff2-81e7-48a3c32f0c9b)) + (segment (start 160.626519 125.617019) (end 160.626519 96.421481) (width 0.153) (layer "B.Cu") (net 94) (tstamp 83bfed84-942d-4cc6-aded-9d290f1f83ce)) + (segment (start 171.750289 94.42593) (end 171.876 94.300219) (width 0.153) (layer "B.Cu") (net 94) (tstamp 83d96118-32ea-4627-81e8-46442ae55293)) + (segment (start 159.512 131.064) (end 159.512 126.731538) (width 0.153) (layer "B.Cu") (net 94) (tstamp 88660d40-8db7-45ab-8f2a-f31140279f23)) + (segment (start 176.952011 104.987989) (end 175.776182 104.987989) (width 0.153) (layer "B.Cu") (net 94) (tstamp 8adf095b-b562-422a-983d-1bbd0e371e6f)) + (segment (start 136.906 81.793928) (end 136.906 88.138) (width 0.153) (layer "B.Cu") (net 94) (tstamp 9173c061-379f-462b-8c89-7b4f92519871)) + (segment (start 138.344011 77.047989) (end 137.922 77.47) (width 0.153) (layer "B.Cu") (net 94) (tstamp 991661c9-dbe9-46a5-87d6-adc75c917df3)) + (segment (start 124.968 136.652) (end 124.968 141.224) (width 0.153) (layer "B.Cu") (net 94) (tstamp a06c6164-121d-4824-a605-31d579ffd013)) + (segment (start 160.528 132.08) (end 159.512 131.064) (width 0.153) (layer "B.Cu") (net 94) (tstamp a5c682ee-f2ec-4aad-b1e0-5c500720c558)) + (segment (start 171.750289 100.962096) (end 171.750289 94.42593) (width 0.153) (layer "B.Cu") (net 94) (tstamp a94acc18-6062-4ab6-b424-a8cc22f541f5)) + (segment (start 175.776182 104.987989) (end 171.750289 100.962096) (width 0.153) (layer "B.Cu") (net 94) (tstamp dec41eca-196c-4859-a2e8-3d541621c6b3)) + (segment (start 160.528 141.478) (end 160.528 132.08) (width 0.153) (layer "B.Cu") (net 94) (tstamp f46d3a48-8a70-46da-b285-a3f70a416cfb)) + (segment (start 100.244011 94.573989) (end 100.244011 98.637989) (width 0.153) (layer "B.Cu") (net 94) (tstamp fa5a0d5d-11c3-4f16-b85e-81e47abfbb68)) + (segment (start 136.906 93.98) (end 136.652 94.234) (width 0.153) (layer "B.Cu") (net 94) (tstamp fb46aae8-d558-4d97-8237-0f42fe112c1a)) + (segment (start 138.344011 73.720989) (end 138.344011 77.047989) (width 0.153) (layer "B.Cu") (net 94) (tstamp fb7f247a-d4cb-4083-b15c-610cc603d12d)) + (segment (start 138.684 95.25) (end 138.598011 95.164011) (width 0.153) (layer "F.Cu") (net 95) (tstamp 280abadf-d7d0-470c-8f52-5385af0b3bb2)) + (segment (start 139.446 95.25) (end 138.684 95.25) (width 0.153) (layer "F.Cu") (net 95) (tstamp 37cacaf8-9545-49db-986b-28eda39f93fe)) + (segment (start 98.212011 95.164011) (end 97.79 94.742) (width 0.153) (layer "F.Cu") (net 95) (tstamp 38c2ac2c-6adc-49d3-8476-1c1ca6e25cf8)) + (segment (start 125.222 142.494) (end 160.782 142.494) (width 0.153) (layer "F.Cu") (net 95) (tstamp 46bb9798-24c6-4cf3-9622-ff5a15dda441)) + (segment (start 160.100989 128.604989) (end 157.140011 128.604989) (width 0.153) (layer "F.Cu") (net 95) (tstamp 4992fdb8-1d02-40f9-90d4-e37783fa7b64)) + (segment (start 160.274 95.25) (end 160.188011 95.164011) (width 0.153) (layer "F.Cu") (net 95) (tstamp 4c130217-696e-4d44-ace6-c9e7603055e6)) + (segment (start 123.19 133.604) (end 124.714 133.604) (width 0.153) (layer "F.Cu") (net 95) (tstamp 562f1037-af08-4159-a58e-63e7e58ef857)) + (segment (start 160.188011 95.164011) (end 159.597989 95.164011) (width 0.153) (layer "F.Cu") (net 95) (tstamp 5ecdd595-0783-489c-b7b5-4744fd35c4ef)) + (segment (start 124.714 133.604) (end 125.222 134.112) (width 0.153) (layer "F.Cu") (net 95) (tstamp 7df3fd22-de7e-4054-9004-a4746fbf168f)) + (segment (start 159.597989 95.164011) (end 138.598011 95.164011) (width 0.153) (layer "F.Cu") (net 95) (tstamp 90d88e89-357a-4473-bc5d-c9e477b4bc93)) + (segment (start 140.884011 77.815917) (end 140.718964 77.980964) (width 0.153) (layer "F.Cu") (net 95) (tstamp c247838c-6063-412a-8696-ecc4a098fad8)) + (segment (start 138.598011 95.164011) (end 98.212011 95.164011) (width 0.153) (layer "F.Cu") (net 95) (tstamp cab2880f-c15f-4d46-8d26-2a411d0d7b91)) + (segment (start 170.773989 95.164011) (end 159.597989 95.164011) (width 0.153) (layer "F.Cu") (net 95) (tstamp d859513e-390a-4f82-a604-2717c6cca901)) + (segment (start 170.942 94.996) (end 170.773989 95.164011) (width 0.153) (layer "F.Cu") (net 95) (tstamp dbfa1d47-c174-4e8a-8946-b7d26712f8c9)) + (segment (start 160.528 129.032) (end 160.100989 128.604989) (width 0.153) (layer "F.Cu") (net 95) (tstamp e4a4c001-d5d5-4327-92f5-42c799a0a3a6)) + (segment (start 140.884011 73.720989) (end 140.884011 77.815917) (width 0.153) (layer "F.Cu") (net 95) (tstamp ec1605aa-953a-4398-891d-7d565e003c3a)) + (via (at 160.274 95.25) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp 0dd6f2ff-91c9-41cc-a2db-21affad0ea5d)) + (via (at 160.528 129.032) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp 2326e1fe-e71b-4012-a484-420d21f8d27f)) + (via (at 97.79 94.742) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp 2c00e9f0-a92e-447a-bec5-ccc3dd51c787)) + (via (at 160.782 142.494) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp 2edee38e-e93a-4281-8495-d62f7125bebf)) + (via (at 125.222 134.112) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp 68f5c86c-661b-4096-a813-702cb68638ed)) + (via (at 140.718964 77.980964) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp 84626d0e-4082-4cf0-8492-bf7e9cdcc0a8)) + (via (at 139.446 95.25) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp a8ce08a6-3d07-4972-bf48-cd1709b04465)) + (via (at 170.942 94.996) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp ad8e13a7-95d5-4531-82f5-c05ef223752d)) + (via (at 125.222 142.494) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 95) (tstamp c9371e67-e57c-4594-8978-f91170b0640b)) + (segment (start 160.274 125.471) (end 160.274 95.25) (width 0.153) (layer "B.Cu") (net 95) (tstamp 054d48b4-f343-403d-b405-4bc9b38b7ce2)) + (segment (start 139.446 79.253928) (end 139.446 95.25) (width 0.153) (layer "B.Cu") (net 95) (tstamp 2b2e6e7d-b563-4aae-b573-200341c174e8)) + (segment (start 125.644011 134.534011) (end 125.644011 142.071989) (width 0.153) (layer "B.Cu") (net 95) (tstamp 2f54e94d-2de6-45c6-8494-1eb4132408e8)) + (segment (start 140.718964 77.980964) (end 139.446 79.253928) (width 0.153) (layer "B.Cu") (net 95) (tstamp 35ca87cf-25f3-4b95-befb-41c514c6bfc3)) + (segment (start 161.204011 142.071989) (end 161.204011 134.026011) (width 0.153) (layer "B.Cu") (net 95) (tstamp 580c17f7-95bc-4b0a-8d4c-36db427ae677)) + (segment (start 170.942 101.517978) (end 170.942 94.996) (width 0.153) (layer "B.Cu") (net 95) (tstamp 7e069d4f-c857-41eb-b0b4-0e655f3cce1b)) + (segment (start 161.036 133.858) (end 161.036 130.81) (width 0.153) (layer "B.Cu") (net 95) (tstamp 7f52473d-750f-4ec7-ac69-a7d2ed94e2fe)) + (segment (start 160.782 142.494) (end 161.204011 142.071989) (width 0.153) (layer "B.Cu") (net 95) (tstamp b10591d6-69cc-4a30-95b9-936c15a346a0)) + (segment (start 161.036 130.81) (end 161.036 129.54) (width 0.153) (layer "B.Cu") (net 95) (tstamp b3dc6c44-e498-4d65-8b82-29f3ac40c565)) + (segment (start 97.79 94.742) (end 97.704011 94.827989) (width 0.153) (layer "B.Cu") (net 95) (tstamp b997d132-56f5-4a59-9114-7753edd8ffc0)) + (segment (start 161.036 129.54) (end 160.528 129.032) (width 0.153) (layer "B.Cu") (net 95) (tstamp be6f2b1c-81da-4095-bbc1-80d016edf23e)) + (segment (start 157.140011 128.604989) (end 160.274 125.471) (width 0.153) (layer "B.Cu") (net 95) (tstamp c29925b6-40f3-4d1c-8aa1-6cb330f91851)) + (segment (start 161.204011 134.026011) (end 161.036 133.858) (width 0.153) (layer "B.Cu") (net 95) (tstamp cd10a77e-9039-48e1-88f1-30e6cff9af6c)) + (segment (start 125.222 134.112) (end 125.644011 134.534011) (width 0.153) (layer "B.Cu") (net 95) (tstamp cd7dd474-65b2-4bfe-8b79-793a2672f389)) + (segment (start 176.952011 107.527989) (end 170.942 101.517978) (width 0.153) (layer "B.Cu") (net 95) (tstamp d9293267-e1c8-4fb1-aeef-e64792a53c72)) + (segment (start 97.704011 94.827989) (end 97.704011 98.637989) (width 0.153) (layer "B.Cu") (net 95) (tstamp ea1be5a7-fdc7-4431-90d8-b6e7dc7db25b)) + (segment (start 125.644011 142.071989) (end 125.222 142.494) (width 0.153) (layer "B.Cu") (net 95) (tstamp f45cdba4-f6ec-4933-9dde-ddb591f15d05)) + (segment (start 158.622421 57.374978) (end 154.969022 57.374978) (width 0.153) (layer "F.Cu") (net 96) (tstamp 1bd52a38-26db-4e6e-b61a-20cce2a5ca75)) + (segment (start 146.714995 116.742995) (end 147.32 117.348) (width 0.153) (layer "F.Cu") (net 96) (tstamp 211b0445-d650-4fad-94f2-6b21eb6b7c2e)) + (segment (start 152.721639 59.622361) (end 147.760361 59.622361) (width 0.153) (layer "F.Cu") (net 96) (tstamp 2a6e3e15-2515-46d1-966d-688223fdfce1)) + (segment (start 175.488031 59.328009) (end 168.040009 59.328009) (width 0.153) (layer "F.Cu") (net 96) (tstamp 2b93f3ed-77c6-4e53-a7db-11ca385825f3)) + (segment (start 125.065005 116.742995) (end 146.714995 116.742995) (width 0.153) (layer "F.Cu") (net 96) (tstamp 310331c0-7496-4a5e-94d2-a2eb9dc5fb56)) + (segment (start 149.520011 128.604989) (end 150.623033 129.708011) (width 0.153) (layer "F.Cu") (net 96) (tstamp 3224ab5c-9677-4547-a712-6f7272ae269d)) + (segment (start 164.702542 59.33748) (end 160.584923 59.33748) (width 0.153) (layer "F.Cu") (net 96) (tstamp 35a6c42c-9b9e-47b5-83a0-f66aa4fbfedc)) + (segment (start 164.5445 129.708011) (end 164.966511 129.286) (width 0.153) (layer "F.Cu") (net 96) (tstamp 40fabc39-b829-4da7-a256-5b4d7317587d)) + (segment (start 154.969022 57.374978) (end 152.721639 59.622361) (width 0.153) (layer "F.Cu") (net 96) (tstamp 580faa35-43e6-44e7-ad00-b400078f484c)) + (segment (start 144.204361 59.622361) (end 143.374722 60.452) (width 0.153) (layer "F.Cu") (net 96) (tstamp 87ee3d88-ef28-4dd4-9574-5c8ac74f1780)) + (segment (start 150.623033 129.708011) (end 164.5445 129.708011) (width 0.153) (layer "F.Cu") (net 96) (tstamp 9b60c8ab-fdb0-4b87-8045-126ccc8030be)) + (segment (start 176.952011 60.791989) (end 175.488031 59.328009) (width 0.153) (layer "F.Cu") (net 96) (tstamp a981cb20-9159-4fe6-a383-83527b953fdc)) + (segment (start 113.792 95.840011) (end 108.204 95.840011) (width 0.153) (layer "F.Cu") (net 96) (tstamp b98a51e4-b94f-4f4a-91a7-e1a439cdcf4d)) + (segment (start 168.040009 59.328009) (end 167.725989 59.013989) (width 0.153) (layer "F.Cu") (net 96) (tstamp c8cb9af9-cd6e-46a0-b91d-ce4d0b075ee5)) + (segment (start 147.908989 128.604989) (end 147.32 128.016) (width 0.153) (layer "F.Cu") (net 96) (tstamp d1472820-24c1-41c4-9341-1d2374c82f25)) + (segment (start 149.520011 128.604989) (end 147.908989 128.604989) (width 0.153) (layer "F.Cu") (net 96) (tstamp db8cab9d-6597-4f11-849e-6babdc470e34)) + (segment (start 147.760361 59.622361) (end 144.204361 59.622361) (width 0.153) (layer "F.Cu") (net 96) (tstamp dd217fcc-0997-457b-9774-907d39586513)) + (segment (start 143.374722 60.452) (end 117.856 60.452) (width 0.153) (layer "F.Cu") (net 96) (tstamp e565c9d6-7777-4802-9bbc-37f3fd166dfc)) + (segment (start 167.725989 59.013989) (end 165.026033 59.013989) (width 0.153) (layer "F.Cu") (net 96) (tstamp ec1c21ab-010a-4325-8fc2-3e42f61d03e6)) + (segment (start 165.026033 59.013989) (end 164.702542 59.33748) (width 0.153) (layer "F.Cu") (net 96) (tstamp ed9e0ebd-c512-404d-aa5a-9c0cfc95ea4a)) + (segment (start 160.584923 59.33748) (end 158.622421 57.374978) (width 0.153) (layer "F.Cu") (net 96) (tstamp ee3b186d-3285-433e-821b-340a1f1fabed)) + (via (at 125.065005 116.742995) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp 3b47d1fb-8ece-4926-af09-8fdcddfa3a36)) + (via (at 147.760361 59.622361) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp 40679a14-31a4-491a-b955-812e5b7a66e5)) + (via (at 147.32 128.016) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp 5cbc69dc-bade-4f19-84ff-8211a74ba13c)) + (via (at 113.792 95.840011) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp b1054118-81cf-4390-8579-fa0e32cf582f)) + (via (at 147.32 117.348) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp b4fdb35e-9fa7-49de-9853-808384f4f47a)) + (via (at 164.966511 129.286) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp e6f5225c-3a59-4255-b9ee-f731a99e2e29)) + (via (at 108.204 95.840011) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp fa182492-8175-4773-aab1-50028665ebc0)) + (via (at 117.856 60.452) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 96) (tstamp fa6ed117-4f55-4f26-adf5-21dc47e6cac2)) + (segment (start 114.408 74.797) (end 114.408 95.224011) (width 0.153) (layer "B.Cu") (net 96) (tstamp 0369ac05-636f-47f8-8e14-aacc80c110ac)) + (segment (start 108.204 95.840011) (end 107.864011 96.18) (width 0.153) (layer "B.Cu") (net 96) (tstamp 04b597d3-379b-420b-833c-4dd665f2fe12)) + (segment (start 164.592 123.444) (end 163.317 123.444) (width 0.153) (layer "B.Cu") (net 96) (tstamp 077629db-6740-4000-aea5-9de01a1bf1d0)) + (segment (start 147.32 117.348) (end 147.32 60.062722) (width 0.153) (layer "B.Cu") (net 96) (tstamp 09c8f157-2c93-41ca-8539-98ca09da717f)) + (segment (start 125.065005 116.742995) (end 123.444 118.364) (width 0.153) (layer "B.Cu") (net 96) (tstamp 0bdff0ca-f61f-4082-9396-7bc6687b042a)) + (segment (start 115.484011 73.720989) (end 114.408 74.797) (width 0.153) (layer "B.Cu") (net 96) (tstamp 14ba2f97-df75-42d5-a684-12080dc8de3a)) + (segment (start 107.864011 96.18) (end 107.864011 98.637989) (width 0.153) (layer "B.Cu") (net 96) (tstamp 45614e92-df9b-446c-b354-b86a4be657cc)) + (segment (start 147.32 128.016) (end 147.32 117.348) (width 0.153) (layer "B.Cu") (net 96) (tstamp 4ecf2168-17c5-4109-b8a9-456884e6e712)) + (segment (start 164.966511 129.286) (end 164.966511 123.818511) (width 0.153) (layer "B.Cu") (net 96) (tstamp 84121085-e076-41d0-9e51-3611b4bb143a)) + (segment (start 147.32 60.062722) (end 147.760361 59.622361) (width 0.153) (layer "B.Cu") (net 96) (tstamp a1031473-b6d8-458a-9e5c-b8929e513d8a)) + (segment (start 163.317 123.444) (end 163.236011 123.524989) (width 0.153) (layer "B.Cu") (net 96) (tstamp aacc9053-e892-4aec-bc82-695916696241)) + (segment (start 123.444 118.364) (end 123.19 118.364) (width 0.153) (layer "B.Cu") (net 96) (tstamp ba0d3380-9a63-4bc2-9e63-18b312114e91)) + (segment (start 114.408 95.224011) (end 113.792 95.840011) (width 0.153) (layer "B.Cu") (net 96) (tstamp d477b635-439c-4c08-b7b7-f4a800c9c58f)) + (segment (start 117.856 60.452) (end 115.484011 62.823989) (width 0.153) (layer "B.Cu") (net 96) (tstamp de336ff9-7035-47b8-8363-b99313b67681)) + (segment (start 164.966511 123.818511) (end 164.592 123.444) (width 0.153) (layer "B.Cu") (net 96) (tstamp de84d871-c860-4ac0-b649-ff493dd357fa)) + (segment (start 115.484011 62.823989) (end 115.484011 73.720989) (width 0.153) (layer "B.Cu") (net 96) (tstamp ec64d2ff-a1be-491b-b00f-ea5e71c0f7f0)) + (segment (start 169.926 89.071989) (end 165.944011 89.071989) (width 0.153) (layer "F.Cu") (net 97) (tstamp 0d779ae2-7c11-4b75-9ed7-8e0498ad6009)) + (segment (start 105.41 88.9) (end 106.172 88.138) (width 0.153) (layer "F.Cu") (net 97) (tstamp 22faeb3a-7193-4833-ad63-5af8f61315d6)) + (segment (start 145.205989 89.071989) (end 144.272 88.138) (width 0.153) (layer "F.Cu") (net 97) (tstamp 624099d6-59e0-4937-8cf0-31e3e44d23d0)) + (segment (start 106.172 88.138) (end 144.272 88.138) (width 0.153) (layer "F.Cu") (net 97) (tstamp 8d9d12d4-ca0b-46f2-9a0b-7ae3ab6f0f60)) + (segment (start 165.944011 89.071989) (end 145.205989 89.071989) (width 0.153) (layer "F.Cu") (net 97) (tstamp d9824c55-fd2e-42fc-9f56-e7a4f90f3d70)) + (via (at 165.944011 89.071989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp 2e344f82-9c97-4308-8080-3143d3067432)) + (via (at 169.926 89.071989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp 658bce0f-bb38-4fb9-8c75-2f28026ffcfe)) + (via (at 105.41 88.9) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 97) (tstamp b113c840-43a2-4125-91cc-8e19bda5cda8)) + (segment (start 105.324011 88.985989) (end 105.324011 98.637989) (width 0.153) (layer "B.Cu") (net 97) (tstamp 48f987a2-a2a4-427c-8474-5b07b10dfa2a)) + (segment (start 161.544 97.780538) (end 166.116 93.208538) (width 0.153) (layer "B.Cu") (net 97) (tstamp 6306b161-7cbd-4f99-9031-2727e21073ed)) + (segment (start 175.26 65.024) (end 175.26 83.312) (width 0.153) (layer "B.Cu") (net 97) (tstamp 6ea4b74b-b449-4bf2-82c0-d96faae023ac)) + (segment (start 161.544 124.372978) (end 161.544 97.780538) (width 0.153) (layer "B.Cu") (net 97) (tstamp 890bb53b-cc18-4a62-b5a4-8955e084c2be)) + (segment (start 166.116 93.208538) (end 166.116 89.243978) (width 0.153) (layer "B.Cu") (net 97) (tstamp 90c9314d-d1e4-4f52-b11d-e4ed58f10be0)) + (segment (start 176.952011 63.331989) (end 175.26 65.024) (width 0.153) (layer "B.Cu") (net 97) (tstamp 989f6e33-c98f-4410-8fa4-28e531ffe172)) + (segment (start 163.236011 126.064989) (end 161.544 124.372978) (width 0.153) (layer "B.Cu") (net 97) (tstamp b0423f3b-8ba5-4502-ab23-bc31f9a73941)) + (segment (start 166.116 89.243978) (end 165.944011 89.071989) (width 0.153) (layer "B.Cu") (net 97) (tstamp bd85d824-388f-4ee9-a787-09098e8d41d7)) + (segment (start 174.08634 83.312) (end 169.926 87.47234) (width 0.153) (layer "B.Cu") (net 97) (tstamp d4b23562-e3f9-438e-86f5-c61b8b3c25d6)) + (segment (start 169.926 87.47234) (end 169.926 89.071989) (width 0.153) (layer "B.Cu") (net 97) (tstamp d920233b-47cf-4b07-81d2-4f1810fdbed4)) + (segment (start 105.41 88.9) (end 105.324011 88.985989) (width 0.153) (layer "B.Cu") (net 97) (tstamp f282e691-1ac7-4c25-8fb0-429c944a136b)) + (segment (start 175.26 83.312) (end 174.08634 83.312) (width 0.153) (layer "B.Cu") (net 97) (tstamp f7bc900a-cef2-403c-adb2-ab1120a6ca1a)) + (segment (start 166.624 80.264) (end 167.132 79.756) (width 0.153) (layer "F.Cu") (net 98) (tstamp 298429aa-b9fe-4fe9-8ab1-4e52fb62da02)) + (segment (start 167.132 79.756) (end 178.722511 79.756) (width 0.153) (layer "F.Cu") (net 98) (tstamp eaff18e1-b7f5-4313-b9ab-a19ed4797e3c)) + (via (at 178.722511 79.756) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 98) (tstamp 22de0127-cab0-41cb-84ba-e19e46e4a1ea)) + (via (at 166.624 80.264) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 98) (tstamp a384912f-ee59-48ae-9171-38f7c43b0d2d)) + (segment (start 178.722511 79.756) (end 178.722511 65.946511) (width 0.153) (layer "B.Cu") (net 98) (tstamp 06f0b516-c700-499c-a391-cc6ba5276593)) + (segment (start 178.562 65.786) (end 178.476011 65.871989) (width 0.153) (layer "B.Cu") (net 98) (tstamp 13152b73-fce8-499d-bd61-0ee14194d9d4)) + (segment (start 163.236011 128.604989) (end 161.036 126.404978) (width 0.153) (layer "B.Cu") (net 98) (tstamp 2576fd49-abff-443c-91fe-92e27cf80c16)) + (segment (start 161.036 97.79) (end 165.354 93.472) (width 0.153) (layer "B.Cu") (net 98) (tstamp 3f30038c-a630-430e-b905-010756f5acd4)) + (segment (start 161.036 126.404978) (end 161.036 97.79) (width 0.153) (layer "B.Cu") (net 98) (tstamp 41117fc9-ebe0-4201-b64b-f04da5ef9858)) + (segment (start 165.354 89.408) (end 165.1 89.154) (width 0.153) (layer "B.Cu") (net 98) (tstamp 7b493daa-00cc-424e-8a6c-f99c2e08ae97)) + (segment (start 165.608 81.28) (end 166.624 80.264) (width 0.153) (layer "B.Cu") (net 98) (tstamp 9e068493-2043-40dc-be64-adfed2311e1d)) + (segment (start 165.1 82.042) (end 165.608 81.534) (width 0.153) (layer "B.Cu") (net 98) (tstamp a3470146-1ad5-4d28-98aa-6ac3fdd225c9)) + (segment (start 165.608 81.534) (end 165.608 81.28) (width 0.153) (layer "B.Cu") (net 98) (tstamp ab5925ef-651f-459b-bd52-6fdcbae0df62)) + (segment (start 178.722511 65.946511) (end 178.562 65.786) (width 0.153) (layer "B.Cu") (net 98) (tstamp bd1bda33-a6e8-4b7a-84c9-4708052367e9)) + (segment (start 165.1 89.154) (end 165.1 82.042) (width 0.153) (layer "B.Cu") (net 98) (tstamp d9250175-01cd-4d68-9b17-72df05a0f673)) + (segment (start 165.354 93.472) (end 165.354 89.408) (width 0.153) (layer "B.Cu") (net 98) (tstamp f45455f3-1402-4823-9611-cfe2a47af47e)) + (segment (start 178.476011 65.871989) (end 176.952011 65.871989) (width 0.153) (layer "B.Cu") (net 98) (tstamp f4eda90d-f85a-44aa-8578-e7ae414120a2)) + (segment (start 169.164 129.794) (end 167.813011 131.144989) (width 0.153) (layer "F.Cu") (net 99) (tstamp 055a0a23-17b5-46db-9c57-a50cc40d8ba3)) + (segment (start 167.813011 131.144989) (end 163.236011 131.144989) (width 0.153) (layer "F.Cu") (net 99) (tstamp 2a79b406-01b1-4910-87a0-10ad61322f38)) + (segment (start 168.656 81.534) (end 166.937975 81.534) (width 0.153) (layer "F.Cu") (net 99) (tstamp 53487912-ee9f-45cb-81f1-9eee4564bf9b)) + (segment (start 166.937975 81.534) (end 165.413975 80.01) (width 0.153) (layer "F.Cu") (net 99) (tstamp 8f5c8b56-c7dd-49a7-a266-d55191194447)) + (segment (start 168.884031 69.875969) (end 168.656 70.104) (width 0.153) (layer "F.Cu") (net 99) (tstamp b0e2fee4-00b6-4f32-b564-cdfe25d26df4)) + (segment (start 176.952011 68.411989) (end 172.897473 68.411989) (width 0.153) (layer "F.Cu") (net 99) (tstamp ca1d02d9-97c2-481d-b327-7db9c8485b97)) + (segment (start 172.897473 68.411989) (end 171.433493 69.875969) (width 0.153) (layer "F.Cu") (net 99) (tstamp f567b8ef-2e4d-499d-97ea-2aa8407120a4)) + (segment (start 171.433493 69.875969) (end 168.884031 69.875969) (width 0.153) (layer "F.Cu") (net 99) (tstamp fb0f7b5c-5f4a-483f-b9f8-cb6cea2f1e73)) + (via (at 165.624959 80.233616) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 99) (tstamp 47bfb954-7eac-4b7e-91fa-cf4363a3f79e)) + (via (at 168.656 81.534) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 99) (tstamp 50a44b93-c39c-44cc-ab4c-3226d338b611)) + (via (at 168.656 70.104) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 99) (tstamp 8357c2de-ee61-43ba-8644-e5e9505c9117)) + (via (at 169.164 129.794) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 99) (tstamp d67b926d-1683-4eea-8655-558afc0c6faa)) + (segment (start 168.656 77.202575) (end 165.624959 80.233616) (width 0.153) (layer "B.Cu") (net 99) (tstamp 023bcc7e-d846-4274-9deb-47b78abbe970)) + (segment (start 168.656 70.104) (end 168.656 77.202575) (width 0.153) (layer "B.Cu") (net 99) (tstamp 307eadd9-28d3-4b4f-bd7e-8fd282de5da7)) + (segment (start 169.164 129.794) (end 169.164 119.888) (width 0.153) (layer "B.Cu") (net 99) (tstamp 6ebd7e4a-cf36-4c5d-b67f-e867eb2d0ec3)) + (segment (start 169.164 82.042) (end 168.656 81.534) (width 0.153) (layer "B.Cu") (net 99) (tstamp 6f51cc95-701e-4eab-b932-ff0c0ae8a72f)) + (segment (start 169.164 119.888) (end 169.164 82.042) (width 0.153) (layer "B.Cu") (net 99) (tstamp 89e80b59-bcbe-4313-a974-f76ec9f0254b)) + (segment (start 172.805989 70.951989) (end 172.72 70.866) (width 0.153) (layer "F.Cu") (net 100) (tstamp 55d81435-736e-40b4-a41e-14a5437b3fab)) + (segment (start 176.952011 70.951989) (end 172.805989 70.951989) (width 0.153) (layer "F.Cu") (net 100) (tstamp ea9b0c91-823e-49cd-9b5e-12459c7a5ba3)) + (via (at 172.72 70.866) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 100) (tstamp 6624aa7d-e6c0-4171-bf57-d809df36d58d)) + (segment (start 172.72 79.248) (end 170.856011 81.111989) (width 0.153) (layer "B.Cu") (net 100) (tstamp 4bb7560f-00ac-4216-a28a-0fdf07c50cbe)) + (segment (start 172.72 70.866) (end 172.72 79.248) (width 0.153) (layer "B.Cu") (net 100) (tstamp dc669a0c-be80-4490-8d1c-8919cbb60976)) + (segment (start 173.396011 73.491989) (end 170.856011 76.031989) (width 0.153) (layer "F.Cu") (net 101) (tstamp 00e39eab-2d9a-4ade-86aa-d30984a6b7e0)) + (segment (start 176.952011 73.491989) (end 173.396011 73.491989) (width 0.153) (layer "F.Cu") (net 101) (tstamp 4d60ad1e-e02c-4ff3-8b78-ce51c17269d6)) + (segment (start 173.735989 76.031989) (end 173.396 75.692) (width 0.153) (layer "F.Cu") (net 102) (tstamp 046593bd-0067-498b-8116-f4ea16fe4921)) + (segment (start 173.668211 70.275989) (end 173.668211 70.425789) (width 0.153) (layer "F.Cu") (net 102) (tstamp 7d049e2d-810e-43fc-9d1b-8365554a1075)) + (segment (start 173.668211 70.425789) (end 173.432411 70.189989) (width 0.153) (layer "F.Cu") (net 102) (tstamp 8c3c55d5-5789-4394-b624-9cf2d32946d7)) + (segment (start 173.432411 70.189989) (end 171.618011 70.189989) (width 0.153) (layer "F.Cu") (net 102) (tstamp a16f9451-2ef3-4b71-a4aa-21feaf5d440f)) + (segment (start 176.952011 76.031989) (end 173.735989 76.031989) (width 0.153) (layer "F.Cu") (net 102) (tstamp c5449350-e56c-4ee5-a900-907a950e2ac3)) + (segment (start 171.618011 70.189989) (end 170.856011 70.951989) (width 0.153) (layer "F.Cu") (net 102) (tstamp f1e9be9d-94f9-44bb-b612-138942de7865)) + (via (at 173.668211 70.275989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 102) (tstamp 3946a672-038c-441f-851e-419d993df391)) + (via (at 173.396 75.692) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 102) (tstamp d772fbdf-16f9-4663-aa4d-ef88a57493e9)) + (segment (start 173.668211 75.419789) (end 173.668211 70.275989) (width 0.153) (layer "B.Cu") (net 102) (tstamp d39fc335-8bc0-4c33-9d35-f1b1f4248b67)) + (segment (start 173.396 75.692) (end 173.668211 75.419789) (width 0.153) (layer "B.Cu") (net 102) (tstamp ec7e7693-74a6-4f40-876d-f97164e515c1)) + (segment (start 173.567989 78.571989) (end 173.482 78.486) (width 0.153) (layer "F.Cu") (net 103) (tstamp 1f79eed3-60fb-437f-af7a-39d857d41878)) + (segment (start 172.805989 65.871989) (end 170.856011 65.871989) (width 0.153) (layer "F.Cu") (net 103) (tstamp 33f14199-d704-45ea-a3e4-b843a14328fd)) + (segment (start 172.974 66.04) (end 172.805989 65.871989) (width 0.153) (layer "F.Cu") (net 103) (tstamp 727527ec-097b-4d1b-b9a3-f2dbdeb6d0bb)) + (segment (start 176.952011 78.571989) (end 173.567989 78.571989) (width 0.153) (layer "F.Cu") (net 103) (tstamp 947b2df8-80e3-48e4-8fe6-1f9051300f33)) + (via (at 173.482 78.486) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 103) (tstamp 232ed077-a6b2-41c5-b3c3-d991af30ef61)) + (via (at 172.974 66.04) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 103) (tstamp 397391ee-7c44-4570-8e3a-829dffab62fe)) + (segment (start 174.344222 71.019778) (end 174.344222 67.410222) (width 0.153) (layer "B.Cu") (net 103) (tstamp 1fa6812c-835d-468a-8877-dcb3ffa3dbce)) + (segment (start 174.072011 77.895989) (end 174.072011 71.291989) (width 0.153) (layer "B.Cu") (net 103) (tstamp 3e05f0be-061e-4ddf-ae44-34cd51a85ed9)) + (segment (start 173.482 78.486) (end 174.072011 77.895989) (width 0.153) (layer "B.Cu") (net 103) (tstamp 675ede1d-c2a9-45be-b190-a094580d2ae6)) + (segment (start 174.244 71.12) (end 174.344222 71.019778) (width 0.153) (layer "B.Cu") (net 103) (tstamp ba38a82a-4fd3-428c-abed-26c4be919ac8)) + (segment (start 174.344222 67.410222) (end 172.974 66.04) (width 0.153) (layer "B.Cu") (net 103) (tstamp c312a2f1-ab11-4478-89a5-852e7a244a50)) + (segment (start 174.072011 71.291989) (end 174.244 71.12) (width 0.153) (layer "B.Cu") (net 103) (tstamp e56d68dd-10ee-4488-bcf4-70be1dd7a11c)) + (segment (start 113.998022 80.035978) (end 113.527 80.507) (width 0.153) (layer "F.Cu") (net 104) (tstamp 1a587d70-a43c-41be-9338-6253db01963e)) + (segment (start 95.926011 80.603989) (end 113.430011 80.603989) (width 0.153) (layer "F.Cu") (net 104) (tstamp 1de10e49-5e6b-4ea1-8088-2896040c7441)) + (segment (start 190.384012 83.173988) (end 189.506024 82.296) (width 0.153) (layer "F.Cu") (net 104) (tstamp 248c1e11-ccfb-48a8-8f7d-9b8a22293b8c)) + (segment (start 130.327978 80.035978) (end 113.998022 80.035978) (width 0.153) (layer "F.Cu") (net 104) (tstamp 278e5ce4-670d-4322-900b-e7af6e0bb8be)) + (segment (start 153.063978 81.181978) (end 138.473975 81.181978) (width 0.153) (layer "F.Cu") (net 104) (tstamp 27da3893-a91c-4540-9f01-a93ba92bb235)) + (segment (start 130.048 79.502) (end 130.327978 79.781978) (width 0.153) (layer "F.Cu") (net 104) (tstamp 28fed9ed-21d4-46f3-b68d-009abb5a9773)) + (segment (start 86.106 84.582) (end 91.948 84.582) (width 0.153) (layer "F.Cu") (net 104) (tstamp 2b977c13-818c-480a-8482-33e46e27c09b)) + (segment (start 111.846 97.196) (end 110.404011 98.637989) (width 0.153) (layer "F.Cu") (net 104) (tstamp 45f62cf8-c27a-4775-8028-c2697f589c4e)) + (segment (start 197.866 71.882) (end 198.917011 72.933011) (width 0.153) (layer "F.Cu") (net 104) (tstamp 4d80a9da-5a0b-4c8e-9855-4403cec472c8)) + (segment (start 198.220367 83.173988) (end 190.384012 83.173988) (width 0.153) (layer "F.Cu") (net 104) (tstamp 55aaefef-5a9f-470c-be4a-88370c127f80)) + (segment (start 130.327978 79.781978) (end 130.327978 80.035978) (width 0.153) (layer "F.Cu") (net 104) (tstamp 78f48891-53ad-44ed-b4bf-def711ac079b)) + (segment (start 189.506024 82.296) (end 154.178 82.296) (width 0.153) (layer "F.Cu") (net 104) (tstamp 87782c71-9754-4c03-9064-40ef503b365a)) + (segment (start 198.917011 72.933011) (end 198.917011 82.477344) (width 0.153) (layer "F.Cu") (net 104) (tstamp 963e3ccc-4b40-4b2d-bb80-d43a60a86aa7)) + (segment (start 136.20971 80.035978) (end 130.327978 80.035978) (width 0.153) (layer "F.Cu") (net 104) (tstamp 9b291a0d-0428-4880-9c74-dd76a7f2a3fd)) + (segment (start 112.172538 97.196) (end 111.846 97.196) (width 0.153) (layer "F.Cu") (net 104) (tstamp a5a7f0e9-37be-4198-8a74-d541fad62c85)) + (segment (start 136.840022 80.66629) (end 136.20971 80.035978) (width 0.153) (layer "F.Cu") (net 104) (tstamp a85323a5-d1f3-441b-b3d6-879a8dd97ecc)) + (segment (start 113.430011 80.603989) (end 113.527 80.507) (width 0.153) (layer "F.Cu") (net 104) (tstamp aa156a11-71a8-453d-b78f-d13dbdb327c2)) + (segment (start 154.178 82.296) (end 153.063978 81.181978) (width 0.153) (layer "F.Cu") (net 104) (tstamp bad761a8-773a-4365-b287-09a13a981dd0)) + (segment (start 198.917011 82.477344) (end 198.220367 83.173988) (width 0.153) (layer "F.Cu") (net 104) (tstamp bb0eed3c-4b1c-440d-8964-be5f2f971f9e)) + (segment (start 138.473975 81.181978) (end 138.077978 81.577975) (width 0.153) (layer "F.Cu") (net 104) (tstamp d2e28132-5465-432c-8191-6df6be89f68b)) + (segment (start 91.948 84.582) (end 95.926011 80.603989) (width 0.153) (layer "F.Cu") (net 104) (tstamp d60b6f99-90f9-4138-bc75-b2bfe9d9e801)) + (segment (start 113.527 80.507) (end 112.522 81.512) (width 0.153) (layer "F.Cu") (net 104) (tstamp d841acd2-2568-4303-b2a6-ce2190259387)) + (segment (start 137.391997 81.577975) (end 136.840022 81.026) (width 0.153) (layer "F.Cu") (net 104) (tstamp ea0cf1e9-e6a6-41d5-967f-a2dc86b483ba)) + (segment (start 138.077978 81.577975) (end 137.391997 81.577975) (width 0.153) (layer "F.Cu") (net 104) (tstamp ea4c9353-6235-4ccc-a490-a23ae2a84b18)) + (segment (start 136.840022 81.026) (end 136.840022 80.66629) (width 0.153) (layer "F.Cu") (net 104) (tstamp ee21401c-8626-4442-8fab-1b8667c61872)) + (via (at 112.172538 97.196) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 104) (tstamp 6dfc7607-753b-42d4-a7c0-f4af38e14d9e)) + (via (at 112.522 81.512) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 104) (tstamp 90b79843-9af5-4abd-b32e-f7e8a1a7c055)) + (via (at 130.048 79.502) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 104) (tstamp bd631d25-c4d3-4dfd-857d-5758a7c83797)) + (segment (start 111.868 82.166) (end 111.868 96.891462) (width 0.153) (layer "B.Cu") (net 104) (tstamp 026c4973-674f-48ba-b492-194b94bb20b3)) + (segment (start 129.53 108.199) (end 129.53 92.742036) (width 0.153) (layer "B.Cu") (net 104) (tstamp 3bde8baf-bf21-4c82-b4a3-a1306c89718d)) + (segment (start 129.962011 92.310025) (end 129.962011 84.157699) (width 0.153) (layer "B.Cu") (net 104) (tstamp 4ae2f50a-03a0-4b39-9079-a963fcb3f68c)) + (segment (start 129.648 79.902) (end 130.048 79.502) (width 0.153) (layer "B.Cu") (net 104) (tstamp 54c071f1-f679-439f-851a-ec424af893e5)) + (segment (start 129.648 83.843688) (end 129.648 79.902) (width 0.153) (layer "B.Cu") (net 104) (tstamp 71fb5b31-746a-4b38-94f9-e1ddea6a1917)) + (segment (start 111.868 96.891462) (end 112.172538 97.196) (width 0.153) (layer "B.Cu") (net 104) (tstamp 7effe963-ed53-4295-a954-555a27c69719)) + (segment (start 129.962011 84.157699) (end 129.648 83.843688) (width 0.153) (layer "B.Cu") (net 104) (tstamp 7f3ce262-913e-4532-8ef4-073d4865a8fa)) + (segment (start 129.53 92.742036) (end 129.962011 92.310025) (width 0.153) (layer "B.Cu") (net 104) (tstamp adf3f024-cd7d-4127-b632-cb314ad61bde)) + (segment (start 112.522 81.512) (end 111.868 82.166) (width 0.153) (layer "B.Cu") (net 104) (tstamp d8436b18-99fe-4297-b15a-0f9e331352d8)) + (segment (start 47.608011 108.855989) (end 46.482 109.982) (width 0.153) (layer "F.Cu") (net 105) (tstamp 4bae2c89-a446-4a3d-bbb9-b45643e9b460)) + (segment (start 56.896 109.22) (end 56.531989 108.855989) (width 0.153) (layer "F.Cu") (net 105) (tstamp 66b89b29-5fdd-469a-a320-5ca75f50f040)) + (segment (start 56.531989 108.855989) (end 47.608011 108.855989) (width 0.153) (layer "F.Cu") (net 105) (tstamp fed4f588-860d-499e-b77d-5da4b86c65bd)) + (segment (start 147.43198 123.524989) (end 146.644 122.737009) (width 0.153) (layer "F.Cu") (net 106) (tstamp 06982e35-e70a-49ec-8ee1-96b77220a29f)) + (segment (start 149.520011 123.524989) (end 147.43198 123.524989) (width 0.153) (layer "F.Cu") (net 106) (tstamp 12c1fec4-f6c9-4678-9e5a-addb23d96a09)) + (segment (start 128.356 97.282) (end 128.27 97.196) (width 0.153) (layer "F.Cu") (net 106) (tstamp 57226b86-8bfc-4f34-9962-760fec9645a0)) + (segment (start 146.558 97.282) (end 128.356 97.282) (width 0.153) (layer "F.Cu") (net 106) (tstamp 79ba8637-0e7d-4c41-857a-21b8cca58449)) + (via (at 146.558 97.282) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 106) (tstamp 08d2fa8b-e7b2-4ba7-8b3a-6c338361c13d)) + (via (at 146.644 122.737009) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 106) (tstamp 28bf9a00-d219-42dc-bc93-1205b7caa3ae)) + (via (at 128.27 97.196) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 106) (tstamp 969b8c3e-e766-4f2a-afb5-b3a29a5fe618)) + (segment (start 146.644 122.737009) (end 146.644 97.368) (width 0.153) (layer "B.Cu") (net 106) (tstamp 350c050d-7bb0-4fae-ae10-95750bfa19d0)) + (segment (start 146.644 97.368) (end 146.558 97.282) (width 0.153) (layer "B.Cu") (net 106) (tstamp 43866f0e-3403-4990-89d4-78175c16bcd7)) + (segment (start 128.27 98.552) (end 128.184011 98.637989) (width 0.153) (layer "B.Cu") (net 106) (tstamp 4af28255-af56-4a67-b621-201bf3bcb737)) + (segment (start 128.27 97.196) (end 128.27 98.552) (width 0.153) (layer "B.Cu") (net 106) (tstamp 4c023176-4bf0-4894-b9e2-b3280b524d12)) + (segment (start 134.366 82.296) (end 133.264011 83.397989) (width 0.153) (layer "F.Cu") (net 112) (tstamp 0502cf59-662d-4137-beab-92bea9ec95b6)) + (segment (start 152.902489 115.904989) (end 149.520011 115.904989) (width 0.153) (layer "F.Cu") (net 112) (tstamp 10bf76be-872b-415a-9eab-9a07ad8a6bc0)) + (segment (start 176.952011 131.144989) (end 175.875991 132.221009) (width 0.153) (layer "F.Cu") (net 112) (tstamp 17bed37a-23b7-43f2-9170-94868af11ba8)) + (segment (start 152.146 82.042) (end 152 82.188) (width 0.153) (layer "F.Cu") (net 112) (tstamp 4d76a28a-7770-44db-95c0-30dac7f128f9)) + (segment (start 153.274991 132.221009) (end 153.162 132.334) (width 0.153) (layer "F.Cu") (net 112) (tstamp 7f89df2e-2b22-457f-a0d5-f39af97e8779)) + (segment (start 96.774 81.788) (end 101.346 81.788) (width 0.153) (layer "F.Cu") (net 112) (tstamp 910a4e2b-9b09-4bac-98c6-986d951d84c6)) + (segment (start 101.346 81.788) (end 101.6 81.534) (width 0.153) (layer "F.Cu") (net 112) (tstamp 97572ba6-e8c9-422d-9a89-956b1fbdb208)) + (segment (start 101.6 81.534) (end 102.254 82.188) (width 0.153) (layer "F.Cu") (net 112) (tstamp a4fa3d31-1b73-40af-a57b-d985ac3bdff0)) + (segment (start 175.875991 132.221009) (end 153.274991 132.221009) (width 0.153) (layer "F.Cu") (net 112) (tstamp ac87c8b1-7da6-41a3-a0da-b760ad7b4c2b)) + (segment (start 153.0755 116.078) (end 152.902489 115.904989) (width 0.153) (layer "F.Cu") (net 112) (tstamp b8b30303-9430-4e80-82ba-53c751b1d4a1)) + (segment (start 134.474 82.188) (end 134.366 82.296) (width 0.153) (layer "F.Cu") (net 112) (tstamp c04c93b2-ac3d-4da0-bdd9-10405558da53)) + (segment (start 152 82.188) (end 134.474 82.188) (width 0.153) (layer "F.Cu") (net 112) (tstamp d52cea5e-5d6b-4de3-86fc-0942bb61ae4e)) + (segment (start 102.254 82.188) (end 134.258 82.188) (width 0.153) (layer "F.Cu") (net 112) (tstamp df4f484b-29c0-4341-8987-3c13fecb9d38)) + (segment (start 134.258 82.188) (end 134.366 82.296) (width 0.153) (layer "F.Cu") (net 112) (tstamp f995a195-4f5a-4245-a742-4de5c83aca03)) + (via (at 153.162 132.334) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 112) (tstamp 05a80a66-5d93-438e-8b81-eac21c56f913)) + (via (at 101.6 81.534) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 112) (tstamp 723eb018-ddf4-42fc-a624-3eaf40fa9c89)) + (via (at 153.0755 116.078) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 112) (tstamp 7a7e6508-3ae3-4093-aa84-6a019f7b81a5)) + (via (at 152.146 82.042) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 112) (tstamp b67bb17a-663b-4dc5-8c83-f11dd7238de8)) + (via (at 96.774 81.788) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 112) (tstamp cb1e27e6-b6cb-4b53-abaa-1e2d9caf4065)) + (segment (start 154.178 112.268) (end 151.638 109.728) (width 0.153) (layer "B.Cu") (net 112) (tstamp 10864117-6b36-486c-9f98-4c445d9ff4e4)) + (segment (start 151.638 92.202) (end 153.162 90.678) (width 0.153) (layer "B.Cu") (net 112) (tstamp 40db0c08-438a-46df-9f26-c58c612faa20)) + (segment (start 96.52 102.87) (end 96.52 101.771978) (width 0.153) (layer "B.Cu") (net 112) (tstamp 43533884-4da3-4d39-bb8a-8358a28d4c6f)) + (segment (start 153.162 116.1645) (end 153.0755 116.078) (width 0.153) (layer "B.Cu") (net 112) (tstamp 462fea3c-7afe-4f6c-8f54-4c795746b9e8)) + (segment (start 92.71 106.68) (end 96.52 102.87) (width 0.153) (layer "B.Cu") (net 112) (tstamp 4b009266-d309-4daa-b0d0-be665b559a6a)) + (segment (start 94.234 123.444) (end 92.71 121.92) (width 0.153) (layer "B.Cu") (net 112) (tstamp 4ba19258-57f4-4cd2-b9ab-e7bbda8c5281)) + (segment (start 153.0755 114.3865) (end 154.178 113.284) (width 0.153) (layer "B.Cu") (net 112) (tstamp 4ed4a6af-0d1c-4b59-9b6c-b69ebf5a58bd)) + (segment (start 154.178 113.284) (end 154.178 112.268) (width 0.153) (layer "B.Cu") (net 112) (tstamp 5778e10e-3347-4b63-bfde-51d8183229b0)) + (segment (start 153.162 90.678) (end 153.162 83.058) (width 0.153) (layer "B.Cu") (net 112) (tstamp 75fcbf4d-8391-4d84-9d17-1059e59f3431)) + (segment (start 96.434011 101.685989) (end 96.434011 82.127989) (width 0.153) (layer "B.Cu") (net 112) (tstamp 876e02d5-b6b2-43de-8108-a8160b701ea6)) + (segment (start 153.162 83.058) (end 152.146 82.042) (width 0.153) (layer "B.Cu") (net 112) (tstamp 89660022-f6f0-4545-a85f-dcf19348066a)) + (segment (start 96.434011 82.127989) (end 96.774 81.788) (width 0.153) (layer "B.Cu") (net 112) (tstamp 91da706f-249e-44c9-9298-6fef32e6c1c4)) + (segment (start 153.162 132.334) (end 153.162 116.1645) (width 0.153) (layer "B.Cu") (net 112) (tstamp 925149ee-9813-4ee2-beb6-10077cea9328)) + (segment (start 92.71 121.92) (end 92.71 106.68) (width 0.153) (layer "B.Cu") (net 112) (tstamp 93d8d71a-481e-4c79-81c0-1a0f17959d8f)) + (segment (start 96.52 101.771978) (end 96.434011 101.685989) (width 0.153) (layer "B.Cu") (net 112) (tstamp cad34b51-52ee-4e43-ad54-a47d49d1d043)) + (segment (start 101.320022 74.797) (end 101.320022 81.254022) (width 0.153) (layer "B.Cu") (net 112) (tstamp d0507fed-a45c-4d4c-aa4b-b07475ef9ed8)) + (segment (start 100.244011 73.720989) (end 101.320022 74.797) (width 0.153) (layer "B.Cu") (net 112) (tstamp dd476558-fb20-4b18-bc5f-f843ae82f6a6)) + (segment (start 151.638 109.728) (end 151.638 92.202) (width 0.153) (layer "B.Cu") (net 112) (tstamp decb5701-61a7-4218-8f2c-3615ccfbec72)) + (segment (start 153.0755 116.078) (end 153.0755 114.3865) (width 0.153) (layer "B.Cu") (net 112) (tstamp e8254be0-76c7-4892-8297-50e42dd1f8c0)) + (segment (start 101.320022 81.254022) (end 101.6 81.534) (width 0.153) (layer "B.Cu") (net 112) (tstamp efa25fd4-41b5-4cd0-ace4-81164170d0c1)) + (segment (start 156.718 134.796449) (end 156.329749 134.796449) (width 0.153) (layer "F.Cu") (net 113) (tstamp 0e9aaf55-7847-41c7-922d-4f56c7cebba5)) + (segment (start 145.034 85.09) (end 103.378 85.09) (width 0.153) (layer "F.Cu") (net 113) (tstamp 30ec1a80-9ff7-4c67-954e-2b839c05dfad)) + (segment (start 176.952011 133.684989) (end 175.840551 134.796449) (width 0.153) (layer "F.Cu") (net 113) (tstamp 3988fc91-b192-4e37-ae82-68fc98b409b0)) + (segment (start 156.329749 134.796449) (end 155.985289 134.451989) (width 0.153) (layer "F.Cu") (net 113) (tstamp 6672bc86-9a6e-457b-9a02-ffe31f86125d)) + (segment (start 175.840551 134.796449) (end 156.718 134.796449) (width 0.153) (layer "F.Cu") (net 113) (tstamp a2198995-0e6f-4e71-9b8f-826cedd944cf)) + (segment (start 150.388969 134.874) (end 146.812 134.874) (width 0.153) (layer "F.Cu") (net 113) (tstamp b2a1d165-b631-4582-b146-fe6c0101445c)) + (segment (start 150.81098 134.451989) (end 150.388969 134.874) (width 0.153) (layer "F.Cu") (net 113) (tstamp d2bafc08-f68d-4250-8149-439a4e4b9175)) + (segment (start 155.985289 134.451989) (end 150.81098 134.451989) (width 0.153) (layer "F.Cu") (net 113) (tstamp d96d5cbd-beec-4148-a5ab-e369b04f8490)) + (via (at 103.378 85.09) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 113) (tstamp 1de075ba-a0a9-4b75-af87-9e41190a9b52)) + (via (at 145.034 85.09) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 113) (tstamp 3c64c62f-0c2e-4652-a086-5b5213a12b7a)) + (via (at 146.812 134.874) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 113) (tstamp 82bd64f5-9495-410e-ab5f-ed6d55f9a715)) + (segment (start 145.291989 102.111989) (end 145.291989 85.347989) (width 0.153) (layer "B.Cu") (net 113) (tstamp 19db1ab7-ce26-4d8d-8d02-dc396aa28449)) + (segment (start 145.291989 85.347989) (end 145.034 85.09) (width 0.153) (layer "B.Cu") (net 113) (tstamp 24a06175-f54a-4a74-8f7b-3a9f1c759693)) + (segment (start 102.784011 84.496011) (end 102.784011 83.397989) (width 0.153) (layer "B.Cu") (net 113) (tstamp 4e8cb0b4-f006-4915-8649-0171fbcae19f)) + (segment (start 145.542 102.362) (end 145.291989 102.111989) (width 0.153) (layer "B.Cu") (net 113) (tstamp a1837e5a-cc51-4a64-a0b4-8e98881c9ed1)) + (segment (start 146.812 129.286) (end 146.05 128.524) (width 0.153) (layer "B.Cu") (net 113) (tstamp c3c556f2-b060-479f-937a-4cc0b84ea190)) + (segment (start 145.542 128.016) (end 145.542 102.362) (width 0.153) (layer "B.Cu") (net 113) (tstamp ca56bbd0-ac32-443b-83ad-99f949d43442)) + (segment (start 146.812 134.874) (end 146.812 129.286) (width 0.153) (layer "B.Cu") (net 113) (tstamp d78b29ca-2a56-4bd8-8482-af0bfc9a2224)) + (segment (start 103.378 85.09) (end 102.784011 84.496011) (width 0.153) (layer "B.Cu") (net 113) (tstamp f654263f-9383-488a-b3e6-66be7b67b252)) + (segment (start 146.05 128.524) (end 145.542 128.016) (width 0.153) (layer "B.Cu") (net 113) (tstamp f6dda2c2-3c76-424d-89b9-c989a4bc5702)) + (segment (start 135.636 55.88) (end 134.728 56.788) (width 0.153) (layer "F.Cu") (net 114) (tstamp 1ccef4f7-f481-4c47-8f4b-097532d6d3ee)) + (segment (start 79.864 56.788) (end 78.156011 58.495989) (width 0.153) (layer "F.Cu") (net 114) (tstamp 8d742335-7112-4714-9cbd-54718291a200)) + (segment (start 134.728 56.788) (end 79.864 56.788) (width 0.153) (layer "F.Cu") (net 114) (tstamp cc9fac93-e823-48ae-bf28-09621c40636f)) + (via (at 135.636 55.88) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 114) (tstamp 6cdf23b4-b128-424a-8038-8c41c03ad3ad)) + (segment (start 135.804011 56.048011) (end 135.636 55.88) (width 0.153) (layer "B.Cu") (net 114) (tstamp 75f4eabb-66f7-4ee7-b687-a0c42b65ba23)) + (segment (start 135.804011 58.480989) (end 135.804011 56.048011) (width 0.153) (layer "B.Cu") (net 114) (tstamp cab57dc3-0029-43ee-951e-3ff4d79aef60)) + (segment (start 79.232022 64.652) (end 138.04 64.652) (width 0.153) (layer "F.Cu") (net 115) (tstamp 1ebf2cda-eac1-4e48-8ba4-6bd1ee36da91)) + (segment (start 138.04 64.652) (end 138.344011 64.347989) (width 0.153) (layer "F.Cu") (net 115) (tstamp d6071e8d-b2ae-4b78-9652-63391928c901)) + (segment (start 78.156011 63.575989) (end 79.232022 64.652) (width 0.153) (layer "F.Cu") (net 115) (tstamp e0908e49-4cbd-4b60-a7f7-786f055fa7f1)) + (via (at 138.344011 64.347989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 115) (tstamp 52f30898-0df3-4751-aaad-5c10e93a4adb)) + (segment (start 138.344011 64.347989) (end 138.344011 58.480989) (width 0.153) (layer "B.Cu") (net 115) (tstamp 845a968c-bec1-4f26-810d-79e25cd9a586)) + (segment (start 100.194 69.732) (end 100.244011 69.681989) (width 0.153) (layer "F.Cu") (net 116) (tstamp aaf2931e-d59a-40ce-9d55-4129334b9866)) + (segment (start 79.232022 69.732) (end 100.194 69.732) (width 0.153) (layer "F.Cu") (net 116) (tstamp bed34c58-a4e4-46c5-bf59-d9cdc2cb1022)) + (segment (start 78.156011 68.655989) (end 79.232022 69.732) (width 0.153) (layer "F.Cu") (net 116) (tstamp c833344e-68f4-49ea-986a-f28d5218b539)) + (via (at 100.244011 69.681989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 116) (tstamp 2741c423-0e0e-4208-864d-0e914805989c)) + (segment (start 100.244011 69.681989) (end 100.244011 58.480989) (width 0.153) (layer "B.Cu") (net 116) (tstamp 4261a3fd-61d8-42e4-bfe1-2ffd5c266079)) + (segment (start 85.776011 71.195989) (end 103.028011 71.195989) (width 0.153) (layer "F.Cu") (net 117) (tstamp 0f3f4d09-d9eb-4bb4-8f36-e16b0c814b14)) + (segment (start 103.028011 71.195989) (end 103.038011 71.205989) (width 0.153) (layer "F.Cu") (net 117) (tstamp c9928d47-0ea2-497d-aa63-d8628df554f4)) + (via (at 103.038011 71.205989) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 117) (tstamp 4cf18d75-78fe-4d4a-9087-d5e595e5fd6b)) + (segment (start 102.784011 70.951989) (end 102.784011 58.480989) (width 0.153) (layer "B.Cu") (net 117) (tstamp 28535a45-3d17-4d92-bd63-d48b0620ed62)) + (segment (start 103.038011 71.205989) (end 102.784011 70.951989) (width 0.153) (layer "B.Cu") (net 117) (tstamp 73760ff2-afba-4b21-8b1d-e922e48a4daa)) + (segment (start 85.776011 66.115989) (end 107.464 66.115989) (width 0.153) (layer "F.Cu") (net 118) (tstamp 0a8c9431-c442-4446-af96-dbc787b35f6c)) + (segment (start 107.464 66.115989) (end 107.864011 65.715978) (width 0.153) (layer "F.Cu") (net 118) (tstamp 4ad424d6-8980-420a-a40a-4fefc1109bea)) + (via (at 107.864011 65.715978) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 118) (tstamp 73ee5f92-0b91-489f-8941-c647b58e9a3d)) + (segment (start 107.864011 65.715978) (end 107.864011 58.480989) (width 0.153) (layer "B.Cu") (net 118) (tstamp fa16f3ab-60b0-407e-ba75-2839523bcc58)) + (segment (start 154.157031 135.148969) (end 153.67 135.636) (width 0.153) (layer "F.Cu") (net 119) (tstamp 12e6a1a7-b0f9-4a64-a94d-7872e5e6da44)) + (segment (start 119.466 115.824) (end 123.19 115.824) (width 0.153) (layer "F.Cu") (net 119) (tstamp 18992020-375e-47b6-bfbe-9123e8f760c3)) + (segment (start 153.924 119.126) (end 154.065009 119.267009) (width 0.153) (layer "F.Cu") (net 119) (tstamp 27d81d6f-e912-40e5-99a8-87b9df2db0b8)) + (segment (start 126.887009 119.521009) (end 154.065009 119.521009) (width 0.153) (layer "F.Cu") (net 119) (tstamp 5a6ef91f-deac-4d46-b317-13aa57e49f0c)) + (segment (start 98.99998 119.82798) (end 119.01802 119.82798) (width 0.153) (layer "F.Cu") (net 119) (tstamp 5ae18a5b-9ac1-4436-b060-0e21c04b8307)) + (segment (start 154.065009 119.267009) (end 154.065009 119.521009) (width 0.153) (layer "F.Cu") (net 119) (tstamp 7ccf26f8-c13a-479c-9e7f-e9d556344325)) + (segment (start 170.010309 135.148969) (end 154.157031 135.148969) (width 0.153) (layer "F.Cu") (net 119) (tstamp 8f2a7c35-f5f3-4a23-9b22-313737e1ebcb)) + (segment (start 95.31002 119.82798) (end 98.99998 119.82798) (width 0.153) (layer "F.Cu") (net 119) (tstamp a2c5166f-11c3-442e-b882-b1c70652e85c)) + (segment (start 154.065009 119.521009) (end 156.562529 119.521009) (width 0.153) (layer "F.Cu") (net 119) (tstamp ac3846b8-b9ae-429b-96a4-77b2654ef2fa)) + (segment (start 94.234 120.904) (end 95.31002 119.82798) (width 0.153) (layer "F.Cu") (net 119) (tstamp b05c0657-5a37-485e-adea-fa0ebfc933b9)) + (segment (start 123.19 115.824) (end 126.887009 119.521009) (width 0.153) (layer "F.Cu") (net 119) (tstamp ccff3b88-fb8c-4e75-a673-9cd93e328bbe)) + (segment (start 156.562529 119.521009) (end 157.38928 118.694258) (width 0.153) (layer "F.Cu") (net 119) (tstamp d1fea838-030d-4a43-b0a2-0be620d60b63)) + (segment (start 176.952011 136.224989) (end 175.875991 135.148969) (width 0.153) (layer "F.Cu") (net 119) (tstamp d92b146f-35bb-4be8-a1d2-a14eb0da4923)) + (segment (start 175.875991 135.148969) (end 170.010309 135.148969) (width 0.153) (layer "F.Cu") (net 119) (tstamp e9f3f2ba-f30c-40a0-b769-e0df77b56488)) + (segment (start 119.01802 119.82798) (end 119.466 119.38) (width 0.153) (layer "F.Cu") (net 119) (tstamp fab6a35e-a002-4fc3-9a38-e0d6b14cd821)) + (via (at 119.466 115.824) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 119) (tstamp 57b0f576-79aa-463e-bfd4-75aebbf4bdfe)) + (via (at 153.924 119.126) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 119) (tstamp 9881478c-760d-4061-be9d-086d8cf7b51c)) + (via (at 153.67 135.636) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 119) (tstamp 9f361b55-17fe-47b5-8223-c2856b77ec6d)) + (via (at 98.99998 119.82798) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 119) (tstamp e834efda-792d-48b9-9ff6-1ee4395753db)) + (via (at 119.466 119.38) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 119) (tstamp fd72a07a-0723-448e-ac62-5d70dade8cad)) + (segment (start 101.320022 112.691689) (end 99.314 114.697711) (width 0.153) (layer "B.Cu") (net 119) (tstamp 47a6bb92-393c-4880-bc41-6fbeebb1085f)) + (segment (start 153.838011 119.211989) (end 153.924 119.126) (width 0.153) (layer "B.Cu") (net 119) (tstamp 4ee747f1-56e6-45e5-b119-936102fe8dae)) + (segment (start 153.67 135.636) (end 153.838011 135.467989) (width 0.153) (layer "B.Cu") (net 119) (tstamp 62a80cae-386d-4363-b83c-4962e2660a9c)) + (segment (start 99.314 114.697711) (end 99.314 119.51396) (width 0.153) (layer "B.Cu") (net 119) (tstamp 733872bb-4ed6-4607-9c65-84cf5f641c2a)) + (segment (start 102.784011 81.876279) (end 101.320022 83.340268) (width 0.153) (layer "B.Cu") (net 119) (tstamp 80adc1d9-a2d7-416a-895f-c3c02ff05f38)) + (segment (start 99.314 119.51396) (end 98.99998 119.82798) (width 0.153) (layer "B.Cu") (net 119) (tstamp 9ac4d1d1-26b5-4cdd-8da8-c51128ddcab6)) + (segment (start 102.784011 73.720989) (end 102.784011 81.876279) (width 0.153) (layer "B.Cu") (net 119) (tstamp c2c55c61-f56f-40e6-9377-b1b1bcd95f57)) + (segment (start 119.466 119.38) (end 119.466 115.824) (width 0.153) (layer "B.Cu") (net 119) (tstamp d23310e9-2661-4e80-80b4-eaa573465cac)) + (segment (start 153.838011 135.467989) (end 153.838011 119.211989) (width 0.153) (layer "B.Cu") (net 119) (tstamp d8c509a8-ebbf-4131-862d-690449a49ec6)) + (segment (start 101.320022 83.340268) (end 101.320022 112.691689) (width 0.153) (layer "B.Cu") (net 119) (tstamp f3b865b0-df8c-4a3e-95c0-74d1c974a228)) + (segment (start 135.198011 131.257989) (end 135.296011 131.159989) (width 0.153) (layer "F.Cu") (net 129) (tstamp 400beb0d-f554-4792-a85e-a3c3e5b510fd)) + (segment (start 130.440011 131.257989) (end 135.198011 131.257989) (width 0.153) (layer "F.Cu") (net 129) (tstamp 6d3f2f44-8a49-4ec9-8b3f-7cc3dbc7a4c7)) + (segment (start 127.900011 131.257989) (end 130.342011 133.699989) (width 0.153) (layer "F.Cu") (net 130) (tstamp 3c3963d0-f70f-4dc1-babb-52ea4d342657)) + (segment (start 130.342011 133.699989) (end 135.296011 133.699989) (width 0.153) (layer "F.Cu") (net 130) (tstamp f33cfa25-414e-462d-9e72-92ccc2ef39a5)) + (segment (start 153.340011 68.396989) (end 155.616011 66.120989) (width 0.153) (layer "F.Cu") (net 133) (tstamp 617e57e5-6da7-4b33-99f5-2328407dbc50)) + (segment (start 156.972 77.47) (end 169.754022 77.47) (width 0.153) (layer "F.Cu") (net 133) (tstamp ae262540-7af5-49dc-96cd-e27adbbeb526)) + (segment (start 151.552011 68.396989) (end 153.340011 68.396989) (width 0.153) (layer "F.Cu") (net 133) (tstamp c8e43fa0-c9cf-48a3-a0a7-2efd9708172a)) + (segment (start 169.754022 77.47) (end 170.856011 78.571989) (width 0.153) (layer "F.Cu") (net 133) (tstamp d2752abe-16e7-48b8-87f8-bc40c7d1fb13)) + (via (at 156.972 77.47) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 133) (tstamp a9e5d77d-dd36-43a6-a63d-ab0093314659)) + (segment (start 156.972 67.476978) (end 156.972 77.47) (width 0.153) (layer "B.Cu") (net 133) (tstamp 05dfdf2e-deee-4d8c-a0ab-51ef04389bce)) + (segment (start 155.616011 66.120989) (end 156.972 67.476978) (width 0.153) (layer "B.Cu") (net 133) (tstamp 3612a680-bce9-4e23-bac1-329f55c3b73e)) + (segment (start 153.340011 65.856989) (end 155.616011 63.580989) (width 0.153) (layer "F.Cu") (net 134) (tstamp 3b237e01-701c-4af3-9a89-87defbe6b4c5)) + (segment (start 166.705511 73.66) (end 166.873522 73.491989) (width 0.153) (layer "F.Cu") (net 134) (tstamp 3fe406a2-101c-4872-93d8-121c5f7f223a)) + (segment (start 151.552011 65.856989) (end 153.340011 65.856989) (width 0.153) (layer "F.Cu") (net 134) (tstamp 60b0f6f4-d046-4c43-a3a6-27d2b37c92b0)) + (segment (start 166.873522 73.491989) (end 170.856011 73.491989) (width 0.153) (layer "F.Cu") (net 134) (tstamp 686f7eb4-7a50-47fa-add6-41550f4c51c4)) + (segment (start 166.47748 64.795969) (end 166.705511 65.024) (width 0.153) (layer "F.Cu") (net 134) (tstamp 74c6fd60-d4d7-465d-afaf-b9baf11f6074)) + (segment (start 156.830991 64.795969) (end 166.47748 64.795969) (width 0.153) (layer "F.Cu") (net 134) (tstamp 8f89fb18-044e-44a3-be27-73bc51acf0e2)) + (segment (start 155.616011 63.580989) (end 156.830991 64.795969) (width 0.153) (layer "F.Cu") (net 134) (tstamp ed5e7913-7730-4786-b058-3b210d69c234)) + (via (at 166.705511 73.66) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 134) (tstamp 3803ec7e-3a07-48d8-8c04-4e0f563a0b6b)) + (via (at 166.705511 65.024) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 134) (tstamp c46030ea-37d4-4955-ac81-af4ae2cd7703)) + (segment (start 166.705511 65.024) (end 166.705511 73.66) (width 0.153) (layer "B.Cu") (net 134) (tstamp 2bb8662f-abf9-4395-9a2c-87171449dd4f)) + (segment (start 155.616011 61.040989) (end 156.805022 62.23) (width 0.153) (layer "F.Cu") (net 135) (tstamp 07da304c-1a27-4734-9b36-9bc279ee8727)) + (segment (start 156.805022 62.23) (end 166.878 62.23) (width 0.153) (layer "F.Cu") (net 135) (tstamp 4b618a16-d9d4-4b87-9cb0-5f797f58b3d6)) + (segment (start 167.471989 68.411989) (end 170.856011 68.411989) (width 0.153) (layer "F.Cu") (net 135) (tstamp 4f94497c-2c91-40f6-909e-f53426a4a798)) + (segment (start 153.340011 63.316989) (end 155.616011 61.040989) (width 0.153) (layer "F.Cu") (net 135) (tstamp 6ecf9d71-fe10-42ea-bf07-5c511433e325)) + (segment (start 151.552011 63.316989) (end 153.340011 63.316989) (width 0.153) (layer "F.Cu") (net 135) (tstamp c651f1bc-48bc-49b3-ad44-3a59300ca80e)) + (segment (start 167.386 68.326) (end 167.471989 68.411989) (width 0.153) (layer "F.Cu") (net 135) (tstamp cf6c0c78-e50e-4617-9f73-2a22257e951b)) + (via (at 166.878 62.23) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 135) (tstamp 6ca3f9d4-73c2-4403-95c5-391ded83c5a7)) + (via (at 167.386 68.326) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 135) (tstamp 8f459228-a05a-4a09-b49f-46f5a3c902b8)) + (segment (start 167.386 64.516) (end 167.386 68.326) (width 0.153) (layer "B.Cu") (net 135) (tstamp 55ae0a43-3727-4944-a263-42289d67b5d2)) + (segment (start 166.878 62.23) (end 166.878 64.008) (width 0.153) (layer "B.Cu") (net 135) (tstamp 6446c51c-638f-46c2-bf1a-e50d5f8c9eba)) + (segment (start 166.878 64.008) (end 167.386 64.516) (width 0.153) (layer "B.Cu") (net 135) (tstamp e9719986-b321-4b86-ae34-9de68cad1345)) + (segment (start 156.805022 59.69) (end 166.705511 59.69) (width 0.153) (layer "F.Cu") (net 136) (tstamp 39a11ca3-d62b-4e02-8e84-3ce48469117e)) + (segment (start 167.64 63.246) (end 167.725989 63.331989) (width 0.153) (layer "F.Cu") (net 136) (tstamp 3c9d75a6-def7-4835-b1be-c7958703ae76)) + (segment (start 167.725989 63.331989) (end 170.856011 63.331989) (width 0.153) (layer "F.Cu") (net 136) (tstamp a0a65edd-8c9e-4af1-bac8-b8df8f9cfd0e)) + (segment (start 151.552011 60.776989) (end 153.340011 60.776989) (width 0.153) (layer "F.Cu") (net 136) (tstamp a2c273fa-7ac0-42ed-a9b2-dfa782fecb5d)) + (segment (start 153.340011 60.776989) (end 155.616011 58.500989) (width 0.153) (layer "F.Cu") (net 136) (tstamp c50e49aa-146c-4b34-ad61-ab4542c3f785)) + (segment (start 155.616011 58.500989) (end 156.805022 59.69) (width 0.153) (layer "F.Cu") (net 136) (tstamp eca21109-af97-417e-9838-2563967f1ead)) + (via (at 166.705511 59.69) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 136) (tstamp 5fed948c-4637-40d8-9ff2-07416762338e)) + (via (at 167.64 63.246) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 136) (tstamp ebcc22b2-3d37-4027-adbf-71594c66a596)) + (segment (start 167.132 61.214) (end 167.64 61.722) (width 0.153) (layer "B.Cu") (net 136) (tstamp 28d50917-6dc2-40e3-9196-582b703a7ee3)) + (segment (start 166.705511 59.69) (end 167.132 60.116489) (width 0.153) (layer "B.Cu") (net 136) (tstamp 8294a170-576f-4b1e-8bf8-58d15712a78d)) + (segment (start 167.132 60.116489) (end 167.132 61.214) (width 0.153) (layer "B.Cu") (net 136) (tstamp d1fa1c2f-5a01-4dba-be86-f620cd2f139e)) + (segment (start 167.64 61.722) (end 167.64 63.246) (width 0.153) (layer "B.Cu") (net 136) (tstamp f54dcf18-11ee-426d-b656-54daa5f79835)) + (segment (start 173.2763 100.33) (end 170.1448 103.4615) (width 0.153) (layer "F.Cu") (net 137) (tstamp 20cd1075-923b-4d9c-9669-8abdad518d27)) + (segment (start 170.1448 103.4615) (end 139.7 103.4615) (width 0.153) (layer "F.Cu") (net 137) (tstamp fd97a34a-7ab3-4217-885b-c9443e0bde3f)) + (via (at 139.7 103.4615) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 137) (tstamp abe739d9-3714-4d76-98a0-21f3ca0fd367)) + (segment (start 136.372022 135.163978) (end 135.296011 136.239989) (width 0.153) (layer "B.Cu") (net 137) (tstamp 0cb2ae97-0542-4447-9280-28eb5a854376)) + (segment (start 136.372022 121.969956) (end 136.372022 135.163978) (width 0.153) (layer "B.Cu") (net 137) (tstamp 1e86c3c2-a1e0-4ee4-8a37-5d5be08d2691)) + (segment (start 139.7 118.641978) (end 136.372022 121.969956) (width 0.153) (layer "B.Cu") (net 137) (tstamp 8d71514b-4044-4455-a15c-ed3ddeac46ef)) + (segment (start 139.7 103.4615) (end 139.7 118.641978) (width 0.153) (layer "B.Cu") (net 137) (tstamp c573884d-a470-43f2-a98a-fd61956f1629)) + (segment (start 64.516 119.38) (end 66.543 119.38) (width 0.153) (layer "F.Cu") (net 138) (tstamp 79f396a4-8f91-4be0-90fd-229cff8c6df7)) + (segment (start 119.38 100.076) (end 70.866 100.076) (width 0.153) (layer "F.Cu") (net 138) (tstamp 7bfc3866-772c-4278-b062-fefdda3380ae)) + (segment (start 70.866 100.076) (end 69.85 101.092) (width 0.153) (layer "F.Cu") (net 138) (tstamp 9eab2a74-7819-4f65-8cc6-c6bfea329d49)) + (via (at 119.38 100.076) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 138) (tstamp c90abac9-738b-4b05-98c4-dec0f8dce5c2)) + (via (at 69.85 101.092) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 138) (tstamp f50eef54-9115-430e-be15-3fadcb876fe5)) + (segment (start 123.104011 83.397989) (end 123.104011 90.450014) (width 0.153) (layer "B.Cu") (net 138) (tstamp 0bb7a5a7-02cb-432a-a1b2-55d75dbc750e)) + (segment (start 69.596 115.316) (end 69.596 117.23) (width 0.153) (layer "B.Cu") (net 138) (tstamp 2ed8cd91-74d8-45d4-b0c5-06683e7282b0)) + (segment (start 119.38 94.174025) (end 119.38 100.076) (width 0.153) (layer "B.Cu") (net 138) (tstamp 3e54d026-4886-49f4-bca7-bdd1052cee34)) + (segment (start 69.875051 115.036949) (end 69.596 115.316) (width 0.153) (layer "B.Cu") (net 138) (tstamp 7100bd08-f72d-4b75-835f-73b64d2f50c2)) + (segment (start 69.875051 101.117051) (end 69.875051 115.036949) (width 0.153) (layer "B.Cu") (net 138) (tstamp 816be861-4d47-43c8-aa23-6f66dc65aef7)) + (segment (start 69.596 117.23) (end 67.446 119.38) (width 0.153) (layer "B.Cu") (net 138) (tstamp 8996b77c-1998-47a3-b99d-b5030ad6cf9b)) + (segment (start 69.85 101.092) (end 69.875051 101.117051) (width 0.153) (layer "B.Cu") (net 138) (tstamp 9ae454cf-b0fe-4984-af9e-03110ed1fc03)) + (segment (start 123.104011 90.450014) (end 119.38 94.174025) (width 0.153) (layer "B.Cu") (net 138) (tstamp b46220ab-fbf0-4c4a-a131-ec586cd8f162)) + (segment (start 67.446 119.38) (end 66.543 119.38) (width 0.153) (layer "B.Cu") (net 138) (tstamp c3e74f24-285b-4b88-8de5-51b7fdcff2d0)) + (segment (start 118.532225 89.231293) (end 117.593518 90.17) (width 0.153) (layer "F.Cu") (net 139) (tstamp 0ddf941e-ebf8-4e6e-aab7-dedacfd2d9d5)) + (segment (start 106.172 90.17) (end 105.918 90.424) (width 0.153) (layer "F.Cu") (net 139) (tstamp 11667559-03d7-4111-a527-3a569f0b5cad)) + (segment (start 71.752953 88.9) (end 71.423797 89.229156) (width 0.153) (layer "F.Cu") (net 139) (tstamp 52890491-f19f-4a4f-a80d-83853f5fedee)) + (segment (start 67.818 117.348) (end 66.543 117.348) (width 0.153) (layer "F.Cu") (net 139) (tstamp 627a58ad-c76a-49c2-92f7-2023c5dbb653)) + (segment (start 117.593518 90.17) (end 106.172 90.17) (width 0.153) (layer "F.Cu") (net 139) (tstamp 62a32971-4a70-44c4-af89-37bfc73aa9a2)) + (segment (start 103.378 88.9) (end 71.752953 88.9) (width 0.153) (layer "F.Cu") (net 139) (tstamp 697862bf-7f29-44ec-b3d9-72bb90eaba75)) + (segment (start 105.918 90.424) (end 104.902 90.424) (width 0.153) (layer "F.Cu") (net 139) (tstamp 7bcc6940-b69f-4cab-84cc-c8fa8471bb19)) + (segment (start 104.902 90.424) (end 103.378 88.9) (width 0.153) (layer "F.Cu") (net 139) (tstamp 7bf5826a-ae0c-4c4d-9a31-eeb8c95f8509)) + (segment (start 64.516 117.348) (end 66.543 117.348) (width 0.153) (layer "F.Cu") (net 139) (tstamp f6528876-4fca-43f8-971c-c63baf711f46)) + (via (at 67.818 117.348) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 139) (tstamp 7af706b8-a615-4840-9879-dffb873c669d)) + (via (at 118.532225 89.231293) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 139) (tstamp b665857f-f0f8-4aae-a88a-1527a895bd09)) + (via (at 71.423797 89.229156) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 139) (tstamp e2204e47-3b71-49cf-bd14-1d134f42bbe3)) + (segment (start 69.088 113.284) (end 67.818 114.554) (width 0.153) (layer "B.Cu") (net 139) (tstamp 15c1cf96-3af4-4adf-8856-63731c10f1d2)) + (segment (start 69.522531 112.849469) (end 69.088 113.284) (width 0.153) (layer "B.Cu") (net 139) (tstamp 28761a28-e279-4b79-932e-49b7b1ccf67e)) + (segment (start 68.93252 106.68) (end 69.522531 107.270011) (width 0.153) (layer "B.Cu") (net 139) (tstamp 329442f7-901c-4589-87b9-378ef25c7c2e)) + (segment (start 118.872 88.522025) (end 118.872 88.9) (width 0.153) (layer "B.Cu") (net 139) (tstamp 4ed5a070-3c19-4b8f-8131-75bdf73ae17b)) + (segment (start 68.93252 91.720433) (end 68.93252 106.68) (width 0.153) (layer "B.Cu") (net 139) (tstamp 52610313-f7e3-4703-b654-c020d727370c)) + (segment (start 118.540707 89.231293) (end 118.532225 89.231293) (width 0.153) (layer "B.Cu") (net 139) (tstamp 5b12b72a-9709-40da-8d06-c791c55cc240)) + (segment (start 71.423797 89.229156) (end 68.93252 91.720433) (width 0.153) (layer "B.Cu") (net 139) (tstamp 5c41986d-f2cb-491b-a3b5-c111510d7129)) + (segment (start 69.522531 107.270011) (end 69.522531 112.849469) (width 0.153) (layer "B.Cu") (net 139) (tstamp 8aa3d455-e002-4d5f-9978-8537774dc9ec)) + (segment (start 120.564011 83.397989) (end 120.564011 86.830014) (width 0.153) (layer "B.Cu") (net 139) (tstamp 91903e63-0444-4ae4-bc48-3375ae94318c)) + (segment (start 120.564011 86.830014) (end 118.872 88.522025) (width 0.153) (layer "B.Cu") (net 139) (tstamp cf238f21-75aa-4f1e-9b3d-0e18054793d4)) + (segment (start 118.872 88.9) (end 118.540707 89.231293) (width 0.153) (layer "B.Cu") (net 139) (tstamp e2d34d9b-50f8-46f1-8caa-24f942aaa5f9)) + (segment (start 67.818 114.554) (end 67.818 117.348) (width 0.153) (layer "B.Cu") (net 139) (tstamp e97cfab3-a441-44f4-bdff-207fe206c24e)) + (segment (start 109.642 85.852) (end 91.44 85.852) (width 0.153) (layer "F.Cu") (net 140) (tstamp 225595bc-b1cf-4692-9d8f-bc0f518ee9c7)) + (segment (start 69.342 85.852) (end 69.088 86.106) (width 0.153) (layer "F.Cu") (net 140) (tstamp 6f6d7062-aafe-488e-936b-b3488fa9d2ea)) + (segment (start 109.728 85.766) (end 109.642 85.852) (width 0.153) (layer "F.Cu") (net 140) (tstamp 721e791e-f5f0-4f65-9011-af75ebea4021)) + (segment (start 64.516 115.316) (end 66.543 115.316) (width 0.153) (layer "F.Cu") (net 140) (tstamp a2547d4a-345c-4659-9f08-4bef024ed1a5)) + (segment (start 91.44 85.852) (end 69.342 85.852) (width 0.153) (layer "F.Cu") (net 140) (tstamp b459ab65-558d-4f4a-b0b5-55789e099862)) + (via (at 69.088 86.106) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 140) (tstamp 83f004b2-ac53-4521-bdad-57591b955885)) + (via (at 109.728 85.766) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 140) (tstamp d5a30424-12f1-45b4-8289-ecc1126fc6e0)) + (segment (start 69.088 86.106) (end 65.516989 89.677011) (width 0.153) (layer "B.Cu") (net 140) (tstamp 026259c8-2858-4142-8ecb-715e9ba37acd)) + (segment (start 110.404011 83.397989) (end 110.404011 85.089989) (width 0.153) (layer "B.Cu") (net 140) (tstamp a5531d6b-5b66-40c1-8dac-fbe0dae1a98e)) + (segment (start 110.404011 85.089989) (end 109.728 85.766) (width 0.153) (layer "B.Cu") (net 140) (tstamp bee1ed75-7eb2-4c4a-b813-dfa171b56c24)) + (segment (start 65.516989 89.677011) (end 65.516989 114.315011) (width 0.153) (layer "B.Cu") (net 140) (tstamp dcdf918a-a31d-4e01-be07-ccc07f845d70)) + (segment (start 65.516989 114.315011) (end 64.516 115.316) (width 0.153) (layer "B.Cu") (net 140) (tstamp e6040b03-2b0c-42ea-bdaa-f9c2ce6a08c6)) + (segment (start 112.729576 86.937636) (end 112.40594 86.614) (width 0.153) (layer "F.Cu") (net 141) (tstamp 212a6a11-e42e-4eaf-8f32-08eacd4900d9)) + (segment (start 69.85 86.614) (end 69.342 87.122) (width 0.153) (layer "F.Cu") (net 141) (tstamp 301ba014-6c23-46ea-bde2-89b5cf7f87b8)) + (segment (start 99.822 86.614) (end 69.85 86.614) (width 0.153) (layer "F.Cu") (net 141) (tstamp a20b0812-51f9-416f-a8a8-751dc17080b5)) + (segment (start 112.40594 86.614) (end 99.822 86.614) (width 0.153) (layer "F.Cu") (net 141) (tstamp dffb2880-4bb8-44e6-80a2-927cfeab82fc)) + (segment (start 64.516 113.284) (end 66.543 113.284) (width 0.153) (layer "F.Cu") (net 141) (tstamp f7571c27-5c21-4c68-9660-be4ade61b9b8)) + (via (at 69.342 87.122) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 141) (tstamp 350a34a0-b45e-441f-b220-f407a3cf34a4)) + (via (at 112.729576 86.937636) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 141) (tstamp 5f018b0d-5f1b-420f-bf09-c733f687f0ec)) + (segment (start 112.944011 83.397989) (end 112.607989 83.734011) (width 0.153) (layer "B.Cu") (net 141) (tstamp 2c7102cc-2728-4f7f-986d-ea2892476887)) + (segment (start 67.31 113.284) (end 66.543 113.284) (width 0.153) (layer "B.Cu") (net 141) (tstamp 6c29bdf7-686d-4c03-b0f7-9214779f9cdf)) + (segment (start 69.342 87.122) (end 67.818 88.646) (width 0.153) (layer "B.Cu") (net 141) (tstamp a86b70ea-9777-484e-a593-793116f5ccf2)) + (segment (start 67.818 88.646) (end 67.818 112.776) (width 0.153) (layer "B.Cu") (net 141) (tstamp c1d4d116-f501-40f9-bd92-be87c0b834dc)) + (segment (start 112.607989 83.734011) (end 112.607989 86.816049) (width 0.153) (layer "B.Cu") (net 141) (tstamp d9bc7f59-8b31-43c0-bfc0-dad4aaf5d9ff)) + (segment (start 112.607989 86.816049) (end 112.729576 86.937636) (width 0.153) (layer "B.Cu") (net 141) (tstamp f4b50fa3-1e69-4b70-88dd-cdb47a0ebd46)) + (segment (start 67.818 112.776) (end 67.31 113.284) (width 0.153) (layer "B.Cu") (net 141) (tstamp f940a322-2e9d-4422-b642-cbaee0fdd8d3)) + (segment (start 115.316 86.868) (end 114.808 87.376) (width 0.153) (layer "F.Cu") (net 142) (tstamp 2f2ebad1-c71a-4d6b-a3a1-f08abc951a13)) + (segment (start 114.808 87.376) (end 113.538 87.376) (width 0.153) (layer "F.Cu") (net 142) (tstamp 46dc0ee4-eef5-47d8-a8fa-fa737a9d248c)) + (segment (start 113.538 87.376) (end 113.284 87.63) (width 0.153) (layer "F.Cu") (net 142) (tstamp 49d85621-e8fb-4509-9dc7-b80bdee489b9)) + (segment (start 70.24751 87.63) (end 70.048755 87.828755) (width 0.153) (layer "F.Cu") (net 142) (tstamp 4cff42f1-a63d-4b34-97a3-a87ad00411ed)) + (segment (start 68.494 111.252) (end 66.543 111.252) (width 0.153) (layer "F.Cu") (net 142) (tstamp 77ed4aef-5705-4cc4-899c-757fec668cd3)) + (segment (start 112.522 87.63) (end 70.24751 87.63) (width 0.153) (layer "F.Cu") (net 142) (tstamp 970fb40a-f0e1-4ba4-9520-5f978fe3ce57)) + (segment (start 113.284 87.63) (end 112.522 87.63) (width 0.153) (layer "F.Cu") (net 142) (tstamp dc125375-56f4-49f7-9ef1-a627a4bc8e34)) + (segment (start 64.516 111.252) (end 66.543 111.252) (width 0.153) (layer "F.Cu") (net 142) (tstamp f8fe32bc-8e66-4ea1-ba92-a160a9d697fc)) + (via (at 115.316 86.868) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 142) (tstamp 35b72dc3-83bf-4d25-bb50-df74b9991a65)) + (via (at 70.048755 87.828755) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 142) (tstamp ef759805-f7ca-4b25-aed1-e58c8e7f626a)) + (via (at 68.494 111.252) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 142) (tstamp f7942e59-cf67-4b2d-9365-937734f4c831)) + (segment (start 68.17052 89.70699) (end 68.17052 108.712) (width 0.153) (layer "B.Cu") (net 142) (tstamp 108ef117-ac5e-4600-b4e4-9a40f8f1b23d)) + (segment (start 68.17052 108.712) (end 68.17052 110.92852) (width 0.153) (layer "B.Cu") (net 142) (tstamp 47e07e02-e00a-4f38-94c4-60a53f710c2c)) + (segment (start 70.048755 87.828755) (end 68.17052 89.70699) (width 0.153) (layer "B.Cu") (net 142) (tstamp 6b1fd357-9da5-4e80-a1be-df4b4e23d73b)) + (segment (start 68.17052 110.92852) (end 68.494 111.252) (width 0.153) (layer "B.Cu") (net 142) (tstamp bc36ddf7-001f-4797-8866-a72199ef6b93)) + (segment (start 115.484011 83.397989) (end 115.484011 86.699989) (width 0.153) (layer "B.Cu") (net 142) (tstamp da1ac03c-c2dc-415f-85e1-6d08615ea5ab)) + (segment (start 115.484011 86.699989) (end 115.316 86.868) (width 0.153) (layer "B.Cu") (net 142) (tstamp ef9ebb1d-1fa3-45a4-bf1d-686a886062fb)) + (segment (start 117.456 88.646) (end 106.934 88.646) (width 0.153) (layer "F.Cu") (net 143) (tstamp 0b784fac-0df4-4190-a690-d32ad4fd5dd4)) + (segment (start 106.934 88.646) (end 105.664 89.916) (width 0.153) (layer "F.Cu") (net 143) (tstamp 417b34c8-2f9d-47e2-81a9-31ae5ad09c33)) + (segment (start 117.624 88.814) (end 117.456 88.646) (width 0.153) (layer "F.Cu") (net 143) (tstamp 4437b9e2-28a1-49d6-863f-f93b80e274c2)) + (segment (start 104.14 88.646) (end 103.889951 88.395951) (width 0.153) (layer "F.Cu") (net 143) (tstamp 61d5ba98-2294-4ee3-94a7-67a20208e998)) + (segment (start 105.41 89.916) (end 104.14 88.646) (width 0.153) (layer "F.Cu") (net 143) (tstamp 8cbddf8a-6bb0-407f-9843-9233236e0721)) + (segment (start 105.664 89.916) (end 105.41 89.916) (width 0.153) (layer "F.Cu") (net 143) (tstamp a0890f4f-13d0-47c3-b2a9-43a0bea341de)) + (segment (start 64.516 109.22) (end 66.543 109.22) (width 0.153) (layer "F.Cu") (net 143) (tstamp baa84e37-4cea-4da1-87ef-6fa2ca852029)) + (segment (start 103.889951 88.395951) (end 70.871733 88.395951) (width 0.153) (layer "F.Cu") (net 143) (tstamp ee34bb90-a36c-49a0-acab-9de8a81d0d52)) + (segment (start 68.84652 109.22) (end 66.543 109.22) (width 0.153) (layer "F.Cu") (net 143) (tstamp f1890433-bea6-4b77-b474-b08dd25694ec)) + (via (at 68.84652 109.22) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 143) (tstamp 1356e543-570b-4b2c-88ee-a2120bcae422)) + (via (at 70.871733 88.395951) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 143) (tstamp 466f07b6-1166-495b-9a48-cdd80efd43d8)) + (via (at 117.624 88.814) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 143) (tstamp fcb931a7-c959-4ca3-95a3-5be8d6076b4b)) + (segment (start 118.024011 83.397989) (end 118.024011 88.413989) (width 0.153) (layer "B.Cu") (net 143) (tstamp 02b0a95a-a5c1-4d74-b52c-2eeb6b332e00)) + (segment (start 118.024011 88.413989) (end 117.624 88.814) (width 0.153) (layer "B.Cu") (net 143) (tstamp 49ad7dd4-5e43-4ad0-a868-fd3ca9909e47)) + (segment (start 68.58 108.95348) (end 68.84652 109.22) (width 0.153) (layer "B.Cu") (net 143) (tstamp 759a662c-b51d-4fe3-b89e-8302f9c25136)) + (segment (start 68.58 90.932) (end 68.58 108.95348) (width 0.153) (layer "B.Cu") (net 143) (tstamp 7d53fe5d-743a-4821-bb1b-3dd3f8adfca3)) + (segment (start 70.871733 88.395951) (end 68.58 90.687684) (width 0.153) (layer "B.Cu") (net 143) (tstamp 9845d150-1855-4cde-8422-f04d6fdc571c)) + (segment (start 68.58 90.687684) (end 68.58 90.932) (width 0.153) (layer "B.Cu") (net 143) (tstamp ecfeeca2-9881-41d4-9ec9-33892228e844)) + (segment (start 56.891 127.508) (end 56.891 129.535) (width 0.25) (layer "F.Cu") (net 144) (tstamp 1333587b-1249-460c-8ecf-6640552106f2)) + (segment (start 56.891 129.535) (end 56.896 129.54) (width 0.25) (layer "F.Cu") (net 144) (tstamp 50ea97a0-ac13-4fa1-9f0e-ce1cab78ecbb)) + (segment (start 66.543 125.476) (end 57.404 125.476) (width 0.25) (layer "F.Cu") (net 144) (tstamp 72fbaf5a-15a2-44c9-a5ee-db3ea50c3a5a)) + (segment (start 56.891 125.989) (end 56.891 127.508) (width 0.25) (layer "F.Cu") (net 144) (tstamp bf41dd98-de14-4fec-b561-2fd80320ff97)) + (segment (start 57.404 125.476) (end 56.891 125.989) (width 0.25) (layer "F.Cu") (net 144) (tstamp cc6c37d9-61f4-4612-8658-95d052cd8dd5)) + (segment (start 125.297989 68.655989) (end 125.73 69.088) (width 0.153) (layer "F.Cu") (net 148) (tstamp 149bb241-6107-4377-b28e-1c175b9fbc32)) + (segment (start 79.844522 68.655989) (end 79.666511 68.834) (width 0.153) (layer "F.Cu") (net 148) (tstamp 4d08b4dd-0373-4cb2-9741-de325956913d)) + (segment (start 85.776011 68.655989) (end 125.297989 68.655989) (width 0.153) (layer "F.Cu") (net 148) (tstamp 5e0be134-6a66-451b-9cbb-33ffae57dc0a)) + (segment (start 85.776011 68.655989) (end 79.844522 68.655989) (width 0.153) (layer "F.Cu") (net 148) (tstamp 9a6810f5-342c-457e-bd5c-63a8b8889ca1)) + (via (at 125.73 69.088) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 148) (tstamp 5101cfb7-d40a-42c1-8d7b-c8ef769d1f4b)) + (via (at 79.666511 68.834) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 148) (tstamp f77486ef-3086-4cf3-beb8-995a39e8c782)) + (segment (start 76.239989 71.590301) (end 76.239989 83.605989) (width 0.153) (layer "B.Cu") (net 148) (tstamp 27e36ff1-3402-4bd5-a57e-7606b7b774b6)) + (segment (start 78.380533 70.119978) (end 77.710312 70.119978) (width 0.153) (layer "B.Cu") (net 148) (tstamp 29c0677c-5c04-4b31-9915-181840337e29)) + (segment (start 77.710312 70.119978) (end 76.239989 71.590301) (width 0.153) (layer "B.Cu") (net 148) (tstamp 3b70a57c-8e35-4bcb-bd65-e56191567ecb)) + (segment (start 126.720022 97.561978) (end 125.644011 98.637989) (width 0.153) (layer "B.Cu") (net 148) (tstamp 76950ea0-d3a8-4e6f-8105-c59122776499)) + (segment (start 84.7 67.579978) (end 85.776011 68.655989) (width 0.153) (layer "B.Cu") (net 148) (tstamp 7b0292d4-2ceb-4ac3-a9f4-e05169478370)) + (segment (start 126.720022 70.078022) (end 126.720022 97.561978) (width 0.153) (layer "B.Cu") (net 148) (tstamp 9d465175-e699-4a2c-a74a-51b5e5cb1daf)) + (segment (start 76.239989 83.605989) (end 77.216 84.582) (width 0.153) (layer "B.Cu") (net 148) (tstamp a2583a54-2f63-4105-b150-a85fa374a75b)) + (segment (start 84.7 64.652) (end 84.7 67.579978) (width 0.153) (layer "B.Cu") (net 148) (tstamp a26423e8-a742-43f7-974b-eb1262ad5e2e)) + (segment (start 125.73 69.088) (end 126.720022 70.078022) (width 0.153) (layer "B.Cu") (net 148) (tstamp a3932bf5-3291-4ec1-baf1-390141d8878c)) + (segment (start 79.666511 68.834) (end 78.380533 70.119978) (width 0.153) (layer "B.Cu") (net 148) (tstamp b2382dc7-a58b-42c3-bf27-8f1904165621)) + (segment (start 85.776011 63.575989) (end 84.7 64.652) (width 0.153) (layer "B.Cu") (net 148) (tstamp c00fa227-fbb0-4988-a227-88d383cd308b)) + (segment (start 145.968 100.076) (end 132.162022 100.076) (width 0.153) (layer "F.Cu") (net 149) (tstamp 23ee6b40-3b9c-4876-b8b5-01ae1c7e217d)) + (segment (start 143.51 125.476) (end 146.558 125.476) (width 0.153) (layer "F.Cu") (net 149) (tstamp 33a98190-8da1-4358-9671-71c733e24920)) + (segment (start 132.162022 100.076) (end 130.724011 98.637989) (width 0.153) (layer "F.Cu") (net 149) (tstamp 54dab9f3-801e-4991-bcd3-eee98a3ce42b)) + (segment (start 149.520011 126.064989) (end 147.146989 126.064989) (width 0.153) (layer "F.Cu") (net 149) (tstamp a08a5a9b-604a-429b-b03e-b0a51c8b3a18)) + (segment (start 147.146989 126.064989) (end 146.558 125.476) (width 0.153) (layer "F.Cu") (net 149) (tstamp b3d0fca7-cf90-476e-9b83-ce17c5530a28)) + (via (at 146.558 125.476) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 149) (tstamp 6bd49134-690b-483d-bd85-2ccfb7dac18b)) + (via (at 143.51 125.476) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 149) (tstamp 988050a9-aa6e-42fd-9c26-f740a02bf215)) + (via (at 145.968 100.076) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 149) (tstamp ad1cb49e-0b4d-49bf-8e41-c62ba3062b7b)) + (segment (start 143.991986 116.051986) (end 143.991986 122.259989) (width 0.153) (layer "B.Cu") (net 149) (tstamp 14d06773-cca6-4e95-89cc-a9a4eb26ce3c)) + (segment (start 143.991986 122.259989) (end 143.51 122.741975) (width 0.153) (layer "B.Cu") (net 149) (tstamp 3c89105c-d41a-4456-91f0-9ef094f847d9)) + (segment (start 143.51 122.741975) (end 143.51 125.476) (width 0.153) (layer "B.Cu") (net 149) (tstamp 5d9a79ad-c69e-492a-a897-5d5762811551)) + (segment (start 145.967989 100.076011) (end 145.968 100.076) (width 0.153) (layer "B.Cu") (net 149) (tstamp 6d432170-d188-4ee2-a5be-ee0a39fca72f)) + (segment (start 145.967989 124.885989) (end 145.967989 100.076011) (width 0.153) (layer "B.Cu") (net 149) (tstamp d15d8fe5-17ca-4409-aa30-282225f3af5f)) + (segment (start 141.224 113.284) (end 143.991986 116.051986) (width 0.153) (layer "B.Cu") (net 149) (tstamp d450c1b6-a2c6-4015-a553-6a28a22df730)) + (segment (start 146.558 125.476) (end 145.967989 124.885989) (width 0.153) (layer "B.Cu") (net 149) (tstamp f61d7b21-e246-4ab2-8b49-9d2a9eda24d4)) + (segment (start 123.104011 98.637989) (end 123.104011 100.923989) (width 0.153) (layer "B.Cu") (net 150) (tstamp f2123d03-b307-4d93-99c6-536f4c1a1362)) + (segment (start 103.632 115.824) (end 101.6 113.792) (width 0.153) (layer "F.Cu") (net 151) (tstamp a65d31ba-082b-4e4d-b4fd-cfc57a038a7b)) + (segment (start 107.95 115.824) (end 103.632 115.824) (width 0.153) (layer "F.Cu") (net 151) (tstamp af3f9069-37ea-4c48-9bf7-f29dbeeca588)) + (segment (start 101.6 115.824) (end 104.14 118.364) (width 0.153) (layer "F.Cu") (net 152) (tstamp 4d8db566-01fe-47ba-b00e-3fd7c7b925c8)) + (segment (start 104.14 118.364) (end 107.95 118.364) (width 0.153) (layer "F.Cu") (net 152) (tstamp 7fc08243-5052-4499-a768-f184f51f05fc)) + (segment (start 123.19 128.524) (end 117.62798 128.524) (width 0.153) (layer "F.Cu") (net 153) (tstamp 6c8d28fe-c192-4804-9e42-a4c260418767)) + (segment (start 117.62798 128.524) (end 116.84 129.31198) (width 0.153) (layer "F.Cu") (net 153) (tstamp a9fc3d7b-b46b-4155-b4df-d6a1843c8a7d)) + (via (at 116.84 129.31198) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 153) (tstamp b05de7ca-a659-467a-84b1-52a60302fca4)) + (segment (start 116.84 129.31198) (end 116.84 143.51) (width 0.153) (layer "B.Cu") (net 153) (tstamp 36b98e31-3876-40da-8067-6274e9b9502f)) + (segment (start 123.19 110.744) (end 129.525 110.744) (width 0.153) (layer "F.Cu") (net 154) (tstamp 136243cf-518a-4b22-a809-e555cc85004e)) + (segment (start 112.776 105.918) (end 114.066011 107.208011) (width 0.153) (layer "F.Cu") (net 154) (tstamp 1eec8543-621f-4092-873a-1da3134d3489)) + (segment (start 129.525 110.744) (end 129.53 110.739) (width 0.153) (layer "F.Cu") (net 154) (tstamp 2a26c95f-56c4-4dd0-9834-93ede69767b0)) + (segment (start 134.61 110.739) (end 137.15 110.739) (width 0.153) (layer "F.Cu") (net 154) (tstamp 3a5f10dc-48e4-40de-aa20-1a3b6c3963f2)) + (segment (start 129.53 110.739) (end 132.07 110.739) (width 0.153) (layer "F.Cu") (net 154) (tstamp 45a464bd-89dc-4670-8cb6-465fa00b164f)) + (segment (start 114.066011 107.208011) (end 114.066011 108.224011) (width 0.153) (layer "F.Cu") (net 154) (tstamp 91627a62-5348-407c-80a9-afb7e23030c2)) + (segment (start 114.066011 108.224011) (end 116.586 110.744) (width 0.153) (layer "F.Cu") (net 154) (tstamp a86f77df-ac92-4476-b50e-4ef800599018)) + (segment (start 132.07 110.739) (end 134.61 110.739) (width 0.153) (layer "F.Cu") (net 154) (tstamp ea0edf99-dc98-4a03-a5c3-fc227dbd5d1e)) + (segment (start 116.586 110.744) (end 123.19 110.744) (width 0.153) (layer "F.Cu") (net 154) (tstamp f6817723-e2ba-4568-abc3-4eff60387083)) + (segment (start 128.016 125.984) (end 123.19 125.984) (width 0.153) (layer "F.Cu") (net 155) (tstamp 18521a35-75be-4ca8-973c-4c4d31c83cdb)) + (segment (start 128.27 125.73) (end 128.016 125.984) (width 0.153) (layer "F.Cu") (net 155) (tstamp 349c5424-554a-4af3-a494-98582698a2e7)) + (segment (start 170.856011 128.604989) (end 171.791022 129.54) (width 0.153) (layer "F.Cu") (net 155) (tstamp 37ed7359-18c4-4394-a3f3-6fb336c0bb27)) + (segment (start 171.45 143.51) (end 128.27 143.51) (width 0.153) (layer "F.Cu") (net 155) (tstamp 80cf8585-90ff-4f4e-a81f-4dbf7e59ef63)) + (segment (start 171.791022 129.54) (end 172.72 129.54) (width 0.153) (layer "F.Cu") (net 155) (tstamp 9b962d72-ec9b-4ad3-9844-454940a098f0)) + (via (at 172.72 129.54) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 155) (tstamp 4d3cff36-00dc-4624-864d-ff3e1ed835f9)) + (via (at 171.45 143.51) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 155) (tstamp 9373769f-8ce9-4bcb-9b72-e5e308bd5605)) + (via (at 128.27 125.73) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 155) (tstamp 99dde06d-181a-4198-8b47-9c448d28aa2c)) + (via (at 128.27 143.51) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 155) (tstamp d40ea2ef-ed2e-4041-9420-5252f017c2d0)) + (segment (start 172.72 142.24) (end 171.45 143.51) (width 0.153) (layer "B.Cu") (net 155) (tstamp 0923c87e-f76f-44c5-b3c6-0c1398ba4449)) + (segment (start 128.27 143.51) (end 128.676022 143.103978) (width 0.153) (layer "B.Cu") (net 155) (tstamp 333877d9-fa92-48a1-8219-0391a82f5daa)) + (segment (start 128.676022 126.136022) (end 128.27 125.73) (width 0.153) (layer "B.Cu") (net 155) (tstamp 34282c49-707d-45fb-b77b-021ddc811b60)) + (segment (start 128.676022 143.103978) (end 128.676022 126.136022) (width 0.153) (layer "B.Cu") (net 155) (tstamp 50b4ae4c-0e7c-4437-a448-be83abe3a6ad)) + (segment (start 172.72 129.54) (end 172.72 142.24) (width 0.153) (layer "B.Cu") (net 155) (tstamp 66f3c310-45d4-42f4-a379-788fc82799c0)) + (segment (start 158.216031 124.601009) (end 169.779991 124.601009) (width 0.153) (layer "F.Cu") (net 156) (tstamp 318f3a14-5f0c-4084-8949-d363829d8200)) + (segment (start 169.779991 124.601009) (end 170.856011 123.524989) (width 0.153) (layer "F.Cu") (net 156) (tstamp 32200d98-99ff-45fe-b54b-a98d19545d84)) + (segment (start 157.140011 123.524989) (end 158.216031 124.601009) (width 0.153) (layer "F.Cu") (net 156) (tstamp 58e0fd1d-ffa6-4c8a-a9a8-2b4a67e8fcd4)) + (segment (start 91.186028 127.120011) (end 88.751011 127.120011) (width 0.153) (layer "F.Cu") (net 161) (tstamp 1668320b-3c34-4f5e-a53d-7dd2527dcb5e)) + (segment (start 100.77798 127.06002) (end 91.246019 127.06002) (width 0.153) (layer "F.Cu") (net 161) (tstamp 5b1a67de-c509-4b57-b4fc-6bbf1ee082cc)) + (segment (start 88.751011 127.120011) (end 87.625 125.994) (width 0.153) (layer "F.Cu") (net 161) (tstamp a5898181-60b9-4630-afea-af86291acbc9)) + (segment (start 101.854 125.984) (end 100.77798 127.06002) (width 0.153) (layer "F.Cu") (net 161) (tstamp a713617b-3378-4f46-8dbd-ef822fb12706)) + (segment (start 91.246019 127.06002) (end 91.186028 127.120011) (width 0.153) (layer "F.Cu") (net 161) (tstamp e3778274-e1f7-42ce-9ebc-52e32a1734c0)) + (segment (start 151.552011 70.936989) (end 159.328989 70.936989) (width 0.153) (layer "F.Cu") (net 163) (tstamp 11ad1c26-9a47-4245-b61e-3facc5fa10fb)) + (segment (start 159.328989 70.936989) (end 159.512 71.12) (width 0.153) (layer "F.Cu") (net 163) (tstamp 1ff03249-e140-48d9-869b-1421417af19f)) + (segment (start 162.56 79.248) (end 163.236011 78.571989) (width 0.153) (layer "F.Cu") (net 163) (tstamp 75a89771-14e4-4247-82b9-b7a38bde6bfe)) + (segment (start 160.02 79.248) (end 162.56 79.248) (width 0.153) (layer "F.Cu") (net 163) (tstamp f0085920-61a6-408e-93ea-8df16fd59fa3)) + (via (at 159.512 71.12) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 163) (tstamp 17cdc0c3-1914-4b1a-8fa7-fb66894ef625)) + (via (at 160.02 79.248) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 163) (tstamp cbfcf7a4-2dbf-41a1-bb1d-3b6edd9158b0)) + (segment (start 159.512 78.74) (end 160.02 79.248) (width 0.153) (layer "B.Cu") (net 163) (tstamp 9c6ec345-04a4-46fe-858c-42b9a80e7210)) + (segment (start 159.512 71.12) (end 159.512 78.74) (width 0.153) (layer "B.Cu") (net 163) (tstamp ce55243a-bec8-4e20-9b0f-27e87a6a9f10)) + (segment (start 102.769011 61.035989) (end 105.324011 58.480989) (width 0.153) (layer "F.Cu") (net 165) (tstamp 4a548f20-130b-4497-b0e0-a4ba11a2a53d)) + (segment (start 85.776011 61.035989) (end 102.769011 61.035989) (width 0.153) (layer "F.Cu") (net 165) (tstamp d06d2f30-ca6f-41b4-bf79-a91f5c8fb9ee)) + (segment (start 91.25102 124.90798) (end 119.69402 124.90798) (width 0.153) (layer "F.Cu") (net 166) (tstamp 0d5815f6-28a9-467e-b51f-2cbe47189f59)) + (segment (start 119.69402 124.90798) (end 120.142 124.46) (width 0.153) (layer "F.Cu") (net 166) (tstamp 3f850cc3-2f60-413e-9a12-8572aadab9f9)) + (segment (start 90.165 125.994) (end 91.25102 124.90798) (width 0.153) (layer "F.Cu") (net 166) (tstamp 639d3d6c-dc64-4c3d-80bb-ae3dada7f944)) + (segment (start 121.158 113.284) (end 123.19 113.284) (width 0.153) (layer "F.Cu") (net 166) (tstamp d36cd51a-c1ad-47c7-90d9-3f2ccea1b822)) + (via (at 120.142 124.46) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 166) (tstamp 3a7a7e3d-aeb0-478b-a01f-f03b60149355)) + (via (at 121.158 113.284) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 166) (tstamp cb3e0923-788c-4425-8423-f5554dd16623)) + (segment (start 90.165 133.614) (end 90.165 131.074) (width 0.153) (layer "B.Cu") (net 166) (tstamp 4bde1f76-d2d5-49cb-8b28-1df7ae13b5e9)) + (segment (start 90.165 131.074) (end 90.165 128.534) (width 0.153) (layer "B.Cu") (net 166) (tstamp 68665e85-8355-4356-8878-61b3d6423eb8)) + (segment (start 90.165 128.534) (end 90.165 125.994) (width 0.153) (layer "B.Cu") (net 166) (tstamp 89acf144-a5e3-43b8-a11b-2acf109785f7)) + (segment (start 120.142 114.3) (end 121.158 113.284) (width 0.153) (layer "B.Cu") (net 166) (tstamp f81cf28d-7f8a-45aa-8733-bbbd77ce5ecf)) + (segment (start 120.142 124.46) (end 120.142 114.3) (width 0.153) (layer "B.Cu") (net 166) (tstamp fa7a8c05-618f-42cb-966b-3664b5480436)) + (segment (start 101.854 128.524) (end 100.717989 129.660011) (width 0.153) (layer "F.Cu") (net 167) (tstamp 02492028-a30a-48e5-aa42-12840e563f92)) + (segment (start 100.717989 129.660011) (end 88.751011 129.660011) (width 0.153) (layer "F.Cu") (net 167) (tstamp 3447a8ca-fcff-464d-b95f-b3434989d765)) + (segment (start 88.751011 129.660011) (end 87.625 128.534) (width 0.153) (layer "F.Cu") (net 167) (tstamp 8c64cc8d-2148-4fbd-8885-a05e454b3fd3)) + (segment (start 101.854 131.064) (end 100.717989 132.200011) (width 0.153) (layer "F.Cu") (net 168) (tstamp 14a95f80-8628-4275-af09-b9e2d4b2bbfd)) + (segment (start 88.751011 132.200011) (end 87.625 131.074) (width 0.153) (layer "F.Cu") (net 168) (tstamp 1cb02ec6-1f53-4864-9517-5cc91087a720)) + (segment (start 100.717989 132.200011) (end 88.751011 132.200011) (width 0.153) (layer "F.Cu") (net 168) (tstamp f4f57e38-24e0-42dc-a111-e8511a56a979)) + (segment (start 101.854 133.604) (end 100.717989 134.740011) (width 0.153) (layer "F.Cu") (net 169) (tstamp b4224c00-58fe-42db-8f0b-576e679b776e)) + (segment (start 88.751011 134.740011) (end 87.625 133.614) (width 0.153) (layer "F.Cu") (net 169) (tstamp d2e243ef-188e-40b6-8f69-38990dd6eee5)) + (segment (start 100.717989 134.740011) (end 88.751011 134.740011) (width 0.153) (layer "F.Cu") (net 169) (tstamp e1cdeb56-1db0-456a-9bd8-60f63304f719)) + (segment (start 123.952 143.256) (end 122.174 141.478) (width 0.153) (layer "F.Cu") (net 170) (tstamp 02edce56-9bec-457d-9b6f-223166de9302)) + (segment (start 52.578 107.95) (end 50.943989 106.315989) (width 0.153) (layer "F.Cu") (net 170) (tstamp 0b0e7f39-fb27-4734-b980-82fd16f8692f)) + (segment (start 143.844989 122.508989) (end 140.625011 122.508989) (width 0.153) (layer "F.Cu") (net 170) (tstamp 1d6d9779-e274-46c6-baf1-3fdccfd9e25d)) + (segment (start 140.625011 122.508989) (end 139.465724 121.349702) (width 0.153) (layer "F.Cu") (net 170) (tstamp 1fcb48be-393e-4e24-90b1-01bceb957b69)) + (segment (start 68.326 129.286) (end 68.326 128.27) (width 0.153) (layer "F.Cu") (net 170) (tstamp 4e3adc66-4c91-4121-8315-13922907b67c)) + (segment (start 47.608011 106.315989) (end 46.482 107.442) (width 0.153) (layer "F.Cu") (net 170) (tstamp 590d1ecb-60d0-4b85-b8ff-ef2da108e9ee)) + (segment (start 146.731011 115.655989) (end 149.520011 118.444989) (width 0.153) (layer "F.Cu") (net 170) (tstamp 5d796207-08ff-411d-8cd4-7e7d8ef59c74)) + (segment (start 67.564 127.508) (end 66.543 127.508) (width 0.153) (layer "F.Cu") (net 170) (tstamp 799807fd-dbb4-4f0c-b4e1-39b2629a5e30)) + (segment (start 139.465724 121.349702) (end 128.078298 121.349702) (width 0.153) (layer "F.Cu") (net 170) (tstamp 7f86d6a6-18bd-48ea-82a6-52534556d4c6)) + (segment (start 128.078298 121.349702) (end 126.492 122.936) (width 0.153) (layer "F.Cu") (net 170) (tstamp 8612c671-4a3c-414e-8299-ecd366692c36)) + (segment (start 141.138011 115.655989) (end 146.731011 115.655989) (width 0.153) (layer "F.Cu") (net 170) (tstamp 9aa2608c-84df-4784-8f31-cd92c7ce8b15)) + (segment (start 68.326 128.27) (end 67.564 127.508) (width 0.153) (layer "F.Cu") (net 170) (tstamp a69c7ff0-ab72-40e6-a0e7-ac6b1c3c9d14)) + (segment (start 64.511 127.508) (end 66.543 127.508) (width 0.25) (layer "F.Cu") (net 170) (tstamp a8547715-7f41-45cd-ad3f-19f73630ff73)) + (segment (start 50.943989 106.315989) (end 47.608011 106.315989) (width 0.153) (layer "F.Cu") (net 170) (tstamp aa2f504c-dd34-416a-9a64-74630b0aa3e4)) + (segment (start 144.272 122.936) (end 143.844989 122.508989) (width 0.153) (layer "F.Cu") (net 170) (tstamp aec75f93-cddf-49ed-95ca-e960ecfe7f42)) + (segment (start 122.174 141.478) (end 80.518 141.478) (width 0.153) (layer "F.Cu") (net 170) (tstamp b51635a8-31fa-4688-956d-dad659d7034f)) + (segment (start 142.916011 138.779989) (end 145.529511 138.779989) (width 0.153) (layer "F.Cu") (net 170) (tstamp bcfc1e36-7393-4e36-b356-1cfb9d870df9)) + (segment (start 145.529511 138.779989) (end 145.6255 138.684) (width 0.153) (layer "F.Cu") (net 170) (tstamp e1c6f49f-2aa2-4c9f-8895-ca76c6077c34)) + (segment (start 80.518 141.478) (end 68.326 129.286) (width 0.153) (layer "F.Cu") (net 170) (tstamp ffaa2101-e644-41bb-a045-4176539cf30a)) + (via (at 52.578 107.95) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 170) (tstamp 24136ba8-332c-4ce0-8271-dd47abc71e18)) + (via (at 123.952 143.256) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 170) (tstamp 6d3b542f-fc52-4f8e-80ca-6d2a90695479)) + (via (at 144.272 122.936) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 170) (tstamp 7d0a4da7-5a9e-4fb6-844a-3d9fbaef9ddc)) + (via (at 126.492 122.936) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 170) (tstamp 8352256b-fa97-4655-9c1b-9ecdc9eac837)) + (via (at 145.6255 138.684) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 170) (tstamp 956631aa-5031-4d84-b074-e0f442f1d2d5)) + (segment (start 57.872011 110.847722) (end 57.300278 110.275989) (width 0.153) (layer "B.Cu") (net 170) (tstamp 07da2f0b-ee16-4da9-9e0c-5fb001da2d9b)) + (segment (start 57.872011 120.869011) (end 57.872011 110.847722) (width 0.153) (layer "B.Cu") (net 170) (tstamp 17be285b-4ecd-4970-a155-b691f1fd7205)) + (segment (start 145.6255 138.684) (end 145.6255 130.8935) (width 0.153) (layer "B.Cu") (net 170) (tstamp 1b70c4c7-68c6-417c-bee3-1fca2cb65f73)) + (segment (start 142.114022 121.019978) (end 140.625011 122.508989) (width 0.153) (layer "B.Cu") (net 170) (tstamp 28c8c9e8-8e7c-44b8-ae4b-01a6f137763c)) + (segment (start 142.114022 116.632) (end 142.114022 121.019978) (width 0.153) (layer "B.Cu") (net 170) (tstamp 2c8ac497-191b-4a81-be92-a673fb5afa50)) + (segment (start 141.138011 115.655989) (end 142.114022 116.632) (width 0.153) (layer "B.Cu") (net 170) (tstamp 2d34c4cd-c608-41e0-9843-f61b696fd6a5)) + (segment (start 144.272 129.54) (end 144.272 122.936) (width 0.153) (layer "B.Cu") (net 170) (tstamp 2d89a462-a6b5-4b4f-a87e-a59a50fef619)) + (segment (start 145.542 130.81) (end 144.272 129.54) (width 0.153) (layer "B.Cu") (net 170) (tstamp 6903f208-d369-412b-a2c2-cdf21de712e7)) + (segment (start 54.903989 110.275989) (end 52.578 107.95) (width 0.153) (layer "B.Cu") (net 170) (tstamp 7925872c-fa02-49c8-861c-dcf385d9117d)) + (segment (start 125.416025 143.256) (end 123.952 143.256) (width 0.153) (layer "B.Cu") (net 170) (tstamp 9adca723-c279-4d2f-92b0-b0ce93a643f8)) + (segment (start 126.492 122.936) (end 126.492 142.180025) (width 0.153) (layer "B.Cu") (net 170) (tstamp ae2a91ea-95c3-4736-b8c0-351eb46ad624)) + (segment (start 126.492 142.180025) (end 125.416025 143.256) (width 0.153) (layer "B.Cu") (net 170) (tstamp ddd99edd-e605-4dcf-b72e-dc73978d0132)) + (segment (start 64.511 127.508) (end 57.872011 120.869011) (width 0.153) (layer "B.Cu") (net 170) (tstamp de4d2843-ded3-4c83-87c7-853aff452a26)) + (segment (start 145.6255 130.8935) (end 145.542 130.81) (width 0.153) (layer "B.Cu") (net 170) (tstamp e9580edd-98a7-430b-9ab2-37b71cad36e1)) + (segment (start 57.300278 110.275989) (end 54.903989 110.275989) (width 0.153) (layer "B.Cu") (net 170) (tstamp fa304455-72bd-42d6-81c1-f3b83f2f0c8b)) + (segment (start 121.412 141.986) (end 80.518 141.986) (width 0.153) (layer "F.Cu") (net 171) (tstamp 0317945b-d8ca-4706-837f-54f39afcada6)) + (segment (start 142.790022 118.364) (end 142.622011 118.195989) (width 0.153) (layer "F.Cu") (net 171) (tstamp 06394eaa-90a9-4aed-8bb4-e1b5c1f7adb9)) + (segment (start 142.622011 118.195989) (end 141.138011 118.195989) (width 0.153) (layer "F.Cu") (net 171) (tstamp 2aa6f064-6cd5-45e9-bd1d-023d97ad17d1)) + (segment (start 122.936 143.51) (end 121.412 141.986) (width 0.153) (layer "F.Cu") (net 171) (tstamp 5d7f9a45-466c-45ec-9470-1daded31c965)) + (segment (start 64.516 129.54) (end 66.548 129.54) (width 0.25) (layer "F.Cu") (net 171) (tstamp 6b8424c0-baf5-40c8-b4af-3e6226d2db03)) + (segment (start 80.518 141.986) (end 68.072 129.54) (width 0.153) (layer "F.Cu") (net 171) (tstamp 6bdc4c17-5025-452e-8733-6275f5499854)) + (segment (start 143.590989 120.984989) (end 143.256 120.65) (width 0.153) (layer "F.Cu") (net 171) (tstamp a92f5a3b-0adf-4b76-b31c-4ea10ecb2964)) + (segment (start 68.072 129.54) (end 66.548 129.54) (width 0.153) (layer "F.Cu") (net 171) (tstamp cd006846-61d7-42df-bf33-ca52850b998f)) + (segment (start 138.085011 122.508989) (end 127.958011 122.508989) (width 0.153) (layer "F.Cu") (net 171) (tstamp d7174d41-27ff-4bd6-b07d-c48deed025cf)) + (segment (start 149.520011 120.984989) (end 143.590989 120.984989) (width 0.153) (layer "F.Cu") (net 171) (tstamp f79136c5-d7fc-4eb9-87bb-1e0bc02f2b01)) + (segment (start 127.958011 122.508989) (end 127.508 122.959) (width 0.153) (layer "F.Cu") (net 171) (tstamp fb7088db-89b5-4e10-ae90-0f57841ee0f8)) + (via (at 142.790022 118.364) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 171) (tstamp 4dd7d69a-71db-4150-8469-25c50a6ff685)) + (via (at 143.256 120.65) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 171) (tstamp 846aacfe-074f-4b89-aac0-5d9c09351e14)) + (via (at 127.508 122.959) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 171) (tstamp a8d34971-1818-4a79-9459-97178770109d)) + (via (at 122.936 143.51) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 171) (tstamp f9632810-8434-4111-a115-259c7b3db0f3)) + (segment (start 123.358011 143.932011) (end 122.936 143.51) (width 0.153) (layer "B.Cu") (net 171) (tstamp 426da786-ae38-4676-bf47-0b965c0fd160)) + (segment (start 125.238552 143.932011) (end 123.358011 143.932011) (width 0.153) (layer "B.Cu") (net 171) (tstamp 72affcd6-184d-4286-bbe4-06965e4a5152)) + (segment (start 138.085011 122.508989) (end 139.499 123.922978) (width 0.153) (layer "B.Cu") (net 171) (tstamp 89289247-6fb7-43f0-8f37-c3c4ed37a91d)) + (segment (start 50.292 108.712) (end 49.022 107.442) (width 0.153) (layer "B.Cu") (net 171) (tstamp 89ce4b6b-f800-4d4c-938b-cfbe0da788e1)) + (segment (start 142.790022 120.184022) (end 142.790022 118.364) (width 0.153) (layer "B.Cu") (net 171) (tstamp 91ef4684-7de9-471d-8625-e5394729e151)) + (segment (start 126.844519 142.326044) (end 125.238552 143.932011) (width 0.153) (layer "B.Cu") (net 171) (tstamp 9419c671-b65b-4663-beaf-4e5bfeff2983)) + (segment (start 143.256 120.65) (end 142.790022 120.184022) (width 0.153) (layer "B.Cu") (net 171) (tstamp 98959b2b-f811-460b-884a-daca78772a0b)) + (segment (start 126.844519 123.622481) (end 126.844519 142.326044) (width 0.153) (layer "B.Cu") (net 171) (tstamp 990e03d9-67d9-47fe-9e44-1cd980ce2859)) + (segment (start 141.138011 118.195989) (end 141.138011 119.455989) (width 0.153) (layer "B.Cu") (net 171) (tstamp 9b8798c5-7d21-43b4-8f8b-208b02f212bd)) + (segment (start 57.364011 122.388011) (end 56.491722 122.388011) (width 0.153) (layer "B.Cu") (net 171) (tstamp a25c8d1c-b461-4a6b-a344-262bedf37ffa)) + (segment (start 127.508 122.959) (end 126.844519 123.622481) (width 0.153) (layer "B.Cu") (net 171) (tstamp a5aab502-0ef0-4deb-93bb-71ad265f5c95)) + (segment (start 141.138011 119.455989) (end 138.085011 122.508989) (width 0.153) (layer "B.Cu") (net 171) (tstamp a6a9b1a7-488a-41f4-9f77-8d8c8eb8c516)) + (segment (start 50.292 116.188289) (end 50.292 108.712) (width 0.153) (layer "B.Cu") (net 171) (tstamp bdb9a630-621c-4beb-8202-e9e9111b3ef4)) + (segment (start 56.491722 122.388011) (end 50.292 116.188289) (width 0.153) (layer "B.Cu") (net 171) (tstamp d5566f44-1afb-4bf2-baa9-053fc1fa6637)) + (segment (start 139.499 132.822978) (end 142.916011 136.239989) (width 0.153) (layer "B.Cu") (net 171) (tstamp dbfd0abf-478b-4c29-be07-a33ee7b4eda5)) + (segment (start 139.499 123.922978) (end 139.499 132.822978) (width 0.153) (layer "B.Cu") (net 171) (tstamp ddbd9504-1f1b-48dc-9500-c82abf0a954f)) + (segment (start 64.516 129.54) (end 57.364011 122.388011) (width 0.153) (layer "B.Cu") (net 171) (tstamp e62ec55c-9bad-4e79-9c03-cbf8efe83ca9)) (zone (net 6) (net_name "+5V") (layer "F.Cu") (tstamp 0581f0db-d31e-4ef1-a9a5-ee72a12cd2d6) (hatch edge 0.508) (connect_pads (clearance 0.508)) diff --git a/Schematics/Z80-MIO/Z80-MIO.kicad_sch b/Schematics/Z80-MIO/Z80-MIO.kicad_sch index 1ad5858..3626586 100644 --- a/Schematics/Z80-MIO/Z80-MIO.kicad_sch +++ b/Schematics/Z80-MIO/Z80-MIO.kicad_sch @@ -7,6 +7,7 @@ (title_block (title "Z8C MIO Board") (date "2022-10-10") + (rev "2") (comment 1 "Multi I/O Board for Z8C") (comment 2 "Interrupt-Controller, GPIO, PS2, I2C, RTC, FPU/APU and Speaker") ) @@ -555,7 +556,7 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (fill (type none)) ) - (arc (start -1.016 5.08) (mid -4.6228 2.1214) (end -4.318 -2.54) + (arc (start -1.016 5.08) (mid -4.6243 2.1182) (end -4.318 -2.54) (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type none)) ) @@ -655,7 +656,7 @@ (stroke (width 0) (type default) (color 0 0 0 0)) (fill (type none)) ) - (arc (start 4.318 -2.54) (mid 4.6661 2.1322) (end 1.016 5.08) + (arc (start 4.318 -2.54) (mid 4.6646 2.1357) (end 1.016 5.08) (stroke (width 0.254) (type default) (color 0 0 0 0)) (fill (type none)) ) @@ -7877,7 +7878,7 @@ (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 9408bcfe-7d8e-4d8e-b856-915f44d6875f) ) - (label "/IOREQ" (at 47.371 29.337 0) + (label "~{#IOREQ}" (at 47.371 29.337 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 94e98a14-b840-4bd3-8b50-4cb7ea6d3846) ) @@ -8659,7 +8660,7 @@ (in_bom yes) (on_board yes) (uuid 2ddc9543-f16e-46ae-8d39-b2918a5be067) (property "Reference" "U7" (id 0) (at 267.081 39.7002 0)) - (property "Value" "74LS06" (id 1) (at 267.081 42.0116 0)) + (property "Value" "7406" (id 1) (at 267.081 42.0116 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket" (id 2) (at 267.081 47.752 0) (effects (font (size 1.27 1.27)) hide) ) @@ -8668,18 +8669,6 @@ ) (pin "1" (uuid 27447be2-9a03-4c74-8e22-82959aca38d5)) (pin "2" (uuid 01dbc623-6e4e-457b-a607-3860dc6c0eb4)) - (pin "3" (uuid 51b2997d-b40d-4e0c-81eb-c728c8350e74)) - (pin "4" (uuid bee0e1c1-b842-441d-85d5-538540a63a14)) - (pin "5" (uuid 2e484963-b269-42b3-9486-24df28465ede)) - (pin "6" (uuid d07f21eb-823b-4131-acb0-2fd90e8c76eb)) - (pin "8" (uuid 4cf23c4a-c03c-4897-b0d2-e5da4fd74f72)) - (pin "9" (uuid e57bcf50-81ce-4f5a-839b-106d5a693317)) - (pin "10" (uuid 2d21e9d4-5f95-4bd5-bafa-7195b8da2940)) - (pin "11" (uuid 31aad1ff-f8eb-44a2-b0e6-6f2533cadd8a)) - (pin "12" (uuid 08278bf4-f6e9-44ff-9adf-6e32e38a8a34)) - (pin "13" (uuid 2a66cc3a-c090-4ce0-a61f-f7e30ae6a985)) - (pin "14" (uuid 5828e2b1-6c83-4929-88ca-4d736ceaf660)) - (pin "7" (uuid 86b01ef4-965c-4060-a9de-b3e20d6f4e09)) ) (symbol (lib_id "Connector_Generic:Conn_02x05_Odd_Even") (at 40.386 83.312 90) (unit 1) @@ -8945,27 +8934,15 @@ (in_bom yes) (on_board yes) (uuid 41c1dbec-e911-4a87-9b07-0f0166125df9) (property "Reference" "U7" (id 0) (at 148.971 60.6552 0)) - (property "Value" "74LS06" (id 1) (at 148.971 62.9666 0)) + (property "Value" "7406" (id 1) (at 148.971 62.9666 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket" (id 2) (at 148.971 68.707 0) (effects (font (size 1.27 1.27)) hide) ) (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS06" (id 3) (at 148.971 68.707 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 12571566-c362-4020-afc1-5afc9948a4d0)) - (pin "2" (uuid e132594a-a911-409b-854b-e36aba5c0a64)) - (pin "3" (uuid 85efdcf2-b2af-4074-a8ec-46a9b78ab437)) - (pin "4" (uuid be3610cd-c4e5-4eef-a19b-2490be584221)) - (pin "5" (uuid bf813ca6-c9b0-496b-a4b2-6cd15e7fa5b4)) - (pin "6" (uuid 5a6be6a3-f5c4-4588-90de-f3e15e2ac316)) - (pin "8" (uuid 2b4ec33e-09ed-40fd-ad97-076778448929)) - (pin "9" (uuid 327dfcfa-f52d-4951-82e8-820abf17d1b1)) (pin "10" (uuid 48cff926-046a-41be-a025-825acb6f92b4)) (pin "11" (uuid 44b809f0-e72f-40a9-941f-7790af2b360e)) - (pin "12" (uuid 3db97f22-fffc-4d92-abfa-084b23de5826)) - (pin "13" (uuid 0385f96f-cf91-4f9c-b9eb-23c5fe1ca780)) - (pin "14" (uuid e82faff1-b691-4551-94bb-116aeaab8477)) - (pin "7" (uuid 0283e81d-c3e6-41a4-9f69-b9a54cb0d915)) ) (symbol (lib_id "Device:R_Network08") (at 24.511 59.817 90) (unit 1) @@ -9069,33 +9046,21 @@ (in_bom yes) (on_board yes) (uuid 4572e6a2-b528-408d-9ec4-54ae9300ab05) (property "Reference" "U7" (id 0) (at 267.081 91.7702 0)) - (property "Value" "74LS06" (id 1) (at 267.081 94.0816 0)) + (property "Value" "7406" (id 1) (at 267.081 94.0816 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket" (id 2) (at 267.081 99.822 0) (effects (font (size 1.27 1.27)) hide) ) (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS06" (id 3) (at 267.081 99.822 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 42e15592-6be6-4195-9d8a-70697df9dc26)) - (pin "2" (uuid dfc6c58b-b2d7-478a-8280-348471912cc8)) - (pin "3" (uuid b4182176-94b4-4042-a047-ced8894735c1)) - (pin "4" (uuid 0383ded5-fa86-42c2-b225-b677173a2e63)) - (pin "5" (uuid 88460b60-161e-4b15-8289-16f0dcbec01a)) - (pin "6" (uuid bdd9a6a6-57ba-43f2-9b3d-d661f1860a8b)) (pin "8" (uuid 186b958a-3ebe-4f29-b8d5-7754a52a3fbe)) (pin "9" (uuid 3cbdfe65-dc8b-428d-8079-dd4a88996c3a)) - (pin "10" (uuid c85ace76-c1ae-478f-9c4b-eef923a2984d)) - (pin "11" (uuid 128013b4-92f0-4f80-a481-fccffd513291)) - (pin "12" (uuid 9d209bce-2b1d-4859-b729-fb49b74adacd)) - (pin "13" (uuid a7409129-13bc-4d7a-8cc3-d55e89e4a486)) - (pin "14" (uuid 5580f029-0d73-4d2c-af54-06e31f51c0c7)) - (pin "7" (uuid a6f5341c-35ea-43dc-87a2-8a9e0eb79996)) ) (symbol (lib_id "power:GND") (at 82.296 177.292 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid 45ab63b2-69a7-4901-a31d-21ac38882192) - (property "Reference" "#PWR?" (id 0) (at 82.296 183.642 0) + (property "Reference" "#PWR0101" (id 0) (at 82.296 183.642 0) (effects (font (size 1.27 1.27)) hide) ) (property "Value" "GND" (id 1) (at 82.296 181.737 0)) @@ -9585,27 +9550,15 @@ (in_bom yes) (on_board yes) (uuid 63358355-bbc3-4796-abc2-498c9d08668f) (property "Reference" "U7" (id 0) (at 267.081 70.1802 0)) - (property "Value" "74LS06" (id 1) (at 267.081 72.4916 0)) + (property "Value" "7406" (id 1) (at 267.081 72.4916 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket" (id 2) (at 267.081 78.232 0) (effects (font (size 1.27 1.27)) hide) ) (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS06" (id 3) (at 267.081 78.232 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid ad09ce9c-7766-4f5c-b537-2abf9551f61d)) - (pin "2" (uuid 0bfad6c9-9df6-4e45-b18a-5f16528a1f0c)) - (pin "3" (uuid aadf8ee5-3a49-4003-ad80-644b5101f2a4)) - (pin "4" (uuid bbbff0c8-2027-4667-b47f-a4c5832ff320)) (pin "5" (uuid eef85841-6613-4894-8b17-c0dd2cfaca66)) (pin "6" (uuid b386dfc1-01d9-4513-8046-a34156d32478)) - (pin "8" (uuid f2ffbaa8-eec3-4e43-bf4f-06bf2c7b52eb)) - (pin "9" (uuid 653fdf05-7ad5-427f-9ad5-b898b68fc587)) - (pin "10" (uuid d29c636b-b3c5-457a-9201-57cf8aa780a0)) - (pin "11" (uuid 28612e9d-7a66-4f6c-8213-95ea6c2f7e8b)) - (pin "12" (uuid 523ab249-e8a0-459f-a478-e73ecd442c13)) - (pin "13" (uuid e109b596-defe-4fa5-8030-057b98f07ef8)) - (pin "14" (uuid 039b5e6d-01aa-4a6d-ae69-1ff629b7ab9d)) - (pin "7" (uuid 5ffe0a63-1ea9-40af-83d8-b3d2717da57e)) ) (symbol (lib_id "power:+5V") (at 208.026 191.262 0) (unit 1) @@ -9912,7 +9865,7 @@ (property "Reference" "U7" (id 0) (at 281.813 151.3586 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "74LS06" (id 1) (at 281.813 153.67 0) + (property "Value" "7406" (id 1) (at 281.813 153.67 0) (effects (font (size 1.27 1.27)) (justify left)) ) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket" (id 2) (at 275.971 152.527 0) @@ -9921,18 +9874,6 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS06" (id 3) (at 275.971 152.527 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 2bb74159-ccb4-441d-b391-98059a48dcfa)) - (pin "2" (uuid f981648a-9051-4db0-ae04-701549d3961c)) - (pin "3" (uuid 221290f4-0522-4f3d-864c-1a98b112eecc)) - (pin "4" (uuid 575fdc89-9805-4266-a2d9-595fa263b11a)) - (pin "5" (uuid 0ad96c7a-dc28-4121-8e73-05b2064bbec3)) - (pin "6" (uuid 88888024-6d70-4fa8-9829-8295a00fc2c9)) - (pin "8" (uuid 13b942f4-70b4-4c16-8221-c0d89d92d9f4)) - (pin "9" (uuid eccc4eee-4290-4334-8514-2f5669abdefa)) - (pin "10" (uuid 5162987c-ba0e-48a9-b339-be2441c4705f)) - (pin "11" (uuid 7897f435-ca2e-4185-ae83-837e505bab70)) - (pin "12" (uuid 5eb4aecd-e0df-42c4-9716-e679c869f63c)) - (pin "13" (uuid 93aeef62-c4d4-4345-8487-cc4871395e12)) (pin "14" (uuid be1c73bc-0f44-45e1-b37d-345c106adc9c)) (pin "7" (uuid 21fd20d7-158a-4b0f-8ada-26bde74acf0c)) ) @@ -9957,27 +9898,15 @@ (in_bom yes) (on_board yes) (uuid 7e042812-9033-4877-9152-b031dd83a033) (property "Reference" "U7" (id 0) (at 267.081 18.1102 0)) - (property "Value" "74LS06" (id 1) (at 267.081 20.4216 0)) + (property "Value" "7406" (id 1) (at 267.081 20.4216 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket" (id 2) (at 267.081 26.162 0) (effects (font (size 1.27 1.27)) hide) ) (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS06" (id 3) (at 267.081 26.162 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 62c1974a-816e-4477-a1c3-21a16c6b106b)) - (pin "2" (uuid 5363aa10-d5af-4a6f-b8d7-b6072faeb087)) (pin "3" (uuid fb604a65-0306-459a-9d44-700105355cd4)) (pin "4" (uuid fa787232-ba39-44ff-b079-aae8fa43bf03)) - (pin "5" (uuid 6b758e48-052b-4247-9b99-f1669fe75d16)) - (pin "6" (uuid b284637f-e8af-425e-817c-730a06fc9348)) - (pin "8" (uuid 272f63a1-f713-42f0-8f58-4fac6dd018cc)) - (pin "9" (uuid a719c4b4-e195-436e-bb36-11336adf330b)) - (pin "10" (uuid e6645d7c-8aa7-428c-9047-b9994c003579)) - (pin "11" (uuid 656203b8-2496-463d-a564-4049bc862a59)) - (pin "12" (uuid cf8be8e8-fba6-419a-9f21-3be1ca8645c2)) - (pin "13" (uuid 2f677aa4-d5a3-4a37-97a5-385066770256)) - (pin "14" (uuid ac5bf277-3416-495c-afc2-55995107a595)) - (pin "7" (uuid f18c02a5-5547-491a-88ba-3ae46155e175)) ) (symbol (lib_id "power:+5V") (at 295.021 37.592 0) (unit 1) @@ -10998,27 +10927,15 @@ (in_bom yes) (on_board yes) (uuid cf1c44d8-562d-4508-a840-78f4aed0f2ee) (property "Reference" "U7" (id 0) (at 148.971 75.8952 0)) - (property "Value" "74LS06" (id 1) (at 148.971 78.2066 0)) + (property "Value" "7406" (id 1) (at 148.971 78.2066 0)) (property "Footprint" "Package_DIP:DIP-14_W7.62mm_Socket" (id 2) (at 148.971 83.947 0) (effects (font (size 1.27 1.27)) hide) ) (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS06" (id 3) (at 148.971 83.947 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid 7dc93a63-5d3f-470f-b8af-1c0b7435de97)) - (pin "2" (uuid 0952f70b-9a46-4df4-b908-9da98d2239e2)) - (pin "3" (uuid b04253ec-2e78-4dad-96e6-b24e0b3db85d)) - (pin "4" (uuid 8bd3d5e3-3f2e-4475-b713-d0fd6846ac45)) - (pin "5" (uuid 86939526-6aac-4307-8324-878e6ec374bf)) - (pin "6" (uuid 4e854bd9-3efd-4a6d-a627-29fba1dc4509)) - (pin "8" (uuid 1f62391d-edad-497c-b927-6f2bee6a0668)) - (pin "9" (uuid 0c029347-f6a0-49a4-96c0-0365a0ed1131)) - (pin "10" (uuid 07bb4810-d4e8-4e11-aede-2cf469f26b8a)) - (pin "11" (uuid 4548ad24-3854-4916-8586-10e817dd1efb)) (pin "12" (uuid 1492ac1f-a653-463d-9d50-acea1690ff83)) (pin "13" (uuid f66b34c7-9b8a-4b17-b98f-7541b8727f72)) - (pin "14" (uuid ba972fd4-a0e9-422d-b4b8-a983b2ed4a1b)) - (pin "7" (uuid c4ec2259-b1f1-4b5a-8fe9-70f14cafe0d8)) ) (symbol (lib_id "power:+12V") (at 378.206 29.972 0) (unit 1) @@ -11056,13 +10973,15 @@ (symbol (lib_id "74xx:74HC245") (at 94.996 164.592 0) (unit 1) (in_bom yes) (on_board yes) (fields_autoplaced) (uuid d2e530a1-503a-40ca-b72f-2bf31ec0fb32) - (property "Reference" "U3" (id 0) (at 97.0154 143.637 0) + (property "Reference" "U3" (id 0) (at 97.0154 143.51 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "74HC245" (id 1) (at 97.0154 146.177 0) + (property "Value" "74HC2T45" (id 1) (at 97.0154 146.05 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "Package_DIP:DIP-20_W7.62mm_LongPads" (id 2) (at 94.996 164.592 0)) + (property "Footprint" "Package_DIP:DIP-20_W7.62mm_LongPads" (id 2) (at 94.996 164.592 0) + (effects (font (size 1.27 1.27)) hide) + ) (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC245" (id 3) (at 94.996 164.592 0) (effects (font (size 1.27 1.27)) hide) ) @@ -12108,7 +12027,7 @@ (reference "#PWR0100") (unit 1) (value "+5V") (footprint "") ) (path "/45ab63b2-69a7-4901-a31d-21ac38882192" - (reference "#PWR?") (unit 1) (value "GND") (footprint "") + (reference "#PWR0101") (unit 1) (value "GND") (footprint "") ) (path "/8e7180ee-df11-413a-a15b-c8e45c120046" (reference "BT1") (unit 1) (value "3V") (footprint "digikey-footprints:Battery_Holder_Coin_2032_BS-7") @@ -12309,7 +12228,7 @@ (reference "U2") (unit 1) (value "GAL16V8") (footprint "Package_DIP:DIP-20_W7.62mm_LongPads") ) (path "/d2e530a1-503a-40ca-b72f-2bf31ec0fb32" - (reference "U3") (unit 1) (value "74HC245") (footprint "Package_DIP:DIP-20_W7.62mm_LongPads") + (reference "U3") (unit 1) (value "74HC2T45") (footprint "Package_DIP:DIP-20_W7.62mm_LongPads") ) (path "/44d50cf2-8bea-4112-9d30-477d02e50476" (reference "U4") (unit 1) (value "74HC245") (footprint "Package_DIP:DIP-20_W7.62mm_LongPads") @@ -12321,25 +12240,25 @@ (reference "U6") (unit 1) (value "PIO-DIP-40") (footprint "Package_DIP:DIP-40_W15.24mm") ) (path "/2ddc9543-f16e-46ae-8d39-b2918a5be067" - (reference "U7") (unit 1) (value "74LS06") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") + (reference "U7") (unit 1) (value "7406") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") ) (path "/7e042812-9033-4877-9152-b031dd83a033" - (reference "U7") (unit 2) (value "74LS06") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") + (reference "U7") (unit 2) (value "7406") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") ) (path "/63358355-bbc3-4796-abc2-498c9d08668f" - (reference "U7") (unit 3) (value "74LS06") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") + (reference "U7") (unit 3) (value "7406") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") ) (path "/4572e6a2-b528-408d-9ec4-54ae9300ab05" - (reference "U7") (unit 4) (value "74LS06") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") + (reference "U7") (unit 4) (value "7406") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") ) (path "/41c1dbec-e911-4a87-9b07-0f0166125df9" - (reference "U7") (unit 5) (value "74LS06") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") + (reference "U7") (unit 5) (value "7406") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") ) (path "/cf1c44d8-562d-4508-a840-78f4aed0f2ee" - (reference "U7") (unit 6) (value "74LS06") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") + (reference "U7") (unit 6) (value "7406") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") ) (path "/7bf15ebd-56f9-4728-9fb7-e8f3a6246770" - (reference "U7") (unit 7) (value "74LS06") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") + (reference "U7") (unit 7) (value "7406") (footprint "Package_DIP:DIP-14_W7.62mm_Socket") ) (path "/b235e860-eb06-4b98-9bc2-972f8490f3de" (reference "U8") (unit 1) (value "PCF8584") (footprint "Package_DIP:DIP-20_W7.62mm_LongPads") diff --git a/Schematics/Z80-MIO/fp-info-cache b/Schematics/Z80-MIO/fp-info-cache index 5f767ed..d52ba18 100644 --- a/Schematics/Z80-MIO/fp-info-cache +++ b/Schematics/Z80-MIO/fp-info-cache @@ -1,4 +1,4 @@ -20948301665208391 +20110354470355728 Audio_Module Reverb_BTDR-1H Digital Reverberation Unit, http://www.belton.co.kr/inc/downfile.php?seq=17&file=pdf (footprint from http://www.uk-electronic.de/PDF/BTDR-1.pdf) @@ -1426,21 +1426,21 @@ Surface Mount Tactile Switch for High-Density Mounting, 3.1mm height, https://om Tactile Switch 0 4 -2 +4 Button_Switch_SMD SW_SPST_Omron_B3FS-101xP Surface Mount Tactile Switch for High-Density Mounting, 4.3mm height, https://omronfs.omron.com/en_US/ecb/products/pdf/en-b3fs.pdf Tactile Switch 0 4 -2 +4 Button_Switch_SMD SW_SPST_Omron_B3FS-105xP Surface Mount Tactile Switch for High-Density Mounting, 7.3mm height, https://omronfs.omron.com/en_US/ecb/products/pdf/en-b3fs.pdf Tactile Switch 0 4 -2 +4 Button_Switch_SMD SW_SPST_PTS645 C&K Components SPST SMD PTS645 Series 6mm Tact Switch @@ -2168,7 +2168,7 @@ SW_TH_Tactile_Omron_B3F-10xx_https://www.omron.com/ecb/products/pdf/en-b3f.pdf Omron B3F-10xx 0 4 -2 +4 Button_Switch_THT SW_Tactile_SKHH_Angled tactile switch 6mm ALPS SKHH right angle http://www.alps.com/prod/info/E/HTML/Tact/SnapIn/SKHH/SKHHLUA010.html @@ -45717,13 +45717,6 @@ USB_A Female Connector receptacle 6 5 Connector_USB -USB_A_TE_292303-7_Horizontal -USB type A, Horizontal, https://www.te.com/commerce/DocumentDelivery/DDEController?Action=srchrtrv&DocNm=292303&DocType=Customer+Drawing&DocLang=English -USB_A Female Connector receptacle -0 -6 -5 -Connector_USB USB_A_Wuerth_614004134726_Horizontal USB A connector https://www.we-online.com/catalog/datasheet/614004134726.pdf USB_A Female Connector receptacle @@ -50589,6 +50582,20 @@ Diode SOD923 2 2 Diode_SMD +D_SOT-23_ANK +SOT-23, Single Diode +SOT-23 +0 +3 +2 +Diode_SMD +D_SOT-23_NKA +SOT-23, Single Diode +SOT-23 +0 +3 +2 +Diode_SMD D_TUMD2 ROHM - TUMD2 TUMD2 @@ -53403,13 +53410,6 @@ Shielded Inductors Bourns SMD SRP7028A 2 2 Inductor_SMD -L_Bourns_SRR1208_12.7x12.7mm -Bourns SRP1208 series SMD inductor https://www.bourns.com/pdfs/SRR1208.pdf -Bourns SRP1208 SMD inductor -0 -2 -2 -Inductor_SMD L_Bourns_SRR1210A Bourns SRR1210A series SMD inductor https://www.bourns.com/docs/Product-Datasheets/SRR1210A.pdf Bourns SRR1210A SMD inductor @@ -60431,13 +60431,6 @@ Laser Diode TO56 3 3 OptoDevice -Lightpipe_Dialight_515-1064F -https://www.dialightsignalsandcomponents.com/515-optopipe-light-pipe-trilevel-2-5mm-rnd-flat-diff-lens-press-fit/#tab-resources -lightpipe triple tower right angle 3mm -0 -0 -0 -OptoDevice Lightpipe_LPF-C012303S https://www.lumex.com/spec/LPF-C012303S.pdf lightpipe dual tower right angle 3mm @@ -60445,13 +60438,6 @@ lightpipe dual tower right angle 3mm 0 0 OptoDevice -Lightpipe_LPF-C013301S -https://www.lumex.com/spec/LPF-C013301S.pdf -lightpipe triple tower right angle 3mm -0 -0 -0 -OptoDevice Lightpipe_Mentor_1275.x00x https://www.mentor-bauelemente.de/katalog/ll/MENTOR-LL.pdf spherical light pipe 4 way 3mm PLCC-2 PLCC-4 @@ -75097,56 +75083,56 @@ potentiometer vertical 9mm dual 6 Potentiometer_THT Potentiometer_Alps_RK09K_Single_Horizontal -111009J 1110AK4 11100DN 1110AAR 1110077 1110A0J 110AMJ 1110B26 D1110C1A Potentiometer, horizontal, Alps RK09K Single, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk09k/rk09k.pdf -Potentiometer horizontal Alps RK09K Single Snapin +Potentiometer, horizontal, Alps RK09K Single, http://www.alps.com/prod/info/E/HTML/Potentiometer/RotaryPotentiometers/RK09K/RK09K_list.html +Potentiometer horizontal Alps RK09K Single 0 5 -4 +3 Potentiometer_THT Potentiometer_Alps_RK09K_Single_Vertical -113004U 1130A6S 11300DR 1130A8G 1130081 1130A5R 1130AP5 1130AST D1130C3W D1130C1B D1130C3C D1130C2P Potentiometer, vertical, Alps RK09K Single, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk09k/rk09k.pdf -Potentiometer vertical Alps RK09K RK09D Single Snapin +Potentiometer, vertical, Alps RK09K Single, http://www.alps.com/prod/info/E/HTML/Potentiometer/RotaryPotentiometers/RK09K/RK09K_list.html +Potentiometer vertical Alps RK09K Single 0 -5 -4 +3 +3 Potentiometer_THT Potentiometer_Alps_RK09L_Double_Horizontal -122002H 122002L 12B0A4S 12B0A1V Potentiometer, horizontal, Alps RK09L Double, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk09l/rk09l.pdf +Potentiometer, horizontal, Alps RK09L Double, http://www.alps.com/prod/info/E/HTML/Potentiometer/RotaryPotentiometers/RK09L/RK09L_list.html Potentiometer horizontal Alps RK09L Double 0 8 -7 +6 Potentiometer_THT Potentiometer_Alps_RK09L_Double_Vertical -1240015 1240019 12D0A1W 12D0A1T Potentiometer, vertical, Alps RK09L Double, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk09l/rk09l.pdf +Potentiometer, vertical, Alps RK09L Double, http://www.alps.com/prod/info/E/HTML/Potentiometer/RotaryPotentiometers/RK09L/RK09L_list.html Potentiometer vertical Alps RK09L Double 0 -8 -7 +6 +6 Potentiometer_THT Potentiometer_Alps_RK09L_Single_Horizontal -1120A5F 1120036 1120A0Z 112003S Potentiometer, horizontal, Alps RK09L Single, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk09l/rk09l.pdf +Potentiometer, horizontal, Alps RK09L Single, http://www.alps.com/prod/info/E/HTML/Potentiometer/RotaryPotentiometers/RK09L/RK09L_list.html Potentiometer horizontal Alps RK09L Single 0 5 -4 +3 Potentiometer_THT Potentiometer_Alps_RK09L_Single_Vertical - 1140A5L 114001E 1140A2U 114001T Potentiometer, vertical, Alps RK09L Single, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk09l/rk09l.pdf +Potentiometer, vertical, Alps RK09L Single, http://www.alps.com/prod/info/E/HTML/Potentiometer/RotaryPotentiometers/RK09L/RK09L_list.html Potentiometer vertical Alps RK09L Single 0 -5 -4 +3 +3 Potentiometer_THT Potentiometer_Alps_RK09Y11_Single_Horizontal -Potentiometer, horizontal, Long Life, Alps RK09Y11 Single, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk09y11/rk09y11.pdf +Potentiometer, horizontal, Alps RK09Y11 Single, http://www.alps.com/prod/info/E/HTML/Potentiometer/RotaryPotentiometers/RK09Y11/RK09Y11_list.html Potentiometer horizontal Alps RK09Y11 Single 0 3 3 Potentiometer_THT Potentiometer_Alps_RK097_Dual_Horizontal -1210, Dual Pot, Horizontal, Alps RK097 Dual, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk097/rk097.pdf +Potentiometer, horizontal, Alps RK097 Dual, http://www.alps.com/prod/info/E/HTML/Potentiometer/RotaryPotentiometers/RK097/RK097_list.html Potentiometer horizontal Alps RK097 Dual 0 6 @@ -75154,34 +75140,27 @@ Potentiometer horizontal Alps RK097 Dual Potentiometer_THT Potentiometer_Alps_RK097_Dual_Horizontal_Switch 1221-5R1211, Dual Pot, Horizontal, Switch, Alps RK097 Dual, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk097/rk097.pdf -Potentiometer horizontal Alps RK097 Dual Switch +pot horizontal alps rk097 dual switch 0 8 8 Potentiometer_THT Potentiometer_Alps_RK097_Single_Horizontal -1110, Single Pot, Horizontal, Alps RK097 Single, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk097/rk097.pdf +Potentiometer, horizontal, Alps RK097 Single, http://www.alps.com/prod/info/E/HTML/Potentiometer/RotaryPotentiometers/RK097/RK097_list.html Potentiometer horizontal Alps RK097 Single 0 3 3 Potentiometer_THT -Potentiometer_Alps_RK097_Single_Horizontal_Switch -1111-5R1211, Single Pot, Horizontal, Switch, Alps RK097 Single, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk097/rk097.pdf -Potentiometer horizontal Alps RK097 Single Switch -0 -5 -5 -Potentiometer_THT Potentiometer_Alps_RK163_Dual_Horizontal -12101A2 1210AX9 12A0B85 12A0BKR Potentiometer, horizontal, Alps RK163 Dual, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk16/rk16.pdf +Potentiometer, horizontal, Alps RK163 Dual, http://www.alps.com/prod/info/E/HTML/Potentiometer/RotaryPotentiometers/RK16/RK16_list.html Potentiometer horizontal Alps RK163 Dual 0 6 6 Potentiometer_THT Potentiometer_Alps_RK163_Single_Horizontal -1110U1Q 1110TNP 1110U2A 1110U0Q Potentiometer, horizontal, Alps RK163 Single, https://tech.alpsalpine.com/prod/e/pdf/potentiometer/rotarypotentiometers/rk16/rk16.pdf +Potentiometer, horizontal, Alps RK163 Single, http://www.alps.com/prod/info/E/HTML/Potentiometer/RotaryPotentiometers/RK16/RK16_list.html Potentiometer horizontal Alps RK163 Single 0 3 @@ -76286,13 +76265,6 @@ ESP WROOM-02 espressif esp8266ex 19 19 RF_Module -ESP32-S2-MINI-1U -2.4 GHz Wi-Fi and Bluetooth combo chip, external antenna, https://www.espressif.com/sites/default/files/documentation/esp32-s3-mini-1_mini-1u_datasheet_en.pdf -2.4 GHz Wi-Fi Bluetooth external antenna espressif 15.4*15.4mm -0 -73 -65 -RF_Module ESP32-S2-WROVER ESP32-S2-WROVER(-I) 2.4 GHz Wi-Fi https://www.espressif.com/sites/default/files/documentation/esp32-s2-wroom_esp32-s2-wroom-i_datasheet_en.pdf ESP32-S2 ESP32 WIFI @@ -84294,27 +84266,6 @@ Transformer Ethernet SMD 24 24 Transformer_SMD -Transformer_Ethernet_Halo_N2_SO-16_7.11x12.7mm -Halo N2 SO, 16 Pin (https://www.haloelectronics.com/pdf/discrete-ultra-100baset.pdf), generated with kicad-footprint-generator ipc_gullwing_generator.py -Halo SO Transformer_SMD -0 -16 -16 -Transformer_SMD -Transformer_Ethernet_Halo_N5_SO-16_7.11x12.7mm -Halo N5 SO, 16 Pin (https://www.haloelectronics.com/pdf/discrete-ultra-100baset.pdf), generated with kicad-footprint-generator ipc_gullwing_generator.py -Halo SO Transformer_SMD -0 -16 -16 -Transformer_SMD -Transformer_Ethernet_Halo_N6_SO-16_7.11x14.73mm -Halo N6 SO, 16 Pin (https://www.haloelectronics.com/pdf/discrete-ultra-100baset.pdf), generated with kicad-footprint-generator ipc_gullwing_generator.py -Halo SO Transformer_SMD -0 -16 -16 -Transformer_SMD Transformer_Ethernet_Wuerth_749013011A Ethernet Transformer, Wuerth 749013011A, https://www.we-online.com/katalog/datasheet/749013011A.pdf Ethernet Transformer @@ -85651,3356 +85602,3 @@ varistor SIOV 0 2 2 -digikey-footprints -3-SIP_Module_TM1000Q - - -0 -3 -3 -digikey-footprints -3-SIP_Module_V7805-500 -http://www.cui.com/product/resource/v78-500.pdf - -0 -3 -3 -digikey-footprints -3-SIP_Module_V7805-1000 -http://www.cui.com/product/resource/v78xx-1000.pdf - -0 -3 -3 -digikey-footprints -4-SMD_2.35x2.95mm - - -0 -4 -4 -digikey-footprints -6-DFN_3x3mm - - -0 -7 -7 -digikey-footprints -6-PLCC_3.5x3.5mm - - -0 -6 -6 -digikey-footprints -0603 - - -0 -2 -2 -digikey-footprints -0805 - - -0 -2 -2 -digikey-footprints -1206 -http://media.digikey.com/pdf/Data%20Sheets/Lite-On%20PDFs/LTST-C230KFKT_5-24-06.pdf - -0 -2 -2 -digikey-footprints -1210 -http://www.murata-ps.com/data/magnetics/kmp_8200c.pdf - -0 -2 -2 -digikey-footprints -2320 - - -0 -4 -4 -digikey-footprints -AS-MLV-P2_9.1x9.1mm - - -0 -4 -4 -digikey-footprints -Air_Quality_Module_IAQ-CORE_P - - -0 -6 -6 -digikey-footprints -Altimeter_MS580314BA -http://www.te.com/commerce/DocumentDelivery/DDEController?Action=srchrtrv&DocNm=MS5803-14BA&DocType=Data+Sheet&DocLang=English - -0 -8 -8 -digikey-footprints -Ambient_Prox_APDS-9960 -file:///C:/Users/chad_rosencrans/Downloads/AV02-4191EN_DS_Ambient_Prox_APDS-9960_2015-11-13.pdf - -0 -8 -8 -digikey-footprints -Antenna_1.6x3.2mm_2450AT18A100E -https://www.johansontechnology.com/datasheets/antennas/2450AT18A100.pdf - -0 -2 -2 -digikey-footprints -BME680 -https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BME680-DS001-00.pdf - -0 -8 -8 -digikey-footprints -BMI160 -https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BMI160-DS000-07.pdf - -0 -14 -14 -digikey-footprints -Barrel_Jack_5.5mmODx2.1mmID_PJ-102A - - -0 -3 -3 -digikey-footprints -Barrel_Jack_5.5mmODx2.1mmID_PJ-202A - - -0 -3 -3 -digikey-footprints -Battery_Holder_9V_BC9VPC-ND -http://www.memoryprotectiondevices.com/datasheets/BC9VPC-datasheet.pdf - -0 -2 -2 -digikey-footprints -Battery_Holder_Coin_2032_BS-7 -http://www.memoryprotectiondevices.com/datasheets/BS-7-datasheet.pdf - -0 -2 -2 -digikey-footprints -Bluetooth_Module_450-0064 -http://www.lsr.com/downloads/products/330-0087.pdf - -0 -165 -53 -digikey-footprints -Bluetooth_Module_BC118 - - -0 -35 -35 -digikey-footprints -Bluetooth_Module_BC127 -https://www.bluecreation.com/userfiles/DataSheet-BC127-latest3.pdf - -0 -51 -51 -digikey-footprints -Bluetooth_Module_BL600-SA -https://assets.lairdtech.com/home/brandworld/files/Datasheet%20-%20BL600.pdf - -0 -44 -44 -digikey-footprints -Bluetooth_Module_BLE112-A-V1 -http://media.digikey.com/pdf/Data%20Sheets/BlueGiga%20PDFs/BLE112.pdf - -0 -30 -30 -digikey-footprints -Bluetooth_Module_BLE113-A-M256K - - -0 -36 -36 -digikey-footprints -Bluetooth_Module_BLE113-A-V1 - - -0 -36 -36 -digikey-footprints -Bluetooth_Module_BLE121LR-A-M256K - - -0 -36 -36 -digikey-footprints -Bluetooth_Module_BM77 - - -0 -33 -33 -digikey-footprints -Bluetooth_Module_BMD-300 - - -0 -47 -47 -digikey-footprints -Bluetooth_Module_CYBLE-022001-00 - - -0 -21 -21 -digikey-footprints -Bluetooth_Module_RFD22301 - - -0 -19 -19 -digikey-footprints -Bluetooth_Module_RFD77101 - - -0 -45 -45 -digikey-footprints -Bluetooth_Module_RN42 - - -0 -36 -33 -digikey-footprints -Bluetooth_Module_RN42-I_RM - - -0 -36 -33 -digikey-footprints -Bluetooth_Module_RN52-IRM - - -0 -50 -50 -digikey-footprints -Bluetooth_Module_RN4020 -http://ww1.microchip.com/downloads/en/DeviceDoc/50002279B.pdf - -0 -22 -22 -digikey-footprints -Bluetooth_Module_RN4677-VRM100 - - -0 -33 -33 -digikey-footprints -Bluetooth_Module_WT12-A-AI5 -http://www.digikey.com/products/en?keywords=Bluetooth_Module_WT12-A-AI5 - -0 -31 -31 -digikey-footprints -Bluetooth_Module_WT32I-A-AI6 - - -0 -50 -50 -digikey-footprints -CB-5_Formed_Leads - - -0 -29 -5 -digikey-footprints -Cellular_Breakout_2542 - - -0 -16 -16 -digikey-footprints -Cellular_Modem_NL-SW-EVDO-V - - -0 -20 -20 -digikey-footprints -Cellular_Modem_NL-SW-LTE-GELS3-C -http://nimbelink.com/Documentation/Skywire/4G_LTE_Cat_1/30122_NL-SW-LTE-GELS3_Datasheet.pdf - -0 -20 -20 -digikey-footprints -Cellular_Modem_NL-SW-LTE-TSVG - - -0 -20 -20 -digikey-footprints -Coax_Conn_U.FL -https://media.digikey.com/pdf/Data%20Sheets/Hirose%20PDFs/UFL%20Series.pdf - -0 -3 -2 -digikey-footprints -DFN-6_3x3mm_EP1 - - -0 -7 -7 -digikey-footprints -DFN-10_2x2mm -https://media.digikey.com/pdf/Data%20Sheets/NXP%20PDFs/MMA8652FC.pdf - -0 -10 -10 -digikey-footprints -DFN-10_3x3mm -http://cache.freescale.com/files/sensors/doc/data_sheet/MMA7660FC.pdf - -0 -10 -10 -digikey-footprints -DFN-12-1EP_3x3mm -http://www.ftdichip.com/Support/Documents/TechnicalNotes/TN_166%20FTDI%20Example%20IC%20PCB%20Footprints.pdf - -0 -13 -13 -digikey-footprints -DIP-4_W7.62mm -http://optoelectronics.liteon.com/upload/download/DS70-2001-026/MOC306X%20series%20201606.pdf - -0 -4 -4 -digikey-footprints -DIP-6_W7.62mm -http://optoelectronics.liteon.com/upload/download/DS70-2001-026/MOC306X%20series%20201606.pdf - -0 -6 -6 -digikey-footprints -DIP-8_W7.62mm -http://media.digikey.com/pdf/Data%20Sheets/Lite-On%20PDFs/6N137%20Series.pdf - -0 -8 -8 -digikey-footprints -DIP-10_W10.16mm - - -0 -10 -10 -digikey-footprints -DIP-14_W3mm - - -0 -14 -14 -digikey-footprints -DIP-16_W7.62mm - - -0 -16 -16 -digikey-footprints -DIP-18_W7.62mm -http://www.ti.com/lit/ds/symlink/tpic6b595.pdf - -0 -18 -18 -digikey-footprints -DIP-20_W7.62mm -http://www.digikey.com/products/en?formaction=on&lang=en&site=us&KeyWords=296-1956-5-ND - -0 -20 -20 -digikey-footprints -DIP-28_W7.62mm -http://www.digikey.com/products/en?formaction=on&lang=en&site=us&KeyWords=296-1956-5-ND - -0 -28 -28 -digikey-footprints -DIP-40_W15.24mm -http://www.ti.com/lit/ds/symlink/tpic6b595.pdf - -0 -40 -40 -digikey-footprints -DO-35 - - -0 -2 -2 -digikey-footprints -DO-35_NK - - -0 -2 -2 -digikey-footprints -DO-41 - - -0 -2 -2 -digikey-footprints -DO-214AB - - -0 -2 -2 -digikey-footprints -DO-214AC - - -0 -2 -2 -digikey-footprints -DSBGA-8_1.6x1.6mm -http://www.ti.com/lit/ds/symlink/tmp006.pdf - -0 -9 -8 -digikey-footprints -DSUB-9_Jack_5747840-3 -http://www.te.com/commerce/DocumentDelivery/DDEController?Action=srchrtrv&DocNm=5747840&DocType=Customer+Drawing&DocLang=English - -0 -11 -10 -digikey-footprints -DSUB-9_Receptical_A-DF_09_A_KG-T2S -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_4888_CO.pdf - -0 -11 -10 -digikey-footprints -DVI_Female_74320-9004 - - -0 -26 -25 -digikey-footprints -DVI_Female_74320-9010 - - -0 -32 -30 -digikey-footprints -Diode_DO-35_P10mm - - -0 -2 -2 -digikey-footprints -DisplayPort_2040210-1 - - -0 -25 -21 -digikey-footprints -DisplayPort_Mini_2129320-3 - - -0 -24 -21 -digikey-footprints -ESP32-WROOM-32D - - -0 -39 -39 -digikey-footprints -Ethernet_Jack_54602-908LF -http://portal.fciconnect.com/Comergent//fci/drawing/c-bmj-0102.pdf - -0 -8 -8 -digikey-footprints -Ethernet_Jack_ARJC02-111008B -http://www.abracon.com/Magnetics/lan/Ethernet_Jack_ARJC02-111008B.PDF - -0 -12 -12 -digikey-footprints -Ethernet_Jack_RJLSE4208101T -https://www.amphenolcanada.com/ProductSearch/drawings/AC/RJLSE4X0XX01X.pdf - -0 -10 -9 -digikey-footprints -FLIR_Lepton_Socket_1050281001 - - -0 -68 -33 -digikey-footprints -GPS_Module_CAM-M8C-0 - - -0 -31 -31 -digikey-footprints -GSM_Module_17.8x16.5mm_A2235-H - - -0 -30 -23 -digikey-footprints -Gas_Sensor_110-109 - - -0 -10 -10 -digikey-footprints -Gas_Sensor_110-202 -http://www.spec-sensors.com/wp-content/uploads/2016/02/3SP_Ethanol_1000-P-Package-Gas_Sensor_110-202.pdf - -0 -6 -6 -digikey-footprints -HDMI_A_Female_2000-1-2-41-00-BK -http://media.digikey.com/pdf/Data%20Sheets/CNC%20Tech%20PDFs/HDMI_A_Female_2000-1-2-41-00-BK_Dwg.pdf - -0 -25 -20 -digikey-footprints -HDMI_Female_DC3RX19JA3R1700 - - -0 -23 -20 -digikey-footprints -HDMI_Mini_Female_2001-1-2-21-00-BK - - -0 -23 -20 -digikey-footprints -HTQFP-100_14x14mm - - -0 -182 -101 -digikey-footprints -Hall_Sensor_SIP-3_A132_LUA-T -file:///C:/Users/chad_rosencrans/Downloads/A1324-5-6-Datasheet%20(1).pdf - -0 -3 -3 -digikey-footprints -HeaderPin_2x2_P4.2_Drill1.4mm -http://www.molex.com/pdm_docs/sd/039281043_sd.pdf - -0 -4 -4 -digikey-footprints -Headphone_Jack_2.5mm_SJ1-2503A -http://www.cui.com/product/resource/sj1-2503a.pdf - -0 -4 -4 -digikey-footprints -Headphone_Jack_3.5mm_SJ1-3523N -http://www.cui.com/product/resource/sj1-352xn-series.pdf - -0 -3 -3 -digikey-footprints -Headphone_Jack_6.35mm_RA49B14B - - -0 -5 -5 -digikey-footprints -Headphone_Jack_6.35mm_SN49B12B - - -0 -3 -3 -digikey-footprints -Humidity_HIH-4030 - - -0 -4 -4 -digikey-footprints -Humidity_HIH61xx - - -0 -8 -8 -digikey-footprints -Humidity_SHT15 -https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/2_Humidity_Sensors/Sensirion_Humidity_Sensors_SHT1x_Datasheet_V5.pdf - -0 -8 -8 -digikey-footprints -ICL_THT_P7.8mm -https://www.ametherm.com/datasheetspdf/SL322R025.pdf - -0 -2 -2 -digikey-footprints -ICL_THT_P17.1mm -https://www.ametherm.com/datasheets/as322r025 - -0 -2 -2 -digikey-footprints -IMU_Module_SEN0140 - - -0 -4 -4 -digikey-footprints -IR_Receiver_TSOP38238 - - -0 -3 -3 -digikey-footprints -Inductor_13R106C -http://www.murata-ps.com/data/magnetics/kmp_1300r.pdf - -0 -2 -2 -digikey-footprints -Jumper_Micro-Miniature_P5.31mm - - -0 -2 -2 -digikey-footprints -Jumper_Micro-Miniature_P5.375mm -file:///C:/Users/chad_rosencrans/Downloads/5102.pdf - -0 -2 -2 -digikey-footprints -Jumper_Tin_P5.32mm - - -0 -2 -2 -digikey-footprints -Jumper_Tin_P5.38mm -https://cdn.harwin.com/pdfs/S1911R.pdf - -0 -2 -2 -digikey-footprints -Jumper_Tin_P10.9mm - - -0 -2 -2 -digikey-footprints -LED_2-SMD_Gull_Wing_4.4x3.85mm - - -0 -2 -2 -digikey-footprints -LED_2-SMD_No_Lead_1.7x0.8mm - - -0 -2 -2 -digikey-footprints -LED_3mm_Radial -http://optoelectronics.liteon.com/upload/download/DS20-2000-343/1CHKxKNN.pdf - -0 -2 -2 -digikey-footprints -LED_5mm_Radial -http://optoelectronics.liteon.com/upload/download/DS20-2000-343/1CHKxKNN.pdf - -0 -2 -2 -digikey-footprints -LED_7Seg_VAOS-C402S9-BW_50 - - -0 -10 -10 -digikey-footprints -LED_0603 - - -0 -2 -2 -digikey-footprints -LED_Bar_Graph_LTA-1000 - - -0 -20 -20 -digikey-footprints -LED_Breakout_Parallax_WS2812B -https://www.parallax.com/product/28086 - -0 -6 -6 -digikey-footprints -LED_Dual0603 -http://optoelectronics.liteon.com/upload/download/DS22-2008-0044/LTST-C19HE1WT.pdf - -0 -4 -4 -digikey-footprints -LED_IR_TSAL6100 - - -0 -2 -2 -digikey-footprints -LED_RGB_WP154A4SUREQBFZGC -http://www.kingbrightusa.com/images/catalog/SPEC/WP154A4SUREQBFZGC.pdf - -0 -4 -4 -digikey-footprints -LFQFN-16-1EP_3x3mm - - -0 -17 -17 -digikey-footprints -LFQFN-16-1EP_4x4mm - - -0 -17 -17 -digikey-footprints -LGA-8_2x2.5mm_BMP280 - - -0 -8 -8 -digikey-footprints -LGA-12_4.8x2.8_VL6180 -http://www.st.com/content/ccc/resource/technical/document/datasheet/c4/11/28/86/e6/26/44/b3/DM00112632.pdf/files/DM00112632.pdf/jcr:content/translations/en.DM00112632.pdf - -0 -12 -12 -digikey-footprints -LGA-12_9x9mm_LSM303C -http://www.st.com/content/ccc/resource/technical/document/datasheet/59/aa/fb/3b/85/9e/4e/0a/DM00089896.pdf/files/DM00089896.pdf/jcr:content/translations/en.DM00089896.pdf - -0 -12 -12 -digikey-footprints -LGA-14L_2.5x3mm__LSM6DS3 -http://www.st.com/content/ccc/resource/technical/document/datasheet/a3/f5/4f/ae/8e/44/41/d7/DM00133076.pdf/files/DM00133076.pdf/jcr:content/translations/en.DM00133076.pdf - -0 -14 -14 -digikey-footprints -LGA-14_2x2mm -http://www.st.com/content/ccc/resource/technical/document/datasheet/c1/e1/62/31/d2/b1/4d/bb/DM00042751.pdf/files/DM00042751.pdf/jcr:content/translations/en.DM00042751.pdf - -0 -14 -14 -digikey-footprints -LGA-14_3x5mm_RevA -http://www.analog.com/media/en/technical-documentation/data-sheets/ADXL343.pdf - -0 -14 -14 -digikey-footprints -LGA-24_3x3.5mm_LSM9DS1 -http://www.st.com/content/ccc/resource/technical/document/datasheet/1e/3f/2a/d6/25/eb/48/46/DM00103319.pdf/files/DM00103319.pdf/jcr:content/translations/en.DM00103319.pdf - -0 -24 -24 -digikey-footprints -LGA-28_5.2x3.8mm_BNO0055 - - -0 -28 -28 -digikey-footprints -LLC-36_9x9mm_HMC6343 - - -0 -36 -36 -digikey-footprints -LLGA-10_2.5x2.5mm_LPS25HB -http://www.st.com/content/ccc/resource/technical/document/datasheet/9a/4c/aa/72/1f/45/4e/24/DM00141379.pdf/files/DM00141379.pdf/jcr:content/translations/en.DM00141379.pdf - -0 -10 -10 -digikey-footprints -LORA_Module_RM103 -http://ww1.microchip.com/downloads/en/DeviceDoc/50002346C.pdf - -0 -47 -47 -digikey-footprints -LQFP-32_7x7mm - - -0 -32 -32 -digikey-footprints -LQFP-48_7x7mm -http://wizwiki.net/wiki/lib/exe/fetch.php?media=products:w5500:w5500_ds_v106e_141230.pdf - -0 -48 -48 -digikey-footprints -LQFP-64_10x10mm - - -0 -64 -64 -digikey-footprints -LQFP-100_14x14mm - - -0 -100 -100 -digikey-footprints -LSOJ-6_W3.76mm -http://pdfserv.maximintegrated.com/package_dwgs/21-0382.PDF - -0 -6 -6 -digikey-footprints -LSSOP-24_W5.6mm -file:///C:/Users/alex_wegscheid/Downloads/TB6612FNG_datasheet_en_20141001%20(7).pdf - -0 -24 -24 -digikey-footprints -Light_to_Freq_TSL235R-LF -file:///C:/Users/alex_wegscheid/Downloads/TSL235R_DS000120_2-00%20(6).pdf - -0 -3 -3 -digikey-footprints -MSOP-8-1EP_W3mm -http://www.ti.com/lit/ds/symlink/tpa2005d1-q1.pdf - -0 -14 -9 -digikey-footprints -MSOP-8_W2.80mm - - -0 -8 -8 -digikey-footprints -MSOP-10-1EP_W3mm - - -0 -11 -11 -digikey-footprints -MSOP-10_W3mm - - -0 -10 -10 -digikey-footprints -MSOP-12-1EP_W3mm - - -0 -13 -13 -digikey-footprints -Mag_Jack_Module_WIZ820IO -http://wiznethome.cafe24.com/wp-content/uploads/wiznethome/Network%20Module/WIZ820io/Document/WIZ820io_User_Manual_V1.0.pdf - -0 -12 -12 -digikey-footprints -Mic_CMA-4544PF-W - - -0 -2 -2 -digikey-footprints -MicroSD_2908-05WB-MG - - -0 -12 -9 -digikey-footprints -Molex_734120114_UMC_RF_CONN_Vertical - - -0 -4 -2 -digikey-footprints -Multiwatt-11 -http://www.st.com/content/ccc/resource/technical/document/datasheet/ab/d6/fa/99/84/36/49/ee/CD00000017.pdf/files/CD00000017.pdf/jcr:content/translations/en.CD00000017.pdf - -0 -11 -11 -digikey-footprints -Multiwatt-15 -http://www.st.com/content/ccc/resource/technical/document/datasheet/ab/d6/fa/99/84/36/49/ee/CD00000017.pdf/files/CD00000017.pdf/jcr:content/translations/en.CD00000017.pdf - -0 -15 -15 -digikey-footprints -OLED_128x32_Folded - - -0 -15 -15 -digikey-footprints -OPLGA-6_VEML6070 -http://www.vishay.com/docs/84277/veml6070.pdf - -0 -6 -6 -digikey-footprints -Oscillator_FXO-LC73 -http://www.foxonline.com/pdfs/FXO_LC73.pdf - -0 -6 -6 -digikey-footprints -Oscillator_MEMS_SIT1533AI-H4-DCC-32.768E -https://www.sitime.com/products/datasheets/sit1533/SiT1533-datasheet.pdf - -0 -4 -4 -digikey-footprints -Oscillator_XLH536025.000000I - - -0 -4 -4 -digikey-footprints -Oscillator_XLH736022.579200I - - -0 -4 -4 -digikey-footprints -PC_TEST-POINT_MINI_3.43x1.78mm - - -0 -1 -1 -digikey-footprints -PC_TEST_POINT_SMD - - -0 -1 -1 -digikey-footprints -PC_Test_Point_Mini_3.8x2.03mm -file:///C:/Users/chad_rosencrans/Downloads/5029.PDF - -0 -1 -1 -digikey-footprints -PROBE_PAD_0603 - - -0 -1 -1 -digikey-footprints -PROBE_PAD_0805 - - -0 -1 -1 -digikey-footprints -PROBE_PAD_1206 - - -0 -1 -1 -digikey-footprints -Particle_Photon - - -0 -24 -24 -digikey-footprints -Phone_Jack_87180-062LF - - -0 -2 -2 -digikey-footprints -Photodiode_3mm_Radial -http://optoelectronics.liteon.com/upload/download/DS20-2000-343/1CHKxKNN.pdf - -0 -2 -2 -digikey-footprints -Photodiode_5mm_Radial -http://optoelectronics.liteon.com/upload/download/DS20-2000-343/1CHKxKNN.pdf - -0 -2 -2 -digikey-footprints -Photodiode_1206 -http://media.digikey.com/pdf/Data%20Sheets/Lite-On%20PDFs/LTST-C230KFKT_5-24-06.pdf - -0 -2 -2 -digikey-footprints -Photodiode_Radial_5.1x3mm_P2.54mm -http://www.osram-os.com/Graphics/XPic1/00211421_0.pdf - -0 -2 -2 -digikey-footprints -Photodiode_THT_BPW34 - - -0 -2 -2 -digikey-footprints -Phototransistor_4.4x1.5mm_P2.54_Radial -http://optoelectronics.liteon.com/upload/download/DS20-2000-343/1CHKxKNN.pdf - -0 -2 -2 -digikey-footprints -Phototransistor_SMD_4x2mm_TEMT6000X01 - - -0 -3 -3 -digikey-footprints -Piezo_9x9mm_PKMCS0909E4000-R1 - - -0 -2 -2 -digikey-footprints -Piezo_Transducer_THT_PS1240P02BT - - -0 -2 -2 -digikey-footprints -PinHeader_1x2_P2.5mm_Drill1.1mm -http://www.jst-mfg.com/product/pdf/eng/eXH.pdf - -0 -2 -2 -digikey-footprints -PinHeader_1x2_P2.54mm - - -0 -2 -2 -digikey-footprints -PinHeader_1x2_P2.54mm_Drill1.02mm -http://www.molex.com/pdm_docs/sd/022232031_sd.pdf - -0 -2 -2 -digikey-footprints -PinHeader_1x2_P2mm -http://www.jst-mfg.com/product/pdf/eng/ePH.pdf - -0 -4 -2 -digikey-footprints -PinHeader_1x2_P2mm_Drill1mm -http://www.jst-mfg.com/product/pdf/eng/ePH.pdf - -0 -2 -2 -digikey-footprints -PinHeader_1x2_P2mm_Drill1mm_RA - - -0 -2 -2 -digikey-footprints -PinHeader_1x2_P3.96mm_Drill1.6mm -http://www.jst-mfg.com/product/pdf/eng/eVH.pdf - -0 -2 -2 -digikey-footprints -PinHeader_1x3_P2.5mm_Drill1.1mm -http://www.jst-mfg.com/product/pdf/eng/eXH.pdf - -0 -3 -3 -digikey-footprints -PinHeader_1x3_P2.54_Drill1.1mm - - -0 -3 -3 -digikey-footprints -PinHeader_1x3_P2.54mm_Drill1.02mm -http://www.molex.com/pdm_docs/sd/022232031_sd.pdf - -0 -3 -3 -digikey-footprints -PinHeader_1x3_P2mm_Drill1mm -http://www.jst-mfg.com/product/pdf/eng/ePH.pdf - -0 -3 -3 -digikey-footprints -PinHeader_1x4_P2.5mm_Drill1.1mm -http://www.jst-mfg.com/product/pdf/eng/eXH.pdf - -0 -4 -4 -digikey-footprints -PinHeader_1x4_P2.54mm_Drill1.02mm -http://www.molex.com/pdm_docs/sd/022232031_sd.pdf - -0 -4 -4 -digikey-footprints -PinHeader_1x4_P2mm_Drill1mm -http://www.jst-mfg.com/product/pdf/eng/ePH.pdf - -0 -4 -4 -digikey-footprints -PinHeader_1x5_P2.5mm_Drill1.1mm -http://www.jst-mfg.com/product/pdf/eng/eXH.pdf - -0 -5 -5 -digikey-footprints -PinHeader_1x40_P2.54_Drill1mm -https://media.digikey.com/PDF/Data%20Sheets/Sullins%20PDFs/xRxCzzzSxxN-RC_ST_11635-B.pdf - -0 -40 -40 -digikey-footprints -PinHeader_2x1mm_P2mm_SMD_RA - - -0 -4 -2 -digikey-footprints -PinHeader_2x5_P1.27_SMD -http://suddendocs.samtec.com/prints/ftsh-1xx-xx-xxx-dv-xxx-footprint.pdf - -0 -10 -10 -digikey-footprints -PinHeader_2x5_P1.27mm -https://cdn.amphenol-icc.com/media/wysiwyg/files/drawing/20021121.pdf - -0 -10 -10 -digikey-footprints -PinHeader_2x5_P1.27mm_Drill.7mm -http://cnctech.us/pdfs/3220-XX-0100-00.pdf - -0 -10 -10 -digikey-footprints -PinHeader_2x5_P2.54mm_Drill1.2mm -http://www.on-shore.com/wp-content/uploads/2015/09/302-sxxx.pdf - -0 -10 -10 -digikey-footprints -PinHeader_2x6_P2.54mm_Vertical_SMD -http://www.molex.com/pdm_docs/sd/015912120_sd.pdf - -0 -12 -12 -digikey-footprints -PinHeader_2x7_P2mm_Drill1mm - - -0 -14 -14 -digikey-footprints -PinHeader_2x7_P2mm_SMD -http://www.molex.com/pdm_docs/sd/878322620_sd.pdf - -0 -14 -14 -digikey-footprints -PinHeader_6x2_P2.54mm_Horizontal -http://portal.fciconnect.com/Comergent//fci/drawing/68020.pdf - -0 -12 -12 -digikey-footprints -PinHeader_6x2_P2.54mm_Vertical -http://portal.fciconnect.com/Comergent//fci/drawing/68020.pdf - -0 -12 -12 -digikey-footprints -Potentiometer_P120PK-Y25BR10K - - -0 -5 -4 -digikey-footprints -PowerSOIC-8_W3.9mm - - -0 -16 -9 -digikey-footprints -Pressure_Sensor_LGA-8_2.5x2.5mm_BME280 - - -0 -8 -8 -digikey-footprints -PushButton_12x12mm_THT_GPTS203211B - - -0 -2 -2 -digikey-footprints -PushButton_Round_D12mm_THT_KS-01Q-01 -http://spec_sheets.e-switch.com/specs/29-KS01Q01.pdf - -0 -4 -4 -digikey-footprints -QFN-10-1EP_3x3mm - - -0 -11 -11 -digikey-footprints -QFN-20-1EP_3x3mm - - -0 -37 -21 -digikey-footprints -QFN-20-1EP_4x4mm - - -0 -37 -21 -digikey-footprints -QFN-20-1EP_4x4mm_RevA - - -0 -21 -21 -digikey-footprints -QFN-24-1EP_3x3mm - - -0 -25 -25 -digikey-footprints -QFN-24-1EP_4x4mm - - -0 -24 -24 -digikey-footprints -QFN-32-1EP_5x5mm - - -0 -42 -33 -digikey-footprints -QFN-48-1EP_6x6mm -https://www.decawave.com/sites/default/files/resources/DW1000-Datasheet-V2.12.pdf - -0 -49 -49 -digikey-footprints -QFN-48-1EP_7x7mm - - -0 -74 -49 -digikey-footprints -RF_ISM_Module_MRF89XAM9A - - -0 -12 -12 -digikey-footprints -RF_Location_Tracking_DWM1000 -https://www.decawave.com/sites/default/files/resources/DWM1000-Datasheet-V1.6.pdf - -0 -24 -24 -digikey-footprints -RF_Module_COM-13909 -https://cdn.sparkfun.com/datasheets/Wireless/General/RFM69HCW-V1.1.pdf - -0 -16 -16 -digikey-footprints -RF_Module_RXM-418-LR -https://www.linxtechnologies.com/wp/wp-content/uploads/rxm-fff-lr.pdf - -0 -16 -16 -digikey-footprints -RF_Module_RXM-433-LR -https://www.linxtechnologies.com/wp/wp-content/uploads/rxm-fff-lr.pdf - -0 -16 -16 -digikey-footprints -RF_Module_SPBT2632C2A.AT2 -http://www.st.com/content/ccc/resource/technical/document/datasheet/2c/4e/6f/76/81/4f/4b/d4/DM00048919.pdf/files/DM00048919.pdf/jcr:content/translations/en.DM00048919.pdf - -0 -22 -17 -digikey-footprints -RF_Module_SPWF01SA.11 - - -0 -30 -30 -digikey-footprints -RF_Module_TXM-433-LR - - -0 -8 -8 -digikey-footprints -RF_SMA_BoardEdge_142-0701-801 -https://belfuse.com/resources/Johnson/productinformation/pi-142-0701-801.pdf - -0 -5 -2 -digikey-footprints -RF_SMA_Receptical_Vertical_CONSMA001-SMD-G - - -0 -5 -2 -digikey-footprints -RF_SMA_RightAngle_5-1814400-1 -http://www.te.com/commerce/DocumentDelivery/DDEController?Action=srchrtrv&DocNm=1814400&DocType=Customer+Drawing&DocLang=English - -0 -5 -2 -digikey-footprints -RF_SMA_Vertical_5-1814832-1 - - -0 -5 -2 -digikey-footprints -RJ45_Female_RB1-125BAG1A -https://www.shopwiznet.com/index.php/lanotattachments/download/file/id/95/store/1/ - -0 -14 -13 -digikey-footprints -Reflective_Sensor_QRD1114 -https://www.fairchildsemi.com/datasheets/QR/QRD1113.pdf - -0 -4 -4 -digikey-footprints -Reflective_Sensor_QRE1113 - - -0 -4 -4 -digikey-footprints -Relay_JSM1-12V-5 - - -0 -5 -5 -digikey-footprints -Relay_Reed_9007-05-00 -https://media.digikey.com/pdf/Data%20Sheets/Coto%20Technology%20PDFS/9000_Spartan_Series.pdf - -0 -4 -4 -digikey-footprints -Relay_THT_EC2 - - -0 -8 -8 -digikey-footprints -Relay_THT_G5LE-14 - - -0 -5 -5 -digikey-footprints -Relay_THT_G5V-1 - - -0 -6 -6 -digikey-footprints -Relay_THT_G5V-2 - - -0 -8 -8 -digikey-footprints -Rotary_Encoder_Switched_PEC11R - - -0 -7 -6 -digikey-footprints -SC-70-5 - - -0 -5 -5 -digikey-footprints -SC-74 -https://assets.nexperia.com/documents/data-sheet/IP4220CZ6.pdf - -0 -6 -6 -digikey-footprints -SD_Holder_787231001 - - -0 -14 -9 -digikey-footprints -SIM_473080001 - - -0 -10 -7 -digikey-footprints -SIM_Nano_5045200691 - - -0 -16 -7 -digikey-footprints -SIP-3_P2.54mm - - -0 -3 -3 -digikey-footprints -SIP-3_P2.54mm_OKI-78SR-5_1.5-W36-C -https://power.murata.com/data/power/oki-78sr.pdf - -0 -3 -3 -digikey-footprints -SIP-4_W3.81mm -https://www.diodes.com/assets/Datasheets/ds21203.pdf - -0 -4 -4 -digikey-footprints -SIP-9_P2.54mm -http://www.bourns.com/docs/Product-Datasheets/4600x.pdf - -0 -9 -9 -digikey-footprints -SMD-2_3.2x1.5mm -http://www.ecsxtal.com/store/pdf/ecx-31b.pdf - -0 -2 -2 -digikey-footprints -SMD-2_3.2x2.5mm -http://www.ndk.com/images/products/catalog/c_NX3225GD-STD-CRA-3_e.pdf - -0 -2 -2 -digikey-footprints -SMD-4_3.3x2.8_PD15-22C_TR8 - - -0 -4 -2 -digikey-footprints -SMD-4_3.4x2.7mm_P1.8mm -https://www.fairchildsemi.com/datasheets/QR/QRE1113.pdf - -0 -4 -4 -digikey-footprints -SMD-4_4.4x3.85mm_P2.54mm -http://optoelectronics.liteon.com/upload/download/DS70-2001-010/LTV-356T%20series%20201610.pdf - -0 -4 -4 -digikey-footprints -SMD-4_4.6x7.62mm_P2.54mm -https://media.digikey.com/pdf/Data%20Sheets/Lite-On%20PDFs/LTV-816_826_846.pdf - -0 -4 -4 -digikey-footprints -SMD-4_5x4.4mm_P4mm -https://www.fairchildsemi.com/datasheets/MD/MDB10S.pdf - -0 -4 -4 -digikey-footprints -SMD-5-6_3.83x2.79mm - - -0 -5 -5 -digikey-footprints -SMD-5-6_R_3.83x2.79mm - - -0 -5 -5 -digikey-footprints -SMD-8_5x3mm -http://www.te.com/commerce/DocumentDelivery/DDEController?Action=srchrtrv&DocNm=MS5607-02BA03&DocType=Data+Sheet&DocLang=English - -0 -8 -8 -digikey-footprints -SMD-8_7x5mm - - -0 -8 -8 -digikey-footprints -SMD-14_Grideye -https://industrial.panasonic.com/content/data/CP/PDF/built-in_sensor_catalog_e.pdf - -0 -14 -14 -digikey-footprints -SOCKET_DIP-6_7.62mm_Conn -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_0810_CO.pdf - -0 -6 -6 -digikey-footprints -SOCKET_DIP-8_7.62mm_Conn -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_0810_CO.pdf - -0 -8 -8 -digikey-footprints -SOD-80 - - -0 -6 -2 -digikey-footprints -SOD-123 - - -0 -2 -2 -digikey-footprints -SOD-323 - - -0 -2 -2 -digikey-footprints -SOD-323F - - -0 -2 -2 -digikey-footprints -SOD-523 - - -0 -2 -2 -digikey-footprints -SOIC-6-5_W4.55mm - - -0 -5 -5 -digikey-footprints -SOIC-7-8_W3.9mm - - -0 -7 -7 -digikey-footprints -SOIC-8-1EP_W3.9mm - - -0 -9 -9 -digikey-footprints -SOIC-8_W3.9mm - - -0 -8 -8 -digikey-footprints -SOIC-8_W5.3mm -http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet-Summary.pdf - -0 -8 -8 -digikey-footprints -SOIC-8_W5.6mm - - -0 -8 -8 -digikey-footprints -SOIC-14_W3.9mm - - -0 -14 -14 -digikey-footprints -SOIC-16_W3.90mm - - -0 -16 -16 -digikey-footprints -SOIC-16_W7.5mm -https://www.infineon.com/dgdl/ir2110.pdf?fileId=5546d462533600a4015355c80333167e - -0 -16 -16 -digikey-footprints -SOIC-18_W7.5mm -http://www.ti.com/lit/ds/symlink/uln2803a.pdf - -0 -18 -18 -digikey-footprints -SOIC-20_W7.5mm - - -0 -20 -20 -digikey-footprints -SOIC-24_W7.50mm - - -0 -24 -24 -digikey-footprints -SOIC-28_W7.5mm - - -0 -28 -28 -digikey-footprints -SOP-4_W3.81mm - - -0 -4 -4 -digikey-footprints -SOT-3 -http://www.ti.com/lit/ds/symlink/tpd2eusb30.pdf - -0 -3 -3 -digikey-footprints -SOT-23-3 - - -0 -3 -3 -digikey-footprints -SOT-23-6 - - -0 -6 -6 -digikey-footprints -SOT-23-8 -http://www.ti.com/lit/ds/symlink/ina219.pdf - -0 -8 -8 -digikey-footprints -SOT-23W -file:///C:/Users/alex_wegscheid/Downloads/A1324-5-6-Datasheet%20(2).pdf - -0 -3 -3 -digikey-footprints -SOT-143-4 -http://datasheets.maximintegrated.com/en/ds/MAX6816-MAX6818.pdf - -0 -4 -4 -digikey-footprints -SOT-223 - - -0 -4 -4 -digikey-footprints -SOT-223-4 - - -0 -4 -4 -digikey-footprints -SOT-323 -https://assets.nexperia.com/documents/data-sheet/PESD1CAN-U.pdf - -0 -3 -3 -digikey-footprints -SOT-353 - - -0 -5 -5 -digikey-footprints -SOT-363 - - -0 -6 -6 -digikey-footprints -SOT-523 - - -0 -3 -3 -digikey-footprints -SOT-553 - - -0 -5 -5 -digikey-footprints -SOT-563 - - -0 -6 -6 -digikey-footprints -SOT-753 - - -0 -5 -5 -digikey-footprints -SOT23-6L -http://www.st.com/content/ccc/resource/technical/document/datasheet/9a/e6/1c/4f/b6/9a/44/e6/CD00047494.pdf/files/CD00047494.pdf/jcr:content/translations/en.CD00047494.pdf - -0 -6 -6 -digikey-footprints -SPH0645LM4H-B -http://www.digikey.com/products/en?keywords=423-1405-1-ND - -0 -9 -6 -digikey-footprints -SSOP-16_W3.90mm - - -0 -16 -16 -digikey-footprints -SSOP-20_W3.9mm -http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT231X.pdf - -0 -20 -20 -digikey-footprints -SSOP-20_W5.3mm -http://ww1.microchip.com/downloads/en/DeviceDoc/41606B.pdf - -0 -20 -20 -digikey-footprints -SSOP-24_W5.30mm - - -0 -24 -24 -digikey-footprints -SSOP-28_W5.30mm - - -0 -28 -28 -digikey-footprints -SiTIME_SMD-6-1EP -https://www.sitime.com/products/datasheets/sit9102/SiT9102-datasheet.pdf - -0 -7 -7 -digikey-footprints -Smoke_Sensor_MAX30105EFD+ -http://datasheets.maximintegrated.com/en/ds/MAX30105.pdf - -0 -14 -14 -digikey-footprints -Socket_DIP-14_7.62mm_Conn -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_0810_CO.pdf - -0 -14 -14 -digikey-footprints -Socket_DIP-16_7.62mm_Conn -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_0810_CO.pdf - -0 -16 -16 -digikey-footprints -Socket_DIP-18_7.62mm_Conn -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_0810_CO.pdf - -0 -18 -18 -digikey-footprints -Socket_DIP-20_7.62mm_Conn -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_0810_CO.pdf - -0 -20 -20 -digikey-footprints -Socket_DIP-24_7.62mm_Conn -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_0810_CO.pdf - -0 -24 -24 -digikey-footprints -Socket_DIP-24_15.24mm_Conn -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_0810_CO.pdf - -0 -24 -24 -digikey-footprints -Socket_DIP-28_7.62mm_Conn -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_0810_CO.pdf - -0 -28 -28 -digikey-footprints -Socket_DIP-28_15.24mm_Conn -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_0810_CO.pdf - -0 -28 -28 -digikey-footprints -Socket_DIP-32_15.24mm_Conn -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_0810_CO.pdf - -0 -32 -32 -digikey-footprints -Socket_DIP-40_15.24mm_Conn -http://www.assmann-wsw.com/fileadmin/datasheets/ASS_0810_CO.pdf - -0 -40 -40 -digikey-footprints -Switch_Nav_12.4x12.4mm_SMD_JS5208 - - -0 -6 -6 -digikey-footprints -Switch_Slide_11.6x4mm_EG1218 -http://spec_sheets.e-switch.com/specs/P040040.pdf - -0 -3 -3 -digikey-footprints -Switch_Slide_11.6x4mm_SJ-3523-SMT - - -0 -3 -3 -digikey-footprints -Switch_Slide_JS202011SCQN - - -0 -6 -6 -digikey-footprints -Switch_Tactile_SMD_4.5x4.5mm_TL3315NF160Q -http://spec_sheets.e-switch.com/specs/P010337.pdf - -0 -8 -4 -digikey-footprints -Switch_Tactile_SMD_6x6mm - - -0 -4 -4 -digikey-footprints -Switch_Tactile_SMD_6x6mm_PTS645 -http://www.ckswitches.com/media/1471/pts645.pdf - -0 -4 -4 -digikey-footprints -Switch_Tactile_SMD_B3U-1000P - - -0 -2 -2 -digikey-footprints -Switch_Tactile_THT_6x6mm -http://www.te.com/commerce/DocumentDelivery/DDEController?Action=srchrtrv&DocNm=1825910&DocType=Customer+Drawing&DocLang=English - -0 -4 -4 -digikey-footprints -Switch_Tactile_THT_6x6mm_MJTP1230 -http://media.digikey.com/pdf/Data%20Sheets/APEM%20Components%20PDFs/MJTP%20Series-6MM.pdf - -0 -4 -4 -digikey-footprints -Switch_Tactile_THT_B3F-1xxx -http://www.omron.com/ecb/products/pdf/en-b3f.pdf - -0 -4 -4 -digikey-footprints -Switch_Toggle_ATE1D-2M3-10-Z -https://www.nidec-copal-electronics.com/e/catalog/switch/ate.pdf - -0 -3 -3 -digikey-footprints -TCO_5.5mm_Radial -http://optoelectronics.liteon.com/upload/download/DS20-2000-343/1CHKxKNN.pdf - -0 -2 -2 -digikey-footprints -TDFN-8-1EP -file:///C:/Users/alex_wegscheid/Downloads/EST02896_MR25H256-MR25H256A_Combined%20Datasheet_Rev1.4%20020117%20(5).pdf - -0 -8 -8 -digikey-footprints -TERM_BLOCK_1x3_P5.08MM -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx2162.pdf - -0 -3 -3 -digikey-footprints -TFLGA-16_3x3.25mm -http://www.analog.com/media/en/technical-documentation/data-sheets/ADXL362.pdf - -0 -16 -16 -digikey-footprints -TFLGA-16_3x3mm -http://www.st.com/content/ccc/resource/technical/document/datasheet/3e/48/02/c7/a4/e6/41/bb/DM00053090.pdf/files/DM00053090.pdf/jcr:content/translations/en.DM00053090.pdf - -0 -16 -16 -digikey-footprints -TFQFN-24-1EP_4x4mm - - -0 -34 -25 -digikey-footprints -TFSOP-12-16_W3.00mm - - -0 -12 -12 -digikey-footprints -TFSOP-16_W3.00mm - - -0 -16 -16 -digikey-footprints -TLGA-8_3x5 -http://www.nxp.com/docs/en/data-sheet/MPL115A1.pdf - -0 -8 -8 -digikey-footprints -TO-3P-5 - - -0 -3 -3 -digikey-footprints -TO-18-3 - - -0 -3 -3 -digikey-footprints -TO-39-3 - - -0 -3 -3 -digikey-footprints -TO-39-4 -file:///C:/Users/alex_wegscheid/Downloads/MLX90614-Datasheet-Melexis%20(2).pdf - -0 -4 -4 -digikey-footprints -TO-92-3 -http://www.ti.com/lit/ds/symlink/tl431a.pdf - -0 -3 -3 -digikey-footprints -TO-92-3_Formed_Leads -http://www.ti.com/lit/ds/symlink/tl431a.pdf - -0 -3 -3 -digikey-footprints -TO-204AA - - -0 -4 -3 -digikey-footprints -TO-220-3 -http://www.st.com/content/ccc/resource/technical/document/datasheet/f9/ed/f5/44/26/b9/43/a4/CD00000911.pdf/files/CD00000911.pdf/jcr:content/translations/en.CD00000911.pdf - -0 -3 -3 -digikey-footprints -TO-220-5 -http://www.ti.com/lit/ds/symlink/lm1875.pdf - -0 -5 -5 -digikey-footprints -TO-220-11 -http://www.ti.com/lit/ds/symlink/lm3886.pdf - -0 -11 -11 -digikey-footprints -TO-225AA -https://www.fairchildsemi.com/datasheets/KS/KSA1220A.pdf - -0 -3 -3 -digikey-footprints -TO-243AA -http://www.digikey.com/products/en?keywords=863-1063-1-ND - -0 -4 -4 -digikey-footprints -TO-247-3 -http://www.st.com/content/ccc/resource/technical/document/datasheet/ec/61/1c/fd/4c/fe/48/b5/CD00000914.pdf/files/CD00000914.pdf/jcr:content/translations/en.CD00000914.pdf - -0 -3 -3 -digikey-footprints -TO-252-3 -http://www.digikey.com/products/en?keywords=MC7805BDTRKGOSCT-ND - -0 -3 -3 -digikey-footprints -TO-253-4 -https://www.digikey.com/products/en?keywords=1727-3884-1 - -0 -4 -4 -digikey-footprints -TO-261-4 -http://cds.linear.com/docs/en/datasheet/3092fc.pdf - -0 -4 -4 -digikey-footprints -TO-269AA -http://www.mccsemi.com/up_pdf/MB05S-MB10S(MBS-1).pdf - -0 -4 -4 -digikey-footprints -TOP-3_Vertical_Insulated - - -0 -3 -3 -digikey-footprints -TQFN-20-1EP_5x5mm - - -0 -21 -21 -digikey-footprints -TQFN-44-1EP_7x7mm -http://datasheets.maximintegrated.com/en/ds/MAX9744.pdf - -0 -45 -45 -digikey-footprints -TQFP-32_7x7mm -http://www.atmel.com/Images/Atmel-8826-SEEPROM-PCB-Mounting-Guidelines-Surface-Mount-Packages-ApplicationNote.pdf - -0 -32 -32 -digikey-footprints -TQFP-44_10x10mm -http://www.atmel.com/Images/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Datasheet.pdf - -0 -44 -44 -digikey-footprints -TQFP-48_7x7mm -http://ww1.microchip.com/downloads/en/DeviceDoc/40001884A.pdf - -0 -48 -48 -digikey-footprints -TQFP-64_7x7mm -http://www.nuvoton.com/resource-files/DS_NUC100_120%28DN%29_Series_EN_V1.02.pdf - -0 -64 -64 -digikey-footprints -TQFP-100_12x12mm -http://ww1.microchip.com/downloads/en/DeviceDoc/100L_TQFP_12x12_PT_C04-0100B.pdf - -0 -100 -100 -digikey-footprints -TQFP-100_14x14mm -http://www.atmel.com/Images/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf - -0 -100 -100 -digikey-footprints -TSSOP-8_W3mm -http://www.ti.com/lit/ds/symlink/ina333.pdf - -0 -8 -8 -digikey-footprints -TSSOP-8_W4.4mm -http://www.st.com/content/ccc/resource/technical/document/datasheet/0d/30/c2/1a/92/03/48/cb/CD00287506.pdf/files/CD00287506.pdf/jcr:content/translations/en.CD00287506.pdf - -0 -8 -8 -digikey-footprints -TSSOP-14_W4.4mm -http://pdfserv.maximintegrated.com/land_patterns/90-0113.PDF - -0 -14 -14 -digikey-footprints -TSSOP-16-1EP_W4.40mm - - -0 -25 -17 -digikey-footprints -TSSOP-20-1EP_W4.4mm - - -0 -40 -21 -digikey-footprints -TSSOP-20_W4.4mm -http://www.ti.com/lit/ds/symlink/txb0108.pdf - -0 -20 -20 -digikey-footprints -TSSOP-24_W4.40mm -http://www.ti.com/lit/ds/symlink/tca9548a.pdf - -0 -24 -24 -digikey-footprints -TSSOP-28-1EP_W4.40mm -http://www.ti.com/lit/ds/symlink/tlc5940.pdf - -0 -54 -29 -digikey-footprints -TSSOP-28_W4.40mm -http://www.ti.com/lit/ds/symlink/tlc5940.pdf - -0 -28 -28 -digikey-footprints -TSSOP-28_W5.60mm -http://www.cypress.com/file/139881/download - -0 -28 -28 -digikey-footprints -Term_Block_1x2_P5.08MM -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx2162.pdf - -0 -2 -2 -digikey-footprints -Term_Block_1x2_P5mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx0162.pdf - -0 -2 -2 -digikey-footprints -Term_Block_1x2_P10.16mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx2162.pdf - -0 -2 -2 -digikey-footprints -Term_Block_1x3_P5mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx0162.pdf - -0 -3 -3 -digikey-footprints -Term_Block_1x4_P5.08mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx2162.pdf - -0 -4 -4 -digikey-footprints -Term_Block_1x4_P5mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx0162.pdf - -0 -4 -4 -digikey-footprints -Term_Block_1x5_P5.08mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx2162.pdf - -0 -5 -5 -digikey-footprints -Term_Block_1x5_P5mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx0162.pdf - -0 -5 -5 -digikey-footprints -Term_Block_1x6_P5.08mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx2162.pdf - -0 -6 -6 -digikey-footprints -Term_Block_1x6_P5mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx0162.pdf - -0 -6 -6 -digikey-footprints -Term_Block_1x7_P5.08mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx2162.pdf - -0 -7 -7 -digikey-footprints -Term_Block_1x7_P5mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx0162.pdf - -0 -7 -7 -digikey-footprints -Term_Block_1x8_P5.08mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx2162.pdf - -0 -8 -8 -digikey-footprints -Term_Block_1x8_P5mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx0162.pdf - -0 -8 -8 -digikey-footprints -Term_Block_1x10_P5.08mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx2162.pdf - -0 -10 -10 -digikey-footprints -Term_Block_1x12_P5.08mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx2162.pdf - -0 -12 -12 -digikey-footprints -Term_Block_1x12_P5mm -http://www.on-shore.com/wp-content/uploads/2015/09/osttcxx0162.pdf - -0 -12 -12 -digikey-footprints -Terminal_Block_D1.3mm_P5mm -https://media.digikey.com/pdf/Data%20Sheets/Phoenix%20Contact%20PDFs/1935161.pdf - -0 -2 -2 -digikey-footprints -Test-Point-Pin_Drill2.79mm - - -0 -1 -1 -digikey-footprints -Test_Jack_Horiz -https://belfuse.com/resources/Johnson/drawings/dr-1051101001.pdf - -0 -2 -1 -digikey-footprints -Test_Point_2.67x1.02mm - - -0 -1 -1 -digikey-footprints -Test_Point_3.43x1.78mm - - -0 -1 -1 -digikey-footprints -Test_Point_D1.02mm - - -0 -1 -1 -digikey-footprints -Thermocouple_Connector_PCC-SMP-K - - -0 -4 -2 -digikey-footprints -Tilt_Switch_RB-220-07A_R -http://media.digikey.com/pdf/Data%20Sheets/C&K/RB-220-07A_R.pdf - -0 -2 -2 -digikey-footprints -Toggle_Switch_100SP1T1B4M2QE -http://spec_sheets.e-switch.com/specs/T111597.pdf - -0 -3 -3 -digikey-footprints -Toggle_Switch_100SP1T2B4M6QE - - -0 -5 -4 -digikey-footprints -Trans_SOT-223-4 - - -0 -4 -3 -digikey-footprints -Trimpot_3.8mmx3.6mm_TC33X-2-103E -http://www.bourns.com/docs/Product-Datasheets/TC33.pdf - -0 -3 -3 -digikey-footprints -UDFN-6-1EP_2x2mm -http://datasheets.maximintegrated.com/en/ds/MAX44009.pdf - -0 -7 -7 -digikey-footprints -UDFN-6-1EP_2x2mm_USON - - -0 -9 -7 -digikey-footprints -UFBGA_WLCSP-62 -https://www.nordicsemi.com/eng/nordic/download_resource/62726/14/67410332/13358 - -0 -62 -62 -digikey-footprints -UFDFN-6_1.45x1mm - - -0 -6 -6 -digikey-footprints -UFDFN-10_2.5x1mm -http://www.semtech.com/images/datasheet/rclamp0522p_0524p.pdf - -0 -10 -10 -digikey-footprints -UFQFN-28-1EP_4x4mm -http://www.semtech.com/images/datasheet/sx150x_89b.pdf - -0 -29 -29 -digikey-footprints -UFQFN-32-1EP_5x5mm -file:///C:/Users/alex_wegscheid/Downloads/csr1010-data-sheet%20(4).pdf - -0 -33 -33 -digikey-footprints -UMCoax_Pin_1909763-1 - - -0 -3 -2 -digikey-footprints -USB-C_Female_12401X -https://media.digikey.com/pdf/Data%20Sheets/Amphenol%20PDFs/12401610E4%232A_Dwg.pdf - -0 -28 -25 -digikey-footprints -USB-C_Female_CX70M-24P1 - - -0 -42 -25 -digikey-footprints -USB-C_Female_E8124-015-01 -https://www.digikey.com/product-detail/en/pulse-electronics-network/E8124-015-01/553-3195-2-ND/5800435 - -0 -32 -25 -digikey-footprints -USB-C_Female_Vert_DX07S024WJ3R400 - - -0 -28 -25 -digikey-footprints -USB-C_Male_EdgeMnt_DX07P024AJ1R1500 - - -0 -30 -25 -digikey-footprints -USB-C_Male_EdgeMnt_DX07P024MJ1R1500 -http://www.jae.com/z-en/pdf_download_exec.cfm?param=MB-0301-2E_DX07_PLUG.pdf - -0 -32 -25 -digikey-footprints -USB-C_Rugged_RA_MUSBRM1C1M0 -https://www.amphenolcanada.com/ProductSearch/Drawings/AC/MUSBRM1C1XX.pdf - -0 -32 -26 -digikey-footprints -USB_A_Female_AU-Y1006-3 - - -0 -13 -10 -digikey-footprints -USB_A_Female_E8199-001-01 -file:///C:/Users/chad_rosencrans/Downloads/USB_A_Female_E8199-001-01.pdf - -0 -11 -10 -digikey-footprints -USB_A_Female_UE27AC54100 - - -0 -6 -5 -digikey-footprints -USB_A_Female_Vertical_RA_73725-0110BLF -http://portal.fciconnect.com/Comergent//fci/drawing/73725.pdf - -0 -8 -5 -digikey-footprints -USB_Male_A_UP2-AH-1-TH -http://www.cui.com/product/resource/up2-ah-th.pdf - -0 -8 -5 -digikey-footprints -USB_Micro_AB_Female_0475890001 -http://www.molex.com/pdm_docs/sd/475890001_sd.pdf - -0 -17 -6 -digikey-footprints -USB_Micro_A_3.1_Female_GSB443T33HR -http://media.digikey.com/pdf/Data%20Sheets/Amphenol%20PDFs/USB_Micro_A_3.1_Female_GSB443T33HR_Dwg.pdf - -0 -16 -11 -digikey-footprints -USB_Micro_B_Female_10103594-0001LF -https://cdn.amphenol-icc.com/media/wysiwyg/files/drawing/10103594.pdf - -0 -13 -6 -digikey-footprints -USB_Micro_B_Female_10118192 -http://portal.fciconnect.com/Comergent//fci/drawing/10118192.pdf - -0 -11 -6 -digikey-footprints -USB_Micro_B_Female_10118193-0001LF -http://portal.fciconnect.com/Comergent//fci/drawing/10118193.pdf - -0 -11 -6 -digikey-footprints -USB_Micro_B_Female_10118194-0001LF -http://portal.fciconnect.com/Comergent//fci/drawing/10118194.pdf - -0 -9 -6 -digikey-footprints -USB_Micro_B_Female_0473460001 -http://www.molex.com/pdm_docs/sd/473460001_sd.pdf - -0 -11 -6 -digikey-footprints -USB_Micro_B_Female_1050170001 - - -0 -17 -6 -digikey-footprints -USB_Micro_B_Female_Vert_1051330001 -http://www.molex.com/pdm_docs/sd/1051330001_sd.pdf - -0 -8 -6 -digikey-footprints -USB_Micro_B_Male_UJ2-MIBH-4-SMT-TR - - -0 -11 -6 -digikey-footprints -USB_Mini_B_Female_690-005-299-043 -http://files.edac.net/USB_Mini_B_Female_690-005-299-043.pdf - -0 -9 -6 -digikey-footprints -USB_Mini_B_Female_548190519 - - -0 -7 -6 -digikey-footprints -USB_Mini_B_Female_UJ2-MBH-1-SMT-TR - - -0 -11 -6 -digikey-footprints -USB_Mini_B_Female_UX60-MB-5ST - - -0 -11 -6 -digikey-footprints -VFLGA-12_2x2mm -http://www.st.com/content/ccc/resource/technical/document/datasheet/54/2a/85/76/e3/97/42/18/DM00075867.pdf/files/DM00075867.pdf/jcr:content/translations/en.DM00075867.pdf - -0 -12 -12 -digikey-footprints -VFLGA-16_3x3mm -http://www.st.com/content/ccc/resource/technical/document/datasheet/3c/ae/50/85/d6/b1/46/fe/CD00274221.pdf/files/CD00274221.pdf/jcr:content/translations/en.CD00274221.pdf - -0 -16 -16 -digikey-footprints -VFQFN-16-1EP_3x3mm -http://www.psemi.com/pdf/datasheets/pe42423ds.pdf - -0 -17 -17 -digikey-footprints -VFQFN-28-1EP_5x5mm - - -0 -29 -29 -digikey-footprints -VFQFN-40-1EP_6x6mm -http://www.ti.com/lit/ds/symlink/cc2650.pdf - -0 -41 -41 -digikey-footprints -VFQFN-64-1EP_9x9mm -http://www.ti.com/lit/ds/symlink/cc3200.pdf - -0 -65 -65 -digikey-footprints -VL53L0CXV0DH_1 -http://www.st.com/content/ccc/resource/technical/document/datasheet/group3/b2/1e/33/77/c6/92/47/6b/DM00279086/files/DM00279086.pdf/jcr:content/translations/en.DM00279086.pdf - -0 -12 -12 -digikey-footprints -VOC_Sensor_LGA-10-1EP-2.7x4mm_CCS811B - - -0 -11 -11 -digikey-footprints -VQFN-16_3x3mm - - -0 -16 -16 -digikey-footprints -VQFN-28-1EP_6x6mm -http://www.semtech.com/images/datasheet/sx1272.pdf - -0 -29 -29 -digikey-footprints -VSON-10-1EP_3x3mm - - -0 -30 -11 -digikey-footprints -WFDFN-6_1.5x1.5mm - - -0 -6 -6 -digikey-footprints -WFDFN-8-1EP_3x3mm - - -0 -9 -9 -digikey-footprints -WFDFN-14-1EP_3x3mm -http://pdfserv.maximintegrated.com/land_patterns/90-0063.PDF - -0 -15 -15 -digikey-footprints -WFQFN-10_2x2mm - - -0 -10 -10 -digikey-footprints -WFQFN-38-1EP_5x7mm -http://cds.linear.com/docs/en/datasheet/4020fd.pdf - -0 -39 -39 -digikey-footprints -WIFI_Module_ATWINC1500-MR210PB -http://ww1.microchip.com/downloads/en/DeviceDoc/70005304A.pdf - -0 -29 -29 -digikey-footprints -WIFI_Module_ESP8266_2491 -http://media.digikey.com/pdf/Data%20Sheets/Adafruit%20PDFs/ESP-12S_UM%20_Rev1.0_8-1-16.pdf - -0 -16 -16 -digikey-footprints -WIFI_Module_WF111-E-V1 -http://media.digikey.com/pdf/Data%20Sheets/BlueGiga%20PDFs/WF111.pdf - -0 -33 -33 -digikey-footprints -WIFI_Module_WF121-A-V2 - - -0 -55 -55 -digikey-footprints -WQFN-16-1EP_4x4mm -http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT230X.pdf - -0 -17 -17 -digikey-footprints -WQFN-20-1EP_4x4mm -http://www.ti.com/lit/ds/symlink/tpa2016d2.pdf - -0 -50 -21 -digikey-footprints -WQFN-24-1EP_4x4mm - - -0 -25 -25 -digikey-footprints -WSON-8_2x2mm -http://www.ti.com/lit/ds/symlink/drv8837.pdf - -0 -11 -9 -digikey-footprints -WiFi_Module_MRF24WG0MA - - -0 -36 -36 -digikey-footprints -Wifi_Module_ESP8266_WRL-13678 - - -0 -8 -8 -digikey-footprints -Wifi_Module_RN171 - - -0 -52 -50 -digikey-footprints -WizNet_Module_WIZ810MJ -http://wiznethome.cafe24.com/wp-content/uploads/wiznethome/Network%20Module/WIZ8XXMJ/Document/WIZ810MJ_DS_V130E.pdf - -0 -56 -56 -digikey-footprints -XBEE-20_THT -https://www.digi.com/pdf/ds_xbeemultipointmodules.pdf - -0 -20 -20 -digikey-footprints -XBEE_PRO-20_THT - - -0 -20 -20 -digikey-footprints -XBEE_and_XBEE-PRO_37_SMD - - -0 -74 -37 -digikey-footprints -XDFN-2_1x0.60mm - - -0 -2 -2 -digikey-footprints -Zigbee_Module_MRF24J40MA -http://ww1.microchip.com/downloads/en/DeviceDoc/70329b.pdf - -0 -12 -12 -digikey-footprints -Zigbee_Module_MRF24J40MD - - -0 -12 -12 -w_conn_av -MENTOR A500 Dual 3mm - - -0 -4 -4 -w_conn_av -PS2 - - -0 -8 -7 -w_conn_av -SCART -SCART socket, Tyco P/N 1483465-1 - -0 -21 -21 -w_conn_av -SW_Toggle_Blue_wSlots -SW Toggle -SW Toggle -0 -3 -3 -w_conn_av -din-5 -Din 5 (MIDI), Pro Signal P/N PSG03463 - -0 -7 -6 -w_conn_av -jack_3.5_pj313d-smt -3.5mm jack, HK RTL PJ313D - -0 -6 -3 -w_conn_av -jack_3.5_sj1-3513-smt -3.5mm jack, CUI SJ1-3513-SMT - -0 -3 -3 -w_conn_av -jack_3.5_sj1-3514-smt -3.5mm jack, CUI SJ1-3514-SMT - -0 -4 -4 -w_conn_av -jack_3.5_sj1-3515-smt -3.5mm jack, CUI SJ1-3515-SMT - -0 -5 -5 -w_conn_av -jack_3.5_vert_lje0352-4r -Vertical 3.5mm jack, Lih Sheng LJE0352-4R - -0 -4 -4 -w_conn_av -minidin-8 -MiniDin 8 (S-Video), Tyco P/N 1734096-1 - -0 -11 -11 -w_conn_av -rca_black -RCA Audio connector, black, Pro Signal p/n PSG01544 -rca, audio -0 -3 -2 -w_conn_av -rca_red -RCA Audio connector, red, Pro Signal p/n PSG01545 -rca, audio -0 -3 -2 -w_conn_av -rca_white -RCA Audio connector, white, Pro Signal p/n PSG01546 -rca, audio -0 -3 -2 -w_conn_av -rca_yellow -RCA Audio connector, yellow, Pro Signal p/n PSG01547 -rca, audio -0 -3 -2 diff --git a/Utility/build.sh b/Utility/build.sh new file mode 100755 index 0000000..334ea6b --- /dev/null +++ b/Utility/build.sh @@ -0,0 +1,107 @@ +#!/bin/bash +# Z8C Monitor build script +# by Dennis Gunia 2022 +# + +FILENAME="$2" +EEPROM_PART="AT28C256" + +ROOT_DIR="$(git rev-parse --show-toplevel)" +PROJECT_DIR="$1" + +if [ -f $1/properties.env ]; then + echo "Found $1/properties.env - Overriding local vars" + . $1/properties.env +fi + +# Start of build script +echo -e "Start building Z8C monitor...\n" +echo -e "Root Directory : $ROOT_DIR" +echo -e "Project Directory : $PROJECT_DIR" +echo -e "ASM File : $FILENAME.asm\n\n" + +# Check path +if [ ! -d "$PROJECT_DIR" ]; then + echo "Project directory not defined. Use ./build.sh " +fi + +if [ ! -f "$PROJECT_DIR/$FILENAME.asm" ]; then + echo "ASM file $PROJECT_DIR/$FILENAME.asm not found. Use ./build.sh " +fi + +cd $PROJECT_DIR + +# Build +CMD="$ROOT_DIR/Utility/zmac $FILENAME.asm -I include -L --oo hex,lst" +echo -e "[BUILD] Execute: $CMD" +$CMD +RC_BUILD=$? + +if [ $RC_BUILD -gt 0 ]; then + echo "[BUILD] Build failed! Exit." + exit $RC_BUILD +else + echo "[BUILD] Build successfull!" +fi + +if [ $OPT_GEN_OBJFILE -gt 0 ]; then + echo "[OBJ] OPT_GEN_OBJFILE set! Generating object file zout/$FILENAME.bin" + CMD="objcopy --input-target=ihex --output-target=binary zout/$FILENAME.hex zout/$FILENAME.bin" + echo -e "[OBJ] Execute: $CMD" + $CMD + + if [ $RC_BUILD -gt 0 ]; then + echo "[OBJ] Build failed! Exit." + exit $RC_BUILD + else + echo "[OBJ] Build successfull!" + echo "[OBJ] Binary size: $(stat -c %s zout/$FILENAME.bin) bytes" + fi +else + echo "[OBJ] OPT_GEN_OBJFILE not set! Skipping object file" +fi + +if [ $OPT_GEN_MONFILE -gt 0 ]; then + echo "[MON] OPT_GEN_MONFILE set! Generating monitor file zout/$FILENAME.mon" + if [ -f zout/$FILENAME.mon ]; then + echo "[MON] Removing old .mon file" + rm zout/$FILENAME.mon + fi + + while read p; do + LINE="!${p:3:4} $(echo ${p:9:-2} | sed 's/.\{2\}/& /g' | sed 's/\ $//')" + echo -e "$LINE" >> zout/$FILENAME.mon + done <<< "$(grep -e ':......00.*' zout/$FILENAME.hex )" + echo "[MON] Generated $(cat zout/$FILENAME.mon | wc -l) lines!" +else + echo "[OBJ] OPT_GEN_MONFILE not set! Skipping monitor file" +fi + + +if [ $OPT_GEN_SYMBOLTABLE -gt 0 ]; then + echo "[SYM] OPT_GEN_SYMBOLTABLE set! Generating symbol file zout/symbols.s" + echo "[SYM] Building Symbol File" + # generate call locations list + echo -e ";This file is generated by the build script.\n;Do not make any changes here!\n" > zout/symbols.s + sed -n '/Symbol Table:/,$p' zout/$FILENAME.lst | \ + grep -v "Symbol Table:" | grep -v -e '^$' | \ + grep -v = | awk '{printf("%s equ 0x%s\n",$1,$2)}' \ + >> zout/symbols.s + echo "[SYM] Generated Symbol file @ zout/symbols.s" +else + echo "[SYM] OPT_GEN_SYMBOLTABLE not set! Skipping symbol file" +fi + +if [ $OPT_WRITEROM -gt 0 ]; then + echo "[PGM] OPT_WRITEROM set! Starting programmer for $EEPROM_PART" + read -p "[PGM] Programm EEPROM? (y/N) " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]] + then + # programm EEPROM + minipro -p $EEPROM_PART -w zout/$FILENAME.hex -s + fi +else + echo "[PGM] OPT_WRITEROM not set! Skipping programming" +fi + diff --git a/Utility/zmac b/Utility/zmac new file mode 100755 index 0000000..2e2f5e2 Binary files /dev/null and b/Utility/zmac differ