332 lines
7.7 KiB
Groff
332 lines
7.7 KiB
Groff
|
||
TERMINATING COMPILATION
|
||
THE COMPILER RUNS IN MACHINE LANGUAGE SO CTRL-C WOULD NORMALLY BE
|
||
IGNORED AND RESET WOULD BE NECESSARY INSTEAD. TO TERMINATE:
|
||
|
||
CTRL-C IF USED STOPS COMPILATION, BUT ALSO DELETES THE OBJECT FILE IF
|
||
COMPILATION IS ABORTED. TASC MODIFIES DOS, SO BY USING CTRL-C,OR RESET
|
||
THEN DOS MUST BE REBOOTED. CORRECTLY EXITING THE COMPILER RESTORES DOS
|
||
TO ITS NORMAL STATE.
|
||
|
||
COMPILING LARGE PROGRAMS
|
||
|
||
LARGE PROGRAMS MAY DISPLAY A SYMBOL TABLE FULL ERROR. ONE WAY TO
|
||
CORRECT THIS MESSAGE IS TO TURN OFF THE INTEGER CONSTANTS OPTION. IF
|
||
CONSTANT IS NEEDED LATER IT CAN BE A FP, AND ENTERED INTO THE SYMBOL
|
||
TABLE. THE INTEGER ENTRY TAKES FIVE LOCATIONS, FP ENTRY TAKES EIGHT
|
||
LOCATIONS. WITH INTEGER CONSTANTS OPTION OFF, CONSTANTS ARE STORED IN
|
||
FP FORM. TURNING OFF THE OPTION SAVES FIVE LOCATIONS FOR EVERY
|
||
CONSTANT THAT IS REFERENCED AS FP VALUE.
|
||
|
||
TURNING OFF THE INTEGER CONSTANTS OPTION ALSO SLOWS DOWN THE OBJECT
|
||
CODE,SO THE OPTION SHOULD BE LEFT ON WHENEVER POSSIBLE.
|
||
|
||
#2 SEPARATE PROGRAM INTO PARTS:
|
||
USE THE COMMON COMMAND AND TRY TO SPLIT THE PROGRAM INTO PARTS AS
|
||
NATURAL DIVISIONS AS POSSIBLE. PROGRAMS WITHOUT NATURAL DIVISIONS MAY
|
||
PRESENT A PROBLEM SO YOU MUST MAKE ARTIFICIAL DIVISIONS.THE TECHNIQUE
|
||
OF SPLITTING A LARGE PROGRA INTO SMALLER PROGRAMS THAT RUN IN SEQUENCE
|
||
CAN SOLVE ALMOST ANY PROBLEM WITH PROGRAM SIZE. PASSING VALUES WITH
|
||
COMMON MAKES SEPARATING PROGRAMS A MANAGEABLE PROBLEM.
|
||
|
||
|
||
EXECUTING A COMPILED PROGRAM****
|
||
|
||
1. INTERPRETED PROGRAMS ARE STORED AS APPLESOFT FILES INDICATED BY A
|
||
"A".THESE FILES ARE EXECUTED BY A RUN COMMAND.
|
||
|
||
2. COMPILED PROGRAMS ARE STORED AS BINARY "B" AND MUST BE EXECUTED BY
|
||
A BRUN COMMAND. THE NORMAL SEQUENCE FOR EXECUTING A COMPILED PROGRAM
|
||
IS :
|
||
|
||
BLOAD RUNTIME
|
||
BRUN <FILE NAME>
|
||
|
||
COMPILED PROGRAMS WILL ONLY WORK IN APPLESOFT LANGUAGE NOT **INTEGER
|
||
BASIC**
|
||
|
||
USING THE AMPERSAND(&):
|
||
ONCE THE COMPILED PGM HAS BEEN LOADED AND EXECUTED, IT CAN BE
|
||
RE-EXECUTED BY TYPING AN (&) FOLLOWED BY <RETURN>. USING THE (&) IS
|
||
MUCH MORE CONVENIENT THAT HAVING TO CALL THE CODE.
|
||
|
||
HALTING EXECUTION OF COMPILED PGM:
|
||
<RESET> FOLLOWED BY NEW
|
||
|
||
NEW:
|
||
|
||
NEW CAUSES THE INTERPRETER TO RESET POINTERS, BUT NOT CLEAR THE
|
||
PROGRAM SPACE. THEREFORE THE PROGRAM CAN BE SAFELY RE-EXECUTED IF NO
|
||
PROGRAM LINES HAVE BEEN TYPED IN AND STORED INTO THE PROGRAM SPACE.
|
||
|
||
IMMEDIATE COMMANDS:
|
||
NONE
|
||
|
||
|
||
STATEMENTS NOT IMPLEMENTED:
|
||
|
||
THE FOLLOWING COMMANDS ARE \ NOT \ INCLUDED IN TASC
|
||
|
||
CONT DEL LIST
|
||
LOAD SAVE LOMEM:
|
||
& RECALL NOTRACE
|
||
SHLOAD STORE TRACE
|
||
|
||
THE FOLLOWING COMMANDS ARE SUPPORTED WITH SOME LIMITATIONS:
|
||
|
||
DEF FN DIM <CTRL-C>
|
||
|
||
|
||
DEF FN:
|
||
IN THE INTERPRETER, A DEF FN DOES NOT DEFINE A FUNCTION UNTIL THE DEF
|
||
FN STATEMENT IS ACTUALLY EXECUTED AT RUNTIME. THE COMPILER, ON THE
|
||
OTHER HAND SCANS ALL FUNCTIONS DEFINITIONS AT COMPILETIME. THEREFORE
|
||
FUNCTION DEF CAN BE LOCATED ANYWHERE WITHIN THE SOURCE FILE. THE
|
||
SOURCE CANNOT CONTAIN MORE THAN ONE DEF FOR A GIVEN FUNCTION,EVEN IF
|
||
IDENTICAL.
|
||
|
||
DIM:
|
||
EXECUTING A DIM STATEMENT IN WHICH THE SPECIFIED DIMENSIONS ARE
|
||
CONSTANTS SETS ASIDE THE SAME AMOUNT OF STORAGE FOR THE ARRAY EACH
|
||
TIME THE PGM IS RUN.
|
||
|
||
EXECUTING A DIM STATEMENT IN WHICH THE SPECIFIED DIMS ARE ARITHMETIC
|
||
EXPRESSIONS SETS ASIDE SPACE FOR THE ARRAY DEPENDING ON THE COMPUTED
|
||
VALUE OF THE EXPRESSION.
|
||
|
||
DEFAULT DIM- IF AN ARRAY REF IS ENCOUNTERED BEFORE A DIM STATEMENT,THE
|
||
ARRAY IS GIVEN THE DEFAULT MAX VALUE OF 10 FOR EACH DIM OF THE
|
||
ARRAY.APPLESOFT ALLOWS THE USE OF 0 AS AN ARRAY SUBSCRIPT,SO AN ARRAY
|
||
DIMED AT 10 IS ACTUALLY 11 (0-10)
|
||
|
||
CTRL-C:
|
||
TYPING CTRL-C DURING INPUT HALTS THE PGM
|
||
|
||
IF THEN:
|
||
THE COMPILER SUPPORTS ITS USE, BUT AN IF/THEN STATEMENT WITH A STRING
|
||
EXPRESSION IS FLAGED AS AN ERROR DURING COMPILATION.
|
||
|
||
GET:
|
||
WORKS FINE
|
||
|
||
READ:
|
||
WORKS FINE
|
||
|
||
ONERR GOTO:
|
||
USED WITH RESUME/DEBUG NEW,END,STOP:
|
||
|
||
NEW-ERASES THE CURRENT PROGRAM
|
||
STOP-PRINTS THE MESSAGE "BREAK IN ####"
|
||
END- TERMINATE EXECUTION
|
||
|
||
GARBAGE COLLECTION:
|
||
EACH TIME GC IS NECESSARY, THE PROGRAM SIMPLY SUSPENDS EXECUTION WHILE
|
||
THE GC ROUTINE HOUSE-CLEANS.
|
||
|
||
LANGUAGE ENHANCEMENTS:
|
||
INTEGER:
|
||
|
||
CHR$ COLOR= DRAW
|
||
FOR HCOLOR= HLIN
|
||
HPLOT HTAB IN#
|
||
LEFT$ LET MID$
|
||
ON GOSUB/TO PDL PLOT
|
||
POKE(2) PR# RIGHT$
|
||
ROT= SCALE= SCRN
|
||
SPEED= SPC SUBSCRIPTS
|
||
TAB VLIN VTAB
|
||
WAIT XDRAW
|
||
|
||
THE ABOVE OPERATIONS EXPECT INTEGER VALUES.
|
||
|
||
INTEGER ARITHMETIC PACKAGE:
|
||
|
||
ADDITION MULTIPLICATION
|
||
NEGATION SUBTRACTION
|
||
|
||
THE FOLLOWING INTEGER OR FP
|
||
|
||
AND FRE IF/THEN
|
||
NOT OR POS
|
||
|
||
THE FOLLOWING RETURN INTEGER VALUES:
|
||
|
||
ASC LEN PDL
|
||
PEEK POS SCRN
|
||
|
||
|
||
COMMON:
|
||
|
||
CLEAR COMMON:
|
||
CLEAR CHAIN:
|
||
DEFCOMMON:
|
||
USECOMMON:
|
||
|
||
|
||
THE DEFCOMMON AND USECOMMON STATEMENTS ARE DESIGNED FOR CREATING LARGE
|
||
SYSTEMS OF PROGRAMS THAT COMMUNICATE WITH EACH OTHER.
|
||
|
||
MENU
|
||
|
||
|
||
1000 INPUT "WHICH PACKAGE?".N
|
||
1010 IF N = 1 THEN ? D$"BRUN GL"
|
||
1020 IF N = 2 THEN ? D$"BRUN AP"
|
||
1030 IF N = 3 THEN ? D$"BRUN AR"
|
||
|
||
|
||
GL
|
||
|
||
10 REM!DEFCOMMON A,B(3,4),C$
|
||
.
|
||
.
|
||
1000 REM!CLEAR CHAIN
|
||
1010 ? D$"BRUN GL1"
|
||
|
||
GL1
|
||
|
||
10 REM!USECOMMON A1,B1(3,4),C1$
|
||
.
|
||
.
|
||
1000 REM!CLEAR CHAIN
|
||
1010 ? D$"BRUN GL2"
|
||
|
||
GL2
|
||
|
||
10 REM!USECOMMON A2,B2(3,4),C2$
|
||
.
|
||
.
|
||
1000 REM!CLEAR CHAIN
|
||
1010 ? D$"BRUN GL3"
|
||
|
||
GL3
|
||
|
||
10 REM!USECOMMON A3,B3(3,4),C3$
|
||
.
|
||
.
|
||
1000 ? D$"BRUN MENU"
|
||
|
||
|
||
PASS1:
|
||
FIRST PASS, PERFORMS SYNTAX ANALYSIS AND GENERATES MOST OF THE CODE.
|
||
ALSO COLLECTS INFO ABOUT VARIABLES,LINE NUMBERS, AND STORES IT IN
|
||
SYMBOL TABLE
|
||
|
||
PASS2:
|
||
USES INFO FROM PASS1 AND USES THE SYMBOL TABLE TO STORE INFO.ALSO
|
||
DECIDES HOW MUCH STORAGE SHOULD BE ALLOCATED.
|
||
|
||
|
||
SYNTAX ANALYSIS:
|
||
LEXICAL-PRINT,FOR BECOMES UNDER LEXICAL TOKENS
|
||
|
||
|
||
|
||
|
||
ERROR MESSAGES AND DEBUGGING:
|
||
|
||
DECLARATION:
|
||
INTEGER OR COMMON DECLARATIONS OUT OF SEQUENCE OR NOT AS BEGINNING OF
|
||
PGM USECOMMON AND DEFCOMMON BOTH DECLARED IN A SINGLE PROGRAM VARIABLE
|
||
DECLARED AS COMMON MORE THAN ONCE.
|
||
|
||
|
||
INCOMPLETE:
|
||
INCOMPLETE EXPRESSION MISSING RIGHT PARENTHESIS IN EXPRESSION
|
||
|
||
|
||
OPERAND:
|
||
ILLEGAL OPERAND IN EXPRESSION ARITHMETIC CONSTANT TOO LARGE
|
||
|
||
REDEFINED:
|
||
FUNCTION DEFINED MORE THAN ONCE SPECIFIED ARRAY DIM DIFFERENT THAN THE
|
||
FIRST DIM SPECIFIED
|
||
|
||
|
||
SUBSCRIPT:
|
||
FIRST SUBSCRIPT MISSING DIM NOT AN INTEGER CONSTANT DIM NEGATIVE OR
|
||
GREATER THAN 32767 MORE THAN 88 SUBSCRIPTS DIFFERENT NUMBER OF
|
||
SUBSCRIPTS THAN IN FIRST USAGE
|
||
|
||
SYMBOL TABLE FULL:
|
||
COMPILER OUT OF SYMBOL TABLE SPACE.
|
||
|
||
SYNTAX:
|
||
MISSING OR ADDED CHARACTER OR ITEM LINE NUMBER GREATER THAN 65534
|
||
|
||
TOO COMPLEX:
|
||
EXPRESSION TOO COMPLEX OBJECT CODE OR VARIABLE EXTEND PAST 48K
|
||
|
||
|
||
TYPE MISMATCH:
|
||
NUMERIC EXPRESSION WHERE STRING WAS EXPECTED STRING EXPRESSION IN
|
||
IF/THEN
|
||
|
||
|
||
UNDEFINED LINE NUMBER OR FUNCTIONS PRODUCE FATAL ERROR AT THE
|
||
BEGINNING OF PASS2.
|
||
|
||
|
||
|
||
SELF-MODIFYING PROGRAMS:
|
||
PHONE LIST ON APPLE DEMO THIS PROGRAM WILL NOT COMPILE PROPERLY. MUST
|
||
BE RE-WRITTEN IN STRAIGHTFORWARD METHODS TO BE COMPILED.
|
||
|
||
|
||
|
||
|
||
|
||
ADR:
|
||
PRINTS OUT THE DECIMAL BEGINNING ADDRESS AND LENGTH OF THE MOST
|
||
RECENTLY LOADED FILE. MUST USE THIS INFO WITH "A" AND "L" PARAMETERS
|
||
TO BSAVE THE M.L. PROGRAM.
|
||
|
||
THE NORMAL PROCESS FOR MOVING A PROGRAM IS:
|
||
|
||
BLOAD <FILE NAME>
|
||
EXEC ADR
|
||
BSAVE <FILE NAME>,A<ADDRESS>,L<LENGTH>
|
||
|
||
|
||
CREATE ADR: TO TRANSFER ADR TO ANOTHER DISK
|
||
|
||
1.LOAD CREATE ADR FROM TASC DISK
|
||
2.REMOVE TASC DISK
|
||
3.INSERT DISK FOR NEW COPY
|
||
4.TYPE RUN
|
||
|
||
|
||
|
||
CONVERTING 3.2 TO 3.3:
|
||
USE MUFFIN ON DOS MASTER
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|