mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-31 23:09:33 +00:00
138 lines
2.9 KiB
Plaintext
138 lines
2.9 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
.PH $A800
|
||
*--------------------------------
|
||
* I/O VECTORS -- 3 BYTES EACH
|
||
*--------------------------------
|
||
JMP IIE.INIT
|
||
JMP IIE.WARM
|
||
JMP IIE.RDKEY
|
||
JMP S.GET.HORIZ.POSN
|
||
JMP MON.HOME
|
||
JMP MON.CLREOL
|
||
JMP MON.CLREOP
|
||
JMP MON.UP
|
||
JMP MON.LF
|
||
JMP IIE.LEFT
|
||
JMP IIE.RIGHT
|
||
JMP IIE.COUT
|
||
JMP IIE.PICK.SCREEN
|
||
JMP IIE.HTABX
|
||
JMP IIE.HTAB
|
||
JMP IIE.VTAB
|
||
*---Case Toggle MUST go here-----
|
||
RTS
|
||
*--------------------------------
|
||
* VARIABLE LENGTH ROUTINES
|
||
*--------------------------------
|
||
IIE.INIT
|
||
LDA $BF98
|
||
AND #2
|
||
BEQ IO.HOME
|
||
LDA #$99 CTRL-Y
|
||
JMP $C300
|
||
*--------------------------------
|
||
IIE.HTABX
|
||
PHA
|
||
TXA
|
||
JSR IIE.HTAB
|
||
PLA
|
||
RTS
|
||
*--------------------------------
|
||
IIE.HTAB
|
||
BIT $C01F
|
||
BPL .1
|
||
STA $57B
|
||
RTS
|
||
.1 STA CH
|
||
RTS
|
||
*--------------------------------
|
||
S.GET.HORIZ.POSN
|
||
LDA $57B
|
||
BIT $C01F
|
||
BMI .1
|
||
LDA CH
|
||
.1 RTS
|
||
*--------------------------------
|
||
IIE.WARM
|
||
CLD
|
||
LDX CV SAVE CV
|
||
JSR MON.INIT
|
||
TXA GET CV, FALL INTO VTAB
|
||
IIE.VTAB
|
||
STA CV
|
||
JMP MON.VTAB
|
||
*--------------------------------
|
||
IIE.RDKEY
|
||
LDA #40
|
||
BIT $C01F
|
||
BPL .1
|
||
ASL
|
||
.1 STA SCREEN.WIDTH
|
||
JSR MON.RDKEY
|
||
CMP #$FF
|
||
BNE .2
|
||
LDA #$88
|
||
.2 ASL $C061 SET CARRY IF "OPEN APPLE" PRESSED
|
||
ORA #$80
|
||
RTS
|
||
*--------------------------------
|
||
IIE.COUT
|
||
CMP #$80 NORMAL OR INVERSE?
|
||
BCS .2 ...NORMAL
|
||
BIT $C01F ...INVERSE; 40- OR 80-COLUMNS?
|
||
BPL .2 ...40-COLUMN
|
||
PHA ...80-COLUMN
|
||
LDA #$8F SELECT INVERSE DISPLAY
|
||
JSR MON.COUT
|
||
PLA
|
||
CMP #$20 CONTROL CHAR?
|
||
BCS .1 ...NO
|
||
ORA #$40 MAKE PRINTABLE CHARACTER
|
||
.1 ORA #$80
|
||
JSR MON.COUT
|
||
LDA #$8E SELECT NORMAL DISPLAY
|
||
.2 JMP MON.COUT
|
||
*--------------------------------
|
||
IIE.PICK.SCREEN
|
||
BIT $C01F
|
||
BMI .1
|
||
LDA (BASL),Y
|
||
RTS
|
||
.1 TYA
|
||
LSR
|
||
TAY
|
||
PHP
|
||
SEI
|
||
LDA $C055
|
||
BCC .2
|
||
LDA $C054
|
||
.2 LDA (BASL),Y
|
||
BIT $C054
|
||
PLP
|
||
PHA SAVE CHAR FROM SCREEN
|
||
TYA RESTORE Y-REG
|
||
ROL
|
||
TAY
|
||
PLA
|
||
RTS
|
||
*--------------------------------
|
||
IIE.RIGHT
|
||
BIT $C01F IN 80-COLUMN MODE?
|
||
BMI .1 ...YES
|
||
JMP MON.ADVANC
|
||
.1 LDA #$9C FORWARD SPACE
|
||
.HS 2C SKIP TWO BYTES
|
||
*--------------------------------
|
||
IIE.LEFT
|
||
LDA #$88 BACKSPACE
|
||
JMP MON.COUT
|
||
*--------------------------------------
|
||
.EP
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/scmasm.30/io.s.iie
|
||
LOAD usr/src/scmasm.30/scmasm.s
|
||
ASM
|