From c63826bbfac31f73a2fbed335c46d7ae59069ae0 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Wed, 21 Mar 2018 12:39:23 -0700 Subject: [PATCH] Z1 support --- src/onbeyond/onbeyond.system.s | 10 +- src/onbeyond/z1/0800-21ff.org | Bin 0 -> 6656 bytes src/onbeyond/z1/0800-21ff.pak | Bin 0 -> 4206 bytes src/onbeyond/z1/z1.s | 582 +++++++++++++++++++++++++++++++++ winmake.bat | 2 + 5 files changed, 590 insertions(+), 4 deletions(-) create mode 100644 src/onbeyond/z1/0800-21ff.org create mode 100644 src/onbeyond/z1/0800-21ff.pak create mode 100644 src/onbeyond/z1/z1.s diff --git a/src/onbeyond/onbeyond.system.s b/src/onbeyond/onbeyond.system.s index 5272c6a..c0766c3 100644 --- a/src/onbeyond/onbeyond.system.s +++ b/src/onbeyond/onbeyond.system.s @@ -62,19 +62,21 @@ quit jsr $bf00 bne quit ;select interpreter by auxtype - ;3, 4, 5, "$55" (special case) + ;1, 3, 4, 5, "$55" (special case) lda c4_parms+5 + cmp #1 + beq + cmp #3 bcc quit cmp #$55 - beq + + beq ++ cmp #6 bcs quit - dec filename ++ dec filename ora #$30 sta version -+ +++ ;get volume name diff --git a/src/onbeyond/z1/0800-21ff.org b/src/onbeyond/z1/0800-21ff.org new file mode 100644 index 0000000000000000000000000000000000000000..a825d1f7328e40ea8ada29a3963e468c0c00aa33 GIT binary patch literal 6656 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 literal 0 HcmV?d00001 diff --git a/src/onbeyond/z1/0800-21ff.pak b/src/onbeyond/z1/0800-21ff.pak new file mode 100644 index 0000000000000000000000000000000000000000..00269b9f9a5419a826ae976cbc315b0540dc1d57 GIT binary patch literal 4206 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 + sta src + 1 + lda #print + sta $1c40 + lda #printer + sta $1d95 + + lda $304 + beq + + lda #callbackprn1 + sta $1d7d ++ + ldx $302 + inx + beq + + lda $1d7c + sta loadcall1+1 + lda $1d7d + sta loadcall2+1 + lda #callback1 + sta $1d7d ++ + + lda #savefile + sta $206a + lda #loadfile + sta $2103 + lda #closefile + sta $20eb + sta $20f1 + sta $2197 + sta $219d + lda #quit + sta $1bc1 + + jsr closefile + lda #$60 + sta $7c ;! + jmp $800 + +brandtext + !scrxor $80, "ON BEYOND Z-MACHINE! REVISION " + +version + !byte 0 + +c7_parms + !byte 1 + !word $200 + +c5_parms + !byte 2 + !byte 0 + !word $201 + +unrelochdd +!pseudopc $2800 { + clc + adc #$c9 + sta pro_op + lda #0 + sta ce_parms+2 + lda $e2 + sta ce_parms+3 + lda $e3 + sta ce_parms+4 + lda $e5 + sta ca_parms+3 + +- jsr $bf00 + !byte $ce ;seek + !word ce_parms + bcc + + jsr $bf00 + !byte $d0 ;set EOF + !word ce_parms + bcc - + ++ + jsr $bf00 +pro_op + !byte $ca ;read file + !word ca_parms + bcs quit + rts + +printer + ldx $ed + lda #$8d + sta $200,x + inx + stx cb_parms+4 + lda #printer + sta $1c40 + + lda #