@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr 1 REM BINDATA: A CONVERSION PROGRAM TO CONVERT BINARY LOAD FILES TO BASIC DATA STATEMENTS 2 REM BY STEVEN S. WESTON; JANUARY} 24, 1983; POB 868, DEL MAR, CA 92014 3 REM WILL HANDLE SIMPLE & COMPOUND BINARY FILES. LINE # INCREMENT IS 10 UNLESS INPUT }BY USER. 4 REM FILE NAMES MUST BE COMPLETE: Dn:FILENAME.EXT. 10 DIM C$(1),S$(110),N$(3),D$(6),DBIN$(15),DBAS$(15),ZZ$(30) }20 C$=",":D$=" DATA " 30 TRAP 40000:? "ENTER BEGINNING LINE NUMBER OF":? "BASIC DATA STATEMENTS":INPUT ZZ$:IF LEN(ZZ$)=0 THE}N 30 40 TRAP 30:LN=VAL(ZZ$) 50 TRAP 40000:? "ENTER LINE NUMBER INCREMENT":INPUT ZZ$:IF LEN(ZZ$)=0 THEN INC=10:GOTO 70 60 T }RAP 50:INC=VAL(ZZ$) 70 ? "ENTER BINARY FILE NAME":INPUT DBIN$:TRAP 230:OPEN #1,4,0,DBIN$ 80 ? "ENTER LISTED BASIC OUTPUT FI }LE NAME":INPUT DBAS$:TRAP 240:OPEN #2,8,0,DBAS$:TRAP 250 90 FOR I=1 TO 2:GET #1,X:IF X<>255 THEN ? "INPUT FILE NOT IN BINARY } FORMAT":GOTO 220 100 NEXT I 110 GET #1,X:STR=X:GET #1,X:STR=STR+256*X 120 GET #1,X:STP=X:GET #1,X:STP=STP+256*X 130 BYTS }=1+STP-STR:? BYTS;" BYTES TO BE PROCESSED":TRAP 260:CNT=0:? "STARTING BINARY FILE AT LINE # ";LN 140 S$=STR$(LN):J=LEN(S$)+1 }:S$(J,5+J)=D$:J=6+J:FLG=0 150 IF BYTS=CNT THEN 270 160 GET #1,X:CNT=CNT+1:N$=STR$(X):I=LEN(N$) 170 IF FLG THEN S$(J,J)=C$:}J=J+1 180 S$(J,J+I-1)=N$:J=J+I:FLG=1:IF J>100 THEN 200 190 GOTO 150 200 ? #2;S$:LN=LN+INC:GOTO 140 210 ? #2;S$ 220 CLOSE} #1:CLOSE #2:END 230 ? "UNABLE TO OPEN INPUT FILE":CLOSE #1:TRAP 40000:GOTO 70 240 ? "UNABLE TO OPEN OUTPUT FILE":CLOSE #2}:TRAP 40000:GOTO 80 250 ? "UNABLE TO PROCESS BINARY FILE":? "HEADER ERROR":GOTO 220 260 ? "PREMATURE END OF BINARY FILE":? }CNT;" BYTES PROCESSED":? "EXPECTED ";BYTS:GOTO 220 270 ? #2;S$:LN=LN+INC:TRAP 220:GOTO 90 h   i\1 REM FILE BREAKER-UPPER 2 REM By: Michael Reichmann 01/02/85 3 REM Simple demo program. 4 REM You need to know the number} of 5 REM sectors in the file that you 6 REM want to break up. This is a 7 REM quick and dirty example of how 8 REM to br}eak a larger file into 9 REM two smaller ones. 10 ? CHR$(125):TRAP 150:POSITION 15,2:? "-BREAKER-":? 11 DIM FILE$(12):LOO}P=75 12 ? "Enter source file name,(D:...)" 14 INPUT FILE$:? 16 ? "Enter # of sectors in file." 18 INPUT SIZE:? :? "Creat}ing FILE.1" 19 ? "Processing...":? 20 OPEN #1,4,0,FILE$ 22 OPEN #2,8,0,"D:FILE.1" 25 GOSUB LOOP:? :? "Creating FILE.2":?} 40 OPEN #2,8,0,"D:FILE.2" 45 GOSUB LOOP 50 CLOSE #1:? :? "Finished.":END 75 FOR X=1 TO (SIZE*125)/2 80 GET #1,BYTE 8}5 PUT #2,BYTE 88 ? CHR$(BYTE); 90 NEXT X 95 CLOSE #2:? 100 RETURN 150 IF PEEK(195)=136 THEN GOTO 50:REM End of file fo}und. 155 CLOSE #1:CLOSE #2 160 ? "ABORTED TERMINATION"  ~ t u`C ?( 0(C.` E <1000 Rem DIMENSION AND INITIALIZE VARIABLES 1010 Dim Dirbuf$(8*128):Let Dirbuf$(8*128)="*" 1020 Dim First(1),Last(1) 1030 Dim} Q$(1) 1040 Dim Secbuf$(300) 1050 Dim Copytodir$(100),Copyto$(120) 1060 Rem 1070 Rem MESSAGES AND ANSWERS 1080 Rem 1090 Put} #0,125 1100 Print "Copy files from DOS 2.x disk to" 1110 Print " virtually any other DOS" 1120 Print " (including Spa}rtaDOS)" 1130 ? :? 1140 Print "First, where are the DOS 2.x files...":? 1150 Trap 1150 1160 Input "What drive number? ",Drv}num 1170 Trap 0 1180 ? :? :? 1190 Print "Then, where should we copy them to..." 1200 Print " Give drive AND directory name} as" 1210 Print " needed (e.g., D2: or D3:>MYDIR>)." 1220 Print 1230 Print " [Trailing ':' or '>' IS needed!]" 1240 ? :I }nput "Where to? ",Copytodir$ 1250 If Len(Copytodir$)<3 Then Oops=1:Goto 1300 1260 Q$=Copytodir$(Len(Copytodir$)) 1270 Oops=0 !}1280 If Q$<>":" And Q$<>">" And Q$<>"\" Then Oops=1 1290 If Copytodir$(1,1)<>"D" Or Copytodir$(3,3)<>":" Then Oops=1 1300 Tra"}p 0 1310 If Oops:? :? 1320 Print "Sorry, something is wrong with the " 1330 Print " name of your 'Where to' director#}y." 1340 End 1350 Endif 1360 Rem ......... 1370 If Val(Copytodir$(2))=Drvnum:Rem OOPS! 1380 ? :? :Print "Sorry, thi$}s program is not set up for" 1390 Print " single drive transfers!" 1400 End 1410 Endif 1420 Rem 1430 Rem READ THE %}DIRECTORY OF DOS 2.X DISK 1440 Rem 1450 For Sector=0 To 7 1460 Secnum=$0169+Sector 1470 Secbuf=Adr(Dirbuf$)+128*Sector&} 1480 Gosub 2480 1490 Next Sector 1500 Rem FIND LAST FILE IN DIRECTORY 1510 Rem 1520 Maxf=63 1530 For Fnum=0 To 63 154'}0 Flag=Peek(Adr(Dirbuf$)+Fnum*16) 1550 If Flag=0 Then Maxf=Fnum-1:Fnum=99 1560 Next Fnum 1570 If Maxf<0 Then Print "NO (}FILES ON THIS DISK!":End 1580 Rem 1590 Rem SET UP LIMITS FOR DISPLAY 1600 First(0)=0:Last(0)=39 1610 First(1)=-1 1620 If )}Maxf>Last(0):Last(0)=31 1630 First(1)=32:Last(1)=Maxf 1640 Else :Last(0)=Maxf 1650 Endif 1660 Rem 1670 Rem ..........*}.................. 1680 Rem 1690 Rem (MAIN LOOP) 1700 Rem 1710 Half=1:Rem CURRENT SET OF FILES 1720 Rem (NEXT LINE IS ENTRY+} FOR OTHER HALF OF FILES) 1730 Rem 1740 Rem ASK WHICH FILE # 1750 Rem 1760 Half=1-Half 1770 First=First(Half):Last=Last(Hal,}f) 1780 If First<0 Then 1730 1790 Gosub 2360 1800 Print :Print 1810 Trap 1730 1820 Input "Number (RETURN for more files)? ",-}Fnum 1830 Trap 0 1840 Rem 1850 Rem USER GAVE US A FILE NUMBER...CHECK IT OUT 1860 Rem 1870 If Fnum<0 Or Fnum>Maxf Or Fnum<>.}Int(Fnum) Then 1710 1880 Gosub 2170:Rem GET NAME$? 1890 If Flag=0 Then Goto 1710:Rem OOPS...INVALID FILE NUMBER! 1900 Rem VAL/}ID FILE 1910 Put #0,125 1920 Copyto$=Copytodir$,Name$ 1930 Print "Ready to copy:":? 1940 Print "[FROM] D";Chr$(48+Drvnum);":0}";Name$ 1950 Print "[ TO] ";Copyto$ 1960 ? :Input "Answer Y or N: Okay? ",Q$ 1970 If Q$<>"Y" And Q$<>"y" Then 1710 1980 Rem1} 1990 Rem DO THE ACTUAL COPYING 2000 Rem 2010 Close #3:Open #3,8,0,Copyto$ 2020 Secnum=Dpeek(Adr(File$)+3) 2030 Rem COPY LO2}OP 2040 While Secnum 2050 Print "Sector ";Secnum:Put #0,28 2060 Secbuf=Adr(Secbuf$) 2070 Gosub 2480:Rem GET THE SECTO3}R 2080 Check=Peek(Secbuf+125)&$fc 2090 If Check<>Fnum*4 Then ? "FILE LINK ERROR!":End 2100 If Peek(Secbuf+127) Then Bp4}ut #3,Secbuf,Peek(Secbuf+127) 2110 Secnum=256*(Peek(Secbuf+125)&3)+Peek(Secbuf+126) 2120 Endwhile 2130 Close #3 2140 ? :5}? :Input "COPY DONE...HIT RETURN",Q$ 2150 Goto 1710 2160 End 2170 Rem 2180 Rem BUILD FILE NAME, CHECK ITS FLAGS 2190 Rem 26}200 Rem ENTER: FNUM HAS FILE NUMBER 2210 Rem 2220 Rem EXIT: NAME$ HAS FILE IF VALID 2230 Rem . FLAG=0 IF NAME$ INVA7}LID 2240 Rem . FILE$ HAS RAW FILE INFO 2250 Rem 2260 Name$="" 2270 File$=Dirbuf$(Fnum*16+1,Fnum*16+16) 2280 Flag=Asc(F8}ile$) 2290 If (Flag&$80)<>0 Then Flag=0 2300 If Flag:Rem (IF GOOD FILE) 2310 Name$=File$(6,16)," " 2320 Dot=Find(Name$,9}" ",0):If Dot>8 Then Dot=9 2330 Name$(Dot)=".",File$(14,16) 2340 Endif 2350 Return 2360 Rem SHOW UP TO 32 FILES 2370 Re:}m 2380 Rem ENTRY: FIRST IS FIRST FILE TO DISPLAY 2390 Rem . LAST IS LAST ONE TO DISPLAY 2400 Rem 2410 Put #0,125 24;}20 For Fnum=First To Last 2430 Gosub 2170:Rem GET NAME$ SET UP 2440 If Flag Then Print Using "## !!!!!!!!!!!! ",Fnu<}m,Name$, 2450 If Peek(85)>30 Then Print 2460 Next Fnum 2470 Return 2480 Rem 2490 Rem READ A SECTOR VIA SIO 2500 Rem 2=}510 Rem ENTER: SECNUM HAS SECTOR NUMBER 2520 Rem . SECBUF HAS BUFFER ADDRESS 2530 Rem . DRVNUM HAS DRIVE NUMBER >}2540 Rem 2550 Poke $0300,$31 2560 Poke $0301,Drvnum 2570 Poke $0302,Asc("R") 2580 Poke $0303,$40 2590 Dpoke $0304,Secbuf 260?}0 Dpoke $0306,3 2610 Dpoke $0308,128 2620 Dpoke $030a,Secnum 2630 Set 8,0:Rem TELLS BXL _NOT_ TO PUSH COUNT OF PARAMETERS! 26@}40 Junk=Usr($e459):Rem CALL SIO 2650 If Peek($0303)>1 Then Print "SIO ERROR #";Peek($0303):End 2660 Return """"""""""""""""A}""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""EF 5L1L!D,I,HhN10 REM 20 REM CHANGE D:AUTORUN.SYS 30 REM 31 CLR 35 DIM TEMP$(14),NAME$(14) 40 PRINT CHR$(125):POKE 82,2 50 PRINT " C} CHANGE AUTORUN.SYS NAME ":PRINT 100 START=5899 110 FOR LOOP=1 TO 14 120 DAT=PEEK(LOOP+START) 130 TEMP$(LOOP)=CHR$( D}DAT) 140 NEXT LOOP 150 IF TEMP$(1,3)<>"D1:" THEN 1000 160 PRINT "YOU MUST HAVE THE SAME LENGHT OR LESS" 170 PRINT "AS D1: E}AUTORUN.SYS" 180 PRINT 190 PRINT "ENTER NAME - ";:INPUT NAME$ 195 IF NAME$(1,1)<>"D" THEN PRINT "}":GOTO 190 196 IF NAME F}$(2,2)<>":" AND NAME$(3,3)<>":" THEN PRINT "}":GOTO 190 200 IF LEN(NAME$)<14 THEN NAME$(LEN(NAME$)+1)=" ":GOTO 200 210 FOR G}LOOP=1 TO 14 220 POKE START+LOOP,ASC(NAME$(LOOP,LOOP)) 230 NEXT LOOP 234 TRAP 244 240 XIO 36,#1,0,0,"D:DOS.SYS" 244 TRAP H} 254 250 XIO 33,#1,0,0,"D:DOS.SYS" 254 TRAP 1000 260 OPEN #1,8,0,"D:DOS.SYS" 270 CLOSE #1 280 PRINT "COMPLETED" 290 END I} 1000 REM 1010 REM CAN'T CHANGE WRONG DOS.SYS 1020 REM 1030 PRINT "}";"WRONG DOS FILE" 1040 END ELSAVE-GIVE j0 REM FORMAT 2.5 BY ALAN M. GLICK 1 REM V.1.O;MAY 24,1985 4 REM MODIFICATION OF FORMAT1 BY JERRY WHITE ORIGINALLY PUBLISHK}ED IN ... 5 REM ACE NEWSLETTER 3662 VINE MAPLE DR,EUGENE,OR 97405 6 REM MARCH 1981 ISSUE 9 REM SET TEXT MODE,BLACK & WHITL}E,MARGINS,PRINTTAB WIDTH,NO CURSORS 10 GRAPHICS 0:SETCOLOR 2,0,0:POKE 82,2:POKE 83,39:POKE 201,10:POKE 752,1:? 20 ? "FORMM}AT DUAL 2.5 DISK ON DR.1":? :? " PRESS START WHEN READY.":GOTO 80 30 REM STORE CURRENT SUCCESSFUL FORMATS+1 THEN SAYN} WHAT WE ARE UP TO. 40 F=F+1:? CHR$(125):? :? :? :? "FORMATTING DISK # ";F 50 TRAP 200:XIO 253,#7,34,0,"D1:":TRAP 40000:REO}M SET DRIVE # & START 55 POKE 66,1:? CHR$(253):POKE 66,0:REM RING BELL BUT NOT TOO LOUD 60 ? "DISK FORMATTED":? :POKE 7P}7,0:REM DISPLAY RESULTS 6 KIL ATTRCT MODE 70 ? "PRESS START TO FORMAT ANOTHER DISK":? "PRESS OPTION TO END THIS PROGRAM" 80Q} IF PEEK(53279)=6 THEN 40:REM INSTANT REPLAY 90 IF PEEK(53279)=3 THEN 300:REM THAT'S ALL FOLKS 100 GOTO 80:REM WHATCHAR} WANT?PRESSA BUTTON 180 REM A TRAP TO LINE 200 WAS SET IN LINE 50 FOR UNFORMATTABLE DISKS 190 REM ABORT BY TAPPING THE S}BREAK KEY IN MOST CASES 195 REM YOU MIGHT HAVE TO REMOVE THE DISK AND THEN TURN THE DRIVE OFF AND ON. 200 ? CHR$(253):? T}:? "I WAS UNABLE TO FORMAT THIS DISKETTE":? 210 BAD=BAD+1:F=F-1:GOTO 70:REM ONE LESS SUCCESSFUL FORMAT 300 ? CHR$(125):?U} :? F;" DISKS FORMATTED":? :? "UNABLE TO FORMAT ";BAD;" DISK(S)" 310 REM SAY WHAT WE ACCOMPLISHED AND LET BASIC TAKE OVER V} 320 ? :? "END OF PROGRAM FORMAT25":? :? "BASIC IS....":POKE 752,0 330 END | 9 '9`L:L: D:DUP.SYS:̩ 8N32200 REM " SCRNPRTT.SUB Ver 1.0 32210 REM " 02/26/85 - Bob Geayer 32220 REM " CIS ppn: 71425,463 32230 REM " User X}Group: JACS (NJ) 32240 REM VARIABLES: A, E, HOME, INVERSE, L, P 32245 REM " Dumps Graphics 0 screen to printer Y}(or other device) 32250 TRAP 32340:CLOSE #5:OPEN #5,8,0,"D2:TST":? #5:SOUND 0,0,0,0 32260 HOME=PEEK(88)+256*PEEK(89) 32270Z} FOR L=0 TO 23: FOR P=0 TO 39:A=PEEK(L*40+P+HOME) 32280 INVERSE=0:IF A>127 THEN INVERSE=1:A=A-128 32290 IF A<64 [}THEN A=A+32:GOTO 32310 32300 IF A>63 AND A<96 THEN A=A-64 32310 IF INVERSE THEN A=A+128:REM ********* Delete this l\}ine if your printer 32320 REM or interface can't handle inverse. 32330 ? #5;CHR$(A);:NEXT P:? #5:NEXT L:TRAP 40000:]}CLOSE #5:RETURN 32340 E=PEEK(195):L=PEEK(186)+256*PEEK(187):IF E<>138 THEN ? :? "ERROR ";E:LIST L:CLOSE #5:STOP 32350 ? "^}IS PRINTER ONLINE?": FOR A=15 TO 0 STEP -0.1:SOUND 0,120,10,A:NEXT A 32360 ? "IS INTERFACE ONLINE?": FOR A=15 TO 0 STEP _}-0.4:SOUND 0,120,10,A:NEXT A:GOTO L sound  graphics]6-c6- #% "4-1 D 6-%-%$/(>:%%0 REM ******************************* 1 REM * FROM 'COMPUTE!'S SECOND BOOK* 2 REM * OF ATARI.' THIS PGM WILL * 3 REM * a}PUT A MENU ON THE SCREEN & * 4 REM * LOAD BINARY DOS FILES FROM * 5 REM * BASIC. COMBINED WITH THE * 6 REM * 'AUTORN.b}ATR' IT MAKES A NICE* 7 REM * SYSTEM FOR YOUNG CHILDREN TO* 8 REM * PICK A PROGRAM AND RUN IT. * 9 REM ******************c}************* 10 REM LOADIT DEMO MENU 20 REM BY ROBERT E. ALLEGER 30 DIM LINE$(15),DIR$(12*64),DRIVE$(3),ML$(1) 40 REM * d}INITIALIZATION * 50 GRAPHICS 0:POKE 752,1 60 DRIVE$="D1:" 70 ? ,"MENU FOR DRIVE ";DRIVE$:? 80 GOSUB 5000:REM STORE LOADIe}T.OBJ 90 LINE$=DRIVE$:LINE$(4)="*.*" 100 DIR$(1,1)=" ":DIR$(12*64)=" " 110 DIR$(2)=DIR$ 120 CLOSE #1:OPEN #1,6,0,LINE$ 1f}30 TRAP 380:ENTRY=1:LINEFLAG=1 140 REM * READ THE DIRECTORY * 150 FOR FILENUMBER=1 TO 64 160 INPUT #1,LINE$ 170 IF LINE$(g}2,2)<>" " THEN 380 180 PD=ENTRY 190 REM * SCAN FILE NAME * 200 FOR PS=3 TO 10 210 IF LINE$(PS,PS)=" " THEN 240 220 DIR$(h}PD,PD)=LINE$(PS,PS) 230 PD=PD+1:NEXT PS 240 REM * CHECK FOR EXTENSION * 250 IF LINE$(11,11)=" " THEN 320:REM NO EXTENSION i} 260 DIR$(PD,PD)=".":REM APPEND DOT 270 PD=PD+1 280 REM * SCAN FILE EXTENSION * 290 FOR PS=11 TO 13 300 DIR$(PD,PD)=LINE$j}(PS,PS) 310 PD=PD+1:NEXT PS 320 REM * DISPLAY FILE NAME.EXT * 330 IF LINEFLAG=3 THEN PRINT :LINEFLAG=1 340 IF FILENUMBER<k}10 THEN PRINT " "; 350 ? FILENUMBER;" ";DIR$(ENTRY,ENTRY+11);" "; 360 LINEFLAG=LINEFLAG+1 370 ENTRY=ENTRY+12:NEXT FILENUMl}BER 380 REM * CHOOSE ONE * 390 PRINT :? "ENTER NUMBER OF FILE TO LOAD: "; 400 TRAP 390:INPUT N 410 IF N<1 OR N>FILENUMBERm}-1 THEN 390 420 LINE$=DRIVE$ 430 LINE$(4)=DIR$(N*12-11,N*12) 435 ? :? "IS THIS A MACHINE LANGUAGE PROGRAM? (Y/N)";:INPUn}T ML$ 437 IF ML$="Y" THEN 540 440 GRAPHICS 0:POSITION 2,10 450 ? " LOADING ";LINE$ 460 REM * SEE IF MACHINE LANGUAGo}E * 470 FOR PS=4 TO 12 480 IF LINE$(PS,PS+3)=".OBJ" THEN 540 490 NEXT PS 500 REM * LOAD BASIC PROGRAM 510 TRAP 530 520 p}RUN LINE$ 530 ERROR=PEEK(195):GOTO 560 540 REM * LOAD M.L. PROGRAM * 545 GRAPHICS 0:SETCOLOR 2,0,0:POSITION 2,10:? "LOADINq}G ";LINE$ 550 ERROR=USR(1536,ADR(LINE$)) 560 REM * SHOULDN'T BE HERE !! * 570 ? "ERROR #";ERROR;" ENCOUNTERED DURING LOAD"r} 580 END 5000 FOR A=1536 TO 1717:READ B:POKE A,B:NEXT A 5001 DATA 162,16,32,173,6,134,207,104,104,157,69,3,104,157,68,3,1s}69,4,157,74,3,169,3,157,66 5002 DATA 3,32,86,228,16,3,76,166,6,169,203,157,68,3,169,0,157,69,3,169,2,157,72,3,169 5003 DATAt} 0,157,73,3,169,7,157,66,3,32,86,228,16,6,192,136,240,92,208,96,169,255,197,203,208 5004 DATA 4,197,204,240,210,169,205,157,u}68,3,169,0,157,69,3,32,86,228,16,2,48,69,165,207,240 5005 DATA 14,165,203,141,224,2,165,204,141,225,2,169,0,133,207,165,203,v}157,68,3,165,204,157,69,3 5006 DATA 165,205,56,229,203,157,72,3,165,206,229,204,157,73,3,254,72,3,208,3,254,73,3,32,86 5007w} DATA 228,16,137,192,3,240,133,76,166,6,32,173,6,108,224,2,152,133,212,169,0,133,213,169,12 5008 DATA 157,66,3,32,86,228,96 x} 5009 RETURN 0 REM ******************************* 1 REM * FROM 'COMPUTE!'S SECOND BOOK* 2 REM * OF ATARI.' THIS PGM WILy}L * 3 REM * PUT A MENU ON THE SCREEN & * 4 REM * LOAD BINARY DOS FILES FROM * 5 REM * BASIC. COMBINED WITH THE * 6z} REM * 'AUTORN.ATR' IT MAKES A NICE* 7 REM * SYSTEM FOR YOUNG CHILDREN TO* 8 REM * PICK A PROGRAM AND RUN IT. * 9 REM ***{}**************************** 10 REM LOADIT DEMO MENU 20 REM BY ROBERT E. ALLEGER 30 DIM LINE$(15),DIR$(12*64),DRIVE$(3),ML|}$(1) 40 REM * INITIALIZATION * 50 GRAPHICS 0:POKE 752,1 60 DRIVE$="D1:" 70 ? ,"MENU FOR DRIVE ";DRIVE$:? 80 GOSUB 5000:}}REM STORE LOADIT.OBJ 90 LINE$=DRIVE$:LINE$(4)="*.*" 100 DIR$(1,1)=" ":DIR$(12*64)=" " 110 DIR$(2)=DIR$ 120 CLOSE #1:OPEN ~}#1,6,0,LINE$ 130 TRAP 380:ENTRY=1:LINEFLAG=1 140 REM * READ THE DIRECTORY * 150 FOR FILENUMBER=1 TO 64 160 INPUT #1,LINE$} 170 IF LINE$(2,2)<>" " THEN 380 180 PD=ENTRY 190 REM * SCAN FILE NAME * 200 FOR PS=3 TO 10 210 IF LINE$(PS,PS)=" " THEN} 240 220 DIR$(PD,PD)=LINE$(PS,PS) 230 PD=PD+1:NEXT PS 240 REM * CHECK FOR EXTENSION * 250 IF LINE$(11,11)=" " THEN 320:RE}M NO EXTENSION 260 DIR$(PD,PD)=".":REM APPEND DOT 270 PD=PD+1 280 REM * SCAN FILE EXTENSION * 290 FOR PS=11 TO 13 300 DI}R$(PD,PD)=LINE$(PS,PS) 310 PD=PD+1:NEXT PS 320 REM * DISPLAY FILE NAME.EXT * 330 IF LINEFLAG=3 THEN PRINT :LINEFLAG=1 340} IF FILENUMBER<10 THEN PRINT " "; 350 ? FILENUMBER;" ";DIR$(ENTRY,ENTRY+11);" "; 360 LINEFLAG=LINEFLAG+1 370 ENTRY=ENTRY+}12:NEXT FILENUMBER 380 REM * CHOOSE ONE * 390 PRINT :? "ENTER NUMBER OF FILE TO LOAD: "; 400 TRAP 390:INPUT N 410 IF N<1 }OR N>FILENUMBER-1 THEN 390 420 LINE$=DRIVE$ 430 LINE$(4)=DIR$(N*12-11,N*12) 435 ? :? "IS THIS A MACHINE LANGUAGE PROGRAM? } (Y/N)";:INPUT ML$ 437 IF ML$="Y" THEN 540 440 GRAPHICS 0:POSITION 2,10 450 ? " LOADING ";LINE$ 460 REM * SEE IF }MACHINE LANGUAGE * 470 FOR PS=4 TO 12 480 IF LINE$(PS,PS+3)=".OBJ" THEN 540 490 NEXT PS 500 REM * LOAD BASIC PROGRAM 510} TRAP 530 520 RUN LINE$ 530 ERROR=PEEK(195):GOTO 560 540 REM * LOAD M.L. PROGRAM * 545 GRAPHICS 0:SETCOLOR 2,0,0:POSITION} 2,10:? "LOADING ";LINE$ 550 ERROR=USR(1536,ADR(LINE$)) 560 REM * SHOULDN'T BE HERE !! * 570 ? "ERROR #";ERROR;" ENCOUNTER}ED DURING LOAD" 580 END 5000 FOR A=1536 TO 1717:READ B:POKE A,B:NEXT A 5001 DATA 162,16,32,173,6,134,207,104,104,157,69,3},104,157,68,3,169,4,157,74,3,169,3,157,66 5002 DATA 3,32,86,228,16,3,76,166,6,169,203,157,68,3,169,0,157,69,3,169,2,157,72,3},169 5003 DATA 0,157,73,3,169,7,157,66,3,32,86,228,16,6,192,136,240,92,208,96,169,255,197,203,208 5004 DATA 4,197,204,240,2}10,169,205,157,68,3,169,0,157,/EX DEL DEL LOADIT.FIX ?s0x DL 4"24(h(jV877208,,224,2<5 REM MIGHTY MAILER10 REM BY PHILIP BATE, Ph.D.15 REM EXTENSION ROUTINES BY BOB KLEMENC20 REM (c) 1987, ANTIC PUBLISHING3}0 FILELEN=FRE(0)-1100:DIM FILE$(FILELEN)40 DIM SUB$(255),RAND$(260),FILENAME$(14),EOL$(2),IO$(7),MSG1$(28),MSG2$(24),MSG3$(1}46)41 DIM AT$(1):AT$="@"60 MSG3$="Press '' to print envelopes or '' to print addressee on letter, or '' to print address}ee & @ data"61 MSG3$(LEN(MSG3$)+1)=". BE SURE PRINTER IS READY"370 START=RAND+2:GOSUB 1120:GOSUB 1191410 }IF A=32 OR A=65 OR A=69 OR A=84 THEN 3701040 IF A=69 OR A=65 OR A=84 THEN GOSUB 12201191 AT=0:AT=USR(ML,ADR(FILE$),LEN(FILE}$),ADR(AT$),LEN(AT$),START)1192 IF AT=0 OR AT>RAND THEN AT=RAND1230 ? CHR$(27);CHR$(195);"I/O ERROR #";PEEK(195):TRAP 40000}:CLOSE #4:FOR D=1 TO 250:NEXT D:GOTO 1301240 IF A=69 THEN ? #4;CHR$(27);"M";CHR$(40);FILE$(START,AT-1):? #4;CHR$(27);"M";CHR}$(0):CLOSE #4:RETURN 1250 IF A=65 THEN PRINT #4;CHR$(27);"M";CHR$(10);FILE$(START,AT-1):? #4;CHR$(27);"M";CHR$(0):CLOSE #4:R}ETURN 1251 IF A=84 THEN PRINT #4;CHR$(27);"M";CHR$(10);FILE$(START,RAND+1);CHR$(27);"M";CHR$(0):CLOSE #4:RETURN ZZZZZZZZZZZ}ZZZZZZZZZZZZZZZZZZZZZZZZZZZ`P;%+ @)"@)"@,16-@; ApZ! A@ A! Ad 10 DIM PERSON$(200,10):POKE 16,64:POKE 53774,64 20 DEFINT A-Z 30 'THIS IS A PROGRAM DESIGNED TO 40 'CREATE A DATA BASE A }ND SORT,LIST 50 'AND CHANGE IT 60 GRAPHICS 17 70 FOR I=1 TO 5:PRINT #6," ":NEXT 80 PRINT #6,"WELCOME TO MULTISORT" 90 PR }INT #6," ":PRINT #6," by":PRINT #6," " 100 PRINT #6," michael l. hooper" 110 FOR I=1 TO 5000:NEXT 120 GRAPHICS 0:P }OKE 752,1 130 ON ERROR 2730 140 PRINT "WHAT TIME IS IT?":PRINT 150 PRINT "PLEASE ENTER IN THIS FORMAT HOUR:MINU }TES:SECONDS EXAMPLE = 12:38:59 160 INPUT T$:IF T$<>"" THEN TIME$=T$ ELSE TIME$="00:00:00" 170 GRAPHICS 17: }POKE 16,64:POKE 53774,64 180 PRINT #6,"please choose one:" :PRINT #6," " 190 PRINT #6,"i-INITIATE NEW FILE 200 PRINT #6," }" 210 PRINT #6,"r-READ FROM DISK 220 PRINT #6," " 230 PRINT #6,"t-TERMINATE PROGRAM" 240 PRINT #6," " 250 PRINT #6,"s-SO }RT THE LIST" 260 PRINT #6," " 270 PRINT #6,"l-LIST ALL ITEMS" 280 PRINT #6," " 290 PRINT #6,"f-FIND AN ITEM" 300 PRINT # }6," " 310 PRINT #6,"a-ADD AN ITEM" 320 PRINT #6," " 330 PRINT #6,"e-ERASE AN ITEM" 340 PRINT #6," " 350 PRINT #6,"c-CHAN }GE AN ITEM" 360 PRINT #6," ":PRINT #6,"d-DISK DIRECTORY 370 PRINT #6,AT(10,23);TIME$ 380 IF TIME$="24:00:00" THEN TIME$="0 }0:00:00" 390 CHOICE$=INKEY$:IF CHOICE$="" THEN 370 400 GRAPHICS 0:POKE 752,1 410 IF CHOICE$="I" THEN 520 420 IF CHOICE$= }"R" THEN 730 430 IF CHOICE$="F" THEN 930 440 IF CHOICE$="S" THEN 1180 450 IF CHOICE$="L" THEN 1410 460 IF CHOICE$="T" } THEN 1590 470 IF CHOICE$="C" THEN 1770 480 IF CHOICE$="E" THEN 2030 490 IF CHOICE$="A" THEN 2290 500 IF CHOICE$="D" }THEN 2430 510 GOTO 170 520 SETCOLOR 6,13,10:SETCOLOR 5,0,0:SETCOLOR 8,13,10: ! INITIATE A NEW FILE 530 INPUT "HOW MANY } FIELDS? ";N$:NUMBEROFIELDS=VAL(N$):IF NUMBEROFIELDS>10 OR NUMBEROFIELDS<1 THEN 530 540 FOR I=1 TO NUMBEROFIELDS 550 PRINT }"NAME OF FIELD #";I; 560 INPUT FIELDNAME$(I) 570 IF FIELDNAME$(I)="" THEN 550 580 NEXT 590 I=1 600 PRINT :PRINT "INPUT ' }DONE' TO QUIT.":PRINT 610 FOR J=1 TO NUMBEROFIELDS 620 PRINT FIELDNAME$(J);" OF ITEM #";I; 630 INPUT PERSON$(I,J) 640 IF } PERSON$(I,J)="DONE" THEN 680 650 NEXT 660 I=I+1 670 GOTO 600 680 NUMBEROFPERSONNEL=I-1 690 PRINT "YOU HAVE INPUT ";NUMB }EROFIELDS;" FIELDS ON ";NUMBEROFPERSONNEL;" ITEMS" 700 PRINT:PRINT "PUSH ANY KEY TO RETURN TO MENU" 710 IF INKEY$="" THEN 7 }10 720 GOTO 170 730 SETCOLOR 6,3,10:SETCOLOR 5,0,0:SETCOLOR 8,3,10:ON ERROR GOTO 2740:! READ FROM DISK 740 PRINT "WH }AT IS THE NAME OF THE FILE";:INPUT CHOICE$:CHOICE$="D:"+CHOICE$ 750 OPEN #4,CHOICE$ INPUT 760 INPUT #4,NUMBEROFIELDS 770 F }OR I=1 TO NUMBEROFIELDS 780 INPUT #4,FIELDNAME$(I) 790 NEXT 800 I=1 810 FOR J=1 TO NUMBEROFIELDS 820 INPUT #4,PERSON$(I, }J) 830 IF PERSON$(I,J)="DONE" THEN 870 840 NEXT 850 I=I+1 860 GOTO 810 870 NUMBEROFPERSONNEL=I-1 880 PRINT :PRINT "YOU }HAVE";NUMBEROFPERSONNEL;"ITEMS IN MEMORY,":PRINT "WITH";NUMBEROFIELDS;"FIELDS OF INFO EACH" 890 PRINT :PRINT "PRESS ANY KEY } TO RETURN TO MENU" 900 IF INKEY$="" THEN 900 910 CLOSE #4 920 GOTO 170 930 SETCOLOR 6,4,8:SETCOLOR 5,0,0:SETCOLOR 8,4,8: }! FIND AN ITEM 940 FOR I=1 TO NUMBEROFIELDS 950 PRINT I;"- ";FIELDNAME$(I) 960 NEXT 970 PRIN }T:INPUT "SEARCH WHICH FIELD? ";F$:FIELDKEY=VAL(F$):IF FIELDKEY<1 OR FIELDKEY>NUMBEROFIELDS THEN 970 980 INPUT "WHAT IS THE S }EARCH KEY? ";KEY$ 990 PRINT "OUTPUT TO SCREEN OR PRINTER (S/P)?"; 1000 A$=INKEY$ 1010 IF A$="S" THEN OPEN #7,"E:" OUTPUT:A }=1:SETCOLOR 6,4,08:SETCOLOR 5,0,0:SETCOLOR 8,4,08:POKE 752,1:GOTO 1040 1020 IF A$="P" THEN OPEN #7,"P:" OUTPUT:A=0:GOTO 1040 } 1030 GOTO 1000 1040 FOR I=1 TO NUMBEROFPERSONNEL 1050 IF LEFT$(PERSON$(I,FIELDKEY),LEN(KEY$))=KEY$ THEN 1100 1060 NEXT }1070 PRINT :PRINT "WE HAVE GONE THROUGH THE ENTIRE LIST":PRINT:PRINT 1080 PRINT "DO YOU WANT TO GO THROUGH AGAIN?(Y/N) ";:CL }OSE #7 1090 A$=INKEY$:IF A$="Y" THEN 940 ELSE IF A$="N" THEN 170 ELSE 1090 1100 FOR J=1 TO NUMBEROFIELDS 1110 PRINT #7,FIE }LDNAME$(J);"-";PERSON$(I,J) 1120 NEXT 1130 PRINT #7,STRING$(38,"="):IF A=0 THEN 1060 1140 IF A=1 THEN PRINT "PUSH ANY KEY }TO CONTINUE" 1150 PRINT STRING$(38,"=") 1160 IF INKEY$="" THEN 1160 1170 GOTO 1060 1180 SETCOLOR 6,7,8:SETCOLOR 5,0,0:SET }COLOR 8,7,8:! SORT THE LIST 1190 J=NUMBEROFPERSONNEL:PRINT 1200 FOR I=1 TO NUMBEROFIELDS 1210 PRINT I,FIELDNAME$(I) }1220 NEXT 1230 PRINT 1240 PRINT "SORT BY WHICH FIELD"; 1250 INPUT C$:CHOICE=VAL(C$):IF CHOICE<1 OR CHOICE>NUMBEROFIELDS TH }EN 1250 1260 PRINT :PRINT "SORTING" 1270 FOR I=1 TO NUMBEROFPERSONNEL-1 1280 IF PERSON$(I,CHOICE)>PERSON$(I+1,CHOICE) THEN } GOSUB 1350 1290 NEXT I 1300 J=J-1:IF J>0 THEN 1260 1310 PRINT :PRINT "ALL DONE" 1320 PRINT :PRINT "PRESS ANY KEY TO RETU }RN TO MENU" 1330 IF INKEY$="" THEN 1330 1340 GOTO 170 1350 FOR K=1 TO NUMBEROFIELDS 1360 QAVE$=PERSON$(I,K) 1370 PERSON$ }(I,K)=PERSON$(I+1,K) 1380 PERSON$(I+1,K)=QAVE$ 1390 NEXT K 1400 RETURN 1410 SETCOLOR 6,11,6:SETCOLOR 5,0,0:SETCOLOR 6,11, }6:! LIST ALL ITEMS 1420 PRINT "OUTPUT TO SCREEN OR PRINTER (S/P)?"; 1430 A$=INKEY$ 1440 IF A$=" }S" THEN OPEN #7,"E:" OUTPUT:A=1:SETCOLOR 6,11,6:SETCOLOR 5,0,0:SETCOLOR 8,11,6:GOTO 1470 1450 IF A$="P" THEN OPEN #7,"P:" OU }TPUT:A=0:GOTO 1470 1460 GOTO 1430 1470 FOR I=1 TO NUMBEROFPERSONNEL 1480 FOR J=1 TO NUMBEROFIELDS:POKE 752,1 1490 PRINT # }7, FIELDNAME$(J);"-";PERSON$(I,J) 1500 NEXT J 1510 PRINT #7, STRING$(38,"="):IF A=0 THEN 1550 1520 PRINT "PRESS ANY KEY TO } CONTINUE LISTING" 1530 IF INKEY$="" THEN 1530 1540 PRINT #7, STRING$(38,"=") 1550 NEXT I 1560 CLOSE #7:PRINT :PRINT "YOU } HAVE GONE THROUGH THE WHOLE LIST" 1570 PRINT "DO YOU WANT TO DO IT AGAIN (Y/N)? "; 1580 A$=INKEY$:IF A$="Y" THEN 1410 ELSE } IF A$="N" THEN 170 ELSE 1580 1590 SETCOLOR 8,11,6:SETCOLOR 6,11,6:SETCOLOR 5,0,0:! WRITE TO DISK } 1600 PRINT "WHAT DO YOU WANT TO NAME THE FILE?":INPUT CHOICE$ 1610 CHOICE$="D:"+CHOICE$ 1620 OPEN #4,CHOICE$ OUTPUT 1630 } PRINT #4,NUMBEROFIELDS 1640 FOR I=1 TO NUMBEROFIELDS 1650 PRINT #4,FIELDNAME$(I) 1660 NEXT I 1670 FOR I=1 TO NUMBEROFPER }SONNEL+1 1680 FOR J=1 TO NUMBEROFIELDS 1690 PRINT #4,PERSON$(I,J) 1700 NEXT J 1710 NEXT I 1720 PRINT :PRINT "ALL DONE":C }LOSE #4 1730 PRINT 1740 PRINT "DO YOU WANT TO GO BACK TO THE MENU?"; 1750 A$=INKEY$:IF A$="Y" THEN 170 ELSE IF A$="N" THEN } 1760 ELSE GOTO 1750 1760 GRAPHICS 0:PRINT "OK-Goodbye....":NEW:END 1770 SETCOLOR 6,9,8:SETCOLOR 5,0,0:SETCOLOR 8,9,8:! } CHANGE AN ITEM 1780 FOR I=1 TO NUMBEROFIELDS 1790 PRINT I,FIELDNAME$(I) 1800 NEXT 1810 PRINT:PR }INT "WHICH FIELD TO SEARCH";:INPUT CHOICE:IF CHOICE<0 OR CHOICE>NUMBEROFIELDS THEN 1810 1820 INPUT "WHAT IS THE SEARCH KEY? }";KEY$ 1830 FOR I=1 TO NUMBEROFPERSONNEL 1840 IF LEFT$(PERSON$(I,CHOICE),LEN(KEY$))=KEY$ THEN 1870 1850 NEXT 1860 PRINT " }WE HAVE GONE THROUGH THE ENTIRE LIST":PRINT:GOTO 2000 1870 PRINT STRING$(38,"=") 1880 FOR K=1 TO NUMBEROFIELDS 1890 PRINT }FIELDNAME$(K);"-";PERSON$(I,K) 1900 NEXT 1910 PRINT :PRINT "IS THIS THE CORRECT ITEM? " 1920 A$=INKEY$:IF A$="N" THEN 1850 } ELSE IF A$<>"Y" THEN 1920 1930 PRINT :FOR K=1 TO NUMBEROFIELDS 1940 PRINT K,FIELDNAME$(K) 1950 NEXT 1960 PRINT :PRINT "C }HANGE WHICH FIELD";:INPUT C$:CHOICE=VAL(C$):IF CHOICE<0 OR CHOICE>NUMBEROFIELDS THEN 1960 1970 INPUT "WHAT IS IT TO BE CHANG }ED TO? ";CHOICE$ 1980 PERSON$(I,CHOICE)=CHOICE$ 1990 PRINT :PRINT "OK-IT IS NOW CHANGED" 2000 PRINT :PRINT "PRESS ANY KEY }TO RETURN TO MENU" 2010 IF INKEY$="" THEN 2010 2020 GOTO 170 2030 SETCOLOR 5,8,10:SETCOLOR 6,0,0:! ERASE AN ITEM 204 }0 FOR I=1 TO NUMBEROFIELDS 2050 PRINT I,FIELDNAME$(I) 2060 NEXT 2070 PRINT 2080 PRINT "CHOOSE FROM WHICH FIELD";:INPUT C$ }:CHOICE=VAL(C$):IF CHOICE<0 OR CHOICE>NUMBEROFIELDS THEN 2080 2090 PRINT:PRINT "WHAT IS THE SEARCH KEY";:INPUT CHOICE$:PRINT } 2100 FOR I=1 TO NUMBEROFPERSONNEL 2110 IF LEFT$(PERSON$(I,CHOICE),LEN(CHOICE$))=CHOICE$ THEN GOTO 2140 2120 NEXT 2130 P }RINT:PRINT "WE HAVE GONE THROUGH THE ENTIRE LIST":GOTO 2260 2140 PRINT :FOR J=1 TO NUMBEROFIELDS 2150 PRINT FIELDNAME$(J);" }-";PERSON$(I,J) 2160 NEXT 2170 PRINT STRING$(38,"=") 2180 PRINT :PRINT "DELETE THIS ITEM (Y/N)?" 2190 A$=INKEY$:IF A$="N" } THEN 2120 ELSE IF A$<>"Y" THEN 2190 2200 FOR K=I TO NUMBEROFPERSONNEL 2210 FOR J=1 TO NUMBEROFIELDS 2220 PERSON$(I,J)=PER }SON$(I+1,J) 2230 NEXT 2240 NEXT 2250 PRINT "OK-ITEM DELETED":NUMBEROFPERSONNEL=NUMBEROFPERSONNEL-1 2260 PRINT :PRINT "PRE }SS ANY KEY TO RETURN TO MENU" 2270 IF INKEY$="" THEN 2270 2280 GRAPHICS 17:GOTO 180 2290 SETCOLOR 6,8,12:SETCOLOR 5,0,0:SE }TCOLOR 8,8,12: ! ADD AN ITEM 2300 J=NUMBEROFPERSONNEL+1 2310 FOR I=1 TO NUMBEROFIELDS 2320 PR }INT "WHAT IS THE ITEM'S ";FIELDNAME$(I);:INPUT CHOICE$ 2330 PERSON$(J,I)=CHOICE$ 2340 IF CHOICE$="DONE" THEN 2370 2350 NEX }T 2360 J=J+1:PRINT :GOTO 2310 2370 NUMBEROFPERSONNEL=J-1 2380 PRINT :PRINT "OK-NEW ITEM(S) ADDED" 2390 PRINT :PRINT "PRE }SS ANY KEY TO RETURN TO MENU" 2400 IF INKEY$="" THEN 2400 2410 GRAPHICS 17:GOTO 180 2420 END 2430 ON ERROR 2680:SETCOLOR }8,3,12:! DISK DIRECTORY 2440 PRINT "DISK DIRECTORY":PRINT :OPTION RESERVE(200) 2450 OPEN #1,"D:CIOUS }R" INPUT 2460 ADDR=VARPTR(RESERVE) 2470 FOR I=0 TO 159 2480 GET #1,D:POKE ADDR+I,D 2490 NEXT I 2500 CLOSE #1 2510 PUTIO }CB=ADDR 2520 CALLCIO=ADDR+61 2530 GETIOCB=ADDR+81 2540 DIM IOCB%(10) 2550 IOCB%(0)=1 2560 IOCB%(1)=3 2570 IOCB%(5)=6 2 }580 FSPEC$="D:*.*" 2590 Z=VARPTR(FSPEC$) 2600 Y=VARPTR(IOCB%(3)) 2610 POKE Y,PEEK(Z+2) 2620 POKE Y+1,PEEK(Z+1) 2630 Z=US }R(PUTIOCB,VARPTR(IOCB%(0))) 2640 Z=USR(CALLCIO,VARPTR(IOCB%(0))) 2650 INPUT #1,S$ 2660 PRINT S$ 2670 GOTO 2650 2680 CLOS }E #1:RESUME 2690 2690 PRINT :PRINT "PRESS ANY KEY TO RETURN TO MENU" 2700 IF INKEY$="" THEN 2700 2710 GOTO 170 2720 !ERRO }R MESSAGES 2730 PRINT "I AM AFRAID YOU HAVE MADE AN ERROR. LETS START IT OVER AGAIN.":FOR I=1 TO 2000:NEXT I:RESUME 130 2 }740 PRINT "I AM AFRAID YOU HAVE MADE AN ERROR. LETS START IT OVER AGAIN.":FOR I=1 TO 1000:NEXT I:RESUME 730 A$ o 60500 REM BASIC PROGRAM LISTER 60510 REM -- written by Gary Foster 74076,237 60520 REM ================== 60530 REM T$}he purpose of this program is to print a BASIC program 60535 REM that is stored on disk in listed format. 60540 REM 60550$} REM This program has several features not offered by the 60555 REM LIST"P: command. 60560 REM 60570 REM <1> the top of$} each page will contain the program name, the 60575 REM version number, date of the listing, and page number. 60580 RE$}M 60590 REM <2> all printing is indented 10 spaces from the left margin 60595 REM to allow punching for notebooks 60$}600 REM 60610 REM <3> this program will print six blank lines at the top and 60615 REM bottom of each page 60620 REM$} (in other words, it will skip over page perforations). 60630 REM 60640 REM <4> this program will indent continuation$}s of lines that 60645 REM are longer than your printer can accommodate. 60650 REM If you have a wide carriage pri$}nter, set variable LL in 60655 REM line 60730 to 132. 60660 REM 60670 REM This program requires Microsoft Basic to e$}xecute ---- 60675 REM but it will print Atari Basic, Microsoft Basic, and other 60680 REM programs with line numbers 607$}00 REM ================== 60710 CLS:PRINT "PROGRAM LISTER":PRINT:PRINT 60720 INPUT "Enter today's date: ";DATE$:PRINT 6073$}0 LC=0:PN%=1:LP=54:LM=10:LL=80 60740 PRINT"Enter file name (D?:NAME.EXT)" 60750 INPUT A$:GOSUB 61020 60760 IF F%=0 THEN P$}RINT:PRINT"** END OF FILE **":GOTO 61070 ELSE F$=A$ 60770 INPUT "Enter program version no: ";V$ 60780 SP%=1:OPEN #1, A$ INP$}UT:OPEN #3,"P:" OUTPUT 60785 PRINT #3,CHR$(12):INPUT "Is paper properly positioned? ";X$ 60790 IF X$<>"Y" THEN 60785 60800$} GOSUB 60900 60810 IF EOF(1) THEN 60890 60820 LINE INPUT #1,A$ 60830 IF A$="" THEN 60820 60840 L=INSTR(A$,CHR$(32)) 6085$}0 LN$=LEFT$(A$,L):LN=VAL(LN$) 60860 GOSUB 60940 60870 IF LC>=LP THEN GOSUB 61010:GOTO 60800 60880 GOTO 60810 60890 CLOSE $}#1:GOSUB 61010:PRINT:GOTO 61070 60900 IF EOF(1) THEN RETURN 60910 PRINT #3,TAB(LM) "Program Name - ";F$;" Version: ";V$;$}TAB(LL-20) DATE$;TAB(LL-7) "Page "; 60920 PRINT #3, USING "##";PN%:PN%=PN%+1 60930 FOR I=1 TO SP%*2:PRINT #3, " ":NEXT I:LC$}=1+SP%*2:RETURN 60940 PRINT #3, TAB(LM); 60950 PRINT #3, USING "##### ";LN; 60960 J=LEN(STR$(LN)):A$=RIGHT$(A$,LEN(A$)-J) $} 60970 K=LL-LM-6 60980 FOR I=1 TO LEN(A$) STEP K 60990 PRINT #3,TAB(LM+6) MID$(A$,I,K):LC=LC+1 61000 NEXT I:RETURN 61010 $}FOR I=1 TO 66-LC:PRINT #3," ":NEXT I:LC=0:RETURN 61020 REM See if file exists 61030 I=1:F%=1:ON ERROR GOTO 61040:OPEN #1, A$}$ INPUT:CLOSE #1:ON ERROR GOTO 0:RETURN 61040 PRINT:RESUME 61050 61050 PRINT "** FILE NOT FOUND **":PRINT 61060 LINE INPUT$} "Enter new file name: ";A$:GOTO 61020 61070 END Y/N(** current will die **&6-F:Ad,&"AUAX$450 REM -- XL VERSION -- 100 OPEN #1,8,0,"D1:SWAPDOS.OBJ" 110 TRAP 200 120 READ X 130 PUT #1,X 140 GOTO 120 200 CLOSE #1)} 1000 DATA 255,255,0,64,57,64,169,0,141,14 1010 DATA 212,120,169,0,141,0,212,173,1,211 1020 DATA 41,254,141,1,211,162,0,18)}9,124,29 1030 DATA 157,0,224,232,208,247,238,23,64,238 1040 DATA 26,64,173,23,64,201,52,208,232,173 1050 DATA 1,211,9,1,14)}1,1,211,169,64,141 1060 DATA 14,212,88,96,226,2,227,2,0,64 1070 DATA 115,24,117,24,160,1,96,247,23,249 1080 DATA 23,76,117)},32,70,23,143,23,169,0 1090 DATA 141,14,212,120,141,0,212,173,1,211 1100 DATA 41,254,141,1,211,169,29,141,107,23 1110 DATA)} 141,114,23,169,224,141,111,23,141,118 1120 DATA 23,162,0,189,124,29,168,189,0,224 1130 DATA 157,124,29,152,157,0,224,232,2)}08,239 1140 DATA 238,107,23,238,111,23,238,114,23,238 1150 DATA 118,23,173,107,23,201,52,208,218,76 1160 DATA 66,25,63,25,)}82,25,76,70,23,173 1170 DATA 1,211,9,1,141,1,211,169,64,141 1180 DATA 14,212,88,160,1,96,0 ϠԠ Y/N|( filespe(^cs ~&6-F:Ad,&"AUA$AdAU!"@C$$ ' $Š렪"( % } S A V E(" A! A A`! A@2 @@2A@&&6-?:<@% }<Av<<@,(@(@*(@(@*(@(@(@(% }@(@(@(@(@(@ @ A@ A% } AP$Ġ렪!( L O A D(! A! A A`! A@& 6.&@% }@&&6-?:<@<Av<<@,@@*@@*@%}@@@@@@@@%}@ A! A  A0! A@ A 6-@$ԠԠ( PRINT IT%} ($!( 7@,$(%%( 1-LEFT 2-RIGHT&6-F:Ad,&"AUA dA%}dAU A@@1*@0$.@.@@P:ś%%(@%}>:@',>:@d,ś"@0(@))(@>:@, 7@,ԠŠ%}ě//(@>:@',>:@Q,>:@,6-%A$@@-@96-%%-@A%}%6-&@@67<,.>:F:,, "@0(@<<(@>:@',>%}:@u,>:A,>:, @$LĠĠN-@@(P-@@%}$V-@@XAB@ZAB@$`ͤb A(MAG:d A%}6.$jŤl An(EYE:,,p A6.$tɤv Ax%}##([,]*[,]z A6.$~ڤ) A-@@)A  A%}6.7@,$&&6-?:<@2<@,,($蠳Ġ ^^^^^^^^^^^^^^^^^@%%( Paul Chabot %)} 1985B,,($ݠȠԠ ٠D([O] Option 0 F([F] Function H([M] M%*}agnification J([E] Eye Position L([C] Center Screen N([I] Intervals P([N] Partition sizeR%+}([R] Recover last T(ɠϠ V([L] Load [S] SaveX([P] Print [D] Dir.Z(OoOoOoOoOoOo%,}OoOo\,,($ݠ堯f AP$z| A!( ~ ( $%-}-@@( #-@@!#-@ ( -@@$%.}Š((6-?:C: hhh`,<Bpr&C:,,ZZ6.Ph hh`hhhhhhhheX֥Yeׅטi@֥i׈%/}ݠܱؠcc67@,.PՊ)`@ @ ڊ)څک*mۤݱEդܑȄжi(֐ݩJJ67Aa%0},.7П``@ԩhhh i hԈhԈhԈhԈhhLV36-@$6-A6'6-A36-APM6-6@%1}6-@)6-6@56-@A6-@M6-@?6-@6-@'6-@36-A`?6-A%2}9<,9<,9<,11;@x,;@,;@,;@ ,&&;@x,;@x,;@,;A%3},;@8,+ 6. 67@8,. +67@,.6. D:SAMPLE.G3D! A A! A!! A %4} A0! A@/ AP6-@%6-/ A 6. $ D:GR* A! A!! A $`@hGLDG7G'ApAAC@;DHED*FG(G`GHH'2!0()#354),)49"9$!2%+-)(/#+!)Ϊ)@%υI9@ͦ"ˠ JJ)6}JiGֽ)Hױ%͑`??)ˆ݅˥-&Aߥ-&AEeх I@˥2. I@)7}eхLAץ֥͑eх I@LA`hhhnAhhhhhhޭnAݐݎnAݥސކ̅ޭnA @̥nA @`h)8}AAAAHHAHHAHhJLI@AAhhhh̅LAA˭A̅hBhݍAhhލA AA`L@LBˆ)9}˥̤ޅބ̄8ˍBH̅FBhFNBB8̰ HBhIiB BHBB۩Bhi BBک捷BBFffڥۍB):}ڍBBIڥI۩ƍBBB* I@eڅeۅ̥  I@LB I@LB`8B.BB*();}BLBmBmB.B`ސޅބ I@ I@`hhhhhhhBB BHBBh BBکeڅeۅ$)<}08̽E@BN@ejnBD%eݥ8 @e̥8 @LVC̥e I@8 I@LVCe)=} C8 CLC8˥8 @eݥe @`hhh$E)DΩꍍCC+D)>}JCLsDJCL^D L`D&EFE6E&AFl@D Gъ $E lE$E) 0A:$E)0G$E)HE G lEh EE$Eʱ)E ) )?}Eֈ`GXeЅiGY)HmFEiGi)H` ( ((((((((hh!h hh.)@} e ԝЭ.`H` B V`BDEEhK)IJ V0֭1נ֍E`S:)A}~}|{{zyxwvutsrqonmlkihgfdca`^][ZXVTRQOLJHFCA><952.+&!hhhhhhhhh֥ױքH)`JJJ)B}JJFh)߅ک&&&&&&ۥڅ֥iנe̪JJ}iGԽ)Hiե)օةffF1EؑȭF1EّԤ)C}˥ɘ8阅˥iɸLAF`@ `hhhhhLI@hhh@`h ҝ@`XԥYՠ)D}'!@Ԉϩ$`$Ζ@@ `hhhhhLI@hhh@`h ҝ@`XԥYՠ("0wSTARVBBOLINCIRCLC12CIRTEXGRAPHICCOLODRAWTPLOTUSECOTYPRANDOHOROFFSESETCOLOKBc-F}BfyBgBqBw6Bt2BybBw6 Btg @Q Be& @1 BgRB@9A-G}A Bw6@BB1ABr ##GRAPHICS UTILITY PACKAGE DEMO-H}BY DAREK MIHOCKA (c) 1985, ANTIC PUBLISHING(6-Bc*F:,"@v@P,TA@fT(:} -I} G.U.P. Machine Language routines are not in memory!.f(c(X This demo cannot RUN without theseroutines. See article-J} for additional information.f2))6-F:%@,%AV$F:%@,<))6-F:%@,%AV$F:%@,F))-F:%-K}@,%AV$F:%@,P))6-F:%@ ,%AV$F:%@,Z))6-F:%@,%AV$F:%@,d))-F:%@-L},%AV$F:%@,n))-F:%@,%AV$F:%@,x))6-F:%@,%AV$F:%@,))6-F:%@-M},%AV$F:%@ ,))6-F:%@!,%AV$F:%@",))-F:%@#,%AV$F:%@$,))-F:%@%-N},%AV$F:%@&,))-F:%@',%AV$F:%@(,6-ABEGIN MAIN PROGRAM A -O}@&6-?:<@,&ARAU..(&}The same routine in GR.15 with G.U.P.U,($using multiple parameters f-P}or speed.U6-?:<@<@<@<@,I-@y@-6-'@;6-AY&I6-AY&-Q} 6-?:<<<<<<<<<<, ARAU--(%}Twice the pixels in half the time...",,($How about some mu-R}lti-color displays?,S,6-?:<Ad<@)<A4<Ae,6 A`S-@y6@66-?:<<<<AY-S}&,@,,6-?:<AY&<AY&<AY&<,J T A^&6-?:<@,&ARAUh**("}And now, -T}the Super Fast CIRCLE...rFF(>30 CIRCLES DRAWN IN 4.8 SECONDS (6 CIRCLES PER SECOND!)|-@@0 6--U}?:,((6-?:<@`%<@`%<@`,  A6-?:<@,.ARAU.(More fast circl-V}es... -@@6@>6-F:@ ,#6-?:<<<<,>6-?:<@y<@y<,O,6-?:<<-W}<<,O6-?:<@y<@y<&@,  A&6-?:<@,&ARAU,,($} And -X}now, some more LINE drawing...-@p A`@@6-?:<<<%@y<<%@y<%@y<<%@y-Y}<<,&:,6-?:<<<<,:6-%@0@@6-?:<<<%@y<<%@y<%@y<<%@y<<-Z},: D ANP6-?:<@,&ARAUP(%}Of course, circles can be left emptyX A`b-[}l-@P@v,,6-?:<Ap<Ap<Ap<Ap,&&6-?:<%@E<@y<@`,,,6-\}-?:<<<<,&&6-?:<%@F<@y<@`, 0 A6-?:<@,0ARA-]}U (} THE BOX...6-@p%6-@$66-?:<<<<,($6-?:<<<AY&<AY&-^},(  A +@ARAU--(%}How about mixed text and graphics???)-@%%-_}AU) -@@P]]6-?:CC6-?:<@(<@2=+;:*-^L P,-@,( 1234567890\/?]|[{_QK-@( !-@'( 3-@9  1}}E-@K( R A SAR@TBT:," 2-@@@6 B  V!1~}"@4 }!6-Z=6-%@6-%@3"A@= @5[ @5c2@@'1}@@82%D:MENU|-;2$@@@O-@@q21}u y |$|-;2$@@@O-@@q21}u y |$0ui;AP,!6-C:,%APD6-+P:'A$,%@,$A$X;&,;A$,i6-C:,'AV1}urr6.he  ̍?o   |u 6.1}urr6.hpp08 v< {>  N|P<88p@u67B:1},%@,.urr6.hv<`0 ??p?88 z Dfff~ff<<f<flxlff`````~cwkccfv~~nf:AU,uMM6.C  ;<| 80~acgcu67B:,%@,.u1}rr6.hpp088 83>u67B:,%1}@,.urr6.h;W y З l1}u67B:,%@,.urr6.h00><8<0p` 80`p?>1} ? u67B:,%@,.ubb6.X 0|88~l01}u67B:,%@,.uAV$D:HORSE8~l00?'(q MAINPICMALHSSLHSLSHCC5} LLϠҠŠҢà5}宠ӪЪêŠ &&;AB,;@,;@U,AA6.7h01DZ)ʊXiYi5}`@@6.6hBDEHI  <(OO67@U,.<   5} ĩ2OO67A,.:AU,FQQ67A),.>`RɥPee`/5}eePGG67A,.4(eeЕeeZ%-A6AV"!5}% dGG162,16,169,1,157,72,3,169,0,157,73,3,32,86,228,48,1,96,104,104,96ns+@%@$6-F:A`,36-F:A5}a,B6-F:@,Q6-F:@,]6-?:C:,,sàŢxA&@!+3AR@EA5} AHT6-F:A`,c6-F:Aa,r6-F:@,6-F:@,c-(%+ϠҠŠҠ+H(5}c(->5 (or5($ to return to loaded pictureg)(!When viewing the 5}picture, press:Q(# to return to this screen.g( Ԡ to quit.'AAH'A A65}@-@@K66.D:A@ -@$@2AR7(A A (>:,5} 6-B:,AdAUDF:B2y,"@$A 0A: AD A@ F:Ad,"AUA5}$)@$"AUAp[ @=!@d* @)+*!@E* @Y,Q67%@,.>:,[ A5}'"A&67,.' A AAR@(,* Ap*@@5}6 A@E A`6-?:C:,,$@E䠦J!6-F:A ,!6-F:A,T9F:5}B2y,"@,A%@26+9^ F:B2y,@A@hu@@--@&@5}@( LA`XAab A`ul@@'A`3Aa65}$làà堢ŢD:MILOADl@@'A`3Aa64Hq./TEMPNSPITCSCNCCNSUSCXPONTYPOYPRNTWTTEMMOVCLRESTYPNTIDOSNDESCCHSELECKEYCHOR9}SRSCHRBASPMBASFIRSTTIMNSCALECCFOSOSICIDLDHDLDH9} 9} !"#$%&9}'()*+,-./01234569}7 KKŠΠᬠà糷à堵qqź9}報婠򮠛 AP2F:@ , @P<6-F:9}Ad,$c$$d> -&6-@:7,,%"AT+17; >$n["AU9}@:7%,,+@:7%,,?@:7%@,,M6-%@Q [ Ax;6-!A(#6-&A(/"A%;69}-A(" @ "(Ap!@ AP{6.BBT6-@:7,,+6-!A1/=6-&A9}(O67@,.PT[!@ri6-&@r{67@,.bTK6.7&,A6-?:C:,:%A(,/9}67@,.>:,E @)A@J67@,.`%67@,.1!@ B67@ ,.`S67@ ,._9}"@2p67@,.`67@,.T)67@,.)67@,.L^)67@,.)67@,.s9}hI6-@&@ $767@,.>:%A(,I67@,.>:,r%67@,.%67@,.|6.7%+(,9},HH6-?:C:,:AT%,"6.+67,.467,.7$!-&@ ( !$*@A9}'B7tA*$9@K-A@d9AAdAU$Q6-@69}-6-!6-'6-66. quarterB6-@Q:6.BBT76.:$L#9}6-C:.9/5 >Z#( -?!6*,7%@@4L좠!!ΠТ" 6-R:,""@9})A07"@!@#6-&- A7 A7"@ @#6-%- A7 A9}O6-F:Ad,AU0AdAUE6-?:<<@"<,O A`(T:,A & A9}0(A:AAAA A0A@APA`ApAAA9}AA0AAAAAAAA CD! 6-6. whole! A9}MNa 6-6- A%6-%7-@@"M(chord off W A a A%X 9}Aab 6-6. half Akl(6-@6. quarter( Au۸9}v'6-@6. eighth' A۶囀)6-@6. sixteenth) A۳ݲ囊*9}6-@2 6. thirty sec* Aۮݧ囔 6-( A回6-+(*(, A9}ۣݠ 6- Aݠ 6-6 A웼 6- A  6-9}6- Ac 6-6.#@A/6-@A6-%+"@,G6-M6-S6-Y6-c A 9} AI)6-?::,67,.>:,*67,.6"@ B6-@;67,.>:,;67,.>:@:7,,%A(%@r$+",,9} 6-%(6- A 6.7%+(,, A'6-%%+,!@' AP A9} AK۪LN A (*( enter chord D( then press returnN A%VS A9}PA6-+6. G6-C: *~abcdefgmj+-#67,SAU`i )-6-?:<<@%@$+!,<,[%9}A APA`A`Api"A j;!@6./6-@:7&@,,;t=67<9},.>:,!-&%@ +(>:,36-%= A ~!A% 6- A  A0%㛒> !67&,.9} '-&@ .(66-&> A V6-@:,&@"6.%#! 06-%@:7,,<6-@H6-@9}V"A> -&%7<,46)7<,47>6-@ %+7<,47,M  6-6-@:7,,56-+"@,&+"@59},=6-%AM6-@7<,46-@(7<,4d6-@(6-@7<,46-@9}7<,0mA,7%<%,4  6-@,6-@,B:,!% 7%<%,4aj,6-@ ,7%<9}%,4 6-@,6-@,7%<%,4 6-@,6-@ G 6- A!67%,.7,167%,.7&,9}G67%@,.7&,(!6-%@6-!67,.2QA@dQ6-?:46-@6-@h% )"AU% ArS"A&!@#6-&1-%@9};( I-%@S A@|C#!@) @e)!@C%+"@',A@A@467,.>:,"(9}>:%A(,*6-%4 A@ 4D:6.C:L A@ &@,"@3:B6-%L A9} 6-&((?6-?:<<-@PB 1 6- Ap AP' A1 A 9}W-@"&(press to exit0 AP7)C@M AW A6-?:B, 9}J-@-2@@@5-9 C2G J$ , A%-@ ) A,$ 9} / +@AY%AV/ A@ 4Ap(%6-F:A`,46-F:Aa, A6-6+9},((} the musician ll:-@@"A( i)6-?: 1>lx 1>lx9}xI6-$AV6.(67A%,.167,.I6-?:}5/<5yQ@@yfD@DUQUHHl`[HHrLHL`[`lQyff[̭lfUHl[}-}}    ԏ  >}   ԋ  ԏ  <5VDATMOVPMBASSPABARBhdBh@@$ KKӢB}󬠠à묠àH;A,H6-C:.hhhhhhh`,"B }AF:A@,"+@(s=6.3h ! ԍЌнн н#LU67@4,.>:@4,s6-?:',A@P'/A0F+}@P@9/A0@`'/A@`9/A@PD$F @H',@P@U'/A@UF,}J$P-@R-@T0@U!!2@ @@&V X w$xF-} +@.-@@.(HOW ABOUT THIS...$ +@0@0F.}@@-@A@@#,@ #/@$A@ -@0@F/}"-@ , .-@0-@@20@&3-@ 4 6F0} ;0@?$@J +@O 0T#-@@#(SOUND!Y-@P F1}^-@c2@@%@h 0m-@ r |-@62@ F2}-@  $ +@(-@((YOU HAVE A CHOICE%-@%(F3}OF 8 DIFFERENT-@('VOICES'-A (-@((HIT IT MAESTRO...$F4}Š 6-@ A   6- A   6- A -@P  6-Q:,2@&F5}(S:,)(T:,A0 Ab 2k$lv +@" -"(YOU CAN EVEN HAVE+F6}-@@+(UP TO 4 VOICES(-@((AT THE SAME TIME!-A 2AP@F7}-A 2@@@@-A 2@@@-A F8}%%2@A@@-A -@ %%2AP%@%'@!!2@@F9}&@@!!2@@ %@//2@A%@$@@(S:,)(T:,AF:}  AR 2 22@2@$+-F;}@( ( THANK YOU( ( ((,)(! ANOTHER WRIGHT-ON PRODUCTION,(-@6 F<}2@ @-@@   "-@@6$ 0& * 6-3$ D:F=}SLIDSHOW@-@@   "-@@6$ 0& * 6-3$ D:D DISK CONTENTS - Front Side of Disk1. DISSOLVER CRE. Creates BASIC sub-routines for spiral or sweep dissolvesof any graJ?}phics mode screen. Excellent!Refer to magazine for "how to use".(Fred Pinho, ANTIC 1/86, p18)2. DISSOLVER DEM. A clever J@}demo of the"Dandy Dissolver". (Fred Pinho, ANTIC,1/86, S*P*A*C*E mods)3. FACE. "Face of the Galaxy" - Musicwith graphicJA}s. (Gary Gilbertson)4. FADER II. An enhanced ML Hi-Res picloader with dot-by-dot "lapse-dissolve"effects. To use: TransfJB}er to a picturedisk & rename AUTORUN.SYS. Compressedpictures (ie, KoalaPad, Micro Illustr.)must use a ".PIC" fn extender. JC}Normalpictures (ie, Micro Painter, any 62sector pic) use ".*IC" fn extenders.Reboot with this pic disk to view your"slideJD} show". Press OPTION to hold apicture on the screen; START to skipthe pause between pics; or SELECT to goto DOS. (PatrickJE} Dell'Era, ANTIC 5/85)5. FADER MOD. Use to change FADER II'spausing rate. Self prompting. BASIC.(Patrick Dell'Era, ANTICJF} 5/85)6. 3D GRAPHICS. A 3-D graphics editor.(Paul Chabot, ANTIC 10/85, JC mods)7. G.U.P. The Graphics Utility PackageJG}is a ML program which will speedup yourBASIC graphic commands & adds ten newones: circles, squares, patterned fills& more!JH} Read the magazine article forfull tutorial/instructions. For bestresults rename to AUTORUN.SYS & rebootto load. If loadedJI} from this menu, youmust press RESET upon load completion.(Darek Mihocka, ANTIC, 6/85, p45)8. G.U.P. DMO. A demonstratioJJ}n of someof G.U.P.'s capabilities. Load G.U.P.(per above) prior to running this demo.(Darek Mihocka, ANTIC, 6/85)9. HORSJK}E. A galloping horse demo usingcharacter graphics. (B.R.A.C.E.)10. MILOADER. Loads/displays Micro-Illustrator (KoalaPadJL}) pics. (ANTIC&JC)11. MUSICIAN. A "Music construction"program. Integral command list. Allowsediting of last note only! TJM}his versionis not compatable with the original!(A.Giambra, ANTIC, 6/85, pg37, JC mods)12. LAURA. Demo tune for The MusicJN}ianabove. Load "LAURA" to hear it play orto edit. (ANTIC disk, 6/85, JC mods)13. PENCILS. A sharp GTIA demo! (GreggTravJO}ares, ANTIC disk, 6/85, JC mods)14. SLIDE SHOW. A BASIC demo using theAtari to present computer "slides".(Steve Wright, JP}from B.R.A.C.E. disk) DISK CONTENTS - Back Side of Disk(NOTE: These programs should be loadedw/o BASIC to insure propeJQ}r operation.)1. FUJIBOINK. Famous Atari demo with abouncing multi-color "Fuji" logo.(Park '86)2. MCP. Multi-Colored PJR}layers demo.Brilliant colors. ML. (ANTIC 2/86)3. SPLASH. Splash colors on a Gr.7+screen. ACTION. (ANTIC, 4/85)4. SWAN.JS} Another sharp Atari demo withflying swan & twirling Fuji. (Park '86)5. VIEW 3D. Create 3-D wire frame picsin Gr 8/7+. JT}Magnify, shrink, rotate, &shift viewing position fairly fast. Seemagazine article for details. ACTION.(Paul Chabot, ANTIC JU}6/85, p37)6. HOUSE.V3D. A sample VIEW 3D image.(Paul Chabot, ANTIC 6/85)rticle for details. ACTION.(Paul Chabot, ANTIC HM