mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-10 22:54:59 +00:00
223 lines
5.6 KiB
Plaintext
223 lines
5.6 KiB
Plaintext
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
|