Friday, November 27, 2015

Looking at the actionprinter rom

I was curious what the ap2000 rom characters looked like so I wrote a crap qbasic program to draw them to the screen.


DECLARE SUB plotbyte (xpos!, ypos!, byte!)
DECLARE FUNCTION bitset! (nextbyte!, bit!)
DIM file%(0 TO 32700)

OPEN "ap2k~1.ic3" FOR BINARY AS #1

skipto = 13650
SCREEN 13


WHILE NOT EOF(1)
bytenum = bytenum + 1

a$ = INPUT$(1, #1)
nextbyte = ASC(a$)
IF bytenum < UBOUND(file%) THEN file%(bytenum) = nextbyte IF skipto <> 0 THEN
IF bytenum > skipto THEN
plotbyte xpos, ypos, nextbyte
xpos = xpos + 1
IF xpos > 256 THEN xpos = 0: ypos = ypos + 10
IF ypos > 190 THEN CLS : ypos = 0
LOCATE 1, 262 / 8: PRINT bytenum;

END IF
END IF
IF bytenum MOD 25 = 0 THEN LOCATE 1, 262 / 8: PRINT bytenum


WEND

FUNCTION bitset (nextbyte, bit)
x = nextbyte AND (2 ^ bit)
IF x = 0 THEN bitset = 0 ELSE bitset = 1
END FUNCTION

SUB plotbyte (xpos, ypos, nextbyte)
FOR bit = 0 TO 7: PSET (xpos, (7 - bit) + ypos), 15 * bitset(nextbyte, bit): NEXT
END SUB





What I notice is that most of the rom (at least half of the 32k is the character data). It's a 9 pin printer so to get the NLQ characters it makes two passes of the printhead for 18 dots vertically.

Each character is given as a draft, then italics, then the vertically interleaved NLQ character. Some characters have more than one NLQ version for different widths (pica or elite possibly). Capital A for example. Many only have one NLQ version.

No comments:

Post a Comment