Dump character set to BIN for re-use

By Golnebo

Rookie (21)

Golnebo의 아바타

11-02-2019, 15:31

Hello Fellow MSX'ers.
I am playing around with MSX BASIC (again after 30 years), and I run into my own knowledge limitations. I have searched these forums and internet for it, but couldn't find an answer.

I have made my own characterset in MSX BASIC (MSX2, screen0, width 80) with these vpokes:

SCREEN 0
Color 15,0,0
WIDTH 80
SC=PEEK(&HFCAF)

A=ASC("?")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00100000")
VPOKEA+1,VAL("&B00010000")
VPOKEA+2,VAL("&B00001000")
VPOKEA+3,VAL("&B11111100")
VPOKEA+4,VAL("&B11111100")
VPOKEA+5,VAL("&B00001000")
VPOKEA+6,VAL("&B00010000")
VPOKEA+7,VAL("&B00100000")

A=ASC("ë")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01111100")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01000000")
VPOKEA+3,VAL("&B01110000")
VPOKEA+4,VAL("&B01000000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01000000")
VPOKEA+7,VAL("&B01111000")

A=ASC("ä")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00001000")
VPOKEA+1,VAL("&B00010100")
VPOKEA+2,VAL("&B00100100")
VPOKEA+3,VAL("&B00100100")
VPOKEA+4,VAL("&B01111100")
VPOKEA+5,VAL("&B01000100")
VPOKEA+6,VAL("&B10000100")
VPOKEA+7,VAL("&B10000100")

A=ASC("ö")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00111100")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B00110000")
VPOKEA+3,VAL("&B00001000")
VPOKEA+4,VAL("&B00000100")
VPOKEA+5,VAL("&B00000100")
VPOKEA+6,VAL("&B00001000")
VPOKEA+7,VAL("&B01110000")

A=ASC("Ï")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01111100")
VPOKEA+1,VAL("&B00010000")
VPOKEA+2,VAL("&B00010000")
VPOKEA+3,VAL("&B00010000")
VPOKEA+4,VAL("&B00010000")
VPOKEA+5,VAL("&B00010000")
VPOKEA+6,VAL("&B00010000")
VPOKEA+7,VAL("&B00011000")

A=ASC("ü")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01001000")
VPOKEA+1,VAL("&B01000100")
VPOKEA+2,VAL("&B10000100")
VPOKEA+3,VAL("&B10000100")
VPOKEA+4,VAL("&B10010100")
VPOKEA+5,VAL("&B10010100")
VPOKEA+6,VAL("&B10110100")
VPOKEA+7,VAL("&B01001000")

A=ASC("è")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B11111111")
VPOKEA+2,VAL("&B10110111")
VPOKEA+3,VAL("&B11001111")
VPOKEA+4,VAL("&B11001111")
VPOKEA+5,VAL("&B10110111")
VPOKEA+6,VAL("&B11111111")
VPOKEA+7,VAL("&B00000000")


A=ASC("ú")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00111000")
VPOKEA+2,VAL("&B01100100")
VPOKEA+3,VAL("&B00011000")
VPOKEA+4,VAL("&B00110000")
VPOKEA+5,VAL("&B00000000")
VPOKEA+6,VAL("&B00110000")
VPOKEA+7,VAL("&B00000000")

A=ASC("!")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00111000")
VPOKEA+2,VAL("&B01111100")
VPOKEA+3,VAL("&B00111000")
VPOKEA+4,VAL("&B00110000")
VPOKEA+5,VAL("&B00000000")
VPOKEA+6,VAL("&B00110000")
VPOKEA+7,VAL("&B00000000")

A=ASC("ê")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00110000")
VPOKEA+1,VAL("&B00110000")
VPOKEA+2,VAL("&B00110000")
VPOKEA+3,VAL("&B00110000")
VPOKEA+4,VAL("&B00110000")
VPOKEA+5,VAL("&B00110000")
VPOKEA+6,VAL("&B00110000")
VPOKEA+7,VAL("&B00110000")

A=ASC("a")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B00111000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("b")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01111000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("c")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B01111000")
VPOKEA+3,VAL("&B01000000")
VPOKEA+4,VAL("&B01000000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("d")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00001000")
VPOKEA+2,VAL("&B01111000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("e")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B01111000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01111000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("f")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01110000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01000000")
VPOKEA+4,VAL("&B01100000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01000000")
VPOKEA+7,VAL("&B00000000")

A=ASC("g")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B01111000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01111000")
VPOKEA+5,VAL("&B00001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("h")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01111000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("i")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00010000")
VPOKEA+2,VAL("&B00000000")
VPOKEA+3,VAL("&B00010000")
VPOKEA+4,VAL("&B00010000")
VPOKEA+5,VAL("&B00010000")
VPOKEA+6,VAL("&B00010000")
VPOKEA+7,VAL("&B00000000")

A=ASC("j")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00010000")
VPOKEA+2,VAL("&B00000000")
VPOKEA+3,VAL("&B00010000")
VPOKEA+4,VAL("&B00010000")
VPOKEA+5,VAL("&B00010000")
VPOKEA+6,VAL("&B01110000")
VPOKEA+7,VAL("&B00000000")

A=ASC("k")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00100000")
VPOKEA+2,VAL("&B01000000")
VPOKEA+3,VAL("&B01010000")
VPOKEA+4,VAL("&B01100000")
VPOKEA+5,VAL("&B01010000")
VPOKEA+6,VAL("&B01001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("l")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00100000")
VPOKEA+2,VAL("&B01000000")
VPOKEA+3,VAL("&B01000000")
VPOKEA+4,VAL("&B01000000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("m")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B11011000")
VPOKEA+3,VAL("&B10101000")
VPOKEA+4,VAL("&B10101000")
VPOKEA+5,VAL("&B10101000")
VPOKEA+6,VAL("&B10101000")
VPOKEA+7,VAL("&B00000000")

A=ASC("n")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B01100000")
VPOKEA+3,VAL("&B01010000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("o")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B00110000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("p")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B01110000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01111000")
VPOKEA+6,VAL("&B01000000")
VPOKEA+7,VAL("&B00000000")

A=ASC("q")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B01111000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01111000")
VPOKEA+5,VAL("&B00010000")
VPOKEA+6,VAL("&B00111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("r")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B01111000")
VPOKEA+3,VAL("&B01000000")
VPOKEA+4,VAL("&B01000000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01000000")
VPOKEA+7,VAL("&B00000000")

A=ASC("s")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B01111000")
VPOKEA+3,VAL("&B01000000")
VPOKEA+4,VAL("&B01111000")
VPOKEA+5,VAL("&B00001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("t")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01111000")
VPOKEA+3,VAL("&B01000000")
VPOKEA+4,VAL("&B01000000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("u")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("v")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01010000")
VPOKEA+6,VAL("&B00100000")
VPOKEA+7,VAL("&B00000000")

A=ASC("w")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B10001000")
VPOKEA+3,VAL("&B10001000")
VPOKEA+4,VAL("&B10101000")
VPOKEA+5,VAL("&B11011000")
VPOKEA+6,VAL("&B10001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("x")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B10001000")
VPOKEA+3,VAL("&B01010000")
VPOKEA+4,VAL("&B00100000")
VPOKEA+5,VAL("&B01010000")
VPOKEA+6,VAL("&B10001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("y")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01111000")
VPOKEA+5,VAL("&B00100000")
VPOKEA+6,VAL("&B00100000")
VPOKEA+7,VAL("&B00000000")

A=ASC("z")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B01111000")
VPOKEA+3,VAL("&B00001000")
VPOKEA+4,VAL("&B00110000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("A")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01111000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01111000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("B")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01111000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01110000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("C")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01111000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01000000")
VPOKEA+3,VAL("&B01000000")
VPOKEA+4,VAL("&B01000000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("D")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01110000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01110000")
VPOKEA+7,VAL("&B00000000")

A=ASC("E")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01111000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01000000")
VPOKEA+3,VAL("&B01111000")
VPOKEA+4,VAL("&B01000000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("F")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01111000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01000000")
VPOKEA+3,VAL("&B01111000")
VPOKEA+4,VAL("&B01000000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01000000")
VPOKEA+7,VAL("&B00000000")

A=ASC("G")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01111000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01000000")
VPOKEA+3,VAL("&B01011000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("H")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01001000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01111000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("I")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00010000")
VPOKEA+1,VAL("&B00010000")
VPOKEA+2,VAL("&B00010000")
VPOKEA+3,VAL("&B00010000")
VPOKEA+4,VAL("&B00010000")
VPOKEA+5,VAL("&B00010000")
VPOKEA+6,VAL("&B00010000")
VPOKEA+7,VAL("&B00000000")

A=ASC("J")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00010000")
VPOKEA+1,VAL("&B00010000")
VPOKEA+2,VAL("&B00010000")
VPOKEA+3,VAL("&B00010000")
VPOKEA+4,VAL("&B00010000")
VPOKEA+5,VAL("&B00010000")
VPOKEA+6,VAL("&B01110000")
VPOKEA+7,VAL("&B00000000")

A=ASC("K")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01000100")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01010000")
VPOKEA+3,VAL("&B01100000")
VPOKEA+4,VAL("&B01010000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01000100")
VPOKEA+7,VAL("&B00000000")

A=ASC("L")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01000000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01000000")
VPOKEA+3,VAL("&B01000000")
VPOKEA+4,VAL("&B01000000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01111100")
VPOKEA+7,VAL("&B00000000")

A=ASC("M")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B11011000")
VPOKEA+1,VAL("&B10100000")
VPOKEA+2,VAL("&B10101000")
VPOKEA+3,VAL("&B10101000")
VPOKEA+4,VAL("&B10001000")
VPOKEA+5,VAL("&B10001000")
VPOKEA+6,VAL("&B10001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("N")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B11111000")
VPOKEA+1,VAL("&B10000000")
VPOKEA+2,VAL("&B10001000")
VPOKEA+3,VAL("&B10001000")
VPOKEA+4,VAL("&B10001000")
VPOKEA+5,VAL("&B10001000")
VPOKEA+6,VAL("&B10001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("O")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B11111000")
VPOKEA+1,VAL("&B10000000")
VPOKEA+2,VAL("&B10001000")
VPOKEA+3,VAL("&B10001000")
VPOKEA+4,VAL("&B10001000")
VPOKEA+5,VAL("&B10001000")
VPOKEA+6,VAL("&B11111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("P")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B11111000")
VPOKEA+1,VAL("&B10000000")
VPOKEA+2,VAL("&B10001000")
VPOKEA+3,VAL("&B11111000")
VPOKEA+4,VAL("&B10000000")
VPOKEA+5,VAL("&B10000000")
VPOKEA+6,VAL("&B10000000")
VPOKEA+7,VAL("&B00000000")

A=ASC("Q")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B11111000")
VPOKEA+1,VAL("&B10000000")
VPOKEA+2,VAL("&B10001000")
VPOKEA+3,VAL("&B10001000")
VPOKEA+4,VAL("&B10101000")
VPOKEA+5,VAL("&B10010000")
VPOKEA+6,VAL("&B11101000")
VPOKEA+7,VAL("&B00000000")

A=ASC("R")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B11111000")
VPOKEA+1,VAL("&B10000000")
VPOKEA+2,VAL("&B10001000")
VPOKEA+3,VAL("&B11110000")
VPOKEA+4,VAL("&B10001000")
VPOKEA+5,VAL("&B10001000")
VPOKEA+6,VAL("&B10001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("S")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B11111000")
VPOKEA+1,VAL("&B10000000")
VPOKEA+2,VAL("&B10000000")
VPOKEA+3,VAL("&B11111000")
VPOKEA+4,VAL("&B00001000")
VPOKEA+5,VAL("&B00001000")
VPOKEA+6,VAL("&B11111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("T")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B11111000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B00100000")
VPOKEA+3,VAL("&B00100000")
VPOKEA+4,VAL("&B00100000")
VPOKEA+5,VAL("&B00100000")
VPOKEA+6,VAL("&B00100000")
VPOKEA+7,VAL("&B00000000")

A=ASC("U")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01001000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("V")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01001000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01001000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01010000")
VPOKEA+6,VAL("&B00100000")
VPOKEA+7,VAL("&B00000000")

A=ASC("W")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B10001000")
VPOKEA+1,VAL("&B10000000")
VPOKEA+2,VAL("&B10001000")
VPOKEA+3,VAL("&B10101000")
VPOKEA+4,VAL("&B10101000")
VPOKEA+5,VAL("&B11010000")
VPOKEA+6,VAL("&B10001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("X")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B10001000")
VPOKEA+1,VAL("&B01000000")
VPOKEA+2,VAL("&B01010000")
VPOKEA+3,VAL("&B00100000")
VPOKEA+4,VAL("&B01010000")
VPOKEA+5,VAL("&B01010000")
VPOKEA+6,VAL("&B10001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("Y")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B01001000")
VPOKEA+1,VAL("&B01001000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01111000")
VPOKEA+4,VAL("&B00010000")
VPOKEA+5,VAL("&B00010000")
VPOKEA+6,VAL("&B00010000")
VPOKEA+7,VAL("&B00000000")

A=ASC("Z")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B11111000")
VPOKEA+1,VAL("&B00000000")
VPOKEA+2,VAL("&B00001000")
VPOKEA+3,VAL("&B01111000")
VPOKEA+4,VAL("&B01000000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01111100")
VPOKEA+7,VAL("&B00000000")

A=ASC("0")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01111000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01011000")
VPOKEA+4,VAL("&B01101000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("1")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B00110000")
VPOKEA+2,VAL("&B00010000")
VPOKEA+3,VAL("&B00010000")
VPOKEA+4,VAL("&B00010000")
VPOKEA+5,VAL("&B00010000")
VPOKEA+6,VAL("&B00111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("2")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01111000")
VPOKEA+2,VAL("&B00001000")
VPOKEA+3,VAL("&B01111000")
VPOKEA+4,VAL("&B01000000")
VPOKEA+5,VAL("&B01000000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("3")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01111000")
VPOKEA+2,VAL("&B00001000")
VPOKEA+3,VAL("&B01111000")
VPOKEA+4,VAL("&B00001000")
VPOKEA+5,VAL("&B00001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("4")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01001000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01111000")
VPOKEA+4,VAL("&B00001000")
VPOKEA+5,VAL("&B00001000")
VPOKEA+6,VAL("&B00001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("5")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01111000")
VPOKEA+2,VAL("&B01000000")
VPOKEA+3,VAL("&B01111000")
VPOKEA+4,VAL("&B00001000")
VPOKEA+5,VAL("&B00001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("6")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01111000")
VPOKEA+2,VAL("&B01000000")
VPOKEA+3,VAL("&B01111000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("7")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01111000")
VPOKEA+2,VAL("&B00001000")
VPOKEA+3,VAL("&B00001000")
VPOKEA+4,VAL("&B00001000")
VPOKEA+5,VAL("&B00001000")
VPOKEA+6,VAL("&B00001000")
VPOKEA+7,VAL("&B00000000")

A=ASC("8")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01111000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01111000")
VPOKEA+4,VAL("&B01001000")
VPOKEA+5,VAL("&B01001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")

A=ASC("9")*8+BASE(SC*5+2)
VPOKEA+0,VAL("&B00000000")
VPOKEA+1,VAL("&B01111000")
VPOKEA+2,VAL("&B01001000")
VPOKEA+3,VAL("&B01111000")
VPOKEA+4,VAL("&B00001000")
VPOKEA+5,VAL("&B00001000")
VPOKEA+6,VAL("&B01111000")
VPOKEA+7,VAL("&B00000000")


rem PRINT "abcdefghijklmnopqrstuvwxyz"
rem PRINT "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
rem PRINT " "
rem PRINT "a b c d e f g h i j k l m n o p q r s t u v w x y z"
rem PRINT "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
rem PRINT " "
rem PRINT "a b c d e f g h i j k l m n o p q r s t u v w x y z"
rem PRINT " "
rem PRINT "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"

rem INPUT "OK"; A$

Is there a way to save this characterset to disk (BSAVE) so that I can reload the file as standard 'font' in other BASIC programs I am making?

Sorry if this was asked and answered before, but I couldn't find it.

Grtz,

Golnebo

Login or 등록 to post comments

By Sandy Brand

Master (142)

Sandy Brand의 아바타

11-02-2019, 16:58

Yep, that is possible Smile

And you already did most of the work yourself!

If you look at the BSAVE command you will notice that you can use ,StartAddr, EndAddr, S to save VRAM into a file.

You have already computed the start location of the character generator table by using BASE(SC*5 + 2).
So, if you want to save the entire character generator table, you could do something like this:

GT = BASE(SC*5 + 2)
BSAVE "charpatt.bin",GT,GT + (256 * 8) - 1,S

And then you should be able to load it back into VRAM by just using:

BLOAD "charpatt.bin",S

By Golnebo

Rookie (21)

Golnebo의 아바타

11-02-2019, 17:48

Amazing! Thank you. Exactly what I was looking for.

I was looking for starting and ending addresses for the character set in VRAM, not realizing that I had already calculated halve of it.

Big smile

By NYYRIKKI

Enlighted (5271)

NYYRIKKI의 아바타

11-02-2019, 19:14

... but this is still only half of the answer...

Quote:

so that I can reload the file as standard 'font'

If you have saved the font now as explained by Sandy Brand you are almost there... If you want to make it standard font, you have to allocate some RAM for the fonts... Here I assume that you want to place the font to &HC000 - &HC7FF...

First you have to load the font to RAM:
BLOAD "charpatt.bin",&HC000-GT :REM GT is the value you used when you saved the font

Then you have to define it as standard font:
POKE &HF91F,PEEK(&HF343) ' SlotID of font
POKE &HF920,&H00 ' Low address byte of font
POKE &HF921,&HC0 'High address byte of font

The fonts will be updated to VRAM next time you use SCREEN-command and as it is now system font, it will work on all screen modes from now on.

By Golnebo

Rookie (21)

Golnebo의 아바타

12-02-2019, 09:28

Thank you! This works like a charm.