textfiles/apple/DOCUMENTATION/tasc.2

332 lines
7.7 KiB
Groff
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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