aboutsummaryrefslogtreecommitdiff
path: root/src/example
diff options
context:
space:
mode:
Diffstat (limited to 'src/example')
-rw-r--r--src/example/Makefile5
-rw-r--r--src/example/emucpm.z8040
2 files changed, 44 insertions, 1 deletions
diff --git a/src/example/Makefile b/src/example/Makefile
index a76a21f..700e9e5 100644
--- a/src/example/Makefile
+++ b/src/example/Makefile
@@ -21,7 +21,7 @@
#
ALL = spectrum.tap t64.t64 zx81.p gb.gb vcs.bin snes.sfc nes.nes cpc.cdt \
- prg.prg
+ prg.prg hex.hex
CASM = ../casm
all: $(ALL) $(CASM)
@@ -58,6 +58,9 @@ nes.nes: nes.asm tiles.chr nes.pal $(CASM)
prg.prg: prg.asm $(CASM)
$(CASM) prg.asm
+hex.hex: emucpm.z80 $(CASM)
+ $(CASM) emucpm.z80
+
clean:
rm -f $(ALL)
diff --git a/src/example/emucpm.z80 b/src/example/emucpm.z80
new file mode 100644
index 0000000..0920a86
--- /dev/null
+++ b/src/example/emucpm.z80
@@ -0,0 +1,40 @@
+;
+; Quick hack to emulate some CPM bdos calls (well, enough to make it work)
+;
+ option output-file, hex.hex
+ option output-format, hex
+
+ org 0
+ halt
+
+ org 5
+ jp cpm
+
+ org $f000
+cpm:
+ push af
+ push bc
+ push de
+ push hl
+ ld a,9
+ cp c
+ call z,print_string
+ ld a,2
+ cp c
+ call z,print_char
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ret
+
+print_string:
+ ld bc,$0082
+ out (c),a
+ ret
+
+print_char:
+ ld a,e
+ ld bc,$0080
+ out (c),a
+ ret