mirror of
https://github.com/option8/sim8800.git
synced 2024-12-28 05:29:33 +00:00
fixed /SIM8800/ prefix issue
This commit is contained in:
parent
0313d8ad6b
commit
eadf768bdb
124
LOADER.s
Normal file
124
LOADER.s
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
DSK LOADER
|
||||||
|
|
||||||
|
**************************************************
|
||||||
|
* boot stub at $2000 to BLOAD real program at $3000, JMP $3000
|
||||||
|
**************************************************
|
||||||
|
* Variables
|
||||||
|
**************************************************
|
||||||
|
|
||||||
|
|
||||||
|
**************************************************
|
||||||
|
* Apple Standard Memory Locations
|
||||||
|
**************************************************
|
||||||
|
CLRLORES EQU $F832
|
||||||
|
LORES EQU $C050
|
||||||
|
TXTSET EQU $C051
|
||||||
|
MIXCLR EQU $C052
|
||||||
|
MIXSET EQU $C053
|
||||||
|
TXTPAGE1 EQU $C054
|
||||||
|
TXTPAGE2 EQU $C055
|
||||||
|
KEY EQU $C000
|
||||||
|
C80STOREOF EQU $C000
|
||||||
|
C80STOREON EQU $C001
|
||||||
|
STROBE EQU $C010
|
||||||
|
SPEAKER EQU $C030
|
||||||
|
VBL EQU $C02E
|
||||||
|
RDVBLBAR EQU $C019 ;not VBL (VBL signal low
|
||||||
|
WAIT EQU $FCA8
|
||||||
|
RAMWRTAUX EQU $C005
|
||||||
|
RAMWRTMAIN EQU $C004
|
||||||
|
SETAN3 EQU $C05E ;Set annunciator-3 output to 0
|
||||||
|
SET80VID EQU $C00D ;enable 80-column display mode (WR-only)
|
||||||
|
CLR80VID EQU $C00C
|
||||||
|
HOME EQU $FC58 ; clear the text screen
|
||||||
|
CH EQU $24 ; cursor Horiz
|
||||||
|
CV EQU $25 ; cursor Vert
|
||||||
|
VTAB EQU $FC22 ; Sets the cursor vertical position (from CV)
|
||||||
|
COUT EQU $FDED ; Calls the output routine whose address is stored in CSW,
|
||||||
|
; normally COUTI
|
||||||
|
STROUT EQU $DB3A ;Y=String ptr high, A=String ptr low
|
||||||
|
|
||||||
|
ALTTEXT EQU $C055
|
||||||
|
ALTTEXTOFF EQU $C054
|
||||||
|
|
||||||
|
ROMINIT EQU $FB2F
|
||||||
|
ROMSETKBD EQU $FE89
|
||||||
|
ROMSETVID EQU $FE93
|
||||||
|
|
||||||
|
ALTCHAR EQU $C00F ; enables alternative character set - mousetext
|
||||||
|
|
||||||
|
BLINK EQU $F3
|
||||||
|
SPEED EQU $F1
|
||||||
|
|
||||||
|
BELL EQU $FF3A ; Monitor BELL routine
|
||||||
|
CROUT EQU $FD8E ; Monitor CROUT routine
|
||||||
|
PRBYTE EQU $FDDA ; Monitor PRBYTE routine
|
||||||
|
MLI EQU $BF00 ; ProDOS system call
|
||||||
|
OPENCMD EQU $C8 ; OPEN command index
|
||||||
|
READCMD EQU $CA ; READ command index
|
||||||
|
CLOSECMD EQU $CC ; CLOSE command index
|
||||||
|
|
||||||
|
|
||||||
|
**************************************************
|
||||||
|
* START - sets up various fiddly zero page bits
|
||||||
|
**************************************************
|
||||||
|
|
||||||
|
ORG $2000 ; PROGRAM DATA STARTS AT $2000
|
||||||
|
|
||||||
|
JSR BLOAD ; BLOAD SIM80
|
||||||
|
|
||||||
|
JMP $9000 ; jump to the new location
|
||||||
|
|
||||||
|
**************************************************
|
||||||
|
* Load "SIM80" into memory at $9000
|
||||||
|
**************************************************
|
||||||
|
|
||||||
|
ERROR JSR PRBYTE ;Print error code
|
||||||
|
JSR CROUT ;Print a carriage return
|
||||||
|
RTS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BLOAD JSR OPEN ;open "DATA"
|
||||||
|
JSR READ
|
||||||
|
JSR ERROR
|
||||||
|
JSR CLOSE
|
||||||
|
JSR ERROR
|
||||||
|
RTS ;Otherwise done
|
||||||
|
|
||||||
|
OPEN JSR MLI ;Perform call
|
||||||
|
DB OPENCMD ;CREATE command number
|
||||||
|
DW OPENLIST ;Pointer to parameter list
|
||||||
|
JSR ERROR ;If error, display it
|
||||||
|
LDA REFERENCE
|
||||||
|
STA READLIST+1
|
||||||
|
STA CLOSELIST+1
|
||||||
|
RTS
|
||||||
|
|
||||||
|
READ JSR MLI
|
||||||
|
DB READCMD
|
||||||
|
DW READLIST
|
||||||
|
RTS
|
||||||
|
|
||||||
|
CLOSE JSR MLI
|
||||||
|
DB CLOSECMD
|
||||||
|
DW CLOSELIST
|
||||||
|
RTS
|
||||||
|
|
||||||
|
OPENLIST DB $03 ; parameter list for OPEN command
|
||||||
|
DW FILENAME
|
||||||
|
DA MLI-$400 ; buffer snuggled up tight with PRODOS
|
||||||
|
REFERENCE DB $00 ; reference to opened file
|
||||||
|
|
||||||
|
READLIST DB $04
|
||||||
|
DB $00 ; REFERENCE written here after OPEN
|
||||||
|
DB $00,$90 ; write to $9000 - leaves 32K for Altair
|
||||||
|
DB $FF,$FF ; read as much as $FFFF - should error out with EOF before that.
|
||||||
|
TRANSFERRED DB $00,$00
|
||||||
|
|
||||||
|
CLOSELIST DB $01
|
||||||
|
DB $00
|
||||||
|
|
||||||
|
FILENAME DB ENDNAME-NAME ;Length of name
|
||||||
|
NAME ASC 'SIM8800' ;followed by the name
|
||||||
|
ENDNAME EQU *
|
193
SIM8800.s
193
SIM8800.s
@ -7,9 +7,13 @@
|
|||||||
ORG $9000
|
ORG $9000
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; TODO:
|
; TODO: real access display while in trace/step
|
||||||
|
; set displaybytes/+1 on memory access.
|
||||||
|
;
|
||||||
; port to 65816 - 24bit addresses, 16 bit registers, 64k contiguous AUX, 2.8mhz
|
; port to 65816 - 24bit addresses, 16 bit registers, 64k contiguous AUX, 2.8mhz
|
||||||
;
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
|
|
||||||
ZERO EQU $00
|
ZERO EQU $00
|
||||||
@ -49,6 +53,7 @@ KSWL EQU $38 ; keyboard input routine
|
|||||||
KSWH EQU $39 ; normally $FD1B
|
KSWH EQU $39 ; normally $FD1B
|
||||||
|
|
||||||
HIPCH EQU $FE ; is the PC above 32k limit?
|
HIPCH EQU $FE ; is the PC above 32k limit?
|
||||||
|
HIPCOFFSET EQU $FD ; 80 or 70. SPAGHETTI!
|
||||||
|
|
||||||
KBDBUF EQU $C000 ; KEYBOARD BUFFER
|
KBDBUF EQU $C000 ; KEYBOARD BUFFER
|
||||||
KBDSTROBE EQU $C010 ; KEYBOARD STROBE
|
KBDSTROBE EQU $C010 ; KEYBOARD STROBE
|
||||||
@ -188,6 +193,10 @@ SBC10 STA PCH ; store resulting PCH
|
|||||||
MAIN SEI ; DON'T ALLOW INTERRUPTS
|
MAIN SEI ; DON'T ALLOW INTERRUPTS
|
||||||
CLD ; CLEAR DECIMAL MODE
|
CLD ; CLEAR DECIMAL MODE
|
||||||
LDX #$00 ; LOAD INDEX
|
LDX #$00 ; LOAD INDEX
|
||||||
|
|
||||||
|
LDA #$80
|
||||||
|
STA HIPCOFFSET ; set offset
|
||||||
|
|
||||||
; **** add $10 to SIMH
|
; **** add $10 to SIMH
|
||||||
CLC
|
CLC
|
||||||
LDA SIMH
|
LDA SIMH
|
||||||
@ -197,8 +206,7 @@ MAIN SEI ; DON'T ALLOW INTERRUPTS
|
|||||||
CMP #$7F ; if it's >=32K boundary after add $10, get from AUX
|
CMP #$7F ; if it's >=32K boundary after add $10, get from AUX
|
||||||
BCC STASIMM2
|
BCC STASIMM2
|
||||||
STA RAMRDON ; set AUX READ
|
STA RAMRDON ; set AUX READ
|
||||||
|
SBC HIPCOFFSET ; subtract #$80
|
||||||
SBC #$80 ; subtract #$80
|
|
||||||
CLC ; read from AUX, still write to MAIN
|
CLC ; read from AUX, still write to MAIN
|
||||||
; add #$80
|
; add #$80
|
||||||
; set MAIN READ
|
; set MAIN READ
|
||||||
@ -222,8 +230,7 @@ DECSIMH SEC ; then subtract #$10... oof.
|
|||||||
STA RAMRDOFF ; high = turn it off, etc
|
STA RAMRDOFF ; high = turn it off, etc
|
||||||
CLC ; add #$80 to SIMH again
|
CLC ; add #$80 to SIMH again
|
||||||
LDA SIMH
|
LDA SIMH
|
||||||
|
ADC HIPCOFFSET
|
||||||
ADC #$80
|
|
||||||
STA SIMH
|
STA SIMH
|
||||||
|
|
||||||
CHECKPCH ; is PC looking above #$8FFF?
|
CHECKPCH ; is PC looking above #$8FFF?
|
||||||
@ -424,7 +431,8 @@ PUSHT TXA ; TEMP SAVE - x=0A on set return, gets PCL/H
|
|||||||
PLA ; RECOVER TEMP SAVE
|
PLA ; RECOVER TEMP SAVE
|
||||||
TAX ;
|
TAX ;
|
||||||
|
|
||||||
|
LDY #$80
|
||||||
|
STY HIPCOFFSET ; offset 80 for PUSH???
|
||||||
|
|
||||||
RPMEM LDY #$01 ; CLEAR INDEX
|
RPMEM LDY #$01 ; CLEAR INDEX
|
||||||
|
|
||||||
@ -435,8 +443,7 @@ RPMEM LDY #$01 ; CLEAR INDEX
|
|||||||
STA DISPLAYBYTES ; high byte to first bank of LEDs.
|
STA DISPLAYBYTES ; high byte to first bank of LEDs.
|
||||||
CMP #$7F ; over 9000?
|
CMP #$7F ; over 9000?
|
||||||
BCC RPMEM2 ; nope, skip math
|
BCC RPMEM2 ; nope, skip math
|
||||||
|
SBC HIPCOFFSET ; off by $10 ??? ***
|
||||||
SBC #$80 ; off by $10 ??? ***
|
|
||||||
STA RAMWRTON ; write to AUX
|
STA RAMWRTON ; write to AUX
|
||||||
STA DESTDA,Y
|
STA DESTDA,Y
|
||||||
|
|
||||||
@ -471,8 +478,7 @@ RPLP LDA SIMM,X ;GET NEXT RP DATA
|
|||||||
BCS STADESTDA2 ; Over 1000, skip
|
BCS STADESTDA2 ; Over 1000, skip
|
||||||
|
|
||||||
STADESTDA3 SEC
|
STADESTDA3 SEC
|
||||||
|
SBC HIPCOFFSET
|
||||||
SBC #$80
|
|
||||||
STA RAMWRTON
|
STA RAMWRTON
|
||||||
STA DESTDA+1
|
STA DESTDA+1
|
||||||
|
|
||||||
@ -483,8 +489,7 @@ STADESTDA2 PLA ; get RP data back
|
|||||||
BPL RPLP2
|
BPL RPLP2
|
||||||
CLC
|
CLC
|
||||||
LDA DESTDA+1
|
LDA DESTDA+1
|
||||||
|
ADC HIPCOFFSET
|
||||||
ADC #$80
|
|
||||||
STA DESTDA+1
|
STA DESTDA+1
|
||||||
STA RAMWRTOFF ; write to MAIN
|
STA RAMWRTOFF ; write to MAIN
|
||||||
|
|
||||||
@ -592,7 +597,8 @@ RETUN
|
|||||||
; **** doing a JUMP or CALL - reset HIPCH
|
; **** doing a JUMP or CALL - reset HIPCH
|
||||||
LDA #$00
|
LDA #$00
|
||||||
STA HIPCH
|
STA HIPCH
|
||||||
|
LDA #$80
|
||||||
|
STA HIPCOFFSET ; set offset
|
||||||
; **** doing a JUMP or CALL - reset HIPCH
|
; **** doing a JUMP or CALL - reset HIPCH
|
||||||
|
|
||||||
LDA SPH
|
LDA SPH
|
||||||
@ -603,8 +609,7 @@ RETUN
|
|||||||
CMP #$10
|
CMP #$10
|
||||||
BCS RETUN2
|
BCS RETUN2
|
||||||
SEC
|
SEC
|
||||||
RETUN1
|
RETUN1 SBC HIPCOFFSET ; *** SPH off by $10?
|
||||||
SBC #$80 ; *** SPH off by $10?
|
|
||||||
STA RAMRDON
|
STA RAMRDON
|
||||||
STA RAMWRTON
|
STA RAMWRTON
|
||||||
STA SPH
|
STA SPH
|
||||||
@ -623,10 +628,12 @@ RETUN2 CLC
|
|||||||
BPL RETUN3
|
BPL RETUN3
|
||||||
LDA SPH ; return SPH to high value
|
LDA SPH ; return SPH to high value
|
||||||
CLC
|
CLC
|
||||||
ADC #$80 ; *** SPH off by $10?
|
ADC HIPCOFFSET ; *** SPH off by $10?
|
||||||
STA SPH
|
STA SPH
|
||||||
STA RAMRDOFF
|
STA RAMRDOFF
|
||||||
STA RAMWRTOFF
|
STA RAMWRTOFF
|
||||||
|
LDA #$80
|
||||||
|
STA HIPCOFFSET ; set offset
|
||||||
|
|
||||||
RETUN3 LDX #$0A ; POP RETURN OFF
|
RETUN3 LDX #$0A ; POP RETURN OFF
|
||||||
BNE POPIT ; STACK INTO PC
|
BNE POPIT ; STACK INTO PC
|
||||||
@ -650,6 +657,11 @@ POP LSR A ; POP?
|
|||||||
POPIT TXA ; TEMP SAVE INDEX
|
POPIT TXA ; TEMP SAVE INDEX
|
||||||
PHA ;
|
PHA ;
|
||||||
|
|
||||||
|
;***
|
||||||
|
; POP and RETURN get stack offset 70.
|
||||||
|
LDA #$70
|
||||||
|
STA HIPCOFFSET ; set offset
|
||||||
|
;***
|
||||||
|
|
||||||
JSR SPPNT ; PULL OUT STACK DATA
|
JSR SPPNT ; PULL OUT STACK DATA
|
||||||
PLA ; BUMP SP
|
PLA ; BUMP SP
|
||||||
@ -1002,97 +1014,92 @@ STPSW STA PSW ; SAVE NEW PSW
|
|||||||
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
ROTATE LDY SIMA ; GET ACCUMULATOR
|
ROTATE LDY SIMA ;
|
||||||
LSR A ; IS THIS CMC OR 8TC?
|
LSR A ;
|
||||||
BNE ROCOMP ; NO, IT IS A ROTATE .OR CMA
|
BNE ROCOMP ;
|
||||||
LDA PSW ; YES, CHANGE CARRY
|
LDA PSW ;
|
||||||
EOR #$01 ; CMC
|
EOR #$01 ;
|
||||||
BCC STPS ;
|
BCC STPS ;
|
||||||
ORA #$01 ; STC
|
ORA #$01 ;
|
||||||
STPS BVS STPSW ;
|
STPS BVS STPSW ;
|
||||||
; ----------------------------------------------------------------------------
|
ROCOMP BCS LEFT ;
|
||||||
|
LSR A ;
|
||||||
ROCOMP BCS LEFT ; LEFT OR RIGHT?
|
BNE ROT ;
|
||||||
LSR A ; CMA?
|
TYA ;
|
||||||
BNE ROT ; NO, ROTATE
|
|
||||||
TYA ; YES, COMMPLEMFNT A
|
|
||||||
EOR #$FF ;
|
EOR #$FF ;
|
||||||
STA SIMA ; DOESN* T SET STATUS
|
STA SIMA ;
|
||||||
RTS ;
|
RTS ;
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
ROT TYA ; GET ACCUMULATOR
|
ROT TYA ;
|
||||||
BCS RRC ;
|
BCS RRC ;
|
||||||
LDA PSW ; GET 8080 CARRY
|
LDA PSW ;
|
||||||
RRC LSR A ;
|
RRC LSR A ;
|
||||||
TYA ; GET ACCUMULATOR
|
TYA ;
|
||||||
ROR A ; ROTATE RIGHT
|
ROR A ;
|
||||||
BVS JCRY ; GO STORE&SET CARRY
|
BVS JCRY ;
|
||||||
; ----------------------------------------------------------------------------
|
LEFT LSR A ;
|
||||||
LEFT LSR A ; DECIMAL ADJUST? IYES# GO 00 IT
|
BEQ DAA ;
|
||||||
BEQ DAA ; N 0 , GET ACCUMULATOR
|
TYA ;
|
||||||
TYA ; JRLC?
|
BCS RLC ;
|
||||||
BCS RLC ; NO#GET 8080 CARRY
|
LDA PSW ;
|
||||||
LDA PSW ; MOVE IT INTO MSNIB
|
|
||||||
ROR A ;
|
ROR A ;
|
||||||
ROR A ;
|
ROR A ;
|
||||||
RLC ASL A ; MOVE IT INTO CARRY
|
RLC ASL A ;
|
||||||
TYA ; G E T ACCUMULATOR
|
TYA ;
|
||||||
ROL A ; MOVE IT LEFT
|
ROL A ;
|
||||||
JCRY STA SIMA ; SAVE IT
|
JCRY STA SIMA ;
|
||||||
JMP CARRY ; GO SET STATUS
|
JMP CARRY ;
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
DAA CLC ;
|
DAA CLC ;
|
||||||
PHP ;PRE3ERVE STATUS |
|
PHP ;
|
||||||
TYA ;GET SOURCE DATA
|
TYA ;
|
||||||
STA ZERO ; PREP FOR ADD
|
STA ZERO ;
|
||||||
AND #$0F ;LOOK AT LSNI8
|
AND #$0F ;
|
||||||
ADC #$06 ;IF *0A WILL CAUSE AUX CRY
|
ADC #$06 ;
|
||||||
ORA PSW ;OR I F AC I S ALREADY SET
|
ORA PSW ;
|
||||||
AND #$10 ; EITHER SET?
|
AND #$10 ;
|
||||||
BEQ NOSIX ;NO, DON T ADJUST LSNIB
|
BEQ NOSIX ;
|
||||||
LDA #$06 ; YES# ADJUST IT
|
LDA #$06 ;
|
||||||
NOSIX TAY ;
|
NOSIX TAY ;
|
||||||
ADC ZERO ; G E T SOURCE
|
ADC ZERO ;
|
||||||
BCS SXTY ;
|
BCS SXTY ;
|
||||||
ADC #$60 ;113 MSNIB NOW > A0T IIF SO* CARRY IS SET
|
ADC #$60 ;
|
||||||
ROL A ;G E T CARRY
|
ROL A ;
|
||||||
ORA PSW ;OR WITH 8080 CARRY
|
ORA PSW ;
|
||||||
LSR A ;I S EITHER SETT
|
LSR A ;
|
||||||
BCC DA ;NO# DON'T ADJUST MSNIB l
|
BCC DA ;
|
||||||
SXTY TYA ;YES* ADJUST MSN!B I
|
SXTY TYA ;
|
||||||
ADC #$5F ;(5F + CARRY = 60)
|
ADC #$5F ;
|
||||||
TAY ;
|
TAY ;
|
||||||
DA LDX #$00 ;DESTINATION IS A
|
DA LDX #$00 ;
|
||||||
PLP ;RESTQRE STATUS
|
PLP ;
|
||||||
ADCRY JSR ADDR ;
|
ADCRY JSR ADDR ;
|
||||||
JSR CARRY ;
|
JSR CARRY ;
|
||||||
|
|
||||||
|
|
||||||
STATUS2
|
STATUS2
|
||||||
TAY ; SAVE RESULT
|
TAY ;
|
||||||
ROL PSW ; CLEAR P3W SIGN BIT
|
ROL PSW ;
|
||||||
ASL A ; PUT NEW SIGN IN CARRY
|
ASL A ;
|
||||||
STA FLAG ; C L E A R L S B OF F L A G
|
STA FLAG ;
|
||||||
LDA PSW ; PUT NEW SIGN IN P3N
|
LDA PSW ;
|
||||||
ROR A ;
|
ROR A ;
|
||||||
SGN ORA #$46 ; PRESET Z*P 8 PRESET
|
SGN ORA #$46 ;
|
||||||
TAX ; 3AVE IN X
|
TAX ;
|
||||||
TYA ; RECOVER WORD
|
TYA ;
|
||||||
BEQ DONE ; I F ZERO*ALL DONE
|
BEQ DONE ;
|
||||||
FLIP INC FLAG ; IFLIP FLAG |
|
FLIP INC FLAG ;
|
||||||
PAR LSR A ; TEST EACH BIT I
|
PAR LSR A ;
|
||||||
BEQ ALL2 ; NO MORE BITS
|
BEQ ALL2 ;
|
||||||
BCC PAR ;
|
BCC PAR ;
|
||||||
ALL2 BCS FLIP ;
|
ALL2 BCS FLIP ;
|
||||||
LSR FLAG ; TEST FLAG
|
LSR FLAG ;
|
||||||
TXA ; RECOVER P3w
|
TXA ;
|
||||||
AND #$BF ; CLEAR Z
|
AND #$BF ;
|
||||||
BCS REC ; PARITY EVENT
|
BCS REC ;
|
||||||
AND #$FB ; N0* CLEAR P
|
AND #$FB ;
|
||||||
REC TAX ; BACK TO X
|
REC TAX ;
|
||||||
DONE STX PSW ; STORE AS PSW
|
DONE STX PSW ;
|
||||||
RTS ;
|
RTS ;
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
@ -1165,6 +1172,8 @@ DEC LDY #$0C ; point to DEC data
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
MEMRP TYA ; grab source pointer offset
|
MEMRP TYA ; grab source pointer offset
|
||||||
|
|
||||||
|
LDY #$80
|
||||||
|
STY HIPCOFFSET
|
||||||
|
|
||||||
LDA DESTDA+1
|
LDA DESTDA+1
|
||||||
|
|
||||||
@ -1176,7 +1185,7 @@ MEMRP TYA ; grab source pointer offset
|
|||||||
BCS MRLP1
|
BCS MRLP1
|
||||||
AUXMEMRP STA RAMRDON ; read from AUX
|
AUXMEMRP STA RAMRDON ; read from AUX
|
||||||
SEC
|
SEC
|
||||||
SBC #$80
|
SBC HIPCOFFSET
|
||||||
STA DESTDA+1
|
STA DESTDA+1
|
||||||
|
|
||||||
MRLP1 LDY #$01 ; move data in memory
|
MRLP1 LDY #$01 ; move data in memory
|
||||||
@ -1192,9 +1201,11 @@ MRLP LDA (DESTDA),Y ; get next byte
|
|||||||
STA RAMRDOFF ; read from MAIN
|
STA RAMRDOFF ; read from MAIN
|
||||||
LDA DESTDA+1
|
LDA DESTDA+1
|
||||||
CLC
|
CLC
|
||||||
ADC #$80
|
ADC HIPCOFFSET
|
||||||
STA DESTDA+1
|
STA DESTDA+1
|
||||||
|
|
||||||
|
LDA #$80
|
||||||
|
STA HIPCOFFSET ; set offset
|
||||||
|
|
||||||
|
|
||||||
MRLPRTS RTS ;
|
MRLPRTS RTS ;
|
||||||
@ -2649,11 +2660,11 @@ CHOOSER2 ASC " 1 FOR KILL-THE-BIT",00
|
|||||||
CHOOSER3 ASC " 2 FOR 4K BASIC",00
|
CHOOSER3 ASC " 2 FOR 4K BASIC",00
|
||||||
CHOOSER4 ASC " 3 FOR 8K BASIC",00
|
CHOOSER4 ASC " 3 FOR 8K BASIC",00
|
||||||
CHOOSER5 ASC " 4 FOR MICROCHESS",00
|
CHOOSER5 ASC " 4 FOR MICROCHESS",00
|
||||||
CHOOSER6 ASC " 5 FOR DBL ROM AT $00",00
|
CHOOSER6 ASC " 5 FOR DISK BOOTLOADER",00
|
||||||
CHOOSER7 ASC " 0 FOR NO PROGRAM",00
|
CHOOSER7 ASC " 0 FOR NO PROGRAM",00
|
||||||
|
|
||||||
CHOOSERTBL DB >CHOOSER1,<CHOOSER1,>CHOOSER2,<CHOOSER2,>CHOOSER3,<CHOOSER3
|
CHOOSERTBL DB >CHOOSER1,<CHOOSER1,>CHOOSER2,<CHOOSER2,>CHOOSER3,<CHOOSER3
|
||||||
DB >CHOOSER4,<CHOOSER4,>CHOOSER5,<CHOOSER5,>CHOOSER6,<CHOOSER6
|
DB >CHOOSER4,<CHOOSER4,>CHOOSER5,<CHOOSER5,>CHOOSER6,<CHOOSER6,>CHOOSER7,<CHOOSER7
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -2665,7 +2676,7 @@ CHOOSERLOOP LDY CHOOSERTBL,X
|
|||||||
JSR STROUT ;Y=String ptr high, A=String ptr low
|
JSR STROUT ;Y=String ptr high, A=String ptr low
|
||||||
JSR CROUT
|
JSR CROUT
|
||||||
INX
|
INX
|
||||||
CPX #$0C
|
CPX #$0E
|
||||||
BNE CHOOSERLOOP
|
BNE CHOOSERLOOP
|
||||||
|
|
||||||
CHOOSERWAITLOOP LDX #$00
|
CHOOSERWAITLOOP LDX #$00
|
||||||
@ -3004,7 +3015,7 @@ DSKREADLOC DB <BASICBUFFER,>BASICBUFFER ; write to end of sim8800
|
|||||||
DSKTRANSFERRED DB $00,$00
|
DSKTRANSFERRED DB $00,$00
|
||||||
|
|
||||||
DSKFILE DB ENDDSKNAME-DSKNAME ;Length of name
|
DSKFILE DB ENDDSKNAME-DSKNAME ;Length of name
|
||||||
DSKNAME ASC '/SIM8800/ZORK.DSK' ;followed by the name
|
DSKNAME ASC '/SIM8800/VIRTUAL.DSK' ;followed by the name
|
||||||
ENDDSKNAME EQU *
|
ENDDSKNAME EQU *
|
||||||
|
|
||||||
WRITEDSK JSR MLI
|
WRITEDSK JSR MLI
|
||||||
|
Loading…
Reference in New Issue
Block a user