mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-25 05:32:20 +00:00
167 lines
3.8 KiB
Plaintext
167 lines
3.8 KiB
Plaintext
|
NEW
|
|||
|
AUTO 3,1
|
|||
|
*--------------------------------------
|
|||
|
.PH $A800
|
|||
|
*--------------------------------
|
|||
|
STB.SCREEN.WIDTH .EQ $A5
|
|||
|
*--------------------------------
|
|||
|
STB.SLOT .EQ 3
|
|||
|
*--------------------------------
|
|||
|
STB.HORIZ .EQ $05F8+STB.SLOT
|
|||
|
STB.ESCBYT .EQ $06F8+STB.SLOT
|
|||
|
STB.FLAGS .EQ $0778+STB.SLOT
|
|||
|
*--------------------------------
|
|||
|
STB.ENTRY .EQ STB.SLOT*256+$C000
|
|||
|
STB.RDKEY1 .EQ STB.SLOT*256+$C005
|
|||
|
STB.COUT1 .EQ STB.SLOT*256+$C019
|
|||
|
STB.SCREEN .EQ STB.SLOT*256+$C031
|
|||
|
*--------------------------------
|
|||
|
* I/O VECTORS -- 3 BYTES EACH
|
|||
|
*--------------------------------
|
|||
|
JMP STB.INIT
|
|||
|
JMP STB.WARM
|
|||
|
JMP STB.READ.KEY.WITH.CASE
|
|||
|
JMP STB.GET.HORIZ.POSN
|
|||
|
LDA #$8C ^L--HOME
|
|||
|
.HS 2C
|
|||
|
LDA #$9D ^]--CLREOL
|
|||
|
.HS 2C
|
|||
|
LDA #$8B ^K--CLREOP
|
|||
|
.HS 2C
|
|||
|
LDA #$9F ^_--UP
|
|||
|
.HS 2C
|
|||
|
LDA #$8A ^J--DOWN
|
|||
|
.HS 2C
|
|||
|
LDA #$88 ^H--LEFT
|
|||
|
.HS 2C
|
|||
|
LDA #$9C ^\--RIGHT
|
|||
|
NOP
|
|||
|
JMP MON.COUT
|
|||
|
JMP STB.PICK.SCREEN
|
|||
|
JMP STB.HTABX
|
|||
|
JMP STB.HTAB
|
|||
|
JMP STB.VTAB
|
|||
|
*---Case Change MUST go here-----
|
|||
|
LDA STB.FLAGS
|
|||
|
EOR #$40
|
|||
|
STA STB.FLAGS
|
|||
|
RTS
|
|||
|
*--------------------------------
|
|||
|
* VARIABLE LENGTH ROUTINES
|
|||
|
*--------------------------------
|
|||
|
STB.HTABX
|
|||
|
PHA
|
|||
|
TXA
|
|||
|
JSR STB.HTAB
|
|||
|
PLA
|
|||
|
RTS
|
|||
|
*--------------------------------
|
|||
|
STB.GET.HORIZ.POSN
|
|||
|
LDA STB.HORIZ
|
|||
|
RTS
|
|||
|
*--------------------------------
|
|||
|
STB.VTAB
|
|||
|
STA CV
|
|||
|
LDA STB.HORIZ
|
|||
|
STB.HTAB
|
|||
|
PHA SAVE HORIZ POSN
|
|||
|
LDA #$9E
|
|||
|
JSR STB.COUT1
|
|||
|
PLA GET HORIZ POSN
|
|||
|
JSR .1
|
|||
|
LDA CV
|
|||
|
|
|||
|
.1 CLC
|
|||
|
ADC #$A0
|
|||
|
JMP STB.COUT1
|
|||
|
*--------------------------------
|
|||
|
STB.INIT
|
|||
|
LDA #80
|
|||
|
STA STB.SCREEN.WIDTH
|
|||
|
LDA #$8C CLEAR SCREEN AND START STB-80
|
|||
|
JSR STB.ENTRY
|
|||
|
LDA #0
|
|||
|
STA STB.ESCBYT DISABLE ^A AND ESC-MODE
|
|||
|
LDA #2 DISABLE "HOME" SENSING
|
|||
|
STA STB.FLAGS
|
|||
|
STB.INSTALL.VECTORS
|
|||
|
LDX #1
|
|||
|
.1 LDA STB.VECTORS,X
|
|||
|
STA $36,X
|
|||
|
STA STB.SLOT*2+$BE10,X
|
|||
|
LDA STB.VECTORS+2,X
|
|||
|
BIT F.EXEC
|
|||
|
BMI .2
|
|||
|
STA $38,X
|
|||
|
.2 STA STB.SLOT*2+$BE20,X
|
|||
|
DEX
|
|||
|
BPL .1
|
|||
|
RTS
|
|||
|
*--------------------------------
|
|||
|
STB.VECTORS .DA STB.COUT
|
|||
|
.DA STB.RDKEY
|
|||
|
*--------------------------------
|
|||
|
STB.WARM
|
|||
|
CLD
|
|||
|
LDX CV
|
|||
|
JSR MON.INIT
|
|||
|
STX CV
|
|||
|
JMP STB.INSTALL.VECTORS
|
|||
|
*--------------------------------
|
|||
|
* READ KEY WITH CASE CONTROL
|
|||
|
*--------------------------------
|
|||
|
STB.READ.KEY.WITH.CASE
|
|||
|
JSR MON.RDKEY
|
|||
|
ORA #$80 REQUIRED FOR EXEC FILES
|
|||
|
CLC SIGNAL NO OPEN APPLE
|
|||
|
RTS
|
|||
|
*--------------------------------
|
|||
|
STB.RDKEY
|
|||
|
CLD
|
|||
|
LDA #$0A
|
|||
|
STA STB.SLOT*16+$C080
|
|||
|
LDA #$07 SOLID DBL LINE CURSOR
|
|||
|
STA STB.SLOT*16+$C081
|
|||
|
JSR STB.RDKEY1
|
|||
|
ORA #$80 Make sure it looks right
|
|||
|
PHA
|
|||
|
LDA #$0A
|
|||
|
STA STB.SLOT*16+$C080
|
|||
|
LDA #$20 CURSOR OFF
|
|||
|
STA STB.SLOT*16+$C081
|
|||
|
PLA
|
|||
|
RTS
|
|||
|
*--------------------------------
|
|||
|
STB.COUT
|
|||
|
CLD
|
|||
|
CMP #$80 NORMAL OR INVERSE?
|
|||
|
BCS .1 ...NORMAL
|
|||
|
PHA ...80-COLUMN
|
|||
|
LDA #$8F SELECT INVERSE DISPLAY
|
|||
|
JSR STB.COUT1
|
|||
|
PLA
|
|||
|
ORA #$80 MAKE PRINTABLE CHARACTER
|
|||
|
CMP #$A0
|
|||
|
BCS .2
|
|||
|
ORA #$40
|
|||
|
.2 JSR STB.COUT1
|
|||
|
LDA #$8E SELECT NORMAL DISPLAY
|
|||
|
.1 JMP STB.COUT1
|
|||
|
*--------------------------------
|
|||
|
STB.PICK.SCREEN
|
|||
|
STX $481
|
|||
|
TYA
|
|||
|
STA $482
|
|||
|
JSR STB.HTAB
|
|||
|
JSR STB.SCREEN
|
|||
|
LDY $482
|
|||
|
LDX $481
|
|||
|
RTS
|
|||
|
*--------------------------------------
|
|||
|
.EP
|
|||
|
*--------------------------------------
|
|||
|
MAN
|
|||
|
SAVE usr/src/scmasm.30/io.s.stb80
|
|||
|
LOAD usr/src/scmasm.30/scmasm.s
|
|||
|
ASM
|