398 lines
15 KiB
Groff
398 lines
15 KiB
Groff
|
|
======================================
|
|
TASC DOCUMENTATION
|
|
|
|
ENTERED BY: JUDIE MAC
|
|
|
|
|
|
SYSTEM REQUIR:APPLE II OR APPLE II+ 48K RAM
|
|
|
|
|
|
THE APPLESOFT COMPILER:
|
|
TO EXTEND APPLESOFT LANGUAGE
|
|
TO COMPLEMENT APPLESOFT INTERPRETER
|
|
|
|
1.
|
|
INCREASE EXECUTION SPEED COMPILED WITH TASC = 2 TO 20 TIMES
|
|
FASTER THAN W/INTERPRETER
|
|
|
|
2.
|
|
INTER-PROGRAM COMMUNICATON=COMMUNICATE PGMS WITH EACH OTHER
|
|
BY COMMON VARIABLES
|
|
|
|
3.
|
|
TRUE INTEGER ARITHMETIC
|
|
|
|
4.
|
|
SOURCE-CODE SECURITY=TASC CREATES MACHINE LANGUAGE EQUIVALENTS
|
|
OF APPLESOFT BASIC PGMS
|
|
|
|
5.
|
|
DISK-BASED COMPILATION
|
|
|
|
|
|
CHAPTER 1- INTRODUCTION
|
|
CHAPTER 2- DEMO RUN
|
|
CHAPTER 3- INTRO TO COMPILATION
|
|
CHAPTER 4- DEBUGGING W/THE/INTERPRETER
|
|
CHAPTER 5- COMPILATION
|
|
CHAPTER 6- EXECUTING A COMPILED PROGRAM
|
|
CHAPTER 7- A COMPILER/INTERPRETER LANGUAGE COMPARISON
|
|
CHAPTER 8- LANGUAGE ENHANCEMENTS
|
|
CHAPTER 9- HOW THE COMPILER WORKS
|
|
CHAPTER 10-ERROR MESSAGES & DEBUGGING
|
|
|
|
APPENDICES:
|
|
A - MOVING BINARY FILES W/ADR UTILITY- BLOAD AND BSAVE W/ADR UTILITY
|
|
B - COPYING TASC & CONVERTING TO 3.3
|
|
C - CREATING A TURNKEY DISK
|
|
D - NOTES ON APPLESOFT-INFO ON UNUSUAL APPLESOFT FEATURES
|
|
E - RUNTIME MEMORY MAP - MEMORY USAGE ON COMPILED PGMS
|
|
F - ZERO PAGE USAGE
|
|
|
|
FILES ON DISK:
|
|
1 - TASC- APPLESOFT COMPILER
|
|
2 - PASS0,PASS1,PASS2- INTERNAL COMPONENTS OF TASC
|
|
3 - RUNTIME- LIBRARY OF MACHINE LANGUAGE ROUTINES
|
|
4 - ADR - UTILITY FOR BINARY FILES
|
|
5 - CREATE ADR - UTILITY FOR CREATING ADR ON OTHER DISKS
|
|
6 - BALL - DEMO PGM
|
|
|
|
|
|
|
|
2:DEMO RUN:
|
|
TASC IS SIMPLE TO USE.TO INVOKE THE COMPILER, FIRST BOOT UP YOUR DISK
|
|
AND THEN TYPE:
|
|
|
|
]RUN TASC
|
|
|
|
THE NEXT TWO PROMPTS ASK YOU FOR THE NAMES OF THE SOURCE AND OBJECT
|
|
FILES:
|
|
|
|
]SOURCE FILE BALL
|
|
]OBJECT CODE FILE: (DEFAULT BALL.OBJ) <RETURN>
|
|
|
|
THE SOURCE FILE IS A APLSOFT PGM NAMED BALL THAT EXISTS ON THE DISK.
|
|
THE OBJECT FILE IS THE MACHINE LANGUAGE BINARY FILE THAT IS CREATED BY
|
|
THE COMPILER. THE OBJECT FILE NAME DEFAULTS TO THE ORIGINAL FILE NAME
|
|
WITH THE EXTENSION .OBJ ADDED, SO THAT THE OBJECT FILE PRODUCED FOR
|
|
THE BALL.OBJ. THE DEFAULT IS SPECIFIED BY ENTERING <RETURN>. THE
|
|
SOURCE FILE IS ASSUMED TO BE LOCATED ON THE SAME DISK AS THE COMPILER
|
|
UNLESS YOU SPECIFY OTHERWISE. THE OBJECT FILE DEFAULTS TO THE SAME
|
|
DISK THAT THE SOURCE IS ON. DIFFERENT SLOTS OR DRIVES CAN BE
|
|
SPECIFIED USING THE NORMAL ,S<SLOT NUMBER> AND ,D <DRIVE NUMBER>
|
|
SYNTAX. COMPILATION IS USUALLY SLIGHTLY FASTER IF ONLY ONE DRIVE IS
|
|
USED. DISK COMMANDS CAN BE EXECUTED BY TYPING <CTRL-D> FOLLOWED BY
|
|
THE COMMAND AND <RETURN> THE NEXT TWO PROMPTS ASK YOU WHETHER YOU WANT
|
|
DEFAULT VALUES FOR ALL OTHER COMPILATION OPTIONS. SINCE MOST
|
|
COMPILATIONS ARE PERFORMED WITH THE SAME SET OF OPTIONS, YOU SHOULD
|
|
ENTER <RETURN> AFTER EACH PROMPT TO SPECIFY THE DEFAULT VALUES.
|
|
|
|
MEMORY USAGE:
|
|
DEFAULT CONFIGURATION <RETURN>
|
|
OPTIONS:
|
|
DEFAULT CONFIGURATION <RETURN>
|
|
|
|
IF YOU HAD REFUSED THE DEFAULT CONFIGURATIONS ABOVE, YOU WOULD NEED TO
|
|
EXPLICITLY SPECIFY THE VALUES OF SEVERAL COMPILATION OPTIONS. THE
|
|
ACTUAL COMPILATION PROCESS STARTS WITHOUT FURTHER INPUT SINCE YOU HAVE
|
|
SPECIFIED THE DEFAULTS ABOVE. WHEN COMPILATION BEGINS,THE DISK IS
|
|
ACCESSED ALMOST CONSTANTLY TO EITHER READ THE SOURCE FILE OR TO WRITE
|
|
THE OBJECT FILE. THE COMPILER LISTS THE SOURCE PROGRAM ON YOUR
|
|
CONSOLE AS IT IS BEING COMPILED AND GENERATES APPROPRIATE MESSAGES IF
|
|
IT ENCOUNTERS ANY ERRORS.THEN THE SOURCE STOPS LISTING,THE FIRST PARTS
|
|
OF COMPILATION IS FINISHED, AND THE COMPILER PRINTS:
|
|
|
|
*****BEGINNING PASS2
|
|
|
|
THE SECOND PART OF COMPILATION ALSO USED THE ???? EXTENSIVELY. TO
|
|
INDICATE THAT IT IS STILL COMPILING, THE COMPILER PRINTS A PERIOD ON
|
|
THE SCREEN EVERY FEW SECONDS. WHEN IS IS FINISHED, THE COMPILER
|
|
PRINTS:
|
|
|
|
*****CODE GENERATION COMPLETE
|
|
|
|
AT THIS POINT,THE ACTUAL COMPILATION PROCESS IS COMPLETE.SO THAT YOU
|
|
WILL RECEIVE A LISTING OF COMPILATION INFORMATION, ANSWER "Y" OR "YES"
|
|
TO THE NEXT PROMPT:
|
|
COMPILATION INFORMATION AND LINE NUMBER REFERENCE TABLE YES
|
|
|
|
THIS INPUT ALSO ACCEPTS <CRTL D> DISK COMMANDS. IF YOU WANT TO LIST
|
|
THE COMPILATION INFORMATION ON A PRINTER, YOU CAN FIRST TURN ON YOUR
|
|
PRINTER BY ENTERING:<CTRL-D)PR#(PRINTER SLOT>
|
|
|
|
TASC PRINTS OUT THE DESIRED INFORMATION, DISPLAYS THE FOLLOWING
|
|
MESSAGE, AND THEN RE-ENTERS THE INTERPRETER:
|
|
|
|
*****COMPILATION COMPLETE
|
|
]
|
|
|
|
THE INCREASE IN THE BALL PROGRAMS EXECUTION SPEED IS QUITE APPARENT
|
|
WHEN COMPARED TO THE SAME PROGRAM RUNNING UNDER THE INTERPRETER.
|
|
COMPARE SPEEDS BY FIRST RUNNING THE INTERPRETED PROGRAM:
|
|
|
|
]RUN BALL
|
|
|
|
NEXT EXECUTE THE COMPILED PROGRAM BY ENTERING THE FOLLOWING DOS
|
|
COMMANDS:
|
|
|
|
]BLOAD RUNTIME
|
|
]BRUN BALL.OBJ
|
|
|
|
NOTE THAT THE RUNTIME LIBRARY MUST BE BLOADED IN MEMORY BEFORE
|
|
BALL.OBJ AND CAN BE BRUN.
|
|
|
|
YOU HAVE NOW SUCCESSFULLY COMPLETED THE DEMO RUN.
|
|
|
|
|
|
COMPILATION ******VOCABULARY
|
|
|
|
SOURCE FILE -
|
|
THE APPLESOFT PROGRAM IS COMMONLY CALLED A SOURCE FILE BECAUSE IT IS
|
|
THE SOURCE FROM WHICH AN EQUIVALENT MACHINE LANGUAGE FILE IS CREATED.
|
|
THE SOURCE FILE IS THE INPUT FILE TO THE COMPILER. CATALOG LISTS THE
|
|
NAMES OF APPLESOFT SOURCE FILES WITH THE LETTER "A" PRECEDING THE SIZE
|
|
OF EACH FILE.
|
|
|
|
OBJECT FILE -
|
|
TASC TRANSLATES SOURCE FILES INTO MACHINE LANGUAGE OBJECT FILES. THE
|
|
OBJECT FILE IS THE OUTPUT FILE CREATED BY THE COMPILER.THE OBJECT
|
|
FILES IS AN EXECUTABLE BINARY FILE THAT IS THE MACHINE LANGUAGE
|
|
EQUIVALENT OF THE SOURCE. CATALOG LISTS THE NAMES OF TASC OBJECT
|
|
FILES WITH THE LETTER "B" PRECEDING THE SIZE OF THE FILE.
|
|
|
|
COMPILETIME-
|
|
THE TIME DURING WHICH THE COMPILER IS TRANSLATING A SOURCE FILE INTO
|
|
AN OBJECT FILE.
|
|
|
|
RUNTIME -
|
|
THE TIME DURING WHICH A COMPILED PROGRAM IS EXECUTING. BY CONVENTION,
|
|
RUNTIME REFERS TO THE EXECUTION TIME OF A COMPILED PROGRAM AND NOT TO
|
|
THE EXECUTION TIME OF THE COMPILER.
|
|
|
|
RUNTIME LIBRARY -
|
|
A COLLECTION OF MACHINE LANGUAGE ROUTINES THAT ARE USED BY COMPILED
|
|
OBJECT PROGRAMS. THESE ROUTINES ALL RESIDE IN THE FILE NAMES RUNTIME.
|
|
RUN TIME MUST BE LOADED INTO MEMORY BEFORE AN OBJECT FILE CAN BE
|
|
EXECUTED.
|
|
|
|
|
|
COMPILATION VS INTERPRETATION:
|
|
|
|
SINCE THE MICROPROCESSOR IN THE APPLE CAN EXECUTE ONLY ITS OWN MACHINE
|
|
INSTRUCTIONS, IT DOES NOT EXECUTE APPLESOFT PROGRAM STATEMENTS
|
|
DIRECTLY.INSTEAD,STATEMENTS MUST BE SIMULATED BY MACHINE LANGUAGE
|
|
ROUTINES THAT PERFORM THE OPERATIONS SPECIFIED BY THE BASIC
|
|
STATEMENT.
|
|
|
|
INTERPRETATION:
|
|
THE INTERPRETER TRANSLATES APPLESOFT SOURCE STATEMENTS LINE BY LINE AT
|
|
RUNTIME. EACH TIME THE INTERPRETER EXECUTES AN APPLESOFT STATEMENT,
|
|
IT MUST ANALYZE THE STATEMENT, CHECK FOR ERRORS AND CALL MACHINE
|
|
LANGUAGE ROUTINES THAT PERFORM THE DESIRED FUNCTION. WHEN STATEMENTS
|
|
MUST BE EXECUTED REPEATEDLY, AS MUST THOSE WITH A FOR/NEXT LOOP, THE
|
|
TRANSLATION PROCESS MUST BE REPEATED EACH TIME THE STATEMENT IS
|
|
EXECUTED. IN ADDITION,BASIC LINE NUMBERS ARE STORED IN A LIST. GOTO'S
|
|
AND GOSUB'S FORCE THE INTERPRETER TO SEARCH THIS LIST TO FIND THE
|
|
DESIRED LINE.THIS SEARCH IS QUITE SLOW WHEN THE NEEDED LINE IS NEAR
|
|
THE END OF A LONG PROGRAM. THE INTERPRETER KEEPS TRACK OF VARIABLES
|
|
USING A LIST,TOO. WHEN IT ENCOUNTERS A REFERENCE TO A VARIABLE, THE
|
|
INTERPRETER SEARCHES FROM THE BEGINNING OF THE LIST TO FIND THE
|
|
DESIRED VARIABLE. IF THE VARIABLE IS NOT PRESENT IN THE LIST, THE
|
|
INTERPRETER MUST CREATE A NEW ENTRY FOR IT. THIS PROCEDURE ALSO SLOWS
|
|
INTERPRETED PROGRAMS.
|
|
|
|
COMPILATION:
|
|
A COMPILER, ON THE OTHER HAND, TAKES A SOURCE PROGRAM AND TRANSLATES
|
|
IT INTO A MACHINE LANGUAGE OBJECT FILE. THIS OBJECT FILE CONSISTS OF A
|
|
LARGE NUMBER OF MACHINE LANGUAGE CALL'S TO ROUTINES IN THE RUNTIME
|
|
LIBRARY AND TO ROUTINES IN THE APPLESOFT INTERPRETER, TASC ASSURES
|
|
CLOSE LANGUAGE COMPATIBILITY WITH THE INTERPRETER. IN CONTRAST TO THE
|
|
INTERPRETER, THE COMPILER ANALYZES ALL STATEMENTS BEFORE RUNTIME. IN
|
|
ADDITION,ABSOLUTE MEMORY ADDRESSES ARE PROVIDED FOR VARIABLES AND
|
|
PROGRAM LINES.THESE ADDRESSES ELIMINATE THE LIST SEARCHING THAT OCCURS
|
|
WHILE AN INTERPRETED PROGRAM EXECUTES. TASC,UNLIKE THE INTERPRETER,
|
|
IMPLEMENTS TRUE INTEGER ARITHMETIC AND INTEGER LOOP VARIABLES IN
|
|
FOR/NEXT LOOPS.IN COMPARISON, THE APPLESOFT INTERPRETER CONVERTS ALL
|
|
INTEGERS TO REAL NUMBERS BEFORE OPERATING ON THEM. THESE CONVERSIONS
|
|
MAKE INTERPRETED INTEGER ARITHMETIC RELATIVELY INEFFICIENT. IN
|
|
ADDITION,THE INTERPRETER FORBIDS USE OF INTEGERS AS LOOP
|
|
CONTROLVARIABLES IN FOR/NEXT LOOPS.
|
|
|
|
|
|
PROGRAM DEVELOPMENT
|
|
|
|
1 CREATE AND EDIT APPLESOFT SOURCE
|
|
2 RUN AND DEBUG SOURCE WITH THE INTERPRETER
|
|
3 COMPILE SOURCE,CREATING A BINARY OBJECT FILE
|
|
4 EXECUTE COMPILED OBJECT FILE
|
|
|
|
|
|
DEBUGGING WITH THE APPLESOFT INTERPRETER*****
|
|
DEBUGGING A PROGRAM INTENDED FOR COMPILATION IS A TWO STEP PROCESS
|
|
THAT INVOLVES:
|
|
|
|
1.CREATING THE SOURCE PROGRAM,AND
|
|
2.RUNNING THE PROGRAM UNDER THE INTERPRETER TO CHECK FOR ERRORS.
|
|
|
|
CREATING A SOURCE PROGRAM:
|
|
AN APPLESOFT SOURCE PROGRAM REQUIRES THE USE OF THE EDITOR AVAILABLE
|
|
WITHIN APPLESOFT. PROGRAMS ARE CREATED BY SIMPLY ENTERING APPLESOFT
|
|
STATEMENTS FROM WITHIN APPLESOFT. ONCE A PROGRAM HAS BEEN CREATED, IT
|
|
CAN BE SAVED TO DISK WITH SAVE. TASC CAN ONLY COMPILE APPLE SOFT DISK
|
|
FILES.
|
|
|
|
|
|
RUNNING A PROGRAM WITH APPLESOFT:
|
|
PROGRAMS SHOULD BE DEBUGGED USING THE APPLESOFT INTERPRETER BEFORE
|
|
BEING COMPILED. IF THE PROGRAM TO BE COMPILED USES TASC FEATURES THAT
|
|
ARE NOT AVAILABLE IN THE INTERPRETER, IT MAY BE NECESSARY TO DEBUG THE
|
|
PROGRAM WITH THE COMPILER.
|
|
|
|
TASC IS HIGHLY COMPATIBLE WITH THE APPLESOFT INTERPRETER.THIS
|
|
COMPATIBILITY ALLOWS THE APPLESOFT INTERPRETER TO FUNCTION AS THE
|
|
PRIMARY DEBUGGING TOOL. THE INTERPRETER PROVIDES MUCH BETTER DEBUGGING
|
|
FACILITIES THAN A COMPILER,SINCE IT INCLUDES FEATURES SUCH AS TRACE.
|
|
|
|
THERE ARE SOME DRAWBACKS TO DEBUGGING WITH THE INTERPRETER: STATEMENTS
|
|
THAT ARE ONLY EXECUTED UNDER SPECIAL CIRCUMSTANCES MAY NEVER BE
|
|
EXAMINED, AND THE INTERPRETER HALTS EXECUTION WHEN IT ENCOUNTERS THE
|
|
FIRST ERROR IN A PROGRAM.
|
|
|
|
DEBUGGING WITH THE COMPILER DOES NOT SUFFER FROM THESE DRAWBACKS SINCE
|
|
THE COMPILER EXAMINES EVERY STATEMENT IN A PROGRAM, AND CAN CONTINUE
|
|
THE COMPILATION EVEN IF IT ENCOUNTERS ERRORS.
|
|
|
|
IN GENERAL,COMPILING A PROGRAM IS AN EFFECTIVE WAY TO CHECK FOR SYNTAX
|
|
ERRORS; HOWEVER,PROGRAM LOGIC ERRORS ARE MORE EASILY TRACKED DOWN WITH
|
|
THE INTERPRETER.
|
|
|
|
COMPILATION********
|
|
|
|
NOTE****
|
|
IF A COMPILED PROGRAM DOES NOT RUN CORRECTLY, SEE ERROR MESSAGES AND
|
|
DEBUGGING FOR SOME POSSIBLE SOLUTIONS.
|
|
|
|
|
|
OPTIONS:
|
|
THE DEMO RUN SHOWED ONLY THE MOST BASIC TYPE OF COMPILATION. TASC
|
|
INCLUDES SEVERAL OPTIONS THAT CAN BE USED TO CONTROL COMPILATION MORE
|
|
CLOSELY.THE REQUESTED OPTIONS CONTROL MEMORY ALLOCATION AND
|
|
COMPILATION.TO EXPLICITLY SPECIFY THE VALUES FOR THESE OPTIONS,SIMPLY
|
|
ANSWER "NO" WHEN THE COMPILER OFFERS THE DEFAULT VALUES.
|
|
|
|
MEMORY USAGE:
|
|
|
|
THE MEMORY USED BY THE COMPILED CODE AT RUNTIME IS DIVIDED INTO THREE
|
|
AREAS:
|
|
|
|
1.RUNTIME
|
|
1 LIBRARY
|
|
2.OBJECT PROGRAM
|
|
3.VARIABLES
|
|
|
|
TASC ALLOWS THE LOCATION FOR EACH OF THESE BLOCKS TO BE SPECIFIED
|
|
SEPARATELY. THE MEMORY ALLOCATION FEATURES CAN BE USED TO PROTECT
|
|
MACHINE LANGUAGE PROGRAMS, SHAPE TABLES, THE HIRES SCREENS, OR ANY
|
|
OTHER IMPORTANT PART OF MEMORY.
|
|
|
|
THE DEFAULT ALLOCATIONS ORDER,LIBRARY, PROGRAM,VARIABLES.THE LIBRARY
|
|
IS ALLOCATED LOWEST AND PROGRAM AND VARIABLES FOLLOW. THE LIBRARY
|
|
BEGINS AT LOCATION 2051, OR $803.
|
|
|
|
ALTERNATE ADDRESSES FO THE BLOCKS ARE SIMPLE TO SPECIFY. THE NEW
|
|
LOCATION FOR THE LIBRARY IS ENTERED AS A NUMBER AND DEFAULTS TO $803.
|
|
ADDRESSES CAN BE SPECIFIED IN EITHER HEXADECIMAL OR DECIMAL. HEX MUST
|
|
HAVE ($)
|
|
|
|
THE LIBRARY MUST BE BLOADED BEFORE A COMPILED PROGRAM CAN BE RUN. BY
|
|
DEFAULT THE LIBRARY IS LOADED AT $803.WHEN A PROGRAM IS COMPILED TO
|
|
EXPECT THE LIBRARY AT A DIFFERENT ADDRESS, THE LIBRARY MUST BE LOADED
|
|
IN AT THE CORRECT ADDRESS BY USING "A" OPTION WITH THE BLOAD COMMAND.
|
|
MOVING BINARY FILES, WITH ADR UTILITY.
|
|
|
|
THE BEGINNING ADDRESS FOR THE OBJECT CODE MAY BE SPECIFIED WITH:
|
|
|
|
1. THE WORD HGR1
|
|
2. THE WORD HGR2
|
|
3. A DECIMAL OR HEX NUMBER
|
|
4. <RETURN>
|
|
|
|
HGR1 AND HGR2 SET THE BEGINNING OF THE PROGRAM ABOVE THE APPROPRIATE
|
|
HIRES SCREEN. THEN 4K RUNTIME LIBRARY DEFAULTS TO THE SPACE BELOW THE
|
|
FIRST HIRES SCREEN. THIS DEFAULT LOCATIONS IS SUGGESTED FOR PGMS OF
|
|
HIRES.
|
|
|
|
VARIABLE SPACE MAY BE SPECIFIED EXPLICITLY OR ALLOWED TO DEFAULT. THE
|
|
BEGINNING OF VARIABLE SPACE DEFAULTS TO THE END OF THE OBJECT CODE.
|
|
|
|
COMPILED PGMS USE THE NORMAL HIMEM POINTER TO DETERMINE THE TOP OF
|
|
AVAILABLE STRING SPACE, AND STRINGS GROW DOWNWARD FROM THERE.
|
|
|
|
COMPILATION OPTIONS:
|
|
|
|
COMPILATION LISTING YES
|
|
PAUSE ON ERRORS YES
|
|
INTEGER ARITHMETIC YES
|
|
INTEGER CONSTANTS YES
|
|
RESUME/DEBUG CODE NO
|
|
|
|
ANSWERING "NO" OR "N" TO THE DEFAULT OPTION PROMPT PROVIDES A CHANGE
|
|
TO TURN EACH OF THESE OPTIONS ON OR OFF.
|
|
|
|
THE COMPILER NORMALLY LISTS THE SOURCE FILE. TURNING THE LISTING
|
|
OPTION OFF SUPPRESSES THE LISTING. ERRORS, WARNING, AND SPECIAL
|
|
MESSAGES ARE PRINTED AS USUAL.
|
|
|
|
PAUSE ON ERRORS OPTION:
|
|
ERRORS NORMALLY HALT COMPILATION AND ALLOW THE USER TO ABORT OR
|
|
CONTINUE COMPILATION. TURNING THE PAUSE OPTION OFF SUPPRESSES THE
|
|
PAUSE AFTER ANY ERROR MESSAGE ARE PRINTED.
|
|
|
|
INTEGER ARITHMETIC OPTION:
|
|
TASC INCLUDES A FULL INTEGER ARITHMETIC PACKAGE. TRUE INTEGER
|
|
ARITHMETIC ALLOWS OPERATIONS ON INTEGERS TO BE PERFORMED IN ABOUT HALF
|
|
THE NORMAL TIME.INCLUDING THE OPTION SUBSTANTIALLY INCREASES THE SPEED
|
|
OF PGMS THAT USE INTEGERS.
|
|
|
|
INTEGER CONSTANTS:
|
|
CONSTANTS IN A COMPILED PROGRAM CAN BE TREATED AS INTEGERS OR FLOATING
|
|
POINT NUMBERS. SELECTING THE INTEGER CONSTANTS OPTIONS ALLOWS
|
|
CONSTANTS THAT ARE USED AS INTEGERS TO BE STORED IN INTEGER FORMAT.
|
|
IF A CONSTANT IS NEEDED IN FP IT INCLUDES BOTH.
|
|
|
|
INTEGER CONSTANTS TAKE UP TWO BYTES IN THE OBJECT FILE:FP TAKES
|
|
FIVE.THE INTEGER CONSTANTS OPTION SHOULD NORMALLY BE LEFT ON.
|
|
|
|
RESUME/DEBUG CODE OPTION:
|
|
TURNING ON THE RESUME/DEBUG CODE OPTION CAUSES CODE TO HANDLE THE
|
|
RESUME STATEMENT TO BE INCLUDED IN THE OBJECT PGM. THE RESUME IN
|
|
APPLESOFT ALLOWS AN ERROR TRAPPING ROUTINE TO RESUME EXECUTION AT THE
|
|
BEGINNING OF THE STATEMENT THAT CAUSED THE ERROR. TASC ALSO FULLY
|
|
SUPPORTS ONERR GOTO. THE COMPILED VERSION OF ONERR GOTO TRAPS ALL
|
|
RUNTIME ERRORS, INCLUDING THOSE THAT OCCUR WITHIN ROUTINES FROM THE
|
|
APPLESOFT INTERPRETER.
|
|
|
|
INCLUDING THE RESUME/DEBUG OPTION REQUIRES THE COMPILER TO GENERATE
|
|
EXTRA CODE AT THE BEGINNING OF EACH STATEMENT THAT MAY GENERATE AN
|
|
ERROR. SELECTING RESUME/DEBUG CODE OPTION CAUSES THE OBJECT CODE TO BE
|
|
LARGER AND SOMEWHAT SLOWER.
|
|
|
|
TURNING ON THE RESUME/DEBUG CODE OPTION HAS THE ADVANTAGE THAT ANY
|
|
RUNTIME ERROR MESSAGES INCLUDE THE OBJECT CODE ADDRESS. NORMALLY,
|
|
ONLY SOME OF THE ERRORS GENERATED BY THE RUNTIME LIBRARY INCLUDE AN
|
|
OBJECT CODE ADDRESS. THE RESUME/DEBUG OPTION CAN BE USEFUL FOR
|
|
DEBUGGING WITH THE COMPILER. HOWEVER, INCLUDING IT DOES DECREASE THE
|
|
SPEED AND INCREASE THE LENGTH OF THE COMPILED CODE. THE RESUME/DEBUG
|
|
OPTION SHOULD BE LEFT OFF UNLESS IT IS ABSOLUTELY NEEDED. IF THE
|
|
OPTION IS TURNED OFF THE COMPILER WILL IGNORE ALL RESUME STATEMENTS.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|