collapseos/recipes/trs80/glue.asm

84 lines
1.5 KiB
NASM
Raw Normal View History

; RAMSTART is a label at the end of the file
.equ RAMEND 0xcfff
; Free memory in TRSDOS starts at 0x3000
.org 0x3000
jp init
.inc "err.h"
.inc "blkdev.h"
.inc "ascii.h"
.inc "core.asm"
.inc "str.asm"
.inc "trs80/kbd.asm"
.inc "trs80/vid.asm"
.equ FLOPPY_RAMSTART RAMSTART
.inc "trs80/floppy.asm"
.equ BLOCKDEV_RAMSTART FLOPPY_RAMEND
.equ BLOCKDEV_COUNT 1
.inc "blockdev.asm"
; List of devices
.dw floppyGetB, floppyPutB
.equ STDIO_RAMSTART BLOCKDEV_RAMEND
.equ STDIO_GETC trs80GetC
.equ STDIO_PUTC trs80PutC
.inc "stdio.asm"
; The TRS-80 generates a double line feed if we give it both CR and LF.
.equ printcrlf printcr
; *** BASIC ***
; RAM space used in different routines for short term processing.
.equ SCRATCHPAD_SIZE STDIO_BUFSIZE
.equ SCRATCHPAD STDIO_RAMEND
.inc "lib/util.asm"
.inc "lib/ari.asm"
.inc "lib/parse.asm"
.inc "lib/fmt.asm"
.equ EXPR_PARSE parseLiteralOrVar
.inc "lib/expr.asm"
.inc "basic/util.asm"
.inc "basic/parse.asm"
.inc "basic/tok.asm"
.equ VAR_RAMSTART SCRATCHPAD+SCRATCHPAD_SIZE
.inc "basic/var.asm"
.equ BUF_RAMSTART VAR_RAMEND
.inc "basic/buf.asm"
.inc "basic/blk.asm"
2020-02-23 04:09:43 +11:00
.inc "basic/floppy.asm"
.equ BAS_RAMSTART BUF_RAMEND
.inc "basic/main.asm"
init:
ld sp, RAMEND
call floppyInit
call basInit
ld hl, basFindCmdExtra
ld (BAS_FINDHOOK), hl
xor a
ld de, BLOCKDEV_SEL
call blkSel
jp basStart
printcr:
push af
ld a, CR
call STDIO_PUTC
pop af
ret
basFindCmdExtra:
2020-02-23 04:09:43 +11:00
ld hl, basFloppyCmds
call basFindCmd
ret z
ld hl, basBLKCmds
jp basFindCmd
RAMSTART: