home *** CD-ROM | disk | FTP | other *** search
- ;************************************************************
- ;
- ; FORMAT. A PROGRAM FOR FORMATTING DISKETTES
- ; IN THE IBM 3740 STANDARD FORMAT FOR USERS
- ; OF THE TARBELL FLOPPY DISK INTERFACE.
-
- ;************************************************************
-
- ; JAMES A. WILLIS, M.D.
- ; 3300 BARBERRY LN. SACTAMENTO CA. 95825
-
- ;************************************************************
- ; THIS PROGRAM IS INTENDED FOR SINGLE
- ; DISK INSTALLATIONS AND WILL HALT
- ; WHEN CALLED TO ALLOW THE USER TO INSERT
- ; THE DISK TO BE FORMATTED. THE USER THEN
- ; MUST START THE PROGRAM AT LOCATION 0200H
- ; MANUALLY. THE PROGRAM WILL THEN FORMAT THE
- ; DISK, HALTING AT THE END OF THE OPERATION.
- ;************************************************************
- ; SUBROUTINE DESCRIPTIONS:
- ; DISC: FORMATS EACH OF 77 TRACKS IN TURN
- ; TRACK: WRITES 1 TRACK, REG.D CONTAINS
- ; TRACK NUMBER
- ; IMAGE: CREATES AN IMAGE OF THE INFORMATION
- ; TO BE WRITTEN ON EACH TRACK IN CORE
- ; STARTING AT LOACTION 1000H.
- ; TRACK NUMBER IN REGISTER D., SECTOR
- ; NUMBER IN REGISTER C.
- ;
- ; NOTE: THIS SOFTWARE SHOULD BE
- ; READILY ADAPTABLE TO OTHER DISK
- ; SYSTEMS BY RE-WRITING DISK DRIVER
- ; ROUTINES IN SUBROUTINE TRACK.
- ;************************************************************
- ORG 0100H
- START HLT
- ;
- ;
- ORG 0200H
- DISC MVI D,0
- MVI A,3
- OUT 0F8H; OUT HOME
- IN 0FCH; WAIT
- ;
- D1 CALL IMAGE
- CALL TRACK
- MOV A,D;TRACK#TOA
- CPI 4CH; LAST TRACK?
- JZ LAST
- INR D
- JMP D1
- ;
- LAST HLT
- ;
- ;
- TRACK LXI H,1000H
- MOV A,D
- OUT 0FBH;TRACK # DR
- MVI A,13H; LOAD SEEK
- OUT 0F8H; ISSUE SEEK
- IN 0FCH;WAIT
- MVI A,0F4H; WRITE TRACK COMMAND LOAD
- OUT 0F8H;ISSUE WRITE TRACK
- ;
- WLOOP IN 0FCH; WAIT
- ORA A
- JP DONE
- MOV A,M
- OUT 0FBH;DATA OUT
- INX H
- JMP WLOOP
- ;
- DONE RET
- ;
- ;
- ;
- IMAGE LXI H,1000H ;ORG OF DATA
- MVI C,40
- MVI B,0
- CALL PUT
- ;
- MVI C,6
- MVI B,0
- CALL PUT
- ;
- MVI C,1
- MVI B,0FCH
- CALL PUT
- ;
- MVI C,26
- MVI B,0
- CALL PUT
- ;
- ;SECTOR =1
- MVI E,1;SET E=1 SECTOR1
- ;
- LOOP1 MVI C,6
- MVI B,0
- CALL PUT
- ;
- MVI C,1
- MVI B,0FEH;ID ADDRESS MARK
- CALL PUT
- ;
- MVI C,1
- MOV B,D; TRACK
- CALL PUT
- ;
- MVI C,1
- MVI B,0
- CALL PUT
- ;
- MVI C,1
- MOV B,E;SECTOR #
- CALL PUT
- ;
- MVI C,1
- MVI B,0
- CALL PUT
- ;
- MVI C,1
- MVI B,0F7H;2 CRC'S
- CALL PUT
- ;
- MVI C,11
- MVI B,0
- CALL PUT
- ;
- MVI C,6
- MVI B,0
- CALL PUT
- MVI C,1
- MVI B,0FBH;DATA ADDRESS MARK
- CALL PUT
- ;
- MVI C,128
- MVI B,0E5H;DATA E5
- CALL PUT
- ;
- MVI C,1
- MVI B,0F7H; 2CRC'S
- CALL PUT
- ;
- MVI C,27
- MVI B,0
- CALL PUT
- ;
- MOV A,E
- CPI 26
- JZ FINIS
- INR E
- JMP LOOP1
- ;
- ;
- FINIS MVI C,255; FILL
- MVI B,0
- CALL PUT
- RET
-
- ;
- ;
- PUT MOV A,C
- CPI 0
- RZ
- MOV M,B
- INX H
- DCR C
- JMP PUT
- ;
- ;
-