R1B2 gerbers, start+stop bits in modem driver

This commit is contained in:
Anders Nielsen 2022-10-18 11:00:00 +02:00
parent c7fb9c848d
commit dbe1feabca
21 changed files with 107932 additions and 69250 deletions

2
.gitignore vendored
View File

@ -8,3 +8,5 @@ hardware/_autosave-6502.kicad_sch
hardware/#auto_saved_files# hardware/#auto_saved_files#
_autosave* _autosave*
msbasic msbasic
*-bak
hardware/tmp

View File

@ -25,9 +25,9 @@ For R1 I got rid of the Padauk MCU without increasing the chip count!
1) Send gerber files from /hardware to your favorite board house 1) Send gerber files from /hardware to your favorite board house
2) Build the project using assemble.sh - this will also try to burn the main ROM using Minipro. Dependencies: [CC65] (https://github.com/cc65/cc65) and a way to burn the ROM's. 2) Build the project using assemble.sh - this will also try to burn the main ROM using Minipro. Dependencies: [CC65] (https://github.com/cc65/cc65) and a way to burn the ROM's.
3) Source the IC's - the spirit of this project is to contribute as little as possible to the global IC shortage and get used chips locally or from Ebay/AliExpress/etc. 3) Source the IC's - the spirit of this project is to contribute as little as possible to the global IC shortage and get used chips locally or from Ebay/AliExpress/etc.
4) Burn the ROMs. I use a TL866II Plus variant for the actual ROMs. 4) Burn the ROMs. I use a TL866II Plus variant for the actual ROMs.
5) Solder away 5) Solder away
6) For the PS/2-keyboard I use the 6522's Shift Register, PB6, and a 74xx74 flip flop. See my R1 Hardware overview at 7:46: https://youtu.be/w5cA64xof2I?t=466 This will hardware-wise be included on the next build. 6) For the PS/2-keyboard I use the 6522's Shift Register, PB6, and a 74xx74 flip flop. See my R1 Hardware overview at 7:46: https://youtu.be/w5cA64xof2I?t=466 This is now included on the board - instead of a PS/2 connector which can be harder to source I went with a USB-A-connector.
7) Enjoy! 7) Enjoy!
Optional: Optional:

View File

@ -3,7 +3,7 @@
.feature org_per_seg .feature org_per_seg
.feature c_comments .feature c_comments
.export main, kb_rptr, PRIMM, printk, printbyte, wkey, PORTB, TIMEOUT,exitirq, printa, newline, setpulses, scrp, scwp, simpledelay, selectbaudrate, MILLISH,resetkb, clrscn,checkkeyboard, kb_buffer, MONRDKEY,CRSRPNT, t2irqreg1, MILLIS .export I2CADDR, I2CREG, i2c_read, i2c_test, main, kb_rptr, PRIMM, printk, printbyte, wkey, PORTB, TIMEOUT,exitirq, printa, newline, setpulses, scrp, scwp, simpledelay, selectbaudrate, MILLISH,resetkb, clrscn,checkkeyboard, kb_buffer, MONRDKEY,CRSRPNT, t2irqreg1, MILLIS
;BASIC := 1 ; 1 if BASIC is enabled ;BASIC := 1 ; 1 if BASIC is enabled
;DEBUG = 1 ;DEBUG = 1
@ -23,7 +23,7 @@ PCR = $600C ; [7:5] CB2 Control, [4] CBl Control, [3:1] CA2 Control, [0] CAl Co
IFR = $600D ; [7:0] IRQ Tl T2 CBl CB2 SR CA1 CA2 IFR = $600D ; [7:0] IRQ Tl T2 CBl CB2 SR CA1 CA2
IER = $600E ; [7:0] S/C Tl T2 CBl CB2 SR CA1 CA2 IER = $600E ; [7:0] S/C Tl T2 CBl CB2 SR CA1 CA2
PORTANHS = $600F PORTANHS = $600F
CTRL = $5000 CTRL = $7000
TIMEOUT = 7998 ; Should be around 2ms TIMEOUT = 7998 ; Should be around 2ms
@ -77,6 +77,8 @@ ABUF = movedfromzp+8 ; 8 bytes
TMP4 = movedfromzp+16 TMP4 = movedfromzp+16
SVCSR = movedfromzp+17 SVCSR = movedfromzp+17
;+1 ;+1
I2CADDR = movedfromzp+19
I2CREG = movedfromzp+20
zp_s = $f8 zp_s = $f8
kb_wptr = zp_s kb_wptr = zp_s
@ -128,6 +130,7 @@ KCS300PH = 8 ; and 8 2400Hz pulses for a 1
TAPEVARS = movedfromzp+32 TAPEVARS = movedfromzp+32
CBIT = TAPEVARS CBIT = TAPEVARS
RXBYTE = TAPEVARS+1 RXBYTE = TAPEVARS+1
BITNO = TAPEVARS+1 ; Reusing
TAPEFLAGS = TAPEVARS+2 TAPEFLAGS = TAPEVARS+2
PULSES = TAPEVARS+3 PULSES = TAPEVARS+3
NRZBYTE = TAPEVARS+4 NRZBYTE = TAPEVARS+4
@ -153,8 +156,8 @@ miso = %00100000
SDA = 8; PB3 bitmask SDA = 8; PB3 bitmask
SDA_INV = $F7 SDA_INV = $F7
SCL = 1; PB0 bitmask SCL = 16; PB4 bitmask
SCL_INV = $FE SCL_INV = $EF
.segment "RODATA" .segment "RODATA"
;.org $8000 ; Not strictly needed with CA65 but shows correct address in listing.txt ;.org $8000 ; Not strictly needed with CA65 but shows correct address in listing.txt
@ -656,13 +659,23 @@ jread:
sta MONL sta MONL
; inc kb_rptr ; inc kb_rptr
; jmp newmon ; jmp newmon
ldy #0
lda (MONL),y
jsr PRIMM jsr PRIMM
.asciiz "\nRead: " .asciiz "\nRead:\n"
reread:
lda CRSRPNT
and #%11000000 ; keep only section bits
ora #LINESTART ;
sta CRSRPNT
ldy #0
sty kb_rptr
sty kb_wptr
lda (MONL),y
jsr printbyte jsr printbyte
jsr checkkeyboard
beq reread
jsr PRIMM jsr PRIMM
.asciiz "\nPress F1 to enter monitor\n" .asciiz "\nPress F1 to enter monitor\n"
jmp eom jmp eom
err: err:
lda CRSRPNT lda CRSRPNT
@ -722,13 +735,16 @@ f2_pressed:
jmp eom jmp eom
f3_pressed: f3_pressed:
.ifdef BASIC
lda #>RAMSTART2 lda #>RAMSTART2
sta SVPH sta SVPH
lda #<RAMSTART2 lda #<RAMSTART2
sta SVP sta SVP
.endif
jsr loadfromtape jsr loadfromtape
jmp eom jmp eom
f4_pressed: f4_pressed:
.ifdef BASIC .ifdef BASIC
jsr clrscn jsr clrscn
@ -749,10 +765,11 @@ f5_pressed:
jmp run jmp run
f6_pressed: f6_pressed:
jsr readrf24regs ;jsr readrf24regs
jsr PRIMM ;jsr PRIMM
.asciiz "Read RF24 configuration!" ;.asciiz "Read RF24 configuration!"
jsr newline ;jsr newline
jmp eom jmp eom
f7_pressed: f7_pressed:
@ -909,7 +926,7 @@ nothex:
rts rts
.ifdef BASIC
MONISCNTC: MONISCNTC:
sty TMP4 sty TMP4
stx TMP3 ; X to TMP3 stx TMP3 ; X to TMP3
@ -976,6 +993,7 @@ bell:
ldx TMP3 ldx TMP3
skipcout: skipcout:
rts rts
.endif
clrscn: clrscn:
lda #0 lda #0
@ -1423,6 +1441,7 @@ rts
sta kb_wptr sta kb_wptr
sta kb_rptr sta kb_rptr
sta t2irqreg1 sta t2irqreg1
sta kb_flags
sta T2CH sta T2CH
lda #1 lda #1
sta CTRL sta CTRL
@ -1554,6 +1573,9 @@ txa ; IER AND IFR
inc ERRS ;Should never end up here... inc ERRS ;Should never end up here...
jmp exitirq jmp exitirq
gogmillis:
jmp gmillis
t1_irq: t1_irq:
bit T1CL ; Clear irq bit T1CL ; Clear irq
@ -1567,20 +1589,35 @@ txa ; IER AND IFR
; SVP Save pointer low ; SVP Save pointer low
; CBIT current bit mask ; CBIT current bit mask
lda TAPEFLAGS ; If we just started then send a 0 bit to make the 7F leader ; Probably don't need this flag anymore
bpl running ;lda TAPEFLAGS ; If we just started then send a 0 bit to make the 7F leader
and #$7F ; Remove flag ;bpl running
sta TAPEFLAGS ;and #$7F ; Remove flag
lda PULSESL ; 8 Half pulses of 1200Hz ;sta TAPEFLAGS
asl ; PULSESL holds full cycles ;inc BITNO
sta PULSES ;lda PULSESL ; 8 Half pulses of 1200Hz
lda #3 ;asl ; PULSESL holds full cycles
sta T1LH ;sta PULSES
lda #$3f ;lda #3
sta T1LL ;sta T1LH
bne t1_irq_exit ; BRA ;lda #$3f
;sta T1LL
;bne t1_irq_exit ; BRA
running: running:
inc BITNO
lda BITNO
cmp #13 ; This is a bit messy, could use a fix
bne notnewbyte
lda #1
sta BITNO
jmp send0
notnewbyte:
cmp #1
beq send0
cmp #10 ; Bit 10 and 11 should send a 1
bcs send1
lda CBIT lda CBIT
bne here ; Mask bit has not been shifted out yet bne here ; Mask bit has not been shifted out yet
lda #1 ; Mask = LSB lda #1 ; Mask = LSB
@ -1596,7 +1633,7 @@ here: ; New bit
lda #1 lda #1
sta T1LH sta T1LH
lda #$9f lda #$9f
bne there bne there ; BRA
send0: send0:
lda PULSESL ; 8 Half pulses of 1200Hz lda PULSESL ; 8 Half pulses of 1200Hz
asl ; PULSESL holds full cycles asl ; PULSESL holds full cycles
@ -1606,6 +1643,16 @@ here: ; New bit
lda #$3f lda #$3f
there: there:
sta T1LL sta T1LL
lda BITNO
cmp #1
beq notdoneyet
cmp #12
beq gonextbit ; This little bit of juggling means we move on to the next byte after the stop bits
cmp #9
bcs notdoneyet
gonextbit:
clc ; Let's make sure we don't shift in a carry by mistake clc ; Let's make sure we don't shift in a carry by mistake
asl CBIT ;Next bit asl CBIT ;Next bit
bne notdoneyet bne notdoneyet
@ -1996,6 +2043,7 @@ reversebits:
tay ; IRQ assumes y is 0. tay ; IRQ assumes y is 0.
lda #0 lda #0
sta CBIT sta CBIT
sta BITNO
lda #135 ; Sine or cosine can be selected by odd or even leader pulses - let's make sure this number is high enough to count as a 7 "1" bits lda #135 ; Sine or cosine can be selected by odd or even leader pulses - let's make sure this number is high enough to count as a 7 "1" bits
sta PULSES ; Start with leader of x "1" pulses at TIMEOUT interval. This should be followed by #$7F to sync start bit. sta PULSES ; Start with leader of x "1" pulses at TIMEOUT interval. This should be followed by #$7F to sync start bit.
@ -2036,7 +2084,6 @@ reversebits:
basicsavetotape: basicsavetotape:
.ifdef BASIC .ifdef BASIC
lda #<RAMSTART2 lda #<RAMSTART2
sta SVP sta SVP
lda #>RAMSTART2 lda #>RAMSTART2
@ -2105,6 +2152,7 @@ reversebits:
sta onesinarow sta onesinarow
lda #8 lda #8
sta CBIT sta CBIT
lda #2
sta LOADTIMEOUT sta LOADTIMEOUT
lda #$32 lda #$32
sta plzpnt+1 sta plzpnt+1
@ -2132,11 +2180,20 @@ reversebits:
sta TAPEFLAGS sta TAPEFLAGS
noleader: noleader:
lda SVP lda SVP
.ifdef BASIC
cmp #<RAMSTART2 cmp #<RAMSTART2
bne noz bne noz
lda SVPH lda SVPH
cmp #>RAMSTART2 cmp #>RAMSTART2
beq notstarted beq notstarted
.else
cmp #<1000
bne noz
lda SVPH
cmp #>1000
beq notstarted
.endif
noz: noz:
lda CRSRPNT lda CRSRPNT
and #%11000000 ; keep only section bits and #%11000000 ; keep only section bits
@ -2147,10 +2204,17 @@ reversebits:
jsr printfast jsr printfast
sec sec
lda SVPH lda SVPH
.ifdef BASIC
sbc #>RAMSTART2 sbc #>RAMSTART2
jsr printbyte jsr printbyte
lda SVP lda SVP
sbc #<RAMSTART2 sbc #<RAMSTART2
.else
sbc #>1000
jsr printbyte
lda SVP
sbc #<1000
.endif
jsr printbyte jsr printbyte
jsr PRIMM jsr PRIMM
.asciiz " bytes received" .asciiz " bytes received"
@ -2171,7 +2235,7 @@ reversebits:
; Disable CA1 in IRQ on timeout ; Disable CA1 in IRQ on timeout
timeout: timeout:
jsr PRIMM jsr PRIMM
.asciiz "Finished loading.\n" .asciiz "\nFinished loading.\n"
exituserland: exituserland:
lda #2 ; Disable CA1 lda #2 ; Disable CA1
sta IER sta IER
@ -2322,9 +2386,31 @@ reversebits:
gtx: gtx:
jmp exitirq ; IRQ exit in ROM jmp exitirq ; IRQ exit in ROM
checkstart:
lda #0
plp
ror
beq afternosave
jmp morebits ; Bad start bit
savebit: savebit:
php ; Save carry
lda CBIT
cmp #11 ; Check start bit
beq checkstart
cmp #2 ; Throw away parity
beq nosave
cmp #1 ; Throw away stop
beq nosave
plp
ror RXBYTE ; Shift in bit from carry ror RXBYTE ; Shift in bit from carry
jmp afternosave
nosave:
plp
afternosave:
bit TAPEFLAGS bit TAPEFLAGS
;Tapeflags ;Tapeflags
;$80 = nrzbit ;$80 = nrzbit
;$40 = startbyte received ;$40 = startbyte received
@ -2392,6 +2478,8 @@ reversebits:
;beq aprsleader ;beq aprsleader
rts ; Don't want to fall through rts ; Don't want to fall through
save: save:
dec CBIT dec CBIT
bne morebits bne morebits
@ -2426,7 +2514,8 @@ reversebits:
;jsr printbyte ;jsr printbyte
;lda #' ' ;lda #' '
;jsr printk ;jsr printk
lda #8 ; Here we should decide if we're going for 8 or 11 bits - buts lets assume 11.
lda #11
sta CBIT sta CBIT
morebits: morebits:
rts rts
@ -2435,7 +2524,7 @@ reversebits:
lda TAPEFLAGS lda TAPEFLAGS
ora #$60 ; Set leader flag ora #$60 ; Set leader flag
sta TAPEFLAGS sta TAPEFLAGS
lda #8 lda #10 ; First time we already have the start bit
sta CBIT sta CBIT
rts rts
@ -2460,7 +2549,7 @@ NOP
bne delay bne delay
rts rts
/*
i2c_start: ; Let's assume i2c addr is in A and RW bit is in C i2c_start: ; Let's assume i2c addr is in A and RW bit is in C
rol ; Move address to top bits and RW bit to bit0 rol ; Move address to top bits and RW bit to bit0
sta outb ; Save addr + rw bit sta outb ; Save addr + rw bit
@ -2479,7 +2568,9 @@ i2c_start: ; Let's assume i2c addr is in A and RW bit is in C
lda #SCL_INV lda #SCL_INV
and PORTB and PORTB
sta PORTB sta PORTB
inc DDRB ; Set SCL as OUTPUT LOW lda DDRB
ora #SCL
sta DDRB ; Set SCL LOW by setting it to OUTPUT
; Fall through to send address + RW bit ; Fall through to send address + RW bit
; From here on we can assume OUTPUTs are LOW and INPUTS are HIGH. ; From here on we can assume OUTPUTs are LOW and INPUTS are HIGH.
@ -2491,7 +2582,9 @@ i2cbyteout:
ldx #8 ldx #8
i2caddrloop: ; At start of loop SDA and SCL are both OUTPUT LOW i2caddrloop: ; At start of loop SDA and SCL are both OUTPUT LOW
asl outb ; Put MSB in carry asl outb ; Put MSB in carry
inc DDRB ; Set SCL LOW by setting it to OUTPUT lda DDRB
ora #SCL
sta DDRB ; Set SCL LOW by setting it to OUTPUT
bcc seti2cbit0 ; If data bit was low bcc seti2cbit0 ; If data bit was low
lda DDRB ; else set it high lda DDRB ; else set it high
and #SDA_INV and #SDA_INV
@ -2502,15 +2595,21 @@ seti2cbit0:
ora #SDA ora #SDA
sta DDRB sta DDRB
wasone: wasone:
dec DDRB ; Let SCL go HIGH by setting it to input lda DDRB
and #SCL_INV
sta DDRB ; Set SCL HIGH by setting it to input; Let SCL go HIGH by setting it to input
dex dex
bne i2caddrloop bne i2caddrloop
inc DDRB ; Set SCL low after last bit lda DDRB
ora #SCL
sta DDRB ; Set SCL LOW by setting it to OUTPUT ; Set SCL low after last bit
lda DDRB ; Set SDA to INPUT lda DDRB ; Set SDA to INPUT
and #SDA_INV and #SDA_INV
sta DDRB sta DDRB
dec DDRB ; SCL high lda DDRB
and #SCL_INV
sta DDRB ; Set SCL HIGH by setting it to input
; NOP here? ; NOP here?
lda PORTB ; Check ACK bit lda PORTB ; Check ACK bit
clc clc
@ -2518,67 +2617,104 @@ seti2cbit0:
bne nack bne nack
sec ; Set carry to indicate ACK sec ; Set carry to indicate ACK
nack: nack:
inc DDRB ; SCL low lda DDRB
ora #SCL
sta DDRB ; Set SCL LOW by setting it to OUTPUT
rts rts
i2cbytein: ; Assume SCL is LOW i2cbytein: ; Assume SCL is LOW
lda DDRB ; Set SDA to input lda DDRB ; Set SDA to input
and #SDA_INV and #SDA_INV
sta DDRB sta DDRB
lda #0
sta inb
ldx #8 ldx #8
byteinloop: byteinloop:
clc ; Clearing here for more even cycle clc ; Clearing here for more even cycle
dec DDRB ; SCL high lda DDRB
; NOP? and #SCL_INV
sta DDRB ; Set SCL HIGH by setting it to input
nop
lda PORTB lda PORTB
and #SDA and #SDA
beq got0 beq got0
sec sec
got0: got0:
rol inb ; Shift carry into input byte rol inb ; Shift carry into input byte
inc DDRB ; SCL low lda DDRB
ora #SCL
sta DDRB ; Set SCL LOW by setting it to OUTPUT
dex dex
bne byteinloop bne byteinloop
lda DDRB ; Send ACK lda DDRB ; Send NACK == SDA high (because we're ony fetching single bytes)
ora #SDA
sta DDRB
dec DDRB ; SCL high
nop ; Probably can't just toggle
inc DDRB ; Set clock low
lda DDRB ; Set SDA to input (release it) - maybe not necessary
and #SDA_INV and #SDA_INV
sta DDRB sta DDRB
lda DDRB
and #SCL_INV
sta DDRB ; Set SCL HIGH by setting it to input
lda DDRB
ora #SCL
sta DDRB ; Set SCL LOW by setting it to OUTPUT
rts ; Input byte in inb rts ; Input byte in inb
i2c_stop: i2c_stop:
lda DDRB ; SDA low lda DDRB ; SDA low
ora #SDA ora #SDA
sta DDRB sta DDRB
dec DDRB ; SCL high lda DDRB
and #SCL_INV
sta DDRB ; Set SCL HIGH by setting it to input
nop
nop
lda DDRB ; Set SDA high after SCL == Stop condition. lda DDRB ; Set SDA high after SCL == Stop condition.
and #SDA_INV and #SDA_INV
sta DDRB sta DDRB
rts rts
i2c_test: i2c_test:
lda #$77 ; Address $77 = BMP180 address ;lda #$77 ; Address $77 = BMP180 address
lda I2CADDR
clc ; Write clc ; Write
jsr i2c_start jsr i2c_start
; Fail check here. C == 1 == ACK ; Fail check here. C == 1 == ACK
bcc failed bcc failed
lda #$D0 ; BMP180 register $D0 == chipID == $55 ;lda #$D0 ; BMP180 register $D0 == chipID == $55
lda I2CREG ; VGA screen EDID usually has address $50
sta outb sta outb
jsr i2cbyteout jsr i2cbyteout
lda #$77 ; Address ;lda #$77 ; Address
lda I2CADDR
sec ; Read sec ; Read
jsr i2c_start jsr i2c_start
jsr i2cbytein jsr i2cbytein
jsr i2c_stop jsr i2c_stop
lda inb
sec
rts
failed: failed:
lda #0
rts rts
*/ i2c_read:
lda I2CADDR
clc ; We "write" the address we want to read from
jsr i2c_start
bcc readfail
lda #0
sta outb
jsr i2cbyteout
jsr i2c_stop
lda I2CADDR
sec ; Now we read the register data
jsr i2c_start
jsr i2cbytein
jsr i2c_stop
lda inb
readfail:
rts
rubout: rubout:
ldy #0 ldy #0

15
crom.s
View File

@ -1,10 +1,25 @@
; CROM source ; CROM source
.segment "CROM" .segment "CROM"
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$66,$66,$18,$62,$3c,$06,$0c,$30,$00,$00,$00,$00,$00,$00,$3c,$18,$3c,$3c,$06,$7e,$3c,$7e,$3c,$3c,$00,$00,$0e,$00,$70,$3c,$3c,$18,$7c,$3c,$78,$7e,$7e,$3c,$66,$3c,$1e,$66,$60,$63,$66,$3c,$7c,$3c,$7c,$3c,$7e,$66,$66,$63,$66,$66,$7e,$3c,$00,$3c,$00,$00,$3c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0e,$08,$70,$00,$ff .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$66,$66,$18,$62,$3c,$06,$0c,$30,$00,$00,$00,$00,$00,$00,$3c,$18,$3c,$3c,$06,$7e,$3c,$7e,$3c,$3c,$00,$00,$0e,$00,$70,$3c,$3c,$18,$7c,$3c,$78,$7e,$7e,$3c,$66,$3c,$1e,$66,$60,$63,$66,$3c,$7c,$3c,$7c,$3c,$7e,$66,$66,$63,$66,$66,$7e,$3c,$00,$3c,$00,$00,$3c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0e,$08,$70,$00,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$66,$66,$18,$62,$3c,$06,$0c,$30,$00,$00,$00,$00,$00,$00,$3c,$18,$3c,$3c,$06,$7e,$3c,$7e,$3c,$3c,$00,$00,$0e,$00,$70,$3c,$3c,$18,$7c,$3c,$78,$7e,$7e,$3c,$66,$3c,$1e,$66,$60,$63,$66,$3c,$7c,$3c,$7c,$3c,$7e,$66,$66,$63,$66,$66,$7e,$3c,$00,$3c,$00,$00,$3c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0e,$08,$70,$00,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$66,$66,$3e,$66,$66,$0c,$18,$18,$66,$18,$00,$00,$00,$03,$66,$18,$66,$66,$0e,$60,$66,$66,$66,$66,$00,$00,$18,$00,$18,$66,$66,$3c,$66,$66,$6c,$60,$60,$66,$66,$18,$0c,$6c,$60,$77,$76,$66,$66,$66,$66,$66,$18,$66,$66,$63,$66,$66,$06,$30,$60,$0c,$18,$00,$66,$00,$60,$00,$06,$00,$0e,$00,$60,$18,$06,$60,$38,$00,$00,$00,$00,$00,$00,$00,$18,$00,$00,$00,$00,$00,$00,$18,$18,$18,$00,$ff .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$66,$66,$3e,$66,$66,$0c,$18,$18,$66,$18,$00,$00,$00,$03,$66,$18,$66,$66,$0e,$60,$66,$66,$66,$66,$00,$00,$18,$00,$18,$66,$66,$3c,$66,$66,$6c,$60,$60,$66,$66,$18,$0c,$6c,$60,$77,$76,$66,$66,$66,$66,$66,$18,$66,$66,$63,$66,$66,$06,$30,$60,$0c,$18,$00,$66,$00,$60,$00,$06,$00,$0e,$00,$60,$18,$06,$60,$38,$00,$00,$00,$00,$00,$00,$00,$18,$00,$00,$00,$00,$00,$00,$18,$18,$18,$00,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$66,$66,$3e,$66,$66,$0c,$18,$18,$66,$18,$00,$00,$00,$03,$66,$18,$66,$66,$0e,$60,$66,$66,$66,$66,$00,$00,$18,$00,$18,$66,$66,$3c,$66,$66,$6c,$60,$60,$66,$66,$18,$0c,$6c,$60,$77,$76,$66,$66,$66,$66,$66,$18,$66,$66,$63,$66,$66,$06,$30,$60,$0c,$18,$00,$66,$00,$60,$00,$06,$00,$0e,$00,$60,$18,$06,$60,$38,$00,$00,$00,$00,$00,$00,$00,$18,$00,$00,$00,$00,$00,$00,$18,$18,$18,$00,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$66,$ff,$60,$0c,$3c,$18,$30,$0c,$3c,$18,$00,$00,$00,$06,$6e,$38,$06,$06,$1e,$7c,$60,$0c,$66,$66,$18,$18,$30,$7e,$0c,$06,$6e,$66,$66,$60,$66,$60,$60,$60,$66,$18,$0c,$78,$60,$7f,$7e,$66,$66,$66,$66,$60,$18,$66,$66,$63,$3c,$66,$0c,$30,$30,$0c,$3c,$00,$6e,$3c,$60,$3c,$06,$3c,$18,$3e,$60,$00,$00,$60,$18,$66,$7c,$3c,$7c,$3e,$7c,$3e,$7e,$66,$66,$63,$66,$66,$7e,$18,$18,$18,$00,$ff .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$66,$ff,$60,$0c,$3c,$18,$30,$0c,$3c,$18,$00,$00,$00,$06,$6e,$38,$06,$06,$1e,$7c,$60,$0c,$66,$66,$18,$18,$30,$7e,$0c,$06,$6e,$66,$66,$60,$66,$60,$60,$60,$66,$18,$0c,$78,$60,$7f,$7e,$66,$66,$66,$66,$60,$18,$66,$66,$63,$3c,$66,$0c,$30,$30,$0c,$3c,$00,$6e,$3c,$60,$3c,$06,$3c,$18,$3e,$60,$00,$00,$60,$18,$66,$7c,$3c,$7c,$3e,$7c,$3e,$7e,$66,$66,$63,$66,$66,$7e,$18,$18,$18,$00,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$66,$ff,$60,$0c,$3c,$18,$30,$0c,$3c,$18,$00,$00,$00,$06,$6e,$38,$06,$06,$1e,$7c,$60,$0c,$66,$66,$18,$18,$30,$7e,$0c,$06,$6e,$66,$66,$60,$66,$60,$60,$60,$66,$18,$0c,$78,$60,$7f,$7e,$66,$66,$66,$66,$60,$18,$66,$66,$63,$3c,$66,$0c,$30,$30,$0c,$3c,$00,$6e,$3c,$60,$3c,$06,$3c,$18,$3e,$60,$00,$00,$60,$18,$66,$7c,$3c,$7c,$3e,$7c,$3e,$7e,$66,$66,$63,$66,$66,$7e,$18,$18,$18,$00,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$00,$66,$3c,$18,$38,$00,$30,$0c,$ff,$7e,$00,$7e,$00,$0c,$76,$18,$0c,$1c,$66,$06,$7c,$18,$3c,$3e,$00,$00,$60,$00,$06,$0c,$6e,$7e,$7c,$60,$66,$78,$78,$6e,$7e,$18,$0c,$70,$60,$6b,$7e,$66,$7c,$66,$7c,$3c,$18,$66,$66,$6b,$18,$3c,$18,$30,$18,$0c,$7e,$00,$6e,$06,$7c,$60,$3e,$66,$3e,$66,$7c,$38,$06,$6c,$18,$7f,$66,$66,$66,$66,$66,$60,$18,$66,$66,$6b,$3c,$66,$0c,$70,$18,$0e,$3b,$ff .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$00,$66,$3c,$18,$38,$00,$30,$0c,$ff,$7e,$00,$7e,$00,$0c,$76,$18,$0c,$1c,$66,$06,$7c,$18,$3c,$3e,$00,$00,$60,$00,$06,$0c,$6e,$7e,$7c,$60,$66,$78,$78,$6e,$7e,$18,$0c,$70,$60,$6b,$7e,$66,$7c,$66,$7c,$3c,$18,$66,$66,$6b,$18,$3c,$18,$30,$18,$0c,$7e,$00,$6e,$06,$7c,$60,$3e,$66,$3e,$66,$7c,$38,$06,$6c,$18,$7f,$66,$66,$66,$66,$66,$60,$18,$66,$66,$6b,$3c,$66,$0c,$70,$18,$0e,$3b,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$00,$66,$3c,$18,$38,$00,$30,$0c,$ff,$7e,$00,$7e,$00,$0c,$76,$18,$0c,$1c,$66,$06,$7c,$18,$3c,$3e,$00,$00,$60,$00,$06,$0c,$6e,$7e,$7c,$60,$66,$78,$78,$6e,$7e,$18,$0c,$70,$60,$6b,$7e,$66,$7c,$66,$7c,$3c,$18,$66,$66,$6b,$18,$3c,$18,$30,$18,$0c,$7e,$00,$6e,$06,$7c,$60,$3e,$66,$3e,$66,$7c,$38,$06,$6c,$18,$7f,$66,$66,$66,$66,$66,$60,$18,$66,$66,$6b,$3c,$66,$0c,$70,$18,$0e,$3b,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$06,$30,$67,$00,$30,$0c,$3c,$18,$00,$00,$00,$18,$66,$18,$30,$06,$7f,$06,$66,$18,$66,$06,$00,$00,$30,$7e,$0c,$18,$60,$66,$66,$60,$66,$60,$60,$66,$66,$18,$0c,$78,$60,$63,$6e,$66,$60,$66,$78,$06,$18,$66,$66,$7f,$3c,$18,$30,$30,$0c,$0c,$18,$00,$60,$3e,$66,$60,$66,$7e,$18,$66,$66,$18,$06,$78,$18,$7f,$66,$66,$66,$66,$60,$3c,$18,$66,$66,$7f,$18,$66,$18,$18,$18,$18,$6e,$ff .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$06,$30,$67,$00,$30,$0c,$3c,$18,$00,$00,$00,$18,$66,$18,$30,$06,$7f,$06,$66,$18,$66,$06,$00,$00,$30,$7e,$0c,$18,$60,$66,$66,$60,$66,$60,$60,$66,$66,$18,$0c,$78,$60,$63,$6e,$66,$60,$66,$78,$06,$18,$66,$66,$7f,$3c,$18,$30,$30,$0c,$0c,$18,$00,$60,$3e,$66,$60,$66,$7e,$18,$66,$66,$18,$06,$78,$18,$7f,$66,$66,$66,$66,$60,$3c,$18,$66,$66,$7f,$18,$66,$18,$18,$18,$18,$6e,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$06,$30,$67,$00,$30,$0c,$3c,$18,$00,$00,$00,$18,$66,$18,$30,$06,$7f,$06,$66,$18,$66,$06,$00,$00,$30,$7e,$0c,$18,$60,$66,$66,$60,$66,$60,$60,$66,$66,$18,$0c,$78,$60,$63,$6e,$66,$60,$66,$78,$06,$18,$66,$66,$7f,$3c,$18,$30,$30,$0c,$0c,$18,$00,$60,$3e,$66,$60,$66,$7e,$18,$66,$66,$18,$06,$78,$18,$7f,$66,$66,$66,$66,$60,$3c,$18,$66,$66,$7f,$18,$66,$18,$18,$18,$18,$6e,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$66,$7c,$66,$66,$00,$18,$18,$66,$18,$18,$00,$18,$30,$66,$18,$60,$66,$06,$66,$66,$18,$66,$66,$18,$18,$18,$00,$18,$00,$66,$66,$66,$66,$6c,$60,$60,$66,$66,$18,$6c,$6c,$60,$63,$66,$66,$60,$3c,$6c,$66,$18,$66,$3c,$77,$66,$18,$60,$30,$06,$0c,$18,$00,$66,$66,$66,$60,$66,$60,$18,$3e,$66,$18,$06,$6c,$18,$6b,$66,$66,$7c,$3e,$60,$06,$18,$66,$3c,$3e,$3c,$3e,$30,$18,$18,$18,$00,$ff .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$66,$7c,$66,$66,$00,$18,$18,$66,$18,$18,$00,$18,$30,$66,$18,$60,$66,$06,$66,$66,$18,$66,$66,$18,$18,$18,$00,$18,$00,$66,$66,$66,$66,$6c,$60,$60,$66,$66,$18,$6c,$6c,$60,$63,$66,$66,$60,$3c,$6c,$66,$18,$66,$3c,$77,$66,$18,$60,$30,$06,$0c,$18,$00,$66,$66,$66,$60,$66,$60,$18,$3e,$66,$18,$06,$6c,$18,$6b,$66,$66,$7c,$3e,$60,$06,$18,$66,$3c,$3e,$3c,$3e,$30,$18,$18,$18,$00,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$66,$7c,$66,$66,$00,$18,$18,$66,$18,$18,$00,$18,$30,$66,$18,$60,$66,$06,$66,$66,$18,$66,$66,$18,$18,$18,$00,$18,$00,$66,$66,$66,$66,$6c,$60,$60,$66,$66,$18,$6c,$6c,$60,$63,$66,$66,$60,$3c,$6c,$66,$18,$66,$3c,$77,$66,$18,$60,$30,$06,$0c,$18,$00,$66,$66,$66,$60,$66,$60,$18,$3e,$66,$18,$06,$6c,$18,$6b,$66,$66,$7c,$3e,$60,$06,$18,$66,$3c,$3e,$3c,$3e,$30,$18,$18,$18,$00,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$00,$66,$18,$46,$3f,$00,$0c,$30,$00,$00,$18,$00,$18,$60,$3c,$7e,$7e,$3c,$06,$3c,$3c,$18,$3c,$3c,$00,$18,$0e,$00,$70,$18,$3c,$66,$7c,$3c,$78,$7e,$60,$3c,$66,$3c,$38,$66,$7e,$63,$66,$3c,$60,$0e,$66,$3c,$18,$3c,$18,$63,$66,$18,$7e,$3c,$03,$3c,$18,$00,$3c,$3e,$7c,$3c,$3e,$3c,$18,$06,$66,$3c,$06,$66,$3c,$63,$66,$3c,$60,$06,$60,$7c,$0e,$3e,$18,$36,$66,$0c,$7e,$0e,$18,$70,$00,$ff .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$00,$66,$18,$46,$3f,$00,$0c,$30,$00,$00,$18,$00,$18,$60,$3c,$7e,$7e,$3c,$06,$3c,$3c,$18,$3c,$3c,$00,$18,$0e,$00,$70,$18,$3c,$66,$7c,$3c,$78,$7e,$60,$3c,$66,$3c,$38,$66,$7e,$63,$66,$3c,$60,$0e,$66,$3c,$18,$3c,$18,$63,$66,$18,$7e,$3c,$03,$3c,$18,$00,$3c,$3e,$7c,$3c,$3e,$3c,$18,$06,$66,$3c,$06,$66,$3c,$63,$66,$3c,$60,$06,$60,$7c,$0e,$3e,$18,$36,$66,$0c,$7e,$0e,$18,$70,$00,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$00,$66,$18,$46,$3f,$00,$0c,$30,$00,$00,$18,$00,$18,$60,$3c,$7e,$7e,$3c,$06,$3c,$3c,$18,$3c,$3c,$00,$18,$0e,$00,$70,$18,$3c,$66,$7c,$3c,$78,$7e,$60,$3c,$66,$3c,$38,$66,$7e,$63,$66,$3c,$60,$0e,$66,$3c,$18,$3c,$18,$63,$66,$18,$7e,$3c,$03,$3c,$18,$00,$3c,$3e,$7c,$3c,$3e,$3c,$18,$06,$66,$3c,$06,$66,$3c,$63,$66,$3c,$60,$06,$60,$7c,$0e,$3e,$18,$36,$66,$0c,$7e,$0e,$18,$70,$00,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$30,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$30,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$ff,$00,$00,$00,$00,$00,$00,$00,$7c,$00,$00,$3c,$00,$00,$00,$00,$00,$60,$06,$00,$00,$00,$00,$00,$00,$00,$78,$00,$00,$18,$00,$00,$ff
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$30,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$30,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$ff,$00,$00,$00,$00,$00,$00,$00,$7c,$00,$00,$3c,$00,$00,$00,$00,$00,$60,$06,$00,$00,$00,$00,$00,$00,$00,$78,$00,$00,$18,$00,$00,$ff .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$30,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$30,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$ff,$00,$00,$00,$00,$00,$00,$00,$7c,$00,$00,$3c,$00,$00,$00,$00,$00,$60,$06,$00,$00,$00,$00,$00,$00,$00,$78,$00,$00,$18,$00,$00,$ff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,940 @@
#VRML V2.0 utf8
WorldInfo {
title "C:/GitHub/mysensors-kicad/mysensors.3dshapes/mysensors_radios.3dshapes/nrf24smd.wrl - Generated by Pcbnew"
}
Transform {
children [
Transform {
translation 146.3 -76.175 0.8
scale 2.54 2.54 2.54
children [
Inline {
url "C:/GitHub/mysensors-kicad/mysensors.3dshapes/mysensors_radios.3dshapes/shapes3D/QFN-20-1EP_5x5mm_Pitch0.65mm.wrl"
} ]
}
Transform {
children [
Group {
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.07 0.3 0.12
specularColor 0.07 0.3 0.12
emissiveColor 0 0 0
ambientIntensity 1
transparency 0
shininess 0.2
}
}
geometry IndexedFaceSet {
solid TRUE
coord Coordinate {
point [
148.8242 -81.4578 0.7875, 148.83838 -81.35919 0.7875,
148.87976 -81.26858 0.7875, 148.945 -81.19329 0.7875,
149.0288 -81.13943 0.7875, 149.12439 -81.11136 0.7875,
149.22401 -81.11136 0.7875, 149.3196 -81.13943 0.7875,
149.4034 -81.19329 0.7875, 149.46864 -81.26858 0.7875,
149.51002 -81.35919 0.7875, 149.5242 -81.4578 0.7875,
149.51002 -81.55641 0.7875, 149.46864 -81.64702 0.7875,
149.4034 -81.72231 0.7875, 149.3196 -81.77617 0.7875,
149.22401 -81.80424 0.7875, 149.12439 -81.80424 0.7875,
149.0288 -81.77617 0.7875, 148.945 -81.72231 0.7875,
148.87976 -81.64702 0.7875, 148.83838 -81.55641 0.7875,
147.5542 -81.4578 0.7875, 147.56838 -81.35919 0.7875,
147.60976 -81.26858 0.7875, 147.675 -81.19329 0.7875,
147.7588 -81.13943 0.7875, 147.85439 -81.11136 0.7875,
147.95401 -81.11136 0.7875, 148.0496 -81.13943 0.7875,
148.1334 -81.19329 0.7875, 148.19864 -81.26858 0.7875,
148.24002 -81.35919 0.7875, 148.2542 -81.4578 0.7875,
148.24002 -81.55641 0.7875, 148.19864 -81.64702 0.7875,
148.1334 -81.72231 0.7875, 148.0496 -81.77617 0.7875,
147.95401 -81.80424 0.7875, 147.85439 -81.80424 0.7875,
147.7588 -81.77617 0.7875, 147.675 -81.72231 0.7875,
147.60976 -81.64702 0.7875, 147.56838 -81.55641 0.7875,
146.2842 -81.4578 0.7875, 146.29838 -81.35919 0.7875,
146.33976 -81.26858 0.7875, 146.405 -81.19329 0.7875,
146.4888 -81.13943 0.7875, 146.58439 -81.11136 0.7875,
146.68401 -81.11136 0.7875, 146.7796 -81.13943 0.7875,
146.8634 -81.19329 0.7875, 146.92864 -81.26858 0.7875,
146.97002 -81.35919 0.7875, 146.9842 -81.4578 0.7875,
146.97002 -81.55641 0.7875, 146.92864 -81.64702 0.7875,
146.8634 -81.72231 0.7875, 146.7796 -81.77617 0.7875,
146.68401 -81.80424 0.7875, 146.58439 -81.80424 0.7875,
146.4888 -81.77617 0.7875, 146.405 -81.72231 0.7875,
146.33976 -81.64702 0.7875, 146.29838 -81.55641 0.7875,
145.0142 -81.4578 0.7875, 145.02838 -81.35919 0.7875,
145.06976 -81.26858 0.7875, 145.135 -81.19329 0.7875,
145.2188 -81.13943 0.7875, 145.31439 -81.11136 0.7875,
145.41401 -81.11136 0.7875, 145.5096 -81.13943 0.7875,
145.5934 -81.19329 0.7875, 145.65864 -81.26858 0.7875,
145.70002 -81.35919 0.7875, 145.7142 -81.4578 0.7875,
145.70002 -81.55641 0.7875, 145.65864 -81.64702 0.7875,
145.5934 -81.72231 0.7875, 145.5096 -81.77617 0.7875,
145.41401 -81.80424 0.7875, 145.31439 -81.80424 0.7875,
145.2188 -81.77617 0.7875, 145.135 -81.72231 0.7875,
145.06976 -81.64702 0.7875, 145.02838 -81.55641 0.7875,
143.7442 -81.4578 0.7875, 143.75838 -81.35919 0.7875,
143.79976 -81.26858 0.7875, 143.865 -81.19329 0.7875,
143.9488 -81.13943 0.7875, 144.04439 -81.11136 0.7875,
144.14401 -81.11136 0.7875, 144.2396 -81.13943 0.7875,
144.3234 -81.19329 0.7875, 144.38864 -81.26858 0.7875,
144.43002 -81.35919 0.7875, 144.4442 -81.4578 0.7875,
144.43002 -81.55641 0.7875, 144.38864 -81.64702 0.7875,
144.3234 -81.72231 0.7875, 144.2396 -81.77617 0.7875,
144.14401 -81.80424 0.7875, 144.04439 -81.80424 0.7875,
143.9488 -81.77617 0.7875, 143.865 -81.72231 0.7875,
143.79976 -81.64702 0.7875, 143.75838 -81.55641 0.7875,
142.4742 -81.4578 0.7875, 142.48838 -81.35919 0.7875,
142.52976 -81.26858 0.7875, 142.595 -81.19329 0.7875,
142.6788 -81.13943 0.7875, 142.77439 -81.11136 0.7875,
142.87401 -81.11136 0.7875, 142.9696 -81.13943 0.7875,
143.0534 -81.19329 0.7875, 143.11864 -81.26858 0.7875,
143.16002 -81.35919 0.7875, 143.1742 -81.4578 0.7875,
143.16002 -81.55641 0.7875, 143.11864 -81.64702 0.7875,
143.0534 -81.72231 0.7875, 142.9696 -81.77617 0.7875,
142.87401 -81.80424 0.7875, 142.77439 -81.80424 0.7875,
142.6788 -81.77617 0.7875, 142.595 -81.72231 0.7875,
142.52976 -81.64702 0.7875, 142.48838 -81.55641 0.7875,
141.2042 -81.4578 0.7875, 141.21838 -81.35919 0.7875,
141.25976 -81.26858 0.7875, 141.325 -81.19329 0.7875,
141.4088 -81.13943 0.7875, 141.50439 -81.11136 0.7875,
141.60401 -81.11136 0.7875, 141.6996 -81.13943 0.7875,
141.7834 -81.19329 0.7875, 141.84864 -81.26858 0.7875,
141.89002 -81.35919 0.7875, 141.9042 -81.4578 0.7875,
141.89002 -81.55641 0.7875, 141.84864 -81.64702 0.7875,
141.7834 -81.72231 0.7875, 141.6996 -81.77617 0.7875,
141.60401 -81.80424 0.7875, 141.50439 -81.80424 0.7875,
141.4088 -81.77617 0.7875, 141.325 -81.72231 0.7875,
141.25976 -81.64702 0.7875, 141.21838 -81.55641 0.7875,
151.9428 -82.3468 0.7875, 151.9428 -64.3382 0.7875,
139.954 -64.3382 0.7875, 139.954 -82.3468 0.7875,
141.2042 -82.3468 0.7875, 141.21838 -82.24819 0.7875,
141.25976 -82.15758 0.7875, 141.325 -82.08229 0.7875,
141.4088 -82.02843 0.7875, 141.50439 -82.00036 0.7875,
141.60401 -82.00036 0.7875, 141.6996 -82.02843 0.7875,
141.7834 -82.08229 0.7875, 141.84864 -82.15758 0.7875,
141.89002 -82.24819 0.7875, 141.9042 -82.3468 0.7875,
142.4742 -82.3468 0.7875, 142.48838 -82.24819 0.7875,
142.52976 -82.15758 0.7875, 142.595 -82.08229 0.7875,
142.6788 -82.02843 0.7875, 142.77439 -82.00036 0.7875,
142.87401 -82.00036 0.7875, 142.9696 -82.02843 0.7875,
143.0534 -82.08229 0.7875, 143.11864 -82.15758 0.7875,
143.16002 -82.24819 0.7875, 143.1742 -82.3468 0.7875,
143.7442 -82.3468 0.7875, 143.75838 -82.24819 0.7875,
143.79976 -82.15758 0.7875, 143.865 -82.08229 0.7875,
143.9488 -82.02843 0.7875, 144.04439 -82.00036 0.7875,
144.14401 -82.00036 0.7875, 144.2396 -82.02843 0.7875,
144.3234 -82.08229 0.7875, 144.38864 -82.15758 0.7875,
144.43002 -82.24819 0.7875, 144.4442 -82.3468 0.7875,
145.0142 -82.3468 0.7875, 145.02838 -82.24819 0.7875,
145.06976 -82.15758 0.7875, 145.135 -82.08229 0.7875,
145.2188 -82.02843 0.7875, 145.31439 -82.00036 0.7875,
145.41401 -82.00036 0.7875, 145.5096 -82.02843 0.7875,
145.5934 -82.08229 0.7875, 145.65864 -82.15758 0.7875,
145.70002 -82.24819 0.7875, 145.7142 -82.3468 0.7875,
146.2842 -82.3468 0.7875, 146.29838 -82.24819 0.7875,
146.33976 -82.15758 0.7875, 146.405 -82.08229 0.7875,
146.4888 -82.02843 0.7875, 146.58439 -82.00036 0.7875,
146.68401 -82.00036 0.7875, 146.7796 -82.02843 0.7875,
146.8634 -82.08229 0.7875, 146.92864 -82.15758 0.7875,
146.97002 -82.24819 0.7875, 146.9842 -82.3468 0.7875,
147.5542 -82.3468 0.7875, 147.56838 -82.24819 0.7875,
147.60976 -82.15758 0.7875, 147.675 -82.08229 0.7875,
147.7588 -82.02843 0.7875, 147.85439 -82.00036 0.7875,
147.95401 -82.00036 0.7875, 148.0496 -82.02843 0.7875,
148.1334 -82.08229 0.7875, 148.19864 -82.15758 0.7875,
148.24002 -82.24819 0.7875, 148.2542 -82.3468 0.7875,
148.8242 -82.3468 0.7875, 148.83838 -82.24819 0.7875,
148.87976 -82.15758 0.7875, 148.945 -82.08229 0.7875,
149.0288 -82.02843 0.7875, 149.12439 -82.00036 0.7875,
149.22401 -82.00036 0.7875, 149.3196 -82.02843 0.7875,
149.4034 -82.08229 0.7875, 149.46864 -82.15758 0.7875,
149.51002 -82.24819 0.7875, 149.5242 -82.3468 0.7875,
150.0942 -82.3468 0.7875, 150.10838 -82.24819 0.7875,
150.14976 -82.15758 0.7875, 150.215 -82.08229 0.7875,
150.2988 -82.02843 0.7875, 150.39439 -82.00036 0.7875,
150.49401 -82.00036 0.7875, 150.5896 -82.02843 0.7875,
150.6734 -82.08229 0.7875, 150.73864 -82.15758 0.7875,
150.78002 -82.24819 0.7875, 150.7942 -82.3468 0.7875,
150.7942 -81.4578 0.7875, 150.78002 -81.55641 0.7875,
150.73864 -81.64702 0.7875, 150.6734 -81.72231 0.7875,
150.5896 -81.77617 0.7875, 150.49401 -81.80424 0.7875,
150.39439 -81.80424 0.7875, 150.2988 -81.77617 0.7875,
150.215 -81.72231 0.7875, 150.14976 -81.64702 0.7875,
150.10838 -81.55641 0.7875, 150.0942 -81.4578 0.7875,
150.10838 -81.35919 0.7875, 150.14976 -81.26858 0.7875,
150.215 -81.19329 0.7875, 150.2988 -81.13943 0.7875,
150.39439 -81.11136 0.7875, 150.49401 -81.11136 0.7875,
150.5896 -81.13943 0.7875, 150.6734 -81.19329 0.7875,
150.73864 -81.26858 0.7875, 150.78002 -81.35919 0.7875,
148.8242 -81.4578 -0.7875, 148.83838 -81.35919 -0.7875,
148.87976 -81.26858 -0.7875, 148.945 -81.19329 -0.7875,
149.0288 -81.13943 -0.7875, 149.12439 -81.11136 -0.7875,
149.22401 -81.11136 -0.7875, 149.3196 -81.13943 -0.7875,
149.4034 -81.19329 -0.7875, 149.46864 -81.26858 -0.7875,
149.51002 -81.35919 -0.7875, 149.5242 -81.4578 -0.7875,
149.51002 -81.55641 -0.7875, 149.46864 -81.64702 -0.7875,
149.4034 -81.72231 -0.7875, 149.3196 -81.77617 -0.7875,
149.22401 -81.80424 -0.7875, 149.12439 -81.80424 -0.7875,
149.0288 -81.77617 -0.7875, 148.945 -81.72231 -0.7875,
148.87976 -81.64702 -0.7875, 148.83838 -81.55641 -0.7875,
147.5542 -81.4578 -0.7875, 147.56838 -81.35919 -0.7875,
147.60976 -81.26858 -0.7875, 147.675 -81.19329 -0.7875,
147.7588 -81.13943 -0.7875, 147.85439 -81.11136 -0.7875,
147.95401 -81.11136 -0.7875, 148.0496 -81.13943 -0.7875,
148.1334 -81.19329 -0.7875, 148.19864 -81.26858 -0.7875,
148.24002 -81.35919 -0.7875, 148.2542 -81.4578 -0.7875,
148.24002 -81.55641 -0.7875, 148.19864 -81.64702 -0.7875,
148.1334 -81.72231 -0.7875, 148.0496 -81.77617 -0.7875,
147.95401 -81.80424 -0.7875, 147.85439 -81.80424 -0.7875,
147.7588 -81.77617 -0.7875, 147.675 -81.72231 -0.7875,
147.60976 -81.64702 -0.7875, 147.56838 -81.55641 -0.7875,
146.2842 -81.4578 -0.7875, 146.29838 -81.35919 -0.7875,
146.33976 -81.26858 -0.7875, 146.405 -81.19329 -0.7875,
146.4888 -81.13943 -0.7875, 146.58439 -81.11136 -0.7875,
146.68401 -81.11136 -0.7875, 146.7796 -81.13943 -0.7875,
146.8634 -81.19329 -0.7875, 146.92864 -81.26858 -0.7875,
146.97002 -81.35919 -0.7875, 146.9842 -81.4578 -0.7875,
146.97002 -81.55641 -0.7875, 146.92864 -81.64702 -0.7875,
146.8634 -81.72231 -0.7875, 146.7796 -81.77617 -0.7875,
146.68401 -81.80424 -0.7875, 146.58439 -81.80424 -0.7875,
146.4888 -81.77617 -0.7875, 146.405 -81.72231 -0.7875,
146.33976 -81.64702 -0.7875, 146.29838 -81.55641 -0.7875,
145.0142 -81.4578 -0.7875, 145.02838 -81.35919 -0.7875,
145.06976 -81.26858 -0.7875, 145.135 -81.19329 -0.7875,
145.2188 -81.13943 -0.7875, 145.31439 -81.11136 -0.7875,
145.41401 -81.11136 -0.7875, 145.5096 -81.13943 -0.7875,
145.5934 -81.19329 -0.7875, 145.65864 -81.26858 -0.7875,
145.70002 -81.35919 -0.7875, 145.7142 -81.4578 -0.7875,
145.70002 -81.55641 -0.7875, 145.65864 -81.64702 -0.7875,
145.5934 -81.72231 -0.7875, 145.5096 -81.77617 -0.7875,
145.41401 -81.80424 -0.7875, 145.31439 -81.80424 -0.7875,
145.2188 -81.77617 -0.7875, 145.135 -81.72231 -0.7875,
145.06976 -81.64702 -0.7875, 145.02838 -81.55641 -0.7875,
143.7442 -81.4578 -0.7875, 143.75838 -81.35919 -0.7875,
143.79976 -81.26858 -0.7875, 143.865 -81.19329 -0.7875,
143.9488 -81.13943 -0.7875, 144.04439 -81.11136 -0.7875,
144.14401 -81.11136 -0.7875, 144.2396 -81.13943 -0.7875,
144.3234 -81.19329 -0.7875, 144.38864 -81.26858 -0.7875,
144.43002 -81.35919 -0.7875, 144.4442 -81.4578 -0.7875,
144.43002 -81.55641 -0.7875, 144.38864 -81.64702 -0.7875,
144.3234 -81.72231 -0.7875, 144.2396 -81.77617 -0.7875,
144.14401 -81.80424 -0.7875, 144.04439 -81.80424 -0.7875,
143.9488 -81.77617 -0.7875, 143.865 -81.72231 -0.7875,
143.79976 -81.64702 -0.7875, 143.75838 -81.55641 -0.7875,
142.4742 -81.4578 -0.7875, 142.48838 -81.35919 -0.7875,
142.52976 -81.26858 -0.7875, 142.595 -81.19329 -0.7875,
142.6788 -81.13943 -0.7875, 142.77439 -81.11136 -0.7875,
142.87401 -81.11136 -0.7875, 142.9696 -81.13943 -0.7875,
143.0534 -81.19329 -0.7875, 143.11864 -81.26858 -0.7875,
143.16002 -81.35919 -0.7875, 143.1742 -81.4578 -0.7875,
143.16002 -81.55641 -0.7875, 143.11864 -81.64702 -0.7875,
143.0534 -81.72231 -0.7875, 142.9696 -81.77617 -0.7875,
142.87401 -81.80424 -0.7875, 142.77439 -81.80424 -0.7875,
142.6788 -81.77617 -0.7875, 142.595 -81.72231 -0.7875,
142.52976 -81.64702 -0.7875, 142.48838 -81.55641 -0.7875,
141.2042 -81.4578 -0.7875, 141.21838 -81.35919 -0.7875,
141.25976 -81.26858 -0.7875, 141.325 -81.19329 -0.7875,
141.4088 -81.13943 -0.7875, 141.50439 -81.11136 -0.7875,
141.60401 -81.11136 -0.7875, 141.6996 -81.13943 -0.7875,
141.7834 -81.19329 -0.7875, 141.84864 -81.26858 -0.7875,
141.89002 -81.35919 -0.7875, 141.9042 -81.4578 -0.7875,
141.89002 -81.55641 -0.7875, 141.84864 -81.64702 -0.7875,
141.7834 -81.72231 -0.7875, 141.6996 -81.77617 -0.7875,
141.60401 -81.80424 -0.7875, 141.50439 -81.80424 -0.7875,
141.4088 -81.77617 -0.7875, 141.325 -81.72231 -0.7875,
141.25976 -81.64702 -0.7875, 141.21838 -81.55641 -0.7875,
151.9428 -82.3468 -0.7875, 151.9428 -64.3382 -0.7875,
139.954 -64.3382 -0.7875, 139.954 -82.3468 -0.7875,
141.2042 -82.3468 -0.7875, 141.21838 -82.24819 -0.7875,
141.25976 -82.15758 -0.7875, 141.325 -82.08229 -0.7875,
141.4088 -82.02843 -0.7875, 141.50439 -82.00036 -0.7875,
141.60401 -82.00036 -0.7875, 141.6996 -82.02843 -0.7875,
141.7834 -82.08229 -0.7875, 141.84864 -82.15758 -0.7875,
141.89002 -82.24819 -0.7875, 141.9042 -82.3468 -0.7875,
142.4742 -82.3468 -0.7875, 142.48838 -82.24819 -0.7875,
142.52976 -82.15758 -0.7875, 142.595 -82.08229 -0.7875,
142.6788 -82.02843 -0.7875, 142.77439 -82.00036 -0.7875,
142.87401 -82.00036 -0.7875, 142.9696 -82.02843 -0.7875,
143.0534 -82.08229 -0.7875, 143.11864 -82.15758 -0.7875,
143.16002 -82.24819 -0.7875, 143.1742 -82.3468 -0.7875,
143.7442 -82.3468 -0.7875, 143.75838 -82.24819 -0.7875,
143.79976 -82.15758 -0.7875, 143.865 -82.08229 -0.7875,
143.9488 -82.02843 -0.7875, 144.04439 -82.00036 -0.7875,
144.14401 -82.00036 -0.7875, 144.2396 -82.02843 -0.7875,
144.3234 -82.08229 -0.7875, 144.38864 -82.15758 -0.7875,
144.43002 -82.24819 -0.7875, 144.4442 -82.3468 -0.7875,
145.0142 -82.3468 -0.7875, 145.02838 -82.24819 -0.7875,
145.06976 -82.15758 -0.7875, 145.135 -82.08229 -0.7875,
145.2188 -82.02843 -0.7875, 145.31439 -82.00036 -0.7875,
145.41401 -82.00036 -0.7875, 145.5096 -82.02843 -0.7875,
145.5934 -82.08229 -0.7875, 145.65864 -82.15758 -0.7875,
145.70002 -82.24819 -0.7875, 145.7142 -82.3468 -0.7875,
146.2842 -82.3468 -0.7875, 146.29838 -82.24819 -0.7875,
146.33976 -82.15758 -0.7875, 146.405 -82.08229 -0.7875,
146.4888 -82.02843 -0.7875, 146.58439 -82.00036 -0.7875,
146.68401 -82.00036 -0.7875, 146.7796 -82.02843 -0.7875,
146.8634 -82.08229 -0.7875, 146.92864 -82.15758 -0.7875,
146.97002 -82.24819 -0.7875, 146.9842 -82.3468 -0.7875,
147.5542 -82.3468 -0.7875, 147.56838 -82.24819 -0.7875,
147.60976 -82.15758 -0.7875, 147.675 -82.08229 -0.7875,
147.7588 -82.02843 -0.7875, 147.85439 -82.00036 -0.7875,
147.95401 -82.00036 -0.7875, 148.0496 -82.02843 -0.7875,
148.1334 -82.08229 -0.7875, 148.19864 -82.15758 -0.7875,
148.24002 -82.24819 -0.7875, 148.2542 -82.3468 -0.7875,
148.8242 -82.3468 -0.7875, 148.83838 -82.24819 -0.7875,
148.87976 -82.15758 -0.7875, 148.945 -82.08229 -0.7875,
149.0288 -82.02843 -0.7875, 149.12439 -82.00036 -0.7875,
149.22401 -82.00036 -0.7875, 149.3196 -82.02843 -0.7875,
149.4034 -82.08229 -0.7875, 149.46864 -82.15758 -0.7875,
149.51002 -82.24819 -0.7875, 149.5242 -82.3468 -0.7875,
150.0942 -82.3468 -0.7875, 150.10838 -82.24819 -0.7875,
150.14976 -82.15758 -0.7875, 150.215 -82.08229 -0.7875,
150.2988 -82.02843 -0.7875, 150.39439 -82.00036 -0.7875,
150.49401 -82.00036 -0.7875, 150.5896 -82.02843 -0.7875,
150.6734 -82.08229 -0.7875, 150.73864 -82.15758 -0.7875,
150.78002 -82.24819 -0.7875, 150.7942 -82.3468 -0.7875,
150.7942 -81.4578 -0.7875, 150.78002 -81.55641 -0.7875,
150.73864 -81.64702 -0.7875, 150.6734 -81.72231 -0.7875,
150.5896 -81.77617 -0.7875, 150.49401 -81.80424 -0.7875,
150.39439 -81.80424 -0.7875, 150.2988 -81.77617 -0.7875,
150.215 -81.72231 -0.7875, 150.14976 -81.64702 -0.7875,
150.10838 -81.55641 -0.7875, 150.0942 -81.4578 -0.7875,
150.10838 -81.35919 -0.7875, 150.14976 -81.26858 -0.7875,
150.215 -81.19329 -0.7875, 150.2988 -81.13943 -0.7875,
150.39439 -81.11136 -0.7875, 150.49401 -81.11136 -0.7875,
150.5896 -81.13943 -0.7875, 150.6734 -81.19329 -0.7875,
150.73864 -81.26858 -0.7875, 150.78002 -81.35919 -0.7875
]
}
coordIndex [
156, 158, 132, -1, 132, 158, 159, -1, 132, 159, 153, -1, 153, 159, 160, -1,
153, 160, 152, -1, 152, 160, 161, -1, 152, 161, 151, -1, 151, 161, 162, -1,
151, 162, 150, -1, 150, 162, 163, -1, 150, 163, 149, -1, 149, 163, 164, -1,
149, 164, 148, -1, 148, 164, 165, -1, 148, 165, 147, -1, 147, 165, 166, -1,
147, 166, 146, -1, 146, 166, 167, -1, 146, 167, 145, -1, 145, 167, 168, -1,
145, 168, 144, -1, 144, 168, 169, -1, 144, 169, 143, -1, 143, 169, 170, -1,
143, 170, 110, -1, 110, 170, 171, -1, 110, 171, 131, -1, 131, 171, 172, -1,
131, 172, 130, -1, 130, 172, 173, -1, 130, 173, 129, -1, 129, 173, 174, -1,
129, 174, 128, -1, 128, 174, 175, -1, 128, 175, 127, -1, 127, 175, 176, -1,
127, 176, 126, -1, 126, 176, 177, -1, 126, 177, 125, -1, 125, 177, 178, -1,
125, 178, 124, -1, 124, 178, 179, -1, 124, 179, 123, -1, 123, 179, 180, -1,
123, 180, 122, -1, 122, 180, 181, -1, 122, 181, 121, -1, 121, 181, 182, -1,
121, 182, 88, -1, 88, 182, 183, -1, 88, 183, 109, -1, 109, 183, 184, -1,
109, 184, 108, -1, 108, 184, 185, -1, 108, 185, 107, -1, 107, 185, 186, -1,
107, 186, 106, -1, 106, 186, 187, -1, 106, 187, 105, -1, 105, 187, 188, -1,
105, 188, 104, -1, 104, 188, 189, -1, 104, 189, 103, -1, 103, 189, 190, -1,
103, 190, 102, -1, 102, 190, 191, -1, 102, 191, 101, -1, 101, 191, 192, -1,
101, 192, 100, -1, 100, 192, 193, -1, 100, 193, 99, -1, 99, 193, 194, -1,
99, 194, 66, -1, 66, 194, 195, -1, 66, 195, 87, -1, 87, 195, 196, -1,
87, 196, 86, -1, 86, 196, 197, -1, 86, 197, 85, -1, 85, 197, 198, -1,
85, 198, 84, -1, 84, 198, 199, -1, 84, 199, 83, -1, 83, 199, 200, -1,
83, 200, 82, -1, 82, 200, 201, -1, 82, 201, 81, -1, 81, 201, 202, -1,
81, 202, 80, -1, 80, 202, 203, -1, 80, 203, 79, -1, 79, 203, 204, -1,
79, 204, 78, -1, 78, 204, 205, -1, 78, 205, 77, -1, 77, 205, 206, -1,
77, 206, 44, -1, 44, 206, 207, -1, 44, 207, 65, -1, 65, 207, 208, -1,
65, 208, 64, -1, 64, 208, 209, -1, 64, 209, 63, -1, 63, 209, 210, -1,
63, 210, 62, -1, 62, 210, 211, -1, 62, 211, 61, -1, 61, 211, 212, -1,
61, 212, 60, -1, 60, 212, 213, -1, 60, 213, 59, -1, 59, 213, 214, -1,
59, 214, 58, -1, 58, 214, 215, -1, 58, 215, 57, -1, 57, 215, 216, -1,
57, 216, 56, -1, 56, 216, 217, -1, 56, 217, 55, -1, 55, 217, 218, -1,
55, 218, 22, -1, 22, 218, 219, -1, 22, 219, 43, -1, 43, 219, 220, -1,
43, 220, 42, -1, 42, 220, 221, -1, 42, 221, 41, -1, 41, 221, 222, -1,
41, 222, 40, -1, 40, 222, 223, -1, 40, 223, 39, -1, 39, 223, 224, -1,
39, 224, 38, -1, 38, 224, 225, -1, 38, 225, 37, -1, 37, 225, 226, -1,
37, 226, 36, -1, 36, 226, 227, -1, 36, 227, 35, -1, 35, 227, 228, -1,
35, 228, 34, -1, 34, 228, 229, -1, 34, 229, 33, -1, 33, 229, 230, -1,
33, 230, 0, -1, 0, 230, 231, -1, 0, 231, 21, -1, 21, 231, 232, -1,
21, 232, 20, -1, 20, 232, 233, -1, 20, 233, 19, -1, 19, 233, 234, -1,
19, 234, 18, -1, 18, 234, 235, -1, 18, 235, 17, -1, 17, 235, 236, -1,
17, 236, 16, -1, 16, 236, 237, -1, 16, 237, 15, -1, 15, 237, 238, -1,
15, 238, 14, -1, 14, 238, 239, -1, 14, 239, 13, -1, 13, 239, 240, -1,
13, 240, 12, -1, 12, 240, 241, -1, 12, 241, 11, -1, 11, 241, 242, -1,
11, 242, 265, -1, 265, 242, 243, -1, 265, 243, 264, -1, 264, 243, 244, -1,
264, 244, 263, -1, 263, 244, 245, -1, 263, 245, 262, -1, 262, 245, 246, -1,
262, 246, 261, -1, 261, 246, 247, -1, 261, 247, 260, -1, 260, 247, 248, -1,
260, 248, 259, -1, 259, 248, 249, -1, 259, 249, 258, -1, 258, 249, 250, -1,
258, 250, 257, -1, 257, 250, 251, -1, 257, 251, 256, -1, 256, 251, 252, -1,
256, 252, 255, -1, 255, 252, 253, -1, 255, 253, 254, -1, 254, 253, 154, -1,
254, 154, 155, -1, 155, 156, 134, -1, 155, 134, 135, -1, 155, 135, 136, -1,
155, 136, 137, -1, 155, 137, 138, -1, 155, 138, 139, -1, 155, 139, 140, -1,
155, 140, 141, -1, 155, 141, 142, -1, 155, 142, 143, -1, 155, 143, 112, -1,
155, 112, 113, -1, 155, 113, 114, -1, 155, 114, 115, -1, 155, 115, 116, -1,
155, 116, 117, -1, 155, 117, 118, -1, 155, 118, 119, -1, 155, 119, 120, -1,
155, 120, 121, -1, 155, 121, 90, -1, 155, 90, 91, -1, 155, 91, 92, -1,
155, 92, 93, -1, 155, 93, 94, -1, 155, 94, 95, -1, 155, 95, 96, -1,
155, 96, 97, -1, 155, 97, 98, -1, 155, 98, 99, -1, 155, 99, 67, -1,
155, 67, 68, -1, 155, 68, 69, -1, 155, 69, 70, -1, 155, 70, 71, -1,
155, 71, 72, -1, 155, 72, 73, -1, 155, 73, 74, -1, 155, 74, 75, -1,
155, 75, 76, -1, 155, 76, 77, -1, 155, 77, 45, -1, 155, 45, 46, -1,
155, 46, 47, -1, 155, 47, 48, -1, 155, 48, 49, -1, 155, 49, 50, -1,
155, 50, 51, -1, 155, 51, 52, -1, 155, 52, 53, -1, 155, 53, 54, -1,
155, 54, 55, -1, 155, 55, 23, -1, 155, 23, 24, -1, 155, 24, 25, -1,
155, 25, 26, -1, 155, 26, 27, -1, 155, 27, 28, -1, 155, 28, 29, -1,
155, 29, 30, -1, 155, 30, 31, -1, 155, 31, 32, -1, 155, 32, 33, -1,
155, 33, 1, -1, 155, 1, 2, -1, 155, 2, 3, -1, 155, 3, 4, -1,
155, 4, 5, -1, 155, 5, 6, -1, 155, 6, 7, -1, 155, 7, 8, -1,
155, 8, 9, -1, 155, 9, 10, -1, 155, 10, 11, -1, 155, 11, 265, -1,
155, 265, 266, -1, 155, 266, 267, -1, 155, 267, 268, -1, 155, 268, 269, -1,
155, 269, 270, -1, 155, 270, 271, -1, 155, 271, 272, -1, 155, 272, 273, -1,
155, 273, 274, -1, 155, 274, 275, -1, 155, 275, 254, -1, 89, 90, 121, -1,
89, 121, 88, -1, 111, 112, 143, -1, 111, 143, 110, -1, 156, 132, 133, -1,
156, 133, 134, -1, 158, 156, 157, -1, 67, 99, 66, -1, 45, 77, 44, -1,
23, 55, 22, -1, 1, 33, 0, -1, 434, 432, 408, -1, 434, 408, 435, -1,
435, 408, 429, -1, 435, 429, 436, -1, 436, 429, 428, -1, 436, 428, 437, -1,
437, 428, 427, -1, 437, 427, 438, -1, 438, 427, 426, -1, 438, 426, 439, -1,
439, 426, 425, -1, 439, 425, 440, -1, 440, 425, 424, -1, 440, 424, 441, -1,
441, 424, 423, -1, 441, 423, 442, -1, 442, 423, 422, -1, 442, 422, 443, -1,
443, 422, 421, -1, 443, 421, 444, -1, 444, 421, 420, -1, 444, 420, 445, -1,
445, 420, 419, -1, 445, 419, 446, -1, 446, 419, 386, -1, 446, 386, 447, -1,
447, 386, 407, -1, 447, 407, 448, -1, 448, 407, 406, -1, 448, 406, 449, -1,
449, 406, 405, -1, 449, 405, 450, -1, 450, 405, 404, -1, 450, 404, 451, -1,
451, 404, 403, -1, 451, 403, 452, -1, 452, 403, 402, -1, 452, 402, 453, -1,
453, 402, 401, -1, 453, 401, 454, -1, 454, 401, 400, -1, 454, 400, 455, -1,
455, 400, 399, -1, 455, 399, 456, -1, 456, 399, 398, -1, 456, 398, 457, -1,
457, 398, 397, -1, 457, 397, 458, -1, 458, 397, 364, -1, 458, 364, 459, -1,
459, 364, 385, -1, 459, 385, 460, -1, 460, 385, 384, -1, 460, 384, 461, -1,
461, 384, 383, -1, 461, 383, 462, -1, 462, 383, 382, -1, 462, 382, 463, -1,
463, 382, 381, -1, 463, 381, 464, -1, 464, 381, 380, -1, 464, 380, 465, -1,
465, 380, 379, -1, 465, 379, 466, -1, 466, 379, 378, -1, 466, 378, 467, -1,
467, 378, 377, -1, 467, 377, 468, -1, 468, 377, 376, -1, 468, 376, 469, -1,
469, 376, 375, -1, 469, 375, 470, -1, 470, 375, 342, -1, 470, 342, 471, -1,
471, 342, 363, -1, 471, 363, 472, -1, 472, 363, 362, -1, 472, 362, 473, -1,
473, 362, 361, -1, 473, 361, 474, -1, 474, 361, 360, -1, 474, 360, 475, -1,
475, 360, 359, -1, 475, 359, 476, -1, 476, 359, 358, -1, 476, 358, 477, -1,
477, 358, 357, -1, 477, 357, 478, -1, 478, 357, 356, -1, 478, 356, 479, -1,
479, 356, 355, -1, 479, 355, 480, -1, 480, 355, 354, -1, 480, 354, 481, -1,
481, 354, 353, -1, 481, 353, 482, -1, 482, 353, 320, -1, 482, 320, 483, -1,
483, 320, 341, -1, 483, 341, 484, -1, 484, 341, 340, -1, 484, 340, 485, -1,
485, 340, 339, -1, 485, 339, 486, -1, 486, 339, 338, -1, 486, 338, 487, -1,
487, 338, 337, -1, 487, 337, 488, -1, 488, 337, 336, -1, 488, 336, 489, -1,
489, 336, 335, -1, 489, 335, 490, -1, 490, 335, 334, -1, 490, 334, 491, -1,
491, 334, 333, -1, 491, 333, 492, -1, 492, 333, 332, -1, 492, 332, 493, -1,
493, 332, 331, -1, 493, 331, 494, -1, 494, 331, 298, -1, 494, 298, 495, -1,
495, 298, 319, -1, 495, 319, 496, -1, 496, 319, 318, -1, 496, 318, 497, -1,
497, 318, 317, -1, 497, 317, 498, -1, 498, 317, 316, -1, 498, 316, 499, -1,
499, 316, 315, -1, 499, 315, 500, -1, 500, 315, 314, -1, 500, 314, 501, -1,
501, 314, 313, -1, 501, 313, 502, -1, 502, 313, 312, -1, 502, 312, 503, -1,
503, 312, 311, -1, 503, 311, 504, -1, 504, 311, 310, -1, 504, 310, 505, -1,
505, 310, 309, -1, 505, 309, 506, -1, 506, 309, 276, -1, 506, 276, 507, -1,
507, 276, 297, -1, 507, 297, 508, -1, 508, 297, 296, -1, 508, 296, 509, -1,
509, 296, 295, -1, 509, 295, 510, -1, 510, 295, 294, -1, 510, 294, 511, -1,
511, 294, 293, -1, 511, 293, 512, -1, 512, 293, 292, -1, 512, 292, 513, -1,
513, 292, 291, -1, 513, 291, 514, -1, 514, 291, 290, -1, 514, 290, 515, -1,
515, 290, 289, -1, 515, 289, 516, -1, 516, 289, 288, -1, 516, 288, 517, -1,
517, 288, 287, -1, 517, 287, 518, -1, 518, 287, 541, -1, 518, 541, 519, -1,
519, 541, 540, -1, 519, 540, 520, -1, 520, 540, 539, -1, 520, 539, 521, -1,
521, 539, 538, -1, 521, 538, 522, -1, 522, 538, 537, -1, 522, 537, 523, -1,
523, 537, 536, -1, 523, 536, 524, -1, 524, 536, 535, -1, 524, 535, 525, -1,
525, 535, 534, -1, 525, 534, 526, -1, 526, 534, 533, -1, 526, 533, 527, -1,
527, 533, 532, -1, 527, 532, 528, -1, 528, 532, 531, -1, 528, 531, 529, -1,
529, 531, 530, -1, 529, 530, 430, -1, 430, 530, 431, -1, 432, 431, 410, -1,
410, 431, 411, -1, 411, 431, 412, -1, 412, 431, 413, -1, 413, 431, 414, -1,
414, 431, 415, -1, 415, 431, 416, -1, 416, 431, 417, -1, 417, 431, 418, -1,
418, 431, 419, -1, 419, 431, 388, -1, 388, 431, 389, -1, 389, 431, 390, -1,
390, 431, 391, -1, 391, 431, 392, -1, 392, 431, 393, -1, 393, 431, 394, -1,
394, 431, 395, -1, 395, 431, 396, -1, 396, 431, 397, -1, 397, 431, 366, -1,
366, 431, 367, -1, 367, 431, 368, -1, 368, 431, 369, -1, 369, 431, 370, -1,
370, 431, 371, -1, 371, 431, 372, -1, 372, 431, 373, -1, 373, 431, 374, -1,
374, 431, 375, -1, 375, 431, 343, -1, 343, 431, 344, -1, 344, 431, 345, -1,
345, 431, 346, -1, 346, 431, 347, -1, 347, 431, 348, -1, 348, 431, 349, -1,
349, 431, 350, -1, 350, 431, 351, -1, 351, 431, 352, -1, 352, 431, 353, -1,
353, 431, 321, -1, 321, 431, 322, -1, 322, 431, 323, -1, 323, 431, 324, -1,
324, 431, 325, -1, 325, 431, 326, -1, 326, 431, 327, -1, 327, 431, 328, -1,
328, 431, 329, -1, 329, 431, 330, -1, 330, 431, 331, -1, 331, 431, 299, -1,
299, 431, 300, -1, 300, 431, 301, -1, 301, 431, 302, -1, 302, 431, 303, -1,
303, 431, 304, -1, 304, 431, 305, -1, 305, 431, 306, -1, 306, 431, 307, -1,
307, 431, 308, -1, 308, 431, 309, -1, 309, 431, 277, -1, 277, 431, 278, -1,
278, 431, 279, -1, 279, 431, 280, -1, 280, 431, 281, -1, 281, 431, 282, -1,
282, 431, 283, -1, 283, 431, 284, -1, 284, 431, 285, -1, 285, 431, 286, -1,
286, 431, 287, -1, 287, 431, 541, -1, 541, 431, 542, -1, 542, 431, 543, -1,
543, 431, 544, -1, 544, 431, 545, -1, 545, 431, 546, -1, 546, 431, 547, -1,
547, 431, 548, -1, 548, 431, 549, -1, 549, 431, 550, -1, 550, 431, 551, -1,
551, 431, 530, -1, 366, 365, 397, -1, 397, 365, 364, -1, 388, 387, 419, -1,
419, 387, 386, -1, 408, 432, 409, -1, 409, 432, 410, -1, 432, 434, 433, -1,
375, 343, 342, -1, 353, 321, 320, -1, 331, 299, 298, -1, 309, 277, 276, -1,
1, 0, 277, -1, 277, 0, 276, -1, 2, 1, 278, -1, 278, 1, 277, -1,
3, 2, 279, -1, 279, 2, 278, -1, 4, 3, 280, -1, 280, 3, 279, -1,
5, 4, 281, -1, 281, 4, 280, -1, 6, 5, 282, -1, 282, 5, 281, -1,
7, 6, 283, -1, 283, 6, 282, -1, 8, 7, 284, -1, 284, 7, 283, -1,
9, 8, 285, -1, 285, 8, 284, -1, 10, 9, 286, -1, 286, 9, 285, -1,
11, 10, 287, -1, 287, 10, 286, -1, 12, 11, 288, -1, 288, 11, 287, -1,
13, 12, 289, -1, 289, 12, 288, -1, 14, 13, 290, -1, 290, 13, 289, -1,
15, 14, 291, -1, 291, 14, 290, -1, 16, 15, 292, -1, 292, 15, 291, -1,
17, 16, 293, -1, 293, 16, 292, -1, 18, 17, 294, -1, 294, 17, 293, -1,
19, 18, 295, -1, 295, 18, 294, -1, 20, 19, 296, -1, 296, 19, 295, -1,
21, 20, 297, -1, 297, 20, 296, -1, 0, 21, 276, -1, 276, 21, 297, -1,
23, 22, 299, -1, 299, 22, 298, -1, 24, 23, 300, -1, 300, 23, 299, -1,
25, 24, 301, -1, 301, 24, 300, -1, 26, 25, 302, -1, 302, 25, 301, -1,
27, 26, 303, -1, 303, 26, 302, -1, 28, 27, 304, -1, 304, 27, 303, -1,
29, 28, 305, -1, 305, 28, 304, -1, 30, 29, 306, -1, 306, 29, 305, -1,
31, 30, 307, -1, 307, 30, 306, -1, 32, 31, 308, -1, 308, 31, 307, -1,
33, 32, 309, -1, 309, 32, 308, -1, 34, 33, 310, -1, 310, 33, 309, -1,
35, 34, 311, -1, 311, 34, 310, -1, 36, 35, 312, -1, 312, 35, 311, -1,
37, 36, 313, -1, 313, 36, 312, -1, 38, 37, 314, -1, 314, 37, 313, -1,
39, 38, 315, -1, 315, 38, 314, -1, 40, 39, 316, -1, 316, 39, 315, -1,
41, 40, 317, -1, 317, 40, 316, -1, 42, 41, 318, -1, 318, 41, 317, -1,
43, 42, 319, -1, 319, 42, 318, -1, 22, 43, 298, -1, 298, 43, 319, -1,
45, 44, 321, -1, 321, 44, 320, -1, 46, 45, 322, -1, 322, 45, 321, -1,
47, 46, 323, -1, 323, 46, 322, -1, 48, 47, 324, -1, 324, 47, 323, -1,
49, 48, 325, -1, 325, 48, 324, -1, 50, 49, 326, -1, 326, 49, 325, -1,
51, 50, 327, -1, 327, 50, 326, -1, 52, 51, 328, -1, 328, 51, 327, -1,
53, 52, 329, -1, 329, 52, 328, -1, 54, 53, 330, -1, 330, 53, 329, -1,
55, 54, 331, -1, 331, 54, 330, -1, 56, 55, 332, -1, 332, 55, 331, -1,
57, 56, 333, -1, 333, 56, 332, -1, 58, 57, 334, -1, 334, 57, 333, -1,
59, 58, 335, -1, 335, 58, 334, -1, 60, 59, 336, -1, 336, 59, 335, -1,
61, 60, 337, -1, 337, 60, 336, -1, 62, 61, 338, -1, 338, 61, 337, -1,
63, 62, 339, -1, 339, 62, 338, -1, 64, 63, 340, -1, 340, 63, 339, -1,
65, 64, 341, -1, 341, 64, 340, -1, 44, 65, 320, -1, 320, 65, 341, -1,
67, 66, 343, -1, 343, 66, 342, -1, 68, 67, 344, -1, 344, 67, 343, -1,
69, 68, 345, -1, 345, 68, 344, -1, 70, 69, 346, -1, 346, 69, 345, -1,
71, 70, 347, -1, 347, 70, 346, -1, 72, 71, 348, -1, 348, 71, 347, -1,
73, 72, 349, -1, 349, 72, 348, -1, 74, 73, 350, -1, 350, 73, 349, -1,
75, 74, 351, -1, 351, 74, 350, -1, 76, 75, 352, -1, 352, 75, 351, -1,
77, 76, 353, -1, 353, 76, 352, -1, 78, 77, 354, -1, 354, 77, 353, -1,
79, 78, 355, -1, 355, 78, 354, -1, 80, 79, 356, -1, 356, 79, 355, -1,
81, 80, 357, -1, 357, 80, 356, -1, 82, 81, 358, -1, 358, 81, 357, -1,
83, 82, 359, -1, 359, 82, 358, -1, 84, 83, 360, -1, 360, 83, 359, -1,
85, 84, 361, -1, 361, 84, 360, -1, 86, 85, 362, -1, 362, 85, 361, -1,
87, 86, 363, -1, 363, 86, 362, -1, 66, 87, 342, -1, 342, 87, 363, -1,
89, 88, 365, -1, 365, 88, 364, -1, 90, 89, 366, -1, 366, 89, 365, -1,
91, 90, 367, -1, 367, 90, 366, -1, 92, 91, 368, -1, 368, 91, 367, -1,
93, 92, 369, -1, 369, 92, 368, -1, 94, 93, 370, -1, 370, 93, 369, -1,
95, 94, 371, -1, 371, 94, 370, -1, 96, 95, 372, -1, 372, 95, 371, -1,
97, 96, 373, -1, 373, 96, 372, -1, 98, 97, 374, -1, 374, 97, 373, -1,
99, 98, 375, -1, 375, 98, 374, -1, 100, 99, 376, -1, 376, 99, 375, -1,
101, 100, 377, -1, 377, 100, 376, -1, 102, 101, 378, -1, 378, 101, 377, -1,
103, 102, 379, -1, 379, 102, 378, -1, 104, 103, 380, -1, 380, 103, 379, -1,
105, 104, 381, -1, 381, 104, 380, -1, 106, 105, 382, -1, 382, 105, 381, -1,
107, 106, 383, -1, 383, 106, 382, -1, 108, 107, 384, -1, 384, 107, 383, -1,
109, 108, 385, -1, 385, 108, 384, -1, 88, 109, 364, -1, 364, 109, 385, -1,
111, 110, 387, -1, 387, 110, 386, -1, 112, 111, 388, -1, 388, 111, 387, -1,
113, 112, 389, -1, 389, 112, 388, -1, 114, 113, 390, -1, 390, 113, 389, -1,
115, 114, 391, -1, 391, 114, 390, -1, 116, 115, 392, -1, 392, 115, 391, -1,
117, 116, 393, -1, 393, 116, 392, -1, 118, 117, 394, -1, 394, 117, 393, -1,
119, 118, 395, -1, 395, 118, 394, -1, 120, 119, 396, -1, 396, 119, 395, -1,
121, 120, 397, -1, 397, 120, 396, -1, 122, 121, 398, -1, 398, 121, 397, -1,
123, 122, 399, -1, 399, 122, 398, -1, 124, 123, 400, -1, 400, 123, 399, -1,
125, 124, 401, -1, 401, 124, 400, -1, 126, 125, 402, -1, 402, 125, 401, -1,
127, 126, 403, -1, 403, 126, 402, -1, 128, 127, 404, -1, 404, 127, 403, -1,
129, 128, 405, -1, 405, 128, 404, -1, 130, 129, 406, -1, 406, 129, 405, -1,
131, 130, 407, -1, 407, 130, 406, -1, 110, 131, 386, -1, 386, 131, 407, -1,
133, 132, 409, -1, 409, 132, 408, -1, 134, 133, 410, -1, 410, 133, 409, -1,
135, 134, 411, -1, 411, 134, 410, -1, 136, 135, 412, -1, 412, 135, 411, -1,
137, 136, 413, -1, 413, 136, 412, -1, 138, 137, 414, -1, 414, 137, 413, -1,
139, 138, 415, -1, 415, 138, 414, -1, 140, 139, 416, -1, 416, 139, 415, -1,
141, 140, 417, -1, 417, 140, 416, -1, 142, 141, 418, -1, 418, 141, 417, -1,
143, 142, 419, -1, 419, 142, 418, -1, 144, 143, 420, -1, 420, 143, 419, -1,
145, 144, 421, -1, 421, 144, 420, -1, 146, 145, 422, -1, 422, 145, 421, -1,
147, 146, 423, -1, 423, 146, 422, -1, 148, 147, 424, -1, 424, 147, 423, -1,
149, 148, 425, -1, 425, 148, 424, -1, 150, 149, 426, -1, 426, 149, 425, -1,
151, 150, 427, -1, 427, 150, 426, -1, 152, 151, 428, -1, 428, 151, 427, -1,
153, 152, 429, -1, 429, 152, 428, -1, 132, 153, 408, -1, 408, 153, 429, -1,
155, 154, 431, -1, 431, 154, 430, -1, 156, 155, 432, -1, 432, 155, 431, -1,
157, 156, 433, -1, 433, 156, 432, -1, 158, 157, 434, -1, 434, 157, 433, -1,
159, 158, 435, -1, 435, 158, 434, -1, 160, 159, 436, -1, 436, 159, 435, -1,
161, 160, 437, -1, 437, 160, 436, -1, 162, 161, 438, -1, 438, 161, 437, -1,
163, 162, 439, -1, 439, 162, 438, -1, 164, 163, 440, -1, 440, 163, 439, -1,
165, 164, 441, -1, 441, 164, 440, -1, 166, 165, 442, -1, 442, 165, 441, -1,
167, 166, 443, -1, 443, 166, 442, -1, 168, 167, 444, -1, 444, 167, 443, -1,
169, 168, 445, -1, 445, 168, 444, -1, 170, 169, 446, -1, 446, 169, 445, -1,
171, 170, 447, -1, 447, 170, 446, -1, 172, 171, 448, -1, 448, 171, 447, -1,
173, 172, 449, -1, 449, 172, 448, -1, 174, 173, 450, -1, 450, 173, 449, -1,
175, 174, 451, -1, 451, 174, 450, -1, 176, 175, 452, -1, 452, 175, 451, -1,
177, 176, 453, -1, 453, 176, 452, -1, 178, 177, 454, -1, 454, 177, 453, -1,
179, 178, 455, -1, 455, 178, 454, -1, 180, 179, 456, -1, 456, 179, 455, -1,
181, 180, 457, -1, 457, 180, 456, -1, 182, 181, 458, -1, 458, 181, 457, -1,
183, 182, 459, -1, 459, 182, 458, -1, 184, 183, 460, -1, 460, 183, 459, -1,
185, 184, 461, -1, 461, 184, 460, -1, 186, 185, 462, -1, 462, 185, 461, -1,
187, 186, 463, -1, 463, 186, 462, -1, 188, 187, 464, -1, 464, 187, 463, -1,
189, 188, 465, -1, 465, 188, 464, -1, 190, 189, 466, -1, 466, 189, 465, -1,
191, 190, 467, -1, 467, 190, 466, -1, 192, 191, 468, -1, 468, 191, 467, -1,
193, 192, 469, -1, 469, 192, 468, -1, 194, 193, 470, -1, 470, 193, 469, -1,
195, 194, 471, -1, 471, 194, 470, -1, 196, 195, 472, -1, 472, 195, 471, -1,
197, 196, 473, -1, 473, 196, 472, -1, 198, 197, 474, -1, 474, 197, 473, -1,
199, 198, 475, -1, 475, 198, 474, -1, 200, 199, 476, -1, 476, 199, 475, -1,
201, 200, 477, -1, 477, 200, 476, -1, 202, 201, 478, -1, 478, 201, 477, -1,
203, 202, 479, -1, 479, 202, 478, -1, 204, 203, 480, -1, 480, 203, 479, -1,
205, 204, 481, -1, 481, 204, 480, -1, 206, 205, 482, -1, 482, 205, 481, -1,
207, 206, 483, -1, 483, 206, 482, -1, 208, 207, 484, -1, 484, 207, 483, -1,
209, 208, 485, -1, 485, 208, 484, -1, 210, 209, 486, -1, 486, 209, 485, -1,
211, 210, 487, -1, 487, 210, 486, -1, 212, 211, 488, -1, 488, 211, 487, -1,
213, 212, 489, -1, 489, 212, 488, -1, 214, 213, 490, -1, 490, 213, 489, -1,
215, 214, 491, -1, 491, 214, 490, -1, 216, 215, 492, -1, 492, 215, 491, -1,
217, 216, 493, -1, 493, 216, 492, -1, 218, 217, 494, -1, 494, 217, 493, -1,
219, 218, 495, -1, 495, 218, 494, -1, 220, 219, 496, -1, 496, 219, 495, -1,
221, 220, 497, -1, 497, 220, 496, -1, 222, 221, 498, -1, 498, 221, 497, -1,
223, 222, 499, -1, 499, 222, 498, -1, 224, 223, 500, -1, 500, 223, 499, -1,
225, 224, 501, -1, 501, 224, 500, -1, 226, 225, 502, -1, 502, 225, 501, -1,
227, 226, 503, -1, 503, 226, 502, -1, 228, 227, 504, -1, 504, 227, 503, -1,
229, 228, 505, -1, 505, 228, 504, -1, 230, 229, 506, -1, 506, 229, 505, -1,
231, 230, 507, -1, 507, 230, 506, -1, 232, 231, 508, -1, 508, 231, 507, -1,
233, 232, 509, -1, 509, 232, 508, -1, 234, 233, 510, -1, 510, 233, 509, -1,
235, 234, 511, -1, 511, 234, 510, -1, 236, 235, 512, -1, 512, 235, 511, -1,
237, 236, 513, -1, 513, 236, 512, -1, 238, 237, 514, -1, 514, 237, 513, -1,
239, 238, 515, -1, 515, 238, 514, -1, 240, 239, 516, -1, 516, 239, 515, -1,
241, 240, 517, -1, 517, 240, 516, -1, 242, 241, 518, -1, 518, 241, 517, -1,
243, 242, 519, -1, 519, 242, 518, -1, 244, 243, 520, -1, 520, 243, 519, -1,
245, 244, 521, -1, 521, 244, 520, -1, 246, 245, 522, -1, 522, 245, 521, -1,
247, 246, 523, -1, 523, 246, 522, -1, 248, 247, 524, -1, 524, 247, 523, -1,
249, 248, 525, -1, 525, 248, 524, -1, 250, 249, 526, -1, 526, 249, 525, -1,
251, 250, 527, -1, 527, 250, 526, -1, 252, 251, 528, -1, 528, 251, 527, -1,
253, 252, 529, -1, 529, 252, 528, -1, 154, 253, 430, -1, 430, 253, 529, -1,
255, 254, 531, -1, 531, 254, 530, -1, 256, 255, 532, -1, 532, 255, 531, -1,
257, 256, 533, -1, 533, 256, 532, -1, 258, 257, 534, -1, 534, 257, 533, -1,
259, 258, 535, -1, 535, 258, 534, -1, 260, 259, 536, -1, 536, 259, 535, -1,
261, 260, 537, -1, 537, 260, 536, -1, 262, 261, 538, -1, 538, 261, 537, -1,
263, 262, 539, -1, 539, 262, 538, -1, 264, 263, 540, -1, 540, 263, 539, -1,
265, 264, 541, -1, 541, 264, 540, -1, 266, 265, 542, -1, 542, 265, 541, -1,
267, 266, 543, -1, 543, 266, 542, -1, 268, 267, 544, -1, 544, 267, 543, -1,
269, 268, 545, -1, 545, 268, 544, -1, 270, 269, 546, -1, 546, 269, 545, -1,
271, 270, 547, -1, 547, 270, 546, -1, 272, 271, 548, -1, 548, 271, 547, -1,
273, 272, 549, -1, 549, 272, 548, -1, 274, 273, 550, -1, 550, 273, 549, -1,
275, 274, 551, -1, 551, 274, 550, -1, 254, 275, 530, -1, 530, 275, 551, -1
]
}
}
]
}
]
}
Transform {
children [
Group {
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.08 0.5 0.1
specularColor 0.08 0.5 0.1
emissiveColor 0 0 0
ambientIntensity 1
transparency 0
shininess 0.2
}
}
geometry IndexedFaceSet {
solid TRUE
coord Coordinate {
point [
141.92416 -66.18532 0.8, 141.90642 -66.20973 0.8,
141.90642 -66.2399 0.8, 141.8971 -66.2686 0.8,
141.8971 -70.866 0.8, 141.93348 -70.97797 0.8,
142.02873 -71.04718 0.8, 142.14647 -71.04718 0.8,
142.24172 -70.97797 0.8, 142.2781 -70.866 0.8,
142.2781 -66.4591 0.8, 149.3139 -66.4591 0.8,
149.3139 -67.1576 0.8, 149.35028 -67.26957 0.8,
149.44553 -67.33878 0.8, 149.56327 -67.33878 0.8,
149.65852 -67.26957 0.8, 149.6949 -67.1576 0.8,
149.6949 -66.2686 0.8, 149.68557 -66.2399 0.8,
149.68558 -66.20973 0.8, 149.66784 -66.18532 0.8,
149.65852 -66.15663 0.8, 149.63411 -66.13889 0.8,
149.61637 -66.11448 0.8, 149.58768 -66.10516 0.8,
149.56327 -66.08742 0.8, 149.5331 -66.08742 0.8,
149.5044 -66.0781 0.8, 142.0876 -66.0781 0.8,
142.0589 -66.08742 0.8, 142.02873 -66.08742 0.8,
142.00432 -66.10516 0.8, 141.97563 -66.11448 0.8,
141.95789 -66.13889 0.8, 141.93348 -66.15663 0.8
]
}
coordIndex [
23, 16, 22, -1, 22, 16, 17, -1, 22, 17, 21, -1, 21, 17, 19, -1,
21, 19, 20, -1, 16, 23, 24, -1, 16, 24, 25, -1, 16, 25, 26, -1,
16, 26, 15, -1, 13, 14, 28, -1, 28, 14, 15, -1, 28, 15, 27, -1,
27, 15, 26, -1, 28, 29, 10, -1, 28, 10, 11, -1, 28, 11, 12, -1,
28, 12, 13, -1, 7, 8, 10, -1, 7, 10, 29, -1, 7, 29, 30, -1,
7, 30, 31, -1, 7, 31, 6, -1, 6, 31, 32, -1, 6, 32, 33, -1,
6, 33, 34, -1, 6, 34, 35, -1, 6, 35, 5, -1, 5, 35, 0, -1,
5, 0, 2, -1, 5, 2, 3, -1, 5, 3, 4, -1, 9, 10, 8, -1,
0, 1, 2, -1, 19, 17, 18, -1
]
}
}
]
}
]
}
Transform {
children [
Group {
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.749 0.756 0.761
specularColor 0.749 0.756 0.761
emissiveColor 0 0 0
ambientIntensity 0.8
transparency 0
shininess 0.8
}
}
geometry IndexedFaceSet {
solid TRUE
coord Coordinate {
point [
147.979 -74.4996 0.8125, 146.304 -74.4996 0.8125,
146.304 -74.4996 0.8125, 144.629 -74.4996 0.8125,
144.629 -76.1746 0.8125, 144.629 -76.1746 0.8125,
144.629 -77.8496 0.8125, 146.304 -77.8496 0.8125,
146.304 -77.8496 0.8125, 147.979 -77.8496 0.8125,
147.979 -76.1746 0.8125, 147.979 -76.1746 0.8125,
144.329 -74.6746 0.8125, 143.779 -74.6746 0.8125,
143.779 -75.0746 0.8125, 144.329 -75.0746 0.8125,
144.329 -75.3246 0.8125, 143.779 -75.3246 0.8125,
143.779 -75.7246 0.8125, 144.329 -75.7246 0.8125,
144.329 -75.9746 0.8125, 143.779 -75.9746 0.8125,
143.779 -76.3746 0.8125, 144.329 -76.3746 0.8125,
144.329 -76.6246 0.8125, 143.779 -76.6246 0.8125,
143.779 -77.0246 0.8125, 144.329 -77.0246 0.8125,
144.329 -77.2746 0.8125, 143.779 -77.2746 0.8125,
143.779 -77.6746 0.8125, 144.329 -77.6746 0.8125,
145.204 -78.1496 0.8125, 144.804 -78.1496 0.8125,
144.804 -78.6996 0.8125, 145.204 -78.6996 0.8125,
145.854 -78.1496 0.8125, 145.454 -78.1496 0.8125,
145.454 -78.6996 0.8125, 145.854 -78.6996 0.8125,
146.504 -78.1496 0.8125, 146.104 -78.1496 0.8125,
146.104 -78.6996 0.8125, 146.504 -78.6996 0.8125,
147.154 -78.1496 0.8125, 146.754 -78.1496 0.8125,
146.754 -78.6996 0.8125, 147.154 -78.6996 0.8125,
147.804 -78.1496 0.8125, 147.404 -78.1496 0.8125,
147.404 -78.6996 0.8125, 147.804 -78.6996 0.8125,
148.829 -76.6246 0.8125, 148.279 -76.6246 0.8125,
148.279 -77.0246 0.8125, 148.829 -77.0246 0.8125,
148.829 -75.9746 0.8125, 148.279 -75.9746 0.8125,
148.279 -76.3746 0.8125, 148.829 -76.3746 0.8125,
148.829 -75.3246 0.8125, 148.279 -75.3246 0.8125,
148.279 -75.7246 0.8125, 148.829 -75.7246 0.8125,
148.829 -74.6746 0.8125, 148.279 -74.6746 0.8125,
148.279 -75.0746 0.8125, 148.829 -75.0746 0.8125,
147.804 -73.6496 0.8125, 147.404 -73.6496 0.8125,
147.404 -74.1996 0.8125, 147.804 -74.1996 0.8125,
147.154 -73.6496 0.8125, 146.754 -73.6496 0.8125,
146.754 -74.1996 0.8125, 147.154 -74.1996 0.8125,
146.504 -73.6496 0.8125, 146.104 -73.6496 0.8125,
146.104 -74.1996 0.8125, 146.504 -74.1996 0.8125,
145.854 -73.6496 0.8125, 145.454 -73.6496 0.8125,
145.454 -74.1996 0.8125, 145.854 -74.1996 0.8125,
145.204 -73.6496 0.8125, 144.804 -73.6496 0.8125,
144.804 -74.1996 0.8125, 145.204 -74.1996 0.8125,
148.829 -77.2746 0.8125, 148.279 -77.2746 0.8125,
148.279 -77.6746 0.8125, 148.829 -77.6746 0.8125
]
}
coordIndex [
3, 7, 2, -1, 1, 8, 9, -1, 1, 9, 0, -1, 0, 9, 10, -1,
7, 3, 4, -1, 7, 5, 6, -1, 13, 14, 15, -1, 13, 15, 12, -1,
17, 18, 19, -1, 17, 19, 16, -1, 21, 22, 23, -1, 21, 23, 20, -1,
25, 26, 27, -1, 25, 27, 24, -1, 29, 30, 31, -1, 29, 31, 28, -1,
33, 34, 35, -1, 33, 35, 32, -1, 37, 38, 39, -1, 37, 39, 36, -1,
41, 42, 43, -1, 41, 43, 40, -1, 45, 46, 47, -1, 45, 47, 44, -1,
49, 50, 51, -1, 49, 51, 48, -1, 53, 54, 55, -1, 53, 55, 52, -1,
57, 58, 59, -1, 57, 59, 56, -1, 61, 62, 63, -1, 61, 63, 60, -1,
65, 66, 67, -1, 65, 67, 64, -1, 69, 70, 71, -1, 69, 71, 68, -1,
73, 74, 75, -1, 73, 75, 72, -1, 77, 78, 79, -1, 77, 79, 76, -1,
81, 82, 83, -1, 81, 83, 80, -1, 85, 86, 87, -1, 85, 87, 84, -1,
89, 90, 91, -1, 89, 91, 88, -1
]
}
}
]
}
]
}
Transform {
children [
Group {
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.08 0.5 0.1
specularColor 0.08 0.5 0.1
emissiveColor 0 0 0
ambientIntensity 1
transparency 0
shininess 0.2
}
}
geometry IndexedFaceSet {
solid TRUE
coord Coordinate {
point [
]
}
coordIndex [
]
}
}
]
}
]
}
Transform {
children [
Group {
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.749 0.756 0.761
specularColor 0.749 0.756 0.761
emissiveColor 0 0 0
ambientIntensity 0.8
transparency 0
shininess 0.8
}
}
geometry IndexedFaceSet {
solid TRUE
coord Coordinate {
point [
]
}
coordIndex [
]
}
}
]
}
]
}
Transform {
children [
Group {
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.749 0.756 0.761
specularColor 0.749 0.756 0.761
emissiveColor 0 0 0
ambientIntensity 0.8
transparency 0
shininess 0.8
}
}
geometry IndexedFaceSet {
solid TRUE
coord Coordinate {
point [
]
}
coordIndex [
]
}
}
]
}
]
}
Transform {
children [
Group {
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.9 0.9 0.9
specularColor 0.9 0.9 0.9
emissiveColor 0 0 0
ambientIntensity 1
transparency 0
shininess 0.2
}
}
geometry IndexedFaceSet {
solid TRUE
coord Coordinate {
point [
144.64395 -73.4871 0.85, 144.579 -73.4496 0.85,
143.654 -73.4496 0.85, 143.58905 -73.4871 0.85,
143.58905 -73.5621 0.85, 143.654 -73.5996 0.85,
144.579 -73.5996 0.85, 144.64395 -73.5621 0.85,
149.029 -77.8996 0.85, 148.9915 -77.83465 0.85,
148.9165 -77.83465 0.85, 148.879 -77.8996 0.85,
148.879 -78.7496 0.85, 148.029 -78.7496 0.85,
147.96405 -78.7871 0.85, 147.96405 -78.8621 0.85,
148.029 -78.8996 0.85, 148.954 -78.8996 0.85,
148.97141 -78.88955 0.85, 148.9915 -78.88955 0.85,
149.00155 -78.87215 0.85, 149.01895 -78.8621 0.85,
149.01896 -78.84201 0.85, 149.029 -78.8246 0.85,
149.029 -73.5246 0.85, 149.01896 -73.5072 0.85,
149.01895 -73.4871 0.85, 149.00155 -73.47705 0.85,
148.9915 -73.45965 0.85, 148.97141 -73.45965 0.85,
148.954 -73.4496 0.85, 148.029 -73.4496 0.85,
147.96405 -73.4871 0.85, 147.96405 -73.5621 0.85,
148.029 -73.5996 0.85, 148.879 -73.5996 0.85,
148.879 -74.4496 0.85, 148.9165 -74.51455 0.85,
148.9915 -74.51455 0.85, 149.029 -74.4496 0.85,
143.60646 -78.87215 0.85, 143.6165 -78.88955 0.85,
143.6366 -78.88955 0.85, 143.654 -78.8996 0.85,
144.579 -78.8996 0.85, 144.64395 -78.8621 0.85,
144.64395 -78.7871 0.85, 144.579 -78.7496 0.85,
143.729 -78.7496 0.85, 143.729 -77.8996 0.85,
143.6915 -77.83465 0.85, 143.6165 -77.83465 0.85,
143.579 -77.8996 0.85, 143.579 -78.8246 0.85,
143.58905 -78.84201 0.85, 143.58905 -78.8621 0.85
]
}
coordIndex [
3, 5, 2, -1, 2, 5, 6, -1, 2, 6, 1, -1, 1, 6, 7, -1,
1, 7, 0, -1, 18, 19, 9, -1, 9, 19, 20, -1, 9, 20, 8, -1,
8, 20, 22, -1, 8, 22, 23, -1, 17, 18, 9, -1, 17, 9, 10, -1,
17, 10, 11, -1, 17, 11, 12, -1, 17, 12, 13, -1, 17, 13, 16, -1,
14, 15, 16, -1, 14, 16, 13, -1, 39, 24, 25, -1, 39, 25, 27, -1,
39, 27, 28, -1, 39, 28, 38, -1, 36, 37, 30, -1, 30, 37, 38, -1,
30, 38, 29, -1, 29, 38, 28, -1, 36, 30, 35, -1, 35, 30, 31, -1,
35, 31, 34, -1, 34, 31, 32, -1, 34, 32, 33, -1, 50, 51, 42, -1,
50, 42, 43, -1, 50, 43, 48, -1, 50, 48, 49, -1, 47, 48, 44, -1,
47, 44, 45, -1, 47, 45, 46, -1, 51, 52, 54, -1, 51, 54, 40, -1,
51, 40, 41, -1, 51, 41, 42, -1, 40, 54, 55, -1, 54, 52, 53, -1,
48, 43, 44, -1, 27, 25, 26, -1, 22, 20, 21, -1, 5, 3, 4, -1
]
}
}
]
}
]
}
Transform {
children [
Group {
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.9 0.9 0.9
specularColor 0.9 0.9 0.9
emissiveColor 0 0 0
ambientIntensity 1
transparency 0
shininess 0.2
}
}
geometry IndexedFaceSet {
solid TRUE
coord Coordinate {
point [
]
}
coordIndex [
]
}
}
]
}
]
}
]
}

138852
hardware/6502.kicad_pcb Executable file → Normal file

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,7 @@
"silk_text_upright": false, "silk_text_upright": false,
"zones": { "zones": {
"45_degree_only": false, "45_degree_only": false,
"min_clearance": 0.508 "min_clearance": 0.254
} }
}, },
"diff_pair_dimensions": [ "diff_pair_dimensions": [
@ -55,7 +55,9 @@
"width": 0.0 "width": 0.0
} }
], ],
"drc_exclusions": [], "drc_exclusions": [
"malformed_courtyard|78960923|111955923|4412226e-d975-40a2-921f-502ff4129a95|00000000-0000-0000-0000-000000000000"
],
"meta": { "meta": {
"filename": "board_design_settings.json", "filename": "board_design_settings.json",
"version": 2 "version": 2
@ -64,7 +66,7 @@
"annular_width": "error", "annular_width": "error",
"clearance": "error", "clearance": "error",
"copper_edge_clearance": "error", "copper_edge_clearance": "error",
"courtyards_overlap": "error", "courtyards_overlap": "warning",
"diff_pair_gap_out_of_range": "error", "diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error", "diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error", "drill_out_of_range": "error",

2939
hardware/6502.kicad_sch Executable file → Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

0
hardware/fp-info-cache Executable file → Normal file
View File

2040
hardware/ram-vga.kicad_sch Executable file → Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,3 @@
(sym_lib_table (sym_lib_table
(lib (name 6502-rescue)(type Legacy)(uri ${KIPRJMOD}/6502-rescue.lib)(options "")(descr "")) (lib (name "6502-rescue")(type "Legacy")(uri "${KIPRJMOD}/6502-rescue.lib")(options "")(descr ""))
) )

View File

@ -1,5 +1,6 @@
.feature string_escapes ; Allow c-style string escapes when using ca65 .feature string_escapes ; Allow c-style string escapes when using ca65
.feature c_comments
;PRIMM = $FFC8 ; Userland can use ROM subroutines if we tell them where they are. Check listing.txt for current subroutine addresses ;PRIMM = $FFC8 ; Userland can use ROM subroutines if we tell them where they are. Check listing.txt for current subroutine addresses
;.require "abn6502rom.s" ;.require "abn6502rom.s"
.import kb_rptr: zeropage, scrp: zeropage, scwp: zeropage, CRSRPNT: zeropage, MILLIS: zeropage, MILLISH: zeropage .import kb_rptr: zeropage, scrp: zeropage, scwp: zeropage, CRSRPNT: zeropage, MILLIS: zeropage, MILLISH: zeropage
@ -30,6 +31,7 @@ inc kb_rptr
jsr printa jsr printa
userland: userland:
lda #$0A lda #$0A
jsr printk jsr printk
jsr PRIMM jsr PRIMM
@ -62,6 +64,25 @@ cOhtwotest:
lda #<main lda #<main
jsr printbyte jsr printbyte
lda #$7f
sta I2CREG+1
lda I2CADDR
jsr printbyte
lda #':'
jsr printk
dumpi2c:
inc CRSRPNT
bne l77
inc CRSRPNT+1
l77:
jsr i2c_test
;rol
jsr printbyte
inc I2CREG
dec I2CREG+1
bne dumpi2c
; waitforkey: ; waitforkey:
; jsr MONRDKEY ; jsr MONRDKEY
; bcc waitforkey ; bcc waitforkey
@ -69,7 +90,7 @@ cOhtwotest:
; beq done ; beq done
; jsr printa ; jsr printa
; jmp waitforkey ; jmp waitforkey
; done: done:
brk brk
;jmp main ;jmp main