Skip to content

MSXBIOS

Jorge Janaite Neto edited this page Sep 1, 2021 · 2 revisions

MSX BIOS

Callable forth words

  • DISSCR ( -- ) : disable screen

  • ENASCR ( -- ) : enable screen

  • CHGCLR ( S -- )

  • VDPREG! ( n reg -- ) : reads a VDP register

  • VRAM@ ( vaddr -- b ) : read a byte from VRAM

  • VRAM! ( b vaddr -- ) : write a byte to VRAM

  • VDP@@ ( addr -- )

  • VDP!! ( addr -- )

  • VRAMFILL ( vaddr len char -- ) : fills VRAM with a constant

  • CHGCAP ( f -- )

  • SETTXT ( -- )

  • SETT32 ( -- )

  • SETGRP ( -- )

  • SETMLT ( -- )

  • INITXT ( S -- )

  • INIT32 ( S -- )

  • INIGRP ( S -- )

  • INIMLT ( S -- )

  • CHGMOD ( n -- )

  • NMI ( -- )

  • CLRSPR ( -- )

  • CALPAT ( n -- addr )

  • CALATR ( n -- addr )

  • >VRAM ( from-addr to-vaddr len -- )

  • VRAM> ( from-vaddr to-addr len -- )

  • CHGET ( -- char )

  • BIOS-C@ ( addr -- b ) : reads a byte from BIOS

  • BIOS60HZ ( -- f) : test if BIOS indicates a 60Hz machine

  • BIOS50HZ ( -- f) : test if BIOS indicates a 50Hz machine

  • delayjiffy ( u -- ) : delays using jiffy counter

  • SCREEN0 ( -- )

  • SCREEN0/80 ( -- )

  • SCREEN0/40 ( -- )

  • POSIT ( row col -- )

  • CURSOR ( f -- ) : show (true) or hide (false) the cursor

  • cursor ( f -- ) : show (true) or hide (false) the cursor

  • CHPUT ( ch -- )

  • RDSLT ( slot addr -- b )

  • WRSLT ( slot addr b -- )

  • SLOTID ( primary expanded -- slotid) : generate a slotid identifier as required by some BIOS functions


  • ATRBYT! ( c --) : write byte into variable ATRBYT (0xF3F2)
  • ATRBYT@ ( -- c) : read byte from variable ATRBYT (0xF3F2)
  • GXPOS! ( u --) : write word into variable GXPOS (0xFCB3)
  • GXPOS@ ( -- u) : read word from variable GXPOS (0xFCB3)
  • GYPOS! ( u --) : write word into variable GYPOS (0xFCB5)
  • GYPOS@ ( -- u) : read word from variable GYPOS (0xFCB5)
  • SETC ( -- ) : set attribute of current pixel (color code is from variable ATRBYT)
  • MAPXYC ( x y --) : convert a graphics coordinate pair into the current pixel physical address

Constants

  • #CSRY

  • #CSRX

  • #FORCLR

  • #BAKCLR

  • #BDRCLR

  • #CSRY : 1 byte, Y-coordinate of cursor

  • #CSRX : 1 byte, X-coordinate of cursor

  • #TXTNAM : SCREEN 0 name table

  • #TXTCOL : SCREEN 0 color table

  • #TXTCGP : SCREEN 0 character pattern table

  • #TXTATR : SCREEN 0 sprite attribute table

  • #TXTPAT : SCREEN 0 sprite pattern table

  • #T32NAM : SCREEN 1 name table

  • #T32COL : SCREEN 1 color table

  • #T32CGP : SCREEN 1 character pattern table

  • #T32ATR : SCREEN 1 sprite attribute table

  • #T32PAT : SCREEN 1 sprite pattern table

  • #GRPNAM : SCREEN 2 name table

  • #GRPCOL : SCREEN 2 color table

  • #GRPCGP : SCREEN 2 character pattern table

  • #GRPATR : SCREEN 2 sprite attribute table

  • #GRPPAT : SCREEN 2 sprite pattern table

  • #MLTNAM : SCREEN 3 name table

  • #MLTCOL : SCREEN 3 color table

  • #MLTCGP : SCREEN 3 character pattern table

  • #MLTATR : SCREEN 3 sprite attribute table

  • #MLTPAT : SCREEN 3 sprite pattern table


Internal words (DO NOT USE THEM directly)

  • (DISSCR)
  • (ENASCR)
  • (WRTVDP)
  • (RDVRM)
  • (WRTVRM)
  • (SETRD)
  • (SETWRT)
  • (FILVRM)
  • (LDIRMV)
  • (LDIRVM)
  • (CHGMOD)
  • (CHGCLR)
  • (NMI)
  • (CLRSPR)
  • (INITXT)
  • (INIT32)
  • (INIGRP)
  • (INIMLT)
  • (SETTXT)
  • (SETT32)
  • (SETGRP)
  • (SETMLT)
  • (CALPAT)
  • (CALATR)
  • (GSPSIZ)
  • (GRPPRT)
  • (CHGCAP)
  • (CHGET)
  • (POSIT)
  • (CHPUT)
  • (RDSLT)
  • (WRSLT)
Clone this wiki locally