Files
2026-10-16 10:18:10 +03:00

941 lines
15 KiB
NASM

; ===================================================
; MSX BASIC for Orion-128
;
; Uninitialized variables
; Disassembled by Romychs @ 2026-10-15
; ===================================================
; ---------------------------------------------------
ORG 0x891C
OR_SCRN_MODE:
DS 1
OR_KEY_CLICK_OFF:
DS 1
MB_CRY:
DS 1
MB_CRX:
DS 1
MB_FNK_VIS:
DS 1
OR_KB_TOGGLE_LOCK1:
DS 1
OR_KB_TOGGLE_LOCK2:
DS 1
OR_KB_REPEAT_CNT:
DS 1
OR_KB_REPEAT_INIT:
DS 1
OR_KB_REPEAT_RELOAD:
DS 1
OR_KB_SCAN_DONE:
DS 1
OR_KB_REPEAT_FLG:
DS 1
OR_KB_SCAN_PTR:
DS 1
DS 1
OR_KB_SCAN_CNT:
DS 1
MB_BPARAM1:
DS 88
MB_BPARAM2:
DS 88
OR_KEYMAT_CUR:
DS 1
OR_KEYMAT_CUR_PAD:
DS 3
OR_MONO_PGCOLOR:
DS 6
OR_MONO_TXTCOL:
DS 1
OR_MONO_T32COL:
DS 1
OR_MONO_GRPCGP:
DS 8
OR_MONO_GRPCOL:
DS 17
MSX_LINL40:
DS 1
MSX_LINL32:
DS 1
MSX_LINLEN:
DS 1
MSX_CRTCNT:
DS 1
MSX_CLMLST:
DS 1
MSX_TXTCOL:
DS 2
MSX_TXTCGP:
DS 2
MSX_TXTATR:
DS 2
MSX_TXTPAT:
DS 2
MSX_T32NAM:
DS 2
MSX_T32COL:
DS 2
MSX_T32CGP:
DS 2
MSX_T32ATR:
DS 2
MSX_T32PAT:
DS 2
MSX_GRPNAM:
DS 2
MSX_GRPCOL:
DS 2
MSX_GRPCGP:
DS 2
MSX_GRPATR:
DS 2
MSX_GRPPAT:
DS 2
MSX_MLTNAM:
DS 2
MSX_MLTCOL:
DS 2
MSX_MLTCGP:
DS 2
MSX_MLTATR:
DS 2
MSX_MLTPAT:
DS 2
MSX_CLIKSW:
DS 1
MSX_CSRY:
DS 1
MSX_CSRX:
DS 1
MSX_CNSDFG:
DS 1
MSX_RG0SAV:
DS 1
MSX_RG1SAV:
DS 1
MSX_RG2SAV:
DS 1
MSX_RG3SAV:
DS 1
MSX_RG4SAV:
DS 1
MSX_RG5SAV:
DS 1
MSX_RG6SAV:
DS 1
MSX_RG7SAV:
DS 1
; VDP status (contents of status register 0, in MSX2)
MB_STATFL:
DS 1
; Trigger button status of joystick
MB_TRGFLG:
DS 1
; Foreground colour; set by colour statement
MB_FORCLR:
DS 1
; Background colour; set by colour statement
MB_BAKCLR:
DS 1
; Border colour; set by colour statement
MB_BDRCLR:
DS 1
; Used by CIRCLE statement internally
; JP xxxx code
MAXUPD:
DS 1
; Address of procedure to draw next pixel
MAXUPD_ADDR:
DS 2
; Used by CIRCLE statement internally
; JP xxxx code
MINUPD:
DS 1
; Address of procedure to draw next pixel
MINUPD_ADDR:
DS 2
; Colour code in using graphics
ATRBYT:
DS 1
; Points to queue table at the execution of PLAY statement
MB_QUEUES:
DS 2
MB_FRCNEW:
DS 1
; Interval for the key scan
MB_SCNCNT:
DS 1
; Delay until the auto-repeat of the key begins
MB_REPCNT:
DS 1
; Points to address to write in the key buffer
MB_PUTPNT:
DS 2
; Points to address to read from key buffer
MB_GETPNT:
DS 2
MB_CS1200:
DS 5
MB_CS2400:
DS 5
; Width of LOW and HIGH which represents bit 0 of current baud rate; set by <cassette baud rate> of SCREEN statement
MB_LOW:
DS 2
; Width of LOW and HIGH which represents bit 1 of current baud rate; set by <cassette baud rate> of SCREEN statement
MB_HIGH:
DS 2
; Header bit for the short header of current baud rate (HEADLEN = 2000);
; set by <cassette baud rate> of SCREEN statement
MB_HEADER:
DS 1
; 256/aspect ratio; set by SCREEN statement to use in CIRCLE statement
MB_ASPCT1:
DS 2
; 256 * aspect ratio; set by SCREEN statement to use in CIRCLE statement
MB_ASPCT2:
DS 2
; False end of program for RESUME NEXT statement
; default: ":"
MB_ENDPRG:
DS 1
DS 4
; ==================================================
; Work area used by BASIC internally
; ==================================================
; Area to store the error number
MB_ERRFLG:
DS 1
; Printer head location
MB_LPTPOS:
DS 1
; Flag whether to send to printer
MB_PRTFLG:
DS 1
; Printer (0 = printer for MSX, otherwise not)
MB_NTMSXP:
DS 1
; Non-zero when printing in raw-mode
MB_RAWPRT:
DS 1
; Address of character to be replaced by VAL function
MB_VLZADDR:
DS 2
; Character to be replaced with 0 by VAL function
MB_VLZDAT:
DS 1
; Currenty executing line number of BASIC
MB_CURLIN:
DS 2
; Crunch buffer; translated into intermediate language from BUF (F55EH)
MB_KBFMIN:
DS 1
MB_KBUF:
DS 318
; Used in INPUT statement. Initial value: ", ".
MB_BUFMIN:
DS 1
MB_BUF:
DS 2
MB_DIR_NAME_BUF:
DS 8
MB_FLD_REC_TOP:
DS 2
MB_FLD_DATA_PTR:
DS 8
MB_DIR_ENTRY_PTR:
DS 2
MB_OLD_FILE:
DS 8
MB_NEW_FILE:
DS 8
DS 221
; Terminal position
MB_TTYPOS:
DS 1
MB_DIMFLG:
DS 1
; Type indicator of value
MB_VALTYP:
DS 1
; Operation number
MB_DORES:
MB_OPRTYP:
DS 1
MB_DONUM:
DS 1
; Pointer to text after constant
MB_CONTXT:
DS 2
; Saved token of the constant
MB_CONSAV:
DS 1
; Saved constant VALTYP
MB_CONTYP:
DS 1
; Saved constant value
MB_CONLO:
DS 8
; Highest location in memory
MB_MEMSIZ:
DS 2
MB_STKTOP:
DS 2
; Address of BASIC program text
MB_TXTTAB:
DS 2
; Pointer to first free TMP descritor
MB_TEMPP:
DS 2
; Dtorage for NUMTMP descriptors
MB_TEMPST:
DS 30 ; (STRSIZ*NUMTMP)
; String functions ansfer descriptor
MB_DSCTMP:
DS 3 ; STRSIZ
; Top of string free space
MB_FRETOP:
DS 2
MB_TEMP3:
DS 2
MB_TEMP8:
DS 2
; Saved text pointer to end of FOR statement
MB_ENDFOR:
DS 2
; Number of DATA line for display at errors
MB_DATLIN:
DS 2
; Using indexed variable flag
MB_SUBFLG:
DS 1
; Flag whether we in INPUT
MB_FLGINP:
DS 1
; Temporary variamble for statement code
MB_TEMP:
DS 2
; 0 - no line number converted to pointers, != 0 if pointers exists
MB_PTRFLG:
DS 1
; != 0 if AUTO in action
MB_AUTFLG:
DS 1
; Current line in AUTO mode
MB_AUTLIN:
DS 2
; AUTO Increment value
MB_AUTINC:
DS 2
; Save pointer to RESUME statement
MB_SAVTXT:
DS 2
; Saved stack value for error recovery
MB_SAVSTK:
DS 2
; Line number where last error occured
MB_ERRLIN:
DS 2
; Current line for edit and LIST
MB_DOT:
DS 2
; Text pointer used for RESUME
MB_ERRTXT:
DS 2
; Line for goto when an error occurs
MB_ONELIN:
DS 2
; 1 if on error trap routine executed
MB_ONEFLG:
DS 1
; Temp value for formula evaluation
MB_TEMP2:
DS 2
; Old line number
MB_OLDLIN:
DS 2
MB_OLDTXT:
DS 2
; Pointer to simple variables space
MB_VARTAB:
DS 2
; Pointer to begining of array table
MB_ARYTAB:
DS 2
; Pointer to end of storage in use
MB_STREND:
DS 2
; Pointer to DATA values
MB_DATPTR:
DS 2
; Table of VALTYP for each one-char variables in alphabet order
MB_DEFTBL:
DS 26
; Previous defined block on stack (for GC)
MB_PRMSTK:
DS 2
; Number of bytes in active table
MB_PRMLEN:
DS 2
; Active parameter definition table
MB_PARM1:
DS 100 ; PRMSIZ EQU 100
; Pointer to previous parameter
MB_PRMPRV:
DS 2
; Size of parameter block being build
MB_PRMLN2:
DS 2
; Place to keep parameters being made
MB_PARM2:
DS 100 ; PRMSIZ EQU 100
; Used by MB_PTRGET to flag if MB_PARM1 has been searched
MB_PRMFLG:
DS 1
; Stopping point for simple search
MB_ARYTA2:
DS 2
; 0 if no functions active.
MB_NOFUNS:
DS 1
; Temporary pointer for GC, to chain trough parameter blocks
MB_TEMP9:
DS 2
; Destination line in new program
MB_CHNLIN:
DS 2
; Swap variable, enough spave for DBL variable
MB_SWPTMP:
DS 8
; 1 - Trace in progress, 0 - no trace
MB_TRCFLG:
DS 1
MB_FBUFFR:
DS 43
MB_DECTMP:
DS 2
MB_DECTM2:
DS 2
MB_DECCNT:
DS 2
MB_DACC:
DS 16
MB_HOLD8:
DS 65
MB_ARG:
DS 16
MB_RNDX:
DS 8
; ==================================================
; Data area used by BASIC interpreter
; ==================================================
; Maximum file number; set by MAXFILES statement
MB_MAXFIL:
DS 1
; Starting address of file data area
MB_FILTAB:
DS 2
; Pointer to buffer #0. Buffer for disk operations in SAVE/LOAD subroutines
MB_NULBUF:
DS 2
; Address of file data of currently accessing file
MB_PTRFIL:
DS 2
; Area to store filename
MB_FILNAM:
DS 11
; Area to store filename
MB_FILNM2:
DS 11
; Non-zero value if program is being loaded
MB_NLONLY:
DS 1
; End address of assembly language program to be saved.
; (Also used as position in a file by Orion code)
MB_SAVEND:
DS 2
; Area to store function key string (16 character x 10)
MB_FNKSTR:
DS 160
; Unused. Address to store character font on ROM
MB_CGPNT:
DS 2
DS 1
; Unused. Base address of current pattern name table
MB_NAMBAS:
DS 2
; Unused. Base address of current pattern generator table
MB_CGPBAS:
DS 2
; Unused. Base address of current sprite generator table
MB_PATBAS:
DS 2
; Unused. Base address of current sprite attribute table
MB_ATRBAS:
DS 2
; Used internally by graphic routine
MB_CLOC:
DS 2
; Used internally by graphic routine
MB_CMASK:
DS 1
; Used internally by graphic routine
MB_MINDEL:
DS 2
; Used internally by graphic routine
MB_MAXDEL:
DS 2
; ==================================================
; Data area used by CIRCLE statement
; ==================================================
; Aspect ratio of the circle; set by <ratio> of CIRCLE statement
MB_ASPECT:
DS 2
; Used internally by CIRCLE statement
MB_CENCNT:
DS 2
; Flag whether a line is drawn toward the center; specified by <angle> of CIRCLE statement
MB_CELINEF:
DS 1
; Point to be plotted
MB_CNPNTS:
DS 2
; Used internally by CIRCLE statement
MB_CPLOTF:
DS 1
; Number of one eighth of the circle
MB_CPCNT:
DS 2
; Used internally by CIRCLE statement
MB_CPCNT8:
DS 2
; Used internally by CIRCLE statement
MB_CRCSUM:
DS 2
; Used internally by CIRCLE statement
MB_CSTCNT:
DS 2
; Scale of x and y
MV_CSCLXY:
DS 1
; Reservation area of ADVGRP
MB_CSAVEA:
DS 2
; Reservation area of ADVGRP
MB_CSAVEM:
DS 1
; X offset from the center
MB_CXOFF:
DS 2
; Y offset from the center
MB_CYOFF:
DS 2
; ==================================================
; Data area used in PAINT statement
; ==================================================
; Used internally by PAINT statement
MB_LOHMSK:
DS 1
; Used internally by PAINT statement
MB_LOHDIR:
DS 1
; Used internally by PAINT statement
MB_LOHADR:
DS 2
; Used internally by PAINT statement
MB_LOHCNT:
DS 2
; Skip count
MB_SKPCNT:
DS 2
; Move count
MB_MOVCNT:
DS 2
; Direction of the paint
MB_PDIREC:
DS 1
; Used internally by PAINT statement
MB_LFPROG:
DS 1
; Used internally by PAINT statement
MB_RTPROG:
DS 1
; ==================================================
; Data area used in PLAY statement
; ==================================================
; Points to the top of the table of PLAY macro or DRAW macro
MB_MCLTAB:
DS 2
; Assignment of PLAY/DRAW
MB_MCLFLG:
DS 1
; Queue table
; +0: PUT offset
; +1: GET offset
; +2: backup character
; +3: queue length
; +4: queue address
; +5: queue address
MB_QUETAB:
DS 24
; Used in BCKQ
MB_QUEBAK:
DS 4
MB_MCLLEN:
DS 1
MB_MCLPTR:
DS 2
DS 1
MB_INSFLG_TBL:
DS 1
MB_FNK_LINE_BUF:
DS 1
MB_RSVD_8FCB:
DS 5
; Flag to enable warm start by [SHIFT+Ctrl+Kana key] (0 = disable, otherwise enable)
MB_ENSTOP:
DS 1
; Indicates BASIC text location (0 = on RAM, otherwise in ROM)
MB_BASROM:
DS 1
; Line terminal table; area to keep information about each line of text screen
MB_LINTTB:
DS 24
; First character location of line from INLIN (00B1H) of BIOS
MB_FSTPOS:
DS 2
; Area to reserve the character where the cursor is stacked
MB_CODSAV_1:
DS 1
; Indicates which function key is displayed at KEY ON (1 = F1 to F5 is displayed, 0 = F6 to F10 is displayed)
MB_FNKSW1:
DS 1
; Area to allow, inhibit, or stop the execution of the line defined in ON KEY GOSUB statement, or to reserve it for each function key; set by KEY(n)ON/OFF/STOP statement (0 = KEY(n)OFF/STOP, 1 = KEY(n)ON)
MB_FNKFLG:
DS 10
; Flag to indicate whether event waiting in MB_TRPTBL occurred
MB_ONGSBF:
DS 1
; Key click flag
MB_CLIKFL:
DS 1
; Key matrix status (old)
MB_OLDKEY:
DS 11
MB_NEWKEY:
DS 11
MB_KEYBUF:
DS 40
MB_LINWRK:
DS 26
MB_BLINK_CELL_SAVE:
DS 1
; Installed RAM starting (low) address; ordinarily 8000H in MSX2
MB_BOTTOM:
DS 2
; Highest address of available memory; set by <memory upper limit> of CLEAR statement
MB_HIMEM:
DS 2
MB_TRPTBL:
DS 78
MB_RTYCNT:
DS 1
; If Ctrl+STOP is pressed, setting 03H here causes a stop
MB_INTFLG:
DS 1
; Y-coordinate of the paddle
MB_PADY:
DS 1
; X-coordinate of the paddle
MB_PADX:
DS 1
; Used internally by PLAY statement
MB_JIFFY:
DS 2
; Interval period; set by ON INTERVAL GOSUB statement
MB_INTVAL:
DS 2
; Counter for interval
MB_INTCNT:
DS 2
; Used during reading from cassette tape
MB_LOWLIM:
DS 1
; Used during reading from cassette tape
MB_WINWID:
DS 1
; Flag to send graphic character (1 = graphic character, 0 = normal character)
MB_GRPHED:
DS 1
; Whether cursor is displayed (0 = no, otherwise = yes); set by <cursor switch> of LOCATE statement
MB_CSRSW:
DS 1
; Cursor shape (0 = block, otherwise = underline)
MB_CSTYLE:
DS 1
; CAPS key status (0 = CAP OFF, otherwise = CAP ON)
MB_CAPST:
DS 1
; Kana key status (0 = kana OFF, otherwise = kana ON)
MB_KANAST:
DS 1
; Kana key arrangement status (0 = 50-sound arrangement, otherwise = JIS arrangement)
MB_KANAMD:
DS 1
; 0 when loading BASIC program
MB_FLBMEM:
DS 1
; Current screen mode number
MB_SCRMOD:
DS 1
; Screen mode reservation area
MB_OLDSCR:
DS 1
; Character reservation area used by CAS
MB_CASPRV:
DS 1
; Border colour code used by PAINT; set by <border colour> in PAINT statement
MB_BRDAT:
DS 1
; Graphics X-coordinate
MB_GXPOS:
DS 2
; Graphics Y-coordinate
MB_GYPOS:
DS 2
; Graphic accumulator (X-coordinate)
MB_GRPACX:
DS 2
; Graphic accumulator (Y-coordinate)
MB_GRPACY:
DS 2
; Flag used in DRAW statement
MB_DRWFLG:
DS 1
; DRAW scaling factor (0 = no scaling, otherwise = scaling)
MB_DRWSCL:
DS 1
; Angle at DRAW
MB_DRWANG:
DS 1
; Flag to indicate BLOAD in progress, BSAVE in progress, or neither
MB_RUNBNF:
DS 1
; Starting address of BSAVE
MB_SAVENT:
DS 2
; Stores name of expanded statement (after CALL statement) or expansion device (after OPEN); 0 indicates the end
MB_PROCNM:
DS 16
; Used to identify cartridge device
MB_DEVICE:
DS 1
; Last initialized variable label
MB_LINIVAR:
DS 1