2017-12-22 21:24:30 +00:00
|
|
|
|
NEW
|
2018-11-17 17:17:13 +00:00
|
|
|
|
PREFIX
|
2017-12-22 21:24:30 +00:00
|
|
|
|
AUTO 4,1
|
2017-12-07 16:33:39 +00:00
|
|
|
|
.LIST OFF
|
|
|
|
|
.OP 65C02
|
|
|
|
|
.OR $2000
|
2018-07-23 15:28:42 +00:00
|
|
|
|
.TF ROOT/FNT2FON
|
2017-12-07 16:33:39 +00:00
|
|
|
|
*--------------------------------------
|
2018-07-23 15:28:42 +00:00
|
|
|
|
.INB INC/MACROS.I
|
|
|
|
|
.INB INC/A2OSX.I
|
|
|
|
|
.INB INC/GUI.I
|
|
|
|
|
.INB INC/LIBGUI.I
|
|
|
|
|
.INB ROOT/X.FNT.I
|
2017-12-08 16:10:39 +00:00
|
|
|
|
*--------------------------------------
|
2017-12-07 16:33:39 +00:00
|
|
|
|
ZPPTR1 .EQ ZPBIN
|
|
|
|
|
ZPInputBufPtr .EQ ZPBIN+2
|
2017-12-11 16:54:34 +00:00
|
|
|
|
ZPInputTblPtr .EQ ZPBIN+4
|
|
|
|
|
ZPInputBMPtr .EQ ZPBIN+6
|
2017-12-12 16:35:16 +00:00
|
|
|
|
ZPCharBufPtr .EQ ZPBIN+8
|
|
|
|
|
ZPOutPutTblPtr .EQ ZPBIN+10
|
2017-12-13 06:38:43 +00:00
|
|
|
|
ZPOutPutCharOfs .EQ ZPBIN+12
|
|
|
|
|
ZPOutPutBufPtr .EQ ZPBIN+14
|
2017-12-07 16:33:39 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
* File Header (16 Bytes)
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.START cld
|
|
|
|
|
jmp (.1,x)
|
|
|
|
|
.DA #$61 6502,Level 1 (65c02)
|
|
|
|
|
.DA #1 BIN Layout Version 1
|
|
|
|
|
.DA 0
|
|
|
|
|
.DA CS.END-CS.START CS
|
|
|
|
|
.DA DS.END-DS.START DS
|
|
|
|
|
.DA #64 SS
|
|
|
|
|
.DA #16 ZP
|
|
|
|
|
.DA 0
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* Relocation Table
|
2019-10-03 06:25:27 +00:00
|
|
|
|
*--------------------------------------
|
2017-12-07 16:33:39 +00:00
|
|
|
|
.1 .DA CS.INIT
|
|
|
|
|
.DA CS.RUN
|
|
|
|
|
.DA CS.DOEVENT
|
|
|
|
|
.DA CS.QUIT
|
|
|
|
|
L.MSG.USAGE .DA MSG.USAGE
|
|
|
|
|
L.MSG.FILE.OK .DA MSG.FILE.OK
|
|
|
|
|
L.MSG.HEADER.OK .DA MSG.HEADER.OK
|
|
|
|
|
L.MSG.HEADER.KO .DA MSG.HEADER.KO
|
2017-12-08 16:10:39 +00:00
|
|
|
|
L.MSG.RANGE .DA MSG.RANGE
|
2017-12-11 16:54:34 +00:00
|
|
|
|
L.MSG.DUMP .DA MSG.DUMP
|
2017-12-07 16:33:39 +00:00
|
|
|
|
L.MSG.DONE .DA MSG.DONE
|
|
|
|
|
.DA 0
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.INIT
|
2017-12-12 16:35:16 +00:00
|
|
|
|
.1 >INC.G Count
|
2018-10-16 15:48:03 +00:00
|
|
|
|
>SYSCALL ArgV
|
2017-12-07 16:33:39 +00:00
|
|
|
|
bcs .7
|
|
|
|
|
>STYA ZPPtr1
|
|
|
|
|
lda (ZPPtr1)
|
|
|
|
|
cmp #'-'
|
|
|
|
|
bne .4
|
|
|
|
|
ldy #1
|
|
|
|
|
lda (ZPPtr1),y
|
|
|
|
|
|
|
|
|
|
ldx OptionList
|
|
|
|
|
.2 cmp OptionList,x
|
|
|
|
|
beq .3
|
|
|
|
|
dex
|
|
|
|
|
bne .2
|
|
|
|
|
.99 >LDYA L.MSG.USAGE
|
2018-06-21 15:12:10 +00:00
|
|
|
|
>SYSCALL printf
|
2018-10-21 20:54:07 +00:00
|
|
|
|
lda #E.SYN
|
2017-12-07 16:33:39 +00:00
|
|
|
|
sec
|
|
|
|
|
rts
|
|
|
|
|
.3 ldy OptionVars-1,x
|
|
|
|
|
lda #$80
|
|
|
|
|
sta (pData),y
|
|
|
|
|
bra .1
|
|
|
|
|
.4 >LDA.G hInputBuf
|
|
|
|
|
bne .5
|
|
|
|
|
jsr CS.INIT.OPENINPUT
|
|
|
|
|
bcc .1 scan for any other args
|
|
|
|
|
rts
|
|
|
|
|
.5 >LDA.G hOutputFile
|
|
|
|
|
bne .99
|
|
|
|
|
jsr CS.INIT.CREATEOUTPUT
|
|
|
|
|
bcc .1 scan for any other args
|
|
|
|
|
rts
|
|
|
|
|
.7 >LDA.G hOutputFile
|
|
|
|
|
beq .99
|
2017-12-08 16:10:39 +00:00
|
|
|
|
>LDYAI 8192 max 256x256 pixels
|
2018-07-20 11:51:08 +00:00
|
|
|
|
>SYSCALL getmem
|
2017-12-07 16:33:39 +00:00
|
|
|
|
bcs CS.INIT.RTS
|
2017-12-11 16:54:34 +00:00
|
|
|
|
>STYA ZPCharBufPtr
|
2017-12-07 16:33:39 +00:00
|
|
|
|
txa
|
2017-12-11 16:54:34 +00:00
|
|
|
|
>STA.G hCharBuf
|
2017-12-07 16:33:39 +00:00
|
|
|
|
.8 clc
|
|
|
|
|
CS.INIT.RTS rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.INIT.OPENINPUT
|
2019-06-07 15:02:51 +00:00
|
|
|
|
>PUSHWZ Aux type
|
2017-12-07 16:33:39 +00:00
|
|
|
|
>PUSHBI 0 Type
|
2018-10-02 15:52:30 +00:00
|
|
|
|
>PUSHBI O.RDONLY
|
2018-07-25 15:26:14 +00:00
|
|
|
|
>LDYA ZPPtr1
|
2017-12-07 16:33:39 +00:00
|
|
|
|
>SYSCALL LoadFile
|
|
|
|
|
bcs CS.INIT.RTS
|
|
|
|
|
>PUSHYA
|
|
|
|
|
txa
|
|
|
|
|
>STA.G hInputBuf
|
2018-07-18 15:30:42 +00:00
|
|
|
|
>SYSCALL GetMemPtr
|
2017-12-07 16:33:39 +00:00
|
|
|
|
>STYA ZPInputBufPtr
|
|
|
|
|
>LDYA L.MSG.FILE.OK
|
2019-10-03 06:25:27 +00:00
|
|
|
|
>SYSCALL printf
|
2017-12-08 16:10:39 +00:00
|
|
|
|
ldy #S.FNT.dfVersion
|
2017-12-07 16:33:39 +00:00
|
|
|
|
lda (ZPInputBufPtr),y
|
|
|
|
|
bne .99
|
2017-12-08 16:10:39 +00:00
|
|
|
|
iny
|
2017-12-07 16:33:39 +00:00
|
|
|
|
lda (ZPInputBufPtr),y
|
2017-12-08 16:10:39 +00:00
|
|
|
|
cmp #2
|
|
|
|
|
beq .1
|
|
|
|
|
cmp #3
|
2017-12-07 16:33:39 +00:00
|
|
|
|
bne .99
|
2017-12-08 16:10:39 +00:00
|
|
|
|
.1 asl *2 = Entry Len in Tbl
|
|
|
|
|
>STA.G FNT.Version
|
2017-12-07 16:33:39 +00:00
|
|
|
|
pha
|
2017-12-08 16:10:39 +00:00
|
|
|
|
ldy #S.FNT.dfAscent
|
2017-12-07 16:33:39 +00:00
|
|
|
|
lda (ZPInputBufPtr),y
|
2017-12-08 16:10:39 +00:00
|
|
|
|
>STA.G FON.Header+S.FON.Ascent
|
2017-12-07 16:33:39 +00:00
|
|
|
|
>PUSHA
|
2017-12-08 16:10:39 +00:00
|
|
|
|
|
|
|
|
|
ldy #S.FNT.dfPixHeight
|
2017-12-07 16:33:39 +00:00
|
|
|
|
lda (ZPInputBufPtr),y
|
2017-12-08 16:10:39 +00:00
|
|
|
|
>STA.G FON.Header+S.FON.PixH
|
2017-12-07 16:33:39 +00:00
|
|
|
|
>PUSHA
|
2017-12-08 16:10:39 +00:00
|
|
|
|
|
|
|
|
|
ldy #S.FNT.dfPixWidth
|
|
|
|
|
lda (ZPInputBufPtr),y
|
|
|
|
|
>STA.G FON.Header+S.FON.PixW
|
|
|
|
|
>PUSHA
|
|
|
|
|
|
2017-12-07 16:33:39 +00:00
|
|
|
|
pla
|
|
|
|
|
>PUSHA
|
|
|
|
|
>LDYA L.MSG.HEADER.OK
|
2018-06-21 15:12:10 +00:00
|
|
|
|
>SYSCALL printf
|
2017-12-07 16:33:39 +00:00
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
.99 >LDYA L.MSG.HEADER.KO
|
2018-06-21 15:12:10 +00:00
|
|
|
|
>SYSCALL printf
|
2018-10-21 20:54:07 +00:00
|
|
|
|
lda #E.IBIN
|
2017-12-07 16:33:39 +00:00
|
|
|
|
sec
|
2019-10-03 06:25:27 +00:00
|
|
|
|
rts
|
2017-12-07 16:33:39 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.INIT.CREATEOUTPUT
|
2019-06-07 15:02:51 +00:00
|
|
|
|
>PUSHWZ Aux type
|
2017-12-08 16:10:39 +00:00
|
|
|
|
>PUSHBI $CC FON Type
|
2018-10-02 15:52:30 +00:00
|
|
|
|
>PUSHBI O.WRONLY+O.CREATE
|
2018-07-25 15:26:14 +00:00
|
|
|
|
>LDYA ZPPtr1
|
2017-12-07 16:33:39 +00:00
|
|
|
|
>SYSCALL FOpen
|
|
|
|
|
bcs .9
|
|
|
|
|
>STA.G hOutputFile
|
2017-12-13 06:38:43 +00:00
|
|
|
|
>LDYAI 256
|
2018-07-20 11:51:08 +00:00
|
|
|
|
>SYSCALL getmem
|
2017-12-13 06:38:43 +00:00
|
|
|
|
bcs .9
|
|
|
|
|
>STYA ZPOutPutBufPtr
|
|
|
|
|
txa
|
|
|
|
|
>STA.G hOutPutBuf
|
2019-10-03 06:25:27 +00:00
|
|
|
|
.9 rts
|
2017-12-07 16:33:39 +00:00
|
|
|
|
*--------------------------------------
|
2017-12-08 16:10:39 +00:00
|
|
|
|
CS.RUN ldy #S.FNT.dfBreakChar
|
|
|
|
|
lda (ZPInputBufPtr),y
|
|
|
|
|
>STA.G FON.Header+S.FON.Break
|
|
|
|
|
>PUSHA
|
2017-12-07 16:33:39 +00:00
|
|
|
|
|
2017-12-08 16:10:39 +00:00
|
|
|
|
ldy #S.FNT.dfDefaultChar
|
|
|
|
|
lda (ZPInputBufPtr),y
|
|
|
|
|
>STA.G FON.Header+S.FON.Default
|
2017-12-07 16:33:39 +00:00
|
|
|
|
>PUSHA
|
2017-12-13 16:35:10 +00:00
|
|
|
|
|
2017-12-08 16:10:39 +00:00
|
|
|
|
ldy #S.FNT.dfLastChar
|
|
|
|
|
lda (ZPInputBufPtr),y
|
|
|
|
|
>STA.G FON.Header+S.FON.Last
|
|
|
|
|
>PUSHA
|
|
|
|
|
|
|
|
|
|
ldy #S.FNT.dfFirstChar
|
|
|
|
|
lda (ZPInputBufPtr),y
|
|
|
|
|
>STA.G FON.Header+S.FON.First
|
2017-12-11 16:54:34 +00:00
|
|
|
|
>STA.G CharIndex
|
2017-12-08 16:10:39 +00:00
|
|
|
|
>PUSHA
|
|
|
|
|
>LDYA L.MSG.RANGE
|
2018-06-21 15:12:10 +00:00
|
|
|
|
>SYSCALL printf
|
2017-12-08 16:10:39 +00:00
|
|
|
|
>LDA.G FON.Header+S.FON.Last
|
2017-12-11 16:54:34 +00:00
|
|
|
|
sec
|
2017-12-08 16:10:39 +00:00
|
|
|
|
>SBC.G FON.Header+S.FON.First
|
2017-12-13 16:35:10 +00:00
|
|
|
|
inc
|
2017-12-08 16:10:39 +00:00
|
|
|
|
>STA.G CharCount
|
2017-12-13 16:35:10 +00:00
|
|
|
|
|
2017-12-11 16:54:34 +00:00
|
|
|
|
asl
|
2017-12-12 16:35:16 +00:00
|
|
|
|
pha
|
2017-12-13 16:35:10 +00:00
|
|
|
|
>STA.G FileOffset
|
2017-12-11 16:54:34 +00:00
|
|
|
|
lda #0
|
|
|
|
|
rol
|
2017-12-12 16:35:16 +00:00
|
|
|
|
iny
|
|
|
|
|
sta (pData),y
|
|
|
|
|
ply
|
2018-07-20 11:51:08 +00:00
|
|
|
|
>SYSCALL getmem
|
2017-12-13 16:35:10 +00:00
|
|
|
|
bcs .9
|
2017-12-11 16:54:34 +00:00
|
|
|
|
>STYA ZPOutPutTblPtr
|
|
|
|
|
txa
|
|
|
|
|
>STA.G hTblBuf
|
|
|
|
|
|
2017-12-12 16:35:16 +00:00
|
|
|
|
lda #S.FON
|
|
|
|
|
clc
|
2017-12-13 16:35:10 +00:00
|
|
|
|
>ADC.G FileOffset
|
|
|
|
|
sta (pData),y
|
2017-12-12 16:35:16 +00:00
|
|
|
|
sta ZPOutPutCharOfs
|
2017-12-13 16:35:10 +00:00
|
|
|
|
iny
|
|
|
|
|
lda /S.FON
|
|
|
|
|
adc (pData),y
|
|
|
|
|
sta (pData),y
|
2017-12-12 16:35:16 +00:00
|
|
|
|
sta ZPOutPutCharOfs+1
|
2017-12-13 16:35:10 +00:00
|
|
|
|
>LEA.G FileOffset
|
2017-12-12 16:35:16 +00:00
|
|
|
|
>PUSHYA
|
|
|
|
|
>PUSHBI SYS.FSeek.SET
|
|
|
|
|
>LDA.G hOutputFile
|
|
|
|
|
>SYSCALL FSeek
|
|
|
|
|
bcc .1
|
2017-12-13 16:35:10 +00:00
|
|
|
|
.9 rts
|
2017-12-12 16:35:16 +00:00
|
|
|
|
.1 >LDA.G FNT.Version
|
2017-12-08 16:10:39 +00:00
|
|
|
|
ldx #S.FNT.dfCharTable2
|
|
|
|
|
cmp #4
|
2017-12-12 16:35:16 +00:00
|
|
|
|
beq .2
|
2017-12-08 16:10:39 +00:00
|
|
|
|
ldx #S.FNT.dfCharTable3
|
2017-12-12 16:35:16 +00:00
|
|
|
|
.2 txa
|
2017-12-08 16:10:39 +00:00
|
|
|
|
clc
|
|
|
|
|
adc ZPInputBufPtr
|
|
|
|
|
sta ZPInputTblPtr
|
|
|
|
|
lda #0
|
|
|
|
|
adc ZPInputBufPtr+1
|
|
|
|
|
sta ZPInputTblPtr+1
|
2017-12-12 16:35:16 +00:00
|
|
|
|
CS.RUN.LOOP >SLEEP
|
|
|
|
|
|
|
|
|
|
>SYSCALL GetChar
|
|
|
|
|
bcs .3
|
|
|
|
|
|
|
|
|
|
cmp #$03 Ctrl-C
|
|
|
|
|
beq .9 Abort....
|
|
|
|
|
cmp #$13 Ctrl-S
|
|
|
|
|
bne .3
|
|
|
|
|
>LDA.G bPause
|
|
|
|
|
eor #$FF
|
|
|
|
|
sta (pData),y
|
|
|
|
|
|
|
|
|
|
.3 >LDA.G bPause
|
|
|
|
|
bmi CS.RUN.LOOP
|
|
|
|
|
|
|
|
|
|
ldy #2
|
2017-12-08 16:10:39 +00:00
|
|
|
|
lda (ZPInputTblPtr),y Get Char BitMap Offset
|
|
|
|
|
clc
|
|
|
|
|
adc ZPInputBufPtr
|
|
|
|
|
sta ZPInputBMPtr
|
|
|
|
|
iny
|
|
|
|
|
lda (ZPInputTblPtr),y
|
|
|
|
|
adc ZPInputBufPtr+1
|
|
|
|
|
sta ZPInputBMPtr+1
|
|
|
|
|
jsr CS.RUN.GetChar
|
2017-12-11 16:54:34 +00:00
|
|
|
|
jsr CS.RUN.ShiftLChar
|
|
|
|
|
jsr CS.RUN.CutRChar
|
|
|
|
|
jsr CS.RUN.DumpChar
|
2017-12-12 16:35:16 +00:00
|
|
|
|
jsr CS.RUN.StoreChar
|
|
|
|
|
bcs .9
|
2017-12-11 16:54:34 +00:00
|
|
|
|
>INC.G CharIndex
|
2017-12-08 16:10:39 +00:00
|
|
|
|
>DEC.G CharCount
|
|
|
|
|
beq .8
|
|
|
|
|
lda ZPInputTblPtr
|
|
|
|
|
clc
|
|
|
|
|
>ADC.G FNT.Version
|
|
|
|
|
sta ZPInputTblPtr
|
2017-12-12 16:35:16 +00:00
|
|
|
|
bcc CS.RUN.LOOP
|
2017-12-08 16:10:39 +00:00
|
|
|
|
inc ZPInputTblPtr+1
|
2017-12-12 16:35:16 +00:00
|
|
|
|
bra CS.RUN.LOOP
|
2017-12-13 06:38:43 +00:00
|
|
|
|
.8 jsr CS.RUN.FlushOutPutBuf
|
|
|
|
|
bcs .9
|
|
|
|
|
jsr CS.RUN.WriteBMAndTbl
|
2017-12-12 16:35:16 +00:00
|
|
|
|
bcs .9
|
|
|
|
|
>LDYA L.MSG.DONE
|
2018-06-21 15:12:10 +00:00
|
|
|
|
>SYSCALL printf
|
2017-12-07 16:33:39 +00:00
|
|
|
|
lda #0
|
|
|
|
|
sec
|
2017-12-12 16:35:16 +00:00
|
|
|
|
.9 rts
|
2017-12-07 16:33:39 +00:00
|
|
|
|
*--------------------------------------
|
2017-12-12 16:35:16 +00:00
|
|
|
|
* ZPInputBMPtr->DATA
|
2017-12-08 16:10:39 +00:00
|
|
|
|
*--------------------------------------
|
2017-12-12 16:35:16 +00:00
|
|
|
|
CS.RUN.GetChar lda (ZPInputTblPtr) Get Char PixW
|
|
|
|
|
|
|
|
|
|
>STA.G CharPixW
|
2017-12-11 16:54:34 +00:00
|
|
|
|
>STA.G CharOutPixW
|
|
|
|
|
|
|
|
|
|
pha
|
2017-12-08 16:10:39 +00:00
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
tax
|
|
|
|
|
pla
|
|
|
|
|
and #7
|
|
|
|
|
beq .1
|
|
|
|
|
inx
|
2017-12-11 16:54:34 +00:00
|
|
|
|
.1 txa
|
2017-12-08 16:10:39 +00:00
|
|
|
|
>STA.G CharByteW
|
2017-12-11 16:54:34 +00:00
|
|
|
|
>STA.G CharOutByteW
|
|
|
|
|
lda #0 0 -> A -> CharByteW
|
2017-12-08 16:10:39 +00:00
|
|
|
|
.2 pha
|
|
|
|
|
clc
|
2017-12-11 16:54:34 +00:00
|
|
|
|
adc ZPCharBufPtr
|
2017-12-08 16:10:39 +00:00
|
|
|
|
sta ZPPTR1
|
|
|
|
|
lda #0
|
2017-12-11 16:54:34 +00:00
|
|
|
|
adc ZPCharBufPtr+1
|
2017-12-08 16:10:39 +00:00
|
|
|
|
sta ZPPTR1+1
|
2017-12-11 16:54:34 +00:00
|
|
|
|
>LDA.G FON.Header+S.FON.PixH
|
|
|
|
|
tax
|
|
|
|
|
|
|
|
|
|
.3 lda (ZPInputBMPtr) Get one source byte
|
2017-12-08 16:10:39 +00:00
|
|
|
|
|
|
|
|
|
inc ZPInputBMPtr
|
|
|
|
|
bne .4
|
|
|
|
|
inc ZPInputBMPtr+1
|
2017-12-11 16:54:34 +00:00
|
|
|
|
.4 tay
|
|
|
|
|
lda TWIST,y
|
|
|
|
|
sta (ZPPTR1)
|
2017-12-08 16:10:39 +00:00
|
|
|
|
lda ZPPTR1
|
|
|
|
|
clc
|
|
|
|
|
>ADC.G CharByteW
|
|
|
|
|
sta ZPPTR1
|
|
|
|
|
bcc .5
|
|
|
|
|
inc ZPPTR1+1
|
2017-12-11 16:54:34 +00:00
|
|
|
|
.5 dex
|
|
|
|
|
bne .3
|
2017-12-08 16:10:39 +00:00
|
|
|
|
|
|
|
|
|
pla
|
2017-12-11 16:54:34 +00:00
|
|
|
|
inc
|
|
|
|
|
>CMP.G CharByteW
|
|
|
|
|
bne .2
|
2017-12-08 16:10:39 +00:00
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2017-12-11 16:54:34 +00:00
|
|
|
|
* Dump ZPCharBufPtr : CharByteW x FON.Header+S.FON.PixH
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.RUN.DumpChar >LDA.G CharOutByteW
|
|
|
|
|
>PUSHA
|
|
|
|
|
>LDA.G CharOutPixW
|
|
|
|
|
>PUSHA
|
|
|
|
|
>LDA.G CharIndex
|
|
|
|
|
>PUSHA
|
|
|
|
|
>PUSHA
|
|
|
|
|
>LDYA L.MSG.DUMP
|
2018-06-21 15:12:10 +00:00
|
|
|
|
>SYSCALL printf
|
2017-12-11 16:54:34 +00:00
|
|
|
|
lda ZPCharBufPtr
|
|
|
|
|
sta ZPPTR1
|
|
|
|
|
lda ZPCharBufPtr+1
|
|
|
|
|
sta ZPPTR1+1
|
|
|
|
|
|
|
|
|
|
>LDA.G FON.Header+S.FON.PixH
|
2017-12-12 16:35:16 +00:00
|
|
|
|
.1 pha
|
2017-12-11 16:54:34 +00:00
|
|
|
|
lda #'|'
|
2018-07-18 15:30:42 +00:00
|
|
|
|
>SYSCALL PutChar
|
2017-12-12 07:27:36 +00:00
|
|
|
|
>LDA.G CharOutPixW
|
2017-12-12 16:35:16 +00:00
|
|
|
|
>STA.G Count
|
|
|
|
|
|
|
|
|
|
ldy #0
|
|
|
|
|
.2 lda (ZPPTR1),y
|
|
|
|
|
phy
|
|
|
|
|
ldx #8
|
2017-12-11 16:54:34 +00:00
|
|
|
|
.4 lsr
|
|
|
|
|
pha
|
|
|
|
|
lda #' '
|
|
|
|
|
bcc .5
|
|
|
|
|
lda #'O'
|
|
|
|
|
.5 phx
|
2018-07-18 15:30:42 +00:00
|
|
|
|
>SYSCALL PutChar
|
2017-12-11 16:54:34 +00:00
|
|
|
|
plx
|
2017-12-12 16:35:16 +00:00
|
|
|
|
>DEC.G Count
|
2017-12-11 16:54:34 +00:00
|
|
|
|
beq .6
|
2017-12-12 16:35:16 +00:00
|
|
|
|
pla Get back BYTE
|
2017-12-11 16:54:34 +00:00
|
|
|
|
dex
|
|
|
|
|
bne .4
|
2017-12-12 16:35:16 +00:00
|
|
|
|
ply
|
|
|
|
|
iny
|
2017-12-11 16:54:34 +00:00
|
|
|
|
bra .2
|
2017-12-12 16:35:16 +00:00
|
|
|
|
.6 pla
|
|
|
|
|
pla
|
|
|
|
|
|
|
|
|
|
lda #'|'
|
2018-07-18 15:30:42 +00:00
|
|
|
|
>SYSCALL PutChar
|
2017-12-11 16:54:34 +00:00
|
|
|
|
lda #13
|
2018-07-18 15:30:42 +00:00
|
|
|
|
>SYSCALL PutChar
|
2017-12-11 16:54:34 +00:00
|
|
|
|
lda #10
|
2018-07-18 15:30:42 +00:00
|
|
|
|
>SYSCALL PutChar
|
2017-12-12 16:35:16 +00:00
|
|
|
|
lda ZPPTR1
|
|
|
|
|
clc
|
|
|
|
|
>ADC.G CharByteW
|
|
|
|
|
sta ZPPTR1
|
|
|
|
|
bcc .7
|
|
|
|
|
inc ZPPTR1+1
|
|
|
|
|
|
|
|
|
|
.7 pla
|
|
|
|
|
dec
|
2017-12-11 16:54:34 +00:00
|
|
|
|
bne .1
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.RUN.ShiftLChar
|
|
|
|
|
>LDA.G bNoShrink
|
|
|
|
|
bmi .9
|
|
|
|
|
.1 lda ZPCharBufPtr
|
|
|
|
|
sta ZPPTR1
|
|
|
|
|
lda ZPCharBufPtr+1
|
|
|
|
|
sta ZPPTR1+1
|
|
|
|
|
>LDA.G FON.Header+S.FON.PixH
|
|
|
|
|
tax
|
|
|
|
|
|
|
|
|
|
lda #0
|
|
|
|
|
pha
|
|
|
|
|
.2 pla
|
|
|
|
|
ora (ZPPTR1)
|
|
|
|
|
pha
|
|
|
|
|
lda ZPPTR1
|
|
|
|
|
clc
|
|
|
|
|
>ADC.G CharByteW
|
|
|
|
|
sta ZPPTR1
|
|
|
|
|
bcc .3
|
|
|
|
|
inc ZPPTR1+1
|
|
|
|
|
.3 dex
|
|
|
|
|
bne .2
|
|
|
|
|
pla
|
|
|
|
|
beq .9 No pixel in first COL, must be SPACE or BREAK
|
2019-10-03 06:25:27 +00:00
|
|
|
|
lsr
|
2017-12-11 16:54:34 +00:00
|
|
|
|
bcs .9
|
|
|
|
|
lda ZPCharBufPtr
|
|
|
|
|
sta ZPPTR1
|
|
|
|
|
lda ZPCharBufPtr+1
|
|
|
|
|
sta ZPPTR1+1
|
|
|
|
|
>LDA.G FON.Header+S.FON.PixH
|
|
|
|
|
tax
|
|
|
|
|
|
|
|
|
|
.4 >LDA.G CharByteW
|
|
|
|
|
tay
|
|
|
|
|
clc
|
|
|
|
|
.5 dey
|
|
|
|
|
lda (ZPPTR1),y
|
|
|
|
|
ror
|
|
|
|
|
sta (ZPPTR1),y
|
|
|
|
|
tya
|
|
|
|
|
bne .5
|
|
|
|
|
lda ZPPTR1
|
|
|
|
|
clc
|
|
|
|
|
>ADC.G CharByteW
|
|
|
|
|
sta ZPPTR1
|
|
|
|
|
bcc .6
|
|
|
|
|
inc ZPPTR1+1
|
|
|
|
|
.6 dex
|
|
|
|
|
bne .4
|
|
|
|
|
>DEC.G CharOutPixW
|
|
|
|
|
and #7
|
|
|
|
|
bne .1
|
|
|
|
|
>DEC.G CharOutByteW
|
|
|
|
|
bra .1
|
|
|
|
|
.9 rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.RUN.CutRChar >LDA.G bNoShrink
|
|
|
|
|
bmi .9
|
2017-12-12 16:35:16 +00:00
|
|
|
|
.1 lda ZPCharBufPtr
|
2017-12-11 16:54:34 +00:00
|
|
|
|
sta ZPPTR1
|
|
|
|
|
lda ZPCharBufPtr+1
|
|
|
|
|
sta ZPPTR1+1
|
2017-12-12 16:35:16 +00:00
|
|
|
|
>LDA.G FON.Header+S.FON.PixH
|
2017-12-11 16:54:34 +00:00
|
|
|
|
tax
|
|
|
|
|
|
2017-12-12 16:35:16 +00:00
|
|
|
|
>LDA.G CharOutByteW
|
2017-12-11 16:54:34 +00:00
|
|
|
|
tay
|
|
|
|
|
dey
|
|
|
|
|
lda #0
|
|
|
|
|
pha
|
|
|
|
|
.2 pla
|
|
|
|
|
ora (ZPPTR1),y
|
|
|
|
|
pha
|
2017-12-12 07:27:36 +00:00
|
|
|
|
phy
|
2017-12-11 16:54:34 +00:00
|
|
|
|
lda ZPPTR1
|
|
|
|
|
clc
|
|
|
|
|
>ADC.G CharByteW
|
|
|
|
|
sta ZPPTR1
|
|
|
|
|
bcc .3
|
|
|
|
|
inc ZPPTR1+1
|
|
|
|
|
|
2017-12-12 07:27:36 +00:00
|
|
|
|
.3 ply
|
|
|
|
|
dex
|
2017-12-11 16:54:34 +00:00
|
|
|
|
bne .2
|
|
|
|
|
pla
|
2017-12-12 07:27:36 +00:00
|
|
|
|
bmi .9 Bit 7 is colored....exit
|
2017-12-11 16:54:34 +00:00
|
|
|
|
bne .4
|
|
|
|
|
tya No bits in this COL
|
|
|
|
|
beq .9 was COL 0.....SPACE or BREAK
|
|
|
|
|
|
2017-12-12 07:27:36 +00:00
|
|
|
|
>DEC.G CharOutByteW Remove the whole column
|
|
|
|
|
asl
|
|
|
|
|
asl
|
|
|
|
|
asl
|
|
|
|
|
>STA.G CharOutPixW
|
2017-12-11 16:54:34 +00:00
|
|
|
|
bra .1
|
2017-12-12 07:27:36 +00:00
|
|
|
|
.4 pha
|
2017-12-12 16:35:16 +00:00
|
|
|
|
>LDA.G CharOutByteW
|
|
|
|
|
asl
|
|
|
|
|
asl
|
|
|
|
|
asl
|
2017-12-12 07:27:36 +00:00
|
|
|
|
tax
|
|
|
|
|
pla
|
2017-12-11 16:54:34 +00:00
|
|
|
|
.5 dex
|
|
|
|
|
asl
|
2017-12-12 07:27:36 +00:00
|
|
|
|
bpl .5
|
2017-12-11 16:54:34 +00:00
|
|
|
|
txa
|
2017-12-12 16:35:16 +00:00
|
|
|
|
>STA.G CharOutPixW
|
2017-12-12 07:27:36 +00:00
|
|
|
|
pha
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
tax
|
|
|
|
|
pla
|
|
|
|
|
and #7
|
|
|
|
|
beq .7
|
|
|
|
|
inx
|
|
|
|
|
.7 txa
|
|
|
|
|
>STA.G CharOutByteW
|
2017-12-11 16:54:34 +00:00
|
|
|
|
.9 rts
|
|
|
|
|
*--------------------------------------
|
2017-12-12 16:35:16 +00:00
|
|
|
|
CS.RUN.StoreChar
|
|
|
|
|
lda ZPOutPutCharOfs
|
|
|
|
|
sta (ZPOutPutTblPtr)
|
|
|
|
|
lda ZPOutPutCharOfs+1
|
|
|
|
|
ldy #1
|
|
|
|
|
sta (ZPOutPutTblPtr),y
|
|
|
|
|
lda ZPOutPutTblPtr
|
|
|
|
|
clc
|
|
|
|
|
adc #2
|
|
|
|
|
sta ZPOutPutTblPtr
|
|
|
|
|
bcc .1
|
|
|
|
|
inc ZPOutPutTblPtr+1
|
|
|
|
|
.1 >LDA.G CharOutPixW
|
|
|
|
|
jsr CS.RUN.WriteByte
|
|
|
|
|
bcs .99
|
|
|
|
|
>LDA.G CharOutByteW
|
|
|
|
|
jsr CS.RUN.WriteByte
|
|
|
|
|
bcs .99
|
|
|
|
|
lda ZPCharBufPtr
|
|
|
|
|
sta ZPPTR1
|
|
|
|
|
lda ZPCharBufPtr+1
|
|
|
|
|
sta ZPPTR1+1
|
|
|
|
|
>LDA.G FON.Header+S.FON.PixH
|
|
|
|
|
pha
|
|
|
|
|
|
|
|
|
|
.2 >LDA.G CharOutByteW
|
|
|
|
|
tax
|
|
|
|
|
ldy #0
|
|
|
|
|
.3 lda (ZPPTR1),y
|
|
|
|
|
jsr CS.RUN.WriteByte
|
|
|
|
|
bcs .9
|
|
|
|
|
iny
|
|
|
|
|
dex
|
|
|
|
|
bne .3
|
|
|
|
|
pla
|
|
|
|
|
dec
|
|
|
|
|
beq .8
|
|
|
|
|
pha
|
|
|
|
|
lda ZPPTR1
|
|
|
|
|
clc
|
|
|
|
|
>ADC.G CharByteW
|
|
|
|
|
sta ZPPTR1
|
|
|
|
|
bcc .2
|
|
|
|
|
inc ZPPTR1+1
|
|
|
|
|
bra .2
|
2019-10-03 06:25:27 +00:00
|
|
|
|
.8 clc
|
2017-12-12 16:35:16 +00:00
|
|
|
|
rts
|
|
|
|
|
.9 plx
|
|
|
|
|
.99 rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.RUN.WriteByte
|
|
|
|
|
phy
|
2017-12-13 06:38:43 +00:00
|
|
|
|
phx
|
2017-12-12 16:35:16 +00:00
|
|
|
|
pha
|
2017-12-13 06:38:43 +00:00
|
|
|
|
>LDA.G OutPutPtr
|
2017-12-12 16:35:16 +00:00
|
|
|
|
tay
|
|
|
|
|
pla
|
2017-12-13 06:38:43 +00:00
|
|
|
|
sta (ZPOutPutBufPtr),y
|
|
|
|
|
tya
|
|
|
|
|
inc
|
|
|
|
|
>STA.G OutPutPtr
|
|
|
|
|
tay
|
2017-12-13 16:35:10 +00:00
|
|
|
|
clc
|
2017-12-13 06:38:43 +00:00
|
|
|
|
bne .8
|
|
|
|
|
>PUSHWI 256
|
2018-07-25 15:26:14 +00:00
|
|
|
|
>PUSHW ZPOutPutBufPtr
|
2017-12-13 06:38:43 +00:00
|
|
|
|
>LDA.G hOutputFile
|
|
|
|
|
>SYSCALL FWrite
|
|
|
|
|
bcs .9
|
2017-12-12 16:35:16 +00:00
|
|
|
|
|
2017-12-13 06:38:43 +00:00
|
|
|
|
.8 inc ZPOutPutCharOfs
|
2017-12-13 16:35:10 +00:00
|
|
|
|
bne .9
|
2017-12-12 16:35:16 +00:00
|
|
|
|
inc ZPOutPutCharOfs+1
|
2017-12-13 06:38:43 +00:00
|
|
|
|
|
|
|
|
|
.9 plx
|
|
|
|
|
ply
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.RUN.FlushOutPutBuf
|
|
|
|
|
clc
|
|
|
|
|
>LDA.G OutPutPtr
|
|
|
|
|
beq .8
|
2018-07-25 15:26:14 +00:00
|
|
|
|
|
|
|
|
|
tay
|
2017-12-13 06:38:43 +00:00
|
|
|
|
lda #0
|
|
|
|
|
>PUSHYA
|
2018-07-25 15:26:14 +00:00
|
|
|
|
>PUSHW ZPOutPutBufPtr
|
2017-12-13 06:38:43 +00:00
|
|
|
|
>LDA.G hOutputFile
|
|
|
|
|
>SYSCALL FWrite
|
|
|
|
|
.8 rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.RUN.WriteBMAndTbl
|
2017-12-13 16:35:10 +00:00
|
|
|
|
ldy #FileOffset
|
|
|
|
|
ldx #4
|
|
|
|
|
lda #0
|
|
|
|
|
.1 sta (pData),y
|
|
|
|
|
iny
|
|
|
|
|
dex
|
|
|
|
|
bne .1
|
|
|
|
|
>LEA.G FileOffset
|
|
|
|
|
>PUSHYA
|
|
|
|
|
>PUSHBI SYS.FSeek.SET
|
2018-08-08 15:13:37 +00:00
|
|
|
|
>LDA.G hOutputFile
|
2017-12-13 16:35:10 +00:00
|
|
|
|
>SYSCALL FSeek
|
|
|
|
|
bcs .9
|
|
|
|
|
>PUSHWI S.FON
|
2018-07-25 15:26:14 +00:00
|
|
|
|
>PUSHEA.G FON.Header
|
2017-12-13 16:35:10 +00:00
|
|
|
|
>LDA.G hOutputFile
|
|
|
|
|
>SYSCALL FWrite
|
|
|
|
|
bcs .9
|
|
|
|
|
>LDA.G FON.Header+S.FON.Last
|
|
|
|
|
sec
|
|
|
|
|
>SBC.G FON.Header+S.FON.First
|
|
|
|
|
inc
|
|
|
|
|
asl
|
|
|
|
|
pha
|
|
|
|
|
lda #0
|
|
|
|
|
rol
|
|
|
|
|
ply
|
|
|
|
|
>PUSHYA
|
2018-07-25 15:26:14 +00:00
|
|
|
|
|
|
|
|
|
>LDA.G hTblBuf
|
|
|
|
|
>SYSCALL GetMemPtr
|
|
|
|
|
>PUSHYA
|
|
|
|
|
|
2017-12-13 16:35:10 +00:00
|
|
|
|
>LDA.G hOutputFile
|
|
|
|
|
>SYSCALL FWrite
|
2017-12-13 06:38:43 +00:00
|
|
|
|
clc
|
2017-12-13 16:35:10 +00:00
|
|
|
|
.9 rts
|
2017-12-12 16:35:16 +00:00
|
|
|
|
*--------------------------------------
|
2017-12-07 16:33:39 +00:00
|
|
|
|
CS.DOEVENT sec
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2017-12-13 06:38:43 +00:00
|
|
|
|
CS.QUIT >LDA.G hOutPutBuf
|
2017-12-07 16:33:39 +00:00
|
|
|
|
beq .1
|
2018-07-18 15:30:42 +00:00
|
|
|
|
>SYSCALL FreeMem
|
2017-12-07 16:33:39 +00:00
|
|
|
|
|
2017-12-13 06:38:43 +00:00
|
|
|
|
.1 >LDA.G hOutputFile
|
|
|
|
|
beq .2
|
2018-07-20 11:51:08 +00:00
|
|
|
|
>SYSCALL fclose
|
2017-12-13 06:38:43 +00:00
|
|
|
|
.2 >LDA.G hInputBuf
|
|
|
|
|
beq .3
|
2018-07-18 15:30:42 +00:00
|
|
|
|
>SYSCALL FreeMem
|
2017-12-08 16:10:39 +00:00
|
|
|
|
|
2017-12-13 06:38:43 +00:00
|
|
|
|
.3 >LDA.G hCharBuf
|
|
|
|
|
beq .4
|
2018-07-18 15:30:42 +00:00
|
|
|
|
>SYSCALL FreeMem
|
2017-12-11 16:54:34 +00:00
|
|
|
|
|
2017-12-13 06:38:43 +00:00
|
|
|
|
.4 >LDA.G hTblBuf
|
2017-12-11 16:54:34 +00:00
|
|
|
|
beq .8
|
2018-07-18 15:30:42 +00:00
|
|
|
|
>SYSCALL FreeMem
|
2017-12-08 16:10:39 +00:00
|
|
|
|
|
2017-12-07 16:33:39 +00:00
|
|
|
|
.8 clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
CS.END
|
2017-12-11 16:54:34 +00:00
|
|
|
|
*--------------------------------------
|
2018-07-23 15:28:42 +00:00
|
|
|
|
.INB ROOT/X.TWIST.G
|
2017-12-11 16:54:34 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
OptionList >PSTR "NnVv"
|
|
|
|
|
OptionVars .DA #bNoShrink,#bNoShrink,#bVerbose,#bVerbose
|
2018-04-11 15:35:51 +00:00
|
|
|
|
MSG.USAGE .AZ "Usage : FNT2FON FNT-File \r\n -V : Verbose Mode\r\n -N : No shrink\r\n"
|
|
|
|
|
MSG.FILE.OK .AZ "FNT File Loaded, %D Bytes Read\r\n"
|
|
|
|
|
MSG.HEADER.OK .AZ "FNT File Version : %d, Size : %d x %d pixels, Ascent : %d\r\n"
|
|
|
|
|
MSG.HEADER.KO .AZ "Invalid Input File Format\r\n"
|
|
|
|
|
MSG.RANGE .AZ "First/Last Char : %d/%d, Default : %d, Break : %d\r\n"
|
|
|
|
|
MSG.DUMP .AZ "Caracter ID : %d (0x0%2h), Width(P) : %d, Width(B) : %d\r\n"
|
|
|
|
|
MSG.DONE .AZ "All Done!!!\r\n"
|
2017-12-07 16:33:39 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
.DUMMY
|
|
|
|
|
.OR 0
|
|
|
|
|
DS.START
|
2017-12-08 16:10:39 +00:00
|
|
|
|
FNT.Version .BS 1
|
|
|
|
|
FON.Header .BS S.FON
|
2017-12-12 16:35:16 +00:00
|
|
|
|
Count .BS 1
|
2017-12-07 16:33:39 +00:00
|
|
|
|
hInputBuf .BS 1
|
|
|
|
|
hOutputFile .BS 1
|
2017-12-12 16:35:16 +00:00
|
|
|
|
bPause .BS 1
|
2017-12-07 16:33:39 +00:00
|
|
|
|
bVerbose .BS 1
|
2017-12-11 16:54:34 +00:00
|
|
|
|
bNoShrink .BS 1
|
|
|
|
|
hCharBuf .BS 1
|
|
|
|
|
hTblBuf .BS 1
|
|
|
|
|
CharIndex .BS 1
|
2017-12-08 16:10:39 +00:00
|
|
|
|
CharCount .BS 1
|
2017-12-11 16:54:34 +00:00
|
|
|
|
CharPixW .BS 1
|
2017-12-08 16:10:39 +00:00
|
|
|
|
CharByteW .BS 1
|
2017-12-11 16:54:34 +00:00
|
|
|
|
CharOutPixW .BS 1
|
|
|
|
|
CharOutByteW .BS 1
|
2017-12-13 06:38:43 +00:00
|
|
|
|
hOutPutBuf .BS 1
|
|
|
|
|
OutPutPtr .BS 1
|
2017-12-13 16:35:10 +00:00
|
|
|
|
FileOffset .BS 4
|
2017-12-12 16:35:16 +00:00
|
|
|
|
|
2017-12-07 16:33:39 +00:00
|
|
|
|
DS.END
|
|
|
|
|
.ED
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
MAN
|
2018-01-23 16:52:22 +00:00
|
|
|
|
SAVE /A2OSX.BUILD/ROOT/FNT2FON.S
|
2017-12-07 16:33:39 +00:00
|
|
|
|
ASM
|