Mercurial > hg > Members > kono > nitros9-code
diff 3rdparty/roms/dos/SuperDos/romdefs.asm @ 1985:4037b23c848d
SuperDos rom, assembalable for Dragon Dos, Dragon Alpha or RS-DOS
author | afra |
---|---|
date | Fri, 20 Jan 2006 01:54:33 +0000 |
parents | |
children | b2f58a220c08 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/3rdparty/roms/dos/SuperDos/romdefs.asm Fri Jan 20 01:54:33 2006 +0000 @@ -0,0 +1,131 @@ +* +* Deinitions for ROM entry points and low memory variables on Dragon +* 32/64/Alpha. +* +* 2005-11-10. P.Harvey-Smith. +* + +; +; Low memory vars in page 0 and 1 +; + +BasTextPtr EQU $19 ; Basic text pointer +BasVarsPtr EQU $1B ; Pointer to start of vars +BasArrayPtr EQU $1D ; Pointer to start of arrays +BasEndInUse EQU $1F ; End of storage in use + +BasFACExponent EQU $4F ; Floating point accumulator exponent +BasFACMantissa EQU $50 ; FAC mantissa (4 bytes) +BasStrAddr EQU $52 ; Address of string argument +BasFACManSgn EQU $54 ; Sign of mantissa +BasFACManSTemp EQU $55 ; Tempory sign of mantissa + +BasCurrentLine EQU $68 ; Current line number +BasDeviceNo EQU $6F ; Current device number +ResetVecAddr EQU $72 ; Reset vector address, points to a NOP +Zero16Bit EQU $8A ; 16 bit zero +BasChrGet EQU $9F ; Get next character from basic program +BasChrGetCurr EQU $A5 ; Get current character from basic program +BasUsrBasePtr EQU $B0 ; Pointer to base of usr vectors +GrfTopPtr EQU $B7 ; Pointer to top of graphics screen +GrfBasePtr EQU $BA ; Graphics area base pointer + +BasJoyRX EQU $15A ; Basic, Right Joystick X +BasJoyRY EQU $15B ; Basic, Right Joystick Y +BasJoyLX EQU $15C ; Basic, Left Joystick X +BasJoyLY EQU $15D ; Basic, Left Joystick Y +RamHooks EQU $15E ; Begining of ram hooks (see below) + +; +; Ram hooks +; +; +; Some hooks share the same address, the only way to determine which is +; in use is to check the return address -- Source : "Inside the Dragon". +; + +HookOpenDev EQU $15E ; Open device or file +HookCheckIONum EQU $161 ; Check I/O device number +HookRetDevParam EQU $164 ; Return device parameters +HookCharOut EQU $167 ; Character output +HookCharIn EQU $16A ; Character input +HookCheckInput EQU $16D ; Deech dev open for input +HookCheckOutput EQU $170 ; Deech dev open for output +HookCloseAll EQU $173 ; Close all devices & files +HookCloseSingle EQU $176 ; Close a single device or file +HookNewStat EQU $179 ; About to dela with first char of new satement +HookDiskItem EQU $17C ; Disk file item scanner +HookPollBreak EQU $17F ; Poll for break key +HookReadInput EQU $182 ; Read a line of input +HookFinishASCII EQU $185 ; Finish loading ascii program +HookEOF EQU $188 ; End of file function +HookEval EQU $18B ; Evaluate expression +HookUsrError EQU $18E ; User error trap +HookSysError EQU $191 ; System error trap +HookRun EQU $194 ; Run statement +HookStrCopy EQU $197 ; String copy check +HookClear EQU $197 ; Clear statement +HookFetchNext EQU $19A ; Fetch next statement +HookLet EQU $19D ; LET statement +HookCLS EQU $1A0 ; CLS statement +HookRENUM EQU $1A0 ; RENUM statment +HookPUTGET EQU $1A0 ; PUT or GET statement +HookFunction EQU $1A0 ; Function assignment +HookCompress EQU $1A3 ; Compress basic line +HookExpand EQU $1A6 ; Expand basic line for listing. + + +; +; Basic rom related stuff. +; + +BasicHWInit EQU $8000 ; Hardware initialisation +BasicSWInit EQU $8003 ; Software initialisation +BasicKbdIn EQU $8006 ; Keyboard input +BasicCursorB EQU $8009 ; Cursor blink +BasicScreenOut EQU $800C ; Screen output +BasicPrintOut EQU $800F ; Printer output +BasicJoyIn EQU $8012 ; Joystick input +BasicCassOn EQU $8015 ; Cassette player motor on +BasicCassOff EQU $8018 ; Cassette player motor off +BasicWriteLead EQU $801B ; Cassette write leader +BasicCassByOut EQU $801E ; Cassette byte output +BasicCassOnRd EQU $8021 ; Cassette on for reading +BasicCassByIn EQU $8024 ; Cassette byte input +BasicCassBitIn EQU $8027 ; Cassette bit input +BasicSerIn EQU $802A ; Read a byte from serial +BasicSerOut EQU $802D ; Write a byte to serial port +BasicSetBaud EQU $8030 ; Set baud rate + +BasOMError EQU $8342 ; ?OM error +CmdMode EQU $8371 ; Go to basic command mode +BasResetStack EQU $8434 ; Reset basic stack + +VarGetExpr EQU $8877 ; Get (and evaluate?) espression, addrss of expresion in $52 +VarGetStr EQU $8887 ; Get string variable from basic, and store it +VarCKComma EQU $89AA ; Check for comma +BasSNError EQU $89B4 ; ?SN ERROR basic routine +BasFCError EQU $8B8D ; ?FC Error basic routine +VarDelVar EQU $8D9F ; Delate a (tempory) var +VarGet8Bit EQU $8E51 ; Get 8bit value +VarGet16Bit EQU $8E83 ; Get 16 bit var from basic + +TextOutCRLF EQU $90A1 ; Output CRLF +BasPrintStr EQU $90E5 ; Basic, print string. +TextOutQuestion EQU $90F8 ; output a ? + +BasicEntry EQU $B39B ; Basic entry point +BasicEntry2 EQU $B3CE +BasicResetVec EQU $B3B4 ; Basic rom reset vetcor + +BasSignonMess EQU $B4B2 ; Address of basic signon message + +TextWaitKey EQU $B505 ; Display cursor and await keypress + +UtilCopyBXtoU EQU $B7CC ; copy B bytes from X to U + +TextCls EQU $BA77 ; Clear screen +SndDisable EQU $BAC3 ; Disable (cassette) sound +SndDTOAOn EQU $BAED ; Turn on D to A sound +CasMotorOff EQU $BDDC ; Turn off casette motor +CasByteOut EQU $BE12 ; Byte output to cassette \ No newline at end of file