ZPOKE utility RP AUTOMATION INC DEC 1988
Preliminary Documentation
1.0 Introduction
This set of programs provides a mechanism for using Assembly
Language routines in an easier manner. The features that are
included in this package include:
Initialize and enter an array of Assembly Language code
Display and Disassemble data in an array
Update data in an array
Copy data from user memory into an array
Copy data from an array into user memory
Save array data on a diskette
Restore array data from a diskette
All Assembly Language is using the MACRO-11 language, which is
the language for the LSI-11 family of microprocessors.
2.0 Subroutine Description
The following subroutines are provided in this package:
Name Description
rp.zpoke This program gets EXECUTE'd so that the
user can use the features in this package
to write and debug Assembly Language
routines.
The following programs are used internally to achieve the
ZPOKE effect. They are not to be EXECUTE'd by the user.
rp.add.arg rp.check.instr.type rp.flp.blkr
rp.flp.blkw rp.flp.closer rp.flp.closew
rp.flp.comms rp.flp.del rp.flp.dir
rp.flp.format rp.flp.openr rp.flp.openw
rp.flp.rename rp.flp.setup rp.flperr
rp.flpin rp.flpout rp.get.dest
rp.get.numb1 rp.get.numb2 rp.get.numb3
rp.get.numb4 rp.get.numb5 rp.get.octal.num
rp.get.reg1 rp.get.reg2 rp.get.source
rp.get.string rp.get.string.upper rp.type.string
rp.update.outchr rp.z.change rp.z.disassemble
rp.z.get rp.z.init rp.z.insert
rp.z.insert2 rp.z.put rp.z.restore
rp.z.save rp.z.upd
3.0 Software Installation
The software is installed using the following procedure:
1) Load the file RP._ZPOKE.V2 from floppy into memory. This is
done by typing:
LOAD RP._ZPOKE.V2
2) Execute the main program "rp.zpoke" by typing:
EXECUTE RP.ZPOKE
3) A menu will be displayed asking which option to choose.
The menu looks like:
0 = EXIT
1 = Initialize Z.DATA.POKE array & parameters
2 = Display data
3 = Update data
4 = Obtain data from memory
5 = Put data from Z.DATA.POKE array into memory
6 = Save Z.DATA.POKE array on disk
7 = Restore Z.DATA.POKE array from disk
Enter selection:
4) If an illegal entry is made, then an error message is
displayed, and the menu is re-entered.
5) If a valid entry is made, then one of the routines listed
below gets executed:
SELECTION 0 (EXIT)
This selection causes the program to terminate, dropping
back to the VAL II monitor prompt (".").
SELECTION 1 (Initialize)
This selection causes an array to be initialized with new
values that are typed in at the keyboard. The starting
address of the Assembly Language routine must be entered,
and then the data for the routine. This continues until
all data has been typed in.
The outcome of this selection is that an array will be
created which contains the data that is entered. This
data array can now be used in conjunction with the other
selections.
SELECTION 2 (Display data)
This selection can be used to display the data array.
The data will be displayed in octal format. The address
for each data word will also be displayed. Also, the
data will be DISASSEMBLED and the resulting MACRO-11 code
will also be displayed.
After each page of data is displayed, there will be a
pause and an opportunity to ABORT the display at that
point.
SELECTION 3 (Update data)
This selection gets used when updating the array data.
There are three ways that this data can be updated:
(I)nsert, (C)hange, or (D)elete
Before asking this question about which type of update
is desired, the array data gets displayed. If this
question is answered incorrectly, then it it asked again.
There is also a way to (Q)uit at this point.
(I)nsert data
When this routine is started, a question is asked about
where the data is to be INSERT'd. If this is entered
correctly, then data is entered until it has all been done.
(C)hange data
When this routine is started, a question is asked about
where the data is to be CHANGE'd. The current data then
gets displayed and the new data is entered. There is also
a verification for making this change. The change is then
made to the array.
(D)elete data
When this routine is started, a question is asked about
where the data is to be DELETE'd. Then, another question
is asked about how many words are to get deleted. The
program then updates the array to be correct.
SELECTION 4 (Obtain data from memory)
This selection is chosen for getting data from user memory
into the data array. The beginning and ending addresses
must be entered for where the data is to be copied from.
The program then copies the data into the data array.
SELECTION 5 (Put data into memory)
This selection is chosen for putting data into user memory
from the data array. A verification is done for this
option because the area that is being copied to may not
be available for user data. If it is okay, then the
data is copied into memory.
SELECTION 6 (Save data on disk)
This selection is chosen for saving the data on a floppy
diskette. When the filename is entered, the data will
then get stored on the diskette.
SELECTION 7 (Restore data from disk)
This selection is chosen to restore the data from a file
on the diskette to the data array. The filename is entered
when this routine starts. The data will get loaded from
the diskette and stored in memory as the data array.
6) When the routine finished that was selected from the menu,
the menu gets re-displayed.
4.0 Special Notes
1) All addresses and data that are entered are in OCTAL format.
2) When using the SELECTION 1, 4, or 7, the data in the current
array will be lost.
5.0 Messages
*** ILLEGAL SELECTION ***
This message will get displayed if a wrong number is entered
for a menu selection.
*** ILLEGAL RESPONSE ***
This message will get displayed if wrong data is entered for
a PROMPT entry.
*** ILLEGAL ADDRESSES ***
This message will get displayed if the starting address that
is entered is greater than the ending address (used in Z.GET
routine).
*** Floppy error nn ***
If a floppy error occurs during the program, then this message
will get displayed, where 'nn' is a number which corresponds to
the internal floppy disk drive error code. The codes are:
2 = File already exists (creating new file with same name)
3 = File does not exist (opening file for reading)
4 = Communications error between VAL & floppy
5 = Disk full (writing to disk)
6 = Communications error between VAL & floppy
7 = Communications error between VAL & floppy
10 = Communications error between VAL & floppy
11 = Communications error between VAL & floppy
12 = Floppy not ready
13 = Floppy read error (diskette may be bad)
14 = Communications error between VAL & floppy
41 = No STX received during block transfer
42 = Incorrect checksum received during block transfer
43 = Incorrect response to closing file
6.0 Variable names used
The following list of real variable names are used within this
set of programs:
rp.bs.sp.bs[] rp.cc[] rp.checksum
rp.chki rp.chr rp.cmd
rp.cr.lf[] rp.filename[] rp.flp.incnt
rp.flp.input[] rp.flp.output[] rp.get.i
rp.getchr rp.i rp.inbuf[]
rp.instr rp.instr.offset rp.instr.parms
rp.instr.type rp.instr1 rp.instr2
rp.instr3 rp.instr4 rp.instr5
rp.instr6 rp.instr7 rp.instr8
rp.outchr[] rp.tmp rp.type.i
rp.z.data.zpoke[] rp.z.factor rp.z.i
rp.z.ins.index rp.z.instr[] rp.z.length
rp.z.lines rp.z.num.wds rp.z.sel
rp.z.start.addr rp.z.temp rp.z.temp1
rp.z.temp2 rp.z.temp3
RP Automation
Tel (800) 367-7862 (800) FOR PUMA Fax (203) 792-2154
Email info@rpautomation.com
all content copyright RP Automation 1997