1
0
mirror of https://github.com/KarolS/millfork.git synced 2026-04-26 10:20:51 +00:00

Add TRS-80 Model 1 and 3 support

This commit is contained in:
Karol Stasiak
2020-09-26 23:52:49 +02:00
parent 3702002541
commit 3a9be16107
16 changed files with 168 additions and 13 deletions
+1 -7
View File
@@ -1,8 +1,2 @@
noinline asm byte readkey() {
clr $6f
jsr [$A000]
beq readkey
tfr a,b
rts
}
asm byte readkey() @ $49 extern
+13
View File
@@ -0,0 +1,13 @@
NAME=TRS-80-Model-1
EOT=00
20=U+0020
21-3f=!"#$%&'()*+,-./0123456789:;<=>?
40-5f=@ABCDEFGHIJKLMNOPQRSTUVWXYZ↑↓←→_
61-7a=abcdefghijklmnopqrstuvwxyz
{b}=08
{t}=09
{n}=0d0a
{q}=22
{apos}=27
+15
View File
@@ -0,0 +1,15 @@
NAME=TRS-80-Model-3
EOT=00
20=U+0020
21-3f=!"#$%&'()*+,-./0123456789:;<=>?
40-5f=@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
60-7f=`abcdefghijklmnopqrstuvwxyz{|}~±
{b}=08
{t}=09
{n}=0d0a
{q}=22
{apos}=27
{lbrace}=7b
{rbrace}=7d
+5
View File
@@ -149,6 +149,11 @@ import coco/keyboard
#define OK = 1
#endif
#if TRS80
import trs80/keyboard
#define OK = 1
#endif
#if not(OK)
#if KEYBOARD
#warn keyboard module is not yet supported
+32
View File
@@ -0,0 +1,32 @@
; TRS-80 Model 1 with 48K of RAM running TRS-DOS
[compilation]
arch=z80
; TODO:
encoding=trs80m1
screen_encoding=trs80m1
modules=stdlib,trs80/kernal,default_panic
[allocation]
segments=default
default_code_segment=default
; TODO: this is what Z88DK uses:
segment_default_start=$5200
; assume 48K:
segment_default_end=$ffff
[define]
TRS80=1
WIDESCREEN=0
KEYBOARD=1
; TODO:
JOYSTICKS=1
HAS_BITMAP_MODE=0
[output]
style=single
format=trscmd
extension=cmd
+32
View File
@@ -0,0 +1,32 @@
; TRS-80 Model 3 with 48K of RAM running TRS-DOS
[compilation]
arch=z80
; TODO:
encoding=trs80m3
screen_encoding=trs80m3
modules=stdlib,trs80/kernal,default_panic
[allocation]
segments=default
default_code_segment=default
; TODO: this is what Z88DK uses:
segment_default_start=$5200
; assume 48K:
segment_default_end=$ffff
[define]
TRS80=1
WIDESCREEN=0
KEYBOARD=1
; TODO:
JOYSTICKS=1
HAS_BITMAP_MODE=0
[output]
style=single
format=trscmd
extension=cmd
+26
View File
@@ -0,0 +1,26 @@
#pragma zilog_syntax
import default_readword
asm void putchar(byte register(a) char) @$33 extern
inline asm void new_line() {
? LD A,13
? JP putchar
}
array __readline_out[45]
const pointer readline_out = __readline_out.addr
asm pointer readline() {
LD HL,readline_out
LD B,__readline_out.length-1
CALL $40
; b contains the input length:
LD C,B
LD B,0
ADD HL,BC
LD (HL),0
LD HL, readline_out
RET
}
+4
View File
@@ -0,0 +1,4 @@
#pragma zilog_syntax
asm byte readkey() @$49 extern