BIOS Text Functions

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

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