diff --git a/.Floppies/A2OSX.BOOT.woz b/.Floppies/A2OSX.BOOT.woz index 89c81b3d..baf88d22 100644 Binary files a/.Floppies/A2OSX.BOOT.woz and b/.Floppies/A2OSX.BOOT.woz differ diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 86dc28b3..0c3791a3 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index a43ec54d..be5487a2 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/A2osX.S.txt b/A2osX.S.txt index f737aab2..931c0328 100644 --- a/A2osX.S.txt +++ b/A2osX.S.txt @@ -237,7 +237,9 @@ A2osX.ScreenDLGR ldx #0 -.1 lda SCR.BASEL,x +.1 phx + + lda SCR.BASEL,x sta TmpPtr2 lda SCR.BASEH,x sta TmpPtr2+1 @@ -246,18 +248,21 @@ A2osX.ScreenDLGR .2 lda (TmpPtr1),y pha + and #$f - phy - tay - lda PALETTE.AUX,y - ply + tax + lda PALETTE.AUX,x + sta SETPAGE2 sta (TmpPtr2),y + pla lsr lsr lsr lsr + tax + lda PALETTE.MAIN,x sta CLRPAGE2 sta (TmpPtr2),y @@ -278,10 +283,9 @@ A2osX.ScreenDLGR .4 lda (TmpPtr1),y pha and #$f - phy - tay - lda PALETTE.AUX,y - ply + + tax + lda PALETTE.AUX,x asl asl asl @@ -289,8 +293,18 @@ A2osX.ScreenDLGR sta SETPAGE2 ora (TmpPtr2),y sta (TmpPtr2),y + pla - and #$f0 + lsr + lsr + lsr + lsr + tax + lda PALETTE.MAIN,x + asl + asl + asl + asl sta CLRPAGE2 ora (TmpPtr2),y sta (TmpPtr2),y @@ -307,7 +321,8 @@ A2osX.ScreenDLGR inc TmpPtr1+1 -.7 inx +.7 plx + inx cpx #20 bne .1 @@ -635,7 +650,10 @@ KM.PREFIX >PSTR "KM." SCR.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0 SCR.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07 *-------------------------------------- -PALETTE.AUX .HS 00080109020A030B040C050D060E070F +PALETTE.MAIN .HS 00.0F.05.0A.02.06.07.04 + .HS 0C.0E.01.03.0B.08.09.0D +PALETTE.AUX .HS 00.0F.0A.0A.01.03.0B.02 + .HS 06.07.08.09.0D.04.0C.0E *-------------------------------------- .EP *-------------------------------------- diff --git a/BIN/BMP2PIX.S.txt b/BIN/BMP2PIX.S.txt index bdcded24..69046910 100644 --- a/BIN/BMP2PIX.S.txt +++ b/BIN/BMP2PIX.S.txt @@ -32,21 +32,20 @@ ZPInputRowBytes .BS 2 ZPLineCount .BS 2 ZPPixelCount .BS 2 - ZPOutputBuf .BS 2 ZPOutputRowBytes .BS 2 ZPPixel24 .BS 3 ZPPixelScore .BS 3 -ZPPixelBest .BS 3 - -ZPPixelIndex16 .BS 1 -ZBTmpB1 .BS 1 -ZBTmpW .BS 2 - ZPCntX .BS 1 ZPCntY .BS 1 +ZPPixelBest .BS 3 +ZPPixelIndex16 .BS 1 + +ZBTmpW1 .BS 2 +ZBTmpW2 .BS 2 + ZS.END .ED *-------------------------------------- * File Header (16 Bytes) @@ -277,13 +276,16 @@ CS.RUN.24 lda #S.BM.F.BBP4 CS.RUN.24.LOOP inc ZPLineCount bne .1 + inc ZPLineCount+1 beq .8 + .1 inc ZPCntY lda #$ff sta ZPCntX jsr CS.RUN.ReadInput bcs .9 + lda ZPOutputBuf sec sbc ZPOutputRowBytes @@ -313,14 +315,18 @@ CS.RUN.24.LOOP inc ZPLineCount .5 jsr CS.RUN.GetNearestColor pha + jsr DEBUG.PLOT + lda ZPCntX lsr tay pla bcs .6 + sta (ZPOutputBuf),y bra .2 + .6 asl asl asl @@ -337,68 +343,96 @@ CS.RUN.24.LOOP inc ZPLineCount *-------------------------------------- CS.RUN.GetNearestColor stz ZPPixelIndex16 + lda #$ff sta ZPPixelBest sta ZPPixelBest+1 sta ZPPixelBest+2 + ldy #63 .30 stz ZPPixelScore stz ZPPixelScore+1 stz ZPPixelScore+2 + ldx #2 -.40 lda PALETTE.RGB-1,y +.40 phx A = |c - C| + + dey + lda PALETTE.RGB,y sec sbc ZPPixel24,x bcs .5 + eor #$ff inc -.5 phx - - sta ZBTmpB1 - sta ZBTmpW - stz ZBTmpW+1 - lda #0 - ldx #8 +.5 sta ZBTmpW1 + stz ZBTmpW1+1 -.1 lsr ZBTmpW + stz ZBTmpW2 + stz ZBTmpW2+1 + + ldx #8 compute A² + +.1 lsr bcc .2 + + pha + + lda ZBTmpW1 clc - adc ZBTmpB1 -.2 ror - ror ZBTmpW + adc ZBTmpW2 + sta ZBTmpW2 + + lda ZBTmpW1+1 + adc ZBTmpW2+1 + sta ZBTmpW2+1 + + pla + +.2 asl ZBTmpW1 + rol ZBTmpW1+1 dex bne .1 - sta ZBTmpW+1 - lda ZPPixelScore + + lda ZPPixelScore compute A²+b+c² clc - adc ZBTmpW + adc ZBTmpW2 sta ZPPixelScore + lda ZPPixelScore+1 - adc ZBTmpW+1 + adc ZBTmpW2+1 sta ZPPixelScore+1 + bcc .3 inc ZPPixelScore+2 + .3 plx - dey dex bpl .40 + lda ZPPixelBest cmp ZPPixelScore + lda ZPPixelBest+1 sbc ZPPixelScore+1 + lda ZPPixelBest+2 sbc ZPPixelScore+2 bcc .8 + lda ZPPixelScore sta ZPPixelBest + lda ZPPixelScore+1 sta ZPPixelBest+1 + lda ZPPixelScore+2 sta ZPPixelBest+2 + tya lsr lsr @@ -406,6 +440,7 @@ CS.RUN.GetNearestColor .8 dey bpl .30 + lda ZPPixelIndex16 CS.RUN.GetIndexInPalette.RTS rts @@ -601,22 +636,32 @@ DEBUG.ClrScr sta SETMIXED *-------------------------------------- DEBUG.PLOT php sei + pha + tax + + lda ZPCntY + cmp #40 + bcs .9 + lda ZPCntX cmp #80 bcs .9 + lsr tay - sta CLRPAGE2 bcs .1 CS = main + sta SETPAGE2 - plx lda PALETTE.AUX,x - pha -.1 lda ZPCntY - cmp #40 - bcs .9 + bra .2 + +.1 sta CLRPAGE2 + lda PALETTE.MAIN,x + +.2 pha + lda #39 sec sbc ZPCntY @@ -627,16 +672,17 @@ DEBUG.PLOT php lda SCR.BASEH,x sta ZPPTR1+1 pla - bcc .2 + bcc .3 + asl asl asl asl -.2 ora (ZPPTR1),y + +.3 ora (ZPPTR1),y sta (ZPPTR1),y sta CLRPAGE2 - plp - rts + .9 pla plp rts @@ -658,41 +704,64 @@ MSG.DONE .AZ "All Done!!!" *-------------------------------------- * LOWRES Patette : https://comp.sys.apple2.narkive.com/lTSrj2ZI/apple-ii-colour-rgb *-------------------------------------- -*PALETTE.RGB .HS 00000000 BLACK -* .HS e31e6000 RED -* .HS 604ebd00 DARK.BLUE -* .HS ff44fd00 PURPLE -* .HS 00a36000 DARK.GREEN +*PALETTE.RGB .HS 00000000 BLACK +* .HS ffffff00 WHITE +* .HS 7e7e7e00 DARK.GRAY * .HS 9c9c9c00 DARK.GRAY +* .HS 604ebd00 DARK.BLUE * .HS 14cffd00 BLUE * .HS d0c3ff00 LIGHT.BLUE +* .HS 00a36000 DARK.GREEN +* .HS 14f53c00 LIGHT.GREEN +* .HS 72ffd000 AQUA +* .HS e31e6000 RED +* .HS ff44fd00 PURPLE +* .HS ffa0d000 PINK * .HS 60720300 BROWN * .HS ff6a3c00 ORANGE -* .HS 9c9c9c00 DARK.GRAY -* .HS ffa0d000 PINK -* .HS 14f53c00 LIGHT.GREEN * .HS d0dd8d00 YELLOW -* .HS 72ffd000 AQUA -* .HS ffffff00 WHITE *-------------------------------------- -PALETTE.RGB .HS 00000000 BLACK - .HS 930B7c00 RED - .HS 1f35D300 DARK.BLUE - .HS bb36ff00 PURPLE - .HS 00760c00 DARK.GREEN - .HS 7e7e7e00 DARK.GRAY - .HS 07a8e000 BLUE - .HS b5afff00 LIGHT.BLUE - .HS 624c0000 BROWN - .HS f9561d00 ORANGE - .HS 9c9c9c00 LIGHT.GRAY - .HS ff81ec00 PINK - .HS 43c80000 LIGHT.GREEN - .HS dccd1600 YELLOW - .HS 5df78400 AQUA - .HS ffffff00 WHITE +PALETTE.RGB .HS 00000000 0 BLACK + .HS ffffff00 1 WHITE + .HS 7e7e7e00 2 DARK.GRAY + .HS 9c9c9c00 3 LIGHT.GRAY + .HS 1f35D300 4 DARK.BLUE + .HS 07a8e000 5 BLUE + .HS b5afff00 6 LIGHT.BLUE + .HS 00760c00 7 DARK.GREEN + .HS 43c80000 8 LIGHT.GREEN + .HS 5df78400 9 AQUA + .HS 930B7c00 A RED + .HS bb36ff00 B PURPLE + .HS ff81ec00 C PINK + .HS 624c0000 D BROWN + .HS f9561d00 E ORANGE + .HS dccd1600 F YELLOW *-------------------------------------- -PALETTE.AUX .HS 00080109020A030B040C050D060E070F +*PALETTE.RGB .DA #0,#0,#0,#0 0 Black +* .DA #255,#255,#255,#0 15 White +* .DA #126,#126,#126,#0 5 Grey1 +* .DA #156,#156,#156,#0 10 Grey2 +* .DA #96,#78,#189,#0 8 Dark Blue +* .DA #20,#207,#253,#0 12 Medium Blue +* .DA #208,#195,#255,#0 13 Light Blue +* .DA #0,#163,#96,#0 4 Dark Green +* .DA #20,#245,#60,#0 6 Green +* .DA #114,#255,#208,#0 14 Aqua +* .DA #255,#68,#253,#0 9 Violet +* .DA #255,#160,#208,#0 11 Pink +* .DA #227,#30,#96,#0 1 Magenta +* .DA #96,#114,#3,#0 2 Brown +* .DA #255,#106,#60,#0 3 Orange +* .DA #208,#221,#141,#0 7 Yellow +*-------------------------------------- +PALETTE.MAIN .HS 00.0F.05.0A.02.06.07.04 + .HS 0C.0E.01.03.0B.08.09.0D +PALETTE.AUX .HS 00.0F.0A.0A.01.03.0B.02 + .HS 06.07.08.09.0D.04.0C.0E + +*PALETTE.AUX .HS 00.08.01.09.02.0A.03.0B +* .HS 04.0C.05.0D.06.0E.07.0F *-------------------------------------- .DUMMY .OR 0 diff --git a/BIN/FORMAT.S.txt b/BIN/FORMAT.S.txt index 77f78659..45d803cc 100644 --- a/BIN/FORMAT.S.txt +++ b/BIN/FORMAT.S.txt @@ -476,7 +476,17 @@ CS.RUN.LL.DISKII.VR >PUSHBI IOCTL.READBLOCK >PUSHEA.G IOCTL >SYSCALL IOCTL - rts + bcc .8 + + pha + >PUSHW L.MSG.ERR + pla + + >PUSHA + >PUSHBI 1 + >SYSCALL PrintF + +.8 rts *-------------------------------------- CS.RUN.MotorOn sec .HS 90 BCC diff --git a/BIN/GTEST.S.txt b/BIN/GTEST.S.txt index e69f8965..d5c68135 100644 --- a/BIN/GTEST.S.txt +++ b/BIN/GTEST.S.txt @@ -42,11 +42,14 @@ L.FONTFILE .DA FONTFILE L.FONTFILEB .DA FONTFILEB L.PIXFILE .DA PIXFILE L.LOGOFILE .DA LOGOFILE +L.PALETTEFILE .DA PALETTEFILE L.CB.RECT .DA CB.RECT +L.CB.RECT2 .DA CB.RECT2 L.CB.TEXTB .DA CB.TEXTB L.CB.TEXT .DA CB.TEXT L.CB.PIX .DA CB.PIX L.CB.LOGO .DA CB.LOGO +L.CB.PALETTE .DA CB.PALETTE L.CB.Apple .DA CB.Apple L.BM.Apple .DA BM.Apple L.MESSAGEB .DA MESSAGEB @@ -66,12 +69,38 @@ CS.RUN jsr GFX.Open >LDYA L.CB.RECT jsr GFX.Write.YA - >LDYA L.CB.PIX +.1 >LDYA L.CB.RECT2 + jsr GFX.Write.YA + + inc CB.RECT2+S.CB.COLOR + lda CB.RECT2+S.CB.COLOR + cmp #16 + beq .3 + + lda CB.RECT2+S.CB.X1 + clc + adc #28 + sta CB.RECT2+S.CB.X1 + bcc .2 + inc CB.RECT2+S.CB.X1+1 + +.2 lda CB.RECT2+S.CB.X2 + clc + adc #28 + sta CB.RECT2+S.CB.X2 + bcc .1 + inc CB.RECT2+S.CB.X2+1 + bra .1 + +.3 >LDYA L.CB.PIX jsr GFX.Write.YA >LDYA L.CB.LOGO jsr GFX.Write.YA + >LDYA L.CB.PALETTE + jsr GFX.Write.YA + >LDYA L.BM.Apple >STYA CB.Apple+S.CB.SrcPtr @@ -157,7 +186,7 @@ LoadResources >PUSHW L.FONTFILE >PUSHBI $CC Type >PUSHWZ Aux type >SYSCALL LoadStkObj - bcs .9 + bcs .99 stx hFontb >PUSHW L.PIXFILE @@ -175,6 +204,14 @@ LoadResources >PUSHW L.FONTFILE >SYSCALL LoadStkObj bcs .9 stx CB.LOGO+S.CB.SrcPtr + + >PUSHW L.PALETTEFILE + >PUSHBI O.RDONLY + >PUSHBI $CB Type + >PUSHWZ Aux type + >SYSCALL LoadStkObj + bcs .9 + stx CB.PALETTE+S.CB.SrcPtr .9 rts *-------------------------------------- @@ -198,7 +235,9 @@ DEVNAME.GFX .AZ "/dev/gfx" FONTFILE .AZ "${ROOT}sbin/sysx7" FONTFILEB .AZ "${ROOT}sbin/sysx7b" PIXFILE .AZ "${ROOT}root/guitest/marilyn" -LOGOFILE .AZ "${ROOT}A2osX.logo" +*LOGOFILE .AZ "${ROOT}A2osX.logo" +LOGOFILE .AZ "${ROOT}root/BMP/A2osX.logo" +PALETTEFILE .AZ "${ROOT}root/BMP/PALETTE" MESSAGEB .AZ " DHGR Driver & OSD 'Off-Screen Driver' Test (SYSX7B Font, Inverse) " MESSAGE .AZ " 1234567890 abcdefghijklmnopqrstuvwxyz { + - * / } (SYSX7 Font, Normal) " @@ -211,6 +250,15 @@ CB.RECT .DA #S.CB.CMD.FILLRECT .DA 540 .DA 182 +CB.RECT2 .DA #S.CB.CMD.FILLRECT + .DA #S.CB.OP.SET + .DA #S.CB.M.C16 + .DA #0 Color + .DA 70 + .DA 150 + .DA 98 + .DA 180 + CB.Apple .DA #S.CB.CMD.BITBLT .DA #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.COLOR .DA #S.CB.M.C16 @@ -233,7 +281,7 @@ CB.PIX .DA #S.CB.CMD.BITBLT .DA 120 SrcW .DA 100 SrcH .DA 60 DstX - .DA 50 DstY + .DA 30 DstY .BS 2 SrcPtr .DA 0 DSTPTR @@ -250,6 +298,19 @@ CB.LOGO .DA #S.CB.CMD.BITBLT .BS 2 SrcPtr .DA 0 DSTPTR +CB.PALETTE .DA #S.CB.CMD.BITBLT + .DA #S.CB.OP.SET+S.CB.OP.COLOR + .DA #S.CB.M.C16 + .DA #0 + .DA 0 X1 + .DA 0 Y1 + .DA 320 SrcW + .DA 40 SrcH + .DA 200 DstX + .DA 100 DstY + .BS 2 SrcPtr + .DA 0 DSTPTR + CB.TEXTB .DA #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD .DA #S.CB.OP.SET+S.CB.OP.INVERSE .DA #S.CB.M.MONO diff --git a/DRV/DHGR.DRV.G.txt b/DRV/DHGR.DRV.G.txt index 699d5c64..b0d14bd8 100644 --- a/DRV/DHGR.DRV.G.txt +++ b/DRV/DHGR.DRV.G.txt @@ -106,7 +106,6 @@ Color.Masks .DA #%10001111,#%00000000,#%00000000,#%00000000 .DA #%00000000,#%00000000,#%11000000,#%00000111 .DA #%00000000,#%00000000,#%00000000,#%11111000 *-------------------------------------- -* bits to "ora" to set color of pixel (including "color bit set" for byte hosting bit0) * 4 bytes * 16 Colors *-------------------------------------- * c1110000 c3322221 c5444433 c6666555 diff --git a/ProDOS.FX/ProDOS.S.XRW.txt b/ProDOS.FX/ProDOS.S.XRW.txt index 0c2b6fa1..ef049d2d 100644 --- a/ProDOS.FX/ProDOS.S.XRW.txt +++ b/ProDOS.FX/ProDOS.S.XRW.txt @@ -79,12 +79,14 @@ L59BD jsr XRW.AllPhasesOff make sure all motor phases are off cmp XRW.LastUnitUsed same drive used before ? sta XRW.LastUnitUsed save it for next time. php keep results of compare. + asl get drive # into carry. lda IO.D2.DrvOn,x turn on the drive. bcc L5362 branch if drive 1 selected. inx select drive 2. L5362 lda IO.D2.DrvSel1,x + plp was it the same drive ? beq L5372 yes. @@ -100,6 +102,7 @@ L5362 lda IO.D2.DrvSel1,x php L5372 plp + bne L538E * motor was off, wait for it to speed up @@ -389,6 +392,8 @@ L596F ldy #$FF index to last byte of data to write. XRW.Write lda nbuf2 sta pcl + ldx A2L + lda #$FF sync data. sta IO.D2.WriteMode,x (5) goto write mode ora IO.D2.WShift,x (4)