Dump character set to BIN for re-use

Door Golnebo

Rookie (22)

afbeelding van 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

Aangemeld of registreer om reacties te plaatsen

Van Sandy Brand

Master (160)

afbeelding van 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

Van Golnebo

Rookie (22)

afbeelding van 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

Van NYYRIKKI

Enlighted (5481)

afbeelding van 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.

Van Golnebo

Rookie (22)

afbeelding van Golnebo

12-02-2019, 09:28

Thank you! This works like a charm.