mirror of https://github.com/A2osX/A2osX.git
Kernel 0.93
This commit is contained in:
parent
6bf3599ad2
commit
c84579c4f8
Binary file not shown.
|
@ -606,13 +606,13 @@ CMD.CALL >LDA.G hFuncList
|
|||
CMD.CALL.YAX stx M32.ACC X=Code to Execute
|
||||
|
||||
jsr CORE.ArgV.Dup Y,A = ArgV
|
||||
bcs .9
|
||||
bcs CMD.CALL.RTS
|
||||
sta M32.ACC+2 A=ARGC
|
||||
stx M32.ACC+1 X=ARGV
|
||||
|
||||
|
||||
lda #8
|
||||
jsr CORE.StkCheck
|
||||
bcs .9
|
||||
bcs CMD.CALL.RTS
|
||||
|
||||
lda ZPInputBuf
|
||||
jsr CORE.StkPush
|
||||
|
@ -628,16 +628,20 @@ CMD.CALL.YAX stx M32.ACC X=Code to Execute
|
|||
|
||||
ldy #S.PS.ARGC
|
||||
lda (pPS),y
|
||||
jsr CORE.StkPush
|
||||
|
||||
lda M32.ACC+2 new ARGC
|
||||
ldy #S.PS.ARGC
|
||||
sta (pPS),y
|
||||
|
||||
lda M32.ACC+1 new ARGV
|
||||
jsr CORE.StkPush old ARGC
|
||||
|
||||
ldy #S.PS.hARGV
|
||||
lda (pPS),y
|
||||
jsr CORE.StkPush old ARGV
|
||||
|
||||
ldy #S.PS.ARGC
|
||||
lda M32.ACC+2 new ARGC
|
||||
sta (pPS),y
|
||||
|
||||
iny #S.PS.hARGV
|
||||
lda M32.ACC+1
|
||||
sta (pPS),y new ARGV
|
||||
|
||||
lda M32.ACC new code
|
||||
jsr CORE.StkPush
|
||||
|
||||
|
@ -650,25 +654,25 @@ CMD.CALL.YAX stx M32.ACC X=Code to Execute
|
|||
jsr CORE.StkPush
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
CMD.CALL.9 rts
|
||||
*--------------------------------------
|
||||
CMD.EXIT lda (ZPArgVBufPtr)
|
||||
beq CMD.EXIT.A no arg, exit 0
|
||||
beq .1 no arg, exit 0
|
||||
|
||||
>LDYA ZPArgVBufPtr
|
||||
jsr EXP.GET
|
||||
bcs CMD.EXIT.RTS
|
||||
bcs CMD.CALL.9
|
||||
>SYSCALL AToL
|
||||
bcs CMD.EXIT.RTS
|
||||
bcs CMD.CALL.9
|
||||
|
||||
>PULLA
|
||||
inc pStack
|
||||
inc pStack
|
||||
inc pStack
|
||||
|
||||
jsr CMD.EXIT.A
|
||||
.1 jsr CMD.EXIT.A
|
||||
bcs .9
|
||||
|
||||
|
||||
lda (pData)
|
||||
bne .8
|
||||
|
||||
|
@ -687,22 +691,9 @@ CMD.EXIT.A sta M32.ACC
|
|||
cmp #$C0 in CALL / . context ?
|
||||
beq .8
|
||||
|
||||
and #$3F
|
||||
cmp #C.IF
|
||||
beq .1
|
||||
|
||||
.2 ldx #2
|
||||
cmp #C.WHILE
|
||||
bne CMD.EXIT.99
|
||||
|
||||
.3 lda (pData)
|
||||
|
||||
.4 dec
|
||||
dex
|
||||
bne .4
|
||||
|
||||
.5 sta (pData)
|
||||
bra .1
|
||||
jsr CMD.EXIT.POP
|
||||
bcc .1
|
||||
rts
|
||||
|
||||
.8 jsr CORE.StkPull
|
||||
>SYSCALL freemem Code buffer
|
||||
|
@ -734,8 +725,27 @@ CMD.EXIT.A sta M32.ACC
|
|||
lda M32.ACC
|
||||
clc
|
||||
CMD.EXIT.RTS rts
|
||||
*--------------------------------------
|
||||
CMD.EXIT.POP and #$3F
|
||||
cmp #C.IF
|
||||
beq .8
|
||||
|
||||
.2 ldx #2
|
||||
cmp #C.WHILE
|
||||
bne .9
|
||||
|
||||
.3 lda (pData)
|
||||
|
||||
.4 dec
|
||||
dex
|
||||
bne .4
|
||||
|
||||
CMD.EXIT.99 lda #E.STACKERROR
|
||||
sta (pData)
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 lda #E.STACKERROR
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
553
BMP2PIX.S.txt
553
BMP2PIX.S.txt
|
@ -1,24 +1,50 @@
|
|||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
.TF ROOT/BMP2PIX
|
||||
.TF BIN/BMP2PIX
|
||||
*--------------------------------------
|
||||
.INB INC/MACROS.I
|
||||
.INB INC/A2OSX.I
|
||||
.INB INC/GUI.I
|
||||
.INB INC/IO.I
|
||||
.INB INC/GFX.I
|
||||
.INB INC/LIBGUI.I
|
||||
*--------------------------------------
|
||||
ZPPTR1 .EQ ZPBIN
|
||||
ZPInputBufPtr .EQ ZPBIN+2
|
||||
ZPInputBufLen .EQ ZPBIN+4
|
||||
ZPInputDataPtr .EQ ZPBIN+6
|
||||
ZPBMPRowBytes .EQ ZPBIN+8
|
||||
ZPPIXRowBytes .EQ ZPBIN+10
|
||||
ZPBufPtr .EQ ZPBIN+12
|
||||
ZPLineCount .EQ ZPBIN+14
|
||||
S.BMP.BM .EQ 0
|
||||
S.BMP.SIZE .EQ 2
|
||||
S.BMP.DATA.OFS .EQ $A
|
||||
S.BMP.HDR.SIZE .EQ $E
|
||||
S.BMP.W .EQ $12
|
||||
S.BMP.H .EQ $16
|
||||
S.BMP.PLANES .EQ $1A
|
||||
S.BMP.BPP .EQ $1C
|
||||
*
|
||||
S.BMP .EQ $36
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR ZPBIN
|
||||
ZS.START
|
||||
ZPPTR1 .BS 2
|
||||
ZPInputBufPtr .BS 2
|
||||
ZPInputBufLen .BS 2
|
||||
ZPInputDataPtr .BS 2
|
||||
|
||||
ZPBMPRowBytes .BS 2
|
||||
ZPPIXRowBytes .BS 2
|
||||
ZPBufPtr .BS 2
|
||||
ZPLineCount .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
|
||||
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
|
@ -26,11 +52,12 @@ CS.START cld
|
|||
jmp (.1,x)
|
||||
.DA #$61 6502,Level 1 (65c02)
|
||||
.DA #1 BIN Layout Version 1
|
||||
.DA 0
|
||||
.DA #0 S.PS.F.EVENT
|
||||
.DA #0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #64 SS
|
||||
.DA #16 ZP
|
||||
.DA #ZS.END-ZS.START Zero Page Size
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
|
@ -46,7 +73,10 @@ L.MSG.HEADER.KO .DA MSG.HEADER.KO
|
|||
L.MSG.DONE .DA MSG.DONE
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT
|
||||
CS.INIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN
|
||||
.1 >INC.G ArgCount
|
||||
>SYSCALL ArgV
|
||||
bcs .7
|
||||
|
@ -67,7 +97,8 @@ CS.INIT
|
|||
dex
|
||||
bne .2
|
||||
|
||||
.99 >LDYA L.MSG.USAGE
|
||||
.99 >PUSHBI 0
|
||||
>LDYA L.MSG.USAGE
|
||||
>SYSCALL printf
|
||||
lda #E.SYN
|
||||
sec
|
||||
|
@ -80,117 +111,33 @@ CS.INIT
|
|||
|
||||
.4 >LDA.G hInputBuf
|
||||
bne .5
|
||||
jsr CS.INIT.OPENINPUT
|
||||
jsr CS.RUN.OPENINPUT
|
||||
bcc .1 scan for any other args
|
||||
rts
|
||||
|
||||
.5 >LDA.G hOutputFile
|
||||
bne .99
|
||||
jsr CS.INIT.CREATEOUTPUT
|
||||
jsr CS.RUN.CREATEOUTPUT
|
||||
bcc .1 scan for any other args
|
||||
rts
|
||||
.9 rts
|
||||
|
||||
.7 >LDA.G hOutputFile
|
||||
beq .99
|
||||
|
||||
>LDYAI 256
|
||||
>SYSCALL getmem
|
||||
bcs CS.INIT.RTS
|
||||
bcs .9
|
||||
|
||||
>STYA ZPBufPtr
|
||||
txa
|
||||
>STA.G hBuf
|
||||
|
||||
.8 clc
|
||||
CS.INIT.RTS rts
|
||||
>LDA.G BMP.BPP
|
||||
cmp #1
|
||||
beq CS.RUN.1
|
||||
jmp CS.RUN.24
|
||||
*--------------------------------------
|
||||
CS.INIT.OPENINPUT
|
||||
>PUSHWI 0 Aux type
|
||||
>PUSHBI 0 Type
|
||||
>PUSHBI O.RDONLY
|
||||
>LDYA ZPPtr1
|
||||
>SYSCALL LoadFile
|
||||
bcs CS.INIT.RTS
|
||||
|
||||
>STYA ZPInputBufLen
|
||||
>PUSHYA
|
||||
|
||||
txa
|
||||
>STA.G hInputBuf
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPInputBufPtr
|
||||
|
||||
>LDYA L.MSG.FILE.OK
|
||||
>SYSCALL printf
|
||||
|
||||
lda (ZPInputBufPtr)
|
||||
cmp #'B'
|
||||
bne .99
|
||||
|
||||
ldy #1
|
||||
lda (ZPInputBufPtr),y
|
||||
cmp #'M'
|
||||
bne .99
|
||||
|
||||
ldy #$1C BBP LO
|
||||
lda (ZPInputBufPtr),y
|
||||
cmp #1
|
||||
bne .99
|
||||
iny BBP HI
|
||||
lda (ZPInputBufPtr),y
|
||||
bne .99
|
||||
|
||||
ldy #$16 H LO
|
||||
lda (ZPInputBufPtr),y
|
||||
>STA.G PIX.Header+S.BM.H
|
||||
pha
|
||||
eor #$ff
|
||||
sta ZPLineCount
|
||||
|
||||
ldy #$17 H HI
|
||||
lda (ZPInputBufPtr),y
|
||||
>STA.G PIX.Header+S.BM.H+1
|
||||
>PUSHA
|
||||
eor #$ff
|
||||
sta ZPLineCount+1
|
||||
|
||||
pla
|
||||
>PUSHA
|
||||
|
||||
ldy #$12 W LO
|
||||
lda (ZPInputBufPtr),y
|
||||
>STA.G PIX.Header+S.BM.W
|
||||
pha
|
||||
|
||||
ldy #$13 W HI
|
||||
lda (ZPInputBufPtr),y
|
||||
>STA.G PIX.Header+S.BM.W+1
|
||||
>PUSHA
|
||||
pla
|
||||
>PUSHA
|
||||
|
||||
>LDYA L.MSG.HEADER.OK
|
||||
>SYSCALL printf
|
||||
clc
|
||||
rts
|
||||
|
||||
.99 >LDYA L.MSG.HEADER.KO
|
||||
>SYSCALL printf
|
||||
lda #E.IBIN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.INIT.CREATEOUTPUT
|
||||
>PUSHWI 0 Aux type
|
||||
>PUSHBI $CB PIX Type
|
||||
>PUSHBI O.WRONLY+O.CREATE
|
||||
>LDYA ZPPtr1
|
||||
>SYSCALL FOpen
|
||||
bcs .9
|
||||
>STA.G hOutputFile
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN lda #S.BM.F.BBP1
|
||||
CS.RUN.1 lda #S.BM.F.BBP1
|
||||
>STA.G PIX.Header+S.BM.F
|
||||
|
||||
>LDA.G PIX.Header+S.BM.W
|
||||
|
@ -249,13 +196,10 @@ CS.RUN lda #S.BM.F.BBP1
|
|||
adc ZPInputBufLen+1
|
||||
sta ZPInputDataPtr+1
|
||||
|
||||
>PUSHWI S.BM
|
||||
>PUSHEA.G PIX.Header
|
||||
>LDA.G hOutputFile
|
||||
>SYSCALL FWrite
|
||||
jsr CS.RUN.WRITE.HDR
|
||||
bcs CS.RUN.RTS
|
||||
|
||||
CS.RUN.LOOP inc ZPLineCount
|
||||
CS.RUN.1.LOOP inc ZPLineCount
|
||||
bne .1
|
||||
inc ZPLineCount+1
|
||||
beq .8
|
||||
|
@ -294,16 +238,265 @@ CS.RUN.LOOP inc ZPLineCount
|
|||
|
||||
|
||||
|
||||
bra CS.RUN.LOOP
|
||||
bra CS.RUN.1.LOOP
|
||||
|
||||
|
||||
.8 >LDYA L.MSG.DONE
|
||||
>SYSCALL printf
|
||||
>SYSCALL puts
|
||||
|
||||
lda #0
|
||||
sec
|
||||
CS.RUN.RTS rts
|
||||
*--------------------------------------
|
||||
CS.RUN.24 lda #S.BM.F.BBP4
|
||||
>STA.G PIX.Header+S.BM.F
|
||||
|
||||
ldy #S.BMP.DATA.OFS
|
||||
lda (ZPInputBufPtr),y
|
||||
clc
|
||||
adc ZPInputBufPtr
|
||||
tax
|
||||
|
||||
iny
|
||||
lda (ZPInputBufPtr),y
|
||||
adc ZPInputBufPtr+1
|
||||
stx ZPInputBufPtr
|
||||
sta ZPInputBufPtr+1
|
||||
|
||||
jsr DEBUG.ClrScr
|
||||
|
||||
lda #0
|
||||
sta ZPCntX
|
||||
|
||||
lda #0
|
||||
sta ZPCntY
|
||||
|
||||
CS.RUN.24.LOOP ldx #2
|
||||
ldy #0
|
||||
|
||||
.1 lda (ZPInputBufPtr),y
|
||||
sta ZPPixel24,x
|
||||
iny
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
lda ZPInputBufPtr
|
||||
clc
|
||||
adc #3
|
||||
sta ZPInputBufPtr
|
||||
bcc .2
|
||||
inc ZPInputBufPtr+1
|
||||
|
||||
.2 jsr CS.RUN.GetIndexInPalette
|
||||
|
||||
jsr DEBUG.PLOT
|
||||
|
||||
inc ZPCntX
|
||||
lda ZPCntX
|
||||
>CMP.G PIX.Header+S.BM.W
|
||||
bne CS.RUN.24.LOOP
|
||||
|
||||
stz ZPCntX
|
||||
|
||||
inc ZPCntY
|
||||
lda ZPCntY
|
||||
>CMP.G PIX.Header+S.BM.H
|
||||
bne CS.RUN.24.LOOP
|
||||
|
||||
|
||||
lda #0
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetIndexInPalette
|
||||
|
||||
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
|
||||
sec
|
||||
sbc ZPPixel24,x
|
||||
bcs .5
|
||||
|
||||
eor #$ff
|
||||
inc
|
||||
|
||||
.5 phx
|
||||
*
|
||||
sta ZBTmpB1
|
||||
sta ZBTmpW
|
||||
stz ZBTmpW+1
|
||||
|
||||
lda #0
|
||||
ldx #8
|
||||
|
||||
.1 lsr ZBTmpW
|
||||
bcc .2
|
||||
clc
|
||||
adc ZBTmpB1
|
||||
|
||||
.2 ror
|
||||
ror ZBTmpW
|
||||
dex
|
||||
bne .1
|
||||
|
||||
sta ZBTmpW+1
|
||||
|
||||
lda ZPPixelScore
|
||||
clc
|
||||
adc ZBTmpW
|
||||
sta ZPPixelScore
|
||||
|
||||
lda ZPPixelScore+1
|
||||
adc ZBTmpW+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
|
||||
sta ZPPixelIndex16
|
||||
|
||||
.8 dey
|
||||
bpl .30
|
||||
|
||||
lda ZPPixelIndex16
|
||||
CS.RUN.GetIndexInPalette.RTS
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.OPENINPUT
|
||||
>PUSHWI 0 Aux type
|
||||
>PUSHBI 0 Type
|
||||
>PUSHBI O.RDONLY
|
||||
>LDYA ZPPtr1
|
||||
>SYSCALL LoadFile
|
||||
bcs CS.RUN.GetIndexInPalette.RTS
|
||||
|
||||
>STYA ZPInputBufLen
|
||||
|
||||
txa
|
||||
>STA.G hInputBuf
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPInputBufPtr
|
||||
|
||||
>PUSHW ZPInputBufLen
|
||||
>PUSHBI 2
|
||||
>LDYA L.MSG.FILE.OK
|
||||
>SYSCALL printf
|
||||
|
||||
lda (ZPInputBufPtr)
|
||||
cmp #'B'
|
||||
bne .99
|
||||
|
||||
ldy #1
|
||||
lda (ZPInputBufPtr),y
|
||||
cmp #'M'
|
||||
bne .99
|
||||
|
||||
ldy #S.BMP.BPP+1
|
||||
lda (ZPInputBufPtr),y
|
||||
bne .99
|
||||
dey
|
||||
lda (ZPInputBufPtr),y
|
||||
>STA.G BMP.BPP
|
||||
cmp #1
|
||||
beq .1
|
||||
|
||||
cmp #24
|
||||
bne .99
|
||||
|
||||
.1 >PUSHA
|
||||
ldy #S.BMP.H
|
||||
lda (ZPInputBufPtr),y
|
||||
>STA.G PIX.Header+S.BM.H
|
||||
pha
|
||||
eor #$ff
|
||||
sta ZPLineCount
|
||||
|
||||
ldy #S.BMP.H+1
|
||||
lda (ZPInputBufPtr),y
|
||||
>STA.G PIX.Header+S.BM.H+1
|
||||
>PUSHA
|
||||
eor #$ff
|
||||
sta ZPLineCount+1
|
||||
|
||||
pla
|
||||
>PUSHA
|
||||
|
||||
ldy #S.BMP.W
|
||||
lda (ZPInputBufPtr),y
|
||||
>STA.G PIX.Header+S.BM.W
|
||||
pha
|
||||
|
||||
ldy #S.BMP.W+1
|
||||
lda (ZPInputBufPtr),y
|
||||
>STA.G PIX.Header+S.BM.W+1
|
||||
>PUSHA
|
||||
pla
|
||||
>PUSHA
|
||||
|
||||
>PUSHBI 5
|
||||
>LDYA L.MSG.HEADER.OK
|
||||
>SYSCALL printf
|
||||
.9 rts
|
||||
|
||||
.99 >LDYA L.MSG.HEADER.KO
|
||||
>SYSCALL puts
|
||||
lda #E.IBIN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.CREATEOUTPUT
|
||||
>PUSHWI 0 Aux type
|
||||
>PUSHBI $CB PIX Type
|
||||
>PUSHBI O.WRONLY+O.CREATE
|
||||
>LDYA ZPPtr1
|
||||
>SYSCALL FOpen
|
||||
bcs .9
|
||||
>STA.G hOutputFile
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.WRITE.HDR
|
||||
>PUSHWI S.BM
|
||||
>PUSHEA.G PIX.Header
|
||||
>LDA.G hOutputFile
|
||||
>SYSCALL FWrite
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -311,7 +504,11 @@ CS.QUIT >LDA.G hBuf
|
|||
beq .1
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.1 >LDA.G hOutputFile
|
||||
.1 >LDA.G hInputBuf
|
||||
beq .2
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.2 >LDA.G hOutputFile
|
||||
beq .8
|
||||
|
||||
>SYSCALL fclose
|
||||
|
@ -319,41 +516,119 @@ CS.QUIT >LDA.G hBuf
|
|||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
DEBUG.ClrScr sta SETMIXED
|
||||
sta CLRTEXT
|
||||
|
||||
ldx #19
|
||||
|
||||
.1 lda SCR.BASEL,x
|
||||
sta ZPPTR1
|
||||
lda SCR.BASEH,x
|
||||
sta ZPPTR1+1
|
||||
|
||||
lda #0
|
||||
|
||||
ldy #39
|
||||
|
||||
.2 sta SETPAGE2
|
||||
sta (ZPPTR1),y
|
||||
sta CLRPAGE2
|
||||
sta (ZPPTR1),y
|
||||
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
dex
|
||||
bpl .1
|
||||
rts
|
||||
*--------------------------------------
|
||||
DEBUG.PLOT pha
|
||||
|
||||
lda ZPCntX
|
||||
lsr
|
||||
tay
|
||||
sta CLRPAGE2
|
||||
bcs .1 CS = main
|
||||
sta SETPAGE2
|
||||
|
||||
.1 lda ZPCntY
|
||||
lsr
|
||||
tax
|
||||
lda SCR.BASEL,x
|
||||
sta ZPPTR1
|
||||
lda SCR.BASEH,x
|
||||
sta ZPPTR1+1
|
||||
|
||||
pla
|
||||
bcc .2
|
||||
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
|
||||
.2 ora (ZPPTR1),y
|
||||
sta (ZPPTR1),y
|
||||
sta CLRPAGE2
|
||||
rts
|
||||
*--------------------------------------
|
||||
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
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
*--------------------------------------
|
||||
.INB ROOT/X.TWIST.G
|
||||
.INB USR/SRC/X.TWIST.G
|
||||
*--------------------------------------
|
||||
OptionList >PSTR "Vv"
|
||||
OptionVars .DA #bVerbose,#bVerbose
|
||||
MSG.USAGE .AZ "Usage : BMP2PIX BMP-File \r\n -V : Verbose Mode\r\n"
|
||||
MSG.USAGE .AS "Usage : BMP2PIX BMP-File \r\n"
|
||||
.AZ " -V : Verbose Mode\r\n"
|
||||
MSG.FILE.OK .AZ "BMP Loaded, %D Bytes Read\r\n"
|
||||
MSG.HEADER.OK .AZ "BMP Size : %D x %D pixels\r\n"
|
||||
MSG.HEADER.KO .AZ "Invalid Input File Format\r\n"
|
||||
MSG.DONE .AZ "All Done!!!\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!!!"
|
||||
*--------------------------------------
|
||||
* LOWRES Patette : https://comp.sys.apple2.narkive.com/lTSrj2ZI/apple-ii-colour-rgb
|
||||
*--------------------------------------
|
||||
0 #000000
|
||||
1 #e31e60
|
||||
2 #604ebd
|
||||
3 #ff44fd
|
||||
4 #00a360
|
||||
5 #9c9c9c
|
||||
6 #14cffd
|
||||
7 #d0c3ff
|
||||
8 #607203
|
||||
9 #ff6a3c
|
||||
a #9c9c9c (yes it is the same as #5!)
|
||||
b #ffa0d0
|
||||
c #14f53c
|
||||
d #d0dd8d
|
||||
e #72ffd0
|
||||
f #ffffff
|
||||
PALETTE.RGB .HS 00000000 BLACK
|
||||
.HS e31e6000 RED
|
||||
.HS 604ebd00 DARK.BLUE
|
||||
.HS ff44fd00 PURPLE
|
||||
.HS 00a36000 DARK.GREEN
|
||||
.HS 9c9c9c00 DARK.GRAY
|
||||
.HS 14cffd00 BLUE
|
||||
.HS d0c3ff00 LIGHT.BLUE
|
||||
.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.BGR .HS 00000000 BLACK
|
||||
.HS 601ee300 RED
|
||||
.HS bd4e6000 DARK.BLUE
|
||||
.HS fd44ff00 PURPLE
|
||||
.HS 60a30000 DARK.GREEN
|
||||
.HS 9c9c9c00 DARK.GRAY
|
||||
.HS fdcf1400 BLUE
|
||||
.HS ffc3d000 LIGHT.BLUE
|
||||
.HS 03726000 BROWN
|
||||
.HS 3c6aff00 ORANGE
|
||||
.HS 9c9c9c00 DARK.GRAY
|
||||
.HS d0a0ff00 PINK
|
||||
.HS 3cf51400 LIGHT.GREEN
|
||||
.HS 8dddd000 YELLOW
|
||||
.HS d0ff7200 AQUA
|
||||
.HS ffffff00 WHITE
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
PIX.Header .BS S.BM
|
||||
BMP.BPP .BS 1
|
||||
ArgCount .BS 1
|
||||
hInputBuf .BS 1
|
||||
hOutputFile .BS 1
|
||||
|
@ -363,5 +638,5 @@ DS.END
|
|||
.ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.BUILD/ROOT/BMP2PIX.S
|
||||
SAVE USR/SRC/BIN/BMP2PIX.S
|
||||
ASM
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 8.3 KiB |
|
@ -1,6 +1,5 @@
|
|||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 4,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
TWIST .DA #%00000000,#%10000000,#%01000000,#%11000000,#%00100000,#%10100000,#%01100000,#%11100000
|
||||
|
@ -37,4 +36,4 @@ TWIST .DA #%00000000,#%10000000,#%01000000,#%11000000,#%00100000,#%10100000,#%
|
|||
.DA #%00011111,#%10011111,#%01011111,#%11011111,#%00111111,#%10111111,#%01111111,#%11111111
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.BUILD/ROOT/X.TWIST.G
|
||||
SAVE USR/SRC/X.TWIST.G
|
||||
|
|
Loading…
Reference in New Issue