home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
DISASM
/
REVAS25.LBR
/
MAN3.TZT
/
MAN3.TXT
Wrap
Text File
|
2000-06-30
|
12KB
|
397 lines
Loading REVAS From Cassette
Thσá standarΣá REVA╙á cassettσ i≤á recordeΣá iεá straigh⌠ ì
Tarbel∞á format«á I⌠ start≤ witΦ ß 2╡ seconΣ synπ streaφ tha⌠ yo⌡ ì
caε usσ t∩ adjus⌠ you≥ interface« Followinτ thσ synπ streaφ i≤ 1╡ ì
second≤ oµ carrier¼á anΣ theε thσ firs⌠ loaΣ module« Thσ cassettσ ì
contain≤ │ loaΣ modules╗ thσ firs⌠ modulσ i≤ 1400╚ byte≤ lonτ anΣ ì
i≤ nameΣ REVAS«á Iµ yo⌡ d∩ no⌠ havσ thσ CP═ system¼á thi≤ i≤á thσ ì
onl∙á modulσ oµ interes⌠ t∩ you«á Thσ seconΣ modulσ i≤ 400╚ byte≤ ì
long¼á anΣá i≤ nameΣ REVAS.COM«á Thσ thirΣ modulσ i≤ 1400╚á byte≤ ì
lonτ anΣ i≤ nameΣ REVAS.LOD.
REVA╙ (thσ firs⌠ module⌐ ma∙ bσ loadeΣ anywherσ yo⌡á wisΦ ì
iεá memor∙á anΣ executeΣ b∙ jumpinτ t∩ thσ loaΣá address«á Durinτ ì
firs⌠á execution¼á thσá relocatinτá codσá i≤á destroyeΣá anΣá thσ ì
resultinτ cop∙ oµ REVA╙ i≤ n∩ longe≥ relocatable«á Thus¼á t∩ makσ ì
I/╧ patche≤ t∩ thσ jum≡ vectors¼á thσ modification≤ mus⌠ bσá madσ ì
t∩á thσ cop∙ immediatel∙ afte≥ loading«á Thσ modifieΣ cop∙ caε bσ ì
saveΣá (oε tape¼á fo≥ example¼á o≥ oε disc)╗á thσá relocatabilit∙ ì
featurσ wil∞ stil∞ bσ valiΣ iµ yo⌡ havσ donσ n∩ morσ thaεá changσ ì
thσá argument≤ oµ thσ I/╧ jum≡ vector«á Oncσ executed¼á REVA╙á i≤ ì
exactl∙ 1000╚ byte≤ long.
REVAS.CO═á anΣ REVAS.LO─ shoulΣ bσ loadeΣ int∩ memor∙ onσ ì
a⌠á ß timσ anΣ saveΣ froφ locatioε 100╚ (thσ CP═ tpa⌐á usinτá CP═ ì
commands« Morσ detail≤ arσ giveε iε thσ appendeΣ REVAS/CP═ guide.
Beforσá loadinτá REVAS¼áá inser⌠á thσá cassettσá iεá you≥ ì
recorde≥á witΦá thσá interfacσ disconnecteΣ s∩ yo⌡ caεá hea≥á thσ ì
data«á Pla∙ thσ tapσ froφ thσ beginning« Thσ firs⌠ sounΣ yo⌡ hea≥ ì
wil∞ bσ tha⌠ oµ thσ synπ stream¼á theε thσ carrie≥ tone« Notσ thσ ì
place≤á wherσ thσ stead∙ tonσ oµ thσ carrie≥ i≤ replaceΣá b∙á thσ ì
'noiseº sounΣ oµ thσ recordeΣ data«á Thσ program≤ arσ recordeΣ iε ì
thσ orde≥ listeΣ above¼ witΦ abou⌠ 1╡ second≤ betweeε copies« No≈ ì
positioεá thσá tapσá ß fe≈ second≤ aheaΣ oµ thσá cop∙á yo⌡á want¼ ì
reconnec⌠á thσá Tarbel∞á interface¼á anΣ cop∙á thσá prograφá int∩ ì
memory.
1
REVAS IMPLEMENTATION
I/O Interface Description
REVA╙á i≤á designeΣ t∩ suppor⌠ onσ logica∞á inpu⌠á devicσ ì
(thσ console⌐ anΣ │ logica∞ outpu⌠ device≤ (console¼á punch¼á anΣ ì
printer).
Thσá physica∞á device≤á referenceΣ b∙ thσá logica∞á name≤ ì
(console¼á punch¼á anΣá printer⌐á arσ determineΣ b∙á you≥á drive≥ ì
routine≤á anΣ thσ jum≡ vector≤ iε REVA╙ tha⌠ poin⌠ t∩á them«á Yo⌡ ì
could¼ fo≥ example¼ havσ thσ puncΦ actuall∙ writσ oε ß disπ file.
Al∞ I/╧ transaction≤ takσ placσ througΦ thσ jum≡á vector≤ ì
locateΣá nea≥ thσ beginninτ oµ thσ REVA╙ program«á Thesσá vector≤ ì
arσ showε iε thσ listinτ below«á Yo⌡ mus⌠ verif∙ tha⌠ thesσ jump≤ ì
poin⌠á t∩ thσ prope≥ drive≥ routine≤ iε you≥ system«á Iµ yo⌡á arσ ì
usinτá ß monito≥ froφ Technica∞ Desigε Lab≤ anΣ i⌠ i≤ locateΣá a⌠ ì
0F000H¼á theε n∩ change≤ wil∞ bσ necessary«á Otherwise¼á yo⌡ mus⌠ ì
changσá thσ jum≡ argument≤ s∩ tha⌠ the∙ poin⌠ t∩ you≥ owεá drive≥ ì
routines.
Thσá drive≥ routine≤ mus⌠ observσ thσ followinτá registe≥ ì
usagσ conventions:
ááááá ┴ bytσ t∩ bσ outpu⌠ i≤ transmitteΣ iε thσ 'Cº ì
áááááregiste≥á anΣ wil∞ bσ iε thσ 'Cº anΣ 'Aº register≤ ì
áááááoεá returε froφ thσ outpu⌠ driver«á Aε inpu⌠á bytσ ì
ááááá(froφá thσ console⌐ i≤ expecteΣ t∩ bσ iεá thσá 'Aº ì
áááááregister«á Thσ conten⌠ oµ al∞ othe≥ register≤ mus⌠ ì
ááááábσ returneΣ unchangeΣ durinτ aε I/╧ operation.
2
REVAS IMPLEMENTATION
REVAS Entry & I/O Vector
ADDR CODE LABEL OPR OPA COMMENTS
0020 31 XXXX REVAS: LXI SP,STACK ;LOCATE STACK
;ADDR is the address relative to the load
;address BEFORE execution. During execution,
;all of this code is moved down 20H bytes,
;so that the instruction labeled REVAS is
;located at relative address 0000.
;XXXX depends on Version number of REVAS
0023 C3 XXXX JMP START ;GO TO WORK
0026 C3 12F0 CSTS: JMP 0F012H ;CONSOLE STATUS
;RETURNS WITH 0FFH IN ACCUMULATOR IF THERE IS
;CONSOLE INPUT WAITING, 00 IF NOT.
0029 C3 03F0 CNSLIN: JMP 0F003H ;CONSOLE INPUT
002C C3 09F0 CSLOUT: JMP 0F009H ;CONSOLE OUTPUT
002F C3 0FF0 LPOUT: JMP 0F00FH ;PRINTER OUTPUT
0032 C3 0CF0 POUT: JMP 0F00CH ;PUNCH OUTPUT
0035 C3 1EF0 TRAP: JMP 0F01EH ;RETURN TO MONITOR
;RETURN FROM THE MONITOR WITH ALL REGISTERS
;(INCLUDING THE STACK PTR AND THE PC)
;RESTORED TO THEIR STATES AT THE TIME OF THE
;JUMP TO TRAP WILL PERMIT CONTINUED EXECUTION
;OF REVAS WHERE IT LEFT OFF. IF YOUR MONITOR
;ROUTINES DO NOT INCLUDE THIS FACILITY, THEN
;RETURN SHOULD BE THROUGH A JUMP TO REVAS
;(I.E. JUMP TO RELATIVE LOCATION 0000)
3
REVAS IMPLEMENTATION
Symbol Table Pointers after execution
REL ADDR CONTENT DESCRIPTION
0FF5 TFLAG: 0=EMPTY TABLE; 1=NOT EMPTY
0FF6 A1: ADDR OF FIRST ENTRY OF INDEX TABLE
0FF8 A3: ADDR OF LAST ENTRY OF INDEX TABLE
0FFA A4: ADDR OF FIRST ENTRY IN LABEL TABLE
0FFC A2: POINTER TO NEXT AVAILABLE LOCATION
FOR LABEL ENTRY (RELATIVE TO FIRST ENTRY)
0FFE A5: POINTER TO LAST LOCATION IN THE
LABEL TABLE RELATIVE TO THE FIRST ENTRY
1000 DEFAULT LOCATION OF INDEX TABLE (THIS ADDR
WOULD BE IN A1: ABOVE)
Patch Locations after execution
REL ADDR CODE REMARKS
0850 3B Comment Field Delimiter
0908 AE Right Justify Label Field
EE=Left Justify Lbl Field
091C 3A Label Terminator
0EA1 2E 42 59 54 C5 '.BYTE' Pseudo-Op For Tables
0EA6 2E 45 4E C4 '.END' Pseudo-Op
0EAA 0D 0A 00 80 00 CRLF For List Device
0EAF 0D 0A 00 80 00 CRLF For Other Devices
0ECE 06 86 Lockout bytes, ^F^F
(To change an ASCII string such as this to some other
string such as 'DB', observe the following two rules:
1. You must use the same number of characters,
filling out with blanks if necessary.
2. The last byte in the string must have
bit 7 set. I.e., the parity bit must be equal
to one.)
0037 38 LC: Line Counter
0038 5 TM: Top Margin
0039 5 BM: Bottom Margin
003A 38 LP: Text Lines/Page
Immediate command characters
0445 52 R=RET to Command Mode
0187 53 S=Suspend Disassembly
4
REVAS IMPLEMENTATION
Line Format Modification
Thσá linσá buffe≥á i≤ 6░ byte≤ lonτ anΣá i≤á divideΣá int∩á ╢ ì
fields«á Thσá lengtΦ oµ eacΦ fielΣ i≤ specifieΣ iε ß forma⌠á lis⌠ ì
startinτá a⌠á 0018H«á I⌠ contain≤ ╖ words¼á eacΦ oµ whicΦ i≤á thσ ì
absolutσ addres≤ oµ thσ star⌠ oµ ß field« Thσ fielΣ startinτ witΦ ì
thσ seventΦ addres≤ i≤ no⌠ used« Thσ firs⌠ addres≤ iε thσ lis⌠ i≤ ì
thσ star⌠ oµ thσ linσ buffe≥ afte≥ execution.
Format List
REL HEX SYMBOL FIELD FIELD DESCRIPTION
ADDR WORD
0018 D40E LB 1 address field
001A D90E LB+5 2 object code
001C E50E LB+17 3 label field
001E ED0E LB+25 4 operator field
0020 F30E LB+31 5 operand field
0022 080F LB+52 6 comment field
0024 0D0F LB+57 defines end of field 6
Page Format Control
Pagσá forma⌠ fo≥ thσ lis⌠ devicσ outpu⌠ i≤ controlleΣá b∙ ì
TM¼ LP¼ anΣ BM« T═ specifie≤ thσ numbe≥ oµ blanδ line≤ a⌠ thσ to≡ ì
oµ thσ page¼á L╨ specifie≤ thσ numbe≥ oµ tex⌠ line≤ pe≥ page¼ anΣ ì
B═ specifie≤ thσ numbe≥ oµ blanδ line≤ a⌠ thσ bottoφ oµ thσ page« ì
Tota∞ pagσ lengtΦ i≤ thu≤ thσ suφ oµ thesσ threσá constants«á Yo⌡ ì
caε changσ T═ o≥ B═ t∩ an∙ 8_bi⌠ value¼ includinτ zero« L╨ ma∙ bσ ì
assigneΣ an∙ 8_bi⌠ valuσ excep⌠ zero«á Thesσ assignment≤ arσ madσ ì
b∙ modifyinτ thσ appropriatσ patcΦ locations.
Nulls After CRLF
Thσá CRLF-Null≤ sequencσ i≤ separatel∙ specifieΣ fo≥á thσ ì
Lis⌠á Devicσá anΣá fo≥á al∞á othe≥á outpu⌠á devices«á (Seσá PatcΦ ì
Locations⌐ A≤ supplied¼á REVA╙ output≤ ▓ null≤ afte≥ ß linσ feed« ì
Yo⌡á caε changσ thi≤ t∩ froφ zer∩ t∩ threσ null≤ b∙ changinτá thσ ì
bytσ iε thσ sequencσ fo≥ whicΦ bi⌠ ╖ i≤ set«á Fo≥ zer∩ nulls¼ thσ ì
sequencσ mus⌠ bσ changeΣ t∩ 0D_8A_00_00_00╗ fo≥ │ null≤ changσ t∩ ì
0D_0A_00_00_80.
5
REVAS IMPLEMENTATION
REVAS COMMAND SUMMARY
A Assign location of symbol tables
B Build internal tables
C Control output of comment field
D Disassemble using tables if present
E Insert '.END' pseudo-op into output stream
F Find all instructions that use the given address
H Halt at top of list page
^H Don't halt at top of list page
G Go to a user routine and execute it
I Initialize tables to empty state
K Kill table entries
L Label assignment for any object program location
^L (ASCII Form Feed) advances to top of page
M Mark a location as instruction or table
O Output device assignment
P Print the symbol table
S Symbol assignment for instructions
T Symbol assignment for table locations
X Produce a cross reference listing
Immediate Action Commands
^C Trap to monitor (and return from TDL Monitor)
R return to command mode
S stop disassembly, wait for keybd entry
6