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...........
|
||
|