From 6c964f36a2e102aa75a4416946ff0aeff9fb47a9 Mon Sep 17 00:00:00 2001 From: Charles Mangin Date: Wed, 21 Jul 2021 20:13:17 -0400 Subject: [PATCH] fixed edge case, correctly clears DLR pages --- QR.6502 | 41 ++++++++++++++++++++++++++++++++++++++++- qrcode.dsk | Bin 143360 -> 143360 bytes 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/QR.6502 b/QR.6502 index f256347..1b173b8 100644 --- a/QR.6502 +++ b/QR.6502 @@ -172,7 +172,30 @@ GETMESSAGE LDA MESSAGE,Y ; 0 INY ; 2 CPY MESSAGELENGTH BCC GETMESSAGE - BCS BUILDQR + BEQ BUILDQR + + + * overrun, means last character is odd one out: +*** If you are encoding an odd number of characters, take the numeric representation +*** of the final character and convert it into a 6-bit binary string. + DEY ; Y=MESSAGELENGTH + DEY + LDA MESSAGE,Y ; LAST ACTUAL CHAR OF MESSAGE + TAX + LSR + LSR + LSR + AND #$07 + STA STORAGE,Y ; HI 3 BITS + TXA + ASL + ASL + ASL + ASL + ASL + AND #$E0 + STA STORAGE+1,Y ; LO 3 BITS + JMP BUILDQR ************************************************** @@ -344,6 +367,9 @@ PADBYTES2 ASL PADBITS STA MPINTS,Y ; STORE INCOMPLETE BYTE WITH TRAILING ZEROS CPX #$04 ; NEEDS TO BE AT LEAST 4 FOR TERMINATOR BCS PADLOOP + LDA MESSAGELENGTH + AND #$01 + BEQ PADLOOP INY PADLOOP INY ; NEXT QR BYTE CPY #$50 @@ -706,6 +732,19 @@ FILL1 DEY STA $700, Y STA $780, Y BNE FILL1 + STA PAGE2ON ; go again on AUX400 + LDY #$78 +FILL2 DEY + STA $400, Y + STA $480, Y + STA $500, Y + STA $580, Y + STA $600, Y + STA $680, Y + STA $700, Y + STA $780, Y + BNE FILL2 + STA PAGE2OFF ; back to MAIN RTS diff --git a/qrcode.dsk b/qrcode.dsk index 51e5f896daa822fe1fb8bb726e34dd04a494ea84..addea469e189674cad5389a1eebab45252f4b5fc 100644 GIT binary patch delta 965 zcmcIiO=uHQ5PtJEo84}9-+M&csztNSCeYNR-8ClFr~SW3A=Dc&l8&cz&Ta<~J1{F5E7!GxjXJIN}tp2`*6*g{s>2U)*mOrn86 z%mnr{KX(nrMCYQnJhSu#`UGdn;|u4ZKbdXMp>@bsU>Vg=Q`$v!!InCg)?74LowXXZ zB@50BlnncNGDCf63VO+yAE==PH52%(NyFB@|7*p|HXKfjBv(XV55!&34q?=no46kJ zA&~0Pdek1_k1QCzx08H=+(RL=i?bEfcFWm{=-SzkVB9DmbFhwo!1g|TkWe<-JCTi} z_BJ0Mg`V!7RqQKu%=SX*t;mM763IZoZ{CGosPc!WU^IvH+p7K9(1-V&3D3FYITt)# zNiC?3<~dh92fWZzy=tt;{@GxX=km}8+q^IXy(faP`S~q`*NVkrMyew7fzqi=s|u$5 zOy?6{VKhG7AC5F+HbVZ!I+*%6e;b|{`soGQSEP%`L?Tflk_Zt9CP0uzHKJ*YpnT{A zMmDYIr&F%_J1*~+OnCfv08VnR07o`05HWlAr?xil&O;tvcQjn(FY<8t7?o(0iZnt6 ziYZV;C?P~6DvAAPVkWW(6BuT|5T%q*jjA+8725SLVg@&G;@eA57U31dA*W%Ya5DkT igYY6Q#Bm(rh*3tE##9z#3hQDrlR7WWrC~LVW8VQR=p54k delta 203 zcmZp8z|ru4W5M0c0$d*$2b7pBz_nnS0AtSd1OY}K5WzCJUYV6qelsIiJ>zypAx2$Z YCSjK82J(y-P~54&*rv+3OqGcn0G3ZdbpQYW