mirror of
https://github.com/bobbimanners/emailler.git
synced 2025-02-20 10:29:01 +00:00
Add custom font for the Atari version, fix Atari keyboard input handling.
This commit is contained in:
parent
a4552b0e34
commit
0a546a7eef
@ -80,7 +80,7 @@ drivers:
|
||||
ld65 -o $*.bin -C apple2.cfg -m $*.a2.map -vm $< $(IP65LIB) $(A2DRIVERLIB) apple2.lib
|
||||
|
||||
%.com: %.o ip65 drivers $(INCFILES)
|
||||
ld65 -o $*.com -C atari.cfg -m $*.atr.map -vm $< $(IP65LIB) $(ATRDRIVERLIB) atari.lib
|
||||
ld65 -o $*.com -C atrtelnet.cfg -m $*.atr.map -vm $< $(IP65LIB) $(ATRDRIVERLIB) atari.lib
|
||||
|
||||
%.vicprg: %.o ip65 drivers $(INCFILES)
|
||||
ld65 -o $*.vicprg -C vic20-32k.cfg -m $*.vic.map -vm $< $(IP65LIB) $(VICDRIVERLIB) vic20.lib
|
||||
|
52
apps/atrtelnet.cfg
Normal file
52
apps/atrtelnet.cfg
Normal file
@ -0,0 +1,52 @@
|
||||
FEATURES {
|
||||
STARTADDRESS: default = $2400; # must start on an 1K boundary since the replacement font gets loaded there
|
||||
}
|
||||
SYMBOLS {
|
||||
__EXEHDR__: type = import;
|
||||
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
|
||||
__AUTOSTART__: type = import; # force inclusion of autostart "trailer"
|
||||
__STACKSIZE__: type = export, value = $0000; # no (C language) stack here, but symbol is referenced by the 'system_check.s' library file
|
||||
__STARTADDRESS__: type = export, value = %S;
|
||||
__RESERVED_MEMORY__: type = export, value = $0000; # also referenced by 'system_check.s'
|
||||
}
|
||||
MEMORY {
|
||||
ZP: file = "", define = yes, start = $0082, size = $007E;
|
||||
|
||||
# file header, just $FFFF
|
||||
HEADER: file = %O, start = $0000, size = $0002;
|
||||
|
||||
# "system check" load chunk
|
||||
SYSCHKHDR: file = %O, start = $0000, size = $0004;
|
||||
SYSCHKCHNK: file = %O, start = $2E00, size = $0300;
|
||||
SYSCHKTRL: file = %O, start = $0000, size = $0006;
|
||||
|
||||
# "main program" load chunk
|
||||
MAINHDR: file = %O, start = $0000, size = $0004;
|
||||
MAIN: file = %O, define = yes, start = %S + $0400, size = $9C20 - __STACKSIZE__ - __RESERVED_MEMORY__ - %S - $0400;
|
||||
|
||||
# "font" load chunk, loads below MAIN
|
||||
FONTHDR: file = %O, start = $0000, size = $0004;
|
||||
FONT: file = %O, start = %S, size = $0400;
|
||||
|
||||
TRAILER: file = %O, start = $0000, size = $0006;
|
||||
}
|
||||
SEGMENTS {
|
||||
ZEROPAGE: load = ZP, type = zp;
|
||||
EXTZP: load = ZP, type = zp, optional = yes;
|
||||
EXEHDR: load = HEADER, type = ro;
|
||||
SYSCHKHDR: load = SYSCHKHDR, type = ro, optional = yes;
|
||||
SYSCHK: load = SYSCHKCHNK, type = rw, define = yes, optional = yes;
|
||||
SYSCHKTRL: load = SYSCHKTRL, type = ro, optional = yes;
|
||||
MAINHDR: load = MAINHDR, type = ro;
|
||||
STARTUP: load = MAIN, type = ro, define = yes;
|
||||
LOWCODE: load = MAIN, type = ro, define = yes, optional = yes;
|
||||
ONCE: load = MAIN, type = ro, optional = yes;
|
||||
CODE: load = MAIN, type = ro, define = yes;
|
||||
RODATA: load = MAIN, type = ro;
|
||||
DATA: load = MAIN, type = rw;
|
||||
INIT: load = MAIN, type = rw, optional = yes;
|
||||
BSS: load = MAIN, type = bss, define = yes;
|
||||
FONTHDR: load = FONTHDR, type = ro;
|
||||
FONT: load = FONT, type = ro;
|
||||
AUTOSTRT: load = TRAILER, type = ro;
|
||||
}
|
@ -51,6 +51,7 @@ ATROBJS=\
|
||||
atrinput.o \
|
||||
atrfilteredinput.o \
|
||||
atrvt100.o \
|
||||
atrvt100font.o \
|
||||
atrcharconv.o
|
||||
|
||||
VIC20OBJS=\
|
||||
|
@ -60,8 +60,8 @@ special_key_table2:
|
||||
.byte $7b ; Shift-Ctrl-9 ==> {
|
||||
.byte $fd ; Ctrl-0 ==> }
|
||||
.byte $fd ; Shift-Ctrl-0 ==> }
|
||||
.byte $9e ; Shift-Ctrl-T ==> ~
|
||||
.byte $9e ; Shift-Ctrl-2 ==> ~
|
||||
.byte $9a ; Shift-Ctrl-T ==> ~
|
||||
.byte $9a ; Shift-Ctrl-2 ==> ~
|
||||
; translations $9c..$9f -> $1c..$1f, $9e -> $7e, and $fd -> $7d will be done in atrvt100.s
|
||||
|
||||
.bss
|
||||
|
@ -14,6 +14,7 @@
|
||||
.import telnet_close
|
||||
.import telnet_send_char
|
||||
.import telnet_send_string
|
||||
.import vt100_font
|
||||
|
||||
Cols = vt100_screen_cols
|
||||
Rows = vt100_screen_rows
|
||||
@ -142,6 +143,7 @@ mul10buf .res 1
|
||||
LMARGN_save .res 1
|
||||
SHFLOK_save .res 1
|
||||
INVFLG_save .res 1
|
||||
CHBAS_save .res 1
|
||||
|
||||
|
||||
; *************************************
|
||||
@ -1542,6 +1544,10 @@ InitVar lda #$00
|
||||
; -------------------------------------
|
||||
|
||||
InitChar
|
||||
lda CHBAS
|
||||
sta CHBAS_save
|
||||
lda #>vt100_font
|
||||
sta CHBAS
|
||||
rts
|
||||
|
||||
; -------------------------------------
|
||||
@ -1550,6 +1556,8 @@ InitChar
|
||||
; -------------------------------------
|
||||
|
||||
ExitChar
|
||||
lda CHBAS_save
|
||||
sta CHBAS
|
||||
rts
|
||||
|
||||
; -------------------------------------
|
||||
@ -1634,11 +1642,11 @@ ltsc;_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _a _b _c _d _e _f
|
||||
; ◆ ▒ ␉ ␌ ␍ ␊ ° ±  ␋ ┘ ┐ ┌ └ ┼ ⎺
|
||||
; ◆ ▒ ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ⎸ ' ' _ ⎿ ⎿ ⎺
|
||||
;.byt $5b,$56,$a0,$a0,$a0,$a0,$a0,$a0,$a0,$a0,$5f,$a0,$9f,$54,$54,$4c ; 6_
|
||||
.byt $5b,$56,$a0,$a0,$a0,$a0,$a0,$a0,$a0,$a0,$43,$45,$51,$5a,$54,$4c ; 6_
|
||||
.byt $5b,$56,$a0,$a0,$a0,$a0,$a0,$a0,$a0,$a0,$43,$45,$51,$5a,$53,$4c ; 6_
|
||||
; ⎻ ─ ⎼ ⎽ ├ ┤ ┴ ┬ │ ≤ ≥ π ≠ £ · ' '
|
||||
; ─ _ _ _ ⎿ ⎸ ⎿ _ ⎸ ' ' ' ' ' ' ' ' ' ' ' ' ' '
|
||||
;.byt $53,$9f,$9f,$9f,$54,$5f,$54,$9f,$5f,$a0,$a0,$a0,$a0,$a0,$a0,$a0 ; 7_
|
||||
.byt $53,$52,$9f,$9f,$54,$5f,$54,$9f,$7c,$a0,$a0,$a0,$a0,$a0,$a0,$a0 ; 7_
|
||||
.byt $53,$52,$9f,$9f,$41,$44,$54,$9f,$7c,$a0,$a0,$a0,$a0,$a0,$a0,$a0 ; 7_
|
||||
|
||||
; -------------------------------------
|
||||
; table keyboard to ASCII
|
||||
@ -1678,36 +1686,22 @@ kta ;_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _a _b _c _d _e _f
|
||||
.byt $60,$61,$62,$63,$64,$65,$66,$67,$fe,$69,$6a,$6b,$6c,$6d,$6e,$6f ; 6_
|
||||
; {DELETE}
|
||||
; p q r s t u v w x y z { | } ~ DEL
|
||||
.byt $70,$fe,$72,$73,$74,$75,$76,$77,$78,$79,$7a,$7b,$7c,$0c,$08,$09 ; 7_
|
||||
.byt $70,$fe,$72,$73,$74,$75,$76,$77,$78,$79,$7a,$7b,$7c,$0c,$7f,$09 ; 7_
|
||||
|
||||
; --- most of the following values are set to "ignored" ($ff) ------
|
||||
; --- some of the not ignored values can come from the ROM ---------
|
||||
; --- some of them are synthesized in atrinput.s -------------------
|
||||
|
||||
; --- high bit set typically means "inverse chars" -----------------
|
||||
; --- map them to regular chars in case the user has ---------------
|
||||
; --- accidentally switched to inverse -----------------------------
|
||||
; {←} {↓} {↑}
|
||||
; ^A ^B ^C ^D ^E ^F ^G ^H ^I ^J ^K ^L ^M ^N ^O
|
||||
.byt $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff ; 8_
|
||||
; {→} ~
|
||||
; ^P ^Q ^R ^S ^T ^U ^V ^W ^X ^Y ^Z ^[ ^\ ^] ^^ ^_
|
||||
; {RETURN}
|
||||
.byt $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$7f,$ff,$7e,$1f ; 9_
|
||||
|
||||
; --- special chars ------------------------------------------------
|
||||
; ' ' ! " # $ % & ' ( ) * + , - . /
|
||||
.byt $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$7e,$0d,$1c,$1d,$1e,$1f ; 9_
|
||||
.byt $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff ; a_
|
||||
; 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
|
||||
.byt $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff ; b_
|
||||
|
||||
; --- capital letters ----------------------------------------------
|
||||
; @ A B C D E F G H I J K L M N O
|
||||
.byt $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff ; c_
|
||||
; P Q R S T U V W X Y Z [ \ ] ^ _
|
||||
.byt $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff ; d_
|
||||
|
||||
; --- lower case letters -------------------------------------------
|
||||
; ` a b c d e f g h i j k l m n o
|
||||
.byt $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff ; e_
|
||||
; p q r s t u v w x y z { | } ~ DEL
|
||||
.byt $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fe,$ff,$7f,$ff ; f_
|
||||
; {HELP}
|
||||
.byt $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fe,$7d,$08,$ff ; f_
|
||||
|
||||
|
||||
; -----------------------------------------------
|
||||
|
1329
drivers/atrvt100font.s
Normal file
1329
drivers/atrvt100font.s
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user