Analyst/A128XGB.1023.txt
2020-12-21 19:58:06 -06:00

1 line
8.3 KiB
Plaintext

* ANALYST 128XG PART B *
* LAST EDIT: 01/19/19
*
* CALL HERE TO INIT GRAPHICS DRIVER
* WITH Y = $20 FOR HGR OR $40 FOR HGR2
*
INITGR LDA HCOUTLOC+1
STA CSWH
LDA HCOUTLOC
STA CSWL
STA HIRES
STA MIXCLR
STA HISCR
STZ CH HOME CURSOR BUT DONT CLS
STZ CV
TYA
CMP #$40
BEQ H6026
STA LOWSCR
H6026 STA GBASE
STA TXTCLR
HCOUT PHA
CMP #$88 BACKSPACE
BNE CHKL
DEC CH
BPL CHKL
LDA #$8D DO CR
CHKL CMP #$8C CTRL-L
BNE HCOUTZ
HCLS LDY #$00 CLEAR SCREEN
STY BAS2L
LDA GBASE
STA BAS2H
H6050 TYA
H6058 STA (BAS2L),Y
INY
BNE H6058
INC BAS2H
LDA BAS2H
SEC
SBC GBASE
CMP #$20
BNE H6050
STY CH Y = 0
STY CV
CLC
BCC H60DC
HCOUTZ CMP #$8D
BEQ HCROUT
CMP #$A0
BCC H60EE IGNORE CTRL CHARS
LDA CV
LSR A
AND #$03
ORA GBASE
STA BAS2H
LDA CV
ROR A
PHP
ASL A
AND #$18
STA BAS2L
ASL A
ASL A
ORA BAS2L
ASL A
PLP
ROR A
CLC
ADC CH
STA BAS2L
PLA
AND #$7F MASK
SEC
SBC #$20 CONVERT FOR FONT TABLE
PHA
LDA FONTLOC+1
LSR A
LSR A
LSR A
STA BASH
PLA
PHA
ROL A
ROL BASH
ROL A
ROL BASH
ROL A
ROL BASH
AND #$F8
STA BASL
LDY #$00
H60AF LDA (BASL),Y
PHY
LDY #$00
PHA
TYA
STA (BAS2L),Y
PLA
EOR (BAS2L),Y
STA (BAS2L),Y
PLY
LDA BAS2H
CLC
ADC #$04
STA BAS2H
INY
CPY #$08
BNE H60AF
INC CH
LDA CH
CMP WNDWDTH
H60DC BCC H60EE
HCROUT LDA #0
STA CH
INC CV
LDA CV
CMP #24 IS IT BELOW BOTTOM OF SCREEN?
BCC H60EE BRANCH IF NOT, OTHERWISE CLEAR SCREEN
JMP HCLS AND MOVE TO TOP INSTEAD OF SCROLLING
H60EE PLA
RTS
*
* #1020 AUXLOAD MOVED HERE AND MADE RELOCATEABLE
*
AUXV STZ MA1 F(CTRL-X) MOVE ANALYST TO AUX MEMORY
STZ MA4 PAGE ALIGNED LOW = 0
LDA STARTLOC+1 PAGE# OF START
STA MA1+1
STA MA4+1
STZ MA2 PAGE ALIGNED LOW = 0
LDA ENDLOC+1
STA MA2+1
LDA #$03
STA INITBL+43
LDA #$05
STA INITBL+46
JSR INITXQTS
LDA #$60
STA AUXV DISABLE FUTURE MOVES TO AUXMEM
LDA #$D8 'X'
STA BANKORG
SEC
JSR AUXMOVE A1.A2 TO A4
LDX #5
AUXLD2 LDA INITBL4,X
STA XQT,X
DEX
BPL AUXLD2
STZ START DESTROY OLD ANALYST ID
STA INHPAGE2 #1008 SO CTRL-X WORKS
JMP XQT
LST ON
INITBL4 JSR XQTS+36
JMP TXTMON
SKP 1
*** PROGRAM DATA AREA ***
SKP 1
*
* CHAR1 MARKS START OF PROGRAM DATA AREA #1020
*
CHAR1 DFB 172,169,172,163,168,164
CHAR2 DFB 217,0,216,164,164,0
LST ON
HEREL EQU >*
DS $100-HEREL
*
* ASCII.SET FROM HRCG TOOLKIT
* MUST BE DIVISIBLE BY $800
*
FONTADR DB $00,$00,$00,$00
* LST OFF
DB $00,$00,$00,$00
DB $08,$08,$08,$08
DB $08,$00,$08,$00
DB $14,$14,$14,$00
DB $00,$00,$00,$00
DB $28,$94,$7E,$14
DB $BF,$8A,$0A,$00
DB $08,$3C,$0A,$1C
DB $28,$1E,$08,$00
DB $06,$26,$10,$08
DB $04,$32,$30,$00
DB $04,$0A,$0A,$04
DB $2A,$12,$2C,$00
DB $08,$08,$08,$00
DB $00,$00,$00,$00
DB $08,$04,$02,$02
DB $02,$04,$08,$00
DB $08,$10,$20,$20
DB $20,$10,$08,$00
DB $08,$2A,$1C,$08
DB $1C,$2A,$08,$00
DB $00,$08,$08,$3E
DB $08,$08,$00,$00
DB $00,$00,$00,$00
DB $00,$8C,$88,$84
DB $00,$00,$00,$3E
DB $00,$00,$00,$00
DB $00,$00,$00,$00
DB $00,$00,$8C,$00
DB $00,$20,$10,$08
DB $04,$02,$00,$00
DB $8C,$92,$22,$22
DB $22,$92,$8C,$00
DB $08,$0C,$08,$08
DB $08,$08,$1C,$00
DB $1C,$22,$20,$10
DB $84,$82,$3E,$00
DB $3E,$90,$10,$18
DB $20,$22,$1C,$00
DB $10,$18,$14,$12
DB $3E,$10,$10,$00
DB $3E,$02,$1E,$20
DB $20,$22,$1C,$00
DB $18,$04,$82,$1E
DB $22,$22,$1C,$00
DB $3E,$90,$10,$88
DB $08,$84,$04,$00
DB $1C,$22,$22,$1C
DB $22,$22,$1C,$00
DB $1C,$22,$22,$3C
DB $90,$10,$0C,$00
DB $00,$00,$8C,$00
DB $00,$8C,$00,$00
DB $00,$00,$8C,$00
DB $00,$8C,$88,$84
DB $10,$08,$04,$02
DB $04,$08,$10,$00
DB $00,$00,$3E,$00
DB $3E,$00,$00,$00
DB $04,$08,$10,$20
DB $10,$08,$04,$00
DB $1C,$22,$90,$88
DB $08,$00,$08,$00
DB $1C,$22,$2A,$3A
DB $1A,$02,$3C,$00
DB $08,$8C,$14,$92
DB $3E,$22,$22,$00
DB $1E,$22,$22,$1E
DB $22,$22,$1E,$00
DB $1C,$22,$02,$02
DB $02,$22,$1C,$00
DB $1E,$22,$22,$22
DB $22,$22,$1E,$00
DB $3E,$02,$02,$1E
DB $02,$02,$3E,$00
DB $3E,$02,$02,$1E
DB $02,$02,$02,$00
DB $3C,$02,$02,$02
DB $32,$22,$3C,$00
DB $22,$22,$22,$3E
DB $22,$22,$22,$00
DB $1C,$08,$08,$08
DB $08,$08,$1C,$00
DB $20,$20,$20,$20
DB $20,$22,$1C,$00
DB $22,$12,$0A,$06
DB $0A,$12,$22,$00
DB $02,$02,$02,$02
DB $02,$02,$3E,$00
DB $22,$36,$2A,$2A
DB $22,$22,$22,$00
DB $22,$22,$26,$2A
DB $32,$22,$22,$00
DB $1C,$22,$22,$22
DB $22,$22,$1C,$00
DB $1E,$22,$22,$1E
DB $02,$02,$02,$00
DB $1C,$22,$22,$22
DB $2A,$12,$2C,$00
DB $1E,$22,$22,$1E
DB $0A,$12,$22,$00
DB $1C,$22,$02,$1C
DB $20,$22,$1C,$00
DB $3E,$08,$08,$08
DB $08,$08,$08,$00
DB $22,$22,$22,$22
DB $22,$22,$1C,$00
DB $22,$22,$22,$92
DB $14,$8C,$08,$00
DB $22,$22,$22,$2A
DB $2A,$36,$22,$00
DB $22,$92,$14,$08
DB $14,$92,$22,$00
DB $22,$92,$14,$08
DB $08,$08,$08,$00
DB $3E,$90,$10,$08
DB $04,$82,$3E,$00
DB $3E,$06,$06,$06
DB $06,$06,$3E,$00
DB $00,$02,$04,$08
DB $10,$20,$00,$00
DB $3E,$30,$30,$30
DB $30,$30,$3E,$00
DB $00,$00,$08,$14
DB $22,$00,$00,$00
DB $00,$00,$00,$00
DB $00,$00,$00,$7F
*
* #1012 DELETED LAST $100 OF FONT TABLE
* BECAUSE ASCII CHARS $60-7F NOT USED
*
MNEML DFB 28,138
DFB 28,35,93,139,27,161,157,138
DFB 29,35,157,139,29,161,28,41
DFB 25,174,105,168,25,35,36,83
DFB 27,35,36,83,25,161,173,26
DFB 165,91,165,172,139,138,174,174
DFB 168,173,41,138,124,139,21,156
DFB 109,156,165,105,41,83,132,19
DFB 52,17,165,105,35,160
MNEMR DFB 216,98
DFB 90,72,38,98,148,136,84,68
DFB 200,84,104,68,232,148,196,180
DFB 8,132,116,180,40,110,116,244
DFB 204,74,114,242,164,138,6,170
DFB 118,162,116,198,116,116,68,104
DFB 178,50,178,114,34,114,26,26
DFB 38,38,114,114,136,200,196,202
DFB 38,72,68,68,162,200
FMT1 DFB 240,34,0,51,93,130,0,147
DFB 243,34,0,51,93,136,0,153
DFB 240,47,0,51,93,143,0,159
DFB 240,34,0,59,93,136,0,148
DFB 253,34,0,51,93,200,0,147
DFB 17,34,0,51,93,200,0,169
DFB 241,34,0,51,93,143,0,159
DFB 241,34,0,51,93,143,0,159
DFB 38,49,135,154
REPL65C DFB 17,49,81,113,145,177
DFB 209,241,194,226,52,164,172,196
DFB 228,92,92,92,92,124,60,52
DFB 124,160,160,160,160,192,192
DFB 224,224
RTBL ASC "AXY"
TITLE DFB $8D
ASC "ANALYST 128XG"
DFB $8D
ASC "BUILD = 1023"
DFB $8D
ASC "ORG = "
BANKORG ASC "$"
DFB $00
NOT65C DFB $8D
ASC "65C02 REQ'D"
DFB $8D
DOSTR ASC "3F5<3D0G"
DFB $8D
FMT2 DFB 0,33,129,130,90,73,89,77
DFB 145,146,134,74,133,157
CHAR3 ASC "CZIDB-VN"
OPC65C DFB 18,50,82,114
DFB 146,178,210,242,58,26,137,28
DFB 20,122,90,156,100,158,116,124
DFB 60,52
DFB 76,164,172,180,188,196,204,228
DFB 236
CHRTBL DFB 198,152,249,177,241,3
DFB 236,6,149,5
DFB 0,147,2,167,153
DFB 155,239,233,1,191
DFB 168,237,159,235,197
SUBTBL DW BL1-1 F(CR) MUST BE 1ST IN TBL
DW HELP-1 F(?) LIST PC'S TRACED
DW SETVID-1 F(@) SWITCH 40/80 COL
DW AUXV-1 F(CTRL-X) MOVE TO AUX
DW AUXRW-1 F(X) MAIN/AUX $200-BFFF
DW EXECJSR-1 F(J) EXECUTE JSR
DW STEP-1 F(S) STEP
DW MOVE-1 F(M) MOVE
DW LT-1 F(<) COPY A2 TO A4 & A5
DW LIST-1 F(L) LIST DISASSEMBLY
DW GO-1 F(G) GO
DW SETMODE-1 F(:) STORE
DW SETREG-1 F(I) SET INTERNAL PC/REG
DW SETMODE-1 F(.) XAM
DW BLANK-1 F( ) HANDLE SPACES
DW ASC-1 F(") DUMP IN ASCII
DW PRTITLE-1 F(V) PRINT TITLE
DW SETPRNT-1 F(P) TO PRINTER
DW LOAD-1 F(H) LOAD FOR HSF
DW FIND-1 F(CTRL-F) HEX SEQ. FIND
DW SETDOS-1 F(/) SET DOS CALL JSR #.
DW TRACE-1 F(T) TRACE
DW EXDOS-1 F(&) EXIT TO DOS
DW RELOC-1 F(R) RELOCATOR
DW HOME-1 F(CTRL-L) CLEAR SCREEN
OUTVECT DW VIDOUT
HCOUTLOC DW HCOUT
FONTLOC DW FONTADR
STARTLOC DW START
ENDLOC DW PGMEND MARKER FOR END OF CODE TO RELOC
SKP 1
* DYNAMIC PROGRAM AREA *
SKP 1
GBASE DFB $40 $20 = HGR $40 = HGR2
CSWL DS 1 ADDR. OF OUTPUT ROUTINE
CSWH DS 1
TFLG DS 1 <>0 = CANCEL COUT FOR TRC
JFLG DS 1 SET TO ALLOW F(J)
DOSCALL DW MLI ROUTINE TO JSR IMMED.
ERRFLG DS 1 SET FOR BAD OPCODE
ASFLAG DS 1 #1022 NZ WHEN APPLESOFT NEWSTT ENCOUNTERED
PCREG DS 2,0
ACC DFB 0 DON'T CHANGE ORDER
XREG DFB 0 OF ACC TO SPNT
YREG DFB 0
STATUS DFB 0
SPNT DFB $FF
SREF DFB $FF STACK REF SET BY TXS OPC
LMNEM DS 1
RMNEM DS 1
LENGTH DS 1
FORMAT DS 1
MODE DS 1
FLG8 DS 1 FF = 80 COL, 0 = 40 COL
WNDWDTH DS 1
PROMPT DS 1
CH DS 1
CV DFB 0
DSPTOP DS 1 TOP OF DISPLAY FOR STEP
YSAV DS 1
YSAV1 DS 1
PCPNT DFB 0 INDEX TO PCBUF
BRKADDR DS 2,255 BREAK FOR STEP,TRACE,LIST
TEMP1 DS 1 FOR INSTDSP AND STEP.
TEMP2 DS 1 FOR STEP.
TEMP3 DS 1 FOR STEP.
PCFLG DS 1 PRNTPC ON/OFF FOR TRACE
COUNTER DS 1 FOR TRACE
ZBUF DS $100-PCL PAGE ZERO STORAGE BUFFER
LST ON
PAGEFIL EQU >*
DS $FF-PAGEFIL
ROMFLG DFB 1 1 = TRACE JSR ROM $D000-FFFF
* LST OFF
STACK DS $100,0 MUST BE ON PAGE BOUNDARY
PGMEND EQU * #1020 PAGE ALIGNED END OF MOVE
* LST NOASYM