From 7b5d5dcefe37062e76179724a4d1ffc371dbc2e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 11 Dec 2017 17:54:34 +0100 Subject: [PATCH] Kernel 0.9.1 : LibGui, Fonts..... --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Fonts/SYSx7.fnt | Bin 3488 -> 3488 bytes FNT2FON.S.txt | 341 +++++++++++++++++++++++++++++++-------- X.TWIST.G..txt | 42 +++++ 4 files changed, 319 insertions(+), 64 deletions(-) create mode 100644 X.TWIST.G..txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 713f9c1162d1fe37c15def9ac9d0e17968a06c42..e6a6c4172766bed4d56e3a58b64e890be77d5e9a 100644 GIT binary patch delta 7654 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 QgwdHLqcgf^X7u0t3$G$ECIA2c delta 2960 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 E1DLmTMF0Q* diff --git a/.Fonts/SYSx7.fnt b/.Fonts/SYSx7.fnt index 542f89ac600d79b0e2ef219237ccce3f9496ad09..3c1cd7304b50d3fba5d7f7da1b7329a1b11901f2 100644 GIT binary patch delta 46 ucmZ1=y+C?`ixdk(0uZt>FfxF_1Q5;6z{t$Nu`$k)jk&^{Ve>3DHg*876bCc_ delta 46 tcmZ1=y+C?`ixewE0uZt>K*0n?AcLKOk(q&WW1J-$vsr}s=2>iP>;SJz2TK3| diff --git a/FNT2FON.S.txt b/FNT2FON.S.txt index f24819fd..a1a4799e 100644 --- a/FNT2FON.S.txt +++ b/FNT2FON.S.txt @@ -54,12 +54,12 @@ S.FNT.dfCharTable3 .EQ 148 *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPInputBufPtr .EQ ZPBIN+2 -ZPInputBufLen .EQ ZPBIN+4 -ZPInputTblPtr .EQ ZPBIN+6 -ZPInputBMPtr .EQ ZPBIN+8 -ZPOutPutTblPtr .EQ ZPBIN+10 -ZPOutPutBMPtr .EQ ZPBIN+12 -ZPBufPtr .EQ ZPBIN+14 +ZPInputTblPtr .EQ ZPBIN+4 +ZPInputBMPtr .EQ ZPBIN+6 + +ZPOutPutTblPtr .EQ ZPBIN+8 + +ZPCharBufPtr .EQ ZPBIN+12 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -85,6 +85,7 @@ L.MSG.FILE.OK .DA MSG.FILE.OK L.MSG.HEADER.OK .DA MSG.HEADER.OK L.MSG.HEADER.KO .DA MSG.HEADER.KO L.MSG.RANGE .DA MSG.RANGE +L.MSG.DUMP .DA MSG.DUMP L.MSG.DONE .DA MSG.DONE .DA 0 *-------------------------------------- @@ -139,9 +140,9 @@ CS.INIT >SYSCALL GetMem.YA bcs CS.INIT.RTS - >STYA ZPBufPtr + >STYA ZPCharBufPtr txa - >STA.G hBuf + >STA.G hCharBuf .8 clc CS.INIT.RTS rts @@ -154,7 +155,6 @@ CS.INIT.OPENINPUT >SYSCALL LoadFile bcs CS.INIT.RTS - >STYA ZPInputBufLen >PUSHYA txa @@ -239,19 +239,30 @@ CS.RUN ldy #S.FNT.dfBreakChar ldy #S.FNT.dfFirstChar lda (ZPInputBufPtr),y >STA.G FON.Header+S.FON.First + >STA.G CharIndex >PUSHA >LDYA L.MSG.RANGE >SYSCALL PrintF.YA >LDA.G FON.Header+S.FON.Last + sec >SBC.G FON.Header+S.FON.First >STA.G CharCount + asl + tay + lda #0 + rol + >SYSCALL GetMem.YA + >STYA ZPOutPutTblPtr + txa + >STA.G hTblBuf + >LDA.G FNT.Version ldx #S.FNT.dfCharTable2 cmp #4 - bne .1 + beq .1 ldx #S.FNT.dfCharTable3 .1 txa @@ -275,6 +286,14 @@ CS.RUN ldy #S.FNT.dfBreakChar lda (ZPInputTblPtr) Get Char PixW jsr CS.RUN.GetChar + jsr CS.RUN.DumpChar + jsr CS.RUN.ShiftLChar + jsr CS.RUN.CutRChar + jsr CS.RUN.DumpChar + + >DEBUG + + >INC.G CharIndex >DEC.G CharCount beq .8 @@ -295,7 +314,10 @@ CS.RUN.RTS rts *-------------------------------------- * A=PixW, ZPInputBMPtr->DATA *-------------------------------------- -CS.RUN.GetChar pha +CS.RUN.GetChar >STA.G CharPixW + >STA.G CharOutPixW + + pha lsr lsr lsr @@ -305,28 +327,33 @@ CS.RUN.GetChar pha beq .1 inx - txa +.1 txa >STA.G CharByteW + >STA.G CharOutByteW - - ldx #0 0 > X > CharByteW - -.1 >LDA.G ON.Header+S.FON.PixH + lda #0 0 -> A -> CharByteW .2 pha clc - adc ZPBufPtr + adc ZPCharBufPtr sta ZPPTR1 lda #0 - adc ZPBufPtr+1 + adc ZPCharBufPtr+1 sta ZPPTR1+1 + + >LDA.G FON.Header+S.FON.PixH + + tax + +.3 lda (ZPInputBMPtr) Get one source byte -.3 lda (ZPInputBMPtr) inc ZPInputBMPtr bne .4 inc ZPInputBMPtr+1 -.4 sta (ZPPTR1) +.4 tay + lda TWIST,y + sta (ZPPTR1) lda ZPPTR1 clc >ADC.G CharByteW @@ -334,16 +361,221 @@ CS.RUN.GetChar pha bcc .5 inc ZPPTR1+1 -.5 inx - txa +.5 dex + bne .3 pla - dec - bne .1 + inc + >CMP.G CharByteW + bne .2 + clc rts *-------------------------------------- +* 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 + >SYSCALL PrintF.YA + + lda ZPCharBufPtr + sta ZPPTR1 + lda ZPCharBufPtr+1 + sta ZPPTR1+1 + + >LDA.G FON.Header+S.FON.PixH + tay + +.1 phy + + lda #'|' + >SYSCALL PutChar.A + + >LDA.G CharPixW + tay + +.2 lda (ZPPTR1) + inc ZPPTR1 + bne .3 + inc ZPPTR1+1 + +.3 ldx #8 + +.4 lsr + pha + lda #' ' + bcc .5 + lda #'O' + +.5 phx + phy + >SYSCALL PutChar.A + ply + plx + + pla + dey + beq .6 + + dex + bne .4 + bra .2 + +.6 lda #'|' + >SYSCALL PutChar.A + lda #13 + >SYSCALL PutChar.A + lda #10 + >SYSCALL PutChar.A + + ply + dey + 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 + + lsr + 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 + + lda ZPCharBufPtr + sta ZPPTR1 + lda ZPCharBufPtr+1 + sta ZPPTR1+1 + +.1 >LDA.G FON.Header+S.FON.PixH + tax + + >LDA.G CharOutByteW + tay + dey + + lda #0 + pha + +.2 pla + ora (ZPPTR1),y + pha + + lda ZPPTR1 + clc + >ADC.G CharByteW + sta ZPPTR1 + bcc .3 + inc ZPPTR1+1 + +.3 dex + bne .2 + + pla + bne .4 + + tya No bits in this COL + beq .9 was COL 0.....SPACE or BREAK + + >DEC.G CharOutByteW + >LDA.G CharOutPixW + sec + sbc #8 + sta (pData),y + + bra .1 + +.4 ldx #9 + +.5 dex + asl + bcc .5 + + >LDA.G CharOutPixW + and #$F8 + sta (pData),y + txa + ora (pData),y + sta (pData),y + + + +.9 rts +*-------------------------------------- CS.DOEVENT sec rts *-------------------------------------- @@ -353,57 +585,32 @@ CS.QUIT >LDA.G hOutputFile >SYSCALL FClose.A .1 >LDA.G hInputBuf - beq .1 + beq .2 >SYSCALL FreeMem.A -.2 >LDA.G hBuf - beq .1 +.2 >LDA.G hCharBuf + beq .3 + >SYSCALL FreeMem.A + +.3 >LDA.G hTblBuf + beq .8 >SYSCALL FreeMem.A .8 clc rts *-------------------------------------- CS.END -TWIST .DA #%00000000,#%10000000,#%01000000,#%11000000,#%00100000,#%10100000,#%01100000,#%11100000 - .DA #%00010000,#%10010000,#%01010000,#%11010000,#%00110000,#%10110000,#%01110000,#%11110000 - .DA #%00001000,#%10001000,#%01001000,#%11001000,#%00101000,#%10101000,#%01101000,#%11101000 - .DA #%00011000,#%10011000,#%01011000,#%11011000,#%00111000,#%10111000,#%01111000,#%11111000 - .DA #%00000100,#%10000100,#%01000100,#%11000100,#%00100100,#%10100100,#%01100100,#%11100100 - .DA #%00010100,#%10010100,#%01010100,#%11010100,#%00110100,#%10110100,#%01110100,#%11110100 - .DA #%00001100,#%10001100,#%01001100,#%11001100,#%00101100,#%10101100,#%01101100,#%11101100 - .DA #%00011100,#%10011100,#%01011100,#%11011100,#%00111100,#%10111100,#%01111100,#%11111100 - .DA #%00000010,#%10000010,#%01000010,#%11000010,#%00100010,#%10100010,#%01100010,#%11100010 - .DA #%00010010,#%10010010,#%01010010,#%11010010,#%00110010,#%10110010,#%01110010,#%11110010 - .DA #%00001010,#%10001010,#%01001010,#%11001010,#%00101010,#%10101010,#%01101010,#%11101010 - .DA #%00011010,#%10011010,#%01011010,#%11011010,#%00111010,#%10111010,#%01111010,#%11111010 - .DA #%00000110,#%10000110,#%01000110,#%11000110,#%00100110,#%10100110,#%01100110,#%11100110 - .DA #%00010110,#%10010110,#%01010110,#%11010110,#%00110110,#%10110110,#%01110110,#%11110110 - .DA #%00001110,#%10001110,#%01001110,#%11001110,#%00101110,#%10101110,#%01101110,#%11101110 - .DA #%00011110,#%10011110,#%01011110,#%11011110,#%00111110,#%10111110,#%01111110,#%11111110 - .DA #%00000001,#%10000001,#%01000001,#%11000001,#%00100001,#%10100001,#%01100001,#%11100001 - .DA #%00010001,#%10010001,#%01010001,#%11010001,#%00110001,#%10110001,#%01110001,#%11110001 - .DA #%00001001,#%10001001,#%01001001,#%11001001,#%00101001,#%10101001,#%01101001,#%11101001 - .DA #%00011001,#%10011001,#%01011001,#%11011001,#%00111001,#%10111001,#%01111001,#%11111001 - .DA #%00000101,#%10000101,#%01000101,#%11000101,#%00100101,#%10100101,#%01100101,#%11100101 - .DA #%00010101,#%10010101,#%01010101,#%11010101,#%00110101,#%10110101,#%01110101,#%11110101 - .DA #%00001101,#%10001101,#%01001101,#%11001101,#%00101101,#%10101101,#%01101101,#%11101101 - .DA #%00011101,#%10011101,#%01011101,#%11011101,#%00111101,#%10111101,#%01111101,#%11111101 - .DA #%00000011,#%10000011,#%01000011,#%11000011,#%00100011,#%10100011,#%01100011,#%11100011 - .DA #%00010011,#%10010011,#%01010011,#%11010011,#%00110011,#%10110011,#%01110011,#%11110011 - .DA #%00001011,#%10001011,#%01001011,#%11001011,#%00101011,#%10101011,#%01101011,#%11101011 - .DA #%00011011,#%10011011,#%01011011,#%11011011,#%00111011,#%10111011,#%01111011,#%11111011 - .DA #%00000111,#%10000111,#%01000111,#%11000111,#%00100111,#%10100111,#%01100111,#%11100111 - .DA #%00010111,#%10010111,#%01010111,#%11010111,#%00110111,#%10110111,#%01110111,#%11110111 - .DA #%00001111,#%10001111,#%01001111,#%11001111,#%00101111,#%10101111,#%01101111,#%11101111 - .DA #%00011111,#%10011111,#%01011111,#%11011111,#%00111111,#%10111111,#%01111111,#%11111111 -*-------------------------------------- -OptionList >PSTR "Vv" -OptionVars .DA #bVerbose,#bVerbose -MSG.USAGE >CSTR "Usage : FNT2FON FNT-File \r\n -V : Verbose Mode\r\n" +*-------------------------------------- + .INB /A2OSX.BUILD/X.TWIST.G +*-------------------------------------- +OptionList >PSTR "NnVv" +OptionVars .DA #bNoShrink,#bNoShrink,#bVerbose,#bVerbose +MSG.USAGE >CSTR "Usage : FNT2FON FNT-File \r\n -V : Verbose Mode\r\n -N : No shrink\r\n" MSG.FILE.OK >CSTR "FNT File Loaded, %D Bytes Read\r\n" MSG.HEADER.OK >CSTR "FNT File Version : %d, Size : %d x %d pixels, Ascent : %d\r\n" MSG.HEADER.KO >CSTR "Invalid Input File Format\r\n" MSG.RANGE >CSTR "First/Last Char : %d/%d, Default : %d, Break : %d\r\n" +MSG.DUMP >CSTR "Caracter ID : %d (0x0%2h), Width(P) : %d, Width(B) : %d\r\n" MSG.DONE >CSTR "All Done!!!\r\n" *-------------------------------------- .DUMMY @@ -415,9 +622,15 @@ ArgCount .BS 1 hInputBuf .BS 1 hOutputFile .BS 1 bVerbose .BS 1 -hBuf .BS 1 +bNoShrink .BS 1 +hCharBuf .BS 1 +hTblBuf .BS 1 +CharIndex .BS 1 CharCount .BS 1 +CharPixW .BS 1 CharByteW .BS 1 +CharOutPixW .BS 1 +CharOutByteW .BS 1 DS.END .ED *-------------------------------------- diff --git a/X.TWIST.G..txt b/X.TWIST.G..txt new file mode 100644 index 00000000..53f3180a --- /dev/null +++ b/X.TWIST.G..txt @@ -0,0 +1,42 @@ +PR#3 +PREFIX /A2OSX.BUILD +NEW +INC 1 +AUTO 6 + .LIST OFF +*-------------------------------------- +TWIST .DA #%00000000,#%10000000,#%01000000,#%11000000,#%00100000,#%10100000,#%01100000,#%11100000 + .DA #%00010000,#%10010000,#%01010000,#%11010000,#%00110000,#%10110000,#%01110000,#%11110000 + .DA #%00001000,#%10001000,#%01001000,#%11001000,#%00101000,#%10101000,#%01101000,#%11101000 + .DA #%00011000,#%10011000,#%01011000,#%11011000,#%00111000,#%10111000,#%01111000,#%11111000 + .DA #%00000100,#%10000100,#%01000100,#%11000100,#%00100100,#%10100100,#%01100100,#%11100100 + .DA #%00010100,#%10010100,#%01010100,#%11010100,#%00110100,#%10110100,#%01110100,#%11110100 + .DA #%00001100,#%10001100,#%01001100,#%11001100,#%00101100,#%10101100,#%01101100,#%11101100 + .DA #%00011100,#%10011100,#%01011100,#%11011100,#%00111100,#%10111100,#%01111100,#%11111100 + .DA #%00000010,#%10000010,#%01000010,#%11000010,#%00100010,#%10100010,#%01100010,#%11100010 + .DA #%00010010,#%10010010,#%01010010,#%11010010,#%00110010,#%10110010,#%01110010,#%11110010 + .DA #%00001010,#%10001010,#%01001010,#%11001010,#%00101010,#%10101010,#%01101010,#%11101010 + .DA #%00011010,#%10011010,#%01011010,#%11011010,#%00111010,#%10111010,#%01111010,#%11111010 + .DA #%00000110,#%10000110,#%01000110,#%11000110,#%00100110,#%10100110,#%01100110,#%11100110 + .DA #%00010110,#%10010110,#%01010110,#%11010110,#%00110110,#%10110110,#%01110110,#%11110110 + .DA #%00001110,#%10001110,#%01001110,#%11001110,#%00101110,#%10101110,#%01101110,#%11101110 + .DA #%00011110,#%10011110,#%01011110,#%11011110,#%00111110,#%10111110,#%01111110,#%11111110 + .DA #%00000001,#%10000001,#%01000001,#%11000001,#%00100001,#%10100001,#%01100001,#%11100001 + .DA #%00010001,#%10010001,#%01010001,#%11010001,#%00110001,#%10110001,#%01110001,#%11110001 + .DA #%00001001,#%10001001,#%01001001,#%11001001,#%00101001,#%10101001,#%01101001,#%11101001 + .DA #%00011001,#%10011001,#%01011001,#%11011001,#%00111001,#%10111001,#%01111001,#%11111001 + .DA #%00000101,#%10000101,#%01000101,#%11000101,#%00100101,#%10100101,#%01100101,#%11100101 + .DA #%00010101,#%10010101,#%01010101,#%11010101,#%00110101,#%10110101,#%01110101,#%11110101 + .DA #%00001101,#%10001101,#%01001101,#%11001101,#%00101101,#%10101101,#%01101101,#%11101101 + .DA #%00011101,#%10011101,#%01011101,#%11011101,#%00111101,#%10111101,#%01111101,#%11111101 + .DA #%00000011,#%10000011,#%01000011,#%11000011,#%00100011,#%10100011,#%01100011,#%11100011 + .DA #%00010011,#%10010011,#%01010011,#%11010011,#%00110011,#%10110011,#%01110011,#%11110011 + .DA #%00001011,#%10001011,#%01001011,#%11001011,#%00101011,#%10101011,#%01101011,#%11101011 + .DA #%00011011,#%10011011,#%01011011,#%11011011,#%00111011,#%10111011,#%01111011,#%11111011 + .DA #%00000111,#%10000111,#%01000111,#%11000111,#%00100111,#%10100111,#%01100111,#%11100111 + .DA #%00010111,#%10010111,#%01010111,#%11010111,#%00110111,#%10110111,#%01110111,#%11110111 + .DA #%00001111,#%10001111,#%01001111,#%11001111,#%00101111,#%10101111,#%01101111,#%11101111 + .DA #%00011111,#%10011111,#%01011111,#%11011111,#%00111111,#%10111111,#%01111111,#%11111111 +*-------------------------------------- +MAN +SAVE /A2OSX.BUILD/X.TWIST.G