lstoff

; MSX BASIC and SYSTEM VARIABLES definitions
;
; December 2007
; $Id: svibasic.def,v 1.10 2017/01/09 10:20:47 stefano Exp $
;


; System variables

defc VDP_RP  = $373A	; address of vdp READ port
defc VDP_WP  = $3732	; address of vdp WRITE port
;;;; defc MSX_VER = $????    ; MSX version (0 = MSX1, 1 = MSX2)

; SUBROUTINES FOR READ/WRITE CALLS OF THE INTER-SLOT
;; defc RDPRIM = $????	;5 Routine that reads from a primary slot 
;; defc WRPRIM = $????	;7 Routine that writes to a primary slot 
;; defc CLPRIM = $????	;14 Routine that calls a routine in a primary slot 
defc USRTAB = $F52B	;2 Address to call with Basic USR0 
defc USR0 = $F52B	;2 Address to call with Basic USR0 
defc USR1 = $F52C	;2 Address to call with Basic USR1 
defc USR2 = $F52D	;2 Address to call with Basic USR2 
defc USR3 = $F52E	;2 Address to call with Basic USR3 
defc USR4 = $F52F	;2 Address to call with Basic USR4 
defc USR5 = $F530	;2 Address to call with Basic USR5 
defc USR6 = $F531	;2 Address to call with Basic USR6 
defc USR7 = $F532	;2 Address to call with Basic USR7 
defc USR8 = $F533	;2 Address to call with Basic USR8 
defc USR9 = $F534	;2 Address to call with Basic USR9 
;; defc LINL40 = $????	;1 Width for SCREEN 0 (default 37) 
;; defc LINL32 = $????	;1 Width for SCREEN 1 (default 29) 
defc LINLEN = $F543	;1 Width for the current text mode 
;; defc CRTCNT = 25	; Number of lines on screen (on SVI this is hardcoded)
;; defc CLMLST = $????	;1 Column space. It’s uncertain what this address actually stores 

; WORK FOR INITIALIZATION
;;
;; On the SVI the video is handled differently than on the MSX
;;
defc CLIKSW = $FA02	;press click status (CLICK)
defc CSRY = $FA03	;1 Current row-position of the cursor 
defc CSRX = $FA04	;1 Current column-position of the cursor 
defc CNSDFG = $FA06	;function keys status

; AREA TO SAVE VDP REGISTERS
defc RG0SAV = $FE3C	;1 Content of VDP(0) register (R#0) 
;; defc RG1SAV = $FE3B	;1 Content of VDP(1) register (R#1)   ( $FA07 ?? )
defc RG1SAV = $FA07	;1 Content of VDP(1) register (R#1)
;;
;; On SVI the other registers do not seem to be preserved
;;
defc STATFL = $FE3D	;1 Content of VDP(8) status register (S#0) 
defc TRGFLG = $FA08 ;1 Information about trigger buttons and space bar state 

defc FORCLR = $FA0A	;1 Foreground color 
defc BAKCLR = $FA0B	;1 Background color 
defc BDRCLR = $FA0C	;1 Border color (BORCLR)
defc MAXUPD = $FA0D	;3 Jump instruction used by Basic LINE command. The routines used are: RIGHTC, LEFTC, UPC and DOWNC 
defc MINUPD = $FA10	;3 Jump instruction used by Basic LINE command. The routines used are: RIGHTC, LEFTC, UPC and DOWNC 
defc ATRBYT = $FA13	;1 Attribute byte (for graphical routines it’s used to read the color) 

;WORK AREA FOR PLAY STATEMENT
defc QUEUES = $FA17	;2 Address of the queue table 
defc FRCNEW = $FD4B	;1 CLOAD flag

; WORK AREA FOR KEY INPUT
defc SCNCNT = $FE78	;1 Key scan timing
defc REPCNT = $FA19	;1 This is the key repeat delay counterprin
defc PUTPNT = $FA1A	;2 Address in the keyboard buffer where a character will be written 
defc GETPNT = $FA1C	;2 Address in the keyboard buffer where the next character is read 
;;
;; On SVI cassette handling is different than MSX (no parameter tables exist)
;;
;; defc ASPCT1 = $????	;2 Horizontal / Vertical aspect for CIRCLE command 
;; defc ASPCT2 = $????	;2     "  On SVI the GTASPCT call returns constantly $0100 for both 
defc ENDPRG = $F526	;5 Pointer for the RESUME NEXT command

; USED BY BASIC INTERNALLY
defc ERRFLG = $F53F	;1 Basic Error code 
defc LPTPOS = $F541	;1 Position of the printer head
defc PRTFLG = $F542	;1 Printer output flag is read by OUTDO
;; defc NTMSXP = MISSING	;1 Printer type .. seems to be missing on SVI
;; defc RAWPRT = $????	;1 Raw printer output is read by OUTDO.. seems to be missing on SVI
defc VLZADR = $F54C	;2 Address of data that is temporarilly replaced by ‘O’ when Basic function VAL("") is running 
defc VLZDAT = $F8E8	;1 Original value that was in the address pointed to with VLZADR 
defc CURLIN = $F548	;2 Line number the Basic interpreter is working on, in direct mode it will be filled with #FFFF

defc KBUF   = $F54F

defc BUFMIN = $F68D  ; used in INPUT st.
defc BUF    = $F68E  ; Buffer to store characters typed( in ASCII code)
defc ENDBUF = $F790  ; Prevent overflow of BUF
defc TTYPOS = $F791  ; Virtual cursor location internally retained by BASIC
defc DIMFLG = $F792  ; ARRAY FLAG
defc VALTYP = $F793  ; Type indicator
defc OPRTYP = $F794  ; Store operator number in the extended momentarily before operator application (=DORES on SVI)
defc DORES  = $F794  ; Indicates whether stored word can be crunched
defc DONUM  = $F795  ; Flag for crunch
defc CONTXT = $F796  ; Text address used by CNRGET
defc CONSAV = $F798  ; Store token of constant after calling CHRGET
defc CONTYP = $F799  ; Type of stored constant
defc CONLO  = $F79A  ; Value of stored constant
defc MEMSIZ = $F7A2  ; Highest location in memory used by BASIC
defc STKTOP = $F546  ; Top location to be used for the stack
defc TXTTAB = $F54A  ; Starting address of BASIC text area
defc TEMPPT = $F7A4  ; Starting address of unused area of temporary descriptor
defc TEMPST = $F7A6  ; Temporary descriptors
defc TMPSTR = $F7C3  ; Temporary string
defc DSCTMP = $F7C4  ; String descriptor wich is the result of string fun.
defc FRETOP = $F7C7  ; Starting address of unused area of string area
defc TEMP3  = $F7C9  ; Used for garbage collection or by USR function
defc TEMP8  = $F7CB  ; Used for garbage collection
defc ENDFOR = $F7CD  ; Next address of FOR st.
defc DATLIN = $F7CF  ; Line number of DATA st.read by READ st.
defc SUBFLG = $F7D1  ; Flag for array for USR fun.
defc USFLG  = $F7D2
defc FLGINP = $F7D2  ; Flag for INPUT or READ
defc TEMP   = $F7D3  ; Location for temporary reservation for st.code
defc PTRFLG = $F7D5  ; =0 if no line number converted to pointers
defc AUTFLG = $F7D6  ; AUTO mode flag
defc AUTLIN = $F7D7  ; Current line number for auto
defc AUTINC = $F7D9  ; (AUTOP) Increment for auto
defc SAVTXT = $F7DB  ; Text pointer for resume
defc SAVSTK = $F7DD  ; Save stack when error occurs
defc ERRLIN = $F7DF  ; Line where last error
defc DOT    = $F7E1  ; Current line for edit & list
defc ERRTXT = $F7E3  ; Text pointer for use by RESUME
defc ONELIN = $F7E5  ; LINE to go when error
defc ONEFLG = $F7E7  ; =1 if executing an error trap routine
defc TEMP2  = $F7E8
defc OLDLIN = $F7EA  ; old line number set up ^C ...
defc OLDTXT = $F7EC  ; Points st. to be executed next
defc VARTAB = $F7EE  ; Pointer to start of variable space
defc ARYTAB = $F7F0  ; Pointer to begging of array table
defc STREND = $F7F2
defc DATPTR = $F7F4  ; DATA pointer
defc DEFTBL = $F7F6  ; Default valtype for each letter

; USER FUNCTION PARAMETERS
defc PRMSTK = $F810  ; Previous definition block on stack
defc PRMLEN = $F812  ; Number of bytes of objective table
defc PARM1  = $F814  ; Objective prameter definition table
defc PRMPRV = $F878  ; Pointer to previous parameter block
defc PRMLN2 = $F87A  ; Size of parameter block
defc PARM2  = $F87C  ; For parameter storage
defc PRMFLG = $F8E0  ; Flag to indicate whether PARM1 was searching
defc ARYTA2 = $F7F0  ; End point of search
defc NOFUNS = $F8E3  ; 0 if no function active
defc TEMP9  = $F8E4  ; Location of temporary storage for garbage collection
defc FUNACT = $F8E6  ; Count of active functions
defc SWPTMP = $F8E9  ; Value of first  variable in SWAP st.
defc TRCFLG = $FA08  ; 0 MEANS NO TRACE

; MATH-PACK
defc FBUFFR = $F8F2  ; Buffer for fout
defc DECTMP = $F91D  ; Used to transform decimal integer to floating point number
defc DECTM2 = $F91F  ; Used at division routine execution
defc DECCNT = $F921  ; Used at division routine execution
defc DAC    = $F923  ; DECIMAL ACCUMULATOR
defc FACCU  = $F923  ; alias for DECIMAL ACCUMULATOR
defc FACLOW = $F925  ; DECIMAL ACCUMULATOR + 2
;; defc HOLD8  = $????  ; Registers for decimal multiplication (?)
;; defc HOLDB  = $F933  ; Registers for decimal multiplication (?)
defc HOLD2  = $F963
defc HOLD   = $F968
defc ARG    = $F974  ; Area to set the value to be calculate with DAC
defc RNDX   = $F984  ; Last random number

; DATA AREA USED BY BASIC INTERPRETER
defc MAXFIL = $F98D  ; (MAXFILES) High legal file number
defc FILTAB = $F98E  ; Starting address of of file data area
defc NULBUF = $F992  ; Points to file 0 buffer ( used in SAVE & LOAD st.)
defc PTRFIL = $F997  ; Points to file data of currently accessing file
defc RUNFLG = $F99E  ; Non-zero for run after load
defc FILNAM = $F99E  ; Name for FILES, NAME & others
defc FILNM2 = $F9A7  ; Second name for NAME
defc NLONLY = $F9B2  ; <>0 when loading program
defc SAVEND = $F9B4  ; End address for BSAVE
defc FNKSTR = $FA1E  ; FUNCTION KEY AREA
;; defc CGPNT  = $????  ; Address to store charecter font in ROM
defc CGTABL = $4198
;; defc SLOTID = $????	 ; 1 Character set SlotID 
;; defc CHFONT = $????	 ; 2 Character set address 
;; defc NAMBAS = $????  ; Base address of current pattern name table
;; defc CGPBAS = $????  ; Base address of current pattern generator table
;; defc PATBAS = $????  ; Base address of current sprite generator table
defc ATRBAS = $1B00     ; Base address of current sprite attribute table (static address on SVI, PTR on MSX)
defc CLOC   = $FAC0		; (CHKROM/CLOC)
defc CMASK  = $FAC2
defc MINDEL = $FAE9
defc MAXDEL = $FAEB

; DATA AREA FOR CIRCLE STATEMENT
defc ASPECT = $FAC3  ; Aspect ratio of the circle; set by <ratio> of CIRCLE
defc CENCNT = $FAC5  ; End count
defc CLINEF = $FAC7  ; Flag to draw line to centre
defc CNPNTS = $FAC8  ; Point to be plottted
defc CPLOTF = $FACA  ; (CPLDTF) Plot polarity flag
defc CPCNT  = $FACB  ; (CPCND)1/8 of number of points in circle
defc CPCNT8 = $FACD  ; (CPCNT)
;; defc CRCSUM = $????  (CRCSU)
defc CSTCNT = $FAD1  ; (CSTCN)
defc CSCLXY = $FAD3  ; Scale of X & Y
defc CSAVEA = $FAD4  ; reservation area of ADVGRP
defc CSAVEM = $FAD6  ; reservation area of ADVGRP
defc CXOFF  = $FAD7  ; X offset from center
defc CYOFF  = $FAD9  ; Y offset from center

; DATA AREA FOR PAINT STATEMENT
defc LOHMSK = $FADB
defc LOHDIR = $FADC
defc LOHADR = $FADD
defc LOHCNT = $FADF
defc SKPCNT = $FAE1  ; Skip count
defc MOVCNT = $FAE3  ; Movement count
defc PDIREC = $FAE5  ; (POIREC) Direction of the paint
defc LFPROG = $FAE5
defc RTPROG = $FAE7

defc MCLTAB = $FAEF
defc MCLFLG = $FAF1

defc QUETAB = $FAF2
defc QUEBAK = $FB0A
defc VOICAQ = $FB0E
defc VOICBQ = $FB8E
defc VOICCQ = $FC0E

; FOR MSX 2 ONLY ?
;; defc DPPAGE  = $????    ;  Display page number

;; defc ACPAGE  = $????
;; defc AVCSAV  = $????    ;  Reserves AV control port
;; defc EXBRSA  = $????    ;  1 Slot address of the SUBROM (EXtended Bios-Rom Slot Address) 

;; defc CHRCNT  = $????    ;  Character counter in the buffer used in Roman-Kana translation
;; defc ROMA    = $????    ;  Area to store character (Japan version only)
;; defc MODE    = $????    ;  mode svitch for VRAM size
;; defc NORUSE  = $????    ;  unused
;; defc XSAVE   = $????    ;  [10000000 XXXXXXXX]
;; defc YSAVE   = $????    ;  [*0000000 YYYYYYYY] *-light pen interrupt request
;; defc LOGOPR  = $????    ;  Logical operation code

; Data area used by RS-232C or disk drive
;; defc RSTMP   = $????
;; defc TOCNT   = $????
;; defc RSFCB   = $????
;; defc RSIQLN  = $????
;; defc MEXBIH  = $????
;; defc OLDSTT  = $????
;; defc OLDINT  = $????
;; defc DEVNUM  = $????
defc DATCNT  = $FE4D
;; defc ERRORS  = $????
;; defc FLAGS   = $????
;; defc ESTBLS  = $????
;; defc COMMSK  = $????
;; defc LSTCOM  = $????
;; defc LSTMOD  = $????

; Data area used by MSX-DOS
;; defc DRVINF  = $FB21	;1 Nr. of drives connected to disk interface 1 
;; defc DRVINF1 = $FB21	;1 Nr. of drives connected to disk interface 1 
;; defc DISKIF1 = $FB22	;1 Slot address of disk interface 1 
;; defc DRVINF2 = $FB23	;1 Nr. of drives connected to disk interface 2 
;; defc DISKIF2 = $FB24	;1 Slot address of disk interface 2 
;; defc DRVINF3 = $FB25	;1 Nr. of drives connected to disk interface 3 
;; defc DISKIF3 = $FB26	;1 Slot address of disk interface 3 
;; defc DRVINF4 = $FB27	;1 Nr. of drives connected to disk interface 4 
;; defc DISKIF4 = $FB28	;1 Slot address of disk interface 4 

defc PRSCNT = $FCCE ; Used by PLAY command in BASIC
defc SAVSP  = $FCCF ;  "
defc VOICEN = $FCD1 ;  "
defc SAVVOL = $FCD2 ;  "
defc MCLLEN = $FCD4 ;  "
defc MCLPTR = $FCD5 ;  "
defc QUEUEN = $FCD7
defc MUSICF = $FCD8
defc PLYCNT = $FCD9
defc VCBA   = $FCDA ; (VCBA/METREX)
defc VCBB   = $FCFF
defc VCBC   = $FD24   ; (VCCC)
;; defc ENSTOP = $???? ; <>0 if warm start enabled (CTRL+SHIFT+GRPH+KANA/CODE for warm start)
defc BASROM = $FD4C ; <>0 if basic is in rom (CTRL+STOP disabled)

defc LINTTB = $FD4D  ; line terminator table (<>0 if line terminates)
defc FSTPOS = $FD65  ; first position for inlin
defc CODSAV = $FD67  ; code save area for cursor
defc FNKSWI = $FD68  ; indicate which func key is displayed
defc FNKFLG = $FD69  ; fkey which have subroutine
defc ONGSBF = $FD73  ; global event flag
defc CLIKFL = $FD74
defc OLDKEY = $FD75  ; (OLDKEYS) (key map)
defc NEWKEY = $FD80  ; (ACTKEYS) (key map)
defc KEYBUF = $FD8B  ;  key code buffer
defc BUFEND = $FDB3  ;  end of key buffer
defc LINWRK = $FDB4  ;  ^
defc PATWRK = $FDDC  ;  Pattern Buffer
defc BOTTOM = $FDE4
defc SYSMEM = $FDE6	;start address of system memory
defc HIMEM  = $FDE6 ;^
defc TRPTBL = $FDEB
defc RTYCNT = $FB2A

; --------------------------------------------------------------------------

; TRPTBL (78) - Data table for the interrupt facilities 


defc IFLG_F1       = $FDEB  ; F1 Key - Interrupt flags
defc IENTRY_F1     = $FDEC  ; F1 Key - Interrupt related code
defc IFLG_F2       = $FDEE  ; F2 Key - Interrupt flags
defc IENTRY_F2     = $FDEF  ; F2 Key - Interrupt related code
defc IFLG_F3       = $FDF1  ; F3 Key - Interrupt flags
defc IENTRY_F3     = $FDF2  ; F3 Key - Interrupt related code
defc IFLG_F4       = $FDF4  ; F4 Key - Interrupt flags
defc IENTRY_F4     = $FDF5  ; F4 Key - Interrupt related code
defc IFLG_F5       = $FDF7  ; F5 Key - Interrupt flags
defc IENTRY_F5     = $FDF8  ; F5 Key - Interrupt related code
defc IFLG_F6       = $FDFA  ; F6 Key - Interrupt flags
defc IENTRY_F6     = $FDFB  ; F6 Key - Interrupt related code
defc IFLG_F7       = $FDFD  ; F7 Key - Interrupt flags
defc IENTRY_F7     = $FDFE  ; F7 Key - Interrupt related code
defc IFLG_F8       = $FE00  ; F8 Key - Interrupt flags
defc IENTRY_F8     = $FE01  ; F8 Key - Interrupt related code
defc IFLG_F9       = $FE03  ; F9 Key - Interrupt flags
defc IENTRY_F9     = $FE04  ; F9 Key - Interrupt related code
defc IFLG_F10      = $FE06  ; F10 Key - Interrupt flags
defc IENTRY_F10    = $FE07  ; F10 Key - Interrupt related code

defc IFLG_STOP     = $FE09  ; STOP button - Interrupt flags
defc IENTRY_STOP   = $FE0A  ; STOP button - Interrupt related code
defc IFLG_COLLSN   = $FE0C  ; Sprite collision - Interrupt flags
defc IENTRY_COLLSN = $FE0D  ; Sprite collision - Interrupt related code

defc IFLG_STRIG0   = $FE0F  ; SPACE key trigger - Interrupt flags
defc IENTRY_STRIG0 = $FE10  ; SPACE key trigger - Interrupt related code
defc IFLG_STRIG1   = $FE12  ; Joystick 1, Fire 1 - Interrupt flags
defc IENTRY_STRIG1 = $FE13  ; Joystick 1, Fire 1 - Interrupt related code
defc IFLG_STRIG2   = $FE15  ; Joystick 2, Fire 1 - Interrupt flags
defc IENTRY_STRIG2 = $FE16  ; Joystick 2, Fire 1 - Interrupt related code
defc IFLG_STRIG3   = $FE18  ; Joystick 1, Fire 2 - Interrupt flags
defc IENTRY_STRIG3 = $FE19  ; Joystick 1, Fire 2 - Interrupt related code
defc IFLG_STRIG4   = $FE1B  ; Joystick 2, Fire 2 - Interrupt flags
defc IENTRY_STRIG4 = $FE1C  ; Joystick 2, Fire 2 - Interrupt related code

defc IFLG_TIMER    = $FE1E  ; TIMER - Interrupt flags
defc IENTRY_TIMER  = $FE1F  ; TIMER - Interrupt related code

; --------------------------------------------------------------------------


defc INTFLG = $FE2B ; This flag is set if STOP (=4) or CTRL + STOP (=3) is pressed
defc PADY   = $FE2C ; Y-coordinate of a connected Graphics Tablet (PAD)
defc PADX   = $FE2D ; X-coordinate of a connected Graphics Tablet (PAD)

defc JIFFY  = $FE2E ; (TIMEVAR) Counter for the BASIC "time" function, each interrupt of the VDP  it is increased by 1. 
defc INTVAL = $FE30 ; length of the interval when the ON INTERVAL routine was established.
defc INTCNT = $FE32 ; ON INTERVAL counter (counts backwards)
;; defc LOWLIM = $???? ; Used by the Cassette system (minimal length of startbit)
;; defc WINWID = $???? ; Used by the Cassette system (store the difference between a low-and high-cycle)
;; defc GRPHED = $???? ; flag for graph. char
defc ESCCNT = $FE34 ; escape sequence counter
defc INSFLG = $FE36 ; insert mode flag
defc CSRSW  = $FA05 ; cursor display switch
defc CSTYLE = $FE37 ; cursor style i.e. Used if INS Key is used ( 00# = Full Cursor / FF# = Halve Cursor ) 
defc CAPST  = $FE38 ; capital status ( 00# = Off / FF# = On )
;; defc KANAST = $???? ; russian key status (Dead Keys) 1=DK, 2=SHIFT+DK, 3=CODE+DK, 4=SHIFT+CODE+DK
;; defc KANAMD = $????
defc FLBMEM = $FE39 ; 0 if loading basic programm

defc SCRMOD = $FE3A
defc OLDSCR = $FDEA ; old screen mode
defc CASPRV = $FE3E ; (does RG2SAV ezist on SVI ?)
defc BRDATR = $FE41
defc GXPOS  = $FE42 ; X-position
defc GYPOS  = $FE44 ; Y-position
defc GRPACX = $FE46
defc GRPACY = $FE48
defc DRWFLG = $FE4A ; DrawFlag: Bit 7 = Draw Line (,N), Bit 6 = Move Cursor (,B)
defc DRWSCL = $FE4B ; DrawScaling
defc DRWANG = $FE4C ; DrawAngle (0..3): 1=90 degrees rotation .. 3=270 degrees, etc..

defc RUNBNF = $FE57 ; Run Binary File After loading ( Bload"File.Bin",R ) 0 = Don't Run / 1 = Run
defc SAVENT = $FE58 ; start address for BSAVE / BLOAD operations

; ????  --  slot-address of main-ROM
;; defc EXPTBL = $????	;1 Slot 0: #80 = expanded, 0 = not expanded. Also slot address of the main BIOS-ROM. 
;; defc EXP0 = $????	;1 Expansion Slot 0
;; defc EXP1 = $????	;1 Expansion Slot 1
;; defc EXP2 = $????	;1 Expansion Slot 2
;; defc EXP3 = $????	;1 Expansion Slot 3
;; defc SLTTBL = $????	;1 Mirror of slot 0 secondary slot selection register. 
;; defc SLT0 = $????	;1 Mirror of slot 0...
;; defc SLT1 = $????	;1 Mirror of slot 1...
;; defc SLT2 = $????	;1 Mirror of slot 2...
;; defc SLT3 = $????	;1 Mirror of slot 3...

;; defc SLTATR = $???? ; Slotatributes found starting: Bit 7 = Basic prog, Bit 6 = Dev Ext, Bit 5 = Stmt Ext
;; defc SLTWRK = $???? ; (free word = FD09H + 32*basic slot + 8*expansion slot + 2*page)
;; defc PROCNM = $???? ; name of expanded statement
;; defc DEVICE = $???? ; device ID for cartrige 0-3


; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
; BASIC locations
; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

defc WARM_BT = $092B	; address of "warm boot" BASIC interpreter

defc DOTLINE = $243C	; LINE (BC,DE)-(GXPOS,GYPOS)
defc DOBOXF  = $2401
defc BOXLIN  = $2452
defc DO_CIRC = $265A

;; defc PSET    = $2338
defc DO_PSET = $2338	; (X = (BC), Y = (DE))

;; defc N_PAINT = $????	; (color = (A), X = (BC), Y = (DE)) -
defc O_PAINT = $2524	; - init: CALL 0129H (PNTINI in msxbios), then CALL PAINT


lston

