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 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 . USING THE (&) IS MUCH MORE CONVENIENT THAT HAVING TO CALL THE CODE. HALTING EXECUTION OF COMPILED PGM: 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 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 EXEC ADR BSAVE ,A
,L 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