💾 Archived View for spam.works › mirrors › textfiles › apple › DOCUMENTATION › tasc.2 captured on 2023-09-29 at 00:11:30.

View Raw

More Information

⬅️ Previous capture (2023-06-16)

-=-=-=-=-=-=-


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