mirror of https://github.com/wwarthen/RomWBW.git
8 changed files with 0 additions and 959 deletions
@ -1,83 +0,0 @@ |
|||
Invoking the Assembler |
|||
Assembler Pseudo-Ops |
|||
Assembler In-Line Error Messages |
|||
Assembler Console Error Messages |
|||
:Invoking the Assembler |
|||
|
|||
The CP/M Assembler is invoked by typing -- |
|||
|
|||
ASM filename or ASM filename.parms |
|||
|
|||
where 'filename' is the name of the file 'filename.ASM' to be assembled. |
|||
|
|||
In the case of the first command, the following files are created -- |
|||
|
|||
filename.HEX - "HEX" file containing machine code in |
|||
Intel hex format |
|||
filename.PRN - listing file |
|||
|
|||
|
|||
Iî thå caså oæ thå seconä command¬ theså fileó arå createä accordinç � |
|||
to the parameters specified -- |
|||
|
|||
ASM filename.pqr |
|||
|
|||
where |
|||
p : A,B,... - designates the disk name which contains the source |
|||
q : A,B,... - designates the disk name to receive the hex file |
|||
Z - skips generation of the hex file |
|||
r : A,B,... - designates the disk name which will receive the |
|||
print file |
|||
X - outputs the listing to the console |
|||
Z - skips generation of the print file |
|||
:Assembler Pseudo-Ops |
|||
|
|||
ORG Set the program or data origin |
|||
END End program |
|||
EQU Numeric equate |
|||
SET Numeric set |
|||
IF Begin conditional assembly |
|||
ENDIF End conditional assembly |
|||
DB Define data bytes |
|||
DW Define data words |
|||
DS Define data storage area |
|||
:Assembler In-Line Error Messages |
|||
|
|||
Ä Datá errorº elemenô iî datá statemenô cannoô bå placeä iî thå � |
|||
specified data area |
|||
Å Expressioî errorº expressioî ió ill-formeä anä cannoô bå � |
|||
computed at assembly line |
|||
|
|||
Ì Labeì errorº labeì cannoô appeaò iî thió contexô (maù bå � |
|||
duplicate label) |
|||
Î Noô implemented: featureó whicè wilì appeaò iî futurå ASÍ � |
|||
versions |
|||
|
|||
O Overflow: expression is too complicated to compute; simplify |
|||
Ð Phaså errorº labeì doeó noô havå thå samå valuå oî twï � |
|||
subsequent passes through the program |
|||
|
|||
Ò Registeò errorº thå valuå specifieä aó á registeò ió noô � |
|||
compatible with the operation code |
|||
Ö Valuå errorº operanä encountereä iî expressioî ió improperlù � |
|||
formed |
|||
:Assembler Console Error Messages |
|||
|
|||
NO SOURCE FILE PRESENT The file specified in the ASM command |
|||
does not exist on disk |
|||
|
|||
NO DIRECTORY SPACE The disk directory is full, erase files |
|||
which are not needed, and retry |
|||
|
|||
SOURCE FILE NAME ERROR Improperly formed ASM file name |
|||
Š SOURCE FILE READ ERROR Source file cannot be read properly by |
|||
the assembler, execute a TYPE to |
|||
determine the point of error |
|||
|
|||
OUTPUT FILE WRITE ERROR Output files cannot be written properly, |
|||
most likely cause is a full disk, erase |
|||
and retry |
|||
|
|||
CANNOÔ CLOSÅ FILÅ Outpuô filå cannoô bå closed¬ checë tï |
|||
see if disk is write protected |
|||
|
|||
@ -1,494 +0,0 @@ |
|||
Introduction to the Microsoft BASIC Interpreter |
|||
Special Characters |
|||
Variable Type Declaration Chars |
|||
Commands |
|||
Edit Mode Subcommands |
|||
Program Statements (except I/O) |
|||
PRINT USING Format Field Specifiers |
|||
Input/Output Statements |
|||
Operators |
|||
Arithmetic Functions |
|||
String Functions |
|||
I/O and Special Functions |
|||
Interpreter Error Codes |
|||
Introduction to the Microsoft BASIC Compiler |
|||
Compiler Commands and Switches |
|||
Compiler Error Messages |
|||
:Introduction to the Microsoft BASIC Interpreter |
|||
|
|||
Thió HELÐ Filå ió deriveä froí thå "Microsofô BASIÃ Referencå Book"¬ � |
|||
anä iô ió divideä intï twï partó -- onå coverinç thå Interpreteò anä thå � |
|||
otheò coverinç thå Compiler® Theså programó procesó programó writteî iî � |
|||
almosô exactlù thå samå languagå -- Microsofô BASIC» therå arå minoò � |
|||
differenceó betweeî thå two¬ however¬ anä theså arå discusseä iî thå filå � |
|||
under the Compiler Introduction. |
|||
|
|||
The MBASIC (Microsoft BASIC) Interpreter is invoked as follows -- |
|||
|
|||
MBASIC [<filename>][/F:<# files>][/M:<memory loc>] |
|||
|
|||
Iæ <filename¾ ió present¬ MBASIÃ proceedó aó iæ á RUÎ <filename¾ commanä � |
|||
werå typeä afteò initializatioî ió complete® Á defaulô extensioî oæ .BAÓ � |
|||
ió assumed® Iæ /F:<£ files¾ ió present¬ iô setó thå numbeò oæ disë datá � |
|||
fileó thaô maù bå opeî aô anù onå timå durinç thå executioî oæ á program® � |
|||
Thå defaulô herå ió 3® Thå /M:<memorù loc¾ setó thå highesô memorù � |
|||
locationó thaô wilì bå useä bù MBASIC® Alì memorù tï thå starô oæ FDOÓ ió � |
|||
used by default. |
|||
:Special Characters |
|||
^A Enters Edit Mode on line being typed or last line typed |
|||
^C Interrupts program execution and returns to MBASIC |
|||
^G Rings <BELL> at terminal |
|||
^H Deletes last char typed |
|||
^I Tab (every 8) |
|||
^O Halts/resumes program output |
|||
^R Retypes the line currently being typed |
|||
^S Suspends program execution |
|||
^Q Resumes execution after ^S |
|||
^U,^X Deletes line being typed |
|||
<CR> Ends every line being typed in |
|||
<LF> Breaks a logical line into physical lines |
|||
<DEL> Deletes last char typed |
|||
<ESC> Escapes Edit Mode Subcommands |
|||
. Current line for EDIT, RENUM, DELETE, LIST, LLIST commands |
|||
&O,& Prefix for Octal Constant |
|||
&H Prefix for Hex Constant |
|||
: Separates statements typed on the same line |
|||
? Equivalent to PRINT statement
Š:Variable Type Declaration Characters |
|||
|
|||
$ String 0 to 255 chars |
|||
|
|||
% Integer -32768 to 32767 |
|||
|
|||
! Single Precision 7.1 digit floating point |
|||
|
|||
# Double Precision 17.8 digit floating point |
|||
:Commands |
|||
|
|||
Command Syntax Function |
|||
AUTO AUTO [line][,inc] Generate line numbers |
|||
CLEAÒ CLEAÒ [,[exp1][,exp2]Ý Cleaò prograí variables» Exp± setó � |
|||
enä oæ memorù anä Exp² setó amounô � |
|||
of stack space |
|||
CONT CONT Continue program execution |
|||
DELETE DELETE [[start][-[end]]] Delete program lines |
|||
EDIT EDIT line Edit a program line |
|||
|
|||
FILES FILES [filename] Directory |
|||
LIST LIST [line[-[line]]] List program line(s) |
|||
LLIST LLIST [line[-[line]]] List program line(s) on printer |
|||
LOAD LOAD filename[,R] Load program; ,R means RUN |
|||
MERGE MERGE filename Merge prog on disk with that in mem |
|||
|
|||
NAME NAME old AS new Change the name of a disk file |
|||
NEW NEW Delete current prog and vars |
|||
NULL NULL exp Set num of <NULL>s after each line |
|||
RENUM RENUM [[new][,[old][,inc]]] Renumber program lines |
|||
RESET RESET Init CP/M; use after disk change |
|||
|
|||
Command Syntax Function |
|||
RUN RUN [line number] Run a prog (from a particular line) |
|||
RUN filename[,R] Run a prog on disk |
|||
SAVÅ SAVÅ filename[,Á oò ,PÝ Savå proç ontï disk» ,Á saveó proç � |
|||
in ASCII and ,P protects file |
|||
SYSTEM SYSTEM Return to CP/M |
|||
TROFF TROFF Turn trace off |
|||
TRON TRON Turn trace on |
|||
WIDTÈ WIDTÈ [LPRINTÝ exð Seô terí oò printeò carriagå width» � |
|||
default is 80 (term) and 132 (prin) |
|||
:Edit Mode Subcommands |
|||
A Abort -- restore original line and restart Edit |
|||
nCc Change n characters |
|||
nD Delete n characters |
|||
E End edit and save changes; don't type rest of line |
|||
Hstr<ESC> Delete rest of line and insert string |
|||
Istr<ESC> Insert string at current pos |
|||
nKc Kill all chars up to the nth occurrance of c |
|||
L Print the rest of the line and go to the start of the line |
|||
Q Quit edit and restore original line |
|||
nSc Search for nth occurrance of c |
|||
Xstr<ESC> Goto the end of the line and insert string |
|||
<DEL> Backspace over chars; in insert mode, delete chars |
|||
<CR> End edit and save changes |
|||
:Program Statements (except I/O) |
|||
Statement Syntax Function |
|||
CALL CALL variable [(arg list)] Call assembly or FORTRAN routine |
|||
CHAIN CHAIN [MERGE] filename [,[line exp][,ALL][,DELETE range]] |
|||
Calì á prograí anä pasó variableó tï it» MERGÅ witè ASCIÉ � |
|||
fileó allowó overlays» starô aô linå exð iæ given» ALÌ meanó � |
|||
alì variableó wilì bå passeä (otherwiså COMMOÎ only)» DELETÅ � |
|||
allows deletion of an overlay before CHAIN is executed |
|||
COMMON COMMON list of vars Pass vars to a CHAINed prog |
|||
DEF DEF FNx[(arg list)]=exp Arith or String Function |
|||
DEF USRn=address Define adr for nth assembly routine |
|||
DEFINT range(s) of letters Define default var type INTeger |
|||
DEFSNG " " " " " " " Single |
|||
DEFDBL " " " " " " " Double |
|||
DEFSTR " " " " " " " String |
|||
DIM DIM list of subscripted vars Allocate arrays |
|||
|
|||
END END Stop prog and close files |
|||
ERASE ERASE var [,var ... ] Release space and var names |
|||
ERROR ERROR code Generate error code/message |
|||
FOR FOR var=exp TO exp [STEP exp] FOR loop |
|||
|
|||
|
|||
Statement Syntax Function |
|||
GOSUB GOSUB line number Call BASIC subroutine |
|||
GOTO GOTO line number Branch to specified line |
|||
IF/GOTO IF exp GOTO line [ELSE stmt ... ] |
|||
IF exp <> 0 then GOTO |
|||
IF/THEN IF exp THEN stmt[:stmt] [ELSE stmt ... ] |
|||
IF exp <> 0 then ... else ... |
|||
LET [LET] var=exp Assignment |
|||
|
|||
MID¤ MID$(string,n[,m])=string² Replacå á portioî oæ strinç witè � |
|||
string2; start at pos n for m chars |
|||
NEXT NEXT var[,var ... ] End FOR |
|||
ON ERROR ON ERROR GOTO line Error trap subroutine |
|||
GOTO |
|||
ON/GOSUB ON exp GOSUB line[,line] Computed GOSUB |
|||
ON/GOTO ON exp GOTO line[,line] Computed GOTO |
|||
|
|||
|
|||
Statement Syntax Function |
|||
OPTION OPTION BASE n Min val for subscripts (n=0,1) |
|||
BASE |
|||
OUT OUT port,byte Output byte to port |
|||
POKE POKE address,byte Memory put |
|||
RANDOMIZE RANDOMIZE [exp] Reseed random number generator |
|||
REM REM any text Remark -- comment |
|||
|
|||
RESTORE RESTORE [line] Reset DATA pointer |
|||
RESUME RESUME or RESUME 0 Return from ON ERROR GOTO |
|||
RESUME NEXT Return to stmt after error line |
|||
RESUME line Return to specified line |
|||
RETURN RETURN Return from subroutine |
|||
STOP STOP Stop prog and print BREAK msg |
|||
WAIÔ WAIÔ prot,mask[,selectÝ Pauså untiì inpuô porô [XOÒ selectÝ � |
|||
AND mask <> 0 |
|||
|
|||
WHILE/ WHILE exp stmts ... WEND Execute stmts as long as exp is T |
|||
WEND |
|||
:PRINT USING Format Field Specifiers |
|||
Numeric Specifiers |
|||
|
|||
Specifier Digits Chars Definition |
|||
# 1 1 Numeric field |
|||
. 0 1 Decimal point |
|||
+ 0 1 Print leading or trailing sign |
|||
- 0 1 Trailing sign (- if neg, <sp> otherwise) |
|||
** 2 2 Leading asterisk |
|||
|
|||
$¤ ± ² Floatinç dollaò sign» placeä iî fronô oæ |
|||
leading digit |
|||
**$ 2 3 Asterisk fill and floating dollar sign |
|||
, 1 1 Use comma every three digits |
|||
^^^^ 0 4 Exponential format |
|||
_ 0 1 Next character is literal |
|||
|
|||
String Specifiers |
|||
|
|||
Specifier Definition |
|||
! Single character |
|||
/<spaces>/ Character field; width=2+number of <spaces> |
|||
& Variable length field |
|||
:Input/Output Statements |
|||
|
|||
Statement Syntax/Function |
|||
CLOSE CLOSE [[#]f[,[#]f ... ]] |
|||
Close disk files; if no arg, close all |
|||
DATA DATA constant list |
|||
List data for READ statement |
|||
FIELD FIELD [#]f,n AS string var [,n AS string var ...] |
|||
Define fields in random file buffer |
|||
GET GET [#]f[,record number] |
|||
Read a record from a random disk file |
|||
INPUT INPUT [;] [prompt string;] var [,var ...] |
|||
INPUT [;] [prompt string,] var [,var ...] |
|||
Reaä datá froí thå terminal» leadinç semicoloî suppresseó echï � |
|||
oæ <CR>/<LF¾ anä semicoloî afteò prompô strinç causeó questioî � |
|||
marë afteò prompô whilå commá afteò prompô suppresseó questioî � |
|||
mark |
|||
|
|||
Statement Syntax/Function |
|||
|
|||
KILL KILL filename |
|||
Delete a disk file |
|||
LINE LINE INPUT [;] [prompt string;] string var |
|||
INPUÔ Reaä aî entirå linå froí terminal» leadinç semicoloî suppresseó � |
|||
echo of <CR>/<LF> |
|||
LINE INPUT #f,string var |
|||
Read an entire line from a disk file |
|||
LSET LSET field var=string exp |
|||
Storå datá iî randoí filå buffeò left-justifieä oò left-justifù � |
|||
a non-disk string in a given field |
|||
OPEN OPEN mode,[#] f,filename |
|||
Open a disk file; mode must be one of -- |
|||
I = sequential input file |
|||
O = sequential output file |
|||
R = random input/output file |
|||
Statement Syntax/Function |
|||
|
|||
PRINT PRINT [USING format string;] exp [,exp ...] |
|||
Print data at the terminal using the format specified |
|||
PRINT #f, [USING format string;] exp [,exp ...] |
|||
Write data to a disk file |
|||
LPRINT [USING format string;] var [,var ...] |
|||
Write data to a line printer |
|||
PUT PUT [#] f [,record number] |
|||
Write data from a random buffer to a data file |
|||
READ READ var [,var ...] |
|||
Read data from a DATA statement into the specified vars |
|||
RSET RSET field var = string exp |
|||
Storå datá iî á randoí filå buffeò righô justifieä oò righô � |
|||
justify a non-disk string in a given field |
|||
WRITE WRITE [list of exps] |
|||
Output data to the terminal |
|||
WRITE #f, list of exps |
|||
Output data to a sequential file or a random field buffer |
|||
:Operators |
|||
|
|||
Symbol Function |
|||
= Assignment or equality test |
|||
- Negation or subtraction |
|||
+ Addition or string concatenation |
|||
* Multiplication |
|||
/ Division (floating point result) |
|||
^ Exponentiation |
|||
\ Integer division (integer result) |
|||
MOD Integer modulus (integer result) |
|||
NOT One's complement (integer) |
|||
AND Bitwise AND (integer) |
|||
OR Bitwise OR (integer) |
|||
XOR Bitwise exclusive OR (integer) |
|||
EQV Bitwise equivalence (integer) |
|||
IMP Bitwise implication (integer) |
|||
=,>,<, Relational tests (TRUE=-1, FALSE=0) |
|||
<=,=<, |
|||
>=,=>, |
|||
<> |
|||
|
|||
The precedence of operators is -- |
|||
1. Expressions in parentheses 8. Relational Operators |
|||
2. Exponentiation 9. NOT |
|||
3. Negation (Unary -) 10. AND |
|||
4. *,/ 11. OR |
|||
5. \ 12. XOR |
|||
6. MOD 13. IMP |
|||
7. +,- 14. EQV |
|||
:Arithmetic Functions |
|||
Function Action |
|||
|
|||
ABS(exp) Absolute value of expression |
|||
ATN(exp) Arctangent of expression (in radians) |
|||
CDBL(exp) Convert the expression to a double precision number |
|||
CINT(exp) Convert the expression to an integer |
|||
COS(exp) Cosine of the expression (in radians) |
|||
|
|||
CSNG(exp) Convert the expression to a single precision number |
|||
EXP(exp) Raises the constant E to the power of the expression |
|||
FIX(exp) Returns truncated integer of expression |
|||
FRE(exp) Gives memory free space not used by MBASIC |
|||
INT(exp) Evaluates the expression for the largest integer |
|||
|
|||
LOG(exp) Gives the natural log of the expression |
|||
RND[(exp)] Generates a random number |
|||
exp <0 seeds new sequence |
|||
exp =0 returns previous number |
|||
exp >0 or omitted returns new random number |
|||
|
|||
Function Action |
|||
|
|||
SGN(exp) 1 if exp >0 |
|||
0 if exp =0 |
|||
-1 if exp <0 |
|||
SIN(exp) Sine of the expression (in radians) |
|||
SQR(exp) Square root of expression |
|||
TAN(exp) Tangent of the expression (in radians) |
|||
:String Functions |
|||
Function Action |
|||
|
|||
ASC(str) Returns ASCII value of first char in string |
|||
CHR$(exp) Returns a 1-char string whose char has ASCII code of exp |
|||
FRE(str) Returns remaining memory free space |
|||
HEX$(exp) Converts a number to a hexadecimal string |
|||
INPUT$(length [,[#]f]) |
|||
Returnó á strinç oæ lengtè charó reaä froí consolå oò froí á � |
|||
disk file; characters are not echoed |
|||
|
|||
INSTR([exp,]str1,str2) |
|||
Returnó thå firsô positioî oæ thå firsô occurrencå oæ str² � |
|||
in str1 starting at position exp |
|||
LEFT$(str,len) Returns leftmost length chars of the string expression |
|||
LEN(str) Returns the length of a string |
|||
MID$(string,start[,length]) |
|||
Returnó charó froí thå middlå oæ thå strinç startinç aô thå � |
|||
positioî specifieä tï thå enä oæ thå strinç oò foò lengtè � |
|||
characters |
|||
|
|||
Function Action |
|||
|
|||
OCT$(exp) Converts an expression to an Octal string |
|||
RIGHT$(str,len) |
|||
Returns rightmost length chars of the string expression |
|||
SPACE$(exp) Returns a string of exp spaces |
|||
STR$(exp) Converts a numeric expression to a string |
|||
STRING$(length,str) |
|||
Returnó á strinç lengtè lonç containinç thå firsô chaò oæ � |
|||
the str |
|||
STRING$(length,exp) |
|||
Returnó á strinç lengtè lonç containinç charó witè numeriã � |
|||
value exp |
|||
VAL(str© Convertó thå strinç representatioî oæ á numbeò tï itó � |
|||
numeric value |
|||
:I/O and Special Functions |
|||
|
|||
Function Action |
|||
CVI(str) Converts a 2-char string to an integer |
|||
CVS(str) Converts a 4-char string to a single precision number |
|||
CVD(str) Converts an 8-char string to a double precision number |
|||
|
|||
EOF(f) Returns TRUE (-1) if file is positioned at its end |
|||
ERL Error Line Number |
|||
ERR Error Code Number |
|||
INP(port) Inputs a byte from an input port |
|||
LOC(f© Returnó nexô recorä numbeò tï reaä oò writå (randoí file© oò � |
|||
number of sectors read or written (sequential file) |
|||
LPOS(n) Returns carriage position of line printer (n is dummy) |
|||
|
|||
MKI$(value) Converts an integer to a 2-char string |
|||
MKS$(value) Converts a single precision values to a 4-char string |
|||
MKD$(value) Converts a double precision value to an 8-char string |
|||
|
|||
|
|||
Function Action |
|||
|
|||
PEEK(exp) Reads a byte from memory location specified by exp |
|||
POS(n) Returns carriage position of terminal (n is dummy) |
|||
|
|||
SPC(exp) Used in PRINT statements to print spaces |
|||
TAB(exp) Used in PRINT statements to tab to specified position |
|||
|
|||
USR[n](arg) Calls the user's machine language subroutine with the arg |
|||
|
|||
VARPTR(var© Returnó addresó oæ vaò iî memorù oò zerï iæ vaò haó noô beeî � |
|||
assigned a value |
|||
VARPTR(#f© Returnó thå addresó oæ thå disë I/Ï buffeò assigneä tï filå � |
|||
number |
|||
:Interpreter Error Codes |
|||
Code Error Code Error |
|||
1 NEXT without FOR 14 Out of string space |
|||
2 Syntax error 15 String too long |
|||
3 RETURN without GOSUB 16 String formula too complex |
|||
4 Out of data 17 Can't continue |
|||
5 Illegal function call 18 Undefined user function |
|||
6 Overflow 19 No RESUME |
|||
7 Out of memory 20 RESUME without error |
|||
8 Undefined line 21 Unprintable error |
|||
9 Subscript out of range 22 Missing operand |
|||
10 Redimensioned array 23 Line buffer overflow |
|||
11 Division by zero 26 FOR without NEXT |
|||
12 Illegal direct 29 WHILE without WEND |
|||
13 Type mismatch 30 WEND without WHILE |
|||
|
|||
|
|||
Disk Errors -- |
|||
Code Error Code Error |
|||
|
|||
50 Field overflow 58 File already exists |
|||
51 Internal error 61 Disk full |
|||
52 Bad file number 62 Input past end |
|||
53 File not found 63 Bad record number |
|||
54 Bad file mode 64 Bad file name |
|||
55 File already open 66 Direct statement in file |
|||
57 Disk I/O error 67 Too many files |
|||
:Introduction to the Microsoft BASIC Compiler |
|||
|
|||
Thå followinç direcô modå commandó arå NOÔ implementeä oî thå compileò � |
|||
and will generate an error message -- |
|||
|
|||
AUTO CLEAR CLOAD |
|||
CSAVE CONT DELETE |
|||
EDIT LIST LLIST |
|||
RENUM COMMON SAVE |
|||
LOAD MERGE NEW |
|||
ERASE |
|||
|
|||
Thå followinç statementó arå useä differentlù witè thå compileò thaî � |
|||
with the interpreter (refer to the manual for details) -- |
|||
|
|||
CALL DEFINT DEFSNG |
|||
DEFDBL DEFSTR DIM |
|||
ERASE END ON ERROR GOTO |
|||
RESUME STOP TRON |
|||
TROFF USRn |
|||
:BASIC Compiler Commands and Switches |
|||
|
|||
The compiler is invoked by the BASCOM command; it may be called by -- |
|||
|
|||
BASCOM |
|||
or |
|||
BASCOM command line |
|||
|
|||
where "command line" is -- |
|||
|
|||
[dev:][obj file][,[dev:][lst file]]=[dev:]source file[/switch ...] |
|||
|
|||
Iæ jusô BASCOÍ ió used¬ thå useò wilì bå prompteä witè aî asterisk¬ � |
|||
after which he should enter the command line. |
|||
|
|||
Switches -- |
|||
|
|||
/E Use this switch if ON ERROR GOTO with RESUME <line number> is used |
|||
|
|||
/Ø Uså thió switcè iæ OÎ ERROÒ GOTÏ witè RESUME¬ RESUMÅ 0¬ oò RESUMÅ NEXÔ � |
|||
is used |
|||
|
|||
/N Do not list generated object code |
|||
|
|||
/D Generate debug/checking code at runtime |
|||
|
|||
/S Write quoted strings of more than 4 chars as they are encountered |
|||
|
|||
/4 Recognize Microsoft 4.51 BASIC Interpreter conventions |
|||
|
|||
/Ã Relaø linå numberinç constraints» lineó neeä noô bå numbereä � |
|||
sequentially; /4 and /C may not be used together |
|||
|
|||
/Z Use Z80 opcodes |
|||
:BASIC Compiler Error Messages |
|||
Compile-Time Fatal Errors |
|||
|
|||
SN Syntax error OM Out of memory |
|||
SQ Sequence error TM Type mismatch |
|||
TC Too complex BS Bad subscript |
|||
LL Line too long UC Unrecognizable command |
|||
OV Math overflow /0 Division by zero |
|||
|
|||
DD Array already dim'ed FN FOR/NEXT error |
|||
FD Function already def UF Function not defined |
|||
WE WHILE/WEND error /E Missing /E switch |
|||
/X Missing /X switch |
|||
|
|||
Compile-Time Warning Errors |
|||
|
|||
ND Array not dimensioned SI Statement ignored |
|||
|
|||
|
|||
Run-Time Error Messages |
|||
|
|||
2 Syntax error 52 Bad file number |
|||
3 RETURN without GOSUB 53 File not found |
|||
4 Out of data 54 Bad file mode |
|||
5 Illegal function call 55 File already open |
|||
6 Floating/Integer ovfl 57 Disk I/O error |
|||
|
|||
9 Subscript out of range 58 File already exists |
|||
11 Division by zero 61 Disk full |
|||
14 Out of string space 62 Input past end |
|||
20 RESUME without error 63 Bad record number |
|||
21 Unprintable error 64 Bad filename |
|||
|
|||
50 Field overflow 67 Too many files |
|||
51 Internal error |
|||
|
|||
@ -1,159 +0,0 @@ |
|||
Invoking FORTRAN-80 and MACRO-80 |
|||
FORTRAN-80 Compilation Switches |
|||
FORTRAN-80 Library Subroutines |
|||
FORTRAN-80 Logical Device Assignments |
|||
Invoking LINK-80 |
|||
LINK-80 Switches |
|||
Creating a FORTRAN-80 .COM File |
|||
:Invoking FORTRAN-80 and MACRO-80 |
|||
Thå FORTRAN-8° compileò anä thå MACRO-8° assembler¬ nameä F8° anä M8° � |
|||
respectively¬ arå invokeä iî á similaò fashion® Iî botè cases¬ thå namå oæ � |
|||
thå prograí ió giveî followeä bù aî argumenô list® Thió argumenô lisô ió � |
|||
of the general form -- |
|||
obj-dev:filename.ext,list-dev:filename.ext= |
|||
source-dev:filename.ext |
|||
These symbols are defined as follows -- |
|||
obj-dev: The device on which the object program is to be written. |
|||
list-dev: The device on which the program listing is written. |
|||
source-devº Thå devicå froí whicè thå sourcå prograí inpuô tï � |
|||
FORTRAN-80 or MACRO-80 is obtained. |
|||
filename.extº Thå filenamå anä filenamå extensioî oæ thå objecô � |
|||
prograí file¬ thå listinç file¬ anä thå sourcå prograí file® |
|||
|
|||
Thå defaulô extensions are -- |
|||
|
|||
FOR FORTRAN-80 Source File |
|||
MAC MACRO-80 Source File |
|||
PRN Print (Listing) File |
|||
REL Relocatable Object File |
|||
COM Absolute Object File ORGed to 100H |
|||
|
|||
Thå specificationó foò eitheò thå objecô file¬ thå listinç file¬ oò � |
|||
botè maù bå omitted® Iæ neitheò á listinç filå noò aî objecô filå ió � |
|||
desired¬ placå onlù á commá tï thå lefô oæ thå equaì sign® Iæ thå nameó oæ � |
|||
thå objecô filå anä thå listinç filå arå omitted¬ thå defaulô ió thå namå � |
|||
of the source file. Logical CP/M devices may be specified as follows -- |
|||
|
|||
A:, B: Disk Drives (Only A: or B:) |
|||
HSR: High Speed Reader |
|||
LST: Line Printer |
|||
TTY: Teletype or CRT |
|||
|
|||
Examples -- |
|||
A>F80 |
|||
*=TEST |
|||
Compile the program TEST.FOR and place the object in TEST.REL |
|||
*,TTY:=TEST |
|||
Compilå thå prograí TEST.FOÒ anä lisô thå prograí oî thå � |
|||
terminal. No object is generated. |
|||
*TESTOBJ=TEST.FOR |
|||
Compile the program TEST.FOR and put object in TESTOBJ.REL |
|||
*TEST,TEST=TEST |
|||
Compilå TEST.FOR¬ anä puô objecô iî TEST.REÌ anä listinç iî � |
|||
TEST.PRN |
|||
*,=TEST.FOR |
|||
Compilå TEST.FOÒ buô producå nï objecô oò listinç file® Usefuì � |
|||
for checking for errors. |
|||
|
|||
Iî alì cases¬ thå ª ió thå prompô froí FORTRAN-80® Thå indicateä � |
|||
operationó maù alsï bå performeä bù typinç 'F80§ followeä bù thå option¬ � |
|||
like 'F80 =TEST'. |
|||
Refer to the 'FORTRAN-80 User's Manual', Copyright 1977, by Microsoft. |
|||
:FORTRAN-80: FORTRAN-80 Compilation Switches |
|||
Á numbeò oæ differenô switcheó maù bå giveî iî thå commanä strinç thaô � |
|||
wilì affecô thå formaô oæ thå listinç file® Eacè switcè shoulä bå precedeä � |
|||
by a slash (/): |
|||
|
|||
Switch Function |
|||
------ -------- |
|||
O Print all listing addresses in octal |
|||
H Print all listing addresses in hexadecimal (default) |
|||
N Do not list generated code |
|||
R Force generation of an object file |
|||
L Force generation of a listing file |
|||
P Each /P allocates an extra 100 bytes of runtime stack space |
|||
Í Specifieó tï thå compileò thaô thå generateä codå shoulä bå iî a |
|||
form which can be loaded into ROM. |
|||
|
|||
:FORTRAN-80: FORTRAN-80 Library Subroutines |
|||
Thå standarä librarù (FORLIB.REL© includeó thå followinç subroutineó � |
|||
and functions -- |
|||
|
|||
ABS IABS DABS AINT INT IDINT |
|||
AMOD MOD AMAX0 AMAX1 MAX0 MAX1 |
|||
DMAX1 AMIN0 AMIN1 MIN0 MIN1 DMIN1 |
|||
FLOAT IFIX SIGN ISIGN DSIGN DIM |
|||
IDIM SNGL DBLE EXP DEXP ALOG |
|||
DLOG ALOG10 DLOG10 SIN DSIN COS |
|||
DCOS TANH SQRT DSQRT ATAN DATAN |
|||
ATAN2 DATAN2 DMOD PEEK POKE INP |
|||
OUT |
|||
|
|||
:FORTRAN-80: FORTRAN-80 Logical Device Assignments |
|||
|
|||
LUN* Device |
|||
---- ------
Š 1,3,4,5 Preassigned to CON: |
|||
2 Preassigned to LST: |
|||
6-10 Preassigned to Disk Files (Reassignable) |
|||
11-255 User-Assignable |
|||
|
|||
* LUN = Logical Unit Number |
|||
:LINK-80: Invoking LINK-80 |
|||
Eacè commanä tï LINK-8° consistó oæ á numbeò oæ filenameó anä switcheó � |
|||
separated by commas -- |
|||
obj-dev1:filename.ext/sw1,obj-dev2:filename.ext, ... |
|||
Iæ thå inpuô devicå foò á filå ió omitted¬ thå defaulô ió thå � |
|||
currentlù loggeä disk® Iæ thå extensioî oæ á filå ió omitted¬ thå defaulô � |
|||
ió .REL® Afteò eacè linå ió typed¬ LINK-8° wilì loaä oò searcè thå � |
|||
specifieä files¬ and¬ wheî finished¬ iô wilì lisô alì symboló thaô remaiî � |
|||
undefineä followeä bù aî asterisk® LINK-8° ió invokeä bù thå prograí namå � |
|||
'L80'. |
|||
LINK-8° caî bå useä tï generatå á .COÍ filå oæ á FORTRAN-8° program® � |
|||
This can be done by typing -- |
|||
L80 program/E |
|||
LINK-80 will respond with a string of the form -- |
|||
[aaaa bbbb nn] |
|||
The user may then create the .COM file by typing -- |
|||
SAVE nn program.COM |
|||
:LINK-80: LINK-80 Switches |
|||
Thå followinç arå thå switcheó foò LINK-80® Aó foò FORTRAN-80¬ theså � |
|||
switches are preceeded by a slash (/). |
|||
|
|||
Switch Function |
|||
------ -------- |
|||
R Reset. Initialize loader. |
|||
E,E:namå Exiô LINK-80® FORLIB.REÌ wilì bå searcheä tï satisfù existinç � |
|||
undefineä references® Iæ 'name§ ió specified¬ thå valuå oæ thió � |
|||
symbol is used as the start address of the program. |
|||
G,G:namå Go® Starô executioî oæ program® FORLIB.REÌ wilì bå searcheä tï � |
|||
satisfy any existing undefined references. |
|||
U List all undefined references. |
|||
Í Map® Lisô alì defineä referenceó anä theiò values» alì undefineä � |
|||
references are followed by an asterisk. |
|||
Ó Search® Searcè thå filå specifieä beforå thió switcè tï satisfù � |
|||
references. |
|||
Î Iæ á filename/Î ió specified¬ thå prograí wilì bå saveä oî disë � |
|||
under the selected name with a default extension of .COM. |
|||
P and D See Addenda to Section 2 of documentation. |
|||
|
|||
Threå numberó arå specifieä afteò thå /Å anä /Ç switcheó arå executed® � |
|||
They are given in the form -- |
|||
[aaaa bbbb nn] |
|||
aaaa - start address of program |
|||
bbbb - address of next available byte |
|||
nn - number of 256-byte pages used |
|||
:Creating a FORTRAN-80 .COM File |
|||
Therå arå twï basiã wayó tï creatå á .COÍ filå oæ á FORTRAN-8° � |
|||
program® Foò example¬ tï generatå PROG.COÍ froí PROG.FOR¬ proceeä iî onå � |
|||
of the following ways -- |
|||
|
|||
I. Using SAVE |
|||
F80 =PROG |
|||
L80 PROG/E |
|||
[aaaa bbbb nn] -- response from LINK-80 (necessary data) |
|||
SAVE nn PROG.COM |
|||
|
|||
II. Using /N LINK-80 Switch |
|||
F80 =PROG |
|||
L80 PROG/E,PROG/N |
|||
|
|||
@ -1,215 +0,0 @@ |
|||
Compiler Operation |
|||
Invoking Pascal |
|||
Compilation Switches |
|||
File Input/Output |
|||
Special Functions and Procedures |
|||
Pascal/MT Symbolic Debugger |
|||
Pascal/MT Reserved Words |
|||
Notes |
|||
:Compiler Operation |
|||
|
|||
Thå Pascal/MÔ compileò existó iî twï versions¬ eacè consistinç oæ twï � |
|||
808° objecô codå filesº FLTCOMP.COÍ (renameä PASCAL.COÍ oî ARIES-1© anä � |
|||
P2/FLT.OVÌ foò thå versioî iî whicè REAÌ numberó arå implementeä aó � |
|||
floatinç poinô valueó internallù anä BCDCOMP.COÍ anä P2/BCD.OVÌ foò thå � |
|||
versioî iî whicè REAÌ numberó arå implementeä aó BCÄ valueó internally® � |
|||
Theså fileó arå Pasó ± anä Pasó ² oæ thå Pascal/MÔ compiler¬ respectively® � |
|||
Alsï requireä bù thå compileò arå thå followinç fileó -- |
|||
|
|||
P1ERRORS.TXT - Pass 1 Error Messages |
|||
P2ERRORS.TXT - Pass 2 Error Messages |
|||
PASCAL/F.RTÐ - Run-timå Packagå (includinç debugger© foò FLT |
|||
PASCAL/B.RTP - Run-time Package (including debugger) for BCD |
|||
|
|||
Thå inpuô fileó tï thå Pascal/MÔ compileò musô havå thå extensioî � |
|||
'.SRC§ oò '.PAS§ indicatinç thaô iô ió á sourcå prograí file® Therå musô � |
|||
bå á carriagå return/linå feeä sequencå aô thå enä oæ eacè inpuô linå anä � |
|||
aî inpuô linå maù noô bå longeò thaî 8° characters. |
|||
:Invoking Pascal |
|||
|
|||
Thå Pascal/MÔ compileò ió invokeä oî ARIES-± bù usinç thå followinç � |
|||
commanä -- |
|||
|
|||
PASCAL filename.DL |
|||
|
|||
wherå 'filename§ ió thå namå oæ thå filå witè thå extensioî '.SRC§ oò � |
|||
'.PAS§ containinç thå Pascal/MÔ sourcå statementó tï bå compiled¬ Ä ió Ù oò � |
|||
Î tï indicatå whetheò tï includå thå debuggeò iî thå resultanô .COÍ file¬ � |
|||
anä Ì ió Ù oò Î tï indicatå whetheò tï producå á .PRÎ filå (listing)® � |
|||
PASCAÌ defaultó tï nï debuggeò anä nï listing® Thå fouò invocatioî optionó � |
|||
are -- |
|||
|
|||
PASCAL filename - no debugger, no listing |
|||
PASCAL filename.Y - debugger, no listing |
|||
PASCAL filename.NY - no debugger, listing |
|||
PASCAL filename.YY - debugger, listing |
|||
|
|||
Foò usagå witè thå BCÄ versioî oæ thå compiler¬ thå commandó arå � |
|||
similar except that 'PASCAL' is replaced by 'BCDCOMP'. |
|||
:Compilation Switches |
|||
Compile-timå optionó maù bå specifieä tï thå compileò froí withiî thå � |
|||
sourcå file® Sucè optionó takå thå forí oæ speciaì comments® Thå forí oæ � |
|||
theså commentó is |
|||
(*$o info*) or {$o info} |
|||
wherå 'o§ ió thå letteò oæ thå optioî anä 'info§ ió informatioî � |
|||
particular to that option. These options are --
Š |
|||
$I<filename> Include <filename>.SRC into source stream |
|||
$L+ or $L- Turn listing on (default) or Turn listing off |
|||
$P Insert form feed into .PRN file |
|||
$D+ or $D- Turn debug code on (default) or Turn debug code off |
|||
$C+ Use CALL instructions for real operations |
|||
$Cn Use RST n for real operations (n=0 ... 7) |
|||
$O $aaaa ORG program (run-time) at $aaaa (default 100H) |
|||
$R $bbbb ORG RAM data at $bbbb |
|||
$Z $cc00 Set run-time size to $cc 256-byte pages |
|||
$X $dddd Set run-time stack space to $dddd (default $200) |
|||
$S+ or $S- Turn recursion or or Turn recursion off (default) |
|||
$Q+ or $Q- Enable verbose output (default) or Disable verbose |
|||
:File Input/Output |
|||
Thå standarä Pascaì READ¬ READLN¬ WRITE¬ anä WRITELÎ statementó � |
|||
arå implementeä foò thå CP/Í consolå device® WRITÅ oò WRITELÎ tï á � |
|||
built-iî filå calleä PRINTEÒ ió alloweä tï directlù accesó thå CP/Í � |
|||
list device (like, WRITE(PRINTER,'Hello')). |
|||
The following extensions are implemented to handle files -- |
|||
OPEN(fcbname,title,result{,extent_number}); |
|||
(extent_number defaults to 0) |
|||
CLOSE(fcbname,result); |
|||
CREATE(fcbname,title,result); |
|||
DELETE(fcbname); |
|||
BLOCKREAD(fcbname,buffer,result{,relativeblock}); |
|||
BLOCKWRITE(fcbname,buffer,result{,relativeblock}); |
|||
where fcbname : a variable of type TEXT (array 0..32 of CHAR) |
|||
title : ARRAY [0..11] of CHAR with |
|||
title[0]=disë selecô bytå (0=loggeä iî disk¬ � |
|||
1=A,...) |
|||
title[1..8]=filename and title[9..11]=filetype |
|||
result : integer to contain returned value |
|||
buffer : ARRAY [0..127] of CHAR |
|||
relativeblock : optional integer 0..255 |
|||
:Special Functions and Procedures |
|||
|
|||
Pascal/MT supports the following special routines -- |
|||
|
|||
PROC MOVE(source,dest,length-in-bytes); |
|||
PROC EXIT; |
|||
FUNC TSTBIT(16-bit-var,bit#):BOOLEAN; |
|||
PROC SETBIT(VAR 16-bit-var,bit#); |
|||
PROC CLRBIT(VAR 16-bit-var,bit#); |
|||
FUNC SHR(16-bit-var,#bits):16-bit-result; {Shift Right} |
|||
FUNC SHL(16-bit-var,#bits):16-bit-result; {Shift Left} |
|||
FUNC LO(16-bit-var):16-bit-result; |
|||
FUNC HI(16-bit-var):16-bit-result; |
|||
FUNC SWAP(16-bit-var):16-bit-result; |
|||
FUNC ADDR(variable reference):16-bit result; |
|||
PROC WAIT(portnum:constant; mask:constant; polarity:boolean); |
|||
FUNC SIZEOF(variable or type name):integer; |
|||
Please refer to pp 32-33 of "Pascal/MT 3.0 Guide" for further info. |
|||
:Pascal/MT Symbolic Debugger |
|||
|
|||
Thå debugginç facilitieó availablå tï thå useò wheî usinç thå �Šdebuggeò falì intï twï catagorieó -- prograí flo÷ controì anä variablå � |
|||
display. |
|||
|
|||
Iæ thå useò wisheó tï seå thå commandó durinç thå executioî oæ � |
|||
the debugger, type a '?' followed by a return. |
|||
|
|||
Thå prograí flo÷ commandó provideä iî thå symboliã debuggeò allo÷ � |
|||
thå useò tï debuç thå Pascal/MÔ prograí aô thå Pascaì sourcå statemenô � |
|||
level® Includeä arå go/continuå (witè optionaì breakpoint)¬ trace¬ � |
|||
set/clear/displaù permanenô breakpoinô anä á modå whicè wilì displaù � |
|||
thå namå oæ eacè procedure/functioî oî thå consolå aó thå procedurå oò � |
|||
function is entered. |
|||
|
|||
These commands are discussed briefly on the following displays -- |
|||
|
|||
Debugger Command: G - Go with optional breakpoint |
|||
|
|||
Syntax: G{,<linenumber>} |
|||
G{,<proc/func name>} |
|||
|
|||
Gï resumeó executioî wherå thå prograí lasô stopped® Breakpoinô � |
|||
may be optionally set at a specific line or function/procedure. |
|||
|
|||
Debugger Command: T - Trace |
|||
|
|||
Syntax: T{<integer>} |
|||
|
|||
Execute one or more lines of the program. |
|||
|
|||
Debugger Command: E - Procedure/Function Display Toggle |
|||
|
|||
Syntax: {-}E |
|||
|
|||
Å engageó displaù oæ thå nameó oæ procedures/functionó entered» � |
|||
-Å disengageó it. |
|||
|
|||
Debugger Command: S - Set/Clear Slow Execution Mode |
|||
|
|||
Syntax: {-}S |
|||
|
|||
Ó allowó thå useò tï selecô Fast¬ Medium¬ oò Slo÷ executioî � |
|||
speed; -S causes the program to run at full speed. |
|||
|
|||
Debugger Command: P - Set/Clear Permanent Breakpoint |
|||
|
|||
Syntax: -P (* Clears breakpoint *) |
|||
P<linenumber> |
|||
P<proc/func name> |
|||
|
|||
P sets the permanent breakpoint; -P clears it. |
|||
|
|||
Debugger Command: B - Display Permanent Breakpoint |
|||
|
|||
Syntax: B |
|||
|
|||
Displays line the permanent breakpoint is set for. |
|||
|
|||
Debugger Command: D - Variable Display |
|||
|
|||
Syntax: D <global var> |
|||
D <proc/func name>:<local var> |
|||
D <func name> |
|||
D <pointer name>^ |
|||
|
|||
The D command is used as indicated. |
|||
|
|||
Debugger Commands: +,-,* - Variable Display |
|||
|
|||
Syntax: * -- display last value requested (using D or some other) |
|||
+n -- display variable n bytes forward from last |
|||
-n -- display variable n bytes backward from last |
|||
:Pascal/MT Reserved Words |
|||
|
|||
ABS DO LO READ TSTBIT |
|||
ADDR DOWNTO MAXINT READLN TYPE |
|||
AND ELSE MOD REAL UNTIL |
|||
ARRAY ENABLE MOVE RECORD VAR |
|||
BEGIN END NIL REPEAT WAIT |
|||
BLOCKREAD EXIT NOT RIM85 WHILE |
|||
BLOCKWRITE EXTERNAL ODD ROUND WRITE |
|||
BOOLEAN FALSE OF SETBIT WRITELN |
|||
CASE FILE OPEN SHL |
|||
CHAIN FOR OR SHR |
|||
CHAR FUNCTION ORD SIM85 |
|||
CHR GOTO OUTPUT SIZEOF |
|||
CLOSE HI PACKED SQR |
|||
CLRBIT IF PRED SQRT |
|||
CONST INLINE PRINTER SUCC |
|||
CREATE INPUT PROCEDURE SWAP |
|||
DELETE INTEGER PROGRAM THEN |
|||
DISABLE INTERRUPT RANDOMREAD TO |
|||
DIV LABEL RANDOMWRITE TRUE |
|||
:Notes |
|||
1. Hexadecimal values may be specified as $hhhh, like $1A = 1AH. |
|||
2® Alì standarä Pascaì typå definitionó excepô ARRAÙ arå supported® � |
|||
Thå standarä forí ARRAY...OÆ ARRAY..® musô bå specifieä aó � |
|||
ARRAY[...,...,...], and a maximum of three dimensions may be used. |
|||
3. Type TEXT is ARRAY [0..35] OF CHAR. |
|||
4® Interrupô Procedures¬ declareä aó "PROCEDURÅ INTERRUPT[iÝ proc;"¬ � |
|||
are supported, where i is the restart vector number (0..7). |
|||
5® CP/Í V² randoí filå accesó ió supporteä bù RANDOMREAÄ anä � |
|||
RANDOMWRITE. |
|||
6® Machinå code¬ constanô data¬ anä assemblù languagå codå maù bå � |
|||
inserted using INLINE (see pp 37-39 of "Pascal/MT 3.0 User Guide"). |
|||
7. Chaining is supported by CHAIN, whose usage is "CHAIN(filename)". |
|||
8. Redirected I/O is supported (see pp 42-43). |
|||
|
|||
Loading…
Reference in new issue