Преглед на файлове

recipes/rc2014/zasm: zasm can now assemble *and* write to file

pull/10/head
Virgil Dupras преди 5 години
родител
ревизия
9bb2194fb0
променени са 5 файла, в които са добавени 33 реда и са изтрити 51 реда
  1. +1
    -0
      recipes/rc2014/zasm/.gitignore
  2. +5
    -6
      recipes/rc2014/zasm/README.md
  3. +0
    -30
      recipes/rc2014/zasm/cfsin/user.h
  4. +20
    -8
      recipes/rc2014/zasm/glue.asm
  5. +7
    -7
      recipes/rc2014/zasm/user.h

+ 1
- 0
recipes/rc2014/zasm/.gitignore Целия файл

@@ -1 +1,2 @@
/cfsin/zasm
/cfsin/user.h

+ 5
- 6
recipes/rc2014/zasm/README.md Целия файл

@@ -51,12 +51,11 @@ Compiling and running `hello.asm` is done very much like in
> sdci
> fson
> fopn 0 hello.asm
> zasm 2 1
> mptr 8600
> bsel 1
> seek 00 0000
> load ff
> call 00 0000
> fnew 1 dest
> fopn 1 dest
> zasm 1 2
> dest
Assembled from a RC2014
>

That RC2014 is starting to feel powerful now, right?

+ 0
- 30
recipes/rc2014/zasm/cfsin/user.h Целия файл

@@ -1,30 +0,0 @@
.equ USER_CODE 0x8600
.equ USER_RAMSTART USER_CODE+0x1800
.equ FS_HANDLE_SIZE 6
.equ BLOCKDEV_SIZE 8

; *** JUMP TABLE ***
.equ strncmp 0x03
.equ addDE 0x06
.equ addHL 0x09
.equ upcase 0x0c
.equ unsetZ 0x0f
.equ intoDE 0x12
.equ intoHL 0x15
.equ writeHLinDE 0x18
.equ findchar 0x1b
.equ parseHex 0x1e
.equ parseHexPair 0x21
.equ blkSel 0x24
.equ blkSet 0x27
.equ fsFindFN 0x2a
.equ fsOpen 0x2d
.equ fsGetC 0x30
.equ cpHLDE 0x33

.equ parseArgs 0x3e
.equ printstr 0x41
.equ _blkGetC 0x44
.equ _blkPutC 0x47
.equ _blkSeek 0x4a
.equ _blkTell 0x4d

+ 20
- 8
recipes/rc2014/zasm/glue.asm Целия файл

@@ -1,9 +1,10 @@
; classic RC2014 setup (8K ROM + 32K RAM) and a stock Serial I/O module
; The RAM module is selected on A15, so it has the range 0x8000-0xffff
.equ RAMSTART 0x8000
; kernel RAM usage is under 0x300 bytes. We give ourselves at least 0x300 bytes
; kernel RAM usage, because of SDC, is a bit high and bring us almost to 0x9c00
; We allocate at least 0x100 bytes for RAM, which is why we have this threshold.
; for the stack.
.equ RAMEND 0x8600
.equ RAMEND 0x9d00
.equ PGM_CODEADDR RAMEND
.equ ACIA_CTL 0x80 ; Control and status. RS off.
.equ ACIA_IO 0x81 ; Transmit. RS on.
@@ -47,12 +48,13 @@ jp aciaInt
.equ ACIA_RAMSTART RAMSTART
#include "acia.asm"
.equ BLOCKDEV_RAMSTART ACIA_RAMEND
.equ BLOCKDEV_COUNT 3
.equ BLOCKDEV_COUNT 4
#include "blockdev.asm"
; List of devices
.dw sdcGetC, sdcPutC
.dw mmapGetC, mmapPutC
.dw blk1GetC, blk1PutC
.dw blk2GetC, blk2PutC
.dw mmapGetC, mmapPutC


.equ MMAP_START 0xe000
@@ -62,7 +64,7 @@ jp aciaInt
#include "stdio.asm"

.equ FS_RAMSTART STDIO_RAMEND
.equ FS_HANDLE_COUNT 1
.equ FS_HANDLE_COUNT 2
#include "fs.asm"

.equ SHELL_RAMSTART FS_RAMEND
@@ -107,12 +109,22 @@ init:
ei
jp shellLoop

; *** blkdev 2: file handle 0 ***
; *** blkdev 1: file handle 0 ***

blk2GetC:
blk1GetC:
ld ix, FS_HANDLES
jp fsGetC

blk2PutC:
blk1PutC:
ld ix, FS_HANDLES
jp fsPutC

; *** blkdev 2: file handle 1 ***

blk2GetC:
ld ix, FS_HANDLES+FS_HANDLE_SIZE
jp fsGetC

blk2PutC:
ld ix, FS_HANDLES+FS_HANDLE_SIZE
jp fsPutC

+ 7
- 7
recipes/rc2014/zasm/user.h Целия файл

@@ -1,4 +1,4 @@
.equ USER_CODE 0x8600
.equ USER_CODE 0x9d00
.equ USER_RAMSTART USER_CODE+0x1800
.equ FS_HANDLE_SIZE 6
.equ BLOCKDEV_SIZE 8
@@ -22,9 +22,9 @@
.equ fsGetC 0x30
.equ cpHLDE 0x33

.equ parseArgs 0x3e
.equ printstr 0x41
.equ _blkGetC 0x44
.equ _blkPutC 0x47
.equ _blkSeek 0x4a
.equ _blkTell 0x4d
.equ parseArgs 0x3b
.equ printstr 0x3e
.equ _blkGetC 0x41
.equ _blkPutC 0x44
.equ _blkSeek 0x47
.equ _blkTell 0x4a

Loading…
Отказ
Запис