Compucolor.org – Virtual Media

Listing of file='TUTE6.BAS;01' on disk='vmedia/asmtut_disk3-sector.ccvf'

100 REM   TUTE6		ASSEMBLER ETC		22/8/81
110 GOTO 200:REM  150 W/O MENU
120 Z= CALL (0):PLOT 3,0,31,11:RETURN
130 PLOT 3,62,31:POKE KB,0:Z= CALL (18)
131 IF PEEK (KB)= 0THEN 131
132 GOSUB 120:PRINT "/":GOTO 120
133 GOSUB 120:GOTO 120
134 PLOT 6,2,3,0,31:RETURN
140 FOR I= 1TO 1000:NEXT :RETURN
150 POKE 32941,191:POKE 32940,172:CLEAR 100:PLOT 27,4:PRINT "LOA SCROLL.PRG":PLOT 27,27
160 POKE 33283,173:POKE 33284,191
170 PLOT 27,24,12
200 KB= 33278:DU= 49113:POKE DU,255
210 PLOT 6,6,14,3,16,0:PRINT "A S S E M B L Y   L A N G U A G E":PLOT 15
220 FOR I= 20TO 12STEP - 2:Z= CALL (I):NEXT
230 PLOT 6,2,3,0,22:PRINT "IN THIS TUTORIAL WE WILL CONSIDER THE FOLLOWING:-":PRINT
240 PRINT "ASSEMBLY LANGUAGE SOURCE CODE FORMAT,"
250 PRINT "ASSEMBLER PSEUDO OPCODES,"
260 PRINT "ASSEMBLER COMPUTATION,"
270 PRINT "HAND ASSEMBLY METHODS,"
280 PRINT "USING BOTH TEXT EDITORS, AND"
290 PRINT "USING THE ASSEMBLER PROGRAM.":PRINT
300 Z= CALL (18):INPUT "THROUGHOUT, TO ADVANCE THE TEXT, PRESS ENTER ";Z:PLOT 28,11:PRINT "/":GOSUB 120
310 PLOT 6,3,14,8,11,3,14,0:PRINT "ASSEMBLY LANGUAGE SOURCE CODE FORMAT":PLOT 15:GOSUB 134
320 PRINT "A LINE OF ASSEMBLER SOURCE CODE IS DIVIDED INTO FIELDS. -":GOSUB 120
330 PRINT "THESE FIELDS ARE NORMALLY ARRANGED ON TAB STOPS ALTHOUGH":GOSUB 120
340 PRINT "ALL THAT IS REQUIRED ARE DELIMITERS BETWEEN FIELDS.":GOSUB 120
350 PRINT "THE TAB SPACINGS, HOWEVER, INCREASE READABILITY.":GOSUB 130
360 PLOT 3,0,3:PRINT "LABEL:	OPCODE	OPERAND	;COMMENT":GOSUB 134
370 PRINT "LABELS ARE LIKE LINE NUMBERS BUT ARE ONLY USED WHERE A GIVEN":GOSUB 120
380 PRINT "INSTRUCTION NEEDS TO BE REFERENCED FOR SAY A JMP OR CALL TO IT.":GOSUB 130
390 PRINT "LABELS ARE UNIQUE IN THAT THEY ONLY REFER TO ONE ADDRESS BUT":GOSUB 120
400 PRINT "MORE THAN ONE LABEL MAY REFER TO ONE ADDRESS.":GOSUB 130
410 PRINT "LABELS MAY BE ANY NUMBER OF CHARACTERS LONG BUT SIX IS USUALLY":GOSUB 120
420 PRINT "LONG ENOUGH IN THE INTERESTS OF READABILITY.":GOSUB 130
430 PRINT "THE FIRST CHARACTER OF A LABEL MUST BE A LETTER OF THE ALPHABET":GOSUB 120
440 PRINT "AND THE LAST CHARACTER MUST BE FOLLOWED BY A COLON :":GOSUB 120
450 PRINT "THUS HERE: IS A VALID LABEL AND IF FOLLOWED BY <TAB> PUTS THE":GOSUB 120
460 PRINT "INSTRUCTION FIELD ON THE FIRST TAB STOP.":GOSUB 130
470 PLOT 3,0,5:PRINT "HERE:":GOSUB 134
480 PRINT "THE CODE FIELD CONTAINS A CODE WHICH IDENTIFIES THE":GOSUB 120
490 PRINT "MACHINE OPERATION TO BE PERFORMED.":GOSUB 120
500 PRINT "THERE MUST BE AT LEAST ONE SPACE FOLLOWING THE OPCODE.":GOSUB 130
510 PRINT "THE OPERAND FIELD CONTAINS INFORMATION USED IN CONJUNCTION WITH":GOSUB 120
520 PRINT "THE OPCODE TO DEFINE PRECISELY THE OPERATION TO BE PERFORMED":GOSUB 120
530 PRINT "BY THE INSTRUCTION. DEPENDING ON THE OPCODE, THE OPERAND MAY":GOSUB 120
540 PRINT "BE ABSENT OR ONE ITEM OR TWO ITEMS SEPARATED BY A ,":GOSUB 130
550 PLOT 3,0,16,6,3:PRINT "OPERAND INFORMATION"
560 PLOT 3,0,17,6,6:PRINT "A REGISTER"
570 PLOT 3,0,18:PRINT "A REGISTER PAIR"
580 PLOT 3,0,19:PRINT "IMMEDIATE DATA"
590 PLOT 3,0,20:PRINT "A 16-BIT ADDRESS":GOSUB 134
600 PRINT "OPERANDS MAY SPECIFY FOUR DATA TYPES : SEE ABOVE":GOSUB 130
610 PLOT 3,32,16,6,3:PRINT "WAYS OF SPECIFYING"
620 PLOT 6,6,3,20,17:PRINT "1. HEXADECIMAL DATA":PLOT 3,43,17:PRINT "2. DECIMAL DATA"
630 PLOT 3,20,18:PRINT "3. OCTAL DATA":PLOT 3,43,18:PRINT "4. BINARY DATA"
640 PLOT 3,20,19:PRINT "5. PROG. COUNTER ($)":PLOT 3,43,19:PRINT "6. ASCII CONSTANT"
650 PLOT 3,20,20:PRINT "7. LABELS GIVEN VALUES":PLOT 3,43,20:PRINT "8. LABELS OF INSTR'NS"
660 PLOT 3,20,21:PRINT "9. EXPRESSIONS":PLOT 3,42,21:PRINT "10. REGISTER SYMBOLS":GOSUB 134
670 PRINT "IN TEN DIFFERENT FORMATS : SEE ABOVE":GOSUB 130
680 PRINT "REFER TO YOUR ASSEMBLER MANUAL FOR DETAILS OF THEIR USE (P9).":GOSUB 130
690 PLOT 6,7,3,8,5:PRINT "LXI	H,1000D":GOSUB 134
700 PRINT "THUS OUR LABEL HERE, MAY HAVE INSTRUCTION LXI H,1000D":GOSUB 130
710 PLOT 3,24,5:PRINT ";TABLE OFFSET IN HL":GOSUB 134
720 PRINT "WITH SUITABLE COMMENT AFTER THE ; DELIMITER.":GOSUB 130
730 PLOT 6,7,3,8,6:PRINT "CALL	PRINT2	;OUTPUT THE RESULT":GOSUB 134
740 PRINT "ANOTHER INSTRUCTION MAY FOLLOW WITHOUT LABEL :":GOSUB 130
750 PLOT 3,0,7:PRINT "; **************************************"
760 PLOT 3,0,8:PRINT ";	START THE SORT ROUTINE HERE":GOSUB 134
770 PLOT 3,0,9:PRINT "; **************************************":GOSUB 134
780 PRINT "COMMENTS MUST BE THE LAST (OR ONLY) FIELD ON THE LINE AND":GOSUB 120
790 PRINT "MUST BE PRECEDED BY THE DELIMITER ;":GOSUB 130
800 PRINT "THE ABOVE ARE THE SOURCE CODE FIELDS;":GOSUB 120
810 PRINT "THE ASSEMBLER WILL ADD TWO MORE FIELDS TO THE LEFT OF THE":GOSUB 120
820 PRINT "SOURCE:-":GOSUB 120
830 PRINT "A 4 DIGIT FIELD FOR THE HEX ADDRESS OF THE FIRST BYTE OF THE":GOSUB 120
840 PRINT "INSTRUCTION AND":GOSUB 120
850 PRINT "THREE 2 DIGIT FIELDS FOR EACH OF UP TO 3 BYTES OF INSTRUCTION.":GOSUB 130
860 PRINT "SHEETS FOR HAND ASSEMBLY SHOULD FOLLOW THIS CONVENTION":GOSUB 120
870 PRINT "A COPY OF ONE IS IN APPENDIX XX":GOSUB 120
880 PRINT "AND WE WILL USE THAT CONVENTION ON SCREEN.":GOSUB 130
890 PRINT "IN ADDITION TO THE NORMAL OPCODES, THE ASSEMBLER USES A FEW":GOSUB 120
900 PRINT "DATA STATEMENTS OF ITS OWN FOR INCLUDING DATA IN A PROGRAM.":GOSUB 130
910 PLOT 3,0,11:PRINT "OPLAB:	DB	3,0,31,'HELL',FEH	;TYPICAL MESSAGE"
920 PLOT 3,0,12:PRINT "OPLAB;	DW	HERE	;TELLS EXTERNAL PROG WHERE HERE IS"
930 PLOT 3,0,13:PRINT "OPLAB;	DS	32*FSIZ	;BUFFER FOR FILE OF 32 CHRS EACH":GOSUB 134
940 PRINT "THESE ARE:":GOSUB 120
950 PRINT "DB	DEFINE BYTE(S) OF DATA":GOSUB 120
960 PRINT "DW	DEFINE WORD (2 BYTES) OF DATA":GOSUB 120
970 PRINT "DS	DEFINE STORAGE (BYTES)":GOSUB 120
980 PRINT "EXAMPLES OF THESE APPEAR ABOVE.":GOSUB 130
990 PRINT "NOTE THAT EACH MAY HAVE AN OPTIONAL LABEL (OPLAB)":GOSUB 120
1000 PRINT "THEIR USE WILL BECOME CLEARER AS WE USE THEM.":GOSUB 130
1010 PRINT "THE ASSEMBLER ALSO USES PSEUDO INSTRUCTIONS FOR CONTROLLING":GOSUB 120
1020 PRINT "ASSEMBLY. THESE ARE:":GOSUB 120
1030 PRINT "ORG, EQU, SET, AND END.":GOSUB 120
1040 PRINT "WE WILL IGNORE IF, ENDIF, MACRO, AND ENDM AS THEY ARE BEYOND":GOSUB 120
1050 PRINT "THE LEVEL OF OUR NORMAL REQUIREMENT.":GOSUB 130
1060 PRINT "ORG <ADDR>, SIMPLY TELLS THE ASSEMBLER WHERE TO START ASSEMBLY":GOSUB 120
1070 PRINT "OR DURING A PROGRAM, WHERE TO MOVE ASSEMBLY TO FROM THAT POINT":GOSUB 120
1080 PRINT "WITH NO ORG, THE CCII DEFAULTS TO ASSEMBLY FROM 8200.":GOSUB 130
1090 PRINT "THERE CAN ONLY BE ONE END INSTRUCTION AND IT MUST BE THE":GOSUB 120
1100 PRINT "LAST STATEMENT IN THE SOURCE.":GOSUB 130
1110 PRINT "IF END IS GIVEN AN OPERAND, THAT ADDRESS IS ASSUMED TO BE THE":GOSUB 120
1120 PRINT "START ADDRESS AS DISTINCT FROM THE LOAD ADDRESS BY FCS.":GOSUB 130
1130 PRINT "MOST LABELS GET A VALUE FROM WHERE THEY ASSEMBLE TO:":GOSUB 120
1140 PRINT "WITH EQU AND SET YOU CAN ASSIGN A 16-BIT VALUE TO LABELS NOT":GOSUB 120
1150 PRINT "REFERRING TO A PARTICULAR INSTRUCTION BUT USED FOR COMPUTATION":GOSUB 120
1160 PRINT "OR REFERRING TO ADDRESSES OUTSIDE THE PROGRAM BOUNDARIES.":GOSUB 120
1170 PRINT "EQU IS DEFINED ONCE, BUT SET MAY REDEFINE A LABEL PREVIOUSLY":GOSUB 120
1180 PRINT "SET.":GOSUB 130
1190 PLOT 3,8,2:PRINT "ORG	9000H"
1200 PLOT 3,0,10:PRINT "OPLAB:	ORG	(($/256)+1)*256	;PUT DATA ON EVEN PAGE"
1210 PLOT 3,0,14:PRINT "KEYFL	EQU	81FFH	;KEYBOARD READY FLAG IN SYST RAM"
1220 PLOT 3,0,15:PRINT "RECORD	SET	FSIZ*FNUM	;CURRENT RECORD"
1230 PLOT 3,0,16,11:PRINT "	END	ENTRY	;PAST OVERLAY TABLE":GOSUB 134
1240 PRINT "EXAMPLES OF THESE APPEAR ABOVE:":GOSUB 130
1250 PRINT "NOTICE THAT THE ASSEMBLER IS CAPABLE OF EVALUATING EXPRESSIONS":GOSUB 120
1260 PRINT "IN THE OPERAND DATA.":GOSUB 120
1270 PRINT "THIS IMPROVES PROGRAM READABILITY IN THAT THE DERIVATION OF":GOSUB 120
1280 PRINT "DATA VALUES IS TRANSPARENT BUT IT ALSO CAN EVALUATE":GOSUB 120
1290 PRINT "ASSEMBLY TIME VALUES SUCH AS THE ADDRESS OF THE NEXT PAGE OF":GOSUB 120
1300 PRINT "MEMORY IN THE ORG EXAMPLE ABOVE.":GOSUB 130
1310 PRINT "A FULLER DESCRIPTION OF THE  ARITHMETIC CAPABILITY OF THE":GOSUB 120
1320 PRINT "ASSEMBLER IS FOUND IN THE MANUAL.":GOSUB 130
1330 PRINT "REGARDLESS OF WHETHER YOUR ROUTINE IS TO BE HAND ASSEMBLED OR":GOSUB 120
1340 PRINT "ASSEMBLED WITH THE ASSEMBLER PROGRAM, IT IS USUAL TO FIRST":GOSUB 120
1350 PRINT "HANDWRITE THE PROGRAM IN MNEMONIC FORM AND CHECK IT'S LOGIC":GOSUB 120
1360 PRINT "BEFORE PROCEEDING FURTHER.":GOSUB 130
1370 FOR I= 21TO 0STEP - 1:PLOT 3,0,I,11:NEXT
1380 PLOT 3,24,0:PRINT "ORG		;JUST BELOW 16K"
1390 PLOT 3,24,1:PRINT "LXI	H,6001H	;FIRST CCI BYTE"
1400 PLOT 3,24,2:PRINT "LXI	D,0602H	;06=CYAN,02=GREEN"
1410 PLOT 3,24,3:PRINT "MVI	B,70H	;NEXT PAGE"
1420 PLOT 3,16,4:PRINT "LOOP:	MOV	A,E	;GRN IN A"
1430 PLOT 3,24,5:PRINT "CMP	M	;IS CCI GRN?"
1440 PLOT 3,24,6:PRINT "JNZ	NOTGRN	;NO"
1450 PLOT 3,24,7:PRINT "MOV	M,D	;YES,->CYAN"
1460 PLOT 3,16,8:PRINT "NOTGRN:	INX	H	;NEXTCHR"
1470 PLOT 3,24,9:PRINT "INX	H	;NEXT CCI"
1480 PLOT 3,24,10:PRINT "MOV	A,H	;CHECK H"
1490 PLOT 3,24,11:PRINT "CMP	B	;ON NEXT PAGE?"
1500 PLOT 3,24,12:PRINT "JNZ	LOOP	;NO,CHECK NEXT CCI"
1510 PLOT 3,24,13:PRINT "RET		;TO BASIC"
1520 PLOT 3,24,14:PRINT "END":GOSUB 134
1530 PRINT "THE SIMPLE ROUTINE ABOVE COULD BE CALLED BY BASIC TO CONVERT":GOSUB 120
1540 PRINT "ALL GREEN CHARACTERS ON THE SCREEN TO CYAN.":GOSUB 120
1550 PRINT "IT IS SHORT ENOUGH TO HAND ASSEMBLE BUT COULD BE DONE WITH":GOSUB 120
1560 PRINT "THE ASSEMBLER.":GOSUB 120
1570 PRINT "WE WILL HAND ASSEMBLE IT ON SCREEN TO DEMONSTRATE THE PROCEDURE":GOSUB 130
1580 PRINT "HAND ASSEMBLY INVOLVES DETERMINING THE ADDRESS OF EACH":GOSUB 120
1590 PRINT "INSTRUCTION BY ADDING TO THE ADDRESS OF THE PRECEDING":GOSUB 120
1600 PRINT "INSTRUCTION THE NUMBER OF BYTES CONTAINED IN THAT INSTRUCTION.":GOSUB 130
1610 PRINT "BYTES FOR EACH LINE OF SOURCE ARE:":GOSUB 120
1620 PRINT "3,3,2,1,1,3,1,1,1,1,1,3,1 =16H":GOSUB 120
1630 PRINT "THEREFORE IF WE ORG IT AT BFEA, IT WILL EXTEND TO BFFF":GOSUB 120
1640 PRINT "LET'S FILL IN THE ADDRESSES.":GOSUB 130
1650 PLOT 3,32,0:PRINT "0BFEA"
1660 PRINT "BFEA":PRINT "BFED":PRINT "BFF0":PRINT "BFF2":PRINT "BFF3"
1670 PRINT "BFF4":PRINT "BFF7":PRINT "BFF8":PRINT "BFF9":PRINT "BFFA"
1680 PRINT "BFFB":PRINT "BFFC":PRINT "BFFD":PRINT "C000":GOSUB 134
1690 PRINT "JUST CHECK THEM ALL OUT NOW BEFORE WE FILL IN THE CODE":GOSUB 130
1700 PLOT 6,6,3,5,1:PRINT "21 01 60"
1710 PLOT 3,5,2:PRINT "11 02 06"
1720 PLOT 3,5,3:PRINT "06 70"
1730 PLOT 3,5,4:PRINT "7B"
1740 PLOT 3,5,5:PRINT "BE":PLOT 3,5,6:PRINT "C2 F8 BF"
1750 PLOT 3,5,7:PRINT "72":PLOT 3,5,8:PRINT "23"
1760 PLOT 3,5,9:PRINT "23":PLOT 3,5,10:PRINT "7C"
1770 PLOT 3,5,11:PRINT "B8":PLOT 3,5,12:PRINT "C2 F2 BF"
1780 PLOT 3,5,13:PRINT "C9":GOSUB 134
1790 PRINT "NOTE THE <LO HI> ADDRESSES":GOSUB 120
1800 PRINT "CHECK EACH LINE BEFORE WE PROCEED":GOSUB 130
1810 PRINT "IF WE HAD CHOSEN TO USE THE ASSEMBLER, WE WOULD FIRST HAVE":GOSUB 120
1820 PRINT "HAD TO CREATE THE .SRC FILE WITH EITHER THE LINE EDITOR (EDT)":GOSUB 120
1830 PRINT "OR THE SCREEN EDITOR (EDITOR).":GOSUB 130
1840 PRINT "CREATING A .SRC FILE INVOLVES:":GOSUB 120
1850 PRINT "1. IN FCS ENTER <RUN EDT> OR <RUN EDITOR>":GOSUB 120
1860 PRINT "2. PLACE A SUITABLE DISK INTO THE DRIVE.":GOSUB 120
1870 PRINT "3. WITH EDT, ENTER <CRE FILNAM>":GOSUB 120
1880 PRINT "   WITH EDITOR ENTER <FILNAM>":GOSUB 120
1890 PRINT "4. THE SYSTEM NOW HOLDS POINTERS TO THAT DISK SO DO NOT MOVE IT":GOSUB 120
1900 PRINT "5. WITH EDT, ENTER INSERT MODE WITH <I>.":GOSUB 120
1910 PRINT "6. TYPE IN THE SOURCE USING <TAB> TO SEPARATE THE FIELDS.":GOSUB 120
1920 PRINT "7. EDIT OUT ANY ERRORS AFTER LISTING (IN EDT ENTER EDIT MODE)":GOSUB 120
1930 PRINT "8. WRITE OUT THE FILE. (EDT USE E) (EDITOR USE F1)":GOSUB 130
1940 PRINT "THE ABOVE WILL YIELD A FILE, FILNAM.SRC WHICH IS AN ASCII":GOSUB 120
1950 PRINT "FILE SUITABLE FOR ASSEMBLY.":GOSUB 130
1960 PRINT "ASSEMBLY OF FILNAM.SRC INVOLVES:":GOSUB 120
1970 PRINT "1. WITH ASSEMBLER DISK IN DRIVE, IN FCS ENTER <RUN ASM>":GOSUB 120
1980 PRINT "2. WITH FILNAM.SRC IN THE DRIVE, ENTER <ASM FILNAM>":GOSUB 120
1990 PRINT "3. USING <ATTN/BREAK> AS NECESSARY, OBSERVE THE LISTING AND":GOSUB 120
2000 PRINT "   NOTE ANY ERRORS THAT OCCUR AND ALSO THE ADDRESS OF THE":GOSUB 120
2010 PRINT "   LAST BYTE OF CODE":GOSUB 120
2020 PRINT "4. IF ERRORS OCCUR, EDIT FILNAM.SRC (SEE LATER),ELSE":GOSUB 120
2030 PRINT "5. IF ERROR-FREE, ENTER <ASM FILNAM TO 0:(OR1:)>":GOSUB 120
2040 PRINT "6. THE RESULTING FILE WILL BE FILNAM.LDA":GOSUB 130
2050 PRINT "TO CONVERT THE .LDA FILE TO A .PRG FILE:":GOSUB 120
2060 PRINT "LOADAD = THE HEX LOAD ADDRESS OF THE .LDA FILE,":GOSUB 120
2070 PRINT "ENDAD = THE HEX END ADDRESS OF THE SOURCE CODE NOTED DURING":GOSUB 120
2080 PRINT "THE ASSEMBLER LISTING.":GOSUB 120
2090 PRINT "IN FCS ENTER <LOA FILNAM>":GOSUB 120
2100 PRINT "THEN ENTER <SAV FILNAM,LOADAD-ENDAD>":GOSUB 130
2110 PRINT "IN THE ABOVE EXAMPLE LOADAD = BFEA, ENDAD = BFFF":GOSUB 130
2120 PRINT "YOU NOW HAVE A .PRG FILE WHICH CAN BE LOADED OR RUN.":GOSUB 120
2130 PRINT "WE WILL LOOK AT LOADING SUCH A ROUTINE FROM BASIC IN THE NEXT":GOSUB 120
2140 PRINT "TUTORIAL.":GOSUB 130
2150 PRINT "THE ASSEMBLER WILL NOT DETECT LOGICAL OR PROGRAMMING ERRORS":GOSUB 120
2160 PRINT "BUT IT WILL DETECT SYNTACTICAL ERRORS.":GOSUB 120
2170 PRINT "IF THE ERROR IS NOT OBVIOUS, THE ERROR CODE APPEARING ON THE":GOSUB 120
2180 PRINT "LEFT OF THE FAULTY LINE MAY BE LOOKED UP IN THE LIST OF":GOSUB 120
2190 PRINT "ASSEMBLER ERROR CODES IN APPENDIX XX TO GIVE A CLUE.":GOSUB 130
2200 PRINT "EDITING A .SRC FILE INVOLVES:":GOSUB 120
2210 PRINT "1. WITH EDT ENTER <EDIT FILNAM> AND REPEATEDLY ENTER":GOSUB 120
2220 PRINT "   <255A> UNTIL ALL OF THE FILE IS LOADED TO BUFFER.":GOSUB 120
2230 PRINT "   WITH EDITOR ENTER <FILNAM>":GOSUB 120
2240 PRINT "2. WITH EDT ENTER EDIT MODE <EDIT> AND CORRECT THE ERROR":GOSUB 120
2250 PRINT "   WITH EDITOR SIMPLY EDIT THE ERROR OUT.":GOSUB 120
2260 PRINT "3. EXIT AS FORMERLY AND RE-ASSEMBLE.":GOSUB 130
2270 PRINT "NOTE THAT WITH BOTH EDITORS, IF THE SOURCE FILE SIZE EXCEEDS":GOSUB 120
2280 PRINT "THE BUFFER SIZE, THEN IT MUST BE EDITED PIECEMEAL BUT BY":GOSUB 120
2290 PRINT "THE TIME YOUR FILES ARE THAT SIZE, YOU WILL KNOW ENOUGH TO":GOSUB 120
2300 PRINT "SORT THAT ONE OUT!":GOSUB 130
2310 PRINT "NOTE THAT THE .LDA FILE IS AN INTERMEDIATE FILE TYPE WHICH":GOSUB 120
2320 PRINT "CONSISTS OF A SERIES OF ADDRESSES AND BYTES.":GOSUB 120
2330 PRINT "AS SUCH, IT IS INEFFICIENT IN LOADING COMPARED WITH THE":GOSUB 120
2340 PRINT "MEMORY-IMAGE TYPE .PRG. HOWEVER IT MAY BE LOADED OR RUN IN":GOSUB 120
2350 PRINT "THE SAME WAY AS .PRG.":GOSUB 130
2360 PRINT "NOTE ALSO THAT THE DEFAULT FILE TYPES IN FCS ARE:":GOSUB 120
2370 PRINT "FOR LOA - .LDA        FOR RUN - .PRG":GOSUB 120
2380 PRINT "THUS YOU MAY ENTER <LOA FILNAM> FOR AN .LDA FILE BUT YOU MUST":GOSUB 120
2390 PRINT "ENTER <LOA FILNAM.PRG> FOR A .PRG FILE ETC.":GOSUB 130
2400 PRINT "IN THE NEXT TUTORIAL WE WILL CONSIDER THE TOTAL ASSEMBLY":GOSUB 120
2410 PRINT "LANGUAGE PROGRAMMING PROCESS FROM CONCEPT TO EXIT FROM":GOSUB 120
2420 PRINT "PROGRAM.":GOSUB 130
2430 GOSUB 3010
2440 INPUT "BACK TO MENU, ON TO TUTORIAL 7 OR TERMINATE? ";YN$:GOSUB 3000:PLOT 12
2450 IF YN$= "B"THEN PLOT 1
2460 IF YN$= "7"THEN LOAD "TUTE7":RUN
2470 PLOT 27,11:END
3000 FOR I= 24TO 8STEP - 2:Z= CALL (I):NEXT
3010 FOR I= 8TO 24STEP 2:Z= CALL (I):NEXT :RETURN