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:
@@ -1,8 +1,2 @@
|
||||
|
||||
noinline asm byte readkey() {
|
||||
clr $6f
|
||||
jsr [$A000]
|
||||
beq readkey
|
||||
tfr a,b
|
||||
rts
|
||||
}
|
||||
asm byte readkey() @ $49 extern
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
#pragma zilog_syntax
|
||||
|
||||
asm byte readkey() @$49 extern
|
||||
Reference in New Issue
Block a user