mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-31 08:05:30 +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
|