$princ      = 0x10000     ; push ascii
$prinvc     = 0x10004     ; push ascii
$prin4c     = 0x10008     ; push int
$prins      = 0x1000C     ; push address
$prinsn     = 0x10010     ; push address then length
$prinum     = 0x10014     ; push int
$prinhb     = 0x10018     ; push int
$prinhw     = 0x1001C     ; push int
$prinhd     = 0x10020     ; push int
$newline    = 0x10024
$inchar     = 0x10028     ; return ascii in AL
$innum      = 0x1002C     ; return in in EAX, allows +... -... 0x... and decimal
$iflush     = 0x10030
$backch     = 0x10034
$flush      = 0x10038
$filenum    = 0x1003C     ; push name ; jc not-found ; return filenumber in EAX
$readblk    = 0x10040     ; push block-number then memory address
$printf     = 0x10044     ; push args in reverse order, format last. Caller must pop
$allocm     = 0x10048     ; push size of item, then num of items
$freem      = 0x1004C     ; push address then 1=[], 0=plain
$resetm     = 0x10050
$writeblk   = 0x10054     ; push block-number then memory address
$ranseed    = 0x10058     ; push seed seed
$findfile   = 0x1005C     ; push &nblocks, &block1, name; return filenum
$ticktime   = 0x10060     ; return mS in EAX
$reseth     = 0x10064     ; undoes all allocs
$malloc     = 0x10068     ; push number of bytes; address returned in EAX
$palloc     = 0x1006C     ; no param, allocates one page, page aligned
$free       = 0x10070     ; psuh addr; really does nothing
$clrscr     = 0x10074     ; no params
$setcolor   = 0x10078     ; push int 0x70 for reverse video, 7 for normal, etc. two 4bit vals
$winw       = 0x1007C
$winh       = 0x10080
$videomem   = 0x10084
$code       = 0x100000


