RIAG Crate 008: 057 Apple Mechanic Backup
Item Preview
Share or Embed This Item
Flag this item for
RIAG Crate 008: 057 Apple Mechanic Backup
- Language
- English
Notes
Disk info for 057_Apple_Mechanic_Backup.dsk:
File Name: riag_008_057_-_Apple_Mechanic_-_Backup/057_Apple_Mechanic_Backup.dsk
Disk Name: DISK VOLUME #254
Physical Size (bytes): 143360
Free Space (bytes): 2560
Used Space (bytes): 140800
Physical Size (KB): 140
Free Space (KB): 2
Used Space (KB): 137
Archive Order: DOS
Disk Format: DOS 3.3
Total Sectors: 560
Free Sectors: 10
Used Sectors: 550
Tracks On Disk: 35
Sectors On Disk: 16
Disk directory for 057_Apple_Mechanic_Backup.dsk:
riag_008_057_-_Apple_Mechanic_-_Backup/057_Apple_Mechanic_Backup.dsk DISK VOLUME #254
* A 015 APPLE MECHANIC
T 001 A
T 001
* A 024 SHAPE EDITOR
* A 024 FONT EDITOR
* A 013 FONT SPLITTER
* A 021 SHAPE ANALYZER
* A 020 XTYPER
* A 010 HI-WRITER
T 001 B
T 001
* A 023 HI-WRITER DEMO
* A 021 SHAPE TABLE DEMO
* A 022 GREETINGS
T 001 C
T 001
* T 002 PAGE COPY 1=2
* T 002 PAGE COPY 2=1
* T 002 PAGE COPY 1=3
* A 042 BYTE ZAP
* A 023 SONG SUBROUTINES
* A 009 TEXT TRICKS
* A 032 TWO-LINERS
T 001 D
T 001
* B 003 CURSORS
* B 005 DEMO SHAPES
* B 034 @BBROS LOGO
* B 034 @FONT SAMPLES
* B 007 ]SMALL STANDARD
* B 008 ]SMALL SQUARE
* B 017 ]APPLE
* B 017 ]BLOCK
* B 020 ]STENCIL
* B 018 ]WESTERN
A 002 E
* A 008 BEAGLE BROS CATALOG
DOS 3.3 format; 2,560 bytes free; 140,800 bytes used.
Text found in 057_Apple_Mechanic_Backup.dsk/APPLE MECHANIC.bas:
10 V$ = "7/16/82"
11 REM 0.0: 5/10/82
12 REM 0.1: 6/16/82
19 D$ = CHR$(13) + CHR$(4):Q$ = CHR$(34)
20 TEXT : HOME : INVERSE : SPEED= 255: PRINT " APPLE MECHANIC ": NORMAL : VTAB 1
30 PRINT "--------------------------------------------------------------------(C) 1982, BERT KERSEY, BEAGLE BROS----------------------------------
35 GOSUB 5000
40 VTAB 5: PRINT " SEE GREETINGS DEMO SEE SHAPE TABLE DEMO SEE HI-WRITER DEMO SEE FONT SAMPLES RUN SHAPE EDITOR RUN FONT EDITOR RUN BYTE ZAP RUN SONG SUBROUTINES RUN TEXT TRICKS RUN TWO-LINERS";
50 PRINT " ------------------------- SEE NOTES ABOUT THIS DISK ------------------------- CATALOG QUIT";: PRINT : PRINT : PRINT " SELECT:";: VTAB 19: HTAB 41 - LEN(V$): PRINT V$
60 VTAB 24: HTAB 12: GET A$: IF A$ <"A" OR (A$ >"L" AND A$ < >"Q") THEN 40
70 IF A$ = "Q" THEN VTAB 23: HTAB 1: CALL -958: END
80 PRINT A$: HOME
90 IF A$ = "A" THEN PRINT D$;"RUN GREETINGS"
100 IF A$ = "B" THEN PRINT D$;"RUN SHAPE TABLE DEMO"
110 IF A$ = "C" THEN PRINT D$;"RUN HI-WRITER DEMO"
120 IF A$ = "D" THEN HGR : POKE -16302,0: PRINT D$;"BLOAD @FONT SAMPLES,A$2000": GET A$: PRINT A$: RUN
130 IF A$ = "E" THEN PRINT D$;"RUN SHAPE EDITOR"
140 IF A$ = "F" THEN PRINT D$;"RUN FONT EDITOR"
150 IF A$ = "G" THEN PRINT D$;"RUN BYTE ZAP"
160 IF A$ = "H" THEN PRINT D$;"RUN SONG SUBROUTINES"
170 IF A$ = "I" THEN PRINT D$;"RUN TEXT TRICKS"
180 IF A$ = "J" THEN PRINT D$;"RUN TWO-LINERS"
182 IF A$ = "L" THEN PRINT D$;"CATALOG": PRINT : FOR I = 1 TO 40: PRINT "-";: NEXT : PRINT "ANY KEY:";: GET A$: PRINT A$: RUN
185 HOME : PRINT " GENERAL NOTES:": PRINT " -------------"
190 PRINT "* SINCE THE APPLE MECHANIC DISK IS 0 % FULL, YOU MAY WANT TO USE FID (ON YOUR SYSTEM MASTER DISK) TO SPLIT IT INTO 2 OR MORE DISKS, THUS PREVENTING": PRINT " "Q$"DISK FULL"Q$;
195 PRINT " ERRORS WHEN SAVING FILES."
200 PRINT : PRINT "* THE INVERSE TITLES & BLANK FILE NAMES IN THE CATALOG WERE MADE WITH BYTE ZAP AND WILL TRANSFER WITH FID.": PRINT
210 PRINT "* IF YOU SUSPECT AN ERROR IN A PROGRAM, REMOVE THE "Q$"ONERR GOTO"Q$" STATEMENT FROM THE LISTING AND RE-RUN THE PROGRAM FOR A REPORT ON ERROR TYPE AND ERROR LINE NUMBER.": PRINT
220 PRINT "* TO MAKE A "Q$"HARD COPY"Q$" PRINTOUT OF A HI-RES IMAGE, YOU NEED TWO THINGS--"
230 PRINT " (SEE YOUR APPLE DEALER.)": PRINT " 1.A PRINTER WITH HI-RES CAPABILITIES. 2.HI-RES "Q$"DUMP"Q$" SOFTWARE THAT IS COMPATIBLE WITH YOUR PRINTER.";
490 FOR I = 1 TO 96: VTAB 4: HTAB 3: PRINT I;: NEXT : VTAB 3: HTAB 36: PRINT "ABOUT"
500 VTAB 24: HTAB 40: GET A$: PRINT A$: HOME
510 PRINT " BYTE ZAP NOTES:": PRINT " --------------": PRINT "* THE GREETING (HELLO) PROGRAM NAME ON APPLE MECHANIC IS "Q$"APPLE MECHANIC"Q$". TO CHANGE IT, SEE PAGE 56.": PRINT
512 PRINT "* THE "Q$"DISK VOLUME"Q$" CATALOG HEADING HAS BEEN CHANGED TO "Q$"BEAGLE BROS"Q$". TO"
515 PRINT " CHANGE IT, SEE PAGE 58.": PRINT
520 PRINT "* TO MAKE THE VOLUME NUMBER PRINT OR NOT PRINT WHEN YOU CATALOG, YOU CAN MAKE A CHANGE ON TRACK 1, SECTOR 12 ($0C):": PRINT : PRINT " BYTE PRINT NO-PRINT NUMBER: VALUE: VALUE:"
530 PRINT " --------- --------- --------- 192 ($C0), 32 ($20) 234 ($EA) 193 ($C1), 66 ($42) 234 ($EA) 194 ($C2), 174 ($AE) 234 ($EA)"
540 PRINT : PRINT "* REMEMBER, DOS CHANGES WILL ONLY BE IN EFFECT AFTER BOOTING THE CHANGED DISK. ----- -------";
545 VTAB 24: HTAB 40: GET A$: PRINT A$
550 HOME : VTAB 6: PRINT "* A THIRD "Q$"PAGE COPY"Q$" PROGRAM (SEE PAGE 42) HAS BEEN ADDED TO THE DISK.": PRINT
560 PRINT " EXEC PAGE COPY 1=3 MOVES PG.3 TO PG.1. ------------------": PRINT " EXEC PAGE COPY 1=3,R4 MOVES PG.1 TO 3. ---------------------
570 PRINT : PRINT " SEE PAGE 30 (POKE 230,ETC.) IF YOU ARE UNFAMILIAR WITH HI-RES PAGE 3."
575 VTAB 24: HTAB 40: GET A$: PRINT A$
580 HOME : POKE -16304,0: POKE -16297,0: POKE -16301,0: VTAB 21: PRINT "REMEMBER TO FOLD YOUR KEY CHART LENGTHWISE AND INSERT IT BEHIND THE TOP ROW OF KEYS ON YOUR APPLE."
600 VTAB 23: HTAB 40: GET A$: RUN
5000 POKE 230,32: HCOLOR= 0: HPLOT 0,0: CALL 62454: HCOLOR= 3: HPLOT 0,143 TO 0,157 TO 216,157 TO 216,143 TO 0,143 TO 70,103 TO 279,103 TO 216,143 TO 0,143: HCOLOR= 0: FOR I = 2 TO 214 STEP 6: HPLOT I,143 TO I +2,143: NEXT : RETURN
Text found in 057_Apple_Mechanic_Backup.dsk/BEAGLE BROS CATALOG.bas:
10 TEXT : HOME : NORMAL :Q$ = CHR$(34): FOR I = 1 TO 17:D$ = D$ +" .": NEXT
20 INVERSE : HTAB 10: PRINT " BEAGLE BROS CATALOG ": NORMAL : PRINT
30 PRINT D$"$24.00 EACH INCLUDES AT LEAST 3 GAMES ON DISK WITH TIP BOOK #2 & PEEKS/POKES CHART."
40 PRINT D$"$24.00 ALTER DOS TO PROTECT PROGRAMS, ETC. WITH TIP BOOK 2, DOS BOSS BOOK & CHART";
50 PRINT D$"$29.50 21 USEFUL UTILITIES ON ONE DISK. WITH TIP BOOK #3 & PEEKS/POKES CHART."
60 PRINT D$"$39.50 HI-RES GRAPHICS/TEXT PLOTTING UTILITY. WITH TIP BOOK #4 & PEEKS/POKES CHART."
70 PRINT D$"$29.50 ANIMATION/CHARACTER EDITOR/DISK ZAPPER WITH TIP BOOK #5 & PEEKS/POKES CHART."
75 PRINT "TIP DISK #1. . . . . . . . . . . $20.00 100 PROGRAMS FROM TIP BOOKS 1-4. WITH PEEKS CHART & APPLE COMMAND CHART";
80 PRINT D$"$29.50 SAVE, LOAD, BSAVE & BLOAD IN APROXI- MATELY ONE-THIRD THE NORMAL TIME! (NOT BY BEAGLE BROS, BUT WE SELL IT.)";
90 VTAB 3: HTAB 1: INVERSE
120 PRINT " GAME PACKS 1-4 ": PRINT : PRINT : PRINT " DOS BOSS ": PRINT : PRINT : PRINT " UTILITY CITY ": PRINT : PRINT : PRINT " ALPHA PLOT ": PRINT : PRINT : PRINT " APPLE MECHANIC ": PRINT : PRINT : PRINT " TIP DISK #1 ": PRINT : PRINT : PRINT " FASTDOS "
200 NORMAL : VTAB 24: HTAB 40: GET A$: PRINT : PRINT
210 PRINT "A FEW MORE WORDS ABOUT FASTDOS ------------------------------"
220 PRINT "A. IT'S FROM AUSTRALIA, SO YOU PROBABLY WON'T FIND IT ELSEWHERE."
230 PRINT "B. YOU 'UPDATE' YOUR DISKS WITH FASTDOS. THEN YOU BOOT YOUR DISK. COMPARE...": PRINT : INVERSE : HTAB 27: PRINT "NORMAL";: HTAB 34: PRINT "FASTDOS";: NORMAL
250 PRINT "LOAD 62 SECTOR PROGRAM . .16 SEC 4 SECSAVE 62 SECTOR PROGRAM . .24 SEC 9 SECBLOAD HI-RES PICTURE . . .10 SEC 3 SECBSAVE HI-RES PICTURE . . .16 SEC 7 SECBLOAD INTBASIC . . . . . .13 SEC 4 SEC"
260 PRINT "C. UPDATED DISKS ARE FULLY-COMPATIBLE WITH PLE, FID, MUFFIN, ETC, ETC, BUT YOU CANNOT COPY THEM OR FASTDOS IT- SELF (WITH 'NORMAL' COPYING METHODS).";: PRINT "D. IF YOU PROGRAM, YOU'LL LOVE FASTDOS!";
290 VTAB 10: HTAB 8: PRINT Q$;: HTAB 15: PRINT Q$: VTAB 23: HTAB 15: PRINT Q$;: HTAB 22: PRINT Q$;
300 VTAB 16: HTAB 36: GET A$
320 VTAB 12
Text found in 057_Apple_Mechanic_Backup.dsk/BYTE ZAP.bas:
80 REM `==============BYTE ZAPBY BERT KERSEYCOPYRIGHT 1982BEAGLE BROS==============
90 SS = 1: REM PRINTER.SLOT
92 LF$ = "": REM LET.LF$=CHR$(10).IF.PRINTER.NEEDS.LINE.FEEDS
120 DIM SC(263),H$(255),DE$(255),FI(255):I = 1:J = 1:K = 1:A = 1:B = 2:C = 3:D = 4:E = 5:F = 6:SP = 160:F0 = 128:FF = 255:TF = 256:LOC = 24576:NLO = PEEK(175) + PEEK(176) *256 -280:Q = -16384:G$ = CHR$(7):D$ = CHR$(13) + CHR$(4):RT = 16:SL = PEEK(47081)/16:DR = PEEK(47082)
130 SPEED= 255: PRINT D$"NOMONICO": TEXT : HOME : INVERSE : POKE 49385,0: VTAB 2: HTAB 13: PRINT ":" SPC( 12)":": HTAB 13: PRINT " BYTE-ZAP ": HTAB 13: PRINT ":" SPC( 12)":": NORMAL : PRINT : HTAB 11: PRINT "APPLE DISK UTILITY"
135 HTAB 11: PRINT "------------------": HTAB 13: PRINT "BY BERT KERSEY"
140 J = 64: FOR I = 0 TO 9:DE$(I) = "00" + STR$(I): NEXT : FOR I = 10 TO 99:DE$(I) = "0" + STR$(I): NEXT : FOR I = 100 TO FF:DE$(I) = STR$(I): NEXT : POKE 49384,0
155 VTAB 11: HTAB 11: PRINT "COPYRIGHT (C) 1982": HTAB 11: FOR I = A TO 18: PRINT "-";: NEXT : PRINT : HTAB 8: PRINT "BEAGLE BROS MICRO SOFTWARE": HTAB 12: PRINT "4315 SIERRA VISTA": HTAB 11: PRINT "SAN DIEGO, CA 92103"
180 FOR I = 0 TO FF: READ H$(I): NEXT : FOR I = 0 TO FF STEP 12: READ SC(I): FOR J = A TO 11:SC(I +J) = SC(I) +C *J: NEXT : NEXT
190 POKE 49385,0: VTAB 18: HTAB A: FOR I = A TO 160: PRINT "-";: NEXT : VTAB 19: PRINT " ";: FLASH : PRINT "WARNING";: NORMAL : PRINT ": BACK UP YOUR DISKS. A MISTAKE COULD EASILY CAUSE IRREPARABLE DAMAGE. "
191 READ FI(0): FOR I = 1 TO 10:FI(I) = FI(0) +C *I: NEXT : FOR I = 11 TO FF STEP 35: READ FI(I):FI(I +A) = FI(I) +B:FI(I +B) = FI(I) +D: FOR J = C TO 32:FI(I +J) = FI(I) +J +C: NEXT : POKE 49384,0:FI(I +33) = FI(I) +36:FI(I +34) = FI(I) +38: NEXT
192 INVERSE : VTAB 19: HTAB 2: PRINT "WARNING": NORMAL : VTAB 23: HTAB 13: PRINT " TO QUIT, OR": VTAB 24: HTAB 6: PRINT "INSERT DISK AND HIT :";: GET A$: IF A$ < > CHR$(13) AND A$ < >"Q" THEN 192
193 VTAB 22: CALL -958: IF A$ = "Q" THEN END
195 TR = 17:SE = 15:RW = 1: GOSUB 9000: ONERR GOTO 7050
260 M$ = "C":DF$ = "H":DI = 1: HOME : GOTO 7050
1000 REM STATUS LINE
1020 IF PEEK(111) + PEEK(112) *TF <25000 THEN VTAB 24: HTAB A: PRINT "CLEARING VARIABLES. ";: FLASH : PRINT "STAND BY.";: NORMAL :I = FRE(0)
1030 POKE -16368,0: NORMAL : VTAB 23: HTAB A: FOR I = A TO 40: PRINT "-";: NEXT : CALL -958: HTAB 5: PRINT ":$ (";: HTAB 22: PRINT ":$ (";: HTAB 38: PRINT ": ";: VTAB 24: HTAB A: INVERSE : PRINT "BYTE";: HTAB 17: PRINT "VALUE";: HTAB 33: PRINT "ASCII";: NORMAL
1040 IF M$ < >"C" THEN S1 = SC(PZ) -A:S2 = SC(PZ):S3 = SC(PZ) +A: GOTO 1080
1060 S1 = FI(PZ):S2 = S1 +A -( PEEK(FI(PZ) +F0) = 173):S3 = S1
1080 C1 = PEEK(S1):C2 = PEEK(S2):C3 = PEEK(S3)
1100 VTAB 24: HTAB 32: PRINT " ";: HTAB 7: PRINT H$(PZ);"(";PZ;"), ";: HTAB 24:P = ( PEEK(LO +PZ)): PRINT H$(P);"(";P;") ";: HTAB 39: CALL -868: POKE 2038,P: POKE 2039,160: IF P = 160 THEN POKE 2038,211: POKE 2039,208
1120 IF P >127 AND P <160 THEN POKE 2038,222: POKE 2039,P
1140 REM CURSOR
1160 CRS = 60 +B *DI: POKE S1,CR: POKE S2,CR: POKE S3,CR: FOR I = A TO 9: NEXT : POKE S1,C1: POKE S2,C2: POKE S3,C3:K = PEEK(Q): IF K 136 AND K < >193 AND K < >141 AND K < >149 AND K < >218 THEN 1300
1200 PZ = PZ -(K = 136) -AZ *(K = 193) -RT *(K = 141 AND DIR = 0): IF PZ <0 THEN PZ = 0
1220 PZ = PZ +(K = 149) +AZ *(K = 218) +RT *(K = 141 AND DIR): IF PZ >255 THEN PZ = 255
1240 IF K = 136 THEN DI = 0
1260 IF K = 149 THEN DI = 1
1280 GOTO 1040
1290 REM KEY CHART OPTIONS
1300 VTAB 24: HTAB A: CALL -958: IF K >172 THEN ON K -172 GOTO 4000,1500,1500,1520,3000,3000,3000,7000,8500,2000,6000,8000,5000
1500 PRINT G$;: GOTO 1020
1520 REM QUIT
1540 VTAB 24: HTAB A: PRINT "QUIT NOW? (Y/N):";: GET A$: IF A$ < >"Y" THEN 1020
1560 VTAB 24: HTAB A: CALL -958: VTAB 23: END
2000 REM CATALOG
2060 VTAB 24: PRINT : PRINT CHR$(4);"CATALOG,S";SL;",D";DR
2080 FOR I = A TO 40: PRINT "-";: NEXT : PRINT "ANY KEY:";: GET A$: PRINT A$: HOME : GOTO 7050
3000 REM READ SECTOR
3020 IF K = 177 OR K = 179 THEN A$ = CHR$(K -F0): GOTO 3080
3040 A$ = "":TS = 1:W$ = "READ TRACK ($00-$22(34)):":MA = 34
3050 GOSUB 9200: IF A$ < >"" THEN 3140
3060 IF A$ = "" THEN 1020
3080 SE = SE +(A$ = "3") -(A$ = "1"): IF SE >15 THEN TR = TR +1:SE = 0: IF TR >34 THEN TR = 0
3100 IF SE <0 THEN SE = 15:TR = TR -1: IF TR <0 THEN TR = 34
3120 GOTO 3160
3140 TR = VV:W$ = "TRACK $" +H$(TR) +"(" + STR$(TR) +"), SECTOR ($00-$0F(15)):":MA = 15: GOSUB 9200: IF A$ = "" THEN 1020
3150 SE = VV
3160 VTAB 24: HTAB A: CALL -868: PRINT "READING TRACK $";H$(TR);"(";TR;"), SECTOR $";H$(SE);"(";SE;")";
3180 RW = 1: GOSUB 9000: IF M$ = "C" AND TR < >17 OR (TR = 17 AND SE = 0) THEN X$ = "C":M$ = DF$
3190 IF TR = 17 AND SE >0 THEN M$ = "C"
3200 GOTO 7050
4000 REM WRITE SECTOR
4020 VTAB 24: HTAB A: CALL -958: FLASH : PRINT "WRITE";: NORMAL : PRINT " ONTO SAME SECTOR? (Y/N):";: GET A$: IF A$ < >"Y" AND A$ < >"N" THEN 1020
4040 IF A$ = "Y" THEN 4120
4060 A$ = "":TS = 0:W$ = "WRITE ONTO TRACK ($00-$22(34)):":MA = 34: GOSUB 9200: IF A$ = "" THEN 1020
4080 TR = VV:W$ = "TRACK $" +H$(TR) +"(" + STR$(TR) +"), SECTOR ($00-$0F(15)):":MA = 15: GOSUB 9200: IF A$ = "" THEN 1020
4100 SE = VV: VTAB 24: HTAB A: CALL -868: FLASH : PRINT "WRITE";: NORMAL : PRINT " TRACK $";H$(TR);"(";TR;"), SECTOR $";H$(SE);"(";SE;")? ";: GET A$: IF A$ < >"Y" THEN 1020
4120 RW = 2: GOSUB 9000:RW = 1: GOTO 1020
5000 REM CHANGE A BYTE
5020 TS = 0:VV = PEEK(LO +PZ): IF M$ < >"C" THEN S = SC(PZ): POKE S -A,94: POKE S,94: POKE S +A,94: GOTO 5060
5040 S = FI(PZ): POKE S,94: POKE S +A -( PEEK(S +F0) = 173),94
5060 W$ = "OLD VALUE:$" +H$( PEEK(LO +PZ)) +"(" + STR$( PEEK(LO +PZ)) +") NEW:":MA = FF: GOSUB 9200
5080 POKE LO +PZ,VV:A$ = M$: VTAB 24: HTAB A: CALL -868:X = S: GOSUB 9100
5100 IF M$ < >"C" THEN 5180
5120 IF PEEK(S +F0) = 173 THEN POKE S,VV: GOTO 5300
5140 NORMAL :HT = HT -1: IF VT >6 AND (HT = 1 OR HT = 5 OR HT = 37) THEN INVERSE
5160 VTAB VT: HTAB HT: PRINT H$(VV): NORMAL : GOTO 5300
5180 VTAB VT: HTAB HT -2: PRINT SPC( 3)
5200 IF M$ < >"D" THEN 5260
5220 NORMAL : IF PZ - INT(PZ/2) *2 = 0 THEN INVERSE
5240 VTAB VT: HTAB HT -2: PRINT DE$(VV): GOTO 5300
5260 IF M$ = "H" THEN VTAB VT: HTAB HT -1: PRINT H$(VV): GOTO 5300
5280 POKE SC(PZ),VV: GOTO 5300
5300 PZ = PZ +(PZ <255):DI = 1: GOTO 1020
6000 REM CHANGE SLOT/DRIVE
6020 VTAB 24: HTAB A: CALL -868: PRINT "SLOT ";SL;", DRIVE ";DR;: HTAB 6: GET A$: IF A$ = CHR$(13) THEN 6080
6040 IF VAL(A$) >7 OR VAL(A$) <1 THEN 6020
6060 SL = VAL(A$)
6080 VTAB 24: HTAB A: CALL -868: PRINT "SLOT ";SL;", DRIVE ";DR;: HTAB 15: GET A$: IF A$ = CHR$(13) THEN 6140
6100 IF VAL(A$) <1 OR VAL(A$) >2 THEN 6080
6120 DR = VAL(A$)
6140 POKE 43626,SL: POKE 47081,SL *16: POKE 43624,DR: POKE 47082,DR: GOTO 1020
7000 REM FORMAT
7040 X$ = M$: VTAB 24: HTAB A: PRINT "FORMAT: HEX, DEC, ASCII, NOFLASH, CAT:";: INVERSE : HTAB 9: PRINT "H";: HTAB 14: PRINT "D";: HTAB 19: PRINT "A";: HTAB 26: PRINT "N";: HTAB 35: PRINT "C";: NORMAL : HTAB 39: GET A$: IF A$ = CHR$(13) THEN 1020
7041 IF A$ < >"H" AND A$ < >"D" AND A$ < >"A" AND A$ < >"N" AND A$ < >"C" THEN 7040
7042 M$ = A$
7045 IF M$ < >"C" THEN DF$ = M$
7050 NORMAL : IF M$ = "C" THEN VTAB B: HTAB A: CALL -868: HTAB 9: PRINT "=====": VTAB 3: PRINT "T S T F";: CALL -868: PRINT : PRINT "R E Y I";: CALL -868: PRINT : PRINT "A C P L";: CALL -868: PRINT : FOR I = 6 TO 20 STEP 2: VTAB I: CALL -868: HTAB 7: FOR K = A TO 30: PRINT "-";: NEXT : PRINT : NEXT
7055 IF M$ = "C" THEN VTAB 21: CALL -868: VTAB 22: CALL -868: INVERSE : VTAB 3: PRINT "T";: HTAB 5: PRINT "T";: HTAB 37: PRINT "S": PRINT "R";: HTAB 5: PRINT "Y";: HTAB 37: PRINT "I": PRINT "A";: HTAB 5: PRINT "P";: HTAB 37: PRINT "Z": NORMAL
7060 IF (M$ = "A" OR M$ = "N") AND (X$ = "C" OR X$ = "H" OR X$ = "D") THEN POKE 32,4: POKE 33,36: POKE 35,22: HOME : TEXT
7065 IF (M$ = "A" OR M$ = "N") AND X$ = "C" THEN VTAB A: HTAB A: FOR I = 0 TO 252 STEP 12: PRINT "$"H$(I)">": NEXT
7080 IF M$ < >"C" THEN AZ = 12: GOTO 7200
7120 AZ = 35: VTAB A: HTAB A: PRINT "$00> ";: FOR I = 0 TO 10: PRINT H$( PEEK(LO +I));" ";: NEXT : CALL -868
7130 FOR I = 11 TO 221 STEP 35: VTAB C +B *(I +59)/35: HTAB A: INVERSE : PRINT H$( PEEK(LO +I));: NORMAL : PRINT H$( PEEK(LO +I +A));: INVERSE : PRINT H$( PEEK(LO +I +B));: FOR J = I +3 TO I +32: POKE FI(J), PEEK(LO +J): NEXT
7140 HTAB 37: PRINT H$( PEEK(LO +I +33));: NORMAL : PRINT H$( PEEK(LO +I +34)): NEXT : VTAB 21: CALL -868
7180 SPEED= 180: INVERSE : VTAB 22: HTAB 7: PRINT SPC( 30);: SPEED= FF: VTAB 22: HTAB 7: PRINT " TRACK $";H$(TR);"(";TR;"),SECTOR $";H$(SE);"(";SE;")":PZ = 14: GOTO 1020
7200 IF M$ = "H" THEN VTAB A: HTAB A: FOR I = 0 TO 252 STEP 12: PRINT "$";H$(I);">": NEXT : VTAB A: HTAB 15: POKE 32,4: POKE 33,36: VTAB A: HTAB A: FOR I = 0 TO FF: PRINT " ";H$( PEEK(LO +I));: NEXT : TEXT
7220 IF M$ = "A" THEN FOR I = 0 TO FF: POKE SC(I), PEEK(LO +I): NEXT
7240 IF M$ = "N" THEN FOR I = 0 TO FF: POKE SC(I), PEEK(NLO + PEEK(LO +I)): NEXT
7320 IF M$ = "D" THEN VTAB A: HTAB A: FOR I = A TO 22: PRINT DE$((I -A) *12);">": NEXT : NORMAL : VTAB A: HTAB 15: POKE 32,4: POKE 33,36: VTAB A: HTAB A: FOR I = 0 TO FF: PRINT DE$( PEEK(LO +I));: NEXT : TEXT
7340 IF M$ = "D" THEN COLOR= C: FOR I = 4 TO 34 STEP F: FOR V = A TO 41 +B *(I <14) STEP B: HLIN I,I +B AT V: NEXT : NEXT
7360 VTAB 22: HTAB 17: INVERSE : SPEED= 180: PRINT SPC( 24): SPEED= FF: VTAB 22: HTAB 17 +(TR <10 OR SE <10): PRINT "TRACK$";H$(TR)"(";TR;"),SECT$";H$(SE);"(";SE;")": NORMAL : GOTO 1020
7380 GOTO 7000
7999 REM DISK MAP
8000 VTAB 24: PRINT "DISK MAP? (Y/N):";: GET A$: IF A$ < >"Y" THEN 1020
8005 TX = TR:SX = SE:TR = 17:SE = 0:RW = 1: GOSUB 9000:TR = TX:SE = SX: ONERR GOTO 8094
8010 MP = 1: HOME : INVERSE :A$ = "0123456789ABCDEF": VTAB 2: HTAB 2: PRINT " 1111111111111111222 ": HTAB 2: PRINT "$";A$;A$;"012 ": FOR I = A TO 16: VTAB I +3: HTAB 2: PRINT MID$ (A$,I,1);: HTAB 38: PRINT I -1; SPC( I <11): NEXT
8020 VTAB 20: HTAB 2: PRINT SPC( 38): PRINT : HTAB 2: PRINT SPC( 38): VTAB 20: HTAB 2: PRINT " 01234567891111111111222222222233333 ": HTAB 2: PRINT " 0123456789012345678901234 ": NORMAL
8030 A$ = "+--------------TRACK/HEX---------------+": VTAB A: HTAB A: PRINT A$: VTAB 22: PRINT A$: VTAB 22: HTAB 22: PRINT "DEC"
8040 A$ = "!!!!!SECTOR/HEX!!!!!": FOR I = A TO LEN(A$): VTAB I +1: HTAB A: PRINT MID$ (A$,I,1);: HTAB 40: PRINT MID$ (A$,I,1): NEXT : VTAB 14: HTAB 40: PRINT "D": HTAB 40: PRINT "C": VTAB 24: HTAB A: PRINT " TO ESCAPE";
8090 O$(0) = "+":O$(A) = ".": FOR J = LO +56 TO LO +192 STEP D: VTAB D: HTAB C +(J -LO -56)/D: FOR N = J +A TO J STEP -A: FOR I = 0 TO 7:K = PEEK(N)/B ^I: PRINT O$(K - INT(K/B) *B);: NEXT : NEXT : IF PEEK(Q) < >155 THEN NEXT
8094 ONERR GOTO 7050
8095 IF PEEK(Q) = 155 THEN POKE -16368,0:J = LO +196:N = J -A:I = 8: NEXT J: GOSUB 9000: GOTO 8110
8100 POKE -16368,0: GOSUB 9000: VTAB 24: HTAB A: PRINT "5=PRINTER DUMP, OR ANY KEY=CONTINUE:";: GET A$: IF A$ = "5" THEN 8500
8110 POKE -16368,0:MP = 0: VTAB 24: HTAB A: CALL -868: GOTO 7050
8499 REM DUMP
8500 VTAB 24: HTAB A: CALL -868: PRINT "DUMP TO PRINTER? (Y/N):";: GET A$: IF A$ = "Y" THEN 8505
8502 IF MP THEN MP = 0: GOTO 7050
8503 GOTO 1020
8505 VTAB 24: HTAB A: PRINT " TO ESCAPE";: CALL -868
8510 VTAB A: PRINT D$"PR#"SS: PRINT LF$: PRINT LF$: FOR I = A TO 23:J = F0 *I +A -(984 * INT((I -A)/8)) +895: VTAB I: FOR K = J TO J +39:PK = PEEK(K):PK = PK +64 *(PK <32):PK = PK -64 *(PK >95 AND PK 155 THEN NEXT : VTAB A: PRINT LF$: NEXT
8515 VTAB A: PRINT LF$: PRINT LF$: POKE -16368,0: PRINT D$;"PR#0"
8520 MP = 0: GOTO 7050
9000 REM READ/WRITE SECTOR
9020 POKE 768,32: POKE 769,227: POKE 770,3: POKE 771,76: POKE 772,217: POKE 773,3
9040 POKE 47083,0: POKE 47084,TR: POKE 47085,SE: POKE 47088,LO - INT(LO/TF) *TF: POKE 47089, INT(LO/TF): POKE 47090,0: POKE 47091,0: POKE 47092,RW: REM (RW=1 TO READ. RW=2 TO WRITE.)
9060 CALL 768: CALL 2054: REM REM READ/WRITE AT $300
9080 RETURN
9100 REM FIND TABS FROM SC()
9120 VT = (X >1023 AND X <1064) +2 *(X >1151 AND X <1192) +3 *(X >1279 AND X <1320) +4 *(X >1407 AND X <1448) +5 *(X >1535 AND X <1576) +6 *(X >1663 AND X <1704) +7 *(X >1791 AND X <1832) +8 *(X >1919 AND X <1960): IF VT THEN 9180
9140 VT = 9 *(X >1063 AND X <1104) +10 *(X >1191 AND X <1232) +11 *(X >1319 AND X <1360) +12 *(X >1447 AND X <1488) +13 *(X >1575 AND X <1616) +14 *(X >1703 AND X <1744) +15 *(X >1831 AND X <1872) +16 *(X >1959 AND X <2000): IF VT THEN 9180
9160 VT = 17 *(X >1103 AND X <1144) +18 *(X >1231 AND X <1272) +19 *(X >1359 AND X <1400) +20 *(X >1487 AND X <1528) +21 *(X >1615 AND X <1656) +22 *(X >1743 AND X <1784) +23 *(X >1871 AND X <1912) +24 *(X >1999 AND X <2040)
9180 HT = X -SC(12 *(VT -1)) +7: RETURN
9200 REM GET A VALUE
9220 V$ = "":A$ = "": VTAB 24: HTAB A: CALL -868: POKE 34,23: PRINT W$;: CALL -657: POKE 34,0:V$ = "": FOR I = 512 TO 767: IF PEEK(I) < >141 THEN V$ = V$ + CHR$( PEEK(I) -F0): NEXT
9240 IF NOT LEN(V$) THEN RETURN
9260 IF LEN(V$) >3 THEN PRINT G$;: GOTO 9220
9280 A$ = LEFT$(V$,1)
9300 IF ( VAL(V$) = 0 AND A$ < >"0" AND A$ < >"$" AND A$ < >"L" AND A$ < >"C" AND A$ < >"I" AND A$ < >"F" AND A$ < >"N") OR ( LEN(V$) = 1 AND (V$ <"0" OR V$ >"9")) THEN PRINT G$;: GOTO 9220
9320 IF A$ = "$" OR (A$ > = "0" AND A$ < = "9") THEN 9520
9340 IF LEN(V$) >2 THEN PRINT G$;: GOTO 9220
9360 C$ = MID$ (V$,2,1)
9380 IF A$ = "N" THEN V$ = STR$( ASC(C$) +F0): GOTO 9660
9400 IF A$ = "I" AND C$ > = "@" AND C$ < = "_" THEN V$ = STR$( ASC(C$) -64): GOTO 9660
9420 IF (A$ = "I" AND C$ > = " " AND C$ < = "?") OR (A$ = "F" AND C$ > = "@" AND C$ < = "_") THEN V$ = STR$( ASC(C$)): GOTO 9660
9440 IF A$ = "F" AND C$ < = "?" AND C$ > = " " THEN V$ = STR$( ASC(C$) +64): GOTO 9660
9460 IF A$ = "C" AND C$ < = "_" AND C$ > = "@" THEN V$ = STR$( ASC(C$) +64): GOTO 9660
9480 IF A$ = "L" AND C$ > = "@" AND C$ < = "_" THEN V$ = STR$( ASC(C$) +160): GOTO 9660
9500 PRINT G$;: GOTO 9220
9520 IF A$ < >"$" THEN 9660
9540 IF LEN(V$) = 2 THEN V$ = "$0" + RIGHT$(V$,1)
9560 V1$ = MID$ (V$,2,1):V2$ = RIGHT$(V$,A)
9580 IF (V1$ <"0") OR (V1$ >"F") OR (V1$ <"A" AND V1$ >"9") THEN PRINT G$;: GOTO 9220
9600 IF (V2$ <"0") OR (V2$ >"F") OR (V2$ <"A" AND V2$ >"9") THEN PRINT G$;: GOTO 9220
9620 V = 16 *( ASC(V1$) -48 -7 *(V1$ >"@")) + ASC(V2$) -48 -7 *(V2$ >"@")
9640 V$ = STR$(V): GOTO 9700
9660 FOR I = A TO LEN(V$):X$ = MID$ (V$,I,1): IF X$ > = "0" AND X$ < = "9" THEN NEXT : GOTO 9700
9680 PRINT G$;: GOTO 9220
9700 VV = VAL(V$): IF VV >MA OR VV <0 THEN V$ = "": PRINT G$;: GOTO 9220
9720 RETURN
10000 DATA 00,01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20,21,22,23,24,25,26,27,28,29,2A,2B,2C,2D,2E,2F,30,31,32,33,34,35,36,37,38,39,3A,3B,3C,3D,3E,3F
10020 DATA 40,41,42,43,44,45,46,47,48,49,4A,4B,4C,4D,4E,4F,50,51,52,53,54,55,56,57,58,59,5A,5B,5C,5D,5E,5F,60,61,62,63,64,65,66,67,68,69,6A,6B,6C,6D,6E,6F,70,71,72,73,74,75,76,77,78,79,7A,7B,7C,7D,7E,7F
10040 DATA 80,81,82,83,84,85,86,87,88,89,8A,8B,8C,8D,8E,8F,90,91,92,93,94,95,96,97,98,99,9A,9B,9C,9D,9E,9F,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,BA,BB,BC,BD,BE,BF
10060 DATA C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,CA,CB,CC,CD,CE,CF,D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF,E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,EA,EB,EC,ED,EE,EF,F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,FA,FB,FC,FD,FE,FF
10080 DATA 1029,1157,1285,1413,1541,1669,1797,1925,1069,1197,1325,1453,1581,1709,1837,1965,1109,1237,1365,1493,1621,1749,1029,1792,1064,1320,1576,1832,1104,1360
65535 REM ==============BYTE ZAPBY BERT KERSEYCOPYRIGHT 1982BEAGLE BROS==============
Text found in 057_Apple_Mechanic_Backup.dsk/CURSORS.txt:
Offset Hex Data Characters
======= ================================================ =================
$000000 0C 00 20 00 47 00 59 00 5B 00 68 00 75 00 82 00 .. .G.Y. [.h.u...
$000010 95 00 9B 00 9B 00 9B 00 9B 00 00 00 00 00 00 00 ........ ........
$000020 09 2D 2D 15 3F 3F 3F 17 2D 2D 2D 2D 3E 3F 3F 3F .--.???. ---->???
$000030 37 2D 2D 2D 2D 3E 3F 3F 3F 37 2D 2D 2D 2D 1E 3F 7---->?? ?7----.?
$000040 3F 3F 0E 2D 2D 96 00 09 2D 2D 15 15 36 36 1E 1E ??.--... --..66..
$000050 3F 3F 1C 1C 24 24 0C 05 00 1D 00 36 36 36 2E 2D ??..$$.. ...666.-
$000060 2D 24 24 24 3C 3F 3F 00 12 36 36 2D 2D 25 24 3C -$$$?. .66--%$<
$000070 3F 3F 18 08 00 2E 68 49 29 B6 92 32 3F DB 1B 27 ??....hI )6.2?[.'
$000080 04 00 92 92 92 92 92 2D 2D 2D 2D 25 C0 C0 C0 C0 .......- ---%@@@@
$000090 C0 C0 C0 1B 00 2D 3E 37 2D 05 00 0D 16 1F 07 00 @@@..->7 -.......
$0000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
$0000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
$0000C0 00 00 00 00 00 00 00 00 A0 00 A5 3C C9 00 D0 02 ........ .%.@ %>I.P.F?
$0000E0 C6 3E A5 40 C9 00 D0 02 C6 41 C6 40 A5 3D C5 3F F>%@I.P. FAF@%=E?
$0000F0 D0 E2 A5 3C C5 3E D0 DC 60 D8 A0 00 4C 2C FE .. Pb%P\ `X .L,~
** END **
Text found in 057_Apple_Mechanic_Backup.dsk/FONT EDITOR.bas:
90 REM (C)1982, BEAGLE BROS
100 Q = 49152:C = 49168:D$ = CHR$(13) + CHR$(4):G$ = CHR$(7):Q$ = CHR$(34):T = 256:R = 149:L = 136:U = 193:D = 218:F = 128:P = 233:SL = PEEK(47081)/16:DR = PEEK(47082):SH = 24576:SF = 24832: POKE 232,0: POKE P,96: SCALE= 1: ROT= 0:CH = 2:X$ = "LOAD": POKE 40286,35: POKE 40287,216
110 TEXT : HOME : POKE 49385,0: VTAB 1: PRINT D$"BLOAD CURSORS,A"SH: PRINT D$"MONICO"
120 ONERR GOTO 285
130 SZ = PEEK(SF +1) -1: IF PEEK(SF +2) < >208 OR PEEK(SF +3) < >0 OR SZ <0 OR SZ >1 THEN 2000
140 IF X$ = "LOAD" THEN GOSUB 640
150 POKE 49232,0: POKE 49239,0: POKE 49235,0: GOSUB 820
160 :
165 POKE C,0: POKE P,96: HOME : INVERSE : VTAB 22: PRINT " SHAPE-FONT EDITOR ";: NORMAL : PRINT " (C) 1982 BEAGLE BROS";: GOSUB 1090: PRINT "SELECT FUNCTION FROM KEYBOARD CHART:";: GET A$: HOME
170 ON VAL(A$) GOTO 830,220,220,205,1000,1030: GOTO 160
205 GOSUB 1100: PRINT "ANY KEY:";: GET A$: POKE -16304,0: GOTO 160
220 X$ = "LOAD": IF A$ = "2" THEN X$ = "SAVE"
230 HOME : VTAB 24: PRINT " TO ESCAPE";: VTAB 22: HTAB 1: PRINT X$" FONT NAMED";: GOSUB 270: IF X$ = "LOAD" THEN PRINT D$"BLOAD "F$",A"SF:SZ = PEEK(SF +1) -1: IF SZ <0 OR SZ >1 THEN POKE 222,13: GOTO 285
250 IF X$ = "SAVE" THEN PRINT D$"BSAVE "F$",A"SF",L"40 + PEEK(SF +200) + PEEK(SF +201) *T
260 GOTO 140
270 INPUT ":";F$: CALL -958: IF NOT LEN(F$) THEN POP :X$ = "": GOTO 150
282 RETURN
285 T$ = LEFT$(F$,1): IF T$ <"0" OR T$ >"6" THEN 288
286 A$ = F$:F$ = " ": GOTO 170
287 :
288 HOME : VTAB 22:I = PEEK(222): IF I = 16 OR I = 77 THEN POKE -16304,0: POKE -16297,0: POKE 40286,60: POKE 40287,212: END
289 INVERSE : IF I <255 THEN PRINT G$" ERROR "I" ";: IF I = 6 THEN HTAB 2: PRINT F$;" FILE NOT FOUND "
290 IF I = 13 THEN HTAB 2: PRINT "IMPROPER FILE TYPE "
291 FOR K = 1 TO 2000 -1999 *(I = 255): NEXT : NORMAL : GOTO 160
300 POKE P,96:X = 1:Y = 71 -70 *SZ:XL = 1:YL = 71 -70 *SZ:XH = 61 +50 *SZ:YH = 141 +10 *SZ: XDRAW 3 AT 5,5 +70 *(SZ = 0):P1 = PEEK(234): XDRAW 3 AT 5,5 +70 *(SZ = 0):CR = 1: IF P1 >0 THEN CR = 2
310 GOSUB 950: PRINT ": PLOT CHARACTER AND .": HTAB 12: PRINT " = PLOT/NO-PLOT";
320 XDRAW CR AT X,Y:K = PEEK(Q): XDRAW CR AT X,Y: IF K XH):X = X +10 *(X YH)
340 IF K = 155 THEN GOSUB 810: GOTO 160
350 IF K = 160 THEN CR = CR +1 -2 *(CR = 2)
360 IF CR = 1 THEN HCOLOR= 3: DRAW CR AT X,Y: DRAW 3 AT XS +X/10,YS +(Y -70 +70 *SZ)/10
370 IF CR = 2 THEN HCOLOR= 0: DRAW 1 AT X,Y: DRAW 3 AT XS +X/10,YS +(Y -70 +70 *SZ)/10: IF Y = 151 THEN HCOLOR= 3: HPLOT 0,159 TO 120,159
380 IF K < >141 THEN 320
390 VTAB 23: HTAB 1: CALL -958: VTAB 21: PRINT "SCANNING PLOT #1 ";:V = 40 +SF + PEEK(SF +200) + PEEK(SF +201) *T
400 XW = 5:PT = 0:XL = 5: FOR Y = 75 -70 *SZ TO 145 +10 *SZ STEP 20: FOR I = 65 +50 *SZ TO 5 STEP -10: XDRAW 3 AT I,Y:P1 = PEEK(234): XDRAW 3 AT I,Y +10:P2 = PEEK(234): XDRAW 3 AT I,Y: XDRAW 3 AT I,Y +10: IF P1 >0 AND P2 >0 THEN NEXT I:XR = XL: GOTO 420
410 XR = I
420 IF XR >XW THEN XW = XR
430 HCOLOR= 3: HPLOT XR +5,Y -5 TO XR +5,Y +15
440 FOR X = XL TO XR STEP 10:PT = PT +1: VTAB 21: HTAB 16: PRINT PT: XDRAW 3 AT X,Y:VE = 1 +(X = XR): POKE V +PT,VE: IF PEEK(234) = 0 THEN VE = 5 +(X = XR): POKE V +PT,VE
450 SCALE= 10: XDRAW 3 AT X -5,Y: SCALE= 1: NEXT : FOR I = 5 TO XR STEP 10: XDRAW 3 AT I,Y +10:P1 = PEEK(234): XDRAW 3 AT I,Y +20:P2 = PEEK(234): XDRAW 3 AT I,Y +10: XDRAW 3 AT I,Y +20: IF P1 >0 AND P2 >0 THEN NEXT I:XL = XR: GOTO 470
460 XL = I
470 HCOLOR= 3: HPLOT XL -5,Y +5 TO XL -5,Y +25
480 FOR X = XR TO XL STEP -10:PT = PT +1: VTAB 21: HTAB 16: PRINT PT: XDRAW 3 AT X,Y +10:VE = 3 -(X = XL): POKE V +PT,VE: IF PEEK(234) = 0 THEN VE = 7 -(X = XL): POKE V +PT,VE
490 SCALE= 10: XDRAW 3 AT X -5 +5 *(X <5),Y +10: SCALE= 1: NEXT X: IF PEEK(Q) = 155 THEN GOSUB 810: GOTO 160
500 NEXT Y: POKE V +PT, PEEK(V +PT) -1
510 FOR X = XL TO XW STEP 10:PT = PT +1: POKE V +PT,1: NEXT
520 S = 824:PT = PT +1: POKE V +PT,0
530 IN = 1: GOTO 830
540 IN = 0:I = 0:L1 = SF + PEEK(SF +2 *CH) +T * PEEK(SF +2 *CH +1):L2 = SF + PEEK(SF +2 *(CH +1)) +T * PEEK(SF +2 *(CH +1) +1):LE = 40 +SF + PEEK(SF +200) +T * PEEK(SF +201): HOME
550 I = I +1: VTAB 22: HTAB 1: PRINT "WRITING PLOT #";I;", BYTE #";S -823;:N = PEEK(V +I):I = I +1: IF I <(PT) AND N +8 * PEEK(V +I) 6) -(Y >7)
690 NEXT : NEXT : POKE P,96: RETURN
700 XS = F +(J - INT(J/11) *11) *14:YS = 18 *( INT(J/11)) -(J >76) -(J >87): RETURN
710 VTAB 23: HTAB 1: CALL -958: PRINT " SELECT FOR GRID IMPRINT, OR ERASE/REDRAW, OR SHADOW IMPRINT";: POKE 2039,174
720 K = PEEK(Q): IF K < >197 AND K < >201 AND K < >211 AND K < >155 THEN 720
730 POKE C,0: VTAB 23: HTAB 1: CALL -958:CR = 1:A$ = CHR$(K -F): IF A$ = "S" THEN CR = 6
740 IF K = 155 THEN 160
750 GOSUB 810
760 IF A$ = "E" THEN GOSUB 800: GOTO 300
770 FOR Y = YS TO YS +7 +8 *SZ: FOR X = XS TO XS +6 +5 *SZ: XDRAW 3 AT X,Y:P1 = PEEK(234): XDRAW 3 AT X,Y: IF P1 = 0 THEN XDRAW CR AT (X -XS) *10 +1,70 -70 *SZ +(Y -YS) *10 +1
780 NEXT : NEXT : IF A$ = "S" THEN GOSUB 800
790 GOTO 300
800 HCOLOR= 0: FOR X = XS TO XS +11: HPLOT X,YS TO X,YS +15: NEXT : RETURN
810 OS = 16384:OE = 24575:NS = 8192:MV = -1: GOSUB 960: RETURN
820 OS = 8192:OE = 16383:NE = 24575:MV = 1: GOSUB 960: RETURN
830 HOME : VTAB 22: GOSUB 1090: VTAB 24: HTAB 12: PRINT "AND .";: GOSUB 950: IF NOT INS THEN PRINT ": SELECT CHARACTER TO BE EDITED";
840 IF (IN) THEN PRINT ": SELECT CHARACTER TO REPLACE"
850 INVERSE : GOTO 920
860 SCALE= 7 +4 *SZ: FOR J = 1 TO 2: FOR I = YS TO YS +7 +8 *SZ STEP 3: XDRAW 3 AT XS,I: NEXT : NEXT : SCALE= 1:K = PEEK(Q): IF K 96 THEN CH = 96
880 IF CH <2 THEN CH = 2
890 IF K = 141 AND INS THEN 540
900 IF K = 141 AND NOT INS THEN 710
910 IF K = 155 THEN IN = 0: GOSUB 810: GOTO 160
920 J = CH -2: GOSUB 700
930 NORMAL : VTAB 21: HTAB 1: PRINT SPC( 20);: HTAB 21: PRINT "KEY:"Q$ CHR$(CH +31)Q$", ASCII:"CH +31" ";: IF CH >64 THEN HTAB 2: PRINT "(LOWER CASE "Q$ CHR$(CH -1)Q$")";
940 GOTO 860
950 VTAB 23: HTAB 1: PRINT "A,Z,<-,->:";: INVERSE : HTAB 1: PRINT "A";: HTAB 3: PRINT "Z";: HTAB 5: PRINT "<-";: HTAB 8: PRINT "->";: NORMAL : RETURN
960 POKE 60,OS - INT(OS/T) *T: POKE 61, INT(OS/T): POKE 62,OE - INT(OE/T) *T: POKE 63, INT(OE/T): POKE 64,NE - INT(NE/T) *T: POKE 65, INT(NE/T): POKE 66,NS - INT(NS/T) *T: POKE 67, INT(NS/T): CALL 24776 +49 *(MV <0): RETURN
1000 HOME : VTAB 22: PRINT "SLOT "SL", DRIVE "DR;: HTAB 6: GET A$: IF A$ = CHR$(13) THEN 1010
1003 IF VAL(A$) >7 OR VAL(A$) <1 THEN 1000
1005 SL = VAL(A$)
1010 VTAB 22: HTAB 6: PRINT SL;: HTAB 15: PRINT DR;: HTAB 15: GET A$: IF A$ = CHR$(13) THEN 1025
1013 IF VAL(A$) <1 OR VAL(A$) >2 THEN 1010
1015 DR = VAL(A$)
1025 POKE 43626,SL: POKE 47081,SL *16: POKE 43624,DR: POKE 47082,DR: GOTO 160
1030 HGR : HCOLOR= 0: HPLOT 0,99:LC = 0: IF SZ <0 OR SZ >1 THEN 160
1040 POKE P,96: SCALE= SZ +1: XDRAW 4 +(LC >0)
1050 K = PEEK(Q): IF K 0): IF K >159 THEN SCALE= 1: POKE P,97: XDRAW K +LC *(K >191 AND K <224) -159: XDRAW 99
1070 CALL 62923: IF PEEK(225) >0 OR K = 141 THEN OS = 16384:OE = 24575:NS = 8192:MV = -1: GOSUB 960: SCALE= 1: GOTO 160
1075 IF K = 155 THEN LC = LC +32 -64 *(LC = 32)
1080 GOTO 1040
1090 FOR I = 1 TO 40: PRINT "-";: NEXT : RETURN
1100 HOME : TEXT : PRINT D$;"CATALOG": PRINT : GOSUB 1090: RETURN
2000 RESTORE : FOR I = SF TO SF +3: READ J: POKE I,J: NEXT : FOR I = SF +4 TO SF +192 STEP 2: POKE I,213: POKE I +1,0: NEXT : FOR I = SF +194 TO SF +231: READ J: POKE I,J: NEXT : GOTO 130
2010 DATA 100,2,208,0,220,0,220,0,220,0,229,0,0,0,0,0,0,0,9,137,146,146,0,150,146,146,146,146,9,0,64,192,64,192,64,192,64,8,0,25,0,0
Text found in 057_Apple_Mechanic_Backup.dsk/FONT SPLITTER.bas:
100 PRINT CHR$(4);"BLOAD ]SMALL STANDARD,A$4000": PRINT CHR$(4);"BLOAD CURSORS,A$4A00"
110 GOSUB 7000
120 VTAB 21: HTAB 1: FOR I = 1 TO 40: PRINT "-";: NEXT : CALL -958: VTAB 24: PRINT "(ENTER Q TO QUIT OR C TO CATALOG.)";: VTAB 22: HTAB 1: INPUT "NAME OF FONT TO BE SPLIT:";F$: VTAB 21: HTAB 1: CALL -958
130 IF F$ = "C" THEN PRINT CHR$(4);"CATALOG": PRINT : PRINT : PRINT : PRINT : GOTO 120
140 IF F$ = "Q" THEN 10000
150 PRINT CHR$(4);"BLOAD";F$;",A$4B00": HOME
160 HCOLOR= 3: ROT= 0: SCALE= 1:SF = 19200: POKE -16304,0: POKE -16301,0: POKE -16300,0: POKE -16297,0: ONERR GOTO 60000
170 NC = PEEK(24832):N = NC: IF NC >96 THEN N = 96
180 POKE 232,0: POKE 233,64
190 HGR : FOR I = 1 TO N:A$ = STR$(I):J = I -1:XP = 17.5 *(J - INT(J/16) *16):YP = 26.5 * INT(J/16): POKE 233,64: XDRAW 100 AT XP,YP: FOR K = 1 TO LEN(A$): XDRAW ASC( MID$ (A$,K,1)) -31: XDRAW 99: NEXT : POKE 233,75: XDRAW I AT XP,YP +8: NEXT
200 HOME : VTAB 21: FOR I = 1 TO 40: PRINT "-";: NEXT : VTAB 24: PRINT "(ENTER Q TO QUIT OR R TO RE-START.)";
210 FOR NS = 1 TO N: IF PEEK(SF +2 *NS) + PEEK(SF +2 *NS +1) *256 = 208 THEN NEXT
220 FOR NE = N TO NS STEP -1: IF PEEK(SF +2 *NE) + PEEK(SF +2 *NE +1) *256 = 208 THEN NEXT
230 VTAB 22: HTAB 1: CALL -868: PRINT "ENTER NEW ";: FLASH : PRINT "FIRST";: NORMAL : PRINT " CHARACTER (";NS;"-";NE -1;: INPUT "):";A$:ST = VAL(A$): IF (ST NE -1) AND A$ < >"R" AND A$ < >"Q" THEN 230
240 IF A$ = "Q" THEN 10000
250 IF A$ = "R" THEN 110
260 VTAB 22: HTAB 1: CALL -868: PRINT "ENTER NEW ";: FLASH : PRINT "LAST";: NORMAL : PRINT " CHARACTER (";ST +1;"-";NE;: INPUT "):";A$:EN = VAL(A$): IF (EN NE) AND A$ < >"R" AND A$ < >"Q" THEN 260
270 IF A$ = "Q" THEN 10000
280 IF A$ = "R" THEN 230
290 VTAB 22: HTAB 1: CALL -868: POKE 233,75: IF ST >NS THEN FOR I = NS TO ST -1:J = I -1:XP = 17.5 *(J - INT(J/16) *16):YP = 26.5 * INT(J/16): XDRAW I AT XP,YP +8: NEXT
300 IF NE >EN THEN FOR I = EN +1 TO NE:J = I -1:XP = 17.5 *(J - INT(J/16) *16):YP = 26.5 * INT(J/16): XDRAW I AT XP,YP +8: NEXT
310 IF FL THEN FL = 0: GOTO 200
320 VTAB 22: HTAB 1: CALL -868: PRINT "CORRECT? (Y/N):";: GET A$: PRINT A$: HOME : PRINT CHR$(4);"MONICO": VTAB 22: IF A$ < >"Y" AND A$ < >"N" AND A$ < >"Q" AND A$ < >"R" THEN 320
330 IF A$ = "Q" THEN 10000
340 IF A$ = "R" THEN 110
350 IF A$ = "N" THEN FLAG = 1: GOTO 290
360 HOME : FLASH : VTAB 22: PRINT "WORKING": NORMAL
500 N1 = PEEK(SF +2):N2 = PEEK(SF +3):L1 = SF +217:L2 = SF + PEEK(SF +2 *ST) + PEEK(SF +2 *ST +1) *256:D1 = L2 -L1:L3 = SF + PEEK(SF +2 *EN) + PEEK(SF +2 *EN +1) *256: FOR I = L3 TO L3 +8000: IF PEEK(I) < >0 THEN NEXT
510 L3 = I +1:L4 = SF + PEEK(SF +194) + PEEK(SF +195) *256:L5 = SF + PEEK(43616) + PEEK(43617) *256:D2 = L4 -L3
520 IF ST >2 THEN FOR I = SF +4 TO SF +2 *(ST -1) STEP 2: POKE I,N1: POKE I +1,N2: NEXT
530 IF EN 2 THEN OS = L2:OE = L3 -1:NS = L1: GOSUB 6000
560 OS = L4:OE = L5:NS = L3 -D1: GOSUB 6000
570 FOR I = SF +194 TO SF +200 STEP 2:J = PEEK(I) + PEEK(I +1) *256:J = J -(OS -NS): POKE I,J - INT(J/256) *256: POKE I +1, INT(J/256): NEXT :LL = L5 -D2 -D1 -SF +4
580 I = PEEK(43616) + PEEK(43617) *256: VTAB 21: CALL -958: PRINT CHR$(4);"BSAVE ";F$;" ";ST;"-";EN;",A";SF;",L";LL: VTAB 22: PRINT "FONT REDUCED FROM ";I;" TO ";LL;" BYTES.";: CALL -958: VTAB 22: END
6000 POKE 60,OS - INT(OS/256) *256: POKE 61, INT(OS/256): POKE 62,OE - INT(OE/256) *256: POKE 63, INT(OE/256): POKE 64,NE - INT(NE/256) *256: POKE 65, INT(NE/256): POKE 66,NS - INT(NS/256) *256: POKE 67, INT(NS/256): CALL 19193: RETURN
7000 Q$ = CHR$(34): TEXT : HOME : INVERSE : PRINT " FONT SPLITTER ": NORMAL : PRINT
7010 PRINT "THIS PROGRAM LETS YOU REMOVE UNWANTED CONSECUTIVE CHARACTERS FROM A SHAPE- FONT, THUS REDUCING THE FONT'S SIZE AND SAVING DISK OR MEMORY SPACE."
7020 PRINT : PRINT "TO REDUCE THE NUMBER OF CHARACTERS IN A FONT (TO 2 MINIMUM), ENTER THE START ANDEND CHARACTER-NUMBERS.": PRINT
7030 PRINT "AFTER THE FONT HAS BEEN SPLIT, IT WILL BE BSAVED WITH THE CHARACTER LIMIT NUMBERS IN ITS NAME. FOR EXAMPLE, THE"
7040 PRINT Q$"]APPLE"Q$" FONT, REDUCED TO JUST UPPER CASE CHARACTERS 34-59, WILL BE SAVED AS "Q$"]APPLE 34-59"Q$". YOU MAY, OF COURSE, RENAME ANY FONT WITH NORMAL PROCEDURES."
7999 RETURN
10000 VTAB 21: HTAB 1: CALL -958: END
60000 HOME : VTAB 21: POKE 216,0: RESUME
Text found in 057_Apple_Mechanic_Backup.dsk/GREETINGS.bas:
77 REM =========== APPLE MECHANIC "GREETINGS" PROGRAM BY BERT KERSEY BEAGLE BROS ===========
84 A = 1:B = 2:C = 3:D = 4:E = 5:F = 31:G = 99:H = 100:Q = -16384:BUZZ = -16336:MUSIC = 771: GOSUB 60000: ONERR GOTO 273
91 TEXT : HOME : HGR : POKE 49385,0: HCOLOR= 3: FOR I = 85 TO 155 STEP 2: HPLOT 29,I TO 249,I: HPLOT 29,168 -I TO 249,168 -I: NEXT : PRINT CHR$(4);"BLOAD @BBROS LOGO,A$2000": PRINT CHR$(4);"BLOAD ]SMALL SQUARE,A$6100":P1 = 1:P2 = 2: GOSUB 308: GOSUB 329
98 ROT= 0: SCALE= 1: HCOLOR= 3: POKE 232,0: POKE 233,97: POKE -16302,0: POKE -16304,0: POKE -16300,0: POKE -16297,0
105 P1 = 2:P2 = 1: GOSUB 308: FOR I = 1 TO 999: NEXT
112 C$ = CHR$(34) +"APPLE" + CHR$(34) +" is a registered tm of You-Know-Who.": XDRAW H AT 0,178: FOR I = 1 TO 43: XDRAW ASC( MID$ (C$,I,1)) -31: XDRAW G: NEXT : FOR I = 1 TO 555: NEXT
119 POKE 230,64:C$ = "Copyright 1982, Beagle Bros Micro Software": XDRAW H AT 3,178: FOR I = 1 TO LEN(C$): XDRAW ASC( MID$ (C$,I,1)) -31: XDRAW G: NEXT :P1 = 2:P2 = 1: GOSUB 308
126 POKE 230,32: GOSUB 280
133 FOR I = 1 TO 1500: NEXT : POKE 49385,0:A$ = " WELCOME": GOSUB 140:A$ = " TO": GOSUB 140:A$ = " APPLE": GOSUB 140: POKE 49384,0:A$ = "MECHANIC": GOSUB 140:P1 = 2:P2 = 1: GOSUB 308: GOTO 161
140 FOR J = 0 TO A: XDRAW 100 AT 12,59: POKE 8376,31 *(J = 0): POKE 9399,96 *(J = 0): POKE 9400,15 *(J = 0): POKE 10424,67 +12 *J: POKE 11447,18 +32 *J: POKE 11448,32 +6 *J: POKE 13368,7 *(J = 0): POKE 14391,96 *(J = 0): POKE 14392,31 *(J = 0): POKE 15415,112 -16 *J: FOR I = A TO LEN(A$)
147 X = ASC( MID$ (A$,I,A)): XDRAW X -F: XDRAW G: FOR K = A TO B:S = PEEK(BU): NEXT : IF NOT J THEN POKE 0,(J +A) *X: POKE A,E: CALL MU: FOR K = A TO E:S = PEEK(BU): NEXT
154 NEXT : NEXT : RETURN
161 FOR I = 1 TO 666: NEXT : GOSUB 294: FOR I = 1 TO 1555: NEXT
168 FOR K = 4 TO 7:J = K - INT(K/B) *B: POKE 10430,24 +96 *J: POKE 10431,48 +15 *J: POKE 12478,62 +64 *J: POKE 12479,124 +C *J: POKE 13375,A -J: POKE 14398,64 -64 *J: POKE 14399,C -C *J: POKE 15422,96 -96 *J: POKE 15423,7 -7 *J
175 IF J = 0 THEN FOR L = A TO 5: FOR M = 1 TO L:S = PEEK(BU) + PEEK(BU) + PEEK(BU): NEXT : FOR M = 1 TO 22: NEXT : NEXT
182 NEXT
189 GOSUB 294: GOSUB 287:Y = 0
196 FOR I = 1 TO 99: NEXT : POKE 49385,0:HT = 217:VT = 52:A$ = "PLEASE": GOSUB 231:VT = 60:A$ = "PRESS A": GOSUB 231:VT = 68:A$ = "KEY (A-X).": POKE 49384,0: GOSUB 231: POKE -16368,0
203 K = PEEK(Q): IF K <128 THEN A$ = "PRESS A": XDRAW 100 AT 217,60: FOR I = 1 TO 7: XDRAW ASC( MID$ (A$,I,1)) -31: XDRAW 99: NEXT :K = PEEK(Q): IF K <128 THEN XDRAW 100 AT 217,68:A$ = "KEY": FOR I = 1 TO 3: XDRAW ASC( MID$ (A$,I,1)) -31: XDRAW 99: NEXT :Y = Y +1: IF Y - INT(Y/6) *6 = 0 THEN GOSUB 294
210 K = PEEK(Q): IF K <128 THEN 203
217 PRINT CHR$(7) CHR$(7) CHR$(7): POKE -16368,0: IF K <193 OR K >216 THEN FOR K = 1 TO 99:S = PEEK(BU): NEXT : GOTO 203
224 POKE 49385,0: GOSUB 322: FOR I = 1 TO 31: POKE -16298 +I - INT(I/2) *2,0: POKE 0, INT( RND(1) *200) +20: POKE 1,4: CALL MU: FOR J = 1 TO 22: NEXT : NEXT : GOSUB 308: POKE 49384,0: GOTO 252
231 FOR J = 0 TO 1: XDRAW 100 AT HT,VT: POKE 10430,24 +96 *J: POKE 10431,48 +15 *J: POKE 12478,62 +64 *J: POKE 12479,124 +C *J: POKE 13375,A -J: POKE 14398,64 -64 *J: POKE 14399,C -C *J: POKE 15422,96 -96 *J: POKE 15423,7 -7 *J
238 HCOLOR= 0: FOR I = 1 TO LEN(A$):X = ASC( MID$ (A$,I,1)): DRAW X -F: XDRAW G: IF NOT J THEN FOR K = 1 TO 3:S = PEEK(BU): NEXT : POKE 0,X +50: POKE A,I *1: CALL MU: FOR K = 1 TO 5:S = PEEK(BU): NEXT
245 NEXT : NEXT : RETURN
252 FOR X = 1 TO 90: READ I,J: POKE I,J:S = PEEK(BU): NEXT : FOR X = 1 TO 67: READ I: POKE I,0:S = PEEK(BU): NEXT : FOR X = 1 TO 68: READ I:S = PEEK(BU): POKE I,127: NEXT :P1 = 1:P2 = 2: GOSUB 308
259 FOR I = 1 TO 1500: NEXT : POKE 49385,0: GOSUB 280:A$ = " THANKS": GOSUB 140:A$ = " A LOT.": POKE 49384,0: GOSUB 140:P1 = 2:P2 = 1: GOSUB 308: HOME : POKE 230,64: HCOLOR= 0: GOSUB 329: POKE 230,32:P1 = 2:P2 = 1: GOSUB 308: POKE -16301,0
266 VTAB 24: HTAB 9: PRINT "(PROGRAM BY BERT KERSEY)";: FOR I = 1 TO 3: FOR J = 1 TO 555: NEXT : VTAB 24: PRINT : NEXT : VTAB 24: HTAB 1: PRINT "]";: FLASH : PRINT " ";: NORMAL : FOR I = 1 TO 3: FOR J = 1 TO 555: NEXT : PRINT : NEXT
273 POKE -16301,0: POKE 49384,0: HOME : VTAB 20: END
280 HCOLOR= 3: FOR Y = 47 TO 80: HPLOT 9,Y TO 70,Y: NEXT : FOR Y = 66 TO 70: HPLOT 96,70 TO 70,Y: NEXT : HCOLOR= 0: HPLOT 100,70 TO 71,64 TO 71,46 TO 8,46 TO 8,81 TO 71,81 TO 71,71 TO 100,70: RETURN : REM DRAW.LEFT.BALLOON
287 HCOLOR= 3: FOR Y = 47 TO 80: HPLOT 213,Y TO 270,Y: NEXT : FOR Y = 65 TO 70: HPLOT 180,70 TO 213,Y: NEXT : HCOLOR= 0: HPLOT 179,71 TO 212,71 TO 212,81 TO 271,81 TO 271,46 TO 212,46 TO 212,64 TO 179,71: RETURN : REM DRAW.RIGHT.BALLOON
294 FOR J = 0 TO 1: POKE 8974,12 -10 *J: POKE 8977,12 -12 *J: POKE 8978,4 *J: POKE 9998,8 +58 *J: POKE 9999,16 +3 *J: POKE 10001,13 -12 *J: POKE 11022,16 -16 *J: POKE 11025,25 +102 *J: POKE 12046,6 +120 *J: POKE 12047,48 +7 *J: POKE 12049,2 +4 *J
301 POKE 13071,119 -4 *J: POKE 14994,36 +3 *J: POKE 16014,24 +8 *J: POKE 16017,13 +4 *J: POKE 16018,6 *J: FOR H = 1 TO 500: NEXT : NEXT : RETURN : REM GLANCE
308 POKE 60,0: POKE 61,32 *P1: POKE 62,0: POKE 63,32 *P1 +32: POKE 64,0: POKE 65,32 *P2 +32: POKE 66,0: POKE 67,32 *P2: CALL -468: IF P1 = 2 THEN HCOLOR= 0: HPLOT 0,64 TO 28,64
315 RETURN
322 POKE 60,0: POKE 61,32: POKE 62,200: POKE 63,35: POKE 64,200: POKE 65,7: POKE 66,0: POKE 67,4: CALL -468: RETURN
329 HCOLOR= 0: FOR Y = 191 TO 160 STEP -2: HPLOT 0,Y TO 279,Y: HPLOT 279,Y -1 TO 0,Y -1: NEXT : RETURN
60000 POKE 771,173: POKE 772,48: POKE 773,192: POKE 774,136: POKE 775,208: POKE 776,4: POKE 777,198: POKE 778,1: POKE 779,240: POKE 780,8: POKE 781,202: POKE 782,208: POKE 783,246: POKE 784,166: POKE 785,0: POKE 786,76: POKE 787,3: POKE 788,3: POKE 789,96: RETURN
60001 DATA 8592,63,8716,112,8727,96,8728,3,8731,2,8844,124,8850,7,8858,63,9613,113,9617,121,9623,3,9739,3,9740,120,9746,125,9749,15,9751,112,9753,1,9754,64,9755,1,9866,31,9868,124,9874,79,10002,96,10637,124,10641,3,10647,8,10764,124,10770,1
60002 DATA 10777,3,10778,32,10891,34,10892,120,10907,1,11660,63,11661,126,11665,103,11676,124,11787,1,11788,124,11794,99,11797,31,11798,64,11801,7,11802,24,11914,15,11916,120,11922,15,11923,126,12050,100,12689,79,12700,2,12812,124,12818,3
60003 DATA 12822,112,12826,15,12939,48,12940,120,12944,63,12946,8,13708,79,13713,31,13718,7,13723,64,13834,63,13836,124,13842,7,13850,15,13962,15,13971,126,14732,96,14737,63,14747,40,14860,124,14866,7,14874,31,15629,63,15630,120,15632,7
60004 DATA 15755,31,15756,96,15761,63,15762,126,15771,4,15882,31,15883,2,15884,126,15890,71,15891,124,15898,31,16383,105
60005 DATA 8600,8601,8602,8603,8715,8722,8726,8729,8730,8859,9624,9625,9626,9627,9750,9867,9883,10636,10648,10649,10650,10651,10763,10774,10779,11671,11672,11673,11674,11675,11803,12558,12559,12684,12695,12696,12697,12698,12699,12811,12827
60006 DATA 12947,13719,13720,13721,13722,13835,13851,14606,14608,14731,14742,14743,14744,14745,14746,14859,14875,15640,15641,15642,15766,15767,15768,15769,15770,15899: REM 0
60007 DATA 8590,8591,8717,8718,8719,8720,8721,9614,9615,9616,9741,9744,9745,9747,10638,10639,10640,10765,10768,10769,11533,11534,11535,11536,11659,11662,11663,11664,11786,11789,11793,11795,11917,11918,11919,11921,12685,12686,12687,12688
60008 DATA 9612,9738,12813,12941,12942,12943,13581,13582,13583,13584,13707,13709,13710,13711,13712,13714,13837,14733,14734,15628,15631,15633,15757,15758,15759,15760,15763,16019: REM 127
60009 REM =========== APPLE MECHANIC "GREETINGS" PROGRAM BY BERT KERSEY BEAGLE BROS ===========
Text found in 057_Apple_Mechanic_Backup.dsk/HI-WRITER DEMO.bas:
50 FLAG = 0: REM (0=LOAD,1=DON'T)
51 FT$(1) = "]BLOCK"
52 FT$(2) = "]SMALL STANDARD"
53 FT$(3) = "]APPLE"
54 UL$ = "@"
55 ONERR GOTO 450
56 GOTO 170
90 T$ = "":LC = 0: FOR I = 1 TO LEN(A$):J = ASC( MID$ (A$,I,1)): IF J < >UL THEN T$ = T$ + CHR$(J +LC *(J >63 AND J <96)): NEXT :A$ = T$: GOTO 100
95 LC = LC +32 -64 *(LC = 32): NEXT :A$ = T$
99 REM PRINT ROUTINE:
100 POKE 232,L1(FT): POKE 233,L2(FT): IF LEN(FT3$) THEN PRINT D$;"BLOAD ";FT3$;",A";LOC(3):FT$(3) = FT3$:FT3$ = "": RETURN
105 X = 7 *HT -6:Y = 8 *VT -8: ROT= RT *16: IF CL <8 THEN BG = CL: HCOLOR= BG:CL = 8: HPLOT 0,0: CALL 62454:VT = 1:HT = 1:FT = 1: RETURN
110 IF CT THEN X = 0:YT = 176:XR = 0: HCOLOR= BG: FOR Z = 1 TO LEN(A$): DRAW ASC( MID$ (A$,Z,1)) -T1 AT X,YT: DRAW 99: CALL 62923:XR = XR + PEEK(224): NEXT :X = (280 -XR)/2
120 HCOLOR= HC: DRAW 100 AT X,Y: FOR Z = 1 TO LEN(A$): DRAW ASC( MID$ (A$,Z,1)) -T1: XDRAW 99: NEXT : CALL 62923:XO = X:X = PEEK(224) + PEEK(225) *TF:CT = 0:RT = 0:HT = (X +6)/7: IF NOT (IN) THEN RETURN
130 POKE 232,0: POKE 233,64:XR = X:YB = 8 * PEEK(LO(FT) +1):SC = XR -XO: IF SC <256 THEN SCALE= SC: ROT= 0: FOR I = Y -(Y >0) TO Y +YB: XDRAW 3 AT XO,I: NEXT : GOTO 150
140 SCALE= YB: ROT= 16: FOR I = X TO XR: XDRAW 3 AT I,Y: NEXT
150 ROT= 0: SCALE= 1:IN = 0: RETURN
170 SCALE= 1: ROT= 0:CL = 8: HCOLOR= 3:TF = 256:T1 = 31:TXT = 49235:FULL = 49234:HIRES = 49232:UL = ASC(UL$):G$ = CHR$(7):D$ = CHR$(13) + CHR$(4): PRINT D$;"MONICO"
180 J = 768: FOR I = 1 TO 3:LOC(I) = PEEK(J) + PEEK(J +1) *256:L1(I) = PEEK(J):L2(I) = PEEK(J +1):J = J +2: NEXT : REM STORE.FONT.LOCATIONS
190 REM FONT LOAD ROUTINE:
200 IF FLAG >0 THEN 500
220 PRINT D$;"BLOAD CURSORS,A16384":LOC(1) = 16640: FOR I = 1 TO 3
230 IF LEN(FT$(I)) THEN PRINT D$;"BLOAD ";FT$(I);",A";LOC(I)
240 LOC(I +1) = LOC(I) + PEEK(43616) + PEEK(43617) *256: NEXT
250 J = 768: FOR I = 1 TO 3:X = LOC(I): POKE J,X - INT(X/256) *256:L1(I) = PEEK(J): POKE J +1, INT(X/256):L2(I) = PEEK(J +1):J = J +2: NEXT : GOTO 500
450 LINE = PEEK(218) + PEEK(219) *256:TYPE = PEEK(222): HOME : POKE TXT,0: VTAB 21: IF TYPE <255 THEN PRINT CHR$(7);"CODE-";TYPE;" ERROR IN LINE #";LINE: END
499 REM MAIN PROGRAM:
500 HC = 3:HT = 1:VT = 1:FT = 1:CT = 0:IN = 0:CL = 8:RT = 0:FT3$ = "": HGR : POKE FULL,0: REM STARTING DEFAULTS
520 FT = 3:A$ = "THIS IS A DEMO OF": GOSUB 100
530 VT = VT +2.5:HT = 1:A$ = "BEAGLE BROS'": GOSUB 100
540 HT = 1:VT = VT +2.5:A$ = "HI-WRITER PROGRAM.": GOSUB 100
550 VT = VT +5:HT = 1:A$ = "LIST LINES ": GOSUB 100:A$ = "500-1000":FT = 1: GOSUB 100
560 FT = 3:VT = VT +2.5:HT = 1:A$ = "TO SEE HOW IT": GOSUB 100
570 VT = VT +2.5:HT = 1:A$ = "WAS PROGRAMMED.": GOSUB 100
580 GOSUB 999
590 FT = 2:VT = 2.7:A$ = "THE FOLLOWING TYPEFACES, ALL CREATED WITH": GOSUB 100
600 VT = VT +1.2:HT = 1:A$ = "THE FONT EDITOR, ARE NOW IN MEMORY:": GOSUB 100: GOSUB 1000
610 T$ = ": ABCabc123":FT = 1:VT = VT +3:HT = 1:A$ = "#1. BLOCK" +T$: GOSUB 100
620 FT = 2:VT = VT +2.5:HT = 1:A$ = "#2. SMALL STANDARD" +T$: GOSUB 100
630 FT = 3:VT = VT +1.5:HT = 1:A$ = "#3. " +"apple" +T$: GOSUB 100
640 GOSUB 1000
650 FT = 2:VT = VT +4.5:HT = 1:A$ = "FONT #3 MAY BE REPLACED AT ANY TIME BY": GOSUB 100:VT = VT +1.2:HT = 1:A$ = "LOADING A NEW ONE FROM THE DISK. STAND BY...": GOSUB 100
660 FT3$ = "]STENCIL": GOSUB 100
670 FT = 3:VT = VT +2:HT = 1:A$ = "#3. STENCIL" +T$: GOSUB 100:FT = 2:VT = VT +3:HT = 1:A$ = "^ NOW THERE IS A NEW FONT #3. ^": GOSUB 100
680 GOSUB 999
690 A$ = "--------------":T$ = A$:CT = 1: GOSUB 100:VT = VT +2.5:A$ = "SCREEN COPY MAY":CT = 1: GOSUB 100:VT = VT +2.5:A$ = "AUTOMATICALLY BE":CT = 1: GOSUB 100:VT = VT +2.5:A$ = "> CENTERED <":CT = 1: GOSUB 100:VT = VT +2.5:A$ = T$:CT = 1: GOSUB 100
700 VT = VT +2.5:HT = 10:A$ = "OR PRINTED": GOSUB 100:HT = 10:VT = 16:A$ = "E": GOSUB 100:A$ = "X":VT = 15.8: GOSUB 100:A$ = "A":VT = 15.6: GOSUB 100:A$ = "C":VT = 15.8: GOSUB 100:A$ = "T":VT = 16: GOSUB 100:A$ = "L":VT = 16.2: GOSUB 100:A$ = "Y":VT = 16.4: GOSUB 100
710 A$ = " WHERE":VT = 16: GOSUB 100:VT = VT +2.5:HT = 10:A$ = "YOU WANT IT.": GOSUB 100:VT = VT +2.5:CT = 1:A$ = T$: GOSUB 100
720 GOSUB 999
730 FT = 2:VT = 1:HT = 17:A$ = "WITH HI-WRITER, YOU CAN": GOSUB 100:VT = VT +1.5:HT = 17:A$ = "PRINT LARGE CHARACTERS": GOSUB 100:VT = VT +1.5:HT = 17:A$ = "IN ANY HI-RES COLOR.": GOSUB 100
740 HCOLOR= 3: FOR Y = 0 TO 15: HPLOT 0,Y TO 105,Y: NEXT : FOR Y = 80 TO 95: HPLOT 0,Y TO 105,Y: NEXT
750 FT = 1: FOR J = 0 TO 7:HC = J:A$ = " COLOR #" + STR$(J):VT = 2.5 *J +1.2:HT = 1: GOSUB 100: NEXT
760 FT = 2:HT = 17:VT = 6:A$ = "YOU CAN ALSO PRINT": GOSUB 100:HT = 17:VT = VT +1.5:A$ = "IN ": GOSUB 100:A$ = " INVERSE ":IN = 1: GOSUB 100:T$ = A$:A$ = " TYPE.": GOSUB 100
770 FT = 3:HT = 17:VT = VT +2:A$ = T$:IN = 1: GOSUB 100:VT = VT +2.5:HT = 18:IN = 1:FT = 1: GOSUB 100
780 VT = VT +3:FT = 2: FOR J = 1 TO 6:HC = 0:HT = 17:A$ = "FLASH": GOSUB 100:HT = 17:HC = 3:A$ = "FLASHING IS POSSIBLE TOO!": GOSUB 100: NEXT
790 VT = 22.5:HT = 17:RT = 3:A$ = "NOT TO": GOSUB 100:HT = HT +1.5:RT = 3:A$ = "MENTION": GOSUB 100:HT = HT +1.5:RT = 3:A$ = "SIDEWAYS": GOSUB 100:HT = HT +1.5:RT = 3:A$ = "TYPE.": GOSUB 100
800 HT = HT +3:VT = 19:RT = 1:A$ = "WAYS)": GOSUB 100:VT = 19:RT = 1:HT = HT +1.4:A$ = "(BOTH": GOSUB 100
810 HT = 40:VT = 22.5:RT = 2:A$ = "AND UPSIDE": GOSUB 100:VT = VT -1.2:HT = 40:RT = 2:A$ = "DOWN!!": GOSUB 100:VT = VT -1.2:HT = 40:RT = 2:A$ = "(BIG DEAL)": GOSUB 100
820 RT = 2: GOSUB 999
830 FOR J = 7 TO 0 STEP -1:CL = J: GOSUB 100: NEXT
840 HT = 1:VT = 1:FT = 1:A$ = "Lower Case is easiest": GOSUB 100:VT = VT +2.5:HT = 1:A$ = "to produce if you can": GOSUB 100:VT = VT +2.5:HT = 1:A$ = "enter it in your programs": GOSUB 100
850 HT = 1:VT = VT +2.5:A$ = "directly from the keyboard.": GOSUB 100:VT = VT +2.5:FT = 2:HT = 1:A$ = "(PROGRAM LINE EDITOR lets you do this.)": GOSUB 100
860 FT = 3:VT = VT +2.5:HT = 1:A$ = "LIST L@INE 860 TO SEE": GOSUB 90:VT = VT +2.5:HT = 1:A$ = "@HOW @LOWER CASE @TYPE IS": GOSUB 90:VT = VT +2.5:HT = 1:A$ = "@CREATED WITHOUT @PLE.": GOSUB 90:FT = 2:VT = VT +3:HT = 1:A$ = "(U@SE @GOSUB 90 @INSTEAD OF @GOSUB 100.)": GOSUB 90
870 FT3$ = "]APPLE": GOSUB 100:CL = 0: GOSUB 100
880 FT = 2:VT = 1:HT = 1:A$ = "LET'S SEE NOW... WHAT HAVEN'T WE COVERED?": GOSUB 100: GOSUB 1000
890 FT = 2:VT = 4:HT = 1:A$ = "Oh, yes! Our type is PROPORTIONALLY SPACED:": GOSUB 100: GOSUB 1000:FT = 1:VT = 5.5:HT = 1:A$ = "Hello Sid. How's your sister?": GOSUB 100: GOSUB 1000:VT = 9:HT = 1:T$ = A$:A$ = "Brand X type is restricted by htabs & vtabs:":FT = 2: GOSUB 100
900 VT = 10.5:T$ = LEFT$(T$,21):FT = 1: FOR J = 1 TO LEN(T$):A$ = MID$ (T$,J,1):HT = J *1.8 -.8 +.6 *(A$ = "i" OR A$ = "l" OR A$ = "'" OR A$ = "."): GOSUB 100: NEXT
910 GOSUB 1000:FT = 2:VT = 16.5:HT = 2:A$ = "And we should point out how you can utilize": GOSUB 100:VT = VT +1.2:HT = 12:A$ = "Apple's split screen:": GOSUB 100:FT = 1:A$ = "@ @ @ @ @ @ @":VT = VT +1:HT = 12: GOSUB 100
920 HOME : POKE TXT,0: FOR I = 21 TO 24: VTAB I: HTAB I -17: SPEED= 155: PRINT "THIS IS NORMAL TEXT AT VTAB ";I;":";: FLASH : PRINT " ";: NORMAL : NEXT : SPEED= 255
930 FT = 2:VT = 22:HT = 5:A$ = "AND THIS IS ": GOSUB 100:IN = 1:A$ = " HI-RES ": GOSUB 100:A$ = " TEXT !": GOSUB 100: GOSUB 1000
940 FOR I = 1 TO 8: POKE TXT,0: FOR J = 1 TO (999 +999 *(I = 1))/I: NEXT : POKE FULL,0: FOR J = 1 TO (999 +999 *(I = 1))/I: NEXT : NEXT :CL = 0: GOSUB 100
950 FT = 3: FOR J = 1 TO 3:VT = 5:HT = 6:HC = J:A$ = "For more information...": GOSUB 100: NEXT :VT = 8:HT = 3:A$ = "telephone this number>": GOSUB 100:FT = 1:A$ = "SO LONG!": FOR J = 12 TO 14 STEP .3:VT = J:HT = J:HC = 5: GOSUB 100: NEXT
960 HC = 3:HT = J +.5:VT = HT: GOSUB 100: HOME : POKE TXT,0:VT = 8:HT = 35.5:HC = 3:FT = 1:A$ = "411": GOSUB 100: PRINT G$: VTAB 21: END
999 GOSUB 1000:VT = 24 +.9 *(RT = 2):HT = 1 +39 *(RT = 2):FT = 2:A$ = "HIT ANY KEY TO CONTINUE:" + CHR$(127): GOSUB 100: POKE -16368,0: GET A$:CL = 0: GOSUB 100: RETURN
1000 FOR I = 1 TO 999: NEXT : RETURN : REM PAUSE
Text found in 057_Apple_Mechanic_Backup.dsk/HI-WRITER.bas:
50 FLAG = 0: REM (0=LOAD,1=DON'T)
51 FT$(1) = "]BLOCK"
52 FT$(2) = "]SMALL STANDARD"
53 FT$(3) = "]APPLE"
54 UL$ = "@"
55 ONERR GOTO 450
56 GOTO 170
90 T$ = "":LC = 0: FOR I = 1 TO LEN(A$):J = ASC( MID$ (A$,I,1)): IF J < >UL THEN T$ = T$ + CHR$(J +LC *(J >63 AND J <96)): NEXT :A$ = T$: GOTO 100
95 LC = LC +32 -64 *(LC = 32): NEXT :A$ = T$
99 REM PRINT ROUTINE:
100 POKE 232,L1(FT): POKE 233,L2(FT): IF LEN(FT3$) THEN PRINT D$;"BLOAD ";FT3$;",A";LOC(3):FT$(3) = FT3$:FT3$ = "": RETURN
105 X = 7 *HT -6:Y = 8 *VT -8: ROT= RT *16: IF CL <8 THEN BG = CL: HCOLOR= BG:CL = 8: HPLOT 0,0: CALL 62454:VT = 1:HT = 1:FT = 1: RETURN
110 IF CT THEN X = 0:YT = 176:XR = 0: HCOLOR= BG: FOR Z = 1 TO LEN(A$): DRAW ASC( MID$ (A$,Z,1)) -T1 AT X,YT: DRAW 99: CALL 62923:XR = XR + PEEK(224): NEXT :X = (280 -XR)/2
120 HCOLOR= HC: DRAW 100 AT X,Y: FOR Z = 1 TO LEN(A$): DRAW ASC( MID$ (A$,Z,1)) -T1: XDRAW 99: NEXT : CALL 62923:XO = X:X = PEEK(224) + PEEK(225) *TF:CT = 0:RT = 0:HT = (X +6)/7: IF NOT (IN) THEN RETURN
130 POKE 232,0: POKE 233,64:XR = X:YB = 8 * PEEK(LO(FT) +1):SC = XR -XO: IF SC <256 THEN SCALE= SC: ROT= 0: FOR I = Y -(Y >0) TO Y +YB: XDRAW 3 AT XO,I: NEXT : GOTO 150
140 SCALE= YB: ROT= 16: FOR I = X TO XR: XDRAW 3 AT I,Y: NEXT
150 ROT= 0: SCALE= 1:IN = 0: RETURN
170 SCALE= 1: ROT= 0:CL = 8: HCOLOR= 3:TF = 256:T1 = 31:TXT = 49235:FULL = 49234:HIRES = 49232:UL = ASC(UL$):G$ = CHR$(7):D$ = CHR$(13) + CHR$(4): PRINT D$;"MONICO"
180 J = 768: FOR I = 1 TO 3:LOC(I) = PEEK(J) + PEEK(J +1) *256:L1(I) = PEEK(J):L2(I) = PEEK(J +1):J = J +2: NEXT : REM STORE.FONT.LOCATIONS
190 REM FONT LOAD ROUTINE:
200 IF FLAG >0 THEN 500
220 PRINT D$;"BLOAD CURSORS,A16384":LOC(1) = 16640: FOR I = 1 TO 3
230 IF LEN(FT$(I)) THEN PRINT D$;"BLOAD ";FT$(I);",A";LOC(I)
240 LOC(I +1) = LOC(I) + PEEK(43616) + PEEK(43617) *256: NEXT
250 J = 768: FOR I = 1 TO 3:X = LOC(I): POKE J,X - INT(X/256) *256:L1(I) = PEEK(J): POKE J +1, INT(X/256):L2(I) = PEEK(J +1):J = J +2: NEXT : GOTO 500
399 REM HT CALCULATOR:
400 TEXT : VTAB 24: PRINT :Q$ = CHR$(34): PRINT "CENTER FINDER": PRINT "-------------": PRINT "FONT: ";FT: PRINT "COPY: "Q$A$Q$:X = 0:YT = 176:XR = 0: HCOLOR= BG: PRINT : POKE 232, PEEK(766 +2 *FT): POKE 233, PEEK(767 +2 *FT)
405 IF NOT LEN(A$) OR (FT <1 OR FT >3) THEN PRINT CHR$(7);"SPECIFY FONT NUMBER (FT=#)": PRINT "AND COPY (A$="Q$"WORDS"Q$"),": PRINT "AND GOTO 400 AGAIN.": VTAB 11: PRINT "FOR EXAMPLE, TYPE:": PRINT : PRINT "FT=1:A$="Q$"TITLE"Q$":GOTO 400": END
410 FOR I = 1 TO LEN(A$): DRAW ASC( MID$ (A$,I,1)) -31 AT X,YT: DRAW 99: CALL 62923:XR = XR + PEEK(224): NEXT :X = (280 -XR)/2:HT = (X +6)/7: PRINT "FOR HTAB, LET HT="; INT(HT *10)/10: IF HT <1 THEN FLASH : VTAB 7: PRINT CHR$(7)" COPY TOO LONG ";: CALL -958
420 NORMAL : END
450 LINE = PEEK(218) + PEEK(219) *256:TYPE = PEEK(222): HOME : POKE TXT,0: VTAB 21: IF TYPE <255 THEN PRINT CHR$(7);"CODE-";TYPE;" ERROR IN LINE #";LINE: END
499 REM MAIN PROGRAM:
500 HC = 3:HT = 1:VT = 1:FT = 1:CT = 0:IN = 0:CL = 8:RT = 0:FT3$ = "": HGR : POKE FULL,0: REM STARTING DEFAULTS
501 REM ADDPROGRAMLINESHERE.
510 REM GOTO XXX (SEE PAGE 40)
Text found in 057_Apple_Mechanic_Backup.dsk/SHAPE ANALYZER.bas:
100 A$ = "=====================SHAPE ANALYZERBY BERT KERSEY(C) 1982, BEAGLE BROS=====================
110 DIM A$(255):CH = 1: TEXT : HOME : NORMAL : VTAB 24: PRINT A$: POKE 40286,35: POKE 40287,216: GOSUB 1250
120 HOME : POKE -16304,0: POKE -16301,0: GOTO 270
130 IF XD THEN XDRAW CH AT XP,YP: ROT= RT: SCALE= SC: XDRAW CH AT XP,YP: RETURN
140 HCOLOR= BC: DRAW CH AT XP,YP: HCOLOR= HC: ROT= RT: SCALE= SC: DRAW CH AT XP,YP: RETURN
150 VTAB 21: HTAB 1: CALL -868: VTAB 22: HTAB 1: POKE 50,63 +192 *XD: PRINT "DRAW";: NORMAL : PRINT "/";: POKE 50,255 -192 *XD: PRINT "XDRAW";: NORMAL : PRINT " SHAPE:"CH;: CALL -868: PRINT : GOSUB 1060: CALL -868: PRINT "ROT="RT;
160 HTAB 10: PRINT "SCALE="SC" ";: HTAB 22: PRINT "HCOLOR="HC" (BCKGRD="BC;: POKE 2039,169: RETURN
170 IF XD THEN XDRAW CH AT XP,YP
180 IF NOT XD THEN HCOLOR= HC: DRAW CH AT XP,YP
190 REM SELECT======
200 POKE -16304,0: GOSUB 150: VTAB 22: HTAB 26: PRINT "SEE KEY CHART:";: POKE C,0: GET A$
210 IF A$ = "0" THEN A$ = "10"
220 IF A$ = ":" THEN A$ = "11"
230 IF A$ = "-" THEN A$ = "12"
240 IF A$ = " " OR A$ = CHR$(8) THEN CO = CH:CH = CH +(CH < PEEK(SH)) *(A$ = " ") -(CH >1) *(A$ = CHR$(8)):FL = 1: GOTO 920
250 VTAB 22: HTAB 26: CALL -868: ON VAL(A$) GOTO 200,200,270,300,320,920,750,790,400,500,590,1080: GOTO 200
260 REM LOAD====
270 HOME : HGR : VTAB 23: GOSUB 1060: PRINT " TO CANCEL";: VTAB 22: HTAB 1: INPUT "LOAD SHAPE TABLE NAMED:";F$: IF NOT LEN(F$) THEN 170
280 PRINT D$"BLOAD "F$",A"SH:CH = 1: HOME : XDRAW CH AT XP,YP: GOTO 200
290 REM CATALOG=======
300 IF A$ = "4" THEN HOME : TEXT : PRINT D$"CATALOG": GOSUB 1060: PRINT "ANY KEY:";: GET A$: HOME : GOTO 200
310 REM DRIVE/SLOT==========
320 HOME : VTAB 22: PRINT "SLOT "SL", DRIVE "DR;: HTAB 6: GET A$: IF A$ = CHR$(13) THEN 350
330 IF VAL(A$) >7 OR VAL(A$) <1 THEN 1060
340 SL = VAL(A$)
350 VTAB 22: HTAB 6: PRINT SL;: HTAB 15: PRINT DR;: HTAB 15: GET A$: IF A$ = CHR$(13) THEN 380
360 IF VAL(A$) <1 OR VAL(A$) >2 THEN 350
370 DR = VAL(A$)
380 POKE 43626,SL: POKE 47081,SL *16: POKE 43624,DR: POKE 47082,DR: GOTO 200
390 REM ROT===
400 FLASH : VTAB 24: HTAB 1: PRINT "ROT";: NORMAL
410 VTAB 24: HTAB 5: PRINT RT" ";
420 K = PEEK(Q): IF K 255 THEN RT = 255
470 GOSUB 130: GOTO 410
480 GOSUB 130: GOTO 410
490 REM SCALE=====
500 FLASH : VTAB 24: HTAB 10: PRINT "SCALE";: NORMAL
510 VTAB 24: HTAB 16: PRINT SC" ";
520 K = PEEK(Q): IF K 255 THEN SC = 0
570 GOSUB 130: GOTO 510
580 REM HCOLOR======
590 XD = 0:HM = 1: GOSUB 730: GOSUB 130: VTAB 22: HTAB 1: INVERSE : PRINT "DRAW";: NORMAL : PRINT "/XDRAW"
600 INVERSE : VTAB 24: HTAB 22: PRINT "H";: HTAB 32: PRINT "B";: FLASH : IF HM THEN HTAB 22: PRINT "HCOLOR";: NORMAL : HTAB 33: PRINT "CKGRD";
610 IF NOT HM THEN HTAB 32: PRINT "BCKGRD";: NORMAL : HTAB 23: PRINT "COLOR";
620 VTAB 24: HTAB 29: PRINT HC;: HTAB 39: PRINT BC;
630 K = PEEK(Q): IF K 0): GOSUB 130: GOTO 620
660 IF K = 149 AND HM THEN GOSUB 130:HC = HC +(HC <7): GOSUB 130: GOTO 620
670 IF K = 136 AND NOT HM THEN BC = BC -(BC >0): GOSUB 730: GOSUB 130: GOTO 620
680 IF K = 149 AND NOT HM THEN BC = BC +(BC <7): GOSUB 730: GOSUB 130: GOTO 620
690 IF K = 194 THEN HM = 0: GOTO 600
700 IF K = 200 THEN HM = 1: GOTO 600
710 IF K = 141 THEN HC = 3:BC = 0: GOSUB 730: GOSUB 130: GOTO 200
720 GOTO 620
730 HCOLOR= BC: HPLOT 0,0: CALL 62454: RETURN
740 REM DRAW/XDRAW==========
750 GOSUB 730:XD = XD +1 -2 *(XD = 1): IF XD THEN XDRAW CH AT XP,YP
760 IF NOT XD THEN HCOLOR= HC: DRAW CH AT XP,YP
770 GOTO 200
780 REM MOVE====
790 VTAB 24: HTAB 1: CALL -868: PRINT "USE A,Z & ARROWS TO MOVE: X=";: HTAB 26: FLASH : PRINT " ";: NORMAL
800 VTAB 24: HTAB 30: CALL -868: PRINT XP", Y="YP;:XO = XP:YO = YP
810 K = PEEK(Q): IF K 279 THEN XP = 0
850 IF YP >191 THEN YP = 0
860 IF YP <0 THEN YP = 191
870 IF XP <0 THEN XP = 279
880 IF XD THEN XDRAW CH AT XO,YO: XDRAW CH AT XP,YP: GOTO 800
890 IF NOT XD THEN HCOLOR= BC: DRAW CH AT XO,YO: HCOLOR= HC: DRAW CH AT XP,YP: GOTO 800
900 GOTO 800
910 REM DISPLAY=======
920 VTAB 22: HTAB 14: FLASH : PRINT "SHAPE";: NORMAL : HTAB 20: PRINT CH" OF " PEEK(SH);: CALL -868: IF NOT FL THEN 960
930 FL = 0: VTAB 22: HTAB 20: PRINT CH" OF " PEEK(SH)" "
940 IF XD THEN XDRAW CO AT XP,YP: XDRAW CH AT XP,YP
950 IF NOT XD THEN HCOLOR= BC: DRAW CO AT XP,YP: HCOLOR= HC: DRAW CH AT XP,YP
960 CO = CH:K = PEEK(Q): IF K PEEK(SH) THEN CH = PEEK(SH)
1010 GOTO 930
1030 POKE C,0: IF K = 155 THEN 200
1040 IF (K <176 OR K >186) AND K < >173 THEN RETURN
1050 POP :A$ = CHR$(K -F): GOSUB 150: GOTO 210
1060 FOR J = 1 TO 40: PRINT "-";: NEXT : RETURN
1070 REM VECTORS=======
1080 TEXT : HOME : PRINT " TABLE LOCATION: "SH" ($4000)": PRINT " BYTE #1: "; PEEK(SH);: HTAB 24: PRINT "(SHAPES ALLOWED)": PRINT " BYTE #2: "; PEEK(SH +1);: HTAB 24: PRINT "(TYPE)": GOSUB 1060
1090 CO = CH: VTAB 7: CALL -958: PRINT " FOR DEFAULT, <0> TO ESCAPE": VTAB 5: PRINT "ANALYZE SHAPE #: "CH;: CALL -868: HTAB 18: INPUT "";A$: IF NOT LEN(A$) THEN CH = CO: VTAB 5: HTAB 18: PRINT CH: GOTO 1130
1100 IF A$ = "0" THEN 200
1110 IF VAL(A$) <1 OR VAL(A$) > PEEK(SH) THEN PRINT G$;: GOTO 1090
1120 CH = VAL(A$)
1130 I = PEEK(SH +2 *CH) + PEEK(SH +2 *CH +1) *256: PRINT " ADDRESS: ";SH +I" (START + "I")": GOSUB 1060: VTAB PEEK(37)
1140 N = SH +2 *CH:L1 = SH + PEEK(N) + PEEK(N +1) *256:I = L1 -1:HT = 33: PRINT
1150 I = I +1:HT = HT +8: IF HT >40 THEN HT = 1: IF PEEK(36) >0 THEN PRINT
1160 P = PEEK(I): HTAB HT: PRINT SPC( (P <100) +(P <10));P;":";
1170 IF P < >0 THEN 1220
1180 PRINT "END": PRINT : PRINT "TOTAL BYTES: ";I -L1 +1: GOSUB 1060: PRINT " GRAPHIC ANALYSIS": PRINT " ANOTHER VECTOR ANALYSIS:";: FLASH : PRINT " ": NORMAL
1190 K = PEEK(Q): IF K < >141 AND K < >155 THEN 1190
1200 POKE C,0: IF K = 141 THEN 1080
1210 HGR : HOME :XD = 1: XDRAW CH AT XP,YP: GOTO 200
1220 X$(1) = LEFT$(A$(P),2):X$(2) = MID$ (A$(P),3,2):X$(3) = MID$ (A$(P),5,2)
1230 FOR J = 1 TO 3: POKE 50,255 -192 *( LEFT$(X$(J),1) = "P"): PRINT RIGHT$(X$(J),1);: NEXT : PRINT ">";: GOTO 1150
1240 REM SET-UP======
1250 XP = 140:YP = 80:RT = 0:SC = 1:HC = 3:XD = 1:SH = 16384:SL = PEEK(47081)/16:DR = PEEK(47082):Q = 49152:C = 49168:G$ = CHR$(7):Q$ = CHR$(34):T = 256:R = 149:L = 136:U = 193:D = 218:F = 128:D$ = CHR$(13) + CHR$(4): ROT= 0: SCALE= 1: HCOLOR= 3: POKE 232,0: POKE 233,64: ONERR GOTO 1300
1260 J = 64: FOR I = 0 TO 71: READ A$(I): NEXT : FOR I = 72 TO 127:A$(I) = A$(I -J) +"MR": NEXT : FOR I = 128 TO 191:A$(I) = LEFT$(A$(I -J),5) +"D":A$(I +J) = LEFT$(A$(I),5) +"L": NEXT : HOME : HGR : RETURN
1270 DATA MU,MR,MD,ML,PU,PR,PD,PL,MUMR,MRMR,MDMR,MLMR,PUMR,PRMR,PDMR,PLMR,MUMD,MRMD,MDMD,MLMD,PUMD,PRMD,PDMD,PLMD
1280 DATA MUML,MRML,MDML,MLML,PUML,PRML,PDML,PLML,MUPU,MRPU,MDPU,MLPU,PUPU,PRPU,PDPU,PLPU,MUPR,MRPR,MDPR,MLPR,PUPR,PRPR,PDPR,PLPR
1290 DATA MUPD,MRPD,MDPD,MLPD,PUPD,PRPD,PDPD,PLPD,MUPL,MRPL,MDPL,MLPL,PUPL,PRPL,PDPL,PLPL,MUMUMR,MRMUMR,MDMUMR,MLMUMR,PUMUMR,PRMUMR,PDMUMR,PLMUMR
1300 I = PEEK(222): POKE 49232,0: POKE 49235,0: POKE 49236,0: POKE 49239,0: HOME : VTAB 21: IF I = 16 OR I = 77 THEN POKE 40286,60: POKE 40287,212: END
1310 IF I = 255 THEN 170
1320 INVERSE : PRINT G$" ERROR-" PEEK(222)" IN LINE " PEEK(218) + PEEK(219) *256" ": NORMAL : FOR I = 1 TO 2000: NEXT : GOTO 170
Text found in 057_Apple_Mechanic_Backup.dsk/SHAPE EDITOR.bas:
90 R = 149:L = 136:U = 193:D = 218:C = 3:B = 2:A = 1:T = 256:F = 128:Q = 49152:Z = 49168:G$ = CHR$(7):D$ = CHR$(13) + CHR$(4):Q$ = CHR$(34):V$ = "PLOT":XS = 214:YS = 100:XP = 97:YP = 79:XX = XP:YY = YP:XT = XP +A:YT = YP +A:XL = 4:XH = 190:YL = 4:YH = 145:P = 233:SH = 24576:SF = 24832:MAX = 990
100 TEXT : HOME : PRINT D$"BLOAD CURSORS,A"SH: POKE 40286,35: POKE 40287,216: ONERR GOTO 350
140 POKE P -1,0: POKE P,96: SCALE= A: ROT= 0:CH = A:CT = A:SL = PEEK(47081)/16:DR = PEEK(47082)
150 IF PEEK(SF) < >12 OR PEEK(SF +1) >2 THEN POKE SF,12: FOR I = SF +1 TO SF +55 STEP B: POKE I,0: POKE I +1,5: NEXT :J = 32: FOR I = SF +B TO SF +26 STEP B: POKE I,J:J = J +B: NEXT
170 HOME : POKE 49235,0: POKE P,97: HGR : FOR I = 0 TO 11: XDRAW I +1 AT 35 +70 *(I - INT(I/4) *4),25 +53 *( INT(I/4)): NEXT
180 POKE Z,0: POKE P,96: HOME : INVERSE : VTAB 22: PRINT " MULTI-SHAPE EDITOR ";: NORMAL : PRINT " (C)1982 BEAGLE BROS";: GOSUB 980: PRINT "SELECT FUNCTION FROM KEYBOARD CHART:";: GET A$: PRINT A$: HOME : POKE 49235,0
190 IF A$ = "4" THEN GOSUB 1000: PRINT "ANY KEY:";: GET A$: PRINT A$: POKE 49232,0: GOTO 180
195 IF A$ = "5" THEN 1100
200 IF A$ = "6" THEN A$ = "DISPLAYED.": GOSUB 850: GOTO 170
210 IF A$ = "1" THEN A$ = "EDITED.": GOSUB 850:CH = CT: GOTO 360
220 IF A$ = "N" THEN POKE 49234,0: GOTO 180
250 IF A$ < >"2" AND A$ < >"3" THEN 180
260 X$ = "SAVE": IF A$ = "3" THEN X$ = "LOAD"
270 HOME
280 POKE P,96: VTAB 24: PRINT " TO ESCAPE";: VTAB 22: HTAB 1: PRINT X$;" SHAPES NAMED";: GOSUB 320: IF X$ = "LOAD" THEN PRINT D$"BLOAD "F$",A"SF
290 IF PEEK(SF) < >12 THEN PRINT G$;: HOME : INVERSE : VTAB 22: PRINT " NOT A 12-SHAPE TABLE ": FOR I = 1 TO 999: NEXT : GOTO 150
300 IF X$ = "SAVE" THEN POKE SF,12: POKE SF +1,0: PRINT D$"BSAVE "F$",A"SF",L"A + PEEK(SF +26) + PEEK(SF +27) *T
310 GOTO 170
320 INPUT ":";F$: CALL -958: IF NOT LEN(F$) THEN POP :X$ = "": GOTO 150
340 RETURN
350 HOME : VTAB 22:I = PEEK(222): IF I = 16 THEN POKE 49232,0: POKE 49239,0: POKE 49235,0: POKE 40286,60: POKE 40287,212: END
352 IF I = 77 THEN POKE 222,16: GOTO 350
354 T$ = LEFT$(F$,1): IF T$ <"0" OR T$ >"6" THEN 357
355 A$ = F$:F$ = " ": IF A$ >"2" AND A$ <"6" THEN 190
357 INVERSE : IF I <255 THEN PRINT G$" ERROR "I" ";: IF I = 6 THEN HTAB 2: PRINT F$" FILE NOT FOUND "
358 FOR K = 1 TO 2000 -1999 *(I = 255): NEXT : NORMAL : GOTO 170
360 GOSUB 730: POKE P,96:CR = 9:VS = 16383:V = VS:ST = 0:XP = XX:YP = YY:PS = 0:JM = 12
370 IF NOT ST THEN HOME : VTAB 21: GOSUB 940: PRINT "= LOCATE START POINT & ";: GOSUB 980: HTAB 7: PRINT "
= PRE-PLOT": HTAB 7: PRINT "= IMPRINT";: IF PS THEN VTAB 21: HTAB 12: CALL -868: PRINT "PRE-PLOT & ": PRINT : CALL -958:JM = 3
380 IF ST THEN VTAB 21: HTAB 20:I = V -VS +1: PRINT I" ";: HTAB 26: PRINT V$;: IF I >MAX THEN HTAB 20: FLASH : PRINT I CHR$(6 +(I >MA +5));: NORMAL
390 XO = XP:YO = YP:K = PEEK(Q): IF K >F THEN 400
392 VT = 21:H = 40:A$ = "?": IF NOT ST THEN VT = 21:H = 19:A$ = "START POINT"
393 IF PS THEN VT = 21:H = 12:A$ = "PRE-PLOT"
395 XDRAW CR AT XP,YP: FOR I = A TO 99: NEXT : XDRAW CR AT XP,YP: FOR I = A TO 99: NEXT :J = J +A: IF J - INT(J/5) *5 THEN 390
397 GOSUB 961: GOTO 390
400 POKE Z,0: IF K < >R AND K < >L AND K < >U AND K < >D THEN 450
401 IF V -VS >MA +8 THEN 380
402 IF CR = 9 THEN FOR I = A TO B: XDRAW CR AT XP,YP: NEXT
405 IF (K = R AND XP +JM >XH) OR (K = L AND XP -JM YH) THEN PRINT G$;: GOTO 390
410 XP = XP +JM *(K = R) -JM *(K = L):YP = YP +JM *(K = D) -JM *(K = U): IF ST THEN V = V +A: POKE V,(K = R) +2 *(K = D) +C *(K = L): IF CR = 8 THEN POKE V, PEEK(V) +4: XDRAW CR AT XO,YO
420 IF CR < >8 THEN 380
446 IF (PS OR ST) THEN XDRAW C AT XS +XO/C,YS +YO/C
447 IF PS THEN XDRAW C AT XO +A,YO +A
448 GOTO 380
450 IF K = 201 AND NOT ST THEN OS = 8192:OE = 16383:NE = 24575:MV = A: GOSUB 950:A$ = "IMPRINTED.": GOSUB 850:NS = OS:OS = OE +A:OE = NE:MV = -1: GOSUB 950: GOSUB 770: HOME : GOSUB 550: POKE P,96: GOTO 370
452 IF K < >216 THEN 460
453 IF V -VS = 0 THEN PRINT G$;: GOTO 380
454 ER = PEEK(V):V = V -1:YP = YP +JM *(ER = 0 OR ER = 4) -JM *(ER = B OR ER = 6):XP = XP +JM *(ER = C OR ER = 7) -JM *(ER = A OR ER = 5): IF ER >C THEN XDRAW 8 AT XP,YP: XDRAW C AT XS +XP/C,YS +YP/C: GOTO 380
460 IF K = 155 THEN 170
463 IF K = 208 AND NOT ST THEN PS = A:CR = 8: VTAB 23: HTAB 1: CALL -868: VTAB 21: HTAB 12: PRINT "PRE-PLOT & ";: CALL -868:XX = XP:YY = YP:JM = 3
470 IF K < >141 OR ST THEN 480
473 IF PS THEN XP = XX:YP = YY: HCOLOR= 0: FOR I = YS +1 TO 148: HPLOT XS +1,I TO 277,I: NEXT
475 ST = A:JM = C:PS = 0:CR = 8: XDRAW C AT XP +1,YP +A: IF NOT PS THEN XX = XP:YY = YP
477 HOME : GOSUB 550: GOTO 380
480 IF K = 160 AND (PS OR ST) THEN CR = CR +A -B *(CR = 9):V$ = "PLOT": IF CR = 9 THEN V$ = "MOVE"
490 IF K < >141 THEN 380
500 VTAB 21: HTAB 24: CALL -868: PRINT : PRINT : CALL -958: PRINT "READY TO WRITE SHAPE INTO TABLE? (Y/N):";: GET A$: IF A$ = "N" THEN GOSUB 550: GOTO 380
510 IF A$ < >"Y" THEN 500
520 V = V +A: POKE V,0:VE = V: GOTO 570
550 IF NOT ST THEN RETURN
560 HOME : VTAB 21: PRINT "SHAPE #"CH":" SPC( CH <10)" VECTOR #";: HTAB 31: PRINT "DIRECTION": GOSUB 980: PRINT "=MOVE/PLOT ";: GOSUB 940: PRINT "=DIRECTION=FINISHED =BACK UP";: RETURN
570 HOME :V = VS:LOC = 20480: VTAB 22: HTAB 1: PRINT "WRITING VECTOR #";
590 V = V +A:N = PEEK(V): IF V +A < = VE AND N + PEEK(V +A) *8 = KEEP IMPRINT & CONTINUE": HTAB 5: PRINT " = ERASE IMPRINT & CONTINUE";
780 SCALE= 3: XDRAW CT AT XT,YT: SCALE= A: XDRAW CT AT XS +XT/C,YS +YT/C
790 K = PEEK(Q): IF K >F THEN 800
795 VT = 21:H = 13:A$ = "ADJUST POSITION": GOSUB 960: GOTO 790
800 POKE Z,0: IF XT +C *(K = R) >XH OR XT -C *(K = L) YH OR YT -C *(K = U) 155 THEN 780
830 RETURN
850 POKE P,97: HOME : HGR : VTAB 22: GOSUB 980: PRINT "<-,->: SELECT SHAPE TO BE ";A$;: HTAB 1: INVERSE : PRINT "<-";: HTAB 4: PRINT "->": NORMAL : HTAB 8: PRINT " TO CONTINUE PROGRAM.";
860 VTAB 21: HTAB 1: CALL -868: INVERSE : PRINT " SHAPE #";CT;" DRAWN ";: HTAB 23 +(CT <10): PRINT " SHAPE #";CT;" XDRAWN ": NORMAL : HCOLOR= 3: DRAW CT AT 65,99: XDRAW CT AT 214,99
870 K = PEEK(Q): IF K >127 THEN 880
875 VT = 23:H = 8:A$ = "SELECT SHAPE": GOSUB 960: GOTO 870
880 POKE Z,0: HCOLOR= 0: DRAW CT AT 65,99: XDRAW CT AT 214,99:CT = CT +(K = R) -(K = L):CT = CT +12 *(CT = 0):CT = CT -12 *(CT = 13)
890 IF (K >175 AND K <187) OR K = 173 THEN CT = K -176 +10 *(K = 176) +(K = 186) +15 *(K = 173)
900 IF K = 155 THEN POP : GOTO 170
910 IF K < >141 THEN 860
920 RETURN
940 H = PEEK(36): PRINT "A,Z,<-,->";: INVERSE : HTAB H +5: PRINT "<-";: HTAB H +8: PRINT "->";: NORMAL : RETURN
950 POKE 60,OS - INT(OS/T) *T: POKE 61, INT(OS/T): POKE 62,OE - INT(OE/T) *T: POKE 63, INT(OE/T): POKE 64,NE - INT(NE/T) *T: POKE 65, INT(NE/T): POKE 66,NS - INT(NS/T) *T: POKE 67, INT(NS/T): CALL 24776 +49 *(MV <0): RETURN
960 J = J +A: IF J - INT(J/25) *25 THEN RETURN
961 VTAB VT: HTAB H: PRINT SPC( LEN(A$));: FOR I = 1 TO L/2: NEXT : VTAB VT: HTAB H: PRINT A$: FOR I = 1 TO L: NEXT : RETURN
980 FOR I = 1 TO 40: PRINT "-";: NEXT : RETURN
1000 HOME : TEXT : PRINT D$"CATALOG": GOSUB 980: RETURN
1100 HOME : VTAB 22: PRINT "SLOT "SL", DRIVE "DR;: HTAB 6: GET A$: IF A$ = CHR$(13) THEN 1110
1103 IF VAL(A$) >7 OR VAL(A$) <1 THEN 1100
1105 SL = VAL(A$)
1110 VTAB 22: HTAB 6: PRINT SL;: HTAB 15: PRINT DR;: HTAB 15: GET A$: IF A$ = CHR$(13) THEN 1125
1113 IF VAL(A$) <1 OR VAL(A$) >2 THEN 1110
1115 DR = VAL(A$)
1125 POKE 43626,SL: POKE 47081,SL *16: POKE 43624,DR: POKE 47082,DR: GOTO 180
Text found in 057_Apple_Mechanic_Backup.dsk/SHAPE TABLE DEMO.bas:
10 REM SHAPE TABLE DEMO
20 ONERR GOTO 3000: REM IF.CTRL-C.GOTO.3000
30 ROT= 0: REM NORMAL.ROT
40 SCALE= 1: REM NORMAL.SCALE
50 HCOLOR= 3: REM WHITE
60 D$ = CHR$(4): REM CTRL-D
70 SH = 16384: REM 1ST.SHAPE.TABLE.LOCATION.($4000)
80 GOSUB 90: GOTO 100
90 POKE 232,SH - INT(SH/256) *256: POKE 233, INT(SH/256): RETURN : REM SET.SHAPE.TABLE.POINTER
100 HGR : TEXT : HOME : NORMAL : VTAB 21: SPEED= 150: PRINT "LOADING SHAPE TABLE. STAND BY..."
110 PRINT D$;"MONICO": REM PRINTS.SUBSEQUENT.DISK.COMMANDS.ON.SCREEN
120 PRINT D$;"BLOAD DEMO SHAPES,A";SH: GOSUB 2000: REM LOAD.1ST.SHAPE.TABLE.AT.LOCATION.16384
130 HGR : REM SET.&.CLEAR.HI-RES.PG.1
140 HOME : VTAB 23: PRINT " HERE ARE THE 12 SHAPES NOW IN MEMORY.";: VTAB 21: HTAB 4: FOR I = 1 TO 12: XDRAW I AT I *21,140: PRINT I; SPC( 2 -(I = 10));: FOR J = 1 TO 150: NEXT : NEXT : REM DISPLAY.SHAPES.WITH.TEXT
160 XDRAW 8 AT 168,140: FOR X = 168 TO 163 STEP -2.5: XDRAW 8 AT X,140: FOR J = 1 TO 9: NEXT : XDRAW 8 AT X,140: NEXT : FOR Y = 140 TO 130 STEP -5: XDRAW 8 AT X,Y: FOR J = 1 TO 9: NEXT : XDRAW 8 AT X,Y: NEXT : XDRAW 8 AT X,Y: REM MOVE.DISK
170 FOR I = 9 TO 12: XDRAW I AT I *21,140: XDRAW I AT I *21,147: FOR J = 1 TO 200: NEXT : NEXT : REM MOVE.MEN.DOWN
180 FOR I = 1 TO 6: XDRAW 6 AT 126,140: XDRAW 6 AT 126,134: FOR J = 1 TO 9: NEXT : XDRAW 6 AT 126,134: XDRAW 6 AT 126,140: FOR J = 1 TO 99: NEXT : NEXT : REM DOG.JUMPS
185 GOSUB 2000: REM 2.SECOND.PAUSE
190 VTAB 21: HTAB 8: CALL -958: PRINT : PRINT : PRINT "HERE ARE SHAPES 1 & 2 ANIMATED TOGETHER.";: FOR I = 1 TO 999: NEXT
210 FOR I = 1 TO 20: XDRAW 2 AT 42,132: FOR J = 1 TO 9: NEXT : XDRAW 2 AT 42,132: XDRAW 1 AT 42,132: FOR J = 1 TO 40: NEXT : XDRAW 1 AT 42,132: NEXT : REM FLY.IN.PLACE
220 FOR Y = 132 TO 100 STEP -4: XDRAW 2 AT 42,Y: FOR J = 1 TO 9: NEXT : XDRAW 2 AT 42,Y: XDRAW 1 AT 42,Y: FOR J = 1 TO 40: NEXT : XDRAW 1 AT 42,Y: NEXT : REM FLY.UP
230 FOR X = 41 TO 189 STEP 4: XDRAW 2 AT X,Y: FOR J = 1 TO 9: NEXT : XDRAW 2 AT X,Y: XDRAW 1 AT X +1,Y: FOR J = 1 TO 40: NEXT : XDRAW 1 AT X +1,Y: NEXT : REM FLY.RIGHT
240 FOR Y = 98 TO 118: XDRAW 2 AT X,Y: FOR J = 1 TO 9: NEXT : XDRAW 2 AT X,Y: XDRAW 1 AT X,Y: FOR J = 1 TO 40: NEXT : XDRAW 1 AT X,Y: NEXT : XDRAW 2 AT X,Y: FOR I = 1 TO 200: NEXT : XDRAW 2 AT X,Y: XDRAW 1 AT X,Y: REM FLY.DOWN
250 FOR I = 1 TO 400: NEXT : XDRAW 7 AT 192,110: FOR I = 1 TO 999: NEXT : XDRAW 7 AT 192,110: GOSUB 2000: REM ?.MARK.OVER.HEAD
260 HOME : VTAB 22: PRINT "TO USE HI-RES COLOR, USE THE ";: INVERSE : PRINT " DRAW ": NORMAL : PRINT "COMMAND INSTEAD OF THE XDRAW COMMAND."
262 FOR Y = 1 TO 5: FOR X = 10 TO 50 +10 *Y STEP 2: HCOLOR= Y +(Y >3): DRAW 5 AT X,Y *15: NEXT X,Y: HCOLOR= 3: GOSUB 2000
265 HOME : VTAB 22: INVERSE : PRINT " XDRAW ";: NORMAL : PRINT " DRAWS IN THE HI-RES COLOR THAT'SOPPOSITE THE BACKGROUND COLOR.": PRINT "--------";
267 FOR Y = 0 TO 126 STEP 2: XDRAW 1 AT 48,Y: XDRAW 1 AT 51,Y: NEXT : FOR X = 48 TO 270 STEP 3: XDRAW 1 AT X,128: XDRAW 1 AT X,130: NEXT : GOSUB 2000
270 HOME : VTAB 23: PRINT "HERE IS A ROTATION DEMO.";: XDRAW 4 AT 84,140: XDRAW 5 AT 105,140: SPEED= 255
280 FOR RT = 0 TO 255 STEP 16: ROT= RT: XDRAW 4 AT 84,140: XDRAW 5 AT 105,140: VTAB 21: HTAB 11: PRINT "ROT=";RT;: FOR J = 1 TO 255 -RT: NEXT : XDRAW 4 AT 84,140: XDRAW 5 AT 105,140: NEXT : ROT= 0: XDRAW 4 AT 84,140: XDRAW 5 AT 105,140: HTAB 11: PRINT "ROT=0 ": GOSUB 2000: REM ROTATE.ARROWS
290 HOME : SPEED= 150: VTAB 23: PRINT " AND A SCALE DEMO. ": SPEED= 255: FOR SC = 8 TO 1 STEP -1: SCALE= SC: XDRAW 11 AT 99,149: VTAB 21: HTAB 13: PRINT "SCALE=";SC;: FOR J = 1 TO 400 *(SC >1): NEXT : HGR : NEXT : SCALE= 1: XDRAW 11 AT 99,149: SPEED= 150: GOSUB 2000
300 VTAB 23: HTAB 1: PRINT "SHAPE TABLE POSSIBILITIES ARE ENDLESS. ": VTAB 21: CALL -868: HCOLOR= 3: HPLOT 279,130 TO 279,150 TO 0,150: FOR X = 0 TO 20: HPLOT 10,134 TO X,140: NEXT : FOR Y = 140 TO 150: HPLOT 0,Y TO 20,Y: NEXT : REM DRAW.DOG.HOUSE
310 X = 99:Y = 149: XDRAW 11 AT X,Y: FOR I = 1 TO 16: READ A: XDRAW A AT X,Y: FOR J = 1 TO 175: NEXT : XDRAW A AT X,Y: NEXT : XDRAW 11 AT X,Y: DATA 9,10,11,9,10,11,10,11,9,9,12,9,12,9,10,11: REM MAN.POINTS
320 Y = Y -7: FOR X = 0 TO 265 STEP 5: XDRAW 6 AT X,Y: FOR J = 1 TO 15: NEXT : XDRAW 6 AT X,Y:S = PEEK( -16336): NEXT : REM DOG.RUNS
330 FOR I = 1 TO 9:S = PEEK( -16336): NEXT : ROT= 32: XDRAW 6 AT X,Y +7: ROT= 0: REM DOG.CRASHES
340 FOR I = 1 TO 500: NEXT : XDRAW 11 AT 99,149: XDRAW 9 AT 99,149: FOR I = 1 TO 500: NEXT : REM MAN.DROPS.ARM
350 HOME : VTAB 23: PRINT "LET'S LOAD A 2ND SHAPE TABLE, A FONT, AND LOOK AT SOME GRAPH & CHART SAMPLES.";: VTAB 20: PRINT :SH = 18000: PRINT D$;"BLOAD ]APPLE,A";SH: REM LOAD.SECOND.SHAPE.TABLE.AT.LOCATION.18000
360 HGR : HOME : VTAB 21: PRINT "JAN FEB MAR APR MAY JUN JUL AUG SEP OCT"
370 SH = 18000: GOSUB 90: REM SET.SHAPE.TABLE.POINTER.TO.NEW.LOCATION
380 A$ = "DISKS SOLD, 1987": XDRAW 100 AT 0,40: FOR I = 1 TO LEN(A$): XDRAW ASC( MID$ (A$,I,1)) -31: XDRAW 99: NEXT : REM PRINT.A$.IN.HI-RES
390 SH = 16384: GOSUB 90
400 FOR X = 0 TO 279 STEP 28: FOR Y = 139 TO 250 -X STEP -22: XDRAW 8 AT X,Y: NEXT : NEXT : GOSUB 2000: REM DRAW.DISK.CHART
410 HOME : HGR : FOR Y = 30 TO 159 STEP 30:X = 0: FOR I = 1 TO INT( RND(1) *10) +7:X = X +15: XDRAW 9 AT X,Y: NEXT : NEXT : REM DRAW.MEN.GRAPH
420 SH = 18000: GOSUB 90: POKE -16302,0: XDRAW 100 AT 0,165:A$ = " Projected Population, 1981-5": FOR I = 1 TO LEN(A$): XDRAW ASC( MID$ (A$,I,1)) -31: XDRAW 99: NEXT : REM LOWER.CASE.TYPING.CAPABILITIES.NECESSARY.(SEE.XTYPER.&.HI-WRITER.FOR.ALTERNATIVE.LOWER-CASE)
430 GOSUB 2000
440 HGR :SH = 18000: GOSUB 90: XDRAW 100 AT 54,30:A$ = "SINE DATA": FOR I = 1 TO LEN(A$): XDRAW ASC( MID$ (A$,I,1)) -31: XDRAW 99: NEXT
450 HPLOT 0,90 TO 279,90: FOR X = 0 TO 279 STEP 24: HPLOT X,88 TO X,92: NEXT :SH = 16384: GOSUB 90: FOR X = 0 TO 279 STEP 6: XDRAW 3 AT X,50 * SIN(X) +90: FOR I = 1 TO 25: NEXT : NEXT : GOSUB 2000
460 SH = 18000: GOSUB 90
500 HGR : POKE -16302,0:X = 0:Y = 0:A$ = "]SHAPE-FONTS MAY BE": GOSUB 1000
510 X = 0:Y = 16:A$ = "UTILIZED AS ORDINARY": GOSUB 1000
520 X = 0:Y = 32:A$ = "SHAPE TABLES.": GOSUB 1000
530 X = 0:Y = 55:A$ = "LIST LINES 500-1000": GOSUB 1000:X = 0:Y = 71:A$ = "TO SEE HOW THESE WORDS": GOSUB 1000:X = 0:Y = 87:A$ = "WERE WRITTEN.": GOSUB 1000
540 X = 0:Y = 100:A$ = "-----------------------------------": GOSUB 1000
550 POKE -16301,0: VTAB 21
560 PRINT D$;"BLOAD ]SMALL SQUARE,A18000":SH = 18000: GOSUB 90: REM REPLACE.]APPLE.FONT.WITH.NEW.FONT
570 POKE -16302,0
580 X = 0:Y = 116:A$ = "1. XDRAW 100 AT START POINT.": GOSUB 1000:X = 0:Y = 126:A$ = "2. XDRAW A CHARACTER.": GOSUB 1000:X = 0:Y = 136:A$ = "3. XDRAW 99.": GOSUB 1000:X = 0:Y = 146:A$ = "4. REPEAT STEPS 2 and 3.": GOSUB 1000
590 X = 0:Y = 160:A$ = "BETTER YET, USE THE XTYPER or HI-WRITER": GOSUB 1000:X = 0:Y = Y +10:A$ = "PROGRAMS ON THE APPLE MECHANIC" + CHR$(126) +" DISK.": GOSUB 1000
600 HPLOT 0,180 TO 279,180: GOSUB 2000
610 SH = 16384: GOSUB 90: FOR I = 1 TO 400: NEXT :X = 155:Y = 159: XDRAW 10 AT X,Y: FOR I = 1 TO 400: NEXT : XDRAW 10 AT X,Y: XDRAW 9 AT X,Y: FOR I = 1 TO 400: NEXT : XDRAW 9 AT X,Y: XDRAW 11 AT X,Y: FOR I = 1 TO 400: NEXT : REM MAN.POINTS
620 FOR X = 0 TO 260 STEP 4: XDRAW 6 AT X,153:S = PEEK( -16336): XDRAW 6 AT X,153: NEXT : ROT= 16: FOR Y = 153 TO 163 STEP 4: XDRAW 6 AT X,Y: XDRAW 6 AT X,Y: NEXT : FOR I = 1 TO 9:S = PEEK( -16336): NEXT : XDRAW 6 AT X,Y: ROT= 0: REM DOG.CRASH.#2
630 GOSUB 2000:SH = 18000: GOSUB 90:X = 0:Y = 185:A$ = "THAT'S IT. HIT ANY KEY TO CLEAR THE SCREEN.": GOSUB 1000
640 GET A$: HOME : TEXT : SPEED= 255: END
1000 XDRAW 100 AT X,Y: FOR I = 1 TO LEN(A$): XDRAW ASC( MID$ (A$,I,1)) -31: XDRAW 99: NEXT : RETURN : REM XDRAW."LOCATION-CHARACTER".#100.AT.START.POINT,THEN.DRAW.EACH.CHARACTER.FOLLOWED.BY."CONNECTOR.CHARACTER".#99
2000 FOR I = 1 TO 3000: NEXT : RETURN
3000 HOME : SPEED= 255: POKE -16301,0: VTAB 20: END
Text found in 057_Apple_Mechanic_Backup.dsk/SONG SUBROUTINES.bas:
100 GOSUB 60000: REM MUSIC POKES
150 GOTO 700: REM GOTO MENU
200 IF REST THEN HTAB 12: PRINT "": FOR X = 1 TO REST: NEXT :REST = 0: RETURN
300 PRINT "PITCH:";PI;",";: HTAB 12: PRINT "LENGTH:";LE
399 REM PLAY A NOTE===========
400 POKE 0,255 -PI: REM PITCH
401 POKE 1,LE: REM NOTE LENGTH
402 CALL 771: REM PLAY THE NOTE
403 RETURN
499 REM MENU====
500 PRINT :A$ = "--------": PRINT A$: PRINT "ANY KEY:": PRINT A$;: VTAB PEEK(37): GET A$
700 TEXT : NORMAL :DOT$ = "........................................": FOR I = 1 TO 23: VTAB I: HTAB 1: PRINT DOT$;: NEXT : PRINT LEFT$(DOT$,39);: POKE 2039, ASC(".") +128
800 POKE 32,5: POKE 33,35: VTAB 3: HTAB 5: INVERSE : PRINT " SONG SUBROUTINES ": NORMAL : PRINT : PRINT "<1> CHARGE": PRINT "<2> SHAVE AND A HAIRCUT": PRINT "<3> HERE COMES THE BRIDE": PRINT "<4> BUGLE CALL"
900 PRINT "<5> ": PRINT "<6> C?-SCALE": PRINT "<7> MUSICAL TYPEWRITER": PRINT "<8> RANDOM NOTES": PRINT "<9> SLIDE WHISTLE": PRINT : PRINT " INSTRUCTIONS": PRINT : PRINT "
QUIT"
1000 VTAB 22: HTAB 5: PRINT "SELECT:";: FLASH : PRINT " ": NORMAL :HT = 1:A$ = " MYSTERY SONG."
1100 FOR I = 1 TO 3:PI = INT( RND(1) *200) +25:LE = 20: GOSUB 400: NEXT
1200 HT = HT +1 -12 *(HT = 12): VTAB 9: HTAB HT +4: PRINT "G";: HTAB HT +3: PRINT MID$ (A$,HT,1):K = PEEK( -16384): IF K <128 THEN 1200
1300 POKE -16368,0: IF (K <177 OR K >185) AND K < >209 AND K < >201 THEN 1000
1400 VTAB 9: HTAB 5: PRINT "MYSTERY SONG"
1500 VTAB 22: HTAB 12: PRINT CHR$(K): TEXT : IF K = 209 THEN 13600
1505 IF K = 201 THEN 50010
1600 ON K -176 GOTO 1800,2700,3800,9900,5700,11800,9500,5100,5300: GOTO 700
1700 REM CHARGE SONG===========
1800 HOME :PI = 63:LE = 40: GOSUB 200
1900 PI = 111: GOSUB 200
2000 PI = 141: GOSUB 200
2100 PI = 159:LE = 50: GOSUB 200
2200 REST = 100: GOSUB 200
2300 PI = 141:LE = 60: GOSUB 200
2400 PI = 159:LE = 255: GOSUB 200
2500 GOTO 500
2600 REM SHAVE & HAIRCUT===============
2700 HOME :PI = 103:LE = 100: GOSUB 200: REM SHAVE
2800 PI = 63:LE = 50: GOSUB 200 REM AND
2900 GOSUB 200: REM A
3000 PI = 84:LE = 90: GOSUB 200: REM HAIR-
3100 PI = 63:LE = 60: GOSUB 200: REM CUT,
3200 REST = 300: GOSUB 200
3300 PI = 103:LE = 80: GOSUB 200: REM SIX
3400 REST = 22: GOSUB 200
3500 PI = 111: GOSUB 200: REM BITS!
3600 GOTO 500
3700 REM HERE COMES THE BRIDE====================
3800 HOME :PI = 63:LE = 255: GOSUB 200: REM HERE
3900 PI = 111:LE = 180: GOSUB 200: REM COMES
4000 REST = 20: GOSUB 200
4100 LE = 80: GOSUB 200: REM THE
4200 LE = 255: GOSUB 200: REM BRIDE;
4300 REST = 350: GOSUB 200
4400 PI = 63:LE = 255: GOSUB 200: REM ALL
4500 PI = 127:LE = 180: GOSUB 200: REM FAT
4600 REST = 3: GOSUB 200
4700 PI = 103:LE = 80: GOSUB 200: REM AND
4800 PI = 111:LE = 255: GOSUB 200: REM WIDE!
4900 GOTO 500
5000 REM RANDOM======
5100 FLASH : FOR I = 1 TO 20:PI = INT( RND(1) *255) +1:LE = INT( RND(1) *30) +10: POKE 0,PI: POKE 1,LE: CALL 771: VTAB INT( RND(1) *24) +1: HTAB INT( RND(1) *39) +1: PRINT CHR$( INT( RND(1) *64) +32);: NEXT :LE = 255: POKE 0,PI: POKE 1,LE: CALL 771: NORMAL : GOTO 700
5200 REM SLIDE WHISTLE=============
5300 COL$ = "::::::::::::::::::::::::::::::::::::::::": FOR I = 1 TO 23: VTAB I: HTAB 1: PRINT COL$;: NEXT : PRINT LEFT$(COL$,39);: POKE 2039, ASC(":") +128
5400 LE = 4: FOR PI = 254 TO 1 STEP -2: POKE 0,255 -PI: POKE 1,LE: CALL 771: NEXT
5500 FOR PI = 1 TO 50: POKE 0,255 -PI *5: POKE 1,LE: CALL 771: NEXT : GOTO 700
5600 REM MYSTERY SONG============
5700 HOME : PRINT "MYSTERY SONG!": PRINT "------------": PRINT : PRINT "THIS SONG HAS BEEN COMPRESSED. EACH TIMEIT IS PLAYED, THE NOTES GET LONGER. SEE HOW FAST YOU CAN NAME THE SONG."
5800 FOR LX = 2 TO 80 STEP 2
5900 VTAB 10: HTAB 1: CALL -958: PRINT "NOTE LENGTH: ";LX/2;" (NORMAL IS 40)"
6000 PI = 111:LE = LX: GOSUB 400: REM YAN-
6100 GOSUB 400: REM KEE
6200 PI = 127: GOSUB 400: REM DOO-
6300 PI = 141: GOSUB 400: REM DLE
6400 PI = 111: GOSUB 400: REM CAME
6500 PI = 141: GOSUB 400: REM TO
6600 PI = 127: GOSUB 400: REM TOWN
6700 PI = 63: GOSUB 400: REM A-
6800 PI = 111: GOSUB 400: REM RID-
6900 GOSUB 400: REM ING
7000 PI = 127: GOSUB 400: REM ON
7100 PI = 141: GOSUB 400: REM A
7200 PI = 111:LE = LX *2: GOSUB 400: REM PO-
7300 PI = 103:LE = LX: GOSUB 400: REM NY.
7400 PI = 63: GOSUB 400: REM HE
7500 PI = 111: GOSUB 400: REM STUCK
7600 GOSUB 400: REM A
7700 PI = 127: GOSUB 400: REM FEA-
7800 PI = 141: GOSUB 400: REM THER
7900 PI = 147: GOSUB 400: REM IN
8000 PI = 141: GOSUB 400: REM HIS
8100 PI = 127: GOSUB 400: REM HAT
8200 PI = 111: GOSUB 400: REM AND
8300 PI = 103: GOSUB 400: REM CALLED
8400 PI = 63: GOSUB 400: REM IT
8500 PI = 84: GOSUB 400: REM RICE-
8600 PI = 103: GOSUB 400: REM A-
8700 PI = 111:LE = 2 *LX: GOSUB 400: REM RO-
8800 LE = LX: GOSUB 400: REM NI!
8900 IF LX = 80 THEN 700
9000 VTAB 12: PRINT "
PLAY AGAIN WITH LONGER NOTES.": PRINT " GIVE UP; PLAY AT NORMAL SPEED.": PRINT " QUIT PLAYING THAT SONG... NOW!": PRINT : PRINT " SELECT:";: GET A$: PRINT A$: IF A$ < >"Q" AND A$ < >"P" AND A$ < >"G" THEN 9000
9100 IF A$ = "P" THEN NEXT
9200 IF A$ = "G" THEN LX = 80: GOTO 5900
9300 GOTO 700
9400 REM MUSICAL TYPEWRITER==================
9500 HOME : PRINT " EACH KEY TYPES A DIFFERENT NOTE.": HTAB 13: PRINT " TO QUIT.": PRINT "----------------------------------------"
9600 GET A$: PRINT A$;:PI = ASC(A$): POKE 0,PI *2: POKE 1,20: CALL 771: IF A$ < > CHR$(17) THEN 9600
9700 GOTO 700
9800 REM BUGLE CALL==========
9900 HOME : VTAB 24:BT = 72: FOR I = 1 TO 2
10000 REST = 50: GOSUB 200
10100 PI = 63:LE = BT/3: GOSUB 200
10200 FOR J = 1 TO 3
10300 PI = 111:LE = BT/3: GOSUB 200
10400 REST = 5: GOSUB 200
10500 PI = 141:LE = BT/4: GOSUB 200
10600 PI = 111:LE = BT/4: GOSUB 200
10700 PI = 63:LE = BT/4: GOSUB 200
10800 REST = 1: GOSUB 200
10900 IF I = 2 AND J = 3 THEN GOSUB 200:REST = 15: GOSUB 200:PI = 111:LE = 2 *BT: GOSUB 200: GOTO 11500
11000 IF J = 3 THEN PI = 111:LE = BT/2: GOSUB 200
11100 PI = 141:LE = BT/3 +BT *(J = 3): GOSUB 200
11200 IF J <3 THEN REST = 15: GOSUB 200
11300 NEXT J
11400 PI = 111:LE = BT/2: GOSUB 200
11500 NEXT I
11600 GOTO 500
11700 REM C-SCALE=======
11800 HOME :A$ = "CDEFGABCBAGFEDC": FOR I = 1 TO LEN(A$): VTAB I: HTAB 23: PRINT "("; MID$ (A$,I,1);")": NEXT : VTAB 1
11900 PI = 63:LE = 80: GOSUB 200
12000 PI = 84: GOSUB 200
12100 PI = 103: GOSUB 200
12200 PI = 111: GOSUB 200
12300 PI = 127: GOSUB 200
12400 PI = 141: GOSUB 200
12500 PI = 153: GOSUB 200
12600 PI = 159: GOSUB 200
12700 PI = 153: GOSUB 200
12800 PI = 141: GOSUB 200
12900 PI = 127: GOSUB 200
13000 PI = 111: GOSUB 200
13100 PI = 103: GOSUB 200
13200 PI = 84: GOSUB 200
13300 PI = 63:LE = 150: GOSUB 200
13400 GOTO 500
13500 REM QUIT====
13600 FOR V = 1 TO 23:H = 25 -V:A = 128 *V +H -(984 * INT((V -1)/8)) +895:B = A +1:PA = PEEK(A):PB = PEEK(B): POKE A,221: POKE B,96: POKE 0,10 *V: POKE 1,9: CALL 771: FOR J = 1 TO 25: NEXT : POKE A,PA: POKE B,PB: NEXT : VTAB 23: END
50000 REM INSTRUCTIONS============
50010 HOME : PRINT " C D E F G A B C": INVERSE : FOR I = 1 TO 40: PRINT "@@@@@ ";: NEXT
50020 NORMAL : FOR I = 1 TO 6: FOR J = 5 TO 30 STEP 5: VTAB I +1: HTAB J: IF J < >15 THEN PRINT " ";
50030 NEXT : HTAB 40: PRINT " ";: NEXT
50040 VTAB 4:A$ = " X111X1": GOSUB 50080:A$ = "79X134X6": GOSUB 50080:A$ = "34X947X9": GOSUB 50080
50050 I = 0:A$ = " 63": GOSUB 50060:A$ = " 84": GOSUB 50060:A$ = "103": GOSUB 50060:A$ = "111": GOSUB 50060:A$ = "127": GOSUB 50060:A$ = "141": GOSUB 50060:A$ = "153": GOSUB 50060:A$ = "159": GOSUB 50060: GOTO 50100
50060 INVERSE :I = I +1: VTAB 10: HTAB I *5 -3: PRINT A$: POKE 0,255 - VAL(A$): POKE 1,80: CALL 771: RETURN
50070 FOR I = 1 TO 8: HTAB I *5 -2: POKE 50,63 +192 *( PEEK(37) >55): PRINT MID$ (A$,I,1);: NEXT : PRINT : RETURN
50080 FOR I = 1 TO 8: HTAB I *5: IF MID$ (A$,I,1) < >"X" THEN PRINT MID$ (A$,I,1);
50090 NEXT : RETURN
50100 NORMAL : VTAB 13: PRINT "TO MAKE MUSIC, ADD LINE 60000 TO YOUR PROGRAM AND MAKE YOUR FIRST LINE BE--": PRINT : PRINT " 10 GOSUB 60000": PRINT
50110 PRINT "FOR EACH NOTE, DO TWO POKES AND A CALL-- --------- ----"
50120 PRINT " POKE 0,255-PI (PI=PITCH, SEE ABOVE) POKE 1,LE (LE=LENGTH, 0-255) CALL 771 (PLAYS THE NOTE)";: VTAB 24: HTAB 1: PRINT "ANY KEY:";: GET A$: GOTO 700
59999 REM MUSIC POKES===========
60000 POKE 771,173: POKE 772,48: POKE 773,192: POKE 774,136: POKE 775,208: POKE 776,4: POKE 777,198: POKE 778,1: POKE 779,240: POKE 780,8: POKE 781,202: POKE 782,208: POKE 783,246: POKE 784,166: POKE 785,0: POKE 786,76: POKE 787,3: POKE 788,3: POKE 789,96: RETURN
Text found in 057_Apple_Mechanic_Backup.dsk/TEXT TRICKS.bas:
100 GOSUB 60000
200 PAUSE = 22:DOT$ = "........................................"
300 REM DOT WIPES=========
400 X = INT( RND(1) *3) +1: ON X GOTO 500,600,700
500 FOR I = 1 TO 23: VTAB I: HTAB 1: PRINT DOT$;: NEXT : FOR I = 1 TO 39: PRINT ".";: NEXT : POKE 2039,174: GOTO 900
600 POKE 33,1: FOR I = 0 TO 39: POKE 32,I: VTAB 1: HTAB 1: PRINT LEFT$(DOT$,24);: NEXT : TEXT : GOTO 900
700 VTAB 24: HTAB 1: FOR I = 1 TO 39: PRINT ".";: NEXT : POKE 2039,174: FOR I = 23 TO 1 STEP -1: VTAB I: HTAB 1: PRINT DOT$;: NEXT
800 REM MENU====
900 POKE 32,5: POKE 33,35: VTAB 5: HTAB 5: INVERSE : PRINT " SCREEN WIPES ": PRINT : NORMAL : PRINT "<1> LEFT/RIGHT WIPE": PRINT "<2> RIGHT/LEFT WIPE": PRINT "<3> CENTER OUT WIPE": PRINT "<4> UP WIPE": PRINT "<5> DOWN WIPE": PRINT "<6> STRIPE WIPE"
1000 PRINT "<7> SCROLL WIPE": PRINT "<8> HYPE WIPE": PRINT "<9> CHECKERBOARD WIPE": PRINT "<0> IRRITATING WIPE": PRINT : PRINT "
QUIT"
1100 TEXT : VTAB 20: HTAB 10: PRINT "SELECT: "; CHR$(8);: GET A$: PRINT A$: IF NOT VAL(A$) AND A$ < >"0" AND A$ < >"Q" THEN 1100
1200 REM QUIT====
1300 IF A$ = "Q" THEN FOR V = 1 TO 23:H = 25 -V:A = 128 *V +H -(984 * INT((V -1)/8)) +895:B = A +1:PA = PEEK(A):PB = PEEK(B): POKE A,221: POKE B,96: POKE 0,10 *V: POKE 1,9: CALL 771: FOR J = 1 TO 25: NEXT : POKE A,PA: POKE B,PB: NEXT : VTAB 23: END
1400 ON VAL(A$) +1 GOSUB 3500,1700,1900,2100,2300,2500,2700,2900,3100,3300
1500 FOR I = 1 TO 999 -999 *(A$ = "0"): NEXT : GOTO 400
1600 REM LEFT/RIGHT WIPE===============
1700 FOR I = 1 TO 40: POKE 33,I: HOME : GOSUB 3600: NEXT : RETURN
1800 REM RIGHT/LEFT WIPE===============
1900 FOR I = 39 TO 0 STEP -1: POKE 32,I: POKE 33,40 -I: HOME : GOSUB 3600: NEXT : RETURN
2000 REM CENTER OUT WIPE===============
2100 FOR I = 1 TO 20: POKE 32,20 -I: POKE 33,2 *I: HOME : GOSUB 3600: NEXT : RETURN
2200 REM UP WIPE=======
2300 FOR I = 24 TO 1 STEP -1: VTAB I: HTAB 1: CALL -868: GOSUB 3600: NEXT : RETURN
2400 REM DOWN WIPE=========
2500 FOR I = 1 TO 24: VTAB I: HTAB 1: CALL -868: GOSUB 3600: NEXT : RETURN
2600 REM STRIPE WIPE===========
2700 INVERSE : FOR I = 1 TO 24: VTAB I: HTAB 1: INVERSE : PRINT SPC( 40): VTAB I: HTAB 1: NORMAL : PRINT SPC( 40): NEXT : HOME : RETURN
2800 REM SCROLL WIPE===========
2900 FOR I = 1 TO 24: VTAB 24: PRINT : GOSUB 3600: NEXT : RETURN
3000 REM HYPE WIPE=========
3100 VTAB 1: HTAB 1: FOR I = 1 TO 23: PRINT "BUY BEAGLE BROS. BUY BEAGLE BROS. ";: NEXT : RETURN
3200 REM CHECKERBOARD WIPE=================
3300 INVERSE : FOR I = 24 TO 1 STEP -1: VTAB I: FOR J = I - INT(I/2) *2 +1 TO 40 STEP 2: HTAB J: PRINT " ";: NEXT : NEXT : NORMAL : RETURN
3400 REM IRRITATING WIPE===============
3500 POKE -16298,0: POKE -16302,0: FOR I = 3 TO 72: POKE -16304,0: FOR J = 1 TO 1: NEXT : POKE -16303,0: NEXT : RETURN
3600 FOR J = 1 TO PAUSE: NEXT : RETURN
60000 POKE 771,173: POKE 772,48: POKE 773,192: POKE 774,136: POKE 775,208: POKE 776,4: POKE 777,198: POKE 778,1: POKE 779,240: POKE 780,8: POKE 781,202: POKE 782,208: POKE 783,246: POKE 784,166: POKE 785,0: POKE 786,76: POKE 787,3: POKE 788,3: POKE 789,96: RETURN
Text found in 057_Apple_Mechanic_Backup.dsk/TWO-LINERS.bas:
100 L = 24577: IF PEEK(103) + PEEK(104) *256 < >L THEN POKE L -1,0: POKE 103,1: POKE 104,96: PRINT "RUN TWO-LINERS"
105 REM LINE 100 RELOADS THE PROGRAM AT $6000
110 POKE 40286,35: POKE 40287,216
120 ONERR GOTO 130
130 NOTRACE : SPEED= 255: CLEAR : TEXT : NORMAL : HOME : PRINT "PR#0": VTAB 1
140 PRINT " SUPER-SORT 3-D PLOT STEP PATTERN FLOPPER LEAVES CLOVER MEXICAN MAN GR SCROLL PDL SONG 3-D BARS MEMORY LANE FLAMING PYRAMID MORE 3-D BAR RACE
150 PRINT " RECTANGLES
POLYGONS NOISE JIGSAW
PINWHEEL SPINNER SPIRALS POLI-SCREEN CRAZY QUILT ENTROPY";
160 VTAB 1: HTAB 23: POKE 32,21: POKE 33,19: PRINT : VTAB 1: PRINT "UNCLE LOUIE'STWO-LINERCONTEST WINNERS------------------EACH OF THESEPROGRAMS HAS WON AFREE BEAGLE BROSDISK & TIP BOOK."
165 PRINT : PRINT "LOAD TWO-LINERS(DON'T RUN)TO LIST PROGRAMS."
170 VTAB 15: PRINT "SELECT (A-X): TO QUIT NOW. OR TO RETURN TO MENU.NOTE: YOU MAY NEEDTO RE-BOOT AFTERYOU QUIT.";: VTAB 15: HTAB 14: GET A$: PRINT A$: IF A$ <"A" OR A$ >"X" AND A$ < >"Z" THEN RUN
180 TEXT : IF A$ = "Z" THEN FOR I = 1 TO 24: PRINT : NEXT : POKE 40286,60: POKE 40287,212: VTAB 10: PRINT "TO LIST PROGRAMS--": PRINT : PRINT " 1. LOAD TWO-LINERS (DON'T RUN)": PRINT : PRINT " 2. LIST": PRINT : PRINT "FP"
190 LI = ASC(A$) -64: IF LI < >3 AND LI < >9 AND LI < >11 AND LI < >13 AND LI < >17 AND LI < >21 AND LI < >24 THEN 230
200 HOME : PRINT "SKIPPING DATA. STAND BY";: RESTORE
210 PRINT "....";:A1 = PEEK(125):A2 = PEEK(126): READ A: IF PEEK(123) + PEEK(124) *256
1001 HOME : PRINT "10-ITEM SORTER": PRINT :A = 11: DIM A$(A),A%(A): FOR B = 2 TO A:A%(B) = B: PRINT : PRINT "ITEM ";B -1;: INPUT ": ";A$(B): FOR C = B TO 2 STEP -1:A%(C) = A%(C -(A$(B) A$(A%(C -2)) THEN A%(C -1) = B:C = 2
1002 NEXT : TEXT : HOME : INVERSE : PRINT "ITEM","ENTRY #": NORMAL : PRINT : PRINT : POKE 34,2: FOR D = 1 TO B -1: PRINT A$(A%(D)),A%(D) -1: NEXT : NEXT : VTAB 22: GET A$: PRINT A$: GOTO 130
2000 REM 3-D PLOT========ALAN BAXTERSAN DIEGO, CA
2001 HOME :X1 = 80: DEF FN A(Z) = 60 * EXP( -Z *Z/100): HGR : POKE 28,213: CALL 62454: HCOLOR= 4: FOR X = -30 TO 30:L = 0:YY = 5 * INT( SQR(900 -X *X)/5): FOR Y = YY TO -YY STEP -5:Z = INT(25 + FN A( SQR(X *X +Y *Y)) -0.7 *Y): IF Z >L THEN L = Z:Z1 = 120 -Z: HPLOT X1,Z1
2002 NEXT Y:X1 = X1 +2: NEXT X: VTAB 22: GET A$: PRINT A$: GOTO 130
2003 REM TRY OTHER FUNCTIONS, E.G.: FN A(Z)=60*SIN(Z/10), OR FN A(Z)=SQR(900.01-Z*Z)*0.9-2; OR INVENT YOUR OWN!
3000 REM STEP PATTERN============RON & DON BLOCHERLOS ANGELES, CA
3001 FOR X = 768 TO 803: READ Y: POKE X,Y: NEXT : DATA 1,0,4,0,146,146,58,36,63,36,63,36,63,36,45,36,45,36,45,36,45,54,45,54,45,54,45,54,63,54,63,54,63,54,7,0: POKE 232,0: POKE 233,3: HGR2
3002 HCOLOR= 7 * RND(1): FOR Z = 1 TO 10: SCALE= Z: ROT= 0: DRAW 1 AT 139,95: NEXT : FOR P = 1 TO 250: NEXT : GOTO 3002
4000 REM FLOPPER=======RON WILSONBLOOMINGTON, IN
4001 POKE 768,32: POKE 769,240: POKE 770,253: POKE 771,169: POKE 772,136: POKE 773,32: POKE 774,240: POKE 775,253: POKE 776,76: POKE 777,240: POKE 778,253: POKE 54,0: POKE 55,3: CALL 1002: HOME : VTAB 24: POKE 33,30: LIST 4000 -7000: PRINT SPC( 130);
4002 CALL -756: PRINT : PRINT "PR#0": GOTO 130
5000 REM LEAVES======KEN BROWNFORT LAUDERDALE, FL
5001 HGR : HOME : VTAB 21: DEF FN X(X) = INT(X +140): DEF FN Y(Y) = INT( ABS(Y -159) -79): HPLOT 140,1 TO 140,158: HPLOT 1,80 TO 278,80: INPUT "COLOR? (0-7):";C: HCOLOR= C: INPUT "SCALE? (50-100):";S: INPUT "NUMBER? (1-7):";N: REM EVEN # FOR 2*N LEAVES, ODD # FOR N LEAVES
5002 FOR O = -6.28 TO 6.28 STEP .05:X = S * COS(O) * SIN(N *O):Y = S * SIN(O) * SIN(N *O): HPLOT FN X(X), FN Y(Y): NEXT : HOME : VTAB 22: GET A$: GOTO 130
6000 REM CLOVER======SCOTT CHRISTASANTA CRUZ, CA
6001 HGR2 : HCOLOR= 3: HPLOT 59,0 TO 219,0 TO 219,159 TO 59,159 TO 59,0: HPLOT 59,0 TO 219,159: HPLOT 219,0 TO 59,159: FOR I = 9 TO 79 STEP 10: HPLOT 59,I TO 149 -I,89 -I: HPLOT 59 +I,0 TO 149 -I,89 -I: HPLOT 219,I TO 129 +I,89 -I: HPLOT 219 -I,0 TO 129 +I,89 -I: NEXT
6002 FOR I = 149 TO 79 STEP -10:X = 159 -I: HPLOT 59,I TO 149 -X,69 +X: HPLOT 59 +X,159 TO 149 -X,69 +X: HPLOT 219,I TO 129 +X,69 +X: HPLOT 219 -X,159 TO 129 +X,69 +X: NEXT : CALL -756: GOTO 130
7000 REM MEXICAN MAN===========GENNARO CONTEBRONX, NY
7001 HGR2 :P1 = 3.14:D = P1/180: DEF FN R(Z) = SGN(Z) * INT( ABS(Z) +.5): FOR I = 0 TO 180:A = I *D:L = 100 *( SIN(2 *A)):X = L * COS(A):Y = FN R(Y):U = 90:U1 = 90: HPLOT X,I TO U,U1: HPLOT I,X TO 45,45: NEXT I
7002 FOR J = 1 TO 180:A = J *D:L = 100 * SIN(2 *A):X = L * COS(A):Y = L * SIN(A):X = FN R(X):Y = FN R(Y): HPLOT X,J TO 180,180: NEXT J: CALL -756: GOTO 130
8000 REM GR SCROLL=========JOHN DALRYMPLEBETHLEHEM, PA
8001 TEXT : SPEED= 200: POKE -16304,0: POKE -16298,0
8002 FOR X = 33 TO 95: FOR Y = 1 TO 40: PRINT CHR$(X);: NEXT Y: NEXT X: GOTO 8002
9000 REM PDL SONG========ALAN DOVECROWNSVILLE, MD
9001 READ A,B: POKE A,B: DATA 770,173,771,48,772,192,773,136,774,208,775,5,776,206,777,1,778,3,779,240,780,9,781,202,782,208,783,245,784,174,785,0,786,3,787,76,788,2,789,3,790,96:N = N +1: IF N < >21 THEN 9001
9002 C = PDL(0):D = PDL(1): POKE 768,C: POKE 769,D: CALL 770: GOTO 9002
10000 REM 3-D BARS========JIM GANZW.HARTFORD, CT
10001 HGR2 : HCOLOR= 1: HPLOT 1,0 TO 1,139 TO 253,139 TO 253,0 TO 1,0: HPLOT 25,178 TO 279,178: HPLOT 0,139 TO 25,165 TO 25,191: HPLOT 25,165 TO 279,165 TO 253,139: HPLOT 279,165 TO 279,191 TO 25,191: HCOLOR= 2: FOR Y = 10 TO 130 STEP 10: HPLOT 5,Y: NEXT
10002 FOR X = 255 TO 30 STEP -14:R = RND(1) *144 +15: FOR Y = R TO 160: HCOLOR= 2: HPLOT X -15,Y -15 TO X -1,Y: HCOLOR= 3: HPLOT X,Y TO X +10,Y: NEXT : HCOLOR= 1: FOR Y = R -1 TO R -15 STEP -1: HPLOT X -(R -Y) +1,Y TO X -(R -Y) +11,Y: NEXT : NEXT : FOR X = 0 TO 4999: NEXT : CALL -756: GOTO 130
11000 REM MEMORY LANE===========JIM GANZW.HARTFORD, CT
11001 HOME : VTAB 12: HTAB 8: PRINT "'A STROLL DOWN MEMORY LANE'": GOSUB 11002: FOR LOC = 0 TO 65535: POKE X,Y: POKE Z, PEEK(LOC): CALL TNE: NEXT : TEXT : GOTO 130
11002 FOR LOC = 771 TO 789: READ PKE: POKE LOC,PKE: NEXT :TNE = 771:X = 1:Y = 15:Z = 0: RETURN : DATA 173,48,192,136,208,4,198,1,240,8,202,208,246,166,0,76,3,3,96
12000 REM FLAMING PYRAMID===============BRUCE JOHNSONREARDAN, WA
12001 HGR2 : FOR N = 1 TO 95:X = X +1: HCOLOR= RND(1) *8: HPLOT 45 +X,96 TO 140,X TO 235 -X,96 TO 140,192 -X TO 45 +X,96: HPLOT 45 +X,X TO 235 -X,X TO 235 -X,192 -X TO 45 +X,192 -X TO 45 +X,X: IF X = 190 THEN X = 0
12002 NEXT : FOR Z = 1 TO 3000: NEXT : FOR N = 1 TO 250:A = RND(1) *279:B = RND(1) *191: HCOLOR= RND(1) *7 +1: HPLOT 140,96 TO A,B: NEXT : GOTO 12001
13000 REM MORE 3-D========CHRIS VOLPETRUMBULL, CT
13001 POKE 232,0: POKE 233,3: FOR X = 768 TO 790: READ Y: POKE X,Y: NEXT : DATA 1,0,4,0,36,172,46,46,62,246,228,22,39,56,246,32,39,37,37,12,54,6,0
13002 HGR2 : HCOLOR= 3: ROT= 0: FOR S = 1 TO 64: SCALE= S: DRAW 1 AT 140,96: NEXT : GOTO 10
14000 REM BAR RACE========R.F.MODULATORSAN DIEGO
14001 HOME : HGR : HCOLOR= 3:A = 1:B = 2:C = 3:D = 4:E = 5:F = 13:G = 33:H = 21:I = 31:J = 33:K = 50:L = 279:FF = 255:C0 = 192: FOR X = A TO L STEP 25: HPLOT X,Z TO X,191 TO X -A,191 TO X -A,Z: NEXT :A$(Z) = "GREEN: ":A$(A) = "VIOLET:":A$(B) = "WHITE: ":A$(C) = "ORANGE:":A$(D) = "BLUE: "
14002 R = INT( RND(A) *E):X(R) = X(R) +A:X = X(R): HCOLOR= R +A +(R >B):Y = J *R: HPLOT X,Y TO X,Y +I: VTAB H + INT(R/B): HTAB A +F *(R - INT(R/B) *B): POKE K,FF -FF/B *(X > = X(Z) AND X > = X(A) AND X > = X(B) AND X > = X(C) AND X > = X(D)): PRINT A$(R)X(R): NORMAL : VTAB 23: IF X RECTANGLES==========CHRIS KOERITZFAYETTEVILLE, NY
15001 HGR :HC = 3:Y = 191: POKE -16302,0:X = 279
15002 HCOLOR= HC: HPLOT X,Y TO X,191 -Y TO 279 -X,191 -Y TO 279 -X,Y TO X,Y:Y = Y -5 +190 *(Y <2):X = X -5 +275 *(X <5):HC = HC -3 *(HC = 3 AND RND(1) >.94) +3 *(HC = 0 AND RND(1) >.9): GOTO 15002
16000 REM POLYGONS========JERRY KRAMERPHILADELPHIA, PA
16001 TEXT : HOME : VTAB 10: HTAB 9: PRINT "DIAGONALS OF A POLYGON": FOR P = 1 TO 3000: NEXT : DIM X(25),Y(25): FOR N = 4 TO 20: HGR : HCOLOR= 3:X(1) = 140:Y(1) = 150: FOR T = 1 TO N:X(T +1) = 140 +70 * SIN(6.3 *T/N):Y(T +1) = 80 +70 * COS(6.3 *T/N): NEXT
16002 VTAB 22: HTAB 5: PRINT N;" SIDES";: HTAB 25: PRINT N *(N -3)/2;" DIAGONALS": FOR T = 1 TO N +1: FOR Q = T TO N +1: HPLOT X(T),Y(T) TO X(Q),Y(Q): NEXT : NEXT : FOR P = 1 TO 2500: NEXT : NEXT : GOTO 130
17000 REM NOISE=====RANDY LANGERINGLEWOOD, CA
17001 FOR Z = 768 TO 827: READ X: POKE Z,X: NEXT : CALL 768: DATA 169,0,133,26,174,87,192,174,82,192,174,84,192,174,80,192,169,32,133,27,169,208,133,29,177,28,69
17002 DATA 30,133,28,145,26,101,28,112,3,174,48,192,200,208,238,230,29,174,48,192,230,27,165,27,201,64,144,225,230,30,76,16,3
17003 RUN
18000 REM JIGSAW======ALAN LEDERPATERSON, NJ
18001 GR :C = RND(1) *15 +1: COLOR= RND(1) *C: FOR A = 1 TO 39: FOR B = 39 TO 1 STEP -1: PLOT A,B
18002 COLOR= C + RND(C): PLOT 39 -A,39 -B: NEXT B: NEXT A: HOME : GOTO 18001
19000 REM PINWHEEL========MICHAEL LENZOKLAHOMA CITY, OK
19001 HOME : HGR2 : VTAB 21: SCALE= 40: POKE 232,0: POKE 233,3: POKE 768,1: POKE 770,4: POKE 771,0: POKE 772,54: POKE 773,0: FOR B = 1 TO 6: HCOLOR= B: HPLOT 0,0: CALL 62454
19002 FOR H = 1 TO 6: HCOLOR= H: FOR R = 0 TO 63: ROT= R: DRAW 1 AT 0,0: DRAW 1 AT 140,96: NEXT R,H,B: GOTO 19002
20000 REM SPINNER=======TOM SOLDAULA JOLLA, CA
20001 HGR : POKE -16302,0:A = 135:B = 95:C = 0:D = 191
20002 HCOLOR= INT(6 * RND(1) +1):L = INT(23 * RND(1) +1): FOR R = 1 TO (279/L): HPLOT A,B TO C,D:C = C +L: NEXT R: FOR R = 1 TO (191/L): HPLOT A,B TO C,D:D = D -L: NEXT R: FOR R = 1 TO (279/L): HPLOT A,B TO C,D:C = C -L: NEXT R: FOR R = 1 TO (191/L): HPLOT A,B TO C,D:D = D +L: NEXT R: GOTO 20002
21000 REM
- Addeddate
- 2014-07-16 22:07:51
- Emulator
- apple2e
- Emulator_ext
- dsk
- Identifier
- riag_008_057_-_Apple_Mechanic_-_Backup
- Scanner
- Internet Archive Python library 0.6.8