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