1 line
27 KiB
Plaintext
1 line
27 KiB
Plaintext
|
SBTL
MSB ON
ORG $4000
SKP 1
*********************************
* *
* -< THE ANALYST >- *
* *
* 64K VERSION *
* *
* BUILD #1019 12/17/20 *
* *
*********************************
SKP 1
*** DESCRIPTION ***
SKP 1
; THIS PROGRAM OPERATES INDEPENDENT OF ROM BUT HAS COM-
; MANDS SIMILAR TO THE BUILT IN MONITOR. THE GO AND BREAK
; FUNCTIONS HAVE BEEN GREATLY ENHANCED TO DISPLAY
; STATUS REGISTER FLAGS AND SET A BREAK POINT. THE MINI
; ASSEMBLER HAS BEEN INCLUDED AS WELL AS A HEX SEQUENCE
; FINDER. 65C02 OPCODES ARE ALSO SUPPORTED. ZERO PAGE
; REFS ARE STORED IN A BUFFER WHICH AVOIDS CONFLICT WITH
; THE PROGRAM BEING TRACED. THIS PROGRAM USES THE MIDDLE
; OF THE STACK ($132-1B0). IT ALSO UTILIZES A 4K BANK
; OF THE 16K LANGUAGE CARD TO KEEP A COPY OF ITSELF
; WHICH DOESN'T CONFLICT WITH BASIC OR DOS 3.3.
; NMI INTERRUPTS ARE ALSO SUPPORTED AS WELL AS USE OF A
; SERIAL TERMINAL FOR CONSOLE I/O TO BE INDEPENDENT OF
; SCREEN MEMORY OR GRAPHICS OF THE PROGRAM BEING TRACED.
SKP 1
*** COMMANDS ***
SKP 1
; CTRL-F FIND SPECIFIED HEX SEQUENCE DEFINED BY F(H)
; G GO EXECUTE IN IMMEDIATE MODE
; H LOAD BYTES FOR HSF F(CTRL-F) BY USING H:
; I DISPLAY/SET PC/INTERNAL A,X,Y,P,S REGISTERS
; CTRL-L CLEAR PRESENT SCREEN AND HOME CURSOR
; L LIST DISASSEMBLY OR LOOP IN TRACE MODE.
; M MOVE BLOCK OF MEMORY
; P SEND OUTPUT TO PRINTER
; R RE-ENTER PROGRAM AFTER NMI
; > COPY ANALYST TO LANGUAGE CARD
; V VERIFY TWO BLOCKS OF MEMORY
; " DUMP MEMORY IN ASCII
; & EXIT TO DOS AND RETURN FROM DOS
; ? PRINT ORIGIN ADDRESS & DO INTERNAL CHECKSUM
; @ SET TEXT 40 COL SCREEN OR SERIAL TERMINAL
; < RANGE DELIMITER
; . RANGE DELIMITER
; + 16 BIT ADDITION
; - 16 BIT SUBTRACTION
; : STORE VALUE IN MEMORY
; ! ENTER MINI-ASSEMBLER. <CR> ALONE TO EXIT
SKP 1
*** OPERATING NOTES ***
SKP 1
; INPUT LINE LIMITED TO 38 CHARACTERS. BEEPS ON LAST 4.
SKP 1
; HOME (CTRL-L) ACTS IMMEDIATELY. FOLLOW WITH <CR>.
SKP 1
; TO DISPLAY PC AND INTERNAL REGISTERS TYPE I <CR>.
; TO CHANGE PC AND/OR INTERNAL REGS TYPE 300I:AA XX
; YY PP SS RR <CR>. PC ENTRY BEFORE I OPTIONAL. RR =
; STACK TOP REFERENCE SET BY A TXS INSTRUCTION.
SKP 1
; FOR HEX SEQUENCE FINDER TYPE H:N1 N2 N3... <CR> THEN
; 1000<2000 CTRL-F <CR>. 8 BYTES MAX BECAUSE IN DS 29.
SKP 1
; TO DUMP MEMORY IN ASCII USE 1000.2000" <CR>.
SKP 1
; TO SWITCH TERMINALS TYPE @4 OR @ FOR 40 COL TEXT, @S FOR SERIAL.
; @S SHOULD BE FOLLOWED BY > TO COPY NEW SETTINGS TO LANGUAGE CARD.
SKP 1
; RESET VECTOR $3F2 CAN BE SET MANUALLY TO ORIGIN ADDR.
SKP 1
; DO NOT USE THE PRINTER WHEN THE ANALYST IS LOCATED
; ON THE RAM CARD. THE PRINTER WILL NOT INITIALIZE.
; ALSO RESET WILL NOT RETURN TO THE ANALYST LOCATED
; ON THE RAM CARD.
SKP 1
; TO USE DOS TYPE 3F5<3D0G, THEN USE & TO RE-ENTER.
; WILL NOT WORK FROM INTEGER BASIC !!
SKP 1
* #1008 ADDS LANGUAGE CARD SUPPORT AND REDUCED SIZE FOR NMI BOOT TRACE.
* WHEN FIRST BRUN, ANALYST COPIES ITSELF TO UNUSED 4K BANK OF LC AND
* NMI HANDLER TO MID-STACK. WHEN NMI OCCURS, MEMORY REGIONS ARE
* EXCHANGED TO BRING ANALYST BACK WHILE SAVING THE PROGRAM BEING TRACED.
* R WILL RESTORE THE SAVED REGION AND REGS THEN EXECUTE PCREG REAL-TIME
SKP 1
*** ROM ZERO PAGE EQUATES ***
SKP 1
WNDWDTH EQU $21
MCSWL EQU $36
MCSWH EQU $37
MKSWL EQU $38
MKSWH EQU $39
SKP 1
*** ANALYST EQUATES ***
SKP 1
STKLMT EQU $D0 #1014 TOP OF STACK (IMMEDIATE)
PCL EQU $EF LABEL MARKS PAGE 0
PCH EQU $F0
BASL EQU $F1
BASH EQU $F2 LABEL USED AS IDENTIFIER
ZFLG EQU $F3 1 BYTE ID = $AA
A1L EQU $F4 A1L-A5H MUST BE IN ORDER
A1H EQU $F5 FOR MINI-ASSEMBLER
A2L EQU $F6
A2H EQU $F7
A3L EQU $F8
A3H EQU $F9
A4L EQU $FA
A4H EQU $FB
A5L EQU $FC
A5H EQU $FD
BAS2L EQU $FE
BAS2H EQU $FF LABEL MARKS END OF PAGE 0
STACK EQU $0100
NMIEXEC EQU $0120 #1013 NMI EXECUTES IN STACK
NMIVECT EQU $03FB #1004 HNDL NMI INTERRUPT
SKP 1
*
|