332 lines
7.7 KiB
Plaintext
332 lines
7.7 KiB
Plaintext
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|