Fixes bugs in tape handler (except when in DOS menu-- but you can't use C: there --DOS checks for that) Thoms Newton, 1/23/1983 Feel free to give copies to any person or club The program uses the INIT vector, so you should be able to append about anything else to it--like the RS-232 driver patch. {{{ 1000 REM ************************** 1010 REM ** BUGFIX--disk version ** 1020 REM ************************** 1030 REM 1040 REM Fixes bugs in tape handler 1050 REM (except when in DOS menu-- 1060 REM but you can't use C: there 1070 REM anyway--DOS checks for that) 1080 REM 1090 REM Thoms Newton, 1/23/1983 1100 REM 1110 REM 1120 REM Feel free to give copies 1130 REM to any person or club 1140 REM 1150 REM The program uses the INIT 1160 REM vector, so you should be 1170 REM able to append about 1180 REM anything else to it--like 1190 REM the RS-232 driver patch. 1200 REM 1210 DIM A$(1) 1220 PRINT "BUGFIX -- writes AUTORUN.SYS file" 1230 PRINT "that fixes cassette handler bugs." 1240 PRINT:PRINT 1250 PRINT "Do you want to create the file (Y/N)" 1260 INPUT A$:IF LEN(A$)=0 THEN 1260 1270 IF A$="N" OR A$="n" THEN END 1280 IF A$<>"Y" AND A$<>"y" THEN 1240 1290 REM 1300 REM Create AUTORUN.SYS file 1310 RESTORE 1320 SUM=0 1330 OPEN #1,8,0,"D:AUTORUN.SYS" 1340 FOR X=1 TO 247 1350 READ Y:SUM=SUM+Y:PUT #1,Y 1360 NEXT X 1370 CLOSE #1 1380 IF SUM<>25560 THEN PRINT "There are some typos in the DATA." 1390 IF SUM<>25560 THEN XIO 33,#1,0,0,"D:AUTORUN.SYS" 1400 END 1410 REM 1420 REM Program/loading addresses 1430 REM 1440 REM All lines except the last 1450 REM should have eight numbers 1460 REM 1470 DATA 255,255,252,28,145,29,165,12 1480 DATA 141,20,29,165,13,141,21,29 1490 DATA 165,10,141,63,29,165,11,141 1500 DATA 64,29,76,22,29,32,0,0 1510 DATA 169,19,133,12,169,29,133,13 1520 DATA 169,41,133,10,169,29,133,11 1530 DATA 76,65,29,8,72,138,72,174 1540 DATA 145,29,169,64,157,27,3,169 1550 DATA 228,157,28,3,104,170,104,40 1560 DATA 76,0,0,169,243,141,231,2 1570 DATA 169,29,141,232,2,162,15,189 1580 DATA 64,228,157,146,29,202,16,247 1590 DATA 8,216,24,173,146,29,105,1 1600 DATA 141,205,29,173,147,29,105,0 1610 DATA 141,206,29,40,169,162,141,146 1620 DATA 29,169,29,141,147,29,162,0 1630 DATA 189,26,3,201,67,240,5,232 1640 DATA 232,232,208,244,142,145,29,169 1650 DATA 146,157,27,3,169,29,157,28 1660 DATA 3,24,96,0,162,29,242,29 1670 DATA 234,8,72,165,43,141,242,29 1680 DATA 165,42,41,8,141,241,29,240 1690 DATA 23,169,35,141,15,210,169,40 1700 DATA 141,8,210,169,0,141,4,210 1710 DATA 141,6,210,169,255,141,13,210 1720 DATA 104,40,32,0,0,8,72,173 1730 DATA 241,29,240,24,173,242,29,48 1740 DATA 19,169,60,141,2,211,169,160 1750 DATA 141,1,210,141,3,210,141,5 1760 DATA 210,141,7,210,104,40,96,0 1770 REM 1780 REM The original object code had 1790 REM 0,224,2,225,2,252,28 1800 REM which I changed (the RUN 1810 REM vector ==> an INIT vector) 1820 REM 1830 DATA 0,226,2,227,2,252,28 }}} ------ This program creates an autoboot tape that patches the cassette handler. To load the tape, hold the START button down when you turn the power on. When you hear the beep, press PLAY, then RETURN. Thomas Newton, 1/23/1983 You are encouraged to give copies to any person or club. {{{ 1000 REM ************************** 1010 REM ** BUGFIX--tape version ** 1020 REM ************************** 1030 REM 1040 REM This program creates an 1050 REM autoboot tape that patches 1060 REM the cassette handler. To 1070 REM load the tape, hold the 1080 REM START button down when you 1090 REM turn the power on. When 1100 REM you hear the beep, press 1110 REM PLAY, then RETURN. 1120 REM 1130 REM Thomas Newton, 1/23/1983 1140 REM 1150 REM You are encouraged to give 1160 REM copies to any person or club. 1170 REM 1180 DIM PROG$(191),PAD$(65) 1190 RESTORE:SUM=0:PAD$(1,1)=CHR$(0):PAD$(64,64)=CHR$(0):PAD$(2,65)=PAD$ 1200 FOR X=1 TO 191 1210 READ Y:SUM=SUM+Y:PROG$(X,X)=CHR$(Y) 1220 NEXT X 1230 IF SUM<>17627 THEN PRINT "There is a typo in the DATA.":END 1240 PRINT "Press RECORD and PLAY, then RETURN" 1250 OPEN #1,8,128,"C:":REM short IRGs 1260 PRINT #1;PROG$;:PRINT #1;PAD$;:CLOSE #1 1270 REM the above was possible because BASIC prints strings at m.l. speed 1280 END 1290 REM 1300 REM autoboot program data 1310 REM 1320 REM prepared from object file 1330 REM by removing load and run 1340 REM addresses and filling in 1350 REM the space left by the DS 1360 REM with zeroes 1370 REM 1380 DATA 0,2,0,7,13,7,169,60 1390 DATA 141,2,211,24,96,169,191,141 1400 DATA 232,2,169,7,141,232,2,162 1410 DATA 15,189,64,228,157,94,7,202 1420 DATA 16,247,8,216,24,173,94,7 1430 DATA 105,1,141,153,173,95,7 1440 DATA 105,0,141,154,7,40,169,110 1450 DATA 141,94,7,169,7,141,95,7 1460 DATA 162,0,189,26,3,201,67,240 1470 DATA 5,232,232,232,208,244,142,93 1480 DATA 7,169,94,157,27,3,169,7 1490 DATA 157,28,3,24,96,0,0,0 1500 DATA 0,0,0,0,0,0,0,0 1510 DATA 0,0,0,0,0,0,234,8 1520 DATA 72,165,43,141,190,7,165,42 1530 DATA 41,8,141,189,7,240,23,169 1540 DATA 35,141,15,210,169,40,141,8 1550 DATA 210,169,0,141,4,210,141,6 1560 DATA 210,169,255,141,13,210,104,40 1570 DATA 32,0,0,8,72,173,189,7 1580 DATA 240,24,173,190,7,48,19,169 1590 DATA 60,141,2,211,169,160,141,1 1600 DATA 210,141,3,210,141,5,210,141 1610 DATA 7,210,104,40,96,0,0 }}}