mirror of
https://github.com/romychs/OK240.2-Firmware.git
synced 2026-09-14 23:05:10 +03:00
Source codes for MS Basic-80 for Okean-240.2 (R5 BIOS)
This commit is contained in:
parent
2413b7903a
commit
0597056403
9
MB/.vscode/extensions.json
vendored
Normal file
9
MB/.vscode/extensions.json
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"recommendations": [
|
||||||
|
"maziac.asm-code-lens",
|
||||||
|
"maziac.dezog",
|
||||||
|
"maziac.hex-hover-converter",
|
||||||
|
"maziac.z80-instruction-set",
|
||||||
|
"maziac.sna-fileviewer"
|
||||||
|
]
|
||||||
|
}
|
||||||
42
MB/.vscode/launch.json
vendored
Normal file
42
MB/.vscode/launch.json
vendored
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
// Use IntelliSense to learn about possible attributes.
|
||||||
|
// Hover to view descriptions of existing attributes.
|
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "dezog",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "Simulator - ZX48K Spectrum",
|
||||||
|
"remoteType": "zsim",
|
||||||
|
"zsim": {
|
||||||
|
"visualMemory": true,
|
||||||
|
"memoryModel": "ZX48K",
|
||||||
|
"ulaScreen": "spectrum",
|
||||||
|
"zxKeyboard": "spectrum",
|
||||||
|
"zxBeeper": true
|
||||||
|
},
|
||||||
|
"sjasmplus": [
|
||||||
|
{
|
||||||
|
"path": "MB_OK240.sld"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"commandsAfterLaunch": [],
|
||||||
|
"history": {
|
||||||
|
"reverseDebugInstructionCount": 1000000,
|
||||||
|
"spotCount": 10,
|
||||||
|
"codeCoverageEnabled": true
|
||||||
|
},
|
||||||
|
"startAutomatically": false,
|
||||||
|
"rootFolder": "${workspaceFolder}",
|
||||||
|
|
||||||
|
"topOfStack": "stack_top",
|
||||||
|
|
||||||
|
"loadObjs": [
|
||||||
|
{ "path": "MB_OK240.com", "start": "0x0100" }
|
||||||
|
],
|
||||||
|
"execAddress": "0x0100"
|
||||||
|
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
32
MB/.vscode/tasks.json
vendored
Normal file
32
MB/.vscode/tasks.json
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "make MB_OK240 (sjasmplus)",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "sjasmplus",
|
||||||
|
"args": [
|
||||||
|
"--exp=MB_OK240.inc",
|
||||||
|
"--fullpath",
|
||||||
|
"--nofakes",
|
||||||
|
"--i8080",
|
||||||
|
"MB_OK240.asm"
|
||||||
|
],
|
||||||
|
"problemMatcher": {
|
||||||
|
"owner": "sjasmplus",
|
||||||
|
"fileLocation": "autoDetect",
|
||||||
|
"pattern": {
|
||||||
|
"regexp": "^(.*)\\((\\d+)\\):\\s+(warning|error):\\s+(.*)$",
|
||||||
|
"file": 1,
|
||||||
|
"line": 2,
|
||||||
|
"severity": 3,
|
||||||
|
"message": 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
15221
MB/MB_OK240.asm
Normal file
15221
MB/MB_OK240.asm
Normal file
File diff suppressed because it is too large
Load Diff
27
MB/README.md
Normal file
27
MB/README.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Ocean-240.2 MS Basic
|
||||||
|
|
||||||
|
Source codes of Microsoft Basic for Ocean-240.2 computer (BASIC-80 R.5/240).
|
||||||
|
Based on Microsoft BASIC-80 v5.21.
|
||||||
|
|
||||||
|
- In Z80 mnemonics, but limited for i8080 instruction set.
|
||||||
|
- I tried to keep the original label names as they are in the source codes published by Microsoft.
|
||||||
|
- Small bug with cond jump to data table fixed.
|
||||||
|
|
||||||
|
## Extended Ocean-240.2 operators
|
||||||
|
|
||||||
|
* CLS - Clear screen;
|
||||||
|
* SCRN - Set graphics mode;
|
||||||
|
* COLOR - Set foreground colors;
|
||||||
|
* CURS - Move cursor to specified position;
|
||||||
|
* PLOT - Draw line from cursor pos to specified position;
|
||||||
|
* RECT - Draw rectangle with diagonal from cursor pos to specified position;
|
||||||
|
* GPRINT - Print graphics screen to printer;
|
||||||
|
* TONE - unimplemented;
|
||||||
|
|
||||||
|
## Compile
|
||||||
|
|
||||||
|
Code is located in memory at address: 0x100
|
||||||
|
|
||||||
|
sjasmplus --sld=MB_OK240.sld --sym=MB_OK240.labels --raw=MB_OK240.obj --fullpath MB_OK240.asm
|
||||||
|
|
||||||
|
To compile sources, use [sjasmplus Z80 assembler](https://github.com/z00m128/sjasmplus).
|
||||||
456
MB/equates.inc
Normal file
456
MB/equates.inc
Normal file
@ -0,0 +1,456 @@
|
|||||||
|
; ---------------------------------------------------
|
||||||
|
; STATEMENTS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_STMDSP EQU 128 ; 0x80
|
||||||
|
_END EQU 129 ; 0x81
|
||||||
|
_FOR EQU 130 ; 0x82
|
||||||
|
_NEXT EQU 131 ; 0x83
|
||||||
|
_DATA EQU 132 ; 0x84
|
||||||
|
_INPUT EQU 133 ; 0x85
|
||||||
|
_DIM EQU 134 ; 0x86
|
||||||
|
_READ EQU 135 ; 0x87
|
||||||
|
_LET EQU 136 ; 0x88
|
||||||
|
_GOTO EQU 137 ; 0x89
|
||||||
|
_RUN EQU 138 ; 0x8a
|
||||||
|
_IF EQU 139 ; 0x8b
|
||||||
|
_RESTORE EQU 140 ; 0x8c
|
||||||
|
_GOSUB EQU 141 ; 0x8d
|
||||||
|
_RETUR EQU 142 ; 0x8e
|
||||||
|
_REM EQU 143 ; 0x8f
|
||||||
|
_STOP EQU 144 ; 0x90
|
||||||
|
_PRINT EQU 145 ; 0x91
|
||||||
|
_CLEAR EQU 146 ; 0x92
|
||||||
|
_LIST EQU 147 ; 0x93
|
||||||
|
_NEW EQU 148 ; 0x94
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; 8K AND ABOVE STATEMENTS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_ON EQU 149 ; 0x95
|
||||||
|
_NULL EQU 150 ; 0x96
|
||||||
|
_WAIT EQU 151 ; 0x97
|
||||||
|
_DEF EQU 152 ; 0x98
|
||||||
|
_POKE EQU 153 ; 0x99
|
||||||
|
_CONT EQU 154 ; 0x9A
|
||||||
|
_CSAVE EQU 155 ; 0x9B
|
||||||
|
_CLOAD EQU 156 ; 0x9C
|
||||||
|
_OUT EQU 157 ; 0x9D
|
||||||
|
_LPRINT EQU 158 ; 0x9E
|
||||||
|
_LLIST EQU 159 ; 0x9F
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; LEN2 AND ABOVE STATEMENTS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_WIDTH EQU 161 ; 0xA1
|
||||||
|
_ELSE EQU 162 ; 0xA2
|
||||||
|
_TRON EQU 163 ; 0xA3
|
||||||
|
_TROFF EQU 164 ; 0xA4
|
||||||
|
_SWAP EQU 165 ; 0xA5
|
||||||
|
_ERASE EQU 166 ; 0xA6
|
||||||
|
_EDIT EQU 167 ; 0xA7
|
||||||
|
_ERROR EQU 168 ; 0xA8
|
||||||
|
_RESUME EQU 169 ; 0xA9
|
||||||
|
_DELETE EQU 170 ; 0xAA
|
||||||
|
_AUTO EQU 171 ; 0xAB
|
||||||
|
_RENUM EQU 172 ; 0xAC
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; EXTENDED AND ABOVE
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_DEFSTR EQU 173 ; 0xAD
|
||||||
|
_DEFINT EQU 174 ; 0xAE
|
||||||
|
_DEFSNG EQU 175 ; 0xAF
|
||||||
|
_DEFDBL EQU 176 ; 0xB0
|
||||||
|
_LINE EQU 177 ; 0xB1
|
||||||
|
_WHILE EQU 180 ; 0xB4
|
||||||
|
_WEND EQU 181 ; 0xB5
|
||||||
|
_CALL EQU 182 ; 0xB6
|
||||||
|
_WRITE EQU 183 ; 0xB7
|
||||||
|
_COMMON EQU 184 ; 0xB8
|
||||||
|
_CHAIN EQU 185 ; 0xB9
|
||||||
|
_OPTION EQU 186 ; 0xBA
|
||||||
|
_RANDOMIZE EQU 187 ; 0xBB
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; DISK AND ABOVE
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_SYSTE EQU 189 ; 0xBD
|
||||||
|
_OPEN EQU 191 ; 0xBF
|
||||||
|
_FIELD EQU 192 ; 0xC0
|
||||||
|
_GET EQU 193 ; 0xC1
|
||||||
|
_PUT EQU 194 ; 0xC2
|
||||||
|
_CLOSE EQU 195 ; 0xC3
|
||||||
|
_LOAD EQU 196 ; 0xC4
|
||||||
|
_MERGE EQU 197 ; 0xC5
|
||||||
|
_FILES EQU 198 ; 0xC6
|
||||||
|
_NAME EQU 199 ; 0xC7
|
||||||
|
_KILL EQU 200 ; 0xC8
|
||||||
|
_LSET EQU 201 ; 0xC9
|
||||||
|
_RSET EQU 202 ; 0xCA
|
||||||
|
_SAVE EQU 203 ; 0xCB
|
||||||
|
_RESET EQU 204 ; 0xCC
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; NCR VERSION ONES.
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_TO EQU 206 ; 0xCE
|
||||||
|
TOTK EQU 206
|
||||||
|
|
||||||
|
_THEN EQU 207 ; 0xCF
|
||||||
|
THENTK EQU 207
|
||||||
|
|
||||||
|
_TAB EQU 208 ; 0xD0
|
||||||
|
TABTK EQU 208
|
||||||
|
|
||||||
|
_STEP EQU 209 ; 0xD1
|
||||||
|
STEPTK EQU 209 ; 0xD1
|
||||||
|
|
||||||
|
_USR EQU 210 ; 0xD2
|
||||||
|
USRTK EQU 210 ; 0xD2
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; 8K FUNCTIONS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_FN EQU 211 ; 0xD3
|
||||||
|
FNTK EQU 211
|
||||||
|
|
||||||
|
_SPC EQU 212 ; 0xD4
|
||||||
|
SPCTK EQU 212
|
||||||
|
|
||||||
|
_NOT EQU 213 ; 0xD5
|
||||||
|
NOTTK EQU 213
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; LEN2 TOKENS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_ERL EQU 214 ; 0xD6
|
||||||
|
ERLTK EQU 214 ; 0xD6
|
||||||
|
|
||||||
|
_ERR EQU 215 ; 0xD7
|
||||||
|
ERCTK EQU 215 ; 0xD7
|
||||||
|
|
||||||
|
; EXTENDED TOKENS
|
||||||
|
|
||||||
|
_STRIN EQU 216 ; 0xD8
|
||||||
|
|
||||||
|
_USING EQU 217 ; 0xD9
|
||||||
|
USINTK EQU 217 ; 0xD9
|
||||||
|
|
||||||
|
_INSTR EQU 218 ; 0xDA
|
||||||
|
INSRTK EQU 218 ; 0xDA
|
||||||
|
|
||||||
|
;_DUMMY EQU 219 ; 0xDB
|
||||||
|
SNGQTK EQU 219 ; 0xDB
|
||||||
|
|
||||||
|
_VARPT EQU 220 ; 0xDC
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; NCR VERSION TOKENS
|
||||||
|
; SPCDSK TOKENS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_INKEY EQU 221 ; 0xDD
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; Extended OK-240 operators
|
||||||
|
; ---------------------------------------------------
|
||||||
|
EXT_OP_FIRST EQU 224
|
||||||
|
_CLS EQU 224 ; 0xE0
|
||||||
|
_SCRN EQU 225 ; 0xE1
|
||||||
|
_COLOR EQU 226 ; 0xE2
|
||||||
|
_CURS EQU 227 ; 0xE3
|
||||||
|
_PLOT EQU 228 ; 0xE4
|
||||||
|
_RECT EQU 229 ; 0xE5
|
||||||
|
_GPRINT EQU 230 ; 0xE6
|
||||||
|
_TONE EQU 231 ; 0xE7
|
||||||
|
EXT_OP_LAST EQU 231
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; OPERATORS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
GREATK EQU 0xef
|
||||||
|
EQULTK EQU 0xf0
|
||||||
|
LESSTK EQU 0xf1
|
||||||
|
|
||||||
|
PLUSTK EQU 0xf2 ; 242
|
||||||
|
MINUTK EQU 0xf3 ; 243
|
||||||
|
MULTK EQU 0xf4 ; 244
|
||||||
|
DIVTK EQU 0xf5
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; 8K OPERATORS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
EXPTK EQU 246 ; 0xF6
|
||||||
|
_AND EQU 247 ; 0xF7
|
||||||
|
_OR EQU 248 ; 0xF8
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; EXTENDED OPERATORS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_XOR EQU 249 ; 0xF9
|
||||||
|
_EQV EQU 250 ; 0xFA
|
||||||
|
_IMP EQU 251 ; 0xFB
|
||||||
|
_MOD EQU 252 ; 0xFC
|
||||||
|
_DUMMY EQU 253 ; 0xFD
|
||||||
|
IDIVTK EQU 253 ; 0xFD
|
||||||
|
|
||||||
|
LSTOPK EQU 253 + 1 - PLUSTK
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; FUNCTIONS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
;Q EQU 128 ; 0x80
|
||||||
|
_LEFT_ EQU 129 ; 0x81
|
||||||
|
ONEFUN EQU 129 ; 0x81
|
||||||
|
_RIGHT EQU 130 ; 0x82
|
||||||
|
|
||||||
|
_MID_ EQU 131 ; 0x83
|
||||||
|
MIDTK EQU 131 ; 0x83
|
||||||
|
|
||||||
|
_SGN EQU 132 ; 0x84
|
||||||
|
_INT EQU 133 ; 0x85
|
||||||
|
_ABS EQU 134 ; 0x86
|
||||||
|
|
||||||
|
_SQR EQU 135 ; 0x87
|
||||||
|
SQRTK EQU 135 ; 0x87
|
||||||
|
|
||||||
|
_RND EQU 136 ; 0x88
|
||||||
|
_SIN EQU 137 ; 0x89
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; 8K FUNCTIONS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_LOG EQU 138 ; 0x8A
|
||||||
|
_EXP EQU 139 ; 0x8B
|
||||||
|
_COS EQU 140 ; 0x8C
|
||||||
|
_TAN EQU 141 ; 0x8D
|
||||||
|
_ATN EQU 142 ; 0x8E
|
||||||
|
_FRE EQU 143 ; 0x8F
|
||||||
|
_INP EQU 144 ; 0x90
|
||||||
|
_POS EQU 145 ; 0x91
|
||||||
|
_LEN EQU 146 ; 0x92
|
||||||
|
_STR_ EQU 147 ; 0x93
|
||||||
|
_VAL EQU 148 ; 0x94
|
||||||
|
_ASC EQU 149 ; 0x95
|
||||||
|
_CHR_ EQU 150 ; 0x96
|
||||||
|
_PEEK EQU 151 ; 0x97
|
||||||
|
_SPACE EQU 152 ; 0x98
|
||||||
|
_OCT_ EQU 153 ; 0x99
|
||||||
|
_HEX_ EQU 154 ; 0x9A
|
||||||
|
_LPOS EQU 155 ; 0x9B
|
||||||
|
;LASNUM EQU 155 ; 0x9B
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; EXTENDED FUNCTIONS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_CINT EQU 156 ; 0x9C
|
||||||
|
_CSNG EQU 157 ; 0x9D
|
||||||
|
_CDBL EQU 158 ; 0x9E
|
||||||
|
_FIX EQU 159 ; 0x9F
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; NCR VERSION FUNCTIONS
|
||||||
|
; DISK FUNCTIONS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
_CVI EQU 171 ; 0xAC
|
||||||
|
_CVS EQU 172 ; 0xAD
|
||||||
|
_CVD EQU 173 ; 0xAE
|
||||||
|
_EOF EQU 175 ; 0xB0
|
||||||
|
_LOC EQU 176 ; 0xB1
|
||||||
|
_LOF EQU 177 ; 0xB2
|
||||||
|
_MKI_ EQU 178 ; 0xB3
|
||||||
|
_MKS_ EQU 179 ; 0xB4
|
||||||
|
_MKD_ EQU 180 ; 0xB5
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; END DISK FUNCTIONS
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
NUMGFN EQU 2*MIDTK-2*ONEFUN+1 ; 5
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; CP/M Entry
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
WARM_BOOT EQU 0x0000
|
||||||
|
WARM_BOOT_ADDR EQU WARM_BOOT + 1
|
||||||
|
BDOS_ENTER EQU 0x0005
|
||||||
|
BDOS_ENTER_ADDR EQU BDOS_ENTER + 1
|
||||||
|
DMA_BUFFER EQU 0x80
|
||||||
|
P_CMD_LINE EQU DMA_BUFFER + 1
|
||||||
|
TPA EQU 0x100 ; 256
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; CP/M functions
|
||||||
|
; ---------------------------------------------------
|
||||||
|
C.VER EQU 0x0c ; Get version
|
||||||
|
C.REST EQU 0x0d ; Init BDOS
|
||||||
|
C.SDRV EQU 0x0e ; Set current drive
|
||||||
|
C.OPEN EQU 0x0f ; Open file
|
||||||
|
C.CLOS EQU 0x10 ; Close file
|
||||||
|
C.SEAR EQU 0x11 ; Search file
|
||||||
|
C.SEAR_N EQU 0x12 ; Search next
|
||||||
|
C.DEL EQU 0x13 ; Delete file
|
||||||
|
C.MAKE EQU 0x16 ; Create new file
|
||||||
|
C.RENA EQU 0x17 ; Rename file
|
||||||
|
C.GDRV EQU 0x19 ; Get current drive
|
||||||
|
C.BUFF EQU 0x1a ; Set DMA buffer address
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; OFFSETS INTO CP/M FCB (FILE CONTROL BLOCK)
|
||||||
|
; ---------------------------------------------------
|
||||||
|
FCB.FN EQU 1 ; FILE NAME
|
||||||
|
FCB.FT EQU 9 ; EXTENSION
|
||||||
|
FCB.EX EQU 32 ; 0x0C ? ; FILE EXTENT
|
||||||
|
FCB.RC EQU 38 ; 0x0F ? ; RECORD COUNT = CURRENT EXTENT SIZE
|
||||||
|
FCB.NR EQU 40 ; 0x20 ? ; NEXT RECORD NUMBER
|
||||||
|
FCB.RN EQU 33 ; CP/M 2.x Random Record Number
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; File access mode
|
||||||
|
; ---------------------------------------------------
|
||||||
|
MD.SQI EQU 1 ; seq inp
|
||||||
|
MD.SQO EQU 2 ; seq out
|
||||||
|
MD.RND EQU 3 ; random
|
||||||
|
|
||||||
|
N1 EQU 11 ; Number of bytes to use from ATNCON
|
||||||
|
N2 EQU 13 ; Number of bytes to use from SINCON
|
||||||
|
|
||||||
|
OCTCON EQU 11 ; EMBEDED OCTAL CONSTANT
|
||||||
|
HEXCON EQU 12 ; EMBEDED CONSTANT
|
||||||
|
PTRCON EQU 13 ; A LINE REFERENCE CONSTANT
|
||||||
|
LINCON EQU 14 ; A LINE NUMBER UNCONVERTED TO POINTER
|
||||||
|
IN2CON EQU 15 ; SINGLE BYTE (TWO BYTE WITH TOKEN) INTEGER
|
||||||
|
CONCN2 EQU 16 ; TOKEN RETURNED SECOND TYPE CONSTANT IS SCANNED.
|
||||||
|
ONECON EQU 17 ; FIRST OF 10 (0-9) INTEGER SPECIAL TOKENS
|
||||||
|
INTCON EQU 28 ; REGULAR 16 BIT TWO'S COMPLEMENT INT
|
||||||
|
SNGCON EQU 29 ; SINGLE PREC (4 BYTE) CONSTANT
|
||||||
|
CONCON EQU 30 ; TOKEN RETURNED BY CHRGET AFTER CONSTANT SCANNED
|
||||||
|
DBLCON EQU 31 ; DOUBLE PREC (8 BYTE) CONSTANT
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; ASCII codes
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
ASCII_BELL EQU 0x07 ; 7
|
||||||
|
ASCII_BKSP EQU 0x08 ; 8
|
||||||
|
ASCII_TAB EQU 0x09 ; 9
|
||||||
|
ASCII_LF EQU 0x0a ; 10
|
||||||
|
ASCII_CR EQU 0x0d ; 13
|
||||||
|
ASCII_DEL EQU 0x7f ; 127
|
||||||
|
ASCII_ESC EQU 0x1b ;
|
||||||
|
ASCII_SP EQU 0x20 ; space
|
||||||
|
ASCII_CUR EQU 0x24 ; $
|
||||||
|
ASCII_SQ EQU 0x27 ; '
|
||||||
|
ASCII_BKSL EQU 0x5C ; \
|
||||||
|
|
||||||
|
; ---------------------------------------------------
|
||||||
|
; Key codes
|
||||||
|
; ---------------------------------------------------
|
||||||
|
|
||||||
|
CTRL_C EQU 0x03 ; 3
|
||||||
|
CTRL_O EQU 0x0f ; 15
|
||||||
|
CTRL_R EQU 0x12 ; 18
|
||||||
|
CTRL_U EQU 0x15 ; 21
|
||||||
|
CTRL_X EQU 0x18 ; 24
|
||||||
|
|
||||||
|
|
||||||
|
CLMWID EQU 0x0e ; 14
|
||||||
|
CON1 EQU 0x2c20 ; ' ',
|
||||||
|
CONS1 EQU 0xc6 ; 198
|
||||||
|
|
||||||
|
|
||||||
|
DATPSC EQU 0x80 ; 128
|
||||||
|
|
||||||
|
; Offsets into file blocks for specific entries
|
||||||
|
LOCOFS EQU 0x25 ; OFFSET TO CURLOC BYTES
|
||||||
|
ORNOFS EQU 0x27 ; OFFSET TO NUMBER OF BYTES
|
||||||
|
|
||||||
|
NMLOFS EQU 0x28 ; OFFSET TO BYTES REMAINING IN THE BUFFER
|
||||||
|
NMLO.C EQU NMLOFS ; OR THE PRINT POSITION ON OUTPUT
|
||||||
|
|
||||||
|
DATOFS EQU 0x29 ; OFFSET TO BUFFER
|
||||||
|
DATOFC EQU DATOFS
|
||||||
|
|
||||||
|
DBLKSZ EQU DATOFS + DATPSC
|
||||||
|
DBLK.C EQU DBLKSZ ; SIZE OF A FILE INFO BLOCK PLUS $CODE
|
||||||
|
|
||||||
|
DSKERR EQU 0x31 ; 49
|
||||||
|
EOFCHR EQU 0x1a ; 26
|
||||||
|
|
||||||
|
ERRSN EQU 0x02 ; 2
|
||||||
|
ERRRG EQU 0x03 ; 3
|
||||||
|
ERROD EQU 0x04 ; 4
|
||||||
|
ERRFC EQU 0x05 ; 5
|
||||||
|
ERROM EQU 0x07
|
||||||
|
ERROV EQU 0x06 ; 6
|
||||||
|
ERRUS EQU 0x08 ; 8
|
||||||
|
ERRBS EQU 0x09 ; 9
|
||||||
|
ERRDD EQU 0x0a ; 10
|
||||||
|
ERRDV0 EQU 0x0b ; 11
|
||||||
|
ERRID EQU 0x0c ; 12
|
||||||
|
ERRTM EQU 0x0d ; 13
|
||||||
|
ERRLS EQU 0x0f ; 15
|
||||||
|
ERRCN EQU 0x11 ; 17
|
||||||
|
ERRRE EQU 0x14 ; 20
|
||||||
|
ERRNR EQU 0x13 ; 19
|
||||||
|
ERRLBO EQU 0x17 ; 23
|
||||||
|
ERRFN EQU 0x1a ; 26
|
||||||
|
ERRWH EQU 0x1d ; 29
|
||||||
|
ERRWE EQU 0x1e ; 30
|
||||||
|
ERRFOV EQU 0x32 ; 50
|
||||||
|
ERRIER EQU 0x33 ; 51
|
||||||
|
ERRBFN EQU 0x34 ; 52
|
||||||
|
ERRFNF EQU 0x35 ; 53
|
||||||
|
ERRBFM EQU 0x36 ; 54
|
||||||
|
ERRFAO EQU 0x37 ; 55
|
||||||
|
ERRIOE EQU 0x39 ; 57
|
||||||
|
ERRFAE EQU 0x3a ; 58
|
||||||
|
ERRDFL EQU 0x3d ; 61
|
||||||
|
ERRRPE EQU 0x3e ; 62
|
||||||
|
ERRFDR EQU 0x42 ; 66
|
||||||
|
ERRTMF EQU 0x43 ; 67
|
||||||
|
|
||||||
|
FD.SIZ EQU 0xa9 ; 169
|
||||||
|
FD.PHY EQU 0xab ; 171
|
||||||
|
FD.LOG EQU 0xad ; 173
|
||||||
|
FD.OPS EQU 0xb0 ; 176
|
||||||
|
FD.DAT EQU 0xb2 ; 178
|
||||||
|
|
||||||
|
FNZBLK EQU 0xB2 ; Size of other stuff
|
||||||
|
|
||||||
|
INCSTR EQU 1
|
||||||
|
|
||||||
|
FORSZC EQU 0x10 ; 16
|
||||||
|
KBFLEN EQU 0x13E ; 318
|
||||||
|
LINLN EQU 0x50 ; 80
|
||||||
|
LSTERR EQU 0x44 ; 68
|
||||||
|
MAXPRM EQU 0x20 ; 32
|
||||||
|
|
||||||
|
NMREL EQU 0x03 ; 3
|
||||||
|
NONDSK EQU 0x1e ; 30
|
||||||
|
PRMSIZ EQU 0x64 ; 100
|
||||||
|
SQO EQU 0x02 ; 2
|
||||||
|
SWTCHR EQU 0x2f ; 47
|
||||||
|
WHLSIZ EQU 0x06 ; 6
|
||||||
|
|
||||||
|
CPM_RES1 EQU 0x3B
|
||||||
Loading…
Reference in New Issue
Block a user