Source:Eamon DOS Remover

From Eamon Wiki
Jump to navigation Jump to search
This page is a verbatim reproduction of original source material and should not be edited except for maintenance.
Description

The Applesoft BASIC source code of the Eamon utility program Eamon DOS Remover.

Source

EAG Utilities Disk

Date

c. 1988

Author

Tom Zuchowski

License

The use of this item is permitted on the grounds that it's free or in the public domain.

10  TEXT : HOME :D$ =  CHR$ (4)
20  FOR J = 768 TO 800: READ I: POKE J,I: NEXT 
30  DATA  169,3,160,10,32,217,3,96,0,0,1,96,1,0,0,0,27,3,0,32,0,0,1,0,0,96,1,0,1,239,216,0,0
40  HTAB 14: PRINT "DOS REMOVER": PRINT : PRINT : PRINT "USE THIS *ONLY* WITH UNMODIFIED DOS 3.3": PRINT : PRINT 
50  PRINT "SLOT?";: GET S$: PRINT S$:S =  VAL (S$): IF S < 1 OR S > 7 THEN 50
60  PRINT : PRINT "DRIVE?";: GET S$: PRINT S$:D =  VAL (S$): IF D <  > 1 AND D <  > 2 THEN 60
70  POKE 779,S * 16: POKE 793,S * 16: POKE 780,D: POKE 794,D
80  POKE 781,0: POKE 792,0
90  POKE 791,0: POKE 790,1
100  PRINT : PRINT "INSERT DISK TO BE MODIFIED, AND PRESS   'C' TO REMOVE DOS, OR ANY OTHER KEY TO  ABORT":
110  GET A$: PRINT A$: IF A$ <  > "C" THEN  END 
120  POKE 782,17: POKE 783,0: POKE 786,0: POKE 787,32
130  CALL 768: GOSUB 2000
150  FOR X = 60 TO 67 STEP 4: POKE 8192 + X,255: POKE 8193 + X,255: NEXT 
160  POKE 790,2: CALL 768: GOSUB 2000
170  FOR X = 8192 TO 8448: POKE X,0: NEXT 
180  POKE 786,0: POKE 787,32
190  POKE 790,2: FOR X = 0 TO 2: FOR Y = 0 TO 15: POKE 782,X: POKE 783,Y: CALL 768: GOSUB 2000
210  NEXT : NEXT 
300  FOR I = 8192 TO 8345: READ A: POKE I,A: NEXT 
320  FOR I = 12288 TO 12323: READ A: POKE I,A: NEXT 
330  CALL 12288
400  END 
1500  DATA 0,173,232,192,169,240,133,54,169
1510  DATA 253,133,55,32,88,252,32,221,251
1520  DATA 169,0,141,5,3,172,5,3,185
1530  DATA 51,8,32,237,253,238,5,3,173
1540  DATA 5,3,201,96,240,3,76,23,8
1550  DATA 32,27,253,76,0,198,212,200,201
1560  DATA 211,160,196,201,211,203,197,212,212
1570  DATA 197,160,196,207,197,211,160,206,207
1580  DATA 212,160,200,193,214,197,160,196,207
1590  DATA 211,160,207,206,160,201,212,141,208
1600  DATA 204,193,195,197,160,212,200,197,160
1610  DATA 211,217,211,212,197,205,160,196,201
1620  DATA 211,203,197,212,212,197,160,201,206
1630  DATA 160,196,210,201,214,197,160,163,177
1640  DATA 141,193,206,196,160,208,210,197,211
1650  DATA 211,160,188,210,197,212,213,210,206
1660  DATA 190,141,160,160,160,160,160,160,160
1670  DATA 160
1700  DATA 169,48,160,10,32,217,3,96,0
1710  DATA 0,1,96,1,0,0,0,32,48
1720  DATA 0,32,0,0,2,0,0,96,1
1730  DATA 0,0,0,0,0,0,1,239,216
2000 E =  PEEK (791): IF E <  > 16 AND E <  > 64 AND E <  > 128 THEN  POKE 791,0: RETURN 
2020  IF E = 16 THEN  PRINT : PRINT "WRITE PROTECTED"
2040  IF E = 64 THEN  PRINT : PRINT "DRIVE ERROR"
2050  IF E = 128 THEN  PRINT : PRINT "READ ERROR"
2070  PRINT  CHR$ (7); CHR$ (7): TEXT : END