357 lines
9.7 KiB
Erlang
357 lines
9.7 KiB
Erlang
/ \
|
|
< INSPECTOR DOCUMENTATION >
|
|
\__________________________________/
|
|
|
|
THE INSPECTOR IS A UTILITY WHICH ENABLES ONE TO INSPECT EITHER MEMORY IN THE
|
|
APPLE OR ON A DISK. THE DISK BEING EXAMINED CAN BE EITHER NORMAL OR ABNORMAL
|
|
DOS. IT COMES IN 2 FORMS: AND EPROM WHICH IS PLUGGED INTO AN INTEGER CARD, OR
|
|
AS A PROGRAM WHICH IS LOADED INTO THE LANGUAGE CARD.
|
|
|
|
INSTALLATION OF EPROM:
|
|
----------------------
|
|
I AM NO GOING TO GET INTO THE EXACT DETAILS OF PLUGGING IN A CHIP BUT
|
|
BASICALLY, ON THE APPLE II (NOT +!) THE INSPECTOR REPLACES THE D8 ROM ON THE
|
|
MOTHERBOARD. ON THE II+ WITH INTEGER CARD, THE CHIP REPLACES THE D8 ON THE
|
|
INTEGER CARD. MAKE SURE THAT THE CHIP IS ORIENTED CORRECTLY, WITH THE NOTCH
|
|
FORWARD (OR UP, AS ON THE INTEGER CARD)
|
|
|
|
WITH THE DISK VERSION, BOOT A MASTER. INSERT INSPECTOR DISK AND TYPE "RUN
|
|
INSPECTOR" THEN YOU WILL BE PROMPTED WITH:
|
|
|
|
DO YOU WISH TO MODIFY
|
|
|
|
1) DOS 3.3 BASICS
|
|
OR
|
|
2) DOS 3.3 SYSTEM MASTER
|
|
|
|
DEPENDING ON WHAT DISK YOU ARE MODIFYING, INSERT IT AND HIT <RETURN> THAT'S ALL
|
|
THERE IS TO IT.
|
|
|
|
ACCESSING THE INSPECTOR:
|
|
------------------------
|
|
|
|
|
|
STANDARD APPLE II:
|
|
|
|
FROM TO TYPE
|
|
--------------------------------
|
|
INTEGER INSPEC. CALL -10240
|
|
MONITOR INSPEC. C081 N D800G
|
|
APPLESOFT INSPEC. CALL-151 C081 N D800G
|
|
APPLE II+ WITH INT CARD OR LANG CARD
|
|
|
|
FROM TO TYPE
|
|
--------------------------------
|
|
INTEGER INSPEC. CALL -10240
|
|
MONITOR INSPEC. C080 N D800G
|
|
APPLESOFT INSPEC. CALL-151 C080 N D800G
|
|
|
|
ONCE THE INSPECTOR IS INITIALIZED, YOU
|
|
CAN GO IT WITH THE FOLLOWING:
|
|
|
|
FROM TO TYPE
|
|
--------------------------------
|
|
INTEGER INSPEC. CALL -10240
|
|
APPLESOFT INSPEC. &
|
|
MONITOR INSPEC. <CTRL-Y>
|
|
|
|
|
|
THE DISPLAY:
|
|
------------
|
|
|
|
WHEN THE INSPECTOR IS ACCESSED, THE
|
|
FOLLOWING WILL BE DISPLAYED:
|
|
|
|
TRACK 00 SECTOR 0 SLOT 6 DRIVE 1
|
|
BUFFER 0800 DOS 16 VER ???
|
|
=======================================
|
|
AND THEN A BLACK SCREEN....
|
|
|
|
ALONG THE TOP OF THE SCREEN, HEX DIGITS 0-F ARE DISPLAYED ALONG WITH THE SAME
|
|
DIGITS ON THE LEFT SIDE OF THE SCREEN. TO FIND A SPECFIC BYTE, JUST ADD THE
|
|
DIGTS TOGETHER. FOR INSTANCE, TO FIND BYTE 7D, LOOK IN ROW 7 AND COLUMND D.
|
|
|
|
DISK COMMANDS:
|
|
--------------
|
|
|
|
V: DOS VERSION
|
|
SWITCHES BETWEEN 13 AND 16 SECTOR DOS
|
|
|
|
P: PERIPHERAL SLOT
|
|
SELECTS THGE SLOT OF THE DISK CONTROLLER CARD
|
|
|
|
D: DRIVE NUMBER
|
|
TOGGLES THE DRIVE TO BE ACCESSED
|
|
|
|
T: SELECTS THE TRACK THAT YOU WANT
|
|
TO READ OR WRITE
|
|
|
|
S: SELECTS THE SECTOR THAT YOU WANT TO
|
|
READ OR WRITE
|
|
|
|
NOTE: TRACK, SECTOR, AND BUFFER
|
|
INFORMATION ARE IN HEX
|
|
|
|
R: READ
|
|
CAUSES THE TRACK/SECTOR WHICH YOU HAVE DESIGNATED TO BE READ (ERRORS
|
|
ENCOUNTERED WILL BE DISPLAYED IN THE UPPER RIGHT HAND PORTION OF THE SCREEN)
|
|
|
|
;: SCAN FORWARD
|
|
CAUSES THE NEXT SECTOR TO BE READ INTO THE PRESENT BUFFER LOCATION
|
|
|
|
-: SCAN BACKWARD
|
|
CAUSES THE INSPECTOR TO SCAN BACK ONE SECTOR AND READ INTO THE SAME BUFFER
|
|
LOCATINO
|
|
|
|
A: ASCII/HEX
|
|
TOGGLES BETWEEN ASCII AND HEXADECIMAL DISPLAY
|
|
|
|
X: EXCHANGE
|
|
EXCHANGES FLASHING AND INVERSE CHARACTERS WITH NORMAL ASCII CHARACTERS.
|
|
|
|
E: EDIT
|
|
HEX EDITING:
|
|
1) TYPE HEX NUMBER OF BYTE TO EDIT
|
|
2) HIT <SPACE> TO DISPLAY CURRENT VALUE
|
|
3) TYPE IN NEW VALUE
|
|
4) HIT <RETURN> TO ENTER VALUE
|
|
5) IF YOU WANT TO CONTINUE EDITING, HIT <SPACE> INSTEAD OF <RETURN>
|
|
ASCII EDITING:
|
|
1) ENTER BYTE TO CHANGE
|
|
2) TYPE:
|
|
L FOR LOWERCASE
|
|
N NEGATIVE ASCII
|
|
<SPACE> NORMAL
|
|
NEGATOVE ASCII DATA IS ASCII WITH THE MOST SIGNIOFICANT BYTE OFF (IT WILL BE
|
|
FLASHING)
|
|
|
|
3) ENTER VALUE TO REPLACE THE BYTE
|
|
4) HIT <RETURN> TO ENTER IT AND EXIT
|
|
FROM EDITING MODE
|
|
|
|
CTRL-W: WRITE
|
|
CAUSES THE CURRENT VALUES IN THE BUFFER TO BE WRITTEN TO THE TRACK/ SECTOR
|
|
SPECIFIED
|
|
|
|
B: BUFFER LOCATION
|
|
ALLOWS USER TO SELECT BUFFER LOCATION WHIHC IF USED. ONLY THE FIRST 2 DIGITS
|
|
OF THE BUFFER CAN BE CHANGED. (NOTE: DO NOT USE PAGE ZERO FOR THE BUFFER!)
|
|
|
|
CTRL-I: INCREMENTS BUFFER AND SECTOR
|
|
AFTER YOU HAVE READ A TRACK/SECTOR INTO THE BUFFER, HITTING <CTRL:I> WILL
|
|
INCREMENT BOTH BUFFER AND SECTOR SO THAT SEQUENTIAL SECTORS CAN BE VIEWED
|
|
WITHOUT CONSTANT READING OF THE DISK
|
|
|
|
M: MAP
|
|
DISPLAYS A MAP OF USED/UN-USED SECTORS OF A DISK. "#" MEANS USED AND "-" MEAN
|
|
BLANK
|
|
|
|
N: NIBBLE READ
|
|
1) SELECT TRACK TO READ WITH "T" COMMAND
|
|
2) PRESS "N" TO NIBBLE READ
|
|
3) THE TRACK WILL BE READ AND THEN A HI-RES IMAGE WILL BE DISPLAYED. THE USE
|
|
OF THIS DISPLAY CAN IMPLY HOW MUCHG DATA IS ON THE TRACK. FF BYTES (SELF-SYNC
|
|
NIBBLES) APPEAR AS WHITE LINES
|
|
4) HIT ANY KEY TO ENTER NIBBLE DISPLAY MODE
|
|
5) NIBBLE DISPLAY MODE IS A DISPLAY
|
|
OF ALL THE BYTES ON THE TRACK.
|
|
<- SCROLL BACK
|
|
-> SCROLL FORWARD
|
|
^ READ NEXT TRACK
|
|
|
|
MEMORY COMMANDS:
|
|
----------------
|
|
|
|
H: HEX/ASCII DUMP
|
|
1) ENTER BUFFER TO START AT
|
|
2) HIT "H"
|
|
3) THE HEX AND ASCII VALUES WILL
|
|
START SCROLLING DOWN
|
|
Q: TOGGLES FAST/SLOW DISPLAY
|
|
<- BACKS UP ONE PAGE
|
|
<RETURN> EXITS FROM THIS MODE
|
|
|
|
F: FIND
|
|
THIS ALLOWS A SEARCH OF ALL MEMORY
|
|
LOCATIONS FOR A STRING.
|
|
1) SELECT BUFFER TO PAGE ZERO ($0000)
|
|
NOTE: THIS IS THE ONLY TIME WHEN
|
|
YOU WILL DO THIS
|
|
2) PRESS A TO SELECT ASCII/HEX
|
|
3) TYPE "E" FRO EDIT MODE
|
|
4) IN BYTE $00, ENTER LENGTH OF
|
|
STRING
|
|
5) IN BYTES $01 AND ON, ENTER THE
|
|
APPROPRIPATE BYTES FOR THE STRING
|
|
WHICH YOU ARE SEARCHING FOR
|
|
6) HIT "F" TO START ROUTINE
|
|
|
|
NOTE:MAXIMUM LENGTH FOR STRINGS IS
|
|
ASCII: 9 BYTES
|
|
HEX: $0F BYTES (15)
|
|
|
|
L: LOCATE
|
|
FINDS HEX AND ASCII STRINGS ON A DISK
|
|
1) PRESS "B" AND SET TO PAGE ZERO
|
|
($0000)
|
|
2) SELECT HEX/ASCII
|
|
3) ENTER "E" FOR EDIT MORE
|
|
4) ENTER LENGTH OF STRING IN BYTE
|
|
$00
|
|
5) ENTER STRING IN BYTE(S) $01 AND ON
|
|
6) PRESS "L" TO SEARCH DISK
|
|
7) WHEN A SECTOR IS FOUND, A BEEP
|
|
WILL BE SOUNDED
|
|
|
|
OTHER COMMANDS:
|
|
---------------
|
|
|
|
CTRL-Z: USER COMMAND
|
|
WHEN <CTRL-Z> IS PRESSED, A JUMP TO
|
|
LOCATION $0300 IS EXECUTED
|
|
|
|
CTRL-C: RETURN TO BASIC
|
|
THIS IS FAIRLY SELF EXPLANATORY
|
|
|
|
|
|
TIPS AND OTHER STUFF:
|
|
---------------------
|
|
|
|
FINDING RWTS ON A FOREIGN DOS DISK
|
|
(THIS CAN BE USEFUL!)
|
|
1) SET BUFFER TO $0000
|
|
2) CHANGE BYTES $00-$04 TO
|
|
04 84 48 85 49 (THIS IS THE START
|
|
LOCATION OF ALMOST ALL RWTS'S)
|
|
3) PRESS "F" TO FIND THIS STRING
|
|
4) IF FOUND IN A DIFFERENT THAN USUAL
|
|
PLACE, THE INSPECTOR CAN BE MADE
|
|
TO THINK IT IS NORMAL BY CHANGING
|
|
ADDRESS #3D9 TO POINT TO DOS
|
|
5) CHANGE BUFFER TO $0300
|
|
6) CHANGE BYTE $3D9 TO INDICATE WHERE
|
|
DOS IS
|
|
|
|
THIS FEATURE IS MAINLY USABLE BE THOSE OF YOU WHO HAVE THE ROM VERSION OF THE
|
|
INSPECTOR. IF YOU HAVE THE DISK VERSION, THE IS A GOOD CHANCE THAT IT WILL BE
|
|
ERASED FROM THE LANGUAGE CARD IN THE EVEN OF A BOOT.
|
|
|
|
USING A PRINTER:
|
|
ENTER THE FOLLOWING AT LOCATION
|
|
$300
|
|
|
|
300:A9 01 20 95 FE 20 8E FD A9 FF 20 A8 FC A2 00 8A
|
|
310:20 C1 FB A5 28 85 10 A5 29 85 11 A0 00 B1 10 C9
|
|
320:A0 B0 04 69 40 D0 F8 20 3A 03 C8 C0 28 D0 EE 20
|
|
330:8E FD E8 E0 18 D0 D8 4C 93 FE 48 A9 00 85 24 A9
|
|
340:01 20 5B FB 68 4C ED FD
|
|
|
|
BYTE $301 IS SLOT OF PRINTER
|
|
THIS FUNCTION CAN BE USED WITH
|
|
THE CTRL-Z COMMAND TO GIVE A HARD
|
|
COPY OF DATA
|
|
|
|
SAVING THE ROUTINE TO DISK: THIS CAN BE DONE WITH ANY ROUTINE WHICH IS LOCATED
|
|
IN ONE PAGE ONLY. IT TAKES ADVANTAGE OF THE FACT THAT DOS DOES NOT USE TRACK 2
|
|
SECTOR F. IF YOU ARE USING THAT SECTOR, DO NOT USE THIS ROUTINE!
|
|
|
|
1) SET BUFFER TO $0300 (OR WHATEVER
|
|
YO WANT)
|
|
2) SET TRACK TO 2 AND SECTOR TO F
|
|
3) HIT <CTRL-W>
|
|
|
|
TO LOAD, JUST DO THE SAME THING BUT
|
|
HIT "R" INSTEAD OF <CTRL-W>
|
|
|
|
TURNING PRINTER ON:
|
|
(OR USING PRINTER WITH NIBBLE EDITOR)
|
|
|
|
1) SET BUFFER TO $0300
|
|
2) ENTER THE FOLLOWING IN BYTES
|
|
$00-$05
|
|
A9 01 20 95 FE 60
|
|
^^
|
|
BYTE $01 IS SLOT OF PRINTER
|
|
|
|
NOW, HITTING <CTRL-Z> WILL TURN
|
|
PRINTER ON UNTIL <RESET> IS PRESSED
|
|
|
|
READING HALF TRACKS:
|
|
UNDER NORMAL DOS, THE STEPPER MOTOR ON THE DRIVE IS PULSED TWICE FOR EVERY
|
|
TRACK IT WANTS TO MOVE. HOWEVER, IF YOU FORCE THE MOTOR TO PULSE >ONCE< YOU
|
|
WILL BE AT THE HALF TRACK. WHEN READING HALF TRACKS WITH THE INSPECTOR, ONLY
|
|
THE NIBBLE EDITOR CAN BE USED. THIS IS BECAUSE RWTS DOES SOME CHECKS TO SEE IF
|
|
IT IS READING THE CORRECT TRACK. IMPORTANT: THE INSPECTOR WILL NOT REALIZE
|
|
THAT IT IS DOING HALF TRACKS! THEREFORE, TO READ TRACK $4, YOU MUST SET THE
|
|
INSPECTOR TO READ TRACK $8. TO READ TRACK $10.5, YOU MUST READ TRACK $21.
|
|
HOW TO SET UP
|
|
-------------
|
|
1) USING THE B COMMAND, SET THE
|
|
BUFFER TO $0200
|
|
2) ENTER EDIT MODE WITH E
|
|
3) CHANGE BYTE $D4 FROM $01 TO $00
|
|
|
|
YOU CAN NOW READ HALF TRACKS
|
|
|
|
AVOID RELOADING LANGUAGE CARD:
|
|
THIS IS NOT UNIQUE TO THE INSPECTOR,
|
|
BUT I FELT THAT THERE WAS JUSTIFICATION
|
|
TO INCLUDE IT.
|
|
|
|
ALL YOU HAVE TO DO IS CHANGE BYTE
|
|
$CC ON TRACK $0, SECTOR $9 TO $10.
|
|
|
|
NIBBLE INFO
|
|
-----------
|
|
THIS IS JUST SOME BASIC INFO ON USING
|
|
THE NIBBLE FEATURE ON THE INSPECTOR
|
|
|
|
ON DOS 3.3, 342 NIBBLES REPRESENT
|
|
THE 256 BYTES. EACH TRACK ON A DISK
|
|
IS MADE UP OF 2 FIELDS:
|
|
1) ADDRES FIELD
|
|
[VOLUME,TRACK,SECTOR]
|
|
2) DATA FIELD
|
|
[ACTUAL DATA]
|
|
EACH FIELD HAS A PREFIX AND SUFFIX
|
|
WHICH ARE UNIQUE TO THE DISK. THEY
|
|
ARE AS FOLLOWS:
|
|
|
|
ADDRESS FIELD MARKER:
|
|
D5 AA B5 (13) D5 AA 96 (16)
|
|
VOLUME NUMBER: 2 NIBBLES
|
|
TRACK NUMBER: 2 NIBBLES
|
|
SECTOR NUMBER: 2 NIBBLES
|
|
ADDRESS FIELD CHECKSUM: 2 NIBBLES
|
|
ADDRESS FIELD TRAILER: DE AA
|
|
|
|
DATA FIELD MARKER:D5 AA AD
|
|
DATA NIBBLES............
|
|
DATA FIELD CHECKSUM: 1 NIBBLE
|
|
DATA FIELD TRAILER: DE AA
|
|
|
|
THE 2 NIBBLE COMBINATIONS ARE ENCODED
|
|
WITH THE FOLLOWING TABLE:
|
|
|
|
NIBBLES VALUE
|
|
---------------
|
|
AA AA 00
|
|
AA AB 01
|
|
AA AA 02
|
|
AB AB 03
|
|
AA AE 04
|
|
AA AE 05
|
|
AB AE 06
|
|
AB AF 07
|
|
AE AA 08
|
|
AE AB 09
|
|
AF AA 0A
|
|
AF AB 0B
|
|
AE AE 0C
|
|
AE AF 0D
|
|
AF AE 0E
|
|
AF AF 0F
|
|
|
|
|
|
And so it goes...........
|
|
|