BBS: Inland Empire Archive Date: 02-09-93 (08:46) Number: 331 From: TOM HAMMOND Refer#: NONE To: ALL Recvd: NO Subj: Help W/In-Line Code 2/2 Conf: (2) Quik_Bas
'*** PART 2 OF 2 FROM TOM HAMMOND ***
'NOTE: This code WILL NOT run as-is. Please see Part 1 of 2 for
' decsription of problem.
' Disk Head Cleaning Program
' Author: Bruce LaVigne
' Written: 1/11/84 for the Madison IBM PC User's Group
' Consult your drive manufacturer for cleaning recommendations
DEF SEG : COLOR 7, 0: CLS
LOCATE 1, 26
PRINT "*** Disk Head Cleaner ***"
' initialize variables for reading assembly
CLEAN$ = ""
CHSUM = 0
' read assembly program into string
FOR I = 0 TO 63
READ BYTE
CLEAN$ = CLEAN$ + CHR$(BYTE)
CHSUM = CHSUM + BYTE
NEXT
READ CHECK
IF CHSUM <> CHECK THEN
PRINT "Bad checksum-retype data"
END
END IF
110
LOCATE 4, 1
PRINT "Clean which drive? (A or B): ";
115
DO: DR$ = UCASE$(INKEY$): LOOP UNTIL LEN(DR$)
' Compute Drive #
DR$ = LEFT$(DR$, 1)
DRV = (ASC(DR$) AND &H5F) - 65
IF DRV < 0 OR DRV > 1 THEN
BEEP
GOTO 110
END IF
POINTER = VARPTR(CLEAN$) + 1
ASSEM = PEEK(POINTER) + 256 * PEEK(POINTER + 1)
' set drive number to clean
POKE ASSEM + 13, DRV
' compute relocation address
TADR = ASSEM + 11: TADRH = INT(TADR / 256)
IF TADR > 32767 THEN
TADR = TADR - 65536!
END IF
TADRL = TADR AND &HFF
' put new address pointer in
POKE ASSEM + 44, TADRL: POKE ASSEM + 45, TADRH
LOCATE 10, 12
COLOR 0, 7
PRINT ">> Put cleaning disk in drive "; DR$; ": and press any key <<"
LOCATE 12, 18
PRINT ">> Or press <Q>uit or <C>hange drives <<"
220
DO: A$ = UCASE$(INKEY$): LOOP UNTIL LEN(A$)
IF A$ = "Q" THEN
GOTO 295
ELSEIF A$ = "C" THEN
COLOR 7, 0, 0
CLS
GOTO 290
ELSE
GOTO 220
END IF
LOCATE 10, 1
COLOR 7, 0
PRINT SPC(78);
LOCATE 12, 1
PRINT SPC(78);
LOCATE 10, 30
COLOR 31, 0
PRINT "*** Cleaning ***"
COLOR 7, 0
' call actual disk routine
CALL ASSEM
LOCATE 10, 1
PRINT SPC(78);
LOCATE 6, 1
PRINT "Clean another disk? <Y>es or <N>o ";
280
A$ = INKEY$
SELECT CASE UCASE$(A$)
CASE "Y"
GOTO 290
CASE "N"
GOTO 295
CASE ELSE
GOTO 280
END SELECT
290
LOCATE 6, 1
PRINT SPC(78);
GOTO 110
295
DEF SEG
COLOR 7, 0
KEY OFF
CLS
END
DATA 49,192,205,26,81,82,184,1,4,185,1,0,186,0,0,205,19
DATA 49,192,205,26,60,0,91,88,80,83,116,7,129,195,176,0
DATA 21,24,0,129,195,34,2,21,0,0,190,11,1,128,52,39,57
DATA 200,119,209,57,211,119,205,88,88,49,192,205,19,203
' checksum
DATA 5785
---
* Origin: Night Shift BBS (314)635-7588 HST 14.4 (1:289/15)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET