From 975fe0058b59e69f2601db489caa50170b0b21ef Mon Sep 17 00:00:00 2001 From: Anders Nielsen Date: Tue, 12 Apr 2022 12:39:32 +0300 Subject: [PATCH] Removed build output and .DS_Store files --- .gitignore | 6 + build/abn6502rom.bin | Bin 32768 -> 0 bytes build/abn6502rom.o | Bin 18764 -> 0 bytes build/crom.bin | Bin 1024 -> 0 bytes build/crom.o | Bin 5436 -> 0 bytes build/listing.txt | 1535 -------------------------------- build/userland.bin | Bin 118 -> 0 bytes build/userland.o | Bin 629 -> 0 bytes build/userlisting.txt | 33 - hardware/.DS_Store | Bin 8196 -> 0 bytes hardware/6502.kicad_pcb | 0 hardware/6502.kicad_prl | 0 hardware/6502.kicad_pro | 0 hardware/6502.kicad_sch | 107 +++ hardware/6502.kicad_sch-bak | 0 hardware/6502.sch | 0 hardware/6502.sch-bak | 0 hardware/abn6502sbcR1.zip | Bin hardware/fp-info-cache | 0 hardware/ram-vga.kicad_sch | 197 +++- hardware/ram-vga.kicad_sch-bak | 0 hardware/ram-vga.sch | 0 hardware/ram-vga.sch-bak | 0 software_linux/bootload.cpp | 0 24 files changed, 308 insertions(+), 1570 deletions(-) create mode 100644 .gitignore delete mode 100644 build/abn6502rom.bin delete mode 100644 build/abn6502rom.o delete mode 100644 build/crom.bin delete mode 100644 build/crom.o delete mode 100644 build/listing.txt delete mode 100644 build/userland.bin delete mode 100644 build/userland.o delete mode 100644 build/userlisting.txt delete mode 100644 hardware/.DS_Store mode change 100644 => 100755 hardware/6502.kicad_pcb mode change 100644 => 100755 hardware/6502.kicad_prl mode change 100644 => 100755 hardware/6502.kicad_pro mode change 100644 => 100755 hardware/6502.kicad_sch-bak mode change 100644 => 100755 hardware/6502.sch mode change 100644 => 100755 hardware/6502.sch-bak mode change 100644 => 100755 hardware/abn6502sbcR1.zip mode change 100644 => 100755 hardware/fp-info-cache mode change 100644 => 100755 hardware/ram-vga.kicad_sch-bak mode change 100644 => 100755 hardware/ram-vga.sch mode change 100644 => 100755 hardware/ram-vga.sch-bak mode change 100644 => 100755 software_linux/bootload.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..22eb2bd --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.o +*.bin +build/userlisting.txt +build/listing.txt +.DS_Store +hardware/6502-backups diff --git a/build/abn6502rom.bin b/build/abn6502rom.bin deleted file mode 100644 index 8641f90eb4f4b5fa7e857020713f7269bd85c435..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 LbGup{{mA|g9So)> diff --git a/build/crom.o b/build/crom.o deleted file mode 100644 index 32a969412d6d25bbd094b9b27a65532e8ff152db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5436 zcmds*!HZjE6vf|5GH=ov1_TR1q-5*D;i*_t8=_-77NI&awJuyGrbdR2>1d@5C1kpH z=bxjZ|BB$ozrjuX&acBgyhj+iC?&Ne=bihVbI-ls%g~nIc|04xnq}E2eJ-TWQTnvg z=ZEz9^tCMeHGT5Le>;2ro}P_V|Cyd|rsqHDd6=FbTzcyJJja)IOKLl%U(BAg^Tv~QS}QL$AG%s{8bJAt z%7LH|bOfc~{2S3h0L%eP^-`KqI&UZ9Pr{6ayhWVN#Yk}!+he{gm2xCDi4xT*W~BJ~ z?%>Qb*pw9STq`ZSSjMYs>#DpuhObm+`PSw`S4&O{ID8O+n_dWQZ*MUO99jTHdx$OK;?`M7&nKZG60F<7~%b^!WhgofV_Vc=^L>ZXDcbVne`qA5L=*E6iv4McIeh8&lN3aqsLoh>q zD1lzeH&hZ@h%G{8#!#hS&L~RE1k7~C40^GUH-+DI{D4ca&Z=-|vM z*LS=x&G14qydT#h$_%wHALe5*@=nDtuLG`t&no+|8fUyF?u&0ndDjGdQTi8Qdc`jb zth8w%CYRYW4I=sd(@IC8Od-;rg^v-n|cikbT}DS1Ma)hR$1PB znP94Q7Xlc-6}mbDICE*Wj5gF!ltnQ2!d$M)BiTN)W91R=8ID4=Wl|kZ$3SOT+y+B< z6dk??cPk`x1PJT)^FlCu!)hKW3`e~eDjV?b=^y|zK2-KYHDfg_23A`sIsM*z=*E&$ zG0IQGJ`ABFRz}IS+y)y-9SD{Iltl=Xm|=jUcI2Zx5wnl27LhU+V}?g!A+Il$63Zk? zR5}>s4iAF4gOU__o3Q}`n<5M)EJCG3z*kf^sFj{Z2m4`x5z4xRl6NKY_)^#p3o5UU z)mHLldFy`*<@3ASbBuZsZ@jCUub%Pxi>hx>EoTIMEOUT -00002Ar 1 8D 05 60 STA T1CH ; Set high byte of timer1 counter -00002Dr 1 -00002Dr 1 20 rr rr jsr clrscn -000030r 1 -000030r 1 A9 4B lda #SCREENSTARTL -000032r 1 85 52 sta CRSRPNT -000034r 1 A9 20 lda #SCREENSTARTH -000036r 1 85 53 sta CRSRPNT2 -000038r 1 A9 FF lda #$FF -00003Ar 1 8D 03 60 sta DDRA -00003Dr 1 AA tax -00003Er 1 9A txs -00003Fr 1 -00003Fr 1 A9 02 lda #2 -000041r 1 8D 00 60 sta PORTB ; Set SPI CS high -000044r 1 A9 57 lda #%01010111 ; Port B DDR for SPI -000046r 1 8D 02 60 sta DDRB -000049r 1 A9 00 lda #0 -00004Br 1 -00004Br 1 8D 03 60 sta DDRA ; Port A all inputs for keyboard -00004Er 1 85 01 sta kb_rptr ; Init keyboard pointers before enabling interrupts -000050r 1 85 00 sta kb_wptr -000052r 1 85 1D sta RF_ERR ; Reset RF error -000054r 1 58 cli -000055r 1 -000055r 1 A2 10 ldx #$10 ; Read first tx addr byte = should be default, if not then no module connected -000057r 1 20 rr rr jsr rw_reg -00005Ar 1 C9 E7 cmp #$E7 -00005Cr 1 F0 02 beq welcome -00005Er 1 E6 1D inc RF_ERR ; No module, set RF_ERR -000060r 1 welcome: -000060r 1 20 C8 FF jsr PRIMM -000063r 1 47 52 45 45 message: .asciiz "GREETINGS PROFESSOR FALKEN.", "\n", "SHALL WE PLAY A GAME?", "\n" -000067r 1 54 49 4E 47 -00006Br 1 53 20 50 52 -000096r 1 -000096r 1 welcomedone: -000096r 1 -000096r 1 2C 0B 60 bit ACR -000099r 1 30 12 bmi skiprf -00009Br 1 A5 1D lda RF_ERR -00009Dr 1 D0 0E bne skiprf -00009Fr 1 78 sei -0000A0r 1 20 rr rr jsr initrf24 -0000A3r 1 58 cli -0000A4r 1 -0000A4r 1 main: -0000A4r 1 A5 1D lda RF_ERR -0000A6r 1 D0 05 bne skiprf -0000A8r 1 2C 0B 60 bit ACR ; If ACR.7 is set then we can't use SPI since MOSI is outputting TM1. -0000ABr 1 10 03 bpl rfstuff -0000ADr 1 skiprf: -0000ADr 1 4C rr rr jmp nomsg -0000B0r 1 rfstuff: -0000B0r 1 ;jsr readrf24regs ; Debug - we can also just do an rf_nop to read rf24 status (RF_STS) -0000B0r 1 -0000B0r 1 20 rr rr jsr rf_nop ; Not debug -0000B3r 1 58 cli -0000B4r 1 ;If msg received, put it in MSGBUF -0000B4r 1 24 68 bit RF_STS -0000B6r 1 70 09 bvs gtgm ; Check irq -0000B8r 1 A5 68 lda RF_STS -0000BAr 1 C9 0E cmp #$0e ; Check if fifo empty -0000BCr 1 D0 03 bne gtgm -0000BEr 1 4C rr rr jmp nomsg; No msg received -0000C1r 1 gtgm: -0000C1r 1 78 sei -0000C2r 1 20 rr rr jsr getmessage -0000C5r 1 -0000C5r 1 A5 90 lda $90 -0000C7r 1 D0 3A bne datapacket ; Check for control message -0000C9r 1 A5 91 lda $91 -0000CBr 1 C9 31 cmp #$31 ; Trust but verify -0000CDr 1 F0 06 beq ctrlmsg -0000CFr 1 20 rr rr jsr initrf24 ; Junk package. Reset radio. -0000D2r 1 4C rr rr jmp nomsg -0000D5r 1 ctrlmsg: -0000D5r 1 A5 92 lda $92 -0000D7r 1 85 D0 sta $d0 ; Data size low byte -0000D9r 1 A5 93 lda $93 -0000DBr 1 85 D1 sta $d1 ; Data size high byte -0000DDr 1 -0000DDr 1 20 C8 FF jsr PRIMM -0000E0r 1 52 65 63 65 .asciiz "Receiving $" -0000E4r 1 69 76 69 6E -0000E8r 1 67 20 24 00 -0000ECr 1 A5 D1 lda $d1 -0000EEr 1 20 rr rr jsr printbyte -0000F1r 1 A5 D0 lda $d0 -0000F3r 1 20 rr rr jsr printbyte -0000F6r 1 20 C8 FF jsr PRIMM -0000F9r 1 20 62 79 74 .asciiz " bytes. \n" -0000FDr 1 65 73 2E 20 -000101r 1 0A 00 -000103r 1 -000103r 1 datapacket: -000103r 1 -000103r 1 getmsg: -000103r 1 E6 D2 inc $d2 -000105r 1 A5 90 lda $90 -000107r 1 C9 01 cmp #1 -000109r 1 D0 12 bne nextpacket ; Data package with ID > 1 -00010Br 1 A5 D1 lda $d1 ; Size high byte -00010Dr 1 85 48 sta SHB -00010Fr 1 E6 48 inc SHB -000111r 1 A5 D0 lda $d0 ; Size low byte -000113r 1 85 47 sta SLB -000115r 1 A9 00 lda #0 -000117r 1 85 42 sta SVP -000119r 1 A9 03 lda #3 -00011Br 1 85 43 sta SVP+1 ; Save pointer starts at $0300 -00011Dr 1 -00011Dr 1 nextpacket: -00011Dr 1 A2 02 ldx #2 -00011Fr 1 fetchpacket: -00011Fr 1 B5 90 lda $90,x -000121r 1 A0 00 ldy #0 -000123r 1 91 42 sta (SVP),y -000125r 1 E6 42 inc SVP -000127r 1 D0 02 bne nnhb -000129r 1 E6 43 inc SVP+1 -00012Br 1 nnhb: -00012Br 1 C6 47 dec SLB -00012Dr 1 D0 04 bne movealong -00012Fr 1 C6 48 dec SHB -000131r 1 F0 32 beq txdone ; 0 bytes left - All done! -000133r 1 movealong: -000133r 1 C6 48 dec SHB -000135r 1 A5 48 lda SHB -000137r 1 20 rr rr jsr printbyte -00013Ar 1 E6 48 inc SHB -00013Cr 1 A5 47 lda SLB -00013Er 1 20 rr rr jsr printbyte -000141r 1 20 C8 FF jsr PRIMM -000144r 1 20 62 79 74 .asciiz " bytes left(hex)" -000148r 1 65 73 20 6C -00014Cr 1 65 66 74 28 -000155r 1 A5 52 lda CRSRPNT -000157r 1 29 C0 and #%11000000 ; keep only section bits -000159r 1 09 0B ora #LINESTART ; -00015Br 1 85 52 sta CRSRPNT -00015Dr 1 E8 inx -00015Er 1 E0 20 cpx #32 -000160r 1 D0 BD bne fetchpacket -000162r 1 4C rr rr jmp main -000165r 1 -000165r 1 txdone: -000165r 1 A9 03 lda #3 -000167r 1 85 31 sta $31 -000169r 1 A9 00 lda #0 -00016Br 1 85 01 sta kb_rptr ; Reset the keyboard pointers here. -00016Dr 1 85 00 sta kb_wptr -00016Fr 1 85 30 sta $30 -000171r 1 A5 52 lda CRSRPNT ; Let's return to beginning of the line -000173r 1 29 C0 and #%11000000 ; keep only section bits -000175r 1 09 0B ora #LINESTART ; -000177r 1 85 52 sta CRSRPNT -000179r 1 A5 48 lda SHB -00017Br 1 20 rr rr jsr printbyte -00017Er 1 A5 47 lda SLB -000180r 1 20 rr rr jsr printbyte -000183r 1 20 C8 FF jsr PRIMM -000186r 1 20 62 79 74 .asciiz " bytes left(hex)\n" -00018Ar 1 65 73 20 6C -00018Er 1 65 66 74 28 -000198r 1 20 C8 FF jsr PRIMM -00019Br 1 0A 44 61 74 .asciiz "\nData loaded into RAM at $0300. \nPress F5 or type \"run\" to start executing at $0300. \n" -00019Fr 1 61 20 6C 6F -0001A3r 1 61 64 65 64 -0001F2r 1 20 rr rr jsr rf_nop -0001F5r 1 58 cli -0001F6r 1 -0001F6r 1 nomsg: -0001F6r 1 -0001F6r 1 24 1B bit CRSRT -0001F8r 1 30 09 bmi isneg -0001FAr 1 A5 02 lda kb_flags -0001FCr 1 29 7F and #$7f -0001FEr 1 85 02 sta kb_flags ; Reset flip -000200r 1 38 sec -000201r 1 B0 1C bcs skippedcursor ; BRA -000203r 1 -000203r 1 isneg: -000203r 1 24 02 bit kb_flags ; Same as last? -000205r 1 10 02 bpl flip -000207r 1 30 16 bmi skippedcursor ; We already flipped -000209r 1 -000209r 1 flip: -000209r 1 -000209r 1 A5 02 lda kb_flags -00020Br 1 49 40 eor #CRSR -00020Dr 1 09 80 ora #CRSRF ; Set flip bit -00020Fr 1 85 02 sta kb_flags -000211r 1 24 02 bit kb_flags -000213r 1 70 06 bvs cursoroff -000215r 1 cursoron: -000215r 1 A9 5F lda #'_' -000217r 1 91 52 sta (CRSRPNT),y -000219r 1 D0 04 bne cursordone ; BRA -00021Br 1 cursoroff: -00021Br 1 A5 1C lda CRSRCHR -00021Dr 1 91 52 sta (CRSRPNT),y -00021Fr 1 cursordone: -00021Fr 1 skippedcursor: -00021Fr 1 -00021Fr 1 -00021Fr 1 .if DEBUG -00021Fr 1 lda CRSRPNT ; Save cursor.. -00021Fr 1 sta $54 -00021Fr 1 pha -00021Fr 1 lda CRSRPNT2 -00021Fr 1 sta $55 -00021Fr 1 pha -00021Fr 1 LDA #$7c ; Print timer in upper right corner of screen -00021Fr 1 sta CRSRPNT -00021Fr 1 lda #$27 -00021Fr 1 sta CRSRPNT2 -00021Fr 1 lda MILLISH -00021Fr 1 jsr printbyte -00021Fr 1 -00021Fr 1 LDA #$74 ; Debug ERRS and show cursor pointer next to timer on screen -00021Fr 1 sta CRSRPNT -00021Fr 1 lda #$27 -00021Fr 1 sta CRSRPNT2 -00021Fr 1 lda ERRS -00021Fr 1 jsr printbyte -00021Fr 1 inc CRSRPNT -00021Fr 1 lda $55 -00021Fr 1 jsr printbyte -00021Fr 1 lda $54 -00021Fr 1 jsr printbyte -00021Fr 1 -00021Fr 1 pla -00021Fr 1 sta CRSRPNT2 -00021Fr 1 pla -00021Fr 1 sta CRSRPNT -00021Fr 1 .endif -00021Fr 1 78 sei -000220r 1 A5 01 lda kb_rptr -000222r 1 C5 00 cmp kb_wptr -000224r 1 58 cli -000225r 1 D0 03 bne key_pressed -000227r 1 4C rr rr jmp main -00022Ar 1 -00022Ar 1 key_pressed: -00022Ar 1 A6 01 ldx kb_rptr -00022Cr 1 BD 00 02 lda kb_buffer, x -00022Fr 1 C9 0A cmp #$0a ; enter - go new line -000231r 1 F0 61 beq enter_pressed -000233r 1 C9 1B cmp #$1b ; escape - clear display -000235r 1 F0 5A beq esc -000237r 1 C9 08 cmp #$08 -000239r 1 F0 3B beq back -00023Br 1 C9 FE cmp #$FE ;Scan code $05 -00023Dr 1 F0 4F beq f1 -00023Fr 1 C9 FD cmp #$FD -000241r 1 F0 48 beq f2 -000243r 1 C9 FC cmp #$FC -000245r 1 F0 41 beq f3 -000247r 1 C9 FB cmp #$FB -000249r 1 F0 3A beq f4 -00024Br 1 C9 FA cmp #$FA -00024Dr 1 F0 33 beq f5 -00024Fr 1 C9 F9 cmp #$F9 -000251r 1 F0 2C beq f6 -000253r 1 C9 F8 cmp #$F8 -000255r 1 F0 25 beq f7 -000257r 1 C9 F7 cmp #$F7 -000259r 1 F0 1E beq f8 -00025Br 1 -00025Br 1 C9 F2 cmp #L_ARR_KEY -00025Dr 1 F0 14 beq golrudarr -00025Fr 1 C9 F1 cmp #R_ARR_KEY -000261r 1 F0 10 beq golrudarr -000263r 1 C9 F4 cmp #UP_ARR_KEY -000265r 1 F0 0C beq golrudarr -000267r 1 C9 F3 cmp #DN_ARR_KEY -000269r 1 F0 08 beq golrudarr -00026Br 1 -00026Br 1 20 rr rr jsr printk -00026Er 1 printedkey: -00026Er 1 E6 01 inc kb_rptr -000270r 1 -000270r 1 4C rr rr jmp main -000273r 1 -000273r 1 golrudarr: -000273r 1 4C rr rr jmp lrudarr -000276r 1 -000276r 1 back: -000276r 1 4C rr rr jmp backspace_pressed -000279r 1 f8: -000279r 1 4C rr rr jmp f8_pressed -00027Cr 1 f7: -00027Cr 1 4C rr rr jmp f7_pressed -00027Fr 1 f6: -00027Fr 1 4C rr rr jmp f6_pressed -000282r 1 f5: -000282r 1 4C rr rr jmp f5_pressed -000285r 1 f4: -000285r 1 4C rr rr jmp f4_pressed -000288r 1 -000288r 1 f3: -000288r 1 4C rr rr jmp f3_pressed -00028Br 1 f2: -00028Br 1 4C rr rr jmp f2_pressed -00028Er 1 -00028Er 1 f1: -00028Er 1 4C rr rr jmp f1_pressed -000291r 1 -000291r 1 esc: -000291r 1 4C rr rr jmp esc_pressed -000294r 1 -000294r 1 enter_pressed: -000294r 1 A5 1C lda CRSRCHR -000296r 1 91 52 sta (CRSRPNT),y -000298r 1 A2 00 ldx #0 -00029Ar 1 BD 00 02 lda kb_buffer,x -00029Dr 1 parsecmd: -00029Dr 1 C9 72 cmp #'r' -00029Fr 1 F0 0F beq read -0002A1r 1 C9 77 cmp #'w' -0002A3r 1 F0 50 beq write -0002A5r 1 C9 48 cmp #'H' -0002A7r 1 F0 0A beq strangegame -0002A9r 1 C9 68 cmp #'h' -0002ABr 1 F0 06 beq strangegame -0002ADr 1 4C rr rr jmp err -0002B0r 1 read: -0002B0r 1 4C rr rr jmp jread -0002B3r 1 -0002B3r 1 strangegame: -0002B3r 1 20 C8 FF jsr PRIMM -0002B6r 1 0A 41 20 53 .asciiz "\n", "A STRANGE GAME. THE ONLY WINNING ", "\n", "MOVE IS NOT TO PLAY.", "\n" -0002BAr 1 54 52 41 4E -0002BEr 1 47 45 20 47 -0002EFr 1 wrotegtnw: -0002EFr 1 4C rr rr jmp eom -0002F2r 1 -0002F2r 1 jerr: -0002F2r 1 4C rr rr jmp err -0002F5r 1 -0002F5r 1 write: -0002F5r 1 A0 FF ldy #$FF -0002F7r 1 E8 inx -0002F8r 1 BD 00 02 lda kb_buffer,x -0002FBr 1 C9 72 cmp #'r' -0002FDr 1 D0 F3 bne jerr -0002FFr 1 A2 06 ldx #6 -000301r 1 20 rr rr jsr asctobyte -000304r 1 85 59 sta MONH ; Maybe we'll find a better place -000306r 1 E8 inx -000307r 1 20 rr rr jsr asctobyte -00030Ar 1 85 58 sta MONL -00030Cr 1 nextbyte: -00030Cr 1 E8 inx -00030Dr 1 BD 00 02 lda kb_buffer,x -000310r 1 C9 20 cmp #' ' -000312r 1 F0 F8 beq nextbyte -000314r 1 C5 2E cmp '.' -000316r 1 F0 F4 beq nextbyte -000318r 1 C5 2C cmp ',' -00031Ar 1 F0 F0 beq nextbyte -00031Cr 1 C5 24 cmp '$' -00031Er 1 F0 EC beq nextbyte -000320r 1 C9 0A cmp #$0a -000322r 1 F0 09 beq exitwrite -000324r 1 -000324r 1 stbyte: -000324r 1 20 rr rr jsr asctobyte -000327r 1 C8 iny -000328r 1 91 58 sta (MONL),y -00032Ar 1 4C rr rr jmp nextbyte -00032Dr 1 exitwrite: -00032Dr 1 ; inc kb_rptr -00032Dr 1 ; jmp newmon ; Previous behavior -00032Dr 1 20 C8 FF jsr PRIMM -000330r 1 0A 57 72 6F .asciiz "\nWrote " -000334r 1 74 65 20 00 -000338r 1 C8 iny -000339r 1 98 tya -00033Ar 1 20 rr rr jsr printbyte -00033Dr 1 20 C8 FF jsr PRIMM -000340r 1 20 62 79 74 .asciiz " bytes. Press F1 to enter monitor\n" -000344r 1 65 73 2E 20 -000348r 1 50 72 65 73 -000363r 1 4C rr rr jmp eom -000366r 1 -000366r 1 -000366r 1 jread: -000366r 1 E8 inx -000367r 1 BD 00 02 lda kb_buffer,x -00036Ar 1 C9 75 cmp #'u' -00036Cr 1 F0 6B beq run -00036Er 1 C9 65 cmp #'e' -000370r 1 D0 41 bne err -000372r 1 A2 05 ldx #5 -000374r 1 20 rr rr jsr asctobyte -000377r 1 85 59 sta MONH -000379r 1 E8 inx -00037Ar 1 20 rr rr jsr asctobyte -00037Dr 1 85 58 sta MONL -00037Fr 1 ; inc kb_rptr -00037Fr 1 ; jmp newmon -00037Fr 1 A0 00 ldy #0 -000381r 1 B1 58 lda (MONL),y -000383r 1 20 C8 FF jsr PRIMM -000386r 1 0A 52 65 61 .asciiz "\nRead: " -00038Ar 1 64 3A 20 00 -00038Er 1 20 rr rr jsr printbyte -000391r 1 20 C8 FF jsr PRIMM -000394r 1 0A 50 72 65 .asciiz "\nPress F1 to enter monitor\n" -000398r 1 73 73 20 46 -00039Cr 1 31 20 74 6F -0003B0r 1 4C rr rr jmp eom -0003B3r 1 err: -0003B3r 1 A5 52 lda CRSRPNT -0003B5r 1 20 rr rr jsr crnl -0003B8r 1 85 52 sta CRSRPNT -0003BAr 1 90 06 bcc clkbptr -0003BCr 1 E6 53 inc CRSRPNT2 -0003BEr 1 B1 52 lda (CRSRPNT),y -0003C0r 1 85 1C sta CRSRCHR -0003C2r 1 clkbptr: -0003C2r 1 ; Clear keyboard pointers if this is the end of message -0003C2r 1 E6 01 inc kb_rptr -0003C4r 1 78 sei -0003C5r 1 A5 01 lda kb_rptr -0003C7r 1 C5 00 cmp kb_wptr -0003C9r 1 58 cli -0003CAr 1 D0 0A bne notdone -0003CCr 1 eom: -0003CCr 1 B1 52 lda (CRSRPNT),y ; Save new char under cursor ; Here or in err:? -0003CEr 1 85 1C sta CRSRCHR -0003D0r 1 A9 00 lda #0 -0003D2r 1 85 01 sta kb_rptr -0003D4r 1 85 00 sta kb_wptr -0003D6r 1 notdone: -0003D6r 1 4C rr rr jmp main -0003D9r 1 -0003D9r 1 run: -0003D9r 1 A9 00 lda #0 -0003DBr 1 85 01 sta kb_rptr -0003DDr 1 85 00 sta kb_wptr -0003DFr 1 6C 30 00 jmp ($0030) -0003E2r 1 -0003E2r 1 esc_pressed: -0003E2r 1 20 rr rr jsr clrscn -0003E5r 1 A9 4B lda #SCREENSTARTL -0003E7r 1 85 52 sta CRSRPNT -0003E9r 1 A9 20 lda #SCREENSTARTH -0003EBr 1 85 53 sta CRSRPNT2 -0003EDr 1 4C rr rr jmp clkbptr -0003F0r 1 -0003F0r 1 backspace_pressed: -0003F0r 1 A0 00 ldy #0 -0003F2r 1 A5 1C lda CRSRCHR -0003F4r 1 91 52 sta (CRSRPNT),y -0003F6r 1 normcrsr: -0003F6r 1 C6 52 dec CRSRPNT -0003F8r 1 A5 52 lda CRSRPNT -0003FAr 1 C9 FF cmp #255 -0003FCr 1 D0 02 bne notunder -0003FEr 1 C6 53 dec CRSRPNT2 -000400r 1 notunder: -000400r 1 A9 20 lda #' ' -000402r 1 91 52 sta (CRSRPNT),y -000404r 1 C6 01 dec kb_rptr -000406r 1 C6 00 dec kb_wptr -000408r 1 C6 00 dec kb_wptr -00040Ar 1 4C rr rr jmp main -00040Dr 1 -00040Dr 1 f1_pressed: -00040Dr 1 A9 00 lda #0 -00040Fr 1 85 01 sta kb_rptr -000411r 1 85 00 sta kb_wptr -000413r 1 20 rr rr jsr clrscn -000416r 1 4C rr rr jmp monmon -000419r 1 -000419r 1 f2_pressed: -000419r 1 -000419r 1 4C rr rr jmp eom -00041Cr 1 -00041Cr 1 f3_pressed: -00041Cr 1 -00041Cr 1 4C rr rr jmp eom -00041Fr 1 -00041Fr 1 f4_pressed: -00041Fr 1 20 rr rr jsr getmessage -000422r 1 20 C8 FF jsr PRIMM -000425r 1 47 6F 74 20 .asciiz "Got message!" -000429r 1 6D 65 73 73 -00042Dr 1 61 67 65 21 -000432r 1 20 rr rr jsr newline -000435r 1 4C rr rr jmp eom -000438r 1 -000438r 1 f5_pressed: -000438r 1 20 rr rr jsr rf_nop -00043Br 1 4C rr rr jmp run -00043Er 1 -00043Er 1 f6_pressed: -00043Er 1 20 rr rr jsr readrf24regs -000441r 1 20 C8 FF jsr PRIMM -000444r 1 52 65 61 64 .asciiz "Read RF24 configuration!" -000448r 1 20 52 46 32 -00044Cr 1 34 20 63 6F -00045Dr 1 20 rr rr jsr newline -000460r 1 4C rr rr jmp eom -000463r 1 -000463r 1 f7_pressed: -000463r 1 20 rr rr jsr initrf24 -000466r 1 4C rr rr jmp eom -000469r 1 -000469r 1 f8_pressed: -000469r 1 4C rr rr jmp reset -00046Cr 1 -00046Cr 1 newmon: -00046Cr 1 20 rr rr jsr clrscn -00046Fr 1 monmon: -00046Fr 1 A9 1D lda #29 -000471r 1 85 46 sta MONCNT -000473r 1 A5 59 lda MONH -000475r 1 48 pha -000476r 1 A5 58 lda MONL -000478r 1 48 pha -000479r 1 20 rr rr jsr mon -00047Cr 1 68 pla -00047Dr 1 85 58 sta MONL -00047Fr 1 68 pla -000480r 1 85 59 sta MONH -000482r 1 -000482r 1 78 sei -000483r 1 A5 01 lda kb_rptr -000485r 1 C5 00 cmp kb_wptr -000487r 1 58 cli -000488r 1 F0 E5 beq monmon -00048Ar 1 A6 01 ldx kb_rptr -00048Cr 1 E6 01 inc kb_rptr -00048Er 1 BD 00 02 lda kb_buffer, x -000491r 1 C9 1B cmp #ESC_KEY ; escape - exit -000493r 1 F0 4B beq exitmon -000495r 1 C9 F6 cmp #PGUP_KEY -000497r 1 F0 39 beq monpgup -000499r 1 C9 F5 cmp #PGDN_KEY -00049Br 1 F0 27 beq monpgdn -00049Dr 1 C9 F4 cmp #UP_ARR_KEY -00049Fr 1 F0 15 beq monup -0004A1r 1 C9 F3 cmp #DN_ARR_KEY -0004A3r 1 F0 03 beq mondn -0004A5r 1 -0004A5r 1 ; Let's loop here until keypress -0004A5r 1 4C rr rr jmp monmon ; No data - restart monitor -0004A8r 1 -0004A8r 1 mondn: ; Arrow keys invert the natural direction because pressing down naturally means you want to see another line -0004A8r 1 18 clc -0004A9r 1 A5 58 lda MONL -0004ABr 1 69 08 adc #$08 -0004ADr 1 85 58 sta MONL -0004AFr 1 90 BE bcc monmon -0004B1r 1 E6 59 inc MONH -0004B3r 1 4C rr rr jmp monmon -0004B6r 1 -0004B6r 1 monup: ; Pressing up means you want to see a line higher up == lower -0004B6r 1 38 sec -0004B7r 1 A5 58 lda MONL -0004B9r 1 E9 08 sbc #$08 -0004BBr 1 85 58 sta MONL -0004BDr 1 B0 B0 bcs monmon -0004BFr 1 C6 59 dec MONH -0004C1r 1 4C rr rr jmp monmon -0004C4r 1 -0004C4r 1 -0004C4r 1 monpgdn: -0004C4r 1 18 clc -0004C5r 1 A5 58 lda MONL -0004C7r 1 69 D8 adc #$D8 -0004C9r 1 85 58 sta MONL -0004CBr 1 90 A2 bcc monmon -0004CDr 1 E6 59 inc MONH -0004CFr 1 4C rr rr jmp monmon -0004D2r 1 -0004D2r 1 monpgup: -0004D2r 1 38 sec -0004D3r 1 A5 58 lda MONL -0004D5r 1 E9 D8 sbc #$D8 -0004D7r 1 85 58 sta MONL -0004D9r 1 B0 94 bcs monmon -0004DBr 1 C6 59 dec MONH -0004DDr 1 4C rr rr jmp monmon -0004E0r 1 -0004E0r 1 exitmon: -0004E0r 1 20 rr rr jsr clrscn ; Clear screen on monitor exit -0004E3r 1 A9 4B lda #SCREENSTARTL -0004E5r 1 85 52 sta CRSRPNT -0004E7r 1 A9 20 lda #SCREENSTARTH -0004E9r 1 85 53 sta CRSRPNT2 -0004EBr 1 4C rr rr jmp eom -0004EEr 1 ; lda #0 -0004EEr 1 ; sta MILLISH -0004EEr 1 -0004EEr 1 asctohex: -0004EEr 1 C9 60 cmp #$60 -0004F0r 1 90 02 bcc caps -0004F2r 1 E9 21 sbc #$21 -0004F4r 1 caps: -0004F4r 1 E9 2F sbc #'0'-1 -0004F6r 1 C9 0A cmp #10 -0004F8r 1 90 02 bcc nothex -0004FAr 1 E9 07 sbc #7 -0004FCr 1 nothex: -0004FCr 1 60 rts -0004FDr 1 -0004FDr 1 clrscn: -0004FDr 1 A9 00 lda #0 -0004FFr 1 85 52 sta CRSRPNT -000501r 1 A9 20 lda #$20 ; Clear before screen to after screen -000503r 1 85 53 sta CRSRPNT2 -000505r 1 A0 00 ldy #0 -000507r 1 98 tya -000508r 1 A2 09 ldx #9 -00050Ar 1 clrloop: -00050Ar 1 91 52 sta (CRSRPNT),y -00050Cr 1 C8 iny -00050Dr 1 D0 FB bne clrloop -00050Fr 1 E6 53 inc CRSRPNT2 ; increasing HI-byte of the clearing address. -000511r 1 CA dex -000512r 1 D0 F6 bne clrloop -000514r 1 60 rts -000515r 1 -000515r 1 crnl: ; Carriage return new line - needs cursor pointer in A -000515r 1 29 C0 and #%11000000 ; keep only section bits -000517r 1 09 0B ora #LINESTART ; -000519r 1 18 clc -00051Ar 1 69 40 adc #$40 ; CR -00051Cr 1 60 rts -00051Dr 1 -00051Dr 1 newline: -00051Dr 1 A5 52 lda CRSRPNT -00051Fr 1 20 rr rr jsr crnl -000522r 1 85 52 sta CRSRPNT -000524r 1 29 E0 and #$E0 ; If msn is 0 then ++section -000526r 1 D0 02 bne newlinedone -000528r 1 E6 53 inc CRSRPNT2 -00052Ar 1 newlinedone: -00052Ar 1 60 rts -00052Br 1 -00052Br 1 -00052Br 1 hextoa: -00052Br 1 ; wozmon-style -00052Br 1 ; and #%00001111 ; Mask LSD for hex print. -00052Br 1 ; Already masked when we get here. -00052Br 1 09 30 ora #'0' ; Add '0'. -00052Dr 1 C9 3A cmp #'9'+1 ; Is it a decimal digit? -00052Fr 1 90 02 bcc ascr ; Yes, output it. -000531r 1 69 06 adc #$06 ; Add offset for letter. -000533r 1 ascr: -000533r 1 60 rts -000534r 1 -000534r 1 -000534r 1 bytetoa: ;This SR puts LSB in A and MSB in HXH - as ascii using hextoa. -000534r 1 48 pha -000535r 1 4A lsr -000536r 1 4A lsr -000537r 1 4A lsr -000538r 1 4A lsr -000539r 1 18 clc -00053Ar 1 20 rr rr jsr hextoa -00053Dr 1 85 44 sta HXH -00053Fr 1 68 pla -000540r 1 29 0F and #$0F -000542r 1 20 rr rr jsr hextoa -000545r 1 60 rts -000546r 1 -000546r 1 asctobyte: ; Reads two hex characters from keyboard buffer, x indexed, and returns a byte in A -000546r 1 BD 00 02 lda kb_buffer,x ; MSD -000549r 1 20 rr rr jsr asctohex -00054Cr 1 0A asl a -00054Dr 1 0A asl a -00054Er 1 0A asl a -00054Fr 1 0A asl a -000550r 1 85 50 sta TMP -000552r 1 E8 inx -000553r 1 BD 00 02 lda kb_buffer,x ; LSD -000556r 1 20 rr rr jsr asctohex -000559r 1 05 50 ora TMP -00055Br 1 ; Return value in A -00055Br 1 60 rts -00055Cr 1 -00055Cr 1 mon: -00055Cr 1 ; Print line starting address -00055Cr 1 ; Print 8 ascii hex bytes separated by ' ' -00055Cr 1 ; Print same 8 bytes as ASCII -00055Cr 1 ;newline -00055Cr 1 ;Let's start by resetting start pos -00055Cr 1 A9 20 lda #SCREENSTARTH ; If we are, then reset to top of screen -00055Er 1 85 53 sta CRSRPNT2 -000560r 1 A9 4B lda #SCREENSTARTL -000562r 1 85 52 sta CRSRPNT -000564r 1 nextline: -000564r 1 A2 08 ldx #8 -000566r 1 A9 24 lda #'$' -000568r 1 20 rr rr jsr printa -00056Br 1 A5 59 lda MONH -00056Dr 1 20 rr rr jsr printbyte -000570r 1 A5 58 lda MONL -000572r 1 20 rr rr jsr printbyte -000575r 1 A9 3A lda #':' -000577r 1 20 rr rr jsr printa -00057Ar 1 A9 20 lda #' ' -00057Cr 1 20 rr rr jsr printa -00057Fr 1 A0 00 ldy #0 -000581r 1 nexthex: -000581r 1 B1 58 lda (MONL),y -000583r 1 95 5A sta ABUF,x -000585r 1 20 rr rr jsr printbyte -000588r 1 E6 52 inc CRSRPNT ; Make a space -00058Ar 1 E6 58 inc MONL -00058Cr 1 D0 02 bne notof -00058Er 1 E6 59 inc MONH -000590r 1 notof: -000590r 1 CA dex -000591r 1 D0 EE bne nexthex -000593r 1 ; Print ascii -000593r 1 A2 08 ldx #8 -000595r 1 printabuf: -000595r 1 B5 5A lda ABUF,x -000597r 1 20 rr rr jsr printa -00059Ar 1 CA dex -00059Br 1 D0 F8 bne printabuf -00059Dr 1 ; Get ready for a new line -00059Dr 1 A5 52 lda CRSRPNT -00059Fr 1 20 rr rr jsr crnl ; Carriage Return New Line -0005A2r 1 85 52 sta CRSRPNT -0005A4r 1 29 E0 and #$E0 ; If msn is 0 then ++section -0005A6r 1 D0 02 bne gonext -0005A8r 1 E6 53 inc CRSRPNT2 -0005AAr 1 gonext: -0005AAr 1 C6 46 dec MONCNT -0005ACr 1 D0 B6 bne nextline ; Was this the last line? No, nextline. -0005AEr 1 60 rts -0005AFr 1 -0005AFr 1 printbyte: -0005AFr 1 20 rr rr jsr bytetoa -0005B2r 1 48 pha -0005B3r 1 A5 44 lda HXH -0005B5r 1 20 rr rr jsr printa -0005B8r 1 68 pla -0005B9r 1 20 rr rr jsr printa -0005BCr 1 60 rts -0005BDr 1 -0005BDr 1 printa: -0005BDr 1 85 51 sta TMP2 ; save A -0005BFr 1 98 TYA ; copy Y -0005C0r 1 48 PHA ; save Y -0005C1r 1 8A TXA ; copy X -0005C2r 1 48 PHA ; save X -0005C3r 1 A0 00 ldy #0 -0005C5r 1 A5 51 lda TMP2 -0005C7r 1 -0005C7r 1 C9 0A cmp #$0A ; Do we need this? -0005C9r 1 F0 0D beq printnewline -0005CBr 1 -0005CBr 1 91 52 sta (CRSRPNT),y -0005CDr 1 E6 52 inc CRSRPNT -0005CFr 1 D0 02 bne printeda -0005D1r 1 E6 53 inc CRSRPNT2 -0005D3r 1 printeda: -0005D3r 1 68 PLA ; pull value -0005D4r 1 AA TAX ; restore X -0005D5r 1 68 PLA ; pull value -0005D6r 1 A8 TAY ; restore Y -0005D7r 1 60 rts -0005D8r 1 printnewline: -0005D8r 1 20 rr rr jsr newline -0005DBr 1 4C rr rr jmp printeda -0005DEr 1 -0005DEr 1 lrudarr: -0005DEr 1 ; bit MILLIS -0005DEr 1 ; bpl correctchr Not worth testing... -0005DEr 1 48 pha -0005DFr 1 A0 00 ldy #0 -0005E1r 1 A5 1C lda CRSRCHR ; Make sure we leave the character in the position and not the cursor. -0005E3r 1 91 52 sta (CRSRPNT),y -0005E5r 1 correctchr: -0005E5r 1 68 pla -0005E6r 1 C9 F1 cmp #R_ARR_KEY -0005E8r 1 F0 27 beq rarr -0005EAr 1 C9 F4 cmp #UP_ARR_KEY -0005ECr 1 F0 37 beq uparr -0005EEr 1 C9 F3 cmp #DN_ARR_KEY -0005F0r 1 F0 40 beq dnarr -0005F2r 1 larr: -0005F2r 1 C6 52 dec CRSRPNT ; Move cursor left -0005F4r 1 A5 52 lda CRSRPNT -0005F6r 1 C9 FF cmp #255 -0005F8r 1 D0 02 bne checkline -0005FAr 1 C6 53 dec CRSRPNT2 -0005FCr 1 checkline: -0005FCr 1 29 3F and #%00111111 -0005FEr 1 C9 0B cmp #LINESTART -000600r 1 B0 3E bcs checkedarrows -000602r 1 A5 52 lda CRSRPNT -000604r 1 38 sec -000605r 1 E9 40 sbc #$40 -000607r 1 09 3E ora #$3E -000609r 1 85 52 sta CRSRPNT -00060Br 1 B0 33 bcs checkedarrows -00060Dr 1 C6 53 dec CRSRPNT2 -00060Fr 1 90 2F bcc checkedarrows ; BRA -000611r 1 rarr: -000611r 1 E6 52 inc CRSRPNT -000613r 1 A5 52 lda CRSRPNT -000615r 1 29 3F and #$3F ; Discard MS bits since we only care about current line -000617r 1 C9 3F cmp #$3f -000619r 1 90 25 bcc checkedarrows ; A < 62 == Not Front porch -00061Br 1 20 rr rr jsr newline -00061Er 1 09 0B ora #LINESTART -000620r 1 85 52 sta CRSRPNT -000622r 1 4C rr rr jmp checkedarrows -000625r 1 uparr: -000625r 1 A5 52 lda CRSRPNT -000627r 1 38 sec -000628r 1 E9 40 sbc #$40 -00062Ar 1 85 52 sta CRSRPNT -00062Cr 1 B0 12 bcs checkedarrows -00062Er 1 C6 53 dec CRSRPNT2 -000630r 1 90 0E bcc checkedarrows ; BRA -000632r 1 dnarr: -000632r 1 A5 52 lda CRSRPNT -000634r 1 18 clc -000635r 1 69 40 adc #$40 -000637r 1 85 52 sta CRSRPNT -000639r 1 90 05 bcc checkedarrows -00063Br 1 E6 53 inc CRSRPNT2 -00063Dr 1 4C rr rr jmp checkedarrows -000640r 1 checkedarrows: -000640r 1 20 rr rr jsr checkbottom -000643r 1 B1 52 lda (CRSRPNT),y ; Save new char under cursor -000645r 1 85 1C sta CRSRCHR -000647r 1 A5 02 lda kb_flags -000649r 1 09 40 ora #CRSR -00064Br 1 85 02 sta kb_flags -00064Dr 1 A9 5F lda #'_' -00064Fr 1 91 52 sta (CRSRPNT),y -000651r 1 4C rr rr jmp printedkey -000654r 1 -000654r 1 printk: -000654r 1 48 pha -000655r 1 checkl: ; This is user input, so we have to make sure we don't hit VGA blanking by mistake -000655r 1 A5 52 lda CRSRPNT -000657r 1 29 3F and #$3F ; Discard MS bits since we only care about current line -000659r 1 C9 3F cmp #$3F -00065Br 1 90 03 bcc chs ; A < 62 == Not Front porch -00065Dr 1 20 rr rr jsr newline -000660r 1 chs: -000660r 1 C9 0B cmp #LINESTART -000662r 1 B0 04 bcs chs2 -000664r 1 05 52 ora CRSRPNT -000666r 1 85 52 sta CRSRPNT -000668r 1 chs2: -000668r 1 20 rr rr jsr checkbottom -00066Br 1 rpa: -00066Br 1 68 pla -00066Cr 1 20 rr rr jsr printa -00066Fr 1 60 rts -000670r 1 -000670r 1 -000670r 1 checkbottom: -000670r 1 A5 53 lda CRSRPNT2 ; Check if we're off screen -000672r 1 C9 20 cmp #$20 -000674r 1 90 0A bcc resetcursor ; Off screen -000676r 1 C9 27 cmp #$27 -000678r 1 90 0E bcc checkedbottom ; if we're not -00067Ar 1 A5 52 lda CRSRPNT ; Check LSB as well if we're above $2700 -00067Cr 1 C9 80 cmp #$80 -00067Er 1 90 08 bcc checkedbottom -000680r 1 resetcursor: -000680r 1 A9 20 lda #SCREENSTARTH ; If we are, then reset to top of screen ; Or start scrolling? -000682r 1 85 53 sta CRSRPNT2 -000684r 1 A9 4B lda #SCREENSTARTL -000686r 1 85 52 sta CRSRPNT -000688r 1 checkedbottom: -000688r 1 60 rts -000689r 1 -000689r 1 ; IRQ vector points here ; Thanks to Ben Eater for a very useful PS2->Ascii interface -000689r 1 ;IFR is IRQ Tl T2 CBl CB2 SR CA1 CA2 -000689r 1 irq: -000689r 1 48 pha -00068Ar 1 ; lda #%00100000 ; We need T2 to fire super fast, so we check it first. -00068Ar 1 ; and IFR -00068Ar 1 ; bne t2_irq -00068Ar 1 -00068Ar 1 ;Alt approach -00068Ar 1 ; lda IER -00068Ar 1 ; and IFR ; We only care about active IRQ's -00068Ar 1 ; asl ; IRQ in C -00068Ar 1 ; asl ; T1 flag in C -00068Ar 1 ; bcs t1_irq -00068Ar 1 ; asl ; T2 -00068Ar 1 ; bcs t2_irq -00068Ar 1 ; asl ; CB1 -00068Ar 1 ; asl ; CB2 -00068Ar 1 ; asl ; SR -00068Ar 1 ; asl ; CA1 -00068Ar 1 ; bcs keyboard_interrupt -00068Ar 1 ; asl ; CA2 -00068Ar 1 -00068Ar 1 2C 0D 60 bit IFR ; T1 as fast as possible -00068Dr 1 70 3D bvs t1_irq -00068Fr 1 -00068Fr 1 8A txa -000690r 1 48 pha -000691r 1 BA tsx -000692r 1 BD 03 01 lda $0103,x ; Pull status register off stack and check break flag -000695r 1 29 10 and #$10 -000697r 1 D0 0A bne hitbrk -000699r 1 -000699r 1 AD 0D 60 lda IFR -00069Cr 1 29 02 and #2 -00069Er 1 D0 12 bne keyboard_interrupt -0006A0r 1 E6 1F inc ERRS ;Should never end up here... -0006A2r 1 40 rti -0006A3r 1 -0006A3r 1 hitbrk: -0006A3r 1 ; jmp reset -0006A3r 1 E6 08 inc $08 -0006A5r 1 A9 rr lda #
main -0006ACr 1 9D 05 01 sta $105,x -0006AFr 1 4C rr rr jmp exit -0006B2r 1 -0006B2r 1 keyboard_interrupt: -0006B2r 1 A5 02 lda kb_flags -0006B4r 1 29 01 and #RELEASE ; check if we're releasing a key -0006B6r 1 F0 38 beq read_key ; otherwise, read the key -0006B8r 1 -0006B8r 1 A5 02 lda kb_flags -0006BAr 1 49 01 eor #RELEASE ; flip the releasing bit -0006BCr 1 85 02 sta kb_flags -0006BEr 1 AD 01 60 lda PORTA ; read key value that's being released -0006C1r 1 C9 12 cmp #$12 ; left shift -0006C3r 1 F0 1F beq shift_up -0006C5r 1 C9 59 cmp #$59 ; right shift -0006C7r 1 F0 1B beq shift_up -0006C9r 1 4C rr rr jmp exit -0006CCr 1 -0006CCr 1 t1_irq: -0006CCr 1 2C 04 60 bit T1CL ; Clear irq -0006CFr 1 -0006CFr 1 gmillis: -0006CFr 1 E6 1B inc CRSRT -0006D1r 1 E6 1B inc CRSRT -0006D3r 1 E6 40 inc MILLIS -0006D5r 1 D0 02 bne t1_irq_exit -0006D7r 1 E6 41 inc MILLIS+1 -0006D9r 1 t1_irq_exit: -0006D9r 1 68 pla -0006DAr 1 40 rti -0006DBr 1 -0006DBr 1 -0006DBr 1 -0006DBr 1 ; t2_irq: -0006DBr 1 ; lda #%00010000 -0006DBr 1 ; eor PORTB -0006DBr 1 ; sta PORTB -0006DBr 1 ; lda #0 -0006DBr 1 ; sta T2CH ; pla + rti should be enough time for IRQ line to go high again before leaving IRQ - at 2 mhz anyway -0006DBr 1 ; pla -0006DBr 1 ; rti -0006DBr 1 -0006DBr 1 ekey_up: -0006DBr 1 A5 02 lda kb_flags -0006DDr 1 29 FB and #%11111011 ; Turn off ecode -0006DFr 1 85 02 sta kb_flags -0006E1r 1 4C rr rr jmp exit -0006E4r 1 -0006E4r 1 shift_up: -0006E4r 1 A5 02 lda kb_flags -0006E6r 1 49 02 eor #SHIFT ; flip the shift bit -0006E8r 1 85 02 sta kb_flags -0006EAr 1 4C rr rr jmp exit -0006EDr 1 -0006EDr 1 break: -0006EDr 1 4C rr rr jmp noclear -0006F0r 1 -0006F0r 1 read_key: -0006F0r 1 AD 01 60 lda PORTA -0006F3r 1 C9 77 cmp #$77 ; Either numlock or pause/break - we reset without clearing ram -0006F5r 1 F0 F6 beq break -0006F7r 1 C9 F0 cmp #$f0 ; if releasing a key -0006F9r 1 F0 4C beq key_release ; set the releasing bit -0006FBr 1 C9 12 cmp #$12 ; left shift -0006FDr 1 F0 3F beq shift_down -0006FFr 1 C9 59 cmp #$59 ; right shift -000701r 1 F0 3B beq shift_down -000703r 1 C9 E0 cmp #$E0 -000705r 1 F0 16 beq ekey_down -000707r 1 -000707r 1 AA tax -000708r 1 A5 02 lda kb_flags -00070Ar 1 29 04 and #ECODE -00070Cr 1 D0 1A bne ecode_key -00070Er 1 A5 02 lda kb_flags -000710r 1 29 02 and #SHIFT -000712r 1 D0 1D bne shifted_key -000714r 1 -000714r 1 8A txa -000715r 1 85 04 sta kb_last -000717r 1 BD rr rr lda keymap, x ; map to character code -00071Ar 1 4C rr rr jmp push_key -00071Dr 1 -00071Dr 1 ekey_down: -00071Dr 1 85 04 sta kb_last -00071Fr 1 A5 02 lda kb_flags -000721r 1 09 04 ora #ECODE -000723r 1 85 02 sta kb_flags -000725r 1 4C rr rr jmp exit -000728r 1 -000728r 1 ecode_key: -000728r 1 8A txa -000729r 1 85 04 sta kb_last -00072Br 1 BD rr rr lda keymap_ecode,x -00072Er 1 4C rr rr jmp push_key -000731r 1 -000731r 1 shifted_key: -000731r 1 BD rr rr lda keymap_shifted, x ; map to character code -000734r 1 -000734r 1 push_key: -000734r 1 A6 00 ldx kb_wptr -000736r 1 9D 00 02 sta kb_buffer, x -000739r 1 E6 00 inc kb_wptr -00073Br 1 4C rr rr jmp exit -00073Er 1 -00073Er 1 shift_down: -00073Er 1 A5 02 lda kb_flags -000740r 1 09 02 ora #SHIFT -000742r 1 85 02 sta kb_flags -000744r 1 4C rr rr jmp exit -000747r 1 -000747r 1 key_release: -000747r 1 A5 02 lda kb_flags -000749r 1 09 01 ora #RELEASE -00074Br 1 85 02 sta kb_flags -00074Dr 1 A5 04 lda kb_last -00074Fr 1 C9 E0 cmp #$e0 -000751r 1 D0 03 bne exit -000753r 1 4C rr rr jmp ekey_up -000756r 1 -000756r 1 exit: -000756r 1 68 pla -000757r 1 AA tax -000758r 1 68 pla -000759r 1 40 rti -00075Ar 1 -00075Ar 1 -00075Ar 1 ; Thanks to Ben Eater for a very useful PS2->Ascii interface -00075Ar 1 keymap: -00075Ar 1 3F 3F 3F FA .byte "???",$FA,$FC,$FE,$FD,"???",$F7,$F9,$FB," `?" ; 00-0F -00075Er 1 FC FE FD 3F -000762r 1 3F 3F F7 F9 -00076Ar 1 ;F1, F2, F3,F4, F5, F6, F7, F8 key bound to $FE, $FD, $FC, $FB, $FA, $F9, $F8, $F7 for no particular reason -00076Ar 1 3F 3F 3F 3F .byte "?????q1???zsaw2?" ; 10-1F -00076Er 1 3F 71 31 3F -000772r 1 3F 3F 7A 73 -00077Ar 1 3F 63 78 64 .byte "?cxde43?? vftr5?" ; 20-2F -00077Er 1 65 34 33 3F -000782r 1 3F 20 76 66 -00078Ar 1 3F 6E 62 68 .byte "?nbhgy6???mju78?" ; 30-3F -00078Er 1 67 79 36 3F -000792r 1 3F 3F 6D 6A -00079Ar 1 3F 2C 6B 69 .byte "?,kio09??./l;p-?" ; 40-4F -00079Er 1 6F 30 39 3F -0007A2r 1 3F 2E 2F 6C -0007AAr 1 3F 3F 27 3F .byte "??\'?[=????",$0a,"]?\\??" ; 50-5F -0007AEr 1 5B 3D 3F 3F -0007B2r 1 3F 3F 0A 5D -0007BAr 1 3F 3F 3F 3F .byte "??????",$08,"??1?47???" ; 60-6F -0007BEr 1 3F 3F 08 3F -0007C2r 1 3F 31 3F 34 -0007CAr 1 30 2E 32 35 .byte "0.2568",ESC_KEY,"??+3-*9??" ; 70-7F -0007CEr 1 36 38 1B 3F -0007D2r 1 3F 2B 33 2D -0007DAr 1 3F 3F 3F F8 .byte "???",$F8,"????????????" ; 80-8F $F8 = F7 key -0007DEr 1 3F 3F 3F 3F -0007E2r 1 3F 3F 3F 3F -0007EAr 1 3F 3F 3F 3F .byte "????????????????" ; 90-9F -0007EEr 1 3F 3F 3F 3F -0007F2r 1 3F 3F 3F 3F -0007FAr 1 3F 3F 3F 3F .byte "????????????????" ; A0-AF -0007FEr 1 3F 3F 3F 3F -000802r 1 3F 3F 3F 3F -00080Ar 1 3F 3F 3F 3F .byte "????????????????" ; B0-BF -00080Er 1 3F 3F 3F 3F -000812r 1 3F 3F 3F 3F -00081Ar 1 3F 3F 3F 3F .byte "????????????????" ; C0-CF -00081Er 1 3F 3F 3F 3F -000822r 1 3F 3F 3F 3F -00082Ar 1 3F 3F 3F 3F .byte "????????????????" ; D0-DF -00082Er 1 3F 3F 3F 3F -000832r 1 3F 3F 3F 3F -00083Ar 1 3F 3F 3F 3F .byte "????????????????" ; E0-EF -00083Er 1 3F 3F 3F 3F -000842r 1 3F 3F 3F 3F -00084Ar 1 3F 3F 3F 3F .byte "????????????????" ; F0-FF -00084Er 1 3F 3F 3F 3F -000852r 1 3F 3F 3F 3F -00085Ar 1 keymap_shifted: -00085Ar 1 3F 3F 3F 3F .byte "????????????? ~?" ; 00-0F -00085Er 1 3F 3F 3F 3F -000862r 1 3F 3F 3F 3F -00086Ar 1 3F 3F 3F 3F .byte "?????Q!???ZSAW@?" ; 10-1F -00086Er 1 3F 51 21 3F -000872r 1 3F 3F 5A 53 -00087Ar 1 3F 43 58 44 .byte "?CXDE#$?? VFTR%?" ; 20-2F -00087Er 1 45 23 24 3F -000882r 1 3F 20 56 46 -00088Ar 1 3F 4E 42 48 .byte "?NBHGY^???MJU&*?" ; 30-3F -00088Er 1 47 59 5E 3F -000892r 1 3F 3F 4D 4A -00089Ar 1 3F 3C 4B 49 .byte "??L:P_?" ; 40-4F -00089Er 1 4F 29 28 3F -0008A2r 1 3F 3E 3F 4C -0008AAr 1 3F 3F 22 3F .byte "??\"?{+?????}?|??" ; 50-5F -0008AEr 1 7B 2B 3F 3F -0008B2r 1 3F 3F 3F 7D -0008BAr 1 3F 3F 3F 3F .byte "?????????1?47???" ; 60-6F -0008BEr 1 3F 3F 3F 3F -0008C2r 1 3F 31 3F 34 -0008CAr 1 30 2E 32 35 .byte "0.2568???+3-*9??" ; 70-7F -0008CEr 1 36 38 3F 3F -0008D2r 1 3F 2B 33 2D -0008DAr 1 3F 3F 3F F8 .byte "???",$F8,"????????????" ; 80-8F $F8 = F7 key -0008DEr 1 3F 3F 3F 3F -0008E2r 1 3F 3F 3F 3F -0008EAr 1 3F 3F 3F 3F .byte "????????????????" ; 90-9F -0008EEr 1 3F 3F 3F 3F -0008F2r 1 3F 3F 3F 3F -0008FAr 1 3F 3F 3F 3F .byte "????????????????" ; A0-AF -0008FEr 1 3F 3F 3F 3F -000902r 1 3F 3F 3F 3F -00090Ar 1 3F 3F 3F 3F .byte "????????????????" ; B0-BF -00090Er 1 3F 3F 3F 3F -000912r 1 3F 3F 3F 3F -00091Ar 1 3F 3F 3F 3F .byte "????????????????" ; C0-CF -00091Er 1 3F 3F 3F 3F -000922r 1 3F 3F 3F 3F -00092Ar 1 3F 3F 3F 3F .byte "????????????????" ; D0-DF -00092Er 1 3F 3F 3F 3F -000932r 1 3F 3F 3F 3F -00093Ar 1 3F 3F 3F 3F .byte "????????????????" ; E0-EF -00093Er 1 3F 3F 3F 3F -000942r 1 3F 3F 3F 3F -00094Ar 1 3F 3F 3F 3F .byte "????????????????" ; F0-FF -00094Er 1 3F 3F 3F 3F -000952r 1 3F 3F 3F 3F -00095Ar 1 keymap_ecode: -00095Ar 1 30 30 30 30 .byte "0000000000000000" ; 00-0F -00095Er 1 30 30 30 30 -000962r 1 30 30 30 30 -00096Ar 1 30 30 30 30 .byte "0000000000000000" ; 10-1F -00096Er 1 30 30 30 30 -000972r 1 30 30 30 30 -00097Ar 1 30 30 30 30 .byte "0000000000000000" ; 20-2F -00097Er 1 30 30 30 30 -000982r 1 30 30 30 30 -00098Ar 1 30 30 30 30 .byte "0000000000000000" ; 30-3F -00098Er 1 30 30 30 30 -000992r 1 30 30 30 30 -00099Ar 1 30 30 30 30 .byte "0000000000000000" ; 40-4F -00099Er 1 30 30 30 30 -0009A2r 1 30 30 30 30 -0009AAr 1 30 30 30 30 .byte "0000000000000000" ; 50-5F -0009AEr 1 30 30 30 30 -0009B2r 1 30 30 30 30 -0009BAr 1 30 31 32 33 .byte "0123456789A",L_ARR_KEY, HOME_KEY, "DEF" ; 60-6F -0009BEr 1 34 35 36 37 -0009C2r 1 38 39 41 F2 -0009CAr 1 30 31 F3 33 .byte "01",DN_ARR_KEY,"3",R_ARR_KEY, UP_ARR_KEY, "6789",PGDN_KEY,"BC",PGUP_KEY,"EF" ; 70-7F $F6 = PGUP(7D), $F5 = PGDOWN(7A), $F4 = UP Arr.(75), Down arr.(72) = $F3 -0009CEr 1 F1 F4 36 37 -0009D2r 1 38 39 F5 42 -0009DAr 1 30 30 30 30 .byte "0000000000000000" ; 80-8F $F8 = F7 key -0009DEr 1 30 30 30 30 -0009E2r 1 30 30 30 30 -0009EAr 1 3F 3F 3F 3F .byte "????????????????" ; 90-9F -0009EEr 1 3F 3F 3F 3F -0009F2r 1 3F 3F 3F 3F -0009FAr 1 3F 3F 3F 3F .byte "????????????????" ; A0-AF -0009FEr 1 3F 3F 3F 3F -000A02r 1 3F 3F 3F 3F -000A0Ar 1 3F 3F 3F 3F .byte "????????????????" ; B0-BF -000A0Er 1 3F 3F 3F 3F -000A12r 1 3F 3F 3F 3F -000A1Ar 1 3F 3F 3F 3F .byte "????????????????" ; C0-CF -000A1Er 1 3F 3F 3F 3F -000A22r 1 3F 3F 3F 3F -000A2Ar 1 3F 3F 3F 3F .byte "????????????????" ; D0-DF -000A2Er 1 3F 3F 3F 3F -000A32r 1 3F 3F 3F 3F -000A3Ar 1 3F 3F 3F 3F .byte "????????????????" ; E0-EF -000A3Er 1 3F 3F 3F 3F -000A42r 1 3F 3F 3F 3F -000A4Ar 1 3F 3F 3F 3F .byte "????????????????" ; F0-FF -000A4Er 1 3F 3F 3F 3F -000A52r 1 3F 3F 3F 3F -000A5Ar 1 -000A5Ar 1 -000A5Ar 1 spibyte: -000A5Ar 1 ;SR borrowed from http://www.cyberspice.org.uk/blog/2009/08/25/bit-banging-spi-in-6502-assembler/ -000A5Ar 1 ;I think GW used this way too? -000A5Ar 1 ;Bit 7 – MISO (Input data from the slave to the computer) ; We can swap these by doing bvc spibyte2 instead of bpl spibyte2 and fixing DDRB - we should prefer PB7 to be an output and PB6 an input because of T1 and T2 hw features(T1 out to PB7 and T2 in to PB6) -000A5Ar 1 ;Bit 6 – MOSI (Output data from the computer to the slave) -000A5Ar 1 ;Bit 1 – SCS (Output slave chip select) -000A5Ar 1 ;Bit 0 – SCLK (Output SPI clock) -000A5Ar 1 85 56 sta outb -000A5Cr 1 AD 00 60 lda PORTB -000A5Fr 1 29 3C and #%00111100 -000A61r 1 ; ora CE - No longer needed when we save all bits -000A61r 1 85 1E sta $1E -000A63r 1 8A TXA -000A64r 1 48 PHA -000A65r 1 98 TYA -000A66r 1 48 PHA -000A67r 1 -000A67r 1 A0 00 ldy #0 -000A69r 1 84 57 sty inb -000A6Br 1 A2 08 ldx #8 -000A6Dr 1 spibytelp: -000A6Dr 1 98 tya ; (2) set A to 0 -000A6Er 1 06 56 asl outb ; (5) shift MSB in to carry -000A70r 1 90 02 bcc spibyte1 ; (2) -000A72r 1 09 40 ora #mosi ; (2) set MOSI if MSB set -000A74r 1 spibyte1: -000A74r 1 05 1E ora $1E ; Debug - set preserved port B bits -000A76r 1 8D 00 60 sta uservia ; (4) output (MOSI, SCS low, SCLK low) -000A79r 1 98 tya ; (2) set A to 0 (Do it here for delay reasons) -000A7Ar 1 EE 00 60 inc uservia ; (6) toggle clock high (SCLK is bit 0) -000A7Dr 1 18 clc ; (2) clear C (Not affected by bit) -000A7Er 1 2C 00 60 bit uservia ; (4) copy MISO (bit 7) in to N (and MOSI in to V) -000A81r 1 10 01 bpl spibyte2 ; (2) bvc if miso bit 6, bpl if miso bit 7 -000A83r 1 38 sec ; (2) set C if MISO bit is set (i.e. N) / Or V for miso on bit 6 -000A84r 1 spibyte2: -000A84r 1 26 57 rol inb ; (5) copy C (i.e. MISO bit) in to bit 0 of result -000A86r 1 CE 00 60 dec uservia ; (6) toggle clock low (SCLK is bit 0) -000A89r 1 CA dex ; (2) next bit -000A8Ar 1 D0 E1 bne spibytelp ; (2) loop -000A8Cr 1 -000A8Cr 1 68 PLA -000A8Dr 1 A8 TAY -000A8Er 1 68 PLA -000A8Fr 1 AA TAX -000A90r 1 -000A90r 1 A5 57 lda inb ; get result -000A92r 1 60 rts -000A93r 1 -000A93r 1 rf_nop: -000A93r 1 AD 00 60 lda PORTB -000A96r 1 29 FD and #%11111101 ; Set CS Low -000A98r 1 8D 00 60 sta PORTB -000A9Br 1 A9 FF lda #$FF -000A9Dr 1 20 rr rr jsr spibyte -000AA0r 1 85 68 sta RF_STS -000AA2r 1 AD 00 60 lda PORTB -000AA5r 1 09 02 ora #2 ; Set CS high -000AA7r 1 8D 00 60 sta PORTB -000AAAr 1 60 rts -000AABr 1 -000AABr 1 ;rw_reg takes command in x and data in A. Returns data in A. -000AABr 1 rw_reg: -000AABr 1 48 pha -000AACr 1 AD 00 60 lda PORTB -000AAFr 1 29 FD and #%11111101 ; Set CS Low -000AB1r 1 8D 00 60 sta PORTB -000AB4r 1 -000AB4r 1 8A txa -000AB5r 1 20 rr rr jsr spibyte -000AB8r 1 85 68 sta RF_STS -000ABAr 1 -000ABAr 1 68 pla -000ABBr 1 20 rr rr jsr spibyte -000ABEr 1 ; A has return value -000ABEr 1 48 pha -000ABFr 1 -000ABFr 1 AD 00 60 lda PORTB -000AC2r 1 09 02 ora #2 ; Set CS high -000AC4r 1 8D 00 60 sta PORTB -000AC7r 1 -000AC7r 1 68 pla ; A has return value -000AC8r 1 60 rts -000AC9r 1 -000AC9r 1 -000AC9r 1 initrf24: -000AC9r 1 A2 E2 ldx #$E2 ; Flush RX -000ACBr 1 A9 00 lda #0 -000ACDr 1 20 rr rr jsr rw_reg -000AD0r 1 -000AD0r 1 A2 27 ldx #$27 ; Clear RX_DR -000AD2r 1 A9 40 lda #$40 -000AD4r 1 20 rr rr jsr rw_reg -000AD7r 1 -000AD7r 1 A2 3D ldx #$3D ; Set FEATURE register -000AD9r 1 A9 04 lda #4 -000ADBr 1 20 rr rr jsr rw_reg -000ADEr 1 -000ADEr 1 A2 3C ldx #$3C ; Set DYNDP register -000AE0r 1 A9 3F lda #$3F -000AE2r 1 20 rr rr jsr rw_reg -000AE5r 1 -000AE5r 1 A2 20 ldx #$20 ; Power up, RX -000AE7r 1 A9 0F lda #$0F -000AE9r 1 20 rr rr jsr rw_reg -000AECr 1 -000AECr 1 AD 00 60 lda PORTB ; Set CE high -000AEFr 1 09 04 ora #4 ; CE is PB.2 -000AF1r 1 8D 00 60 sta PORTB -000AF4r 1 60 rts -000AF5r 1 -000AF5r 1 readrf24regs: -000AF5r 1 A2 1F ldx #31 -000AF7r 1 readrf24: -000AF7r 1 A9 00 lda #0 ; Let's read first byte of all registers -000AF9r 1 20 rr rr jsr rw_reg -000AFCr 1 95 70 sta $70,x -000AFEr 1 CA dex -000AFFr 1 10 F6 bpl readrf24 -000B01r 1 60 rts -000B02r 1 -000B02r 1 getmessage: -000B02r 1 ; Here we read the msg -000B02r 1 A2 60 ldx #$60 ; Get top of RX fifo length - R_RX_PL_WID -000B04r 1 A9 00 lda #0 -000B06r 1 20 rr rr jsr rw_reg -000B09r 1 85 81 sta $81 ; Overwrite P0 payload length location in mem -000B0Br 1 -000B0Br 1 A0 00 ldy #0 -000B0Dr 1 AD 00 60 lda PORTB -000B10r 1 29 FD and #%11111101 ; Set CS Low -000B12r 1 8D 00 60 sta PORTB -000B15r 1 readpayload: -000B15r 1 A9 61 lda #$61 -000B17r 1 20 rr rr jsr spibyte -000B1Ar 1 85 68 sta RF_STS -000B1Cr 1 bytes: -000B1Cr 1 20 rr rr jsr spibyte -000B1Fr 1 99 90 00 sta $90, y ; -000B22r 1 C8 iny -000B23r 1 C4 81 cpy $81 -000B25r 1 D0 F5 bne bytes -000B27r 1 AD 00 60 lda PORTB -000B2Ar 1 09 02 ora #2 ; Set CS high -000B2Cr 1 8D 00 60 sta PORTB -000B2Fr 1 -000B2Fr 1 A2 27 ldx #$27 ; Clear RX_DR -000B31r 1 A9 40 lda #$40 -000B33r 1 20 rr rr jsr rw_reg -000B36r 1 60 rts -000B37r 1 -000B37r 1 -000B37r 1 ; Inline printing routine from http://6502.org/source/io/primm.htm -000B37r 1 .segment "PRIMM" -000000r 1 .org $ffc8 -00FFC8 1 PRIMM: -00FFC8 1 48 PHA ; save A -00FFC9 1 98 TYA ; copy Y -00FFCA 1 48 PHA ; save Y -00FFCB 1 8A TXA ; copy X -00FFCC 1 48 PHA ; save X -00FFCD 1 BA TSX ; get stack pointer -00FFCE 1 BD 04 01 LDA $0104,X ; get return address low byte (+4 to -00FFD1 1 ; correct pointer) -00FFD1 1 85 BC STA $BC ; save in page zero -00FFD3 1 BD 05 01 LDA $0105,X ; get return address high byte (+5 to -00FFD6 1 ; correct pointer) -00FFD6 1 85 BD STA $BD ; save in page zero -00FFD8 1 A0 01 LDY #$01 ; set index (+1 to allow for return -00FFDA 1 ; address offset) -00FFDA 1 PRIM2: -00FFDA 1 B1 BC LDA ($BC),Y ; get byte from string -00FFDC 1 F0 06 BEQ PRIM3 ; exit if null (end of text) -00FFDE 1 -00FFDE 1 20 rr rr JSR printk ; else display character -00FFE1 1 C8 INY ; increment index -00FFE2 1 D0 F6 BNE PRIM2 ; loop (exit if 256th character) -00FFE4 1 -00FFE4 1 PRIM3: -00FFE4 1 98 TYA ; copy index -00FFE5 1 18 CLC ; clear carry -00FFE6 1 65 BC ADC $BC ; add string pointer low byte to index -00FFE8 1 9D 04 01 STA $0104,X ; put on stack as return address low byte -00FFEB 1 ; (+4 to correct pointer, X is unchanged) -00FFEB 1 A9 00 LDA #$00 ; clear A -00FFED 1 65 BD ADC $BD ; add string pointer high byte -00FFEF 1 9D 05 01 STA $0105,X ; put on stack as return address high byte -00FFF2 1 ; (+5 to correct pointer, X is unchanged) -00FFF2 1 68 PLA ; pull value -00FFF3 1 AA TAX ; restore X -00FFF4 1 68 PLA ; pull value -00FFF5 1 A8 TAY ; restore Y -00FFF6 1 68 PLA ; restore A -00FFF7 1 60 RTS -00FFF8 1 -00FFF8 1 -00FFF8 1 .segment "VECTORS" -000000r 1 .ORG $fffa -00FFFA 1 rr rr rr rr .word nmi,reset,irq -00FFFE 1 rr rr -010000 1 .reloc -010000 1 diff --git a/build/userland.bin b/build/userland.bin deleted file mode 100644 index 52e74b4c7c56fd7c3fab748c1732ab78006e1015..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118 zcmY#5@joQBxFj<#UBNjZR8LQji=jbQ;lzKBOhpCHT!q9u1wUW^U4e0G}-+ AzW@LL diff --git a/build/userland.o b/build/userland.o deleted file mode 100644 index fe0c5c048e558b5dd439d8eabafee687d27e8651..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 629 zcmYk3&2Q5{5XEPl*x7DAngXXvNZTtCR!EgXZ=^|7Dmig*8V-m9CNb?w#1XMeQBQo_ z;KmgY{5kv|oH!zGT;NSoB4p3+y=ACAl(yw_?pcZ`NZ4hXoS`K|Xlz&Ng~(zXB6nw04*!!6e2byjIDX}#)pNevhC zlSMo;xDEBxrZziGrs91QCHdJR6)y+R=Vk`)#x}*#F%XZSh~Y%_tGGxi3*`5Z7`i6B zBB%+r1QkI^P!}jcRiFi%0=aLhlRnFm#j`k_`q}m*-fNi$P5;)uxoHk3^f}gw`0NkRrrQtcwpr4xs84w>{u4p`G5#3w zLC>8T*34wKR0>k?4$Pb(d(WLaCwCHV7J%70n?3?I0gTuMZ;d%5n*1)k*9QK|U7{f$ zm|zz>?1$LvS?dK=Kow90Q~^~$6}S!x@SQDfwBo(*e$`PGPzC-=1?2gVvkR6UTZi`1 z!NHaQ#Eh41VeqkF7&XrB7Eq7*936#4wJ|-*Yi1mL6M&jt=AKFn(p@D->f_ zCoi|=Fr`BsRRL9?uYlC<>v)PMc!(cc@;?>fLHqSG42NGWUqZFWaoMjSjbA z)ql$B|BP5*%Gq(mJ}2kPrP!&pe?;s*aThpZtn%$)iZ_^Z7R5a{h`4u_aVNOcp`x#& zF#5sw$j9pS8_YuP@cCbG>xld9l3daLFyvVhuurcOX5tBFb@w!ds!1jV%yqovy=b_ajHhHaJdXuF(bqiWN+t!|+qB(bj1#=a z0cT-8Co~;0p8^l#o`(cWGAUqfq*;t3adtB1Rlr{3EOmDy1+J|ECfk0!y~XhSyR{dn)Y>`wTXtz; p*E+Nm4z?U8+H#z@{KJs*oTkDlJ+=;cg-t&MSQ&Is1^%f5zX41tI)DHG diff --git a/hardware/6502.kicad_pcb b/hardware/6502.kicad_pcb old mode 100644 new mode 100755 diff --git a/hardware/6502.kicad_prl b/hardware/6502.kicad_prl old mode 100644 new mode 100755 diff --git a/hardware/6502.kicad_pro b/hardware/6502.kicad_pro old mode 100644 new mode 100755 diff --git a/hardware/6502.kicad_sch b/hardware/6502.kicad_sch index 24e3284..8b75f06 100644 --- a/hardware/6502.kicad_sch +++ b/hardware/6502.kicad_sch @@ -8059,6 +8059,17 @@ (pin "1" (uuid bfd30562-0bc0-49a5-a0a7-944d231ca7d6)) (pin "2" (uuid f4f9341b-4249-4037-ba1f-954c6a7c258a)) (pin "3" (uuid cd1db6e1-1071-4c4c-a88b-0bad42e620c6)) + (pin "4" (uuid 20ac7a70-5cb9-4418-b061-8e4ee8d36b79)) + (pin "5" (uuid 18406746-0f9d-4d88-9ef2-8423e08576f0)) + (pin "6" (uuid dfdaa22a-0489-48da-8a56-737e4c4366e1)) + (pin "10" (uuid 54562a16-6662-4d1b-9b50-45ed0ae36481)) + (pin "8" (uuid 168a0226-3f44-46ec-a72a-15290137bd66)) + (pin "9" (uuid a1bbbcb7-3394-4d47-a7e2-c5aca5915b62)) + (pin "11" (uuid ccefc75b-fd16-4e82-963f-281710a98051)) + (pin "12" (uuid 318b1c02-8f98-40e0-8672-6e5f766110ad)) + (pin "13" (uuid 2b7fcec9-f103-4c1e-8056-817283941746)) + (pin "14" (uuid cd008119-17d3-4098-90f3-4ace8a150683)) + (pin "7" (uuid ae0ad2a8-816d-4ed9-8122-ce73b249d5bc)) ) (symbol (lib_id "power:+5V") (at 152.4 149.225 0) (unit 1) @@ -8176,8 +8187,20 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 140.335 71.12 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid fc48681f-9397-420c-a160-4d40e8208b22)) + (pin "2" (uuid d70b07f0-7794-49ac-aab9-bba7744f562e)) + (pin "3" (uuid 5bc4bec0-de82-443a-a56c-94cfb0912fcb)) + (pin "4" (uuid 86b1650c-27f6-4516-8b60-2a6a434a183e)) + (pin "5" (uuid 86a6b9b9-3de3-44b4-b763-98233419d240)) + (pin "6" (uuid c645efa1-5cf3-4d27-be7a-303fdbabecd8)) + (pin "8" (uuid 446c08d7-8986-4d18-8f0f-30d613706dfc)) + (pin "9" (uuid d18dfc73-4f65-499b-85e8-0e65b03fabb2)) + (pin "10" (uuid 111c2bf6-9865-4ea4-a9f9-1702355a872d)) + (pin "11" (uuid e0130066-f120-45ab-8ca4-de7cd402c362)) (pin "12" (uuid 4cb278b9-5f0e-4929-b305-2dbe0041007f)) (pin "13" (uuid ac1a6de4-f98a-4999-92e4-990cc22dfc36)) + (pin "14" (uuid 1fcbe337-d147-4e02-846e-7f1ec4528bd0)) + (pin "7" (uuid 75080b0b-6140-45af-8605-622af6de8bea)) ) (symbol (lib_id "74xx:74HC14") (at 273.05 30.48 0) (unit 7) @@ -8195,6 +8218,18 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC14" (id 3) (at 273.05 30.48 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid 3fc3a397-ec3a-4314-aa6a-44925ef4cbbe)) + (pin "2" (uuid 1fbda89d-82ba-4f0a-b113-988f269883dc)) + (pin "3" (uuid 90dda447-2750-402e-9a9e-df264b0c0bc9)) + (pin "4" (uuid 27b5a6bb-bf08-4e16-abae-290afd548f36)) + (pin "5" (uuid 961e37cd-505c-40aa-baef-0a680d665d8f)) + (pin "6" (uuid 2fa17bd4-23af-495d-84c8-95f8b6beb5a8)) + (pin "8" (uuid 76d9276c-0bff-44cf-81b5-cc0de1c97f12)) + (pin "9" (uuid e03d7bc9-2bd0-42b5-96ba-4ca164fb4c50)) + (pin "10" (uuid b6fc4182-53d3-44c8-80e1-53918daa9139)) + (pin "11" (uuid e721274f-b458-4ab5-8d4d-44bffaffa7c9)) + (pin "12" (uuid cf672f56-2d68-4c6c-a783-23e23c937b72)) + (pin "13" (uuid 74796a55-82bc-4f74-9e9c-c7cb232069e3)) (pin "14" (uuid ebe69a37-389a-4f07-94a9-ba58a50a841f)) (pin "7" (uuid 4431f28a-0bb1-48a2-8a24-cce56357192c)) ) @@ -8244,6 +8279,18 @@ ) (pin "1" (uuid 4c6183b2-1531-4fe4-9639-f33f16838668)) (pin "2" (uuid 4c114985-cde9-43a3-bedd-7466dfc7ba52)) + (pin "3" (uuid e584287a-6232-40cf-a082-8dea5986b945)) + (pin "4" (uuid 5f48357f-c353-4808-811f-74ed7ffaa7c6)) + (pin "5" (uuid 9d7822b4-339e-43c0-b115-d4b16189cc93)) + (pin "6" (uuid e20b2d01-f0a2-4c23-a8cf-4b8afc873d5b)) + (pin "8" (uuid 796db869-0097-47e7-801f-cda0ea750e7a)) + (pin "9" (uuid d827258b-50c4-46fc-b3a5-4b37a0dc9ee6)) + (pin "10" (uuid 14be568d-2e52-4aed-b81b-dddc75cbdd07)) + (pin "11" (uuid 13b44301-e8b6-44a2-a883-05207972227f)) + (pin "12" (uuid b9086bc6-f594-4bed-870a-3805d2b7840b)) + (pin "13" (uuid f3948324-ce3a-4786-8e6f-06525e602a33)) + (pin "14" (uuid cfb29de7-5d87-4b80-bc4c-399de4fa7fae)) + (pin "7" (uuid fae21104-6d06-49da-9a8b-b74f2e8a3574)) ) (symbol (lib_id "74xx:74HC14") (at 66.04 153.67 0) (unit 2) @@ -8257,8 +8304,20 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC14" (id 3) (at 66.04 153.67 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid 372eb80c-116e-4b19-abae-92abb6d35e81)) + (pin "2" (uuid e4da03fa-98df-4f6e-905c-6338b6b66b7e)) (pin "3" (uuid 1875ed27-8f54-4440-af1f-5c44fde2f421)) (pin "4" (uuid 33f8c7ce-dd90-4899-ae0a-390dde545011)) + (pin "5" (uuid 87098d73-0d35-4a8f-aa7f-ade9272dc761)) + (pin "6" (uuid ae39d000-e1da-4f40-b995-9482be0f1de9)) + (pin "8" (uuid 1d64fb24-a192-4276-96bc-30811b5dbebf)) + (pin "9" (uuid fb847691-a236-48f0-9f44-65a418dab540)) + (pin "10" (uuid 6f9df934-4054-4d8a-b681-1657a9279a59)) + (pin "11" (uuid 755ad553-6d1c-4617-8f56-6e9d2cd4d51f)) + (pin "12" (uuid ff355897-ead3-4120-8dcb-1bb00ca0370c)) + (pin "13" (uuid 09ab9b2a-26ef-4942-ba61-f8a6673867aa)) + (pin "14" (uuid 0270c5c4-c68e-47b7-a6f1-50651981be2d)) + (pin "7" (uuid 73917165-0d82-4691-91ca-2eb1b8bbe05e)) ) (symbol (lib_id "74xx:74HC14") (at 47.625 166.37 0) (unit 3) @@ -8272,8 +8331,20 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC14" (id 3) (at 47.625 166.37 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid 869eca01-6daf-4865-b0e8-f32a37e3566c)) + (pin "2" (uuid aff48226-032f-4dae-a36a-f783c883d29a)) + (pin "3" (uuid 5ce23b6b-bd8c-44d9-a91a-04985175beda)) + (pin "4" (uuid 8338e846-812b-41c6-ad83-c397e10d62a8)) (pin "5" (uuid fbe349b8-6613-46c9-a301-327049793221)) (pin "6" (uuid c6df7b2f-a0be-45fb-95ae-8cf21cc99814)) + (pin "8" (uuid b0150d2b-85b3-4331-b915-3086266e149b)) + (pin "9" (uuid 95ef63d7-a7a2-4718-a404-714eb6412ee9)) + (pin "10" (uuid d1e5ef30-0c74-4f13-89aa-ab10a4b051eb)) + (pin "11" (uuid 69b62df2-080c-4fbc-a9ff-a83e6181a480)) + (pin "12" (uuid 007d1aa0-0a35-4c79-bc8d-e834bd3664f0)) + (pin "13" (uuid 4ce0e23d-dbb3-4d2d-b549-50bee3d446b9)) + (pin "14" (uuid b4ddef27-9e8b-4c9f-ba6b-bbd22b45d51a)) + (pin "7" (uuid b06d0f18-c7c1-4973-8806-d4fa87df5412)) ) (symbol (lib_id "74xx:74HC14") (at 66.675 166.37 0) (unit 4) @@ -8287,8 +8358,20 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC14" (id 3) (at 66.675 166.37 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid 51957904-d257-41c5-8124-dcc959977230)) + (pin "2" (uuid d039718a-5f93-4d2d-b957-a40b11652989)) + (pin "3" (uuid feb38b83-6d1c-4038-a568-147252bfbe12)) + (pin "4" (uuid 8217ca7d-977c-4985-a684-eea82e5113b4)) + (pin "5" (uuid a8f15f81-c64f-4a6a-8184-eabd4f5daa6f)) + (pin "6" (uuid 4821a0f1-0757-49b5-bc91-a0ccf3e9f548)) (pin "8" (uuid 8afb7fba-e0eb-4707-b1a6-17cb14b18f71)) (pin "9" (uuid 3adc3d74-18df-4608-aa1e-e7f3ec1be490)) + (pin "10" (uuid debb48c2-0606-4abf-b967-c5cd55bd0d6c)) + (pin "11" (uuid c36de2cd-62e2-4141-94ed-8598a4021bc0)) + (pin "12" (uuid d0583253-7f1c-498c-afba-93bf9b28c781)) + (pin "13" (uuid 150efa79-228d-47e2-89bf-fd8363924d0f)) + (pin "14" (uuid 9b7be77a-2656-471e-885e-8c6c59fe59f7)) + (pin "7" (uuid f87c0f2d-c04c-46a9-b58e-d24759249a2d)) ) (symbol (lib_id "74xx:74HC14") (at 47.625 179.07 0) (unit 5) @@ -8302,8 +8385,20 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC14" (id 3) (at 47.625 179.07 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid 2b626917-a177-4b61-81a1-fd2a69eb9f9a)) + (pin "2" (uuid 1b2c37f1-2f41-4eef-9163-74d93552bfe4)) + (pin "3" (uuid d2fb2423-7bf4-4222-994d-25a9683eab67)) + (pin "4" (uuid d875da09-775c-45a3-be03-ee257d013433)) + (pin "5" (uuid 5fb34c2f-8685-4006-a370-36a5c54e8539)) + (pin "6" (uuid 7d1347db-292a-4095-85d4-76da0d3f5524)) + (pin "8" (uuid 6647797e-9035-4291-9495-e7c7119a3fd1)) + (pin "9" (uuid 6db64f46-9e2d-4604-b932-a6f7a66a0d14)) (pin "10" (uuid 19e3e88e-2a3f-4cb8-aaea-925fe4d19978)) (pin "11" (uuid 2f943fdc-c035-4c1d-be5f-6eb74ca954ce)) + (pin "12" (uuid a8b74637-32ba-4af1-a789-5bc40c758bab)) + (pin "13" (uuid 2335745d-4b86-4498-9fad-6d2729137fe3)) + (pin "14" (uuid b4e13e2a-b1f5-417e-8d80-b3e4cb5e5e55)) + (pin "7" (uuid f2471ff2-4a7f-4d16-9dbe-788438e7c5fb)) ) (symbol (lib_id "74xx:74HC14") (at 73.66 179.07 0) (unit 6) @@ -8317,8 +8412,20 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74HC14" (id 3) (at 73.66 179.07 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid d3006e26-11be-4e7f-bb12-87a5d58c58e2)) + (pin "2" (uuid 4fbf7295-52ca-4bf6-b81b-f54f8903681f)) + (pin "3" (uuid 98a311ac-38c5-418c-9c79-a5650558a468)) + (pin "4" (uuid 462f3238-fbc0-42d6-b76e-a63d29cc32e1)) + (pin "5" (uuid 0887e962-8f08-410d-9589-9308e22a7936)) + (pin "6" (uuid e4d2c258-274a-4398-b6a0-528d81ed8508)) + (pin "8" (uuid 24edf58e-a5f8-4553-99c5-1a11459c3da5)) + (pin "9" (uuid dc00fa94-a583-43b2-92cf-d179c920f4b4)) + (pin "10" (uuid 159574a9-ecec-48bb-adb0-3dc9e65d4e79)) + (pin "11" (uuid 82a9a530-e248-4dc9-896c-25f6d73fe113)) (pin "12" (uuid 32006d9a-b0bc-45fb-94de-805fe762fdfd)) (pin "13" (uuid 616e4c58-39cd-494c-9cc1-212471226893)) + (pin "14" (uuid becc5b0d-0352-4ad7-ac5e-da033ca0b239)) + (pin "7" (uuid 68d14432-223b-47bb-bd26-18873cfb3df2)) ) (symbol (lib_id "Connector:Conn_01x02_Male") (at 20.955 182.245 0) (unit 1) diff --git a/hardware/6502.kicad_sch-bak b/hardware/6502.kicad_sch-bak old mode 100644 new mode 100755 diff --git a/hardware/6502.sch b/hardware/6502.sch old mode 100644 new mode 100755 diff --git a/hardware/6502.sch-bak b/hardware/6502.sch-bak old mode 100644 new mode 100755 diff --git a/hardware/abn6502sbcR1.zip b/hardware/abn6502sbcR1.zip old mode 100644 new mode 100755 diff --git a/hardware/fp-info-cache b/hardware/fp-info-cache old mode 100644 new mode 100755 diff --git a/hardware/ram-vga.kicad_sch b/hardware/ram-vga.kicad_sch index b694dbf..4d26ecc 100644 --- a/hardware/ram-vga.kicad_sch +++ b/hardware/ram-vga.kicad_sch @@ -5033,10 +5033,10 @@ (symbol (lib_id "Device:C") (at 192.405 151.765 0) (unit 1) (in_bom yes) (on_board yes) (uuid 00000000-0000-0000-0000-000060c4186a) - (property "Reference" "C1" (id 0) (at 195.326 150.5966 0) + (property "Reference" "C1" (id 0) (at 185.42 149.86 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "18pF" (id 1) (at 195.326 152.908 0) + (property "Value" "18pF" (id 1) (at 184.15 152.4 0) (effects (font (size 1.27 1.27)) (justify left)) ) (property "Footprint" "Capacitor_SMD:C_0805_2012Metric" (id 2) (at 193.3702 155.575 0) @@ -5116,6 +5116,18 @@ ) (pin "1" (uuid cd4c0303-613b-467d-b28e-82a7149ad441)) (pin "2" (uuid 179338fe-23fd-4154-b361-15a1f050d645)) + (pin "3" (uuid 06fcb724-535c-414c-9bd9-2c4253d1061a)) + (pin "4" (uuid 175390ca-dcdb-4f63-8291-35ba8b07b140)) + (pin "5" (uuid 55e5b7d2-eb43-4f5b-9f89-b1eff1e119d9)) + (pin "6" (uuid 169ff030-0e51-4ebc-85c7-e586ef119eec)) + (pin "8" (uuid f50dd647-c734-445d-8b14-8c68d6377091)) + (pin "9" (uuid 1200673d-b2ca-414e-bac3-885bbdf7d3d1)) + (pin "10" (uuid d5f0102a-ccd2-481d-aac9-a500663069d8)) + (pin "11" (uuid 8dbd1a68-f406-4c7f-8b06-9547e6122f38)) + (pin "12" (uuid b3ed612d-4b95-418f-bfae-ed954c910011)) + (pin "13" (uuid 946ab5b8-e96e-4804-a78e-a4b89c867544)) + (pin "14" (uuid 2bb33282-4f9f-4778-8fe0-6f53edcd3452)) + (pin "7" (uuid b0417074-2887-4d2d-b55d-004cff435a65)) ) (symbol (lib_id "74xx:74HC04") (at 170.18 180.34 0) (unit 7) @@ -5133,6 +5145,18 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 170.18 180.34 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid f0fd2e44-a386-4ee9-98ea-d37af6599518)) + (pin "2" (uuid fbfd32a9-c3c0-412d-baa0-00d63242f652)) + (pin "3" (uuid 92887ca2-ec31-4498-981b-8dceb06ee776)) + (pin "4" (uuid a7238a92-fd90-4f03-97ca-e07dac351f72)) + (pin "5" (uuid fdff2fcd-c6ae-4363-94be-e87012c3e9e7)) + (pin "6" (uuid e7b9820c-ebd4-46c0-8732-cafc559c4fbc)) + (pin "8" (uuid 54d0cebf-ca14-4db0-9910-22941bc45a98)) + (pin "9" (uuid 01f18b55-48d6-4a40-88ea-e5978dc6c964)) + (pin "10" (uuid 1f29d2e6-7cd1-4d55-a840-cbd748f8e68f)) + (pin "11" (uuid 158550de-1466-4574-adf7-871a4f192a4e)) + (pin "12" (uuid 3e308dc9-2a7e-453c-9c0d-ed6716a1e4ef)) + (pin "13" (uuid 0661954e-f25b-4f99-a409-ca063613e2b5)) (pin "14" (uuid 1e60015e-86d5-488e-bea4-5f33cece91c5)) (pin "7" (uuid bb8be41f-7848-4823-bb4b-62af4f26883e)) ) @@ -5152,6 +5176,18 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS32" (id 3) (at 157.48 180.34 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid c3d693bb-8b79-4c4c-8f6d-fcf59053a0c7)) + (pin "2" (uuid 7778230f-f910-4a2e-99e2-9b1e861be1ad)) + (pin "3" (uuid 611e7c21-be02-4a2c-b017-7fcdbe00c6cf)) + (pin "4" (uuid 15f50029-307a-4d8a-9c26-89866c277ac0)) + (pin "5" (uuid 8e4b66b5-f3f7-4bd7-a29a-8afd9eeaaeda)) + (pin "6" (uuid a77a459c-1f1d-4583-b823-a54a1c799c78)) + (pin "10" (uuid 647b068d-34c1-40f5-9c02-6c8ac4e4e7e4)) + (pin "8" (uuid e33b88e6-21b7-46e6-ba61-2812267872a7)) + (pin "9" (uuid 3525d7fb-9fbb-407a-b98f-dbe710a5769f)) + (pin "11" (uuid cdd161f0-22d1-4053-9a0b-ffab3a54d82f)) + (pin "12" (uuid 5569ffb9-3194-4ed5-a115-e717546fbbd5)) + (pin "13" (uuid 9462ae22-4e7f-462a-824e-86cf308ddca1)) (pin "14" (uuid 3c347d80-6bcf-41b5-a713-94b8ccd92330)) (pin "7" (uuid ccb85e90-efe7-480d-a054-1cdc4d7d08f9)) ) @@ -5183,8 +5219,20 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 218.44 136.525 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid 7ab7b1db-1ff2-493f-8f9c-36792ad21c73)) + (pin "2" (uuid bf1f6226-2275-4b86-9c1d-d63e3a6430dd)) (pin "3" (uuid 82fb262f-6f00-47f9-a48d-47a110bdb5e8)) (pin "4" (uuid 63d1dd8e-aae8-4e64-8909-9de03c807e91)) + (pin "5" (uuid 8bcfde59-b85c-43bb-9e8e-e5706baedd16)) + (pin "6" (uuid ed045454-339e-41b3-adf7-74925ba99853)) + (pin "8" (uuid 9ddd0afe-6b4f-4d87-8112-c5b7d07ad5bc)) + (pin "9" (uuid 40346a5c-41cd-4378-9d56-9e921a1e0734)) + (pin "10" (uuid 149c5d61-baf1-4212-9ad9-405f30b44c95)) + (pin "11" (uuid 55439d6c-cdf1-4cc6-9c90-3dbefeda32d9)) + (pin "12" (uuid 113c2e5c-5d21-44b9-9699-61a03d05b219)) + (pin "13" (uuid 3fab55da-a730-4225-adf1-b91eeeb16267)) + (pin "14" (uuid 6eb8a12c-f7dd-45db-ac57-5cf35b00d623)) + (pin "7" (uuid 6f893dfa-8241-4004-a564-8340bce225c5)) ) (symbol (lib_id "Device:R_Small") (at 196.85 126.365 270) (unit 1) @@ -5368,8 +5416,20 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 160.655 119.38 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid 9a2b75a3-2170-46bd-a4ae-f41d05639556)) + (pin "2" (uuid 172ae4b5-4844-4ae8-a220-06196fc931d3)) + (pin "3" (uuid f232b395-a0ab-4461-b901-fad8834664e8)) + (pin "4" (uuid 42d1103b-01a9-4ce4-8c43-2c32be677f5a)) (pin "5" (uuid c43b92eb-44ff-43da-b0d1-195ee50e3181)) (pin "6" (uuid 8e5d119a-455d-48cf-9c7b-c49920d6e3c5)) + (pin "8" (uuid a771c02c-8b53-42d8-99ed-0a81252d0009)) + (pin "9" (uuid 92f3f87e-5e1a-419d-afde-68dd17a44605)) + (pin "10" (uuid 3a343692-2c55-4f37-9ead-c72b1953e9cb)) + (pin "11" (uuid 83d289e8-09e9-450f-aa29-e4a965c20aed)) + (pin "12" (uuid c139b080-c6d0-4461-9e29-74d2b8793fec)) + (pin "13" (uuid e07fa649-4e13-4bee-aaed-86e11b4662cd)) + (pin "14" (uuid 7e540c88-b84d-4388-8437-b417fdc7497f)) + (pin "7" (uuid 9c8ec97b-24c7-44ce-984c-6152db0371aa)) ) (symbol (lib_id "74xx:74LS00") (at 243.205 28.575 0) (unit 4) @@ -5383,9 +5443,20 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74ls00" (id 3) (at 243.205 28.575 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid 5066ec9a-19df-47c4-8835-fbd519c75492)) + (pin "2" (uuid dab29796-d6b3-4d2d-805f-0b5d2109d9de)) + (pin "3" (uuid fc83cf23-e446-4a86-a627-d51de5b41357)) + (pin "4" (uuid c81031fb-1f04-4fac-8d59-ac8a1a81a15c)) + (pin "5" (uuid 62832516-11f1-4f5c-b685-8f41c44bdcd7)) + (pin "6" (uuid bdd0b335-10a1-4a58-b644-8a502b93dd0b)) + (pin "10" (uuid b0435ce7-bdba-4ce7-b15a-4c85a5fe1252)) + (pin "8" (uuid 854c8829-725c-43a9-9fc5-c324d25b9b34)) + (pin "9" (uuid 4bc86510-eacc-4743-bf0b-cadae3d7b4b3)) (pin "11" (uuid c0f3bead-0bd6-45bd-bc7b-f65bfd4f18c0)) (pin "12" (uuid d9f09d7a-365d-4c25-9975-113cb6626816)) (pin "13" (uuid ba230c7a-048d-4aef-bf54-a3df23faf90f)) + (pin "14" (uuid e7c9f62a-790c-428c-8536-36156cd25e01)) + (pin "7" (uuid 3edb16a2-55e0-491b-bd50-9c4fc4f45ac1)) ) (symbol (lib_id "74xx:74LS00") (at 262.255 28.575 0) (unit 3) @@ -5399,9 +5470,20 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74ls00" (id 3) (at 262.255 28.575 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid ba105837-9e06-4662-9965-7593b1cae8d0)) + (pin "2" (uuid 28c99006-db10-4e32-8623-230b8bc5f422)) + (pin "3" (uuid 5788f6ee-a950-4b1b-aaa9-d2665c0c4242)) + (pin "4" (uuid 4791f0c8-eca1-472a-b5e7-1c3eff883c30)) + (pin "5" (uuid bf74c99b-6291-4cef-a3b3-a7e4ae401405)) + (pin "6" (uuid e6a821a1-5d08-48bd-b8e3-94ecf04b3e69)) (pin "10" (uuid 1c8baba0-30f7-4869-ab3e-df8f0eb18ce7)) (pin "8" (uuid 2fa0cdc8-7041-4d65-92f9-ce39dcbce217)) (pin "9" (uuid d648e4c8-78a9-4be2-96ff-9e52a6eab242)) + (pin "11" (uuid 0bb237b7-3c36-4dd2-83be-cd2c222b4c4e)) + (pin "12" (uuid 8d83e328-7f8e-4ff2-9f4c-9b7ab1a82636)) + (pin "13" (uuid de13e0f2-e58c-4cc2-84c5-b6bd1aedd8ac)) + (pin "14" (uuid b40b1eac-9bfc-4cbe-b825-0212be42c854)) + (pin "7" (uuid cfed5c4e-149f-45c5-874a-d4efe242083a)) ) (symbol (lib_id "74xx:74LS00") (at 144.145 180.34 0) (unit 5) @@ -5419,6 +5501,18 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74ls00" (id 3) (at 144.145 180.34 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid abc0decb-50d4-4467-9412-db8d85ff63ff)) + (pin "2" (uuid d1e483df-ea1d-4033-835a-7e444a60718e)) + (pin "3" (uuid c9a2e9f0-afbe-44db-b1e6-81fd64eb369e)) + (pin "4" (uuid 02c9d8ea-754a-43f7-a713-860920f64b9c)) + (pin "5" (uuid 29ce0296-11ac-4570-b91c-c76b451384c1)) + (pin "6" (uuid fad1a70b-66b0-4f20-86d8-daec3418c997)) + (pin "10" (uuid 693758c0-e8d0-4612-bd48-760fa3b657da)) + (pin "8" (uuid a2c6ddb8-c592-4f88-8d0d-4d49eee9bee0)) + (pin "9" (uuid 71bde7f6-c970-4790-a48c-3a26a72d30aa)) + (pin "11" (uuid ce52e298-4c1f-4e90-ab4b-157701b38695)) + (pin "12" (uuid 4c574d69-3841-4646-9cb9-67e1549af41a)) + (pin "13" (uuid b5459239-bbba-4698-9494-ff8aed069c28)) (pin "14" (uuid beaf503e-5217-4a5f-92f3-759ebad0091e)) (pin "7" (uuid d94876f0-1302-444e-ba16-3a6e74b05463)) ) @@ -5908,8 +6002,20 @@ (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT04.pdf" (id 3) (at 230.505 93.98 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid dc907d3a-ade0-4fb2-bac6-3f031f194fac)) + (pin "2" (uuid 6cfdc61e-9238-4bf1-8adc-0aa2afd5e23c)) + (pin "3" (uuid dfdae403-bb08-48d4-b042-b5f0fa182e90)) + (pin "4" (uuid 4b8be3ff-4f25-49f4-9eee-d26026895d38)) + (pin "5" (uuid 9c352ce5-8dcd-4676-8f85-0d97597fd098)) + (pin "6" (uuid 4035c6d5-0218-4683-a405-7b7b1fd841f8)) + (pin "8" (uuid 2687370f-49a5-4bc5-9d99-d875739be787)) + (pin "9" (uuid 52039751-7c90-4bad-b446-00e9c6094980)) (pin "10" (uuid 19dfeb69-3be8-40af-93a0-247aece5d536)) (pin "11" (uuid 201ae386-e3ff-474b-9c2d-d43611094897)) + (pin "12" (uuid 473c668c-5f7b-4cf5-8012-906483dc5dc1)) + (pin "13" (uuid 1a3b3ac1-1149-4af0-88a5-7f64e33c4898)) + (pin "14" (uuid ac99f243-aa8f-4496-82dd-cd58dae79415)) + (pin "7" (uuid 3cd62bef-586b-4354-a0d8-b45f0b86f8d4)) ) (symbol (lib_id "power:+5V") (at 249.555 106.68 0) (unit 1) @@ -5946,6 +6052,15 @@ (pin "5" (uuid 2fc727a1-ec81-47ac-a10d-f19fac44bdc1)) (pin "6" (uuid cbf4f2a4-3369-42f0-ae49-e23c0842667a)) (pin "7" (uuid 0f44a4ed-4463-4842-9e3f-9a34bb5e25e5)) + (pin "10" (uuid e25f0cb2-d101-4680-8039-e28dc3ef0e9b)) + (pin "11" (uuid 5745a04b-39bd-4cb4-89ea-e90a2c48774a)) + (pin "12" (uuid 600790da-009c-416b-b328-c098d09ec7e9)) + (pin "13" (uuid d92bbe04-d739-4545-819a-e5ee4b4b49b1)) + (pin "14" (uuid c97c8102-2bf1-4ea4-9aa9-15a404c92447)) + (pin "15" (uuid 1949e7c9-6123-4a49-85e5-c886919fc2f5)) + (pin "9" (uuid 8d418f4a-1f96-40d9-af23-daa03b7feb31)) + (pin "16" (uuid d083eb6c-4193-4c6e-8bed-de8b6ee512ce)) + (pin "8" (uuid ec13d830-67f1-4408-9fd2-96be273e8b39)) ) (symbol (lib_id "74xx:74LS00") (at 92.075 29.845 0) (unit 2) @@ -5959,9 +6074,20 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74ls00" (id 3) (at 92.075 29.845 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid 6cf1f8a5-0115-4654-96fb-fd5a2b2f392e)) + (pin "2" (uuid 33c8b5d9-f488-4aa6-bc3f-f58a56be5f10)) + (pin "3" (uuid 18fa4eac-44be-4c19-85bd-ae41ed4e9ca9)) (pin "4" (uuid 4d4e426a-9a6c-4a5e-be2f-ae1c7dbbb7e9)) (pin "5" (uuid 141e52b1-0979-4a0b-8d96-c5d6ec1e19be)) (pin "6" (uuid eb215b68-6113-42df-89cb-eb49c3786da5)) + (pin "10" (uuid ba823e13-91c7-47a9-b198-7b27ae88618f)) + (pin "8" (uuid 63644b3f-486a-46db-be27-481471e940f4)) + (pin "9" (uuid 4caa68da-1d74-422f-8bbe-3c28c9ea4b69)) + (pin "11" (uuid 069bdd9d-f380-4c58-987e-4887748031e8)) + (pin "12" (uuid 4cc8f330-0552-463d-8506-7fc2c95c4de2)) + (pin "13" (uuid 7a89709d-a8cb-4a64-a3a3-ed263fad27d0)) + (pin "14" (uuid b51e6374-6b7d-472e-92f2-9dae266de01e)) + (pin "7" (uuid 0c990048-7035-4646-8b07-f79fbfddff62)) ) (symbol (lib_id "74xx:74LS109") (at 182.88 26.67 0) (unit 2) @@ -5975,6 +6101,13 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS109" (id 3) (at 182.88 26.67 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid b49d4886-5858-45d9-91aa-e4893360ac04)) + (pin "2" (uuid f8cfd3aa-e4ff-4f9d-9bf9-0adf19203b52)) + (pin "3" (uuid 934f6b2e-d892-4606-8ba6-f8b20bec47c8)) + (pin "4" (uuid 5f6b5c30-781a-4047-9227-2733b7cc980c)) + (pin "5" (uuid 50065ec5-a536-420d-8f46-a78724f6ee74)) + (pin "6" (uuid 6cfa3401-aa92-47e4-b58a-92f49c22748f)) + (pin "7" (uuid 585b95e0-9819-4f44-8ca2-4fdfa810d12f)) (pin "10" (uuid 06bc45b1-e570-4fb7-be3c-96827dc840b0)) (pin "11" (uuid f96fdd12-0555-4284-8b49-573da8fad80d)) (pin "12" (uuid 79e0921a-af8c-41ec-acec-1ddcb13ea611)) @@ -5982,6 +6115,8 @@ (pin "14" (uuid 7f2c975f-4fca-4fd8-a6a8-fdc38e4408d1)) (pin "15" (uuid e1532adb-50a7-4c79-8545-1c7ca35c6c1e)) (pin "9" (uuid a4b5fa1c-5c41-408a-814a-218ee15e8815)) + (pin "16" (uuid 2228514e-5299-4258-98b9-e9cdf9417856)) + (pin "8" (uuid d09fca4c-55e2-452c-818b-2a461bf643cc)) ) (symbol (lib_id "74xx:74LS32") (at 149.86 26.67 0) (unit 4) @@ -5997,9 +6132,20 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS32" (id 3) (at 149.86 26.67 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid 4e171e27-0952-4a5f-bd26-afc8662a6d9a)) + (pin "2" (uuid 90eccc84-68e3-440b-b8e7-b46a28e3379b)) + (pin "3" (uuid cec5c91b-0f2e-497a-af3e-a5a152b16bf2)) + (pin "4" (uuid 659c7120-8885-4090-b510-a594ad335b4b)) + (pin "5" (uuid a66a3b2f-f268-4e38-987e-b27ec003ce16)) + (pin "6" (uuid b06fdf55-9b05-48ab-b20a-f43456e8f5ec)) + (pin "10" (uuid a120ec1a-c3ea-4c4e-ad75-54278c183a82)) + (pin "8" (uuid 708692df-f1ed-4dfd-8869-70b93a8004bc)) + (pin "9" (uuid 64e4ea00-3ecf-4df6-ac5f-77cf4ced88fb)) (pin "11" (uuid 6397fc17-89d6-464d-bb28-9a72976bc54f)) (pin "12" (uuid c156826b-f16a-4966-af11-2cf3272dfb02)) (pin "13" (uuid 484a0197-38b3-41a8-9107-d8b05509a0a0)) + (pin "14" (uuid 64b46f63-6e09-4261-974e-314eb1064777)) + (pin "7" (uuid ef9338d2-be92-41eb-995e-a6475d8b74aa)) ) (symbol (lib_id "74xx:74LS32") (at 165.1 29.21 0) (unit 3) @@ -6013,9 +6159,20 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS32" (id 3) (at 165.1 29.21 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid 206bfdd0-417d-49a5-beaa-7015cee73d7c)) + (pin "2" (uuid 186cf002-bafb-4518-a4f7-985d13883de2)) + (pin "3" (uuid eefeaa69-a5fe-42d9-8e5a-806a1b488e12)) + (pin "4" (uuid 6bcf9f76-ef05-4af0-a533-4c772475fd58)) + (pin "5" (uuid 0e1e548c-ec74-46cb-aa6e-5e8839149d3f)) + (pin "6" (uuid a623f881-bf21-4f21-bf99-f5c7db3a5968)) (pin "10" (uuid 3c910345-f9b7-4776-b21e-e96211d9f89e)) (pin "8" (uuid a2d85f44-0495-4997-a0e3-9af74e952ea0)) (pin "9" (uuid 34a36bc3-a796-4077-ad23-a3108c31f264)) + (pin "11" (uuid ed88958c-7dea-458c-986f-dc1186d3fd0d)) + (pin "12" (uuid c54946dc-b56a-4075-a391-5835ff06fc87)) + (pin "13" (uuid 21fe163d-5c16-42b5-8408-6e6165b7b3e7)) + (pin "14" (uuid 06d89049-bb08-4c35-aa48-22c05c01103e)) + (pin "7" (uuid 16fca551-3571-4517-ab94-7c1b9d1a3ce1)) ) (symbol (lib_id "Device:C_Small") (at 109.855 180.975 0) (unit 1) @@ -6135,6 +6292,20 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS109" (id 3) (at 130.81 180.34 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid ef0a2071-6555-49e0-bc78-da38debe66e0)) + (pin "2" (uuid d80c6f3c-2d1f-40d3-bf71-8046ae8efa09)) + (pin "3" (uuid 13c15b23-49c6-473a-a640-272df9fa9b60)) + (pin "4" (uuid 4155505f-3687-467b-8149-9afc3d422f5e)) + (pin "5" (uuid fda9dddb-894c-4a9c-afd9-e6bb2b3fb708)) + (pin "6" (uuid 2b78fb96-b83a-454d-9c4c-243d3fcbdc74)) + (pin "7" (uuid 7bdf0f3e-3a1c-4abb-9c33-d80432067514)) + (pin "10" (uuid b180f6d0-d840-4b9f-8540-82b63ef22fd3)) + (pin "11" (uuid 03e75cc6-2d96-4d7f-9d3b-b64b049a6429)) + (pin "12" (uuid 35d35ecc-35d5-4891-8a97-348283c292df)) + (pin "13" (uuid 0ae82e1e-e87b-4074-a3ac-4ce032970e6f)) + (pin "14" (uuid 39bb9734-8b7d-4247-bc38-bd4a5d9ed06f)) + (pin "15" (uuid 70b8744a-7f56-4a6d-a71a-1de076f49081)) + (pin "9" (uuid ae713629-1dd9-47a6-be0e-0ab9885d9013)) (pin "16" (uuid 5e027966-eee4-4c4f-a3fa-9cf52964b0f0)) (pin "8" (uuid fca95917-0397-4be5-b153-d267a80d4f34)) ) @@ -6491,6 +6662,17 @@ (pin "1" (uuid a3ccd637-775a-4b5e-a62c-bfd8265a8ece)) (pin "2" (uuid 16d960bd-0463-4cb9-93db-c3aa1dcdca90)) (pin "3" (uuid 7f7dca97-fe5c-402a-886f-5c8b0fca1d71)) + (pin "4" (uuid 4fff1af1-1b2c-4ddd-8ebf-aaa1cf12600d)) + (pin "5" (uuid 2d50fb9d-f113-4cb6-a44f-bea4c65d531a)) + (pin "6" (uuid 76d9ca26-93f4-45a6-a893-a23ea5569a70)) + (pin "10" (uuid 0520d68c-bdec-4d10-8756-c63de315da38)) + (pin "8" (uuid f6530a81-d443-4ea6-a0d7-1ecd59edde3f)) + (pin "9" (uuid 171fdca9-3abf-47ec-adfa-6909484da46f)) + (pin "11" (uuid 7f704135-5782-421c-aa14-3367e8023e6d)) + (pin "12" (uuid 02a911eb-13f8-468a-9e52-a59bcd594995)) + (pin "13" (uuid d381e237-63ae-40a2-b286-525994413db9)) + (pin "14" (uuid 4a5d9644-2379-4885-b4a6-a8623a813c99)) + (pin "7" (uuid 44a3d6e0-81da-4c53-981a-168ed3134773)) ) (symbol (lib_id "power:+5V") (at 234.95 141.605 0) (unit 1) @@ -6520,9 +6702,20 @@ (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS32" (id 3) (at 182.245 116.84 0) (effects (font (size 1.27 1.27)) hide) ) + (pin "1" (uuid c6977593-c5f4-459e-8b7a-4f90bdf9afd8)) + (pin "2" (uuid 29b48e50-7d55-4e3d-a539-4a2586bb6a12)) + (pin "3" (uuid 20e45521-6283-425d-9001-b9d73e16c8df)) (pin "4" (uuid f0ca31f7-f213-48c5-a4f8-652329c77c91)) (pin "5" (uuid be45c88c-2c66-44c1-8342-d17e5cb14cc8)) (pin "6" (uuid a6618056-eeb6-4dee-9e25-39b72386016c)) + (pin "10" (uuid f4ba32ab-ab3d-4753-a0b7-a2a898ba4b27)) + (pin "8" (uuid 4b77d0a4-5200-4718-ad55-d12fcc0160fd)) + (pin "9" (uuid 970b75d2-be6a-4922-bf76-1e9d7e25dec5)) + (pin "11" (uuid b719a6ee-0144-4966-8b91-52a9b865a921)) + (pin "12" (uuid 49c7cb3f-a658-4999-a305-f40b4dfcb82f)) + (pin "13" (uuid ca0a8209-494a-467f-a97e-e0b7c2ab04fe)) + (pin "14" (uuid 03a6503e-3bc6-4f20-910b-4b25d7b2c144)) + (pin "7" (uuid 0da5400b-a1bf-449b-b183-0fcf28aff5c0)) ) (symbol (lib_id "Device:R") (at 116.205 50.8 0) (unit 1) diff --git a/hardware/ram-vga.kicad_sch-bak b/hardware/ram-vga.kicad_sch-bak old mode 100644 new mode 100755 diff --git a/hardware/ram-vga.sch b/hardware/ram-vga.sch old mode 100644 new mode 100755 diff --git a/hardware/ram-vga.sch-bak b/hardware/ram-vga.sch-bak old mode 100644 new mode 100755 diff --git a/software_linux/bootload.cpp b/software_linux/bootload.cpp old mode 100644 new mode 100755