Ampermanager/source/t.ultra.s

102 lines
1.6 KiB
ArmAsm

*
* Amper Manager - Ultraterm 2 driver
*
* (c) 1987, Paul Smith & Rick Sutcliffe
* (s) 2020, Antoine Vignau
*
xc
xc
mx %11
lst off
*-------------------------------
* *
* SPREADSHEET 2 *
* ULTRATERM DRIVER *
* *
* BY PAUL SMITH *
* *
* AND *
* RICK SUTCLIFFE *
* *
HOMEC EQU $8C
CNTRLV EQU $96
ULFORMAT DFB $B1
*
*
*ULTRATERM FORMATS
USTR ASC 'HERE ARE YOUR ULTRATERM FORMATS:'
DFB $0D,$0D
ASC '0) 40 X 24'
DFB $0D
ASC '1) 80 X 24'
DFB $0D
ASC '2) 96 X 24'
DFB $0D
ASC '3) 160 X 24'
DFB $0D
ASC '4) 80 X 24 I'
DFB $0D
ASC '5) 80 X 32 I'
DFB $0D
ASC '6) 80 X 48 I'
DFB $0D
ASC '7) 132 X 24 I'
DFB $0D
ASC '8) 128 X 32 I'
DFB $0D,$0D
DCI 'PICK FORMAT (1-8) DEFAULT = '
*
*ACTUAL DRIVER
*
ULTRAO BIT $C061 ;CHECK BUTTONS
BMI ULTRA
BIT $C062
BPL ULTRAFIN ;NO BUTTON SO FORGET IT
ULTRA JSR ISULTRA
BCC ULTRA2 ;GOT ONE
ULTRAFIN RTS ;NO ULTRATERM
ULTRA2 LDA $BF98 ;80 COL
ORA #$02
STA $BF98
ULTRA3 LDA #HOMEC
JSR $C300 ;START UP ULTRATERM
JSR PUTWWDTH
LDA #<USTR ;READY TO PRINT MESSAGE
LDX #>USTR
JSR PRINTERC
JSR FMTOUT
GETFMT LDA KBD
BPL GETFMT
BIT KBDSTRB
CMP #$8D ;IS RETURN
BEQ TODEFAULT
CMP #$B0 ;LESS THAN 1
BCC GETFMT ;TRY AGAIN
CMP #$B9 ;OR>8
BGE GETFMT
STA ULFORMAT ;SAVE IT
EOR #$B0 ;CHANGE TO INDEX
BNE GETFMT1 ;IF NOT 0 GO ON
LDA #$18
STA WNDBTM
LDA #$28
STA WNDWDTH
BNE TODEFAULT
GETFMT1 TAX
LDA PWDTBL-1,X ;GET WIDTH
SEC
SBC #$01
STA WNDWDTH
LDA HGTBL-1,X
STA WNDBTM
TODEFAULT JSR DEFAULT
JSR HOME
JMP CSSWON
DEFAULT LDA #CNTRLV
JSR COUT
FMTOUT LDA ULFORMAT
JMP COUT