mirror of
https://github.com/dschmenk/VM02.git
synced 2024-05-28 13:41:32 +00:00
93 lines
1.4 KiB
ArmAsm
93 lines
1.4 KiB
ArmAsm
|
.PC02
|
||
|
.DEFINE EQU =
|
||
|
.DEFINE DB .BYTE
|
||
|
.DEFINE DW .WORD
|
||
|
.DEFINE DS .RES
|
||
|
;*
|
||
|
;* LANGUAGE CARD CONTROL
|
||
|
;*
|
||
|
LCBNK2 EQU $C080
|
||
|
ROMIN EQU $C081
|
||
|
;**********************************************************
|
||
|
;*
|
||
|
;* VM ZERO PAGE LOCATIONS
|
||
|
;*
|
||
|
;**********************************************************
|
||
|
ESTKSZ EQU $20
|
||
|
ESTK EQU $C0
|
||
|
ESTKL EQU ESTK
|
||
|
ESTKH EQU ESTK+ESTKSZ/2
|
||
|
FRMP EQU ESTK+ESTKSZ
|
||
|
FRMPL EQU FRMP
|
||
|
FRMPH EQU FRMP+1
|
||
|
TMP EQU $F0
|
||
|
TMPL EQU TMP
|
||
|
TMPH EQU TMP+1
|
||
|
SRC EQU TMP
|
||
|
SRCL EQU SRC
|
||
|
SRCH EQU SRC+1
|
||
|
DST EQU SRC+2
|
||
|
DSTL EQU DST
|
||
|
DSTH EQU DST+1
|
||
|
ESP EQU DST+2
|
||
|
;*
|
||
|
;* PAGE 3 ENTRYPOINTS TO INTERNAL ROUTINES
|
||
|
;*
|
||
|
_INTERP EQU $03D0
|
||
|
LEAVE EQU $03DC
|
||
|
ENTER EQU $03E2
|
||
|
;*
|
||
|
;* CLEAR COMMAND LINE LENGTH BYTE IF CALLED FROM 'BYE'
|
||
|
;*
|
||
|
LDY #$00
|
||
|
LDX #$FE ; LEAVE ROOM FOR COMMAND LINE LENGTH BYTE
|
||
|
TXS
|
||
|
BVS :+
|
||
|
STY $01FF ; CLEAR AUTORUN COMMAND WHEN CALLED FROM 'BYE'
|
||
|
;*
|
||
|
;* MOVE REST OF CMD FROM LANGUAGE CARD
|
||
|
;*
|
||
|
: STY $06
|
||
|
STY $08
|
||
|
LDA #$D2
|
||
|
STA $07
|
||
|
LDA #$11
|
||
|
STA $09
|
||
|
BIT LCBNK2
|
||
|
MVVM: LDA ($06),Y
|
||
|
STA ($08),Y
|
||
|
INY
|
||
|
BNE MVVM
|
||
|
INC $07
|
||
|
INC $09
|
||
|
LDA $07
|
||
|
CMP #$E0
|
||
|
BNE MVVM
|
||
|
;*
|
||
|
;* DEACTIVATE 80 COL CARDS
|
||
|
;*
|
||
|
BIT ROMIN
|
||
|
LDY #4
|
||
|
: LDA DISABLE80,Y
|
||
|
JSR $FDED
|
||
|
DEY
|
||
|
BPL :-
|
||
|
BIT $C054 ; SET TEXT MODE
|
||
|
BIT $C051
|
||
|
BIT $C058
|
||
|
JSR $FC58 ; HOME
|
||
|
|
||
|
;*
|
||
|
;* JUMP TO INTERPRETER
|
||
|
;*
|
||
|
BIT LCBNK2
|
||
|
LDX #$00
|
||
|
LDA #$BF
|
||
|
STX FRMPL
|
||
|
STA FRMPH
|
||
|
LDY #>START
|
||
|
LDA #<START
|
||
|
JMP $D104
|
||
|
DISABLE80: DB 21, 13, '1', 26, 13
|
||
|
.INCLUDE "cmd.s"
|