Random game
Random disk
Random game
Entry name:
 Maid, The 
Publisher/Developer:

BELLCOM - Public Domain Library
(Software library)
  • Category:

    Disk utilities
  • Year:

    1984
  • Code:

    John DeFields
  • Media format:

    Diskette
  • Programming language:

    Atari BASIC
Maid, The Maid, The Maid, The Maid, The Maid, The Maid, The Maid, The Maid, The Maid, The
Listing 1
10GRAPHICS0:DIMENT$(17),A$(1),DIR$(17),E$(22),S$(500),PG$(15):POKE82,1:POKE752,1
15DIMCIO$(7),CIO2$(7),SRC$(3),DST$(3)
20DIMNAMES$(64*11),LOCK$(64),STRT(64),LENG(64),LINE$(30),TMP$(15),FILE$(15),USED(64),V$(1)
25SETCOLOR4,4,4:SETCOLOR1,0,0:SETCOLOR2,0,12
26?"":?"....fordriveconfiguration":?"VERS.3.2,1984by"
28?"BASEDONand"
29?"inthepublicdomain."
30?"==>CLEANOUTDISKS":?"==>MULTICOPY,DOSFNCTNS"
32?"==>EXITTOBASIC"
35XX=PEEK(53279):IFXX=7THEN35
40IFXX=5THEN235
45IFXX=6THENGRAPHICS0:END
50POKE712,98:SETCOLOR2,2,10:SETCOLOR1,2,0:S$=""
55S$="":S$(500)="":S$(2)=S$
58?"WHICHDRIVE?":GOSUB250:IFA<>49ANDA<>50THEN55
60SRC$="D1:":DIR$="D1:*.*":IFA=50THENDIR$="D2:*.*":SRC$="D2:"
65GOSUB70:GOTO100
70OPEN#5,6,0,DIR$
75TRAP95
80?""
85INPUT#5,E$:?E$;"";
90INPUT#5,E$:?E$:GOTO85
95CLOSE#5:?"":RETURN
100?:?"==>ABORT":?"==>CONTINUE":GOSUB250:IFA=65THEN25
105X=1:Y=15
110?"TOPURGE":?"AFTEREACHFILEDISPLAYEDPRESS":?"TODELETEOR-PRESS"
115TRAP145:?"TOCONTINUE":OPEN#5,6,0,DIR$
120INPUT#5,E$:POSITION2,10:IFE$(5,16)<>"FREESECTORS"ANDE$(6,17)<>"FREESECTORS"THEN?E$:?:?"";:GOTO130
125GOTO145
130GOSUB250:IFA<>16THENPOSITION2,12:?"CHOICE":FORQ=15TO0STEP-0.4:SOUND0,20,10,Q:NEXTQ:GOTO120
135PG$(1,3)=SRC$:PG$(4,11)=E$(3,10):PG$(12,12)=".":PG$(13,15)=E$(11,13)
140S$(X,Y)=PG$:X=X+15:Y=Y+15:FORQ=15TO0STEP-0.2:SOUND0,40,10,Q:NEXTQ:GOTO120
145GOSUB205
146?:?
150?"PRESSTO,ORTO":GOSUB250:IFA=80THEN160
151IFA<>155THEN150
155GOTO180
160X=1:Y=15:S=0
165TRAP180:PG$=S$(X,Y):FORQ=2TO14:S=S+1:IFPG$(S,S)=""THENPG$(S,15)=PG$(S+1,15):PG$(15,15)="":S=S-1
170NEXTQ
175XIO36,#3,0,0,PG$:XIO33,#3,0,0,PG$:X=X+15:Y=Y+15:S=0:GOTO165
180CLOSE#4:CLOSE#5
185GOSUB70
190?"=RERUN":?"=MENU"
195GOSUB250:IFA=82THENGOTO55
200GOTO25
205?""
210?"SHALLIPURGETHEFOLLOWING?":?
215TRAP230:X=1:Y=15
220?S$(X,Y),S$(X+15,Y+15)
222IFS$(X,Y)=""THEN?:?:TRAP40000:RETURN
225X=X+30:Y=Y+30:GOTO220
230TRAP40000:?:RETURN
235REM,ver2.1
240REMREVISED10/84BYJOHNDEFIELDS
245GOTO255
250CLOSE#2:OPEN#2,4,0,"K:":GET#2,A:CLOSE#2:RETURN
255GRAPHICS0:POKE709,0:POKE710,216:POKE752,1:POKE1913,80
260CIO$="hV`":CIO2$="hV`"
265V$="N"
270IFNOTREDOTHENREDO=NOTREDO:BUFLEN=50*INT((FRE(0)-256)/50):DRV=2:DIMBUF$(BUFLEN)
275POKE712,98:POSITION1,0:?"erify=";V$;",ormat,ir,opy,=>MENU"
280?"ename,ock,nlock":GOSUB250
285IFA=49THENDRV=1
290IFA=86ANDV$="N"THENPOKE1913,87:V$="Y":GOTO300
295IFA=86ANDV$="Y"THENPOKE1913,80:V$="N"
300IFA=70THEN925
305IFA=68THEN945
310IFA=67THEN340
315IFA=27THENRUN
320IFA=82THEN1045
325IFA=76THEN1060
330IFA=85THEN1070
335GOTO275
340?"===>";:GOSUB250:?CHR$(A):IFA<>49ANDA<>50THENGOTO340
345SRC$="D1:":IFA=50THENSRC$="D2:"
350?"===>";:GOSUB250:?CHR$(A):IFA<>49ANDA<>50THENGOTO350
355DST$="D1:":IFA=50THENDST$="D2:"
360?"INSERTDISK(S)ANDHIT":?"ANYKEYTOCONTINUE":GOSUB250
365IFSRC$="D1:"THENOPEN#1,6,0,"D1:*.*"
370IFSRC$="D2:"THENOPEN#1,6,0,"D2:*.*"
375FORI=1TOBUFLENSTEP50:BUF$(LEN(BUF$)+1)="":NEXTI
380?"Entertoduplicate,tocontinue"
385?""
390FILES=0:TRAP430
395INPUT#1,LINE$:?LINE$;
400IFLINE$(10,16)="SECTORS"THEN435
405IFLINE$(11,17)="SECTORS"THEN435
410?"dupl(Y/N)?";
415GOSUB250:?CHR$(A):IFA<>(89)THEN395
420FILES=FILES+1:NAMES$(FILES*11-10,FILES*11)=LINE$(3,13):LOCK$(FILES)=LINE$(1,1)
425GOTO395
430FILES=FILES-1
435CLOSE#1:?:IFFILES=0THENRUN
440?:?"===>ABORT"
445?:?"===>CONTINUE"
450GOSUB250:IFA=65THENRUN
455FORI=1TOFILES:STRT(I)=0:USED(I)=0:NEXTI
460INFILE=1:OUTFILE=1
465APPND=0
470INDEX=1
475IFINFILE>FILESTHEN600
480IFSTRT(INFILE)>0THEN495
485GOSUB890
490USED(FILENO)=INFILE
495FILE$=NAMES$(FILENO*11-10,FILENO*11)
500?"";FILE$(1,8);"";FILE$(9,11),
505GOSUB755
510OPEN#1,4,0,FILE$
515IFSTRT(INFILE)<>0THENPOINT#1,INA,INB:APPND=1:OUTFILE=OUTFILE-1
520STRT(INFILE)=INDEX:LENG(INFILE)=0
525RETRY=0
530GOSUB795
535IFISTAT=136THEN560
540IFINDEX>BUFLEN+1THEN?"":GOTO250
545IFISTAT<=1THEN585
550IFRETRY<5THENRETRY=RETRY+1:?"-";ISTAT:GOTO530
555?"after5retries,":GOTO275
560?LENG(INFILE)
565CLOSE#1
570INFILE=INFILE+1
575IFBUFLEN+1-INDEX>=125THEN475
580GOTO595
585?LENG(INFILE);""
590NOTE#1,INA,INB
595CLOSE#1
600OUTIND=1
605IFINDEX=1THEN690
608?
610IFSRC$=DST$THEN?"Insertdisk,hit":GOSUB250:IFA<>155THENGOTO610
615FORI=1TOFILES:IFUSED(I)=OUTFILETHENFILENO=I
620NEXTI
625FILE$=NAMES$(FILENO*11-10,FILENO*11)
630?"";FILE$(1,8);"";FILE$(9,11)
635GOSUB755
640IFDRV=2THENTMP$=FILE$(3):FILE$=DST$:FILE$(3)=TMP$
645IFAPPND<>0THEN660
650TRAP965:OPEN#2,8,0,FILE$
655GOTO665
660IFSRC$=DST$THENOPEN#2,9,0,FILE$
665APPND=0
670GOSUB850
675IFINFILE<>OUTFILEORDRV<>2THENCLOSE#2
680OUTFILE=OUTFILE+1
685IFOUTIND<INDEXTHEN615
690IFINFILE>FILESTHEN705
692?
695IFSRC$=DST$THEN?"Insertdisk,hit":GOSUB250:IFA<>155THENGOTO695
700GOTO470
705TRAP920:FORI=1TOFILES:IFLOCK$(I,I)="*"THEN710:NEXTI:GOTO965
708?
710IFINDEX=1THEN?"Insertdisk,hit":GOSUB250:IFA<>155THENGOTO710
715FORJ=1TOFILES
720GOTO750
725FILE$=NAMES$(J*11-10,J*11)
730?"";FILE$
735GOSUB755
740IFDRV=2THENTMP$=FILE$(3):FILE$=SRC$:FILE$(4)=TMP$
745XIO35,#1,0,0,FILE$
750NEXTJ:DNO=DRV:GOTO965
755TMP$=FILE$
760FILE$=SRC$
765FORI=1TO8
770IFTMP$(I,I)=""THEN785
775FILE$(LEN(FILE$)+1)=TMP$(I,I)
780NEXTI
785FILE$(LEN(FILE$)+1)="."
790FILE$(LEN(FILE$)+1)=TMP$(9,11):RETURN
795POKE850,7
800I=ADR(BUF$(INDEX))
805POKE852,I-256*INT(I/256):POKE853,INT(I/256)
810I=BUFLEN+1-INDEX
815I=125*INT(I/125)
820POKE856,I-256*INT(I/256):POKE857,INT(I/256)
825I=USR(ADR(CIO$))
830I=PEEK(856)+256*PEEK(857)
835ISTAT=PEEK(851):IFISTAT>1ANDISTAT<>136THENRETURN
840LENG(INFILE)=LENG(INFILE)+I
845INDEX=INDEX+I:RETURN
850POKE866,11
855I=ADR(BUF$(OUTIND))
860POKE868,I-256*INT(I/256):POKE869,INT(I/256)
865I=LENG(OUTFILE)
870POKE872,I-256*INT(I/256):POKE873,INT(I/256)
875I=USR(ADR(CIO2$))
880IFPEEK(867)>1THEN920
885OUTIND=OUTIND+LENG(OUTFILE):RETURN
890FILENO=-1:FILE$="||||||||||||"
895FORI=1TOFILES:IFUSED(I)<>0THEN915
900IFFILE$<NAMES$(I*11-10,I*11)THEN915
905FILE$=NAMES$(I*11-10,I*11)
910FILENO=I
915NEXTI:RETURN
920POSITION11,23:?"";DST$;"":GOTO275
925POKE712,52:?"OR":GOSUB250:IFA<>49ANDA<>50THENGOTO925
930DIR$="D1:":IFA=50THENDIR$="D2:"
935?"HITTOFORMAT";CHR$(A+128);",TOABORT":GOSUB250:IFA<>89THENGOTO275
940TRAP920:XIO254,#2,0,0,DIR$:GOTO275
945?"of:or":GOSUB250:DNO=1:IFA=50THENDNO=2
950IFDRV=1THENDNO=1
955IFA<49ORA>50THEN275
960GOTO985
965?"";DST$;""
970DIR$="D1:*.*":IFDST$="D2:"THENDIR$="D2:*.*"
975CLOSE#3:GOSUB70
980BUF$="":GOTO275
985?"";CHR$(DNO+176)
990I=0:DIR$="D:*.*":IFDNO=2THENDIR$="D2:*.*"
995TRAP1000:GOSUB70
1000?:?"==>PRINTDIRECTORY"
1005?"==>CONTINUE"
1010GOSUB250:IFA<>ASC("P")THENBUF$="":GOTO275
1015TRAP1015:?:?"";:INPUTE$
1020CLOSE#4:OPEN#4,8,0,"P:":?#4;,"";E$
1025CLOSE#3:OPEN#3,6,0,DIR$
1030TRAP1040:?#4;"",:FORI=1TO3:INPUT#3,E$:?#4;E$,
1035NEXTI:?#4;"":GOTO1030
1040POP:?#4:?#4:CLOSE#3:CLOSE#4:TRAP32767:BUF$="":GOTO275
1045GOSUB1080:?:?:?"==>";:INPUTE$:X=LEN(E$):LINE$(1,15)=DIR$:LINE$(4,X+4)=E$:E$=""
1050?"==>";:INPUTE$:LINE$(X+4,X+4)=",":X2=LEN(E$):LINE$(X+5,X+5+X2)=E$:GOSUB1100
1055XIO32,#3,0,0,LINE$:CLOSE#3:GOTO275
1060GOSUB1080:GOSUB1095:GOSUB1100
1065XIO35,#3,0,0,DIR$:CLOSE#3:GOTO275
1070GOSUB1080:GOSUB1095:GOSUB1100
1075XIO36,#3,0,0,DIR$:CLOSE#3:GOTO275
1080DIR$="D1:":E$="":DV=1
1085?"==>";:GOSUB250:?CHR$(A):IFA=50THENDIR$="D2:":DV=2
1090RETURN
1095?"==>";:INPUTE$:DIR$(4,15)=E$:?:RETURN
1100CLOSE#3:IFDV=1THENOPEN#3,6,0,"D1:*.*":RETURN
1105OPEN#3,6,0,"D2:*.*":RETURN
1110?"===>ABORT"
1115?"===>CONTINUE"	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!