BIOS Text Functions
From CPCWiki - THE Amstrad CPC encyclopedia!
Contents
Text Character Output (and read-back from VRAM)
BB5A TXT_OUTPUT in: A=char ;display 20h..FFh, or handle 00h..1Fh BB5D TXT_WR_CHAR in: A=char ;display 00h..FFh BB60 TXT_RD_CHAR out: A=char, Z=space, cy=1=okay
Text Cursor Position
BB6F TXT_SET_COLUMN in: A=x BB72 TXT_SET_ROW in: A=y BB75 TXT_SET_CURSOR in: H=x, L=y BB78 TXT_GET_CURSOR out: H=x, L=y BB87 TXT_VALIDATE io: H=x, L=y, out: cy: 1=position ok, 0=scroll BB63 TXT_SET_GRAPHIC in: A=0=normal text position, A>0=graphics position
Text Cursor...
BB7B TXT_CUR_ENABLE BB7E TXT_CUR_DISABLE BB81 TXT_CUR_ON BB84 TXT_CUR_OFF BB8A TXT_PLACE_CURSOR BB8D TXT_REMOVE_CURSOR
Text Colors
BB90 TXT_SET_PEN in: A=foreground color 0..15 BB93 TXT_GET_PEN out: A=foreground color 0..15 BB96 TXT_SET_PAPER in: A=background color 0..15 BB99 TXT_GET_PAPER out: A=background color 0..15 BB9C TXT_INVERSE exchange foreground and background colors BB9F TXT_SET_BACK in: A=0=normal, A=1=transparent/OR BBA2 TXT_GET_BACK out: Z=normal, NZ=transparent/OR
Text Character Set
BBA5 TXT_GET_MATRIX in: A=char, out: HL=char bitmap ptr, cy:0=ROM,1=RAM BBA8 TXT_SET_MATRIX in: A=char, HL=ptr to 8x8 char bitmap BBAB TXT_SET_M_TABLE in: D=00h=RAM, E=1st char, HL=RAM chars, out: cy,A,HL BBAE TXT_GET_M_TABLE out: cy=1=RAM, A=1st char, HL=RAM chars
Text Windows (aka Streams)
BB66 TXT_SET_WINDOW in: H=x1, L=y1, D=x2, E=y2 (x=0..79, y=0..24) BB69 TXT_GET_WINDOW out: H=x1, L=y1, D=x2, E=y2, cy=0=hardware scrolling BB6C TXT_CLEAR_WINDOW fill window by PAPER color BBB4 TXT_STR_SELECT in: A=new window number, out: A=old (# 0..7) BBB7 TXT_SWAP_STREAMS in: B,C=window numbers to be exchanged
Text Init/Specials
BB4E TXT_INITIALIZE BB51 TXT_RESET BB54 TXT_VDU_DISABLE BB57 TXT_VDU_ENABLE BBB1 TXT_GET_CONTROLS out: HL=ptr to table of control characters BD40 TXT_ASK_STATE_664 ;out: A(b0=CUR_EN,b1=CUR_ON,b7=VDU) (664 and up only) BDCD HOOK_TXT_DRAW_CURSOR BDD0 HOOK_TXT_UNDRAW_CURSOR BDD3 HOOK_TXT_WRITE_CHAR ;in: H=x, L=y, A=char BDD6 HOOK_TXT_UNWRITE ;in: H=x, L=y, out: A=char, Z=space, cy=1=okay BDD9 HOOK_TXT_OUT_ACTION ;in: A=char