A51 37KB Mar 15 1987 09:12:08 PM

advertisement
PseudoSam 51 Assembler Manual V1.2.02
Copyright(c) 1986,87 PseudoCode
Disclaimer:
PseudoSam 51 is distributed as is, with no guarantee that it
will work correctly in all situations. In no event will the
Author be liable for any damages, including lost profits,
lost savings or other incidental or consequential damages
arising out of the use of or inability to use these
programs, even if the Author has been advised of the
possibility of such damages, or for any claim by any other
party.
It is the users reponsibility to back up all important files!
See copyright information in appendix B
Table of Contents
Chapter 1
PseudoSam 51 assembler vs. the Intel assembler.
Chapter 2
Running the assembler program.
Chapter 3
Assembler statement syntax.
Chapter 4
Data types.
Chapter 5
Expressions.
Chapter 6 Assembler Directives.
(also known as assembler pseudo-opcodes, or pseudo-ops)
Appendix A
ASCII character set.
Appendix B
Copyright and registration information.
Appendix C
Description of Files.
Appendix D
Bug Reporting Procedure.
Appendix E
Using PseudoSam 51 on "Compatible" Systems.
Table of Contents
Chapter 1
PseudoSam 51 assembler vs. the Intel assembler.
Chapter 2
Running the assembler program.
Chapter 3
Assembler statement syntax
Chapter 4
Data types
Chapter 5
Expressions
Chapter 6 Assembler Directives
(also known as assembler Pseudo-opcodes)
Appendix A
ASCII character set
Appendix B
Copyright and registration information
Appendix C
Description of Files
Appendix D
Bug Reporting Procedure.
Chapter 1 PseudoSam 51 assembler vs. the Intel assembler
All PseudoSam(Pseudo brand Symbolic AsseMbler) assemblers conform to
a common syntax based on the UNIX system V assembler syntax. By
conforming to this Pseudo standard, conflicts with the manufacturers
syntax are created. Below is a brief and incomplete list of those
conflicts.
Intel format
PseudoSam format
<identifier> equ <expression>
.equ <identifier> , <expression>
<identifier> set <expression>
.set <identifier> , <expression>
Has Macro capability
No Macro capability at this time
* The difference in name between the Intel and the PseudoSam name
of assembler directives can be circumvented by the .opdef directive.
example
.opdef
*
eject,.eject
;defines eject to be synonymous with .eject
A file syn.asm is distributed with the assembler with some useful
redefinitions.
Unix system V is a trademark of AT & T.
Chapter 2
1.
Running the assembler program
Command line switch setting and source file specification.
Assuming the user has an assembly language source file called
foo.asm
type the following command:
a51 foo
The assembler will assemble the program foo.asm using the default
assembler switch settings. the following files will be generated
by the assembler:
**
foo.lst
;assembled listing shown the code conversion and
; any errors that where discover by the assembler.
foo.obj
;assembled object code in Motorola Hex format.
for a list of switch setting see the .command assembler directive
description in chapter 6.
*** The assembler uses the following temporary file names.
z0z0z0z0.tmp
z1z1z1z1.tmp
ANY files with these names will be DESTROYED by the
by the assembler.
Chapter 3
Assembler statement syntax
1. Assembler Statements
Assembler statements contain from zero to 4 fields as shown in
following.
<label> <opcode> <expressions> <comment>
All fields are optional, but they must be in this order.
A.
Labels (<label>) are symbolic names that are assigned the starting
address of any code generated by the opcode and or expressions
of the line containing the label declaration.(see section 2).
B.
Operation codes(<opcode>) tell the assembler what machine
instruction
to generate, or what assembler control function to perform.
The operation code also tells the assembler what expressions are
required to complete the machine instruction or assembler directive.
(see chapter 6).
C.
Expression requirements are set by the opcode(see the microprocessor
manufacturers reference manual or the assembler directives chapter
for individual opcode requirements).(see chapter 5).
D.
Comments are notes written by the programmer to explain what the
program is trying to accomplish. Comments generate no code.
(see section 3).
2.
Labels
Labels can be unlimited in length, but only the first eight
characters
are used to distinguish between them. They must conform to the
following syntax.
<label>
-> <identifier>':'
<identifier> -> <alphabetic character> <identifier character string>
<alphabetic character> -> character in the set ['A'..'Z', 'a'..'z',
'.']
<identifier character string> -> any sequence of characters from the
set ['A'..'Z','a'..'z', '.',
'0'..'9']
example
abc:
a c:
foo:
.123:
;label
;not a
;label
;label
referred to as abc
valid label
referred to as foo
referred to as .123
* Case makes NO difference!
d:
D:
3.
;is the same as
Comments
Comments must start with a semi-colon ; and are terminated
by an end of line or file( <lf>(^J) or <sub>(^Z) ). An end
of line is inserted by typing the enter or return key by
most text editors.
Chapter 4
1.
Data types
Integers
Integer constants can be specified in any of the following forms:
A.
Binary
b'bb
B'bb
B.
;bb=string of binary digits
Decimal
ndd
d'dd
D'dd
C.
;n=nozero decimal digit
;dd=string of decimal digits
Octal
0qq
o'qq
O'qq
q'qq
Q'qq
D.
;qq=string of octal digits
Hexidecimal
0x'hh
0X'hh
h'hh
H'hh
x'hh
X'hh
;hh=string of hexidecimal digits
Examples:
077
b'0101
77
h'ff
;octal number 77 = decimal 63
;binary number 101 = decimal 5
;decimal number 77 = octal 115
;hexidecimal ff = decimal 255
2.
Strings:
Strings consist of a beginning quote " followed by any reasonable
number
of characters followed by an ending quote ". Control characters and
double
quotes " and backslash \ may not be used in strings directly. These
special characters are included by using a special escape sequence
which
the assembler translates into the appropriate ASCII code.
Note: Strings may not be used in expressions!
Although character constants may(see below).
Escape sequences
"\"" string containing "
"\\" string containing \
"\'" string containing '
"\0" string containing null
"\n" string containing linefeed
"\r" string containing carriage return
"\f" string containing formfeed
"\t" string containing horizontal tab
"\nnn" string containing the ASCII character who's code is o'nnn
(nnn are octal digits).
* see appendix A for ASCII codes.
3.
Character Constants:
Character constants consist of a single quote ' followed by
a character or an escape sequence(see above) followed by a
single quote '.
example:
'A' = ASCII character value for the letter A = 65 (decimal);
'\''= ASCII character value for the character ' = 39 (decimal).
Character constants are treated as integers by the assembler and
are valid where ever an integer value is valid.
example:
'A' + 1 = 66
* see appendix A for ASCII codes.
4.
Symbolic values
Symbolic values are generally labels, but may be any identifier
assigned an integer value(using .set or .equ pseudo-ops).
As a special case the symbol * when used as an operand in an
expression denotes the value of the location counter (the value
the program counter will have during operation) at the beginning
of the current line.
Chapter 5
Expressions
All expressions evaluate to integer values modulo 65536(2^16) and
are
written in infix notation(the way you normally write them).
Operators
provided are grouped below in order of precedence.
1. (unary)
~
logical bit wise complement(not) of its operand(one's
complement).
arithemetic complement, or negation(two's complement).
2. (binary)
*
/
%
>>
times).
<<
times).
~
integer multiply (two's complement).
integer divide
(two's complement).
modulus
(result is always positive)
logical shift right (left operand shifted right operand
logical shift left (left operand shifted right operand
equivalent to
A or ( ~B ).
3. (binary)
|
logical bitwise or(inclusive-or) of two operands.
^
logical bitwise exclusive-or of two operands.
&
logical bitwise and of two operands.
4. (binary)
+
addition (two's complement).
subtraction (two's complement).
Since this version does not generate relocatable code there exists
only
one "type" of operand that can be in an expression.
goes
except divide by 0(1 will be substituted ).
examples:
-1 = h'ffff (two's complement notation).
-1 >> 8 = h'00ff
-1 << 8 = h'ff00
3 / 2 = 1
6 / 2 = 3
5 / 0 = 5
-2 / 1 = -2
-3 /-2 = 1
2 * -3 = -6
b'00 & b'11 = 0
So anything
b'11 & b'10 = 2
2 * b'01 & b'10 = 2
b'01 ^ b'11 = 2
b'01 | b'11 = 3
Notice that spaces are ignored in expressions.
Chapter 6 Assembler Directives
(also known as assembler Pseudo-opcodes)
The assembler recognizes the following directives:
directive
.command
options).
section
description
1
;set assembly options(similar to command line
.org
2
;set program origin.
.equ
3
;equate an identifier to an expression(permanent
; assignment).
.set
4
;equate and identifier to an expression(temporary
; assignment).
.rs
5
;reserve storage(memory) space.
.db
6
;define byte.
.dw
7
;define word(16 bit).
.drw
8
;define reversed word(16 bit).
.eject
9
;form feed in listing
.page
10
;align location counter on 256 byte memory
; page boundary.
.end
11
;end of program
.opdef
12
;equate an identifier with another identifier.
.segment
13
;define a memory segment.
<segment name>
14
;select segment <segment name> as current segment.
.null
;this is a comment statement.
15
1. .command
switches
<optionlist>
;allows the programmer to set option
;in the same manner as on the command line.
;(the command line is the line typed to run
; this program).
<optionlist> -> <option> ' ' <optionlist>
<optionlist> ->
<option> -> '-'<available option>
<option> -> '+'<available option>
<available option> -> 'a'<decimal number> ;Hex hode format.
;1 => Intel Hex.
;2 => Motorola 19 Hex.
<available option> -> 'w'<decimal number> ;page width in
columns(characters).
;(-,+ are ignored but one must
be
; there).
<available option> -> 'h'<decimal number> ;page height in lines.
;(-,+ are ignored but one must
be
; there).
<available option> -> 'l'
;listing on(+) or off(-)
;if set on command line it
overrides
;all listing controls in
program.
<available option> -> 'm'<decimal number> ;Machine level.
;1 => z80,nsc800.
<available option> -> 's'
).
;symbol listing on(+) or off(-
<available option> -> 'o'
;selects single object module
;file only(+), or multiple
object
;module files(-)(one for each
;defined segment in the
program).
;ONLY active on command line!
<available option> -> 't'<drive>
create
;specifies which drive to
;all temporary files on(-,+ are
; ignored but one must be
there).
;ONLY active on command line!
<available option> -> 'p'<drive>
create
;specifies which drive to
;the listing file on(-,+ are
; ignored but one must be
there).
;ONLY active on command line!
<drive> -> <drive name>':'
<drive name> -> 'a'
<drive name> -> 'b'
<drive name> -> 'c'
<drive name> -> 'd'
;e.g.
a:
b:
c:
d:
;MS-DOS
;drive a --usually a floppy disk
;drive b --usually a second floppy disk
;drive c --usually a hard disk, but may
be a ram disk.
;drive d --usually a ram disk, but may
be a hard disk.
** The default options are: -a2 -m1 -w132 -h66 +l +s +o
2. .org
<integer expression>
;sets the assembler location counter
;to the value of expression.
;The expression MUST be evaluatable
;on the first pass. NO FORWARD
;REFERENCES!
3. .equ
<identifier> ',' <integer expression>
;gives identifier the value of the
;integer expression.
;<identifier> canNOT be redefined!
;also forward references are allowed
;as long as they are resolved by the
;second pass.
4. .set
<identifier> ',' <integer expression>
;gives identifier the value of the
;integer expression.
;<identifier> CAN be redefined later
; in the program!
;also forward references are allowed
;as long as they are resolved by the
;second pass.
5. .rs
<integer expression>
6. .db
<expression-string list>
<expression-string
<expression-string
<expression-string
<expression-string
list>
list>
list>
list>
->
->
->
->
;increments the location counter
;by the value of <integer expresson>
;effectively reserving that many bytes
;of memory.
<expression>','<expression-string list>
<string>','<expression-string list>
<expression>
<string>
;creates a byte in the machine code
;for each <expression> in the list
;and a byte for each ascii character
;in the a string.
7. .dw
<expression list>
<expression list> -> <expression>','<expression list>
<expression list> -> <expression>
;creates a word(16 bit) in the machine
code
;for each <expression> in the list.
;MOST significant byte is stored at
LOWER
;address.
8. .drw
<expression list>
<expression list> -> <expression>','<expression list>
<expression list> -> <expression>
;creates a word(16 bit) in the machine
code
;for each <expression> in the list.
;LEAST significant byte is stored at
LOWER
;address.
9. .eject
;causes a form-feed character to be
;inserted in listing.(new listing page)
10. .page
;increments location counter to next
;256 byte page boundary.
11. .end <integer expression>
;signals the end of the source program.
;the optional expression, if supplied,
;specifies the start address of the
;program, and is included in the
;Motorola Hex object module output
;of the active segment when the .end
;was encountered.
12. .opdef
<identifier>,<identifier>
;assigns the current definition of
;the second <identifier> to the
;first <identifier>.
;useful for renaming opcodes and
;pseudo-ops.
13. .segment <identifier> ',' <integer expression>
;defines a memory segment name.
;used to separate memory allocation
;and optionally generate seperate
;object files.(see 'o' assembly
;directive to activate).
;(used to seperate RAM, ROM, or
; ROMS)
;the optional <integer expression> is
;added to the location counter to
;offset the load address supplied
;in the object module. (does not
;affect listings addresses!)
;
;note: .code is the predefined default
;segment and cannot be redefined.
14. <segment name>
;selects the segment <segment name>
;as the current memory segment.
;The location old segment location
counter
;is saved and the previous value of the
;newly selected segments location
counter
;is used(0 if not previously used).
15.
.null
;directs the assembler to treat this
;statement as a comment. Useful to
;nullify opcodes when used in
conjunction
;with the .opdef pseudo-op.
Appendix
A
ASCII character set
dec oct hex char
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
000
001
002
003
004
005
006
007
010
011
012
013
014
015
016
017
020
021
022
023
024
025
026
027
030
031
032
033
034
035
036
037
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
^@
^A
^B
^C
^D
^E
^F
^G
^H
^I
^J
^K
^L
^M
^N
^O
^P
^Q
^R
^S
^T
^U
^V
^W
^X
^Y
^Z
^[
^\
^]
^^
^_
null
soh
stx
etx
eot
enq
ack
bel
bs
ht
lf
vt
ff
cr
so
si
dle
dc1
dc2
dc3
dc4
nak
syn
etb
can
em
sub
esc
fs
gs
rs
us
dec oct hex char
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
040
041
042
043
044
045
046
047
050
051
052
053
054
055
056
057
060
061
062
063
064
065
066
067
070
071
072
073
074
075
076
077
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
sp
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
dec oct hex char
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
100
101
102
103
104
105
106
107
110
111
112
113
114
115
116
117
120
121
122
123
124
125
126
127
130
131
132
133
134
135
136
137
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
^ denotes control key simultaneous with character key.
dec oct hex char
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
140
141
142
143
144
145
146
147
150
151
152
153
154
155
156
157
160
161
162
163
164
165
166
167
170
171
172
173
174
175
176
176
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
del
Appendix B
Copyright Information:
Disclaimer:
PseudoSam 51 is distributed as is, with no guarantee that it
will work correctly in all situations. In no event will the
Author be liable for any damages, including lost profits,
lost savings or other incidental or consequential damages
arising out of the use of or inability to use these
programs, even if the Author has been advised of the
possibility of such damages, or for any claim by any other
party.
Copyright Information:
The entire PseudoSam 51 distribution package, consisting of
the main program, documentation files, and various data and
utility files, is copyright (c) 1986, by PseudoCode.
The author reserves the exclusive right to distribute this
package, or any part thereof, for profit.
The name "PseudoSam (tm)", applied to an assembler
program, is a trade mark of the PseudoCode company.
PseudoSam version 1.x.xx and various subsidiary files may be
copied freely by individuals for non-commercial purposes. It
is expected that those who find the package useful will
purchase the update service.
ONLY UNMODIFIED VERSIONS DISPLAYING THE AUTHORS COPYRIGHT
MAY BE COPIED.
User groups and clubs are authorized to distribute PseudoSam
software under the following conditions:
1.
No charge is made for the software or documentation. A
nominal distribution fee may be charged, provided that
it is no more than $5 total.
2.
Recipients are to be informed of the user-supported
software concept, and encouraged to support it with
their donations.
3.
The program and documentation are not modified in ANY
way, and are distributed together.
Interested manufacturers are invited to contact PseudoCode
to discuss licensing PseudoSam 51 for bundling with MS-DOS
based development systems.
Distribution of PseudoSam 51 outside the United States is
through
licensed distributors, on a royalty basis. Interested
distributors are invited to contact PseudoCode.
Educational Use:
Educational institutions are free to use this software
in their classes and are encouraged to distribute this
package to their students, however inorder to receive
periodic updates and technical assistance the appropriate
department must remit the license fee. Also a staff
member must be assigned to clear all trouble reports before
forwarding them to PseudoCode.
If you use this software, please help support it.
support can take three forms:
Your
1. Become a registered user. The suggested payment for
registration is $30($100 for complete family).
2. Suggestions, comments, and bug reports.
3. Spread the word. Make copies for friends. Write the editor
of your favorite computer magazine. Astronomical advertising
costs are one big reason that commercial software is so overpriced. To continue offering PseudoSam 51 this way, we need
your help in letting other people know about PseudoSam 51.
Those who make the $30 payment to become registered users
receive the following benefits:(order form on next page)
1. One year of updates including any upgrades. This includes
at least one new version release even if it takes more than
one year.
2. User support by mail. Support is only available to registered
users. The address for help is given below.
3. Notices announcing the release of new products.
Attention:BUGS
PseudoCode
P.O. Box 1423
Newport News, VA
23601
********ORDER FORM********
Please add me to the list of registered PseudoSam 51 users, and
send me
the most recent version. I understand that registration entitles me
to
one year of free updates and new releases, or one free new version
release, whichever occurs last.
Note that version 1.2.02 requires DOS 2 (or later) and 256K.
Computer Model: ____________________________________
Diskette format:
Total Memory: _______K
(256K required)
__ doubled sided/DOS 2
Check one:
___ I enclose a check for $30
(PseudoCode pays sales tax for VA orders)
Where did you hear about PseudoSam 51?
________________________________
Name:
_______________________________________________________
Address: _______________________________________________________
City, State, Zip: ______________________________________________
================================================================
Send order form with check or money order payable to
PseudoCode to:
(Qualified PO's will be billed.)
Attention: Registration
PseudoCode
P.O. Box 1423
Newport News, VA
23601
********ORDER FORM********
Please add me to the list of registered users of the complete
PseudoSam family of cross-assemblers. Send me the most recent
versions. I understand that registration entitles me to
one year of free updates and new releases, or one free new
version release, whichever occurs last.
I note that version 1.2.02 requires DOS 2 (or later) and 256K.
Computer Model: ____________________________________
Diskette format:
Total Memory: _______K
(256K required)
__ single sided/DOS 2(360k)
Check one:
___ I enclose a check or money order for $100
(shipping, handling, and Virginia sales tax for VA
orders
is paid by PseudoCode).
Where did you hear about the PseudoSam family?
________________________
Name:
_______________________________________________________
Address: _______________________________________________________
City, State, Zip: ______________________________________________
================================================================
Send order form with check or money order payable to
PseudoCode to:
(Qualified PO's will be billed.)
Attention: Registration
PseudoCode
P.O. Box 1423
Newport News, VA
23601
********Commercial Distribution Agreement********
Please add me to the list of registered PseudoSam 51 distributors,
and
send me the most recent version. I understand that registration
entitles
me to distribute this package freely on an "as is" basis to
purchasers
of my products. I further understand that I may not make a specific
or
additional charge for this package. I may however advertise the
package
as free software. I fully understand that the distributed software
must be clearly labeled as follows:
Complementary Software
Distributed "AS IS"
PseudoCode
P.O. Box 1423
Newport News, VA 23601
I understand that this agreement entitles me to one year of
distribution
rights and free updates.
Note that version 1.2.02 requires DOS 2 (or later) and 256K.
Computer Model: ____________________________________
Diskette format:
Total Memory: _______K
(256K required)
__ doubled sided/DOS 2
Check one:
___ I enclose a check for $30
(PseudoCode pays sales tax for VA orders)
Where did you hear about PseudoSam 51?
________________________________
Name:
_______________________________________________________
Address: _______________________________________________________
City, State, Zip: ______________________________________________
Signature_______________________
Date_________________
================================================================
Send order form with check or money order payable to
PseudoCode to:
(Qualified PO's will be billed.)
Attention: Registration
PseudoCode
P.O. Box 1423
Newport News, VA
23601
********Commercial Distribution Agreement********
Please add me to the list of registered PseudoSam distributors, and
send me the most recent version. I understand that registration
entitles
me to distribute this package freely on an "as is" basis to
purchasers
of my products. I further understand that I may not make a specific
or
additional charge for this package. I may however advertise the
package
as free software. I fully understand that the distributed software
must be clearly labeled as follows:
Complementary Software
Distributed "AS IS"
PseudoCode
P.O. Box 1423
Newport News, VA 23601
I understand that this agreement entitles me to one year of
distribution
rights and free updates for the entire PseudoSam family of
products.
I note that version 1.2.02 requires DOS 2 (or later) and 256K.
Computer Model: ____________________________________
Diskette format:
Total Memory: _______K
(256K required)
__ single sided/DOS 2(360k)
Check one:
___ I enclose a check or money order for $100
(shipping, handling, and Virginia sales tax for VA
orders
is paid by PseudoCode).
Where did you hear about the PseudoSam family?
________________________
Name:
_______________________________________________________
Address: _______________________________________________________
City, State, Zip: ______________________________________________
Signature_______________________
Date_________________
================================================================
Send order form with check or money order payable to
PseudoCode to:
(Qualified PO's will be billed.)
Attention: Registration
PseudoCode
P.O. Box 1423
Newport News, VA
23601
The PsuedoSam Family consists of the following cross-assemblers
Name
Designed for
PseudoSam
PseudoSam
PsuedoSam
PseudoSam
48
51
96
68
PseudoSam
PsuedoSam
PseudoSam
PseudoSam
PseudoSam
PseudoSam
PseudoSam
PseudoSam
685
689
65
85
80z
18
32
68k
Available*
;Intel 8048 family.
;Intel 8051 family.
;Intel 8096 family.
;Motorola
;6800,01,02,03,08.
;Motorola 6805.
;Motorola 6809.
;6502.
;Intel 8080,8085.
;Zilog Z80, NSC800.
;RCA 1802.
;NSC 32000 Family.
;Motorola 68000 family.
V1.1.00
Now
Now
Now
Now
Now
Now
Now
Now
Now
Now
Apr 87
May 87
* PseudoCode reserves the right to change price and availability
of any product without notice.
Appendix C: Description of Files
Your PseudoSam 51 distribution disk contains a number of files.
This
appendix will give a brief statement of the purpose of each of the
files.
FILE
DESCRIPTION
---------------------------------------------------------------A51.COM
The PseudoSam 51 program.
A51.DOC
This document.
EXAMPLE.ASM
Sample source file.
MNEMTEST.ASM
Mnemnonics test file.
SYN.ASM
Useful mnemnonics redefinitions
COMRCIAL.USE
Commercial distribution agreement.
Occasionally, various other sample source files for PseudoSam 51
will be
distributed. These files will have extension ASM, and will be
accompanied by a corresponding DOC file.
Appendix D: Bug Reporting Procedure.
Although each version of PseudoSam 51 is tested extensively prior
to release, any program is bound to contain a few bugs. It is
the intention of PseudoCode to correct any genuine problem that
is reported.
If you think you have found a bug in PseudoSam 51, please take the
time
to report it for correction. Although any report is helpful,
correction of the problem will be easiest if you provide the
following:
1. The version of PseudoSam 51 you are using.
Your problem may
have
been fixed already.
2. A brief description of the problem.
3. A copy of the problem source file, preferably on a floppy
disk.
(The cost of floppies is so small($.29), they will not be
returned and become the property of PseudoCode.)
* It is NOT necessary to send a large program to demonstrate
problem. Please try to isolate the problem area, by
writing a short sample program that demonstrates the bug.
Attention:BUGS
PseudoCode
P.O. Box 1423
Newport News, VA
23601
Appendix E
Using PseudoSam 51 on "Compatible" Systems.
PseudoSam 51 was written specifically for the IBM PC, but should
function normally on true "compatibles".
Since PseudoSam 51 version 1.2.00 is a totally new program, little
compatibility data is currently available. If you are using (or
are unable to use...) PseudoSam 51 on a non-IBM computer, please
write with your experiences. Does PseudoSam 51 work correctly on
your system? Are there specific problem areas? Can they be worked
around?
The following systems are known to run PseudoSam 51 version 1.2.00
successfully:
IBM PC
IBM XT
IBM AT
Sperry PC (all models).
JDR Microdevices PC Clones.
Download