A2osX/SCMASM.30/SCMASM.S.LDR.txt

223 lines
5.6 KiB
Plaintext
Raw Permalink Normal View History

NEW
AUTO 3,1
*--------------------------------------
SPTR .EQ $00
DPTR .EQ $02
*--------------------------------
MLI.UNIT .EQ $BF30
MLI.BITMAP .EQ $BF58
MLI.PREFIX.FLAG .EQ $BF9A
*--------------------------------
MON.CROUT .EQ $FD8E
SETNORM .EQ $FE84
*--------------------------------
* sys file execution
* --------- ---------
* 2000-21FF LOADER
* 2200-4AFF 8000-A8FF S-C MACRO ASSEMBLER with 40-col driver
* A900-A9FF additional space for longer drivers
* 4B00-5FFF AA00-BEFF S-C ProDOS Interface
* 6000-60FF A800-A8FF //E 80-COLUMN DRIVER
* 6100-61FF A800-A8FF STB80 DRIVER
* 6200-63FF A800-A9FF VIDEX VIDEOTERM DRIVER
* 6400-65FF A800-A9FF VIDEX ULTRATERM DRIVER
* 6600-71FF D400-DFFF ASM PARTICULAR
*--------------------------------
* BLOAD SCASM (loader and Macro and 40-col driver)
* BLOAD B.SCI (ProDOS Interpreter)
* BLOAD B.IO.TWO.E (//E 80-COLUMN DRIVER)
* BLOAD B.IO.STB80
* BLOAD B.IO.VIDEX
* BLOAD B.IO.ULTRA
* BSAVE SCASM.SYS,A$2000,L$4600
*--------------------------------
.MA MOVE
LDA /]1 DESTINATION
LDY /]2 SOURCE BEGINNING
LDX /]3-]2+255 # PAGES
JSR MOVE
.EM
*--------------------------------
STARTUP.SC.MACRO
JMP LOAD.SC
*--------------------------------
DRIVER.FLAG .HS 00
*--------------------------------
LOAD.SC
JSR SELECT.DRIVER
>MOVE $AA00,$4B00,$5FFF
>MOVE $8000,$2200,$4AFF
LDA $C083
LDA $C083
>MOVE $D400,$6600,$71FF
LDA $C082
JSR LOAD.DRIVER
*--------------------------------
*---GET SCREEN TO NORMAL 40------
* LDA #$15 CTRL-U, TURNS OFF 80-COLUMN
* JSR MON.COUT
* JSR SETNORM
* JSR MON.INIT
* JSR MON.HOME
*---ESTABLISH RAM BITMAP---------
LDX #BITMAP.SIZE-1
.2 LDA MY.BITMAP,X
STA MLI.BITMAP,X
DEX
BPL .2
*---BUILD $3D0-3FF---------------
LDX #5
.3 LDA IMAGE.3D0,X
STA $3D0,X
DEX
BPL .3
LDX #10
.4 LDA IMAGE.3F0,X
STA $3F0,X
DEX
BPL .4
*---Establish HIMEM page---------
LDA #$74
STA SCI.HIMEM.PAGE
STA SCI.BUFFER.PAGES+2 EXEC BUFFER
CLC
ADC #4
STA SCI.BUFFER.PAGES BUF 0
ADC #4
STA SCI.BUFFER.PAGES+1 BUF 1
*---SET A NULL PREFIX------------
LDA #0
STA MLI.PREFIX.FLAG
*---SET SLOT/DRIVE DEFAULTS------
LDA MLI.UNIT
LSR
LSR
LSR
LSR
CMP #$08
AND #$07
STA SCI.SLOT
LDA #1
ADC #0
STA SCI.DRIVE
*--------------------------------
IIGS SEC
JSR $FE1F
BCS .2 ...NOT IIGS
*--------------------------------
LDY #GS.NUM-1
.1 LDA GS.NEW,Y
STA FAKE.MONITOR,Y
DEY
BPL .1
*---START UP ProDOS--------------
.2 JMP $8000
*--------------------------------
GS.NEW LDA #" " COVER UP THE DOLLAR SIGN
STA WBUF
LDA WBUF-1,X LOOK FOR "HEXNUM=" COMMAND
CMP #"="
BEQ .1 ...YES, DON'T APPEND " Q"
LDA #" "
STA WBUF,X APPEND " Q"
LDA #"Q"
STA WBUF+1,X
.1 JMP $FF70
GS.NUM .EQ *-GS.NEW
*--------------------------------
IMAGE.3D0
JMP SCI.STARTUP $3D0
JMP SCI.STARTUP $3D3
IMAGE.3F0
.DA $FA59 'BRK' VECTOR
.DA SCI.STARTUP,#$BE^$A5 RESET VECTOR
JMP SCI.RTS &-VECTOR
JMP SCI.RTS Y-VECTOR
*--------------------------------
MY.BITMAP
.HS C3.00.00.00.00.00.00.00 0000-3FFF
.HS 00.00.00.00.00.00.00.00 4000-7FFF
.HS FF.FF.FF.FF.FF.FF.FF.F3 8000-BFFF
BITMAP.SIZE .EQ *-MY.BITMAP
*--------------------------------
SELECT.DRIVER
LDY DRIVER.FLAG
BNE .3 ...LOAD SPECIFIC DRIVER
LDA $FBB3
CMP #6
BEQ .3 ...//E OR //C, USE //E DRIVER
*---Display menu-----------------
JSR MON.HOME
LDY #0
.1 LDA MENU,Y
BEQ .2
JSR MON.COUT
INY
BNE .1
*---Get choice-------------------
.2 JSR MON.RDKEY
EOR #$B0
BEQ .2
CMP #5
BCS .2
TAY
ORA #$B0
JSR MON.COUT
JSR MON.CROUT
*---(Y) is selected driver-------
.3 STY DRIVER.FLAG
RTS
*--------------------------------
LOAD.DRIVER
LDY DRIVER.FLAG
LDA DRIVER.ADDRS,Y
BEQ .4 ...40-COLUMN, RETURN NOW
TAY
LDA /$A800
LDX #2
JSR MOVE
.4 RTS
*--------------------------------
* MOVE (X) PAGES FROM YY00 TO AA00
*--------------------------------
MOVE
STA DPTR+1
STY SPTR+1
LDY #0
STY DPTR
STY SPTR
.1 LDA (SPTR),Y
STA (DPTR),Y
INY
BNE .1
INC SPTR+1
INC DPTR+1
DEX
BNE .1
RTS
*--------------------------------
DRIVER.ADDRS
.HS 60...00...62...64...61
* //E 40 VID ULT STB
*--------------------------------
MENU
.AS -/S-C MACRO ASSEMBLER 2.0 (PRODOS)/
.HS 8D8D
.AS -/1 -- STANDARD 40-COLUMN/
.HS 8D
.AS -/2 -- VIDEX VIDEOTERM/
.HS 8D
.AS -/3 -- VIDEX ULTRATERM/
.HS 8D
.AS -/4 -- STB-80/
.HS 8D8D
.AS -/WHICH? /
.HS 00
*--------------------------------
.AS /<<<COPYRIGHT (C) 1985, S-C SOFTWARE CORPORATION>>>/
*--------------------------------------
MAN
SAVE usr/src/scmasm.30/scmasm.s.ldr
LOAD usr/src/scmasm.30/scmasm.s
ASM