Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-07-03 22:55:40 +02:00
parent 69c3710a85
commit 455336548a
9 changed files with 241 additions and 79 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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
*--------------------------------------

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)