Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-07-04 21:00:47 +02:00
parent 455336548a
commit 7df3a2e93e
10 changed files with 248 additions and 131 deletions

Binary file not shown.

View File

@ -650,10 +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.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.MAIN .HS 00.02.04.06.08.0A.0C.0E
.HS 01.03.05.07.09.0B.0D.0F
PALETTE.AUX .HS 00.01.02.03.04.05.06.07
.HS 08.09.0A.0B.0C.0D.0E.0F
*--------------------------------------
.EP
*--------------------------------------

View File

@ -66,9 +66,9 @@ CS.START cld
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.DOEVENT
.DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.USAGE .DA MSG.USAGE
L.MSG.HEADER.OK .DA MSG.HEADER.OK
L.MSG.HEADER.KO .DA MSG.HEADER.KO
L.MSG.DONE .DA MSG.DONE
@ -85,7 +85,7 @@ CS.RUN
lda (ZPPtr1)
cmp #'-'
bne .4
ldy #1
ldy #1
lda (ZPPtr1),y
ldx OptionList
@ -93,14 +93,14 @@ CS.RUN
beq .3
dex
bne .2
.99 >PUSHW L.MSG.USAGE
>PUSHBI 0
>SYSCALL PrintF
lda #E.SYN
sec
rts
.3 ldy OptionVars-1,x
lda #$80
sta (pData),y
@ -319,21 +319,21 @@ CS.RUN.24.LOOP inc ZPLineCount
jsr DEBUG.PLOT
lda ZPCntX
lsr
lsr
tay
pla
bcs .6
sta (ZPOutputBuf),y
bra .2
.6 asl
asl
asl
asl
ora (ZPOutputBuf),y
sta (ZPOutputBuf),y
bra .2
bra .2
.8 jsr CS.RUN.WriteOutput
bcs .9
@ -358,7 +358,7 @@ CS.RUN.GetNearestColor
ldx #2
.40 phx A = |c - C|
dey
lda PALETTE.RGB,y
sec
@ -440,14 +440,14 @@ CS.RUN.GetNearestColor
.8 dey
bpl .30
lda ZPPixelIndex16
CS.RUN.GetIndexInPalette.RTS
rts
*--------------------------------------
CS.RUN.OpenInput
>PUSHW ZPPtr1
>PUSHBI O.RDONLY
>PUSHBI O.RDONLY
>PUSHBI 0 Type
>PUSHWZ Aux type
>SYSCALL FOpen
@ -476,9 +476,9 @@ CS.RUN.OpenInput
beq .1
cmp #24
bne .99
.1 >PUSHW L.MSG.HEADER.OK
>LDA.G BMP.Header+S.BMP.W
>STA.G PIX.Header+S.BM.W
pha
@ -493,7 +493,7 @@ CS.RUN.OpenInput
pha
eor #$ff
sta ZPLineCount
>LDA.G BMP.Header+S.BMP.H+1
>STA.G PIX.Header+S.BM.H+1
>PUSHA
@ -501,9 +501,9 @@ CS.RUN.OpenInput
sta ZPLineCount+1
pla
>PUSHA
>PUSHB.G BMP.Header+S.BMP.BPP
>PUSHBI 5
>SYSCALL PrintF
.9 rts
@ -533,7 +533,7 @@ CS.RUN.ReadInput
*--------------------------------------
CS.RUN.CreateOutput
>PUSHW ZPPtr1
>PUSHBI O.WRONLY+O.CREATE
>PUSHBI O.WRONLY+O.CREATE
>PUSHBI $CB PIX Type
>PUSHWZ Aux type
>SYSCALL FOpen
@ -639,7 +639,7 @@ DEBUG.PLOT php
pha
tax
lda ZPCntY
cmp #40
bcs .9
@ -656,7 +656,7 @@ DEBUG.PLOT php
sta SETPAGE2
lda PALETTE.AUX,x
bra .2
.1 sta CLRPAGE2
lda PALETTE.MAIN,x
@ -693,14 +693,14 @@ 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
CS.END
*--------------------------------------
.INB usr/src/shared/x.twist.g
*--------------------------------------
*--------------------------------------
OptionList >PSTR "Vv"
OptionVars .DA #bVerbose,#bVerbose
MSG.USAGE .AS "Usage : BMP2PIX BMP-File \r\n"
.AZ " -V : Verbose Mode\r\n"
MSG.HEADER.OK .AZ "BMP Size : %D x %D pixels, %d bit(s)/pixel\r\n"
MSG.HEADER.KO .AZ "Invalid Input File Format"
MSG.DONE .AZ "All Done!!!"
MSG.HEADER.OK .AZ "BMP Size : %D x %D pixels, %d bit(s)/pixel\r\n"
MSG.HEADER.KO .AZ "Invalid Input File Format"
MSG.DONE .AZ "All Done!!!"
*--------------------------------------
* LOWRES Patette : https://comp.sys.apple2.narkive.com/lTSrj2ZI/apple-ii-colour-rgb
*--------------------------------------
@ -721,44 +721,45 @@ MSG.DONE .AZ "All Done!!!"
* .HS ff6a3c00 ORANGE
* .HS d0dd8d00 YELLOW
*--------------------------------------
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.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
*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 #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
* .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.RGB .HS 00000000 BLACK
.HS 1f35D300 DARK.BLUE
.HS 00760c00 DARK.GREEN
.HS 07a8e000 BLUE
.HS 624c0000 BROWN
.HS 7e7e7e00 DARK.GRAY
.HS 43c80000 LIGHT.GREEN
.HS 5df78400 AQUA
.HS 930B7c00 RED
.HS bb36ff00 PURPLE
.HS 9c9c9c00 LIGHT.GRAY
.HS b5afff00 LIGHT.BLUE
.HS f9561d00 ORANGE
.HS ff81ec00 PINK
.HS dccd1600 YELLOW
.HS ffffff00 WHITE
*--------------------------------------
PALETTE.MAIN .HS 00.02.04.06.08.0A.0C.0E
.HS 01.03.05.07.09.0B.0D.0F
PALETTE.AUX .HS 00.01.02.03.04.05.06.07
.HS 08.09.0A.0B.0C.0D.0E.0F
*PALETTE.AUX .HS 00.08.01.09.02.0A.03.0B
* .HS 04.0C.05.0D.06.0E.07.0F

View File

@ -16,6 +16,9 @@ ZS.START
hDevGFX .BS 1
hFont .BS 1
hFontB .BS 1
bVBL .BS 1
xDir .BS 1
yDir .BS 1
ZS.END
.ED
*--------------------------------------
@ -25,7 +28,7 @@ CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA #0 #S.PS.F.EVENT S.PS.F
.DA #S.PS.F.EVENT S.PS.F
.DA #0
.DA CS.END-CS.START Code Size (without Constants)
.DA DS.END-DS.START Data Segment Size
@ -95,9 +98,6 @@ CS.RUN jsr GFX.Open
.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
@ -131,12 +131,122 @@ CS.RUN jsr GFX.Open
>LDYA L.CB.TEXT
jsr GFX.Write.YA
jsr CS.RUN.LOGO.SHOW
lda #0
sec
.9 rts
*--------------------------------------
CS.DOEVENT clc
CS.RUN.LOGO.SHOW
lda #S.CB.CMD.GETRECTBUFSIZE
sta CB.LOGO+S.CB.CMD
>LDYA L.CB.LOGO
jsr GFX.Write.YA
>SYSCALL NewStkObj
stx CB.LOGO+S.CB.DstPtr
lda #S.CB.CMD.BITBLT
sta CB.LOGO+S.CB.CMD
.1 lda #S.CB.OP.SET+S.CB.OP.COLOR+S.CB.OP.SAVE
sta CB.LOGO+S.CB.OP
>LDYA L.CB.LOGO
jsr GFX.Write.YA
ldy #S.PS.hStdIn
lda (pPS),y
>SYSCALL feof
bcs .99
tay
beq .80
.2 >SLEEP
bit bVBL
bpl .2
stz bVBL
lda #S.CB.OP.SET+S.CB.OP.COLOR+S.CB.OP.RESTORE
sta CB.LOGO+S.CB.OP
>LDYA L.CB.LOGO
jsr GFX.Write.YA
bit xDIR
bmi .4
lda CB.LOGO+S.CB.DstX
clc
adc #4
tay
lda CB.LOGO+S.CB.DstX+1
adc #0
pha
cpy #244
sbc /244
pla
bcc .5
.3 lda xDIR
eor #$ff
sta xDIR
bra .6
.4 lda CB.LOGO+S.CB.DstX
sec
sbc #4
tay
lda CB.LOGO+S.CB.DstX+1
sbc #0
bcc .3
.5 sty CB.LOGO+S.CB.DstX
sta CB.LOGO+S.CB.DstX+1
.6 lda CB.LOGO+S.CB.DstY
bit yDIR
bmi .8
inc
cmp #152
bne .7
.60 lda yDIR
eor #$ff
sta yDIR
bra .1
.7 sta CB.LOGO+S.CB.DstY
bra .1
.8 sec
sbc #1
bcc .60
sta CB.LOGO+S.CB.DstY
jmp .1
.80 >SYSCALL GetChar
.99 rts
*--------------------------------------
CS.DOEVENT lda (pEvent)
bpl .9
sta bVBL
.9 sec never discard TIME event
rts
*--------------------------------------
CS.QUIT lda hFont
@ -244,7 +354,7 @@ MESSAGE .AZ " 1234567890 abcdefghijklmnopqrstuvwxyz { + - * / } (SYSX7 Font, N
CB.RECT .DA #S.CB.CMD.FILLRECT
.DA #S.CB.OP.SET
.DA #S.CB.M.C16
.DA #6 Color
.DA #11 Color
.DA 20
.DA 10
.DA 540
@ -254,10 +364,10 @@ 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
.DA 60 X1
.DA 150 Y1
.DA 88 X2
.DA 180 Y2
CB.Apple .DA #S.CB.CMD.BITBLT
.DA #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.COLOR
@ -268,9 +378,9 @@ CB.Apple .DA #S.CB.CMD.BITBLT
.DA 16 SrcW
.DA 7 SrcH
.DA 20 DstX
.DA 184 DstY
.DA 172 DstY
.BS 2 SrcPtr
.DA 0 DSTPTR
.DA 0 DstPtr
CB.PIX .DA #S.CB.CMD.BITBLT
.DA #S.CB.OP.SET+S.CB.OP.COLOR
@ -280,23 +390,10 @@ CB.PIX .DA #S.CB.CMD.BITBLT
.DA 20 Y1
.DA 120 SrcW
.DA 100 SrcH
.DA 60 DstX
.DA 56 DstX
.DA 30 DstY
.BS 2 SrcPtr
.DA 0 DSTPTR
CB.LOGO .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 50 DstY
.BS 2 SrcPtr
.DA 0 DSTPTR
.DA 0 DstPtr
CB.PALETTE .DA #S.CB.CMD.BITBLT
.DA #S.CB.OP.SET+S.CB.OP.COLOR
@ -309,7 +406,7 @@ CB.PALETTE .DA #S.CB.CMD.BITBLT
.DA 200 DstX
.DA 100 DstY
.BS 2 SrcPtr
.DA 0 DSTPTR
.DA 0 DstPtr
CB.TEXTB .DA #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
.DA #S.CB.OP.SET+S.CB.OP.INVERSE
@ -322,7 +419,7 @@ CB.TEXTB .DA #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
.DA 7 DstX
.DA 1 DstY
.BS 2 TXTPTR
.DA 0 DSTPTR
.DA 0 DstPtr
CB.TEXT .DA #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
.DA #S.CB.OP.SET
@ -335,7 +432,7 @@ CB.TEXT .DA #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
.DA 50 DstX
.DA 184 DstY
.BS 2 TXTPTR
.DA 0 DSTPTR
.DA 0 DstPtr
*--------------------------------------
BM.Apple .DA #S.BM.F.BBP4
.DA #2 RowBytes
@ -346,8 +443,8 @@ BM.Apple .DA #S.BM.F.BBP4
.HS 6006 green (8)
.HS EEEE yellow (15)
.HS CC0C orange (14)
.HS 8808 magenta (10)
.HS 9999 violet (11)
.HS 9909 magenta (10)
.HS 8888 violet (11)
.HS 1001 Dark blue (4)
BM.Apple.AND .HS FFF0
.HS 0FF0
@ -356,6 +453,19 @@ BM.Apple.AND .HS FFF0
.HS 00F0
.HS 0000
.HS 0FF0
*--------------------------------------
CB.LOGO .DA #S.CB.CMD.BITBLT
.DA #S.CB.OP.SET+S.CB.OP.COLOR+S.CB.OP.SAVE
.DA #S.CB.M.C16
.DA #0
.DA 0 X1
.DA 0 Y1
.DA 320 SrcW
.DA 40 SrcH
.DA 200 DstX
.DA 50 DstY
.BS 2 SrcPtr
.DA 0 DstPtr
*--------------------------------------
.DUMMY
.OR 0

View File

@ -110,21 +110,21 @@ Color.Masks .DA #%10001111,#%00000000,#%00000000,#%00000000
*--------------------------------------
* c1110000 c3322221 c5444433 c6666555
Color.Pixels .DA #%00000000,#%00000000,#%00000000,#%00000000 black (color bit disable)
.DA #%01111111,#%01111111,#%01111111,#%01111111 white (color bit disable)
.DA #%10101010,#%11010101,#%10101010,#%11010101 grey1
.DA #%11010101,#%10101010,#%11010101,#%10101010 grey2
.DA #%10010001,#%10100010,#%11000100,#%10001000 dark blue
.DA #%10110011,#%11100110,#%11001100,#%10011001 medium blue
.DA #%10111011,#%11110111,#%11101110,#%11011101 light blue
.DA #%10100010,#%11000100,#%10001000,#%10010001 dark green
.DA #%10110011,#%11100110,#%11001100,#%10011001 medium blue
.DA #%11000100,#%10001000,#%10010001,#%10100010 brown
.DA #%11010101,#%10101010,#%11010101,#%10101010 grey2
.DA #%11100110,#%11001100,#%10011001,#%10110011 green
.DA #%11110111,#%11101110,#%11011101,#%10111011 aqua
.DA #%10001000,#%10010001,#%10100010,#%11000100 Magenta
.DA #%10011001,#%10110011,#%11100110,#%11001100 violet
.DA #%11011101,#%10111011,#%11110111,#%11101110 pink
.DA #%11000100,#%10001000,#%10010001,#%10100010 brown
.DA #%10101010,#%11010101,#%10101010,#%11010101 grey1
.DA #%10111011,#%11110111,#%11101110,#%11011101 light blue
.DA #%11001100,#%10011001,#%10110011,#%11100110 orange
.DA #%11011101,#%10111011,#%11110111,#%11101110 pink
.DA #%11101110,#%11011101,#%10111011,#%11110111 yellow
.DA #%01111111,#%01111111,#%01111111,#%01111111 white (color bit disable)
*--------------------------------------
COL.BANK .DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2
.DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2

View File

@ -17,22 +17,36 @@ NEW
*--------------------------------------
BITBLT ldy CB.Cache+S.CB.SrcPtr
lda CB.Cache+S.CB.SrcPtr+1
bne BITBLT.1
bne .1
sta SETREADAUX
sta SETWRITEAUX
sta SETREADAUX SrcPtr is AUX hMem
tya
>SYSCALL2 GetMemPtr
jsr BITBLT.1
.1 >STYA ZPBMDataPtr
lda CB.Cache+S.CB.OP
bit #S.CB.OP.SAVE+S.CB.OP.RESTORE
beq .3
ldy CB.Cache+S.CB.DstPtr
lda CB.Cache+S.CB.DstPtr+1
bne .2
sta SETWRITEAUX DstPtr is AUX hMem
tya
>SYSCALL2 GetMemPtr
.2 >STYA ZPBMSavePtr
.3 jsr BITBLT.1
sta CLRREADAUX
sta CLRWRITEAUX
rts
BITBLT.1 >STYA ZPBMDataPtr
ldy #S.BM-1
BITBLT.1 ldy #S.BM-1
.1 lda (ZPBMDataPtr),y
sta BM.Cache,y
@ -61,9 +75,7 @@ BITBLT.1 >STYA ZPBMDataPtr
bcc .2
inc ZPBMDataPtr+1
.2 >LDYA CB.Cache+S.CB.DstPtr
>STYA ZPBMSavePtr
>LDYA CB.Cache+S.CB.Y1
.2 >LDYA CB.Cache+S.CB.Y1
ldx BM.Cache+S.BM.RowBytes
jsr YAMultX
pha

View File

@ -1,6 +1,6 @@
NEW
AUTO 3,1
.LIST OFF
.LIST OFF
*--------------------------------------
* FILLRECT
* 1 : OP (XOR,SET,ORA)
@ -16,7 +16,7 @@ FILLRECT jsr HLINE
ldy CB.Cache+S.CB.Y1
cpy CB.Cache+S.CB.Y2
beq .8
.2 iny
phy
jsr LBUF.DrawAtY
@ -37,20 +37,12 @@ GETRECTBUFSIZE >LDYA CB.Cache+S.CB.X1
sta ZPTmpByte
>LDYA CB.Cache+S.CB.X2
jsr DIVMOD7YA
inc COL2 + 1
inc COL2 + 1
sec
sbc ZPTmpByte (COL2+1)-COL1
tax
>LDYA CB.Cache+S.CB.Y1
jsr YAMultX
phy
ldy #S.CB.DstPtr+1
sta (ZPIOCTL),y
pla
dey
sta (ZPIOCTL),y
rts
>LDYA CB.Cache+S.CB.SrcH
jmp YAMultX
*--------------------------------------
MAN
SAVE usr/src/drv/dhgr.drv.s.blt

View File

@ -441,7 +441,7 @@ CLOSE lda #S.DIB.S.OPENED
rts
*--------------------------------------
WRITE >STYA ZPIOCTL NON STANDARD
sta SET80STORE
lda (ZPIOCTL) Get Cmd
bmi .2
@ -546,7 +546,7 @@ DRV.CS.END
*--------------------------------------
CONTROL.80C .DA #SETIOUDIS
.DA #CLRTEXT
.DA #SETHIRES
* .DA #SETHIRES
.DA #CLR80DISP
.DA #SETAN3
.DA #CLRAN3
@ -562,7 +562,7 @@ CONTROL.80C .DA #SETIOUDIS
CONTROL.EVE .DA #SETIOUDIS
.DA #CLRTEXT
.DA #SETHIRES
* .DA #SETHIRES
.DA #HR1.OFF
.DA #HR2.ON
.DA #HR3.ON

View File

@ -74,6 +74,7 @@ S.CB.M.C16 .EQ %00001000 16 colors (4 bits/pixel)
*S.CB.M.C256 .EQ %00010000 256 colors (8 bits/pixel)
S.CB.COLOR .EQ 3 xPIXEL,xLINE,FILLRECT
S.CB.hFont .EQ 3 DRAWTEXT
S.CB.X1 .EQ 4 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE
S.CB.Y1 .EQ 6 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE

View File

@ -376,7 +376,7 @@ TERMX.COUT.BS.1 ldy #S.DCB.TTY.CV
sta (ZPDCBPtr),y
lda #79
dey
ldy #S.DCB.TTY.CH
sta (ZPDCBPtr),y
.2 clc
@ -1367,11 +1367,12 @@ SetCharAtY.SCR pha
lsr
tay
pla
sta SET80STORE
sta CLRPAGE2
bcs .2
sta SETPAGE2
.2 sta (ZPScrBaseL1),y
sta CLRPAGE2
SetCharAtYX.8 rts
*--------------------------------------