home *** CD-ROM | disk | FTP | other *** search
- ADAMAKER.COM DOCUMENTATION
-
- ** TO CREATE AN ADAM DISK WITH ADAMAKER:
- 1. Put a blank disk in A: and type "FORMAT A:/1/8" (without the quotes)
- and tap the Enter key. When asked: "another (Y/N)?" tap "N" Enter.
- 2. Run ADAMAKER. After reading each of the two informational screens,
- tap the letter "Y" key (don't tap Enter, it's not required).
- ** If errors occur, read the information displayed. It may help you to
- find and solve the problem. Floppy disks and disk drives which work
- just fine for ordinary daily use MAY NOT WORK with this program. In
- taking precautions to ensure a that valid ADAM disk is produced, this
- program will report even the slightest difficulty and then abort. If
- you experience repeated or frequent problems with this program, there
- is a possibility that the disks or even the drive itself may have a
- defect too slight to appear in more normal daily use. In such a case
- it would be wise to remedy the problem to avoid possible loss of your
- valuable disk files, should the problem later grow worse.
-
-
- LICENSE AND MODIFICATION RULES
-
- The software and information in this archive is provided on an
- "as is" basis and the author makes no warranty, express or implied, as
- to its usefulness or fitness for any purpose. No fee is charged for the
- use of this software, and source code is provided on the following
- understandings:
-
- 1. The software must be distributed in a complete fashion,
- including all text files in the original archive.
-
- 2. No modification of the software may be made that changes or
- obliterates the copyrights on the software in any way.
-
- 3. The software, and all other contents of the archive,
- including source and text files, is copyright John Wiley. All Rights
- Reserved under all applicable copyright laws and conventions worldwide.
-
- 4. If you desire to modify the software, you may do so provided
- that the above restrictions are observed and that it is not publicly
- distributed in the modified form. Such modifications must be solely
- for your personal use. Any modifications that are to be distributed
- publicly by any means must first be cleared in writing with the author,
- John Wiley or Stuart Schechter, who may be contacted care of:
- The San Diego Computer Society
- PO Box 81444, San Diego, CA.
- 92138
-
- John Wiley
- July 4, 1990 DESCRIPTION & UNASSEMBLED CODE
-
- This program makes an ADAM "DOS" disk in A: by writing 7 Tracks stored
- within the program starting at Offset 1000. Only 2 Sectors of the last
- Track written are actually used by ADAM. The others are for data files
- on an ADAM "DOS" disk, so data in that Track (6) is lost. Other data on
- the ADAM disk can still be recovered with the ADAMDISK program. ADAM
- "data" disks use only part of the first Track (0) for system info, so much
- more data can be wiped out on an ADAM "data" disk by ADAMAKER. The best
- course is to use a blank formatted ADAM or MS-DOS floppy. To make a blank
- MS-DOS floppy for ADAMAKER, be sure to use the /8 switch. This makes it
- 8 Sectors per track, rather than the standard 9 Sectors used in 360k drives.
- ADAM disks are also single-sided, so you can save time by only formatting
- one side. Thus, FORMAT A:/1/8 before running ADAMAKER on an MS-DOS disk.
-
- 100 E9FD00 JMP 0200 ; Skip "intro" data area (ends with ^Z at 1F9).
-
- INTRO MESSAGE DATA AREA
- 100 54 68 69 73 20-70 72 6F 67 72 61 6D 20 This program
- 110 77 69 6C 6C 20 6D 61 6B-65 20 61 20 43 6F 6C 65 will make a Cole
- 120 63 6F 20 41 44 41 4D 20-44 69 73 6B 20 4D 61 6E co ADAM Disk Man
- 130 61 67 65 72 20 22 44 4F-53 22 20 64 69 73 6B 20 ager "DOS" disk
- 140 69 6E 20 64 72 69 76 65-20 41 3A 0D 0A 0A 09 09 in drive A:.....
- 150 09 2A 2A 20 42 45 46 4F-52 45 20 59 4F 55 20 42 .** BEFORE YOU B
- 160 45 47 49 4E 20 2A 2A 0D-0A 45 69 74 68 65 72 20 EGIN **..Either
- 170 70 72 65 70 61 72 65 20-61 6E 20 4D 53 2D 44 4F prepare an MS-DO
- 180 53 20 64 69 73 6B 20 28-46 4F 52 4D 41 54 20 41 S disk (FORMAT A
- 190 3A 2F 31 2F 38 29 2C 20-6F 72 20 70 75 74 20 61 :/1/8), or put a
- 1A0 6E 20 41 44 41 4D 20 64-69 73 6B 20 69 6E 20 41 n ADAM disk in A
- 1B0 3A 0D 0A 0A 07 57 41 52-4E 49 4E 47 21 21 20 20 :....WARNING!!
- 1C0 44 41 54 41 20 4F 4E 20-44 49 53 4B 20 49 4E 20 DATA ON DISK IN
- 1D0 44 52 49 56 45 20 41 3A-20 57 49 4C 4C 20 42 45 DRIVE A: WILL BE
- 1E0 20 4C 4F 53 54 21 0D 0A-0A 43 4F 4E 54 49 4E 55 LOST!...CONTINU
- 1F0 45 20 28 79 2F 4E 29 3F-24 1A E (y/N)?$.
-
- START OF PROGRAM
- 200 B409 MOV AH,09 ;Display String DOS Call
- 202 BA0301 MOV DX,0103 ; text at 103 - "intro" screen & "(y/N)?"
- 205 CD21 INT 21 ; do it.
- 207 90 NOP ; No OPeration - used between modules for readability.
- 208 E80500 CALL 0210 ;Get USER answer to "(y/N)?" prompt.
- 20B 90 NOP
- 20C EB12 JMP 0220 ; Continue to DETAILS module.
-
- USER ANSWER
- 210 B401 MOV AH,01 ;Keyboard Input with Echo DOS Call
- 212 CD21 INT 21 ; get answer to "(y/N)?" prompt
- 214 245F AND AL,5F ; convert "y" to "Y"
- 216 3C59 CMP AL,59 ; see if USER answer = "Y"
- 218 7502 JNZ 021C ; If not "Y" then goto TERMINATE
- 21A C3 RET ; Else RETurn to calling process.
- 21B 90 NOP
- 21C CD20 INT 20 ;TERMINATE PROGRAM DOS INTERRUPT. DISPLAY OPERATIONAL DETAILS AND QUERY USER AGAIN
- 220 B409 MOV AH,09 ;Display String
- 222 BA3002 MOV DX,0230 ; at 230 - "details" & "(y/N)?"
- 225 CD21 INT 21
- 227 90 NOP
- 228 E8E5FF CALL 0210 ;Get USER answer, if not "Y" TERMINATE.
- 22B 90 NOP
- 22C E9D100 JMP 0300 ;Skip past "details" data to WRITING msg.
-
- OPERATIONAL DETAILS DATA & QUERY
- 230 0D 0A 0A 0A 2A 20 4D 53-2D 44 4F 53 20 64 69 73 ....* MS-DOS dis
- 240 6B 73 20 6D 75 73 74 20-62 65 20 38 20 53 65 63 ks must be 8 Sec
- 250 74 6F 72 73 20 70 65 72-20 54 72 61 63 6B 20 28 tors per Track (
- 260 46 4F 52 4D 41 54 20 41-3A 2F 31 2F 38 29 20 66 FORMAT A:/1/8) f
- 270 69 72 73 74 2E 0D 0A 4E-4F 54 45 3A 20 45 78 69 irst...NOTE: Exi
- 280 73 74 69 6E 67 20 64 61-74 61 20 6D 61 79 20 62 sting data may b
- 290 65 20 72 65 63 6F 76 65-72 61 62 6C 65 20 6F 6E e recoverable on
- 2A0 20 61 6E 20 41 44 41 4D-20 64 69 73 6B 20 61 66 an ADAM disk af
- 2B0 74 65 72 20 41 44 41 4D-41 4B 45 52 2E 0D 0A 0A ter ADAMAKER....
- 2C0 4D 41 4B 45 20 54 48 45-20 44 49 53 4B 20 49 4E MAKE THE DISK IN
- 2D0 20 41 3A 20 41 4E 20 41-44 41 4D 20 44 49 53 4B A: AN ADAM DISK
- 2E0 4D 41 4E 41 47 45 52 20-42 4F 4F 54 41 42 4C 45 MANAGER BOOTABLE
- 2F0 20 44 49 53 4B 20 28 79-2F 4E 29 3F 20 24 00 00 DISK (y/N)? $..
-
- DISPLAY "WRITING" MESSAGE
- 300 B409 MOV AH,09 ;Display String
- 302 BA0903 MOV DX,0309 ; at 309 ("Writing...")
- 305 CD21 INT 21
- 307 EB2B JMP 0334 ;Skip data area to INITIALIZE for write.
-
- "WRITING" MESSAGE DATA AREA
- 300 0D 0A 0A 57 72 69 74 ...Writ
- 310 69 6E 67 20 41 44 41 4D-20 74 72 61 63 6B 73 20 ing ADAM tracks
- 320 6F 6E 20 41 3A 20 24 07-45 52 52 4F 52 20 24 07 on A: $.ERROR $.
-
- INITIALIZE FOR FIRST TRACK WRITE
- 334 BB0010 MOV BX,1000 ;Buffer Offset for first Track of ADAM.
- 337 53 PUSH BX ;Save for use again.
- 338 B90100 MOV CX,0001 ;CH=TRACK (0), CL=SECTOR (1) to start at.
- 33B 51 PUSH CX ;Save it.
- 33C BA0000 MOV DX,0000 ;DH=HEAD (0), DL=DRIVE (0=A:).
-
- WRITE 6 TRACKS
- 33F E81E00 CALL 0360 ;Do the WRITE ONE TRACK routine.
- 342 A02F03 MOV AL,[032F] ;Get TRACK COUNT value (7) stored at 32F,
- 345 FEC8 DEC AL ; (in "WRITING" data area), Subtract one.
- 347 7427 JZ 0370 ; If result=0 goto FINISHED,
- 349 A22F03 MOV [032F],AL ; Else store new TRACK COUNT value.
- 34C 59 POP CX ;Get TRACK & SECTOR numbers.
- 34D 5B POP BX ;Get BUFFER Offset address.
- 34E 81C10001 ADD CX,0100 ;Add 1 to Track, Sector (CH) stays 1
- 352 81C30010 ADD BX,1000 ;BUFFER+1000 (8 Sectors X 200 bytes)
- 356 53 PUSH BX ; Save
- 357 51 PUSH CX ; "
- 358 E83500 CALL 0390 ;Display a DOT
- 35C EBE1 JMP 033F ;Repeat this routine (write another Track). WRITE ONE TRACK
- 360 B80803 MOV AX,0308 ;BIOS Write Sectors - AL=Sector count.
- 363 31D2 XOR DX,DX ; Zero DX - DH=HEAD (0), DL=DRIVE (0=A:).
- 365 CD13 INT 13 ; Do it.
- 367 7202 JB 036B ;Carry=ERROR w/code in AH, goto 37B Else,
- 369 C3 RET ; RETurn to calling process (goto 342)
- 36A 90 NOP
- 36B E9A200 JMP 0410 ;Goto ERROR HANDLER and TERMINATE.
-
- FINISHED
- 370 B409 MOV AH,09 ;Display "DONE" message
- 372 BAA003 MOV DX,03A0 ; at 3A0
- 375 CD21 INT 21
- 377 CD20 INT 20 ;TERMINATE PROGRAM (successful write).
- 379 90 NOP
-
- DISPLAY A DOT TO INDICATE TRACK WRITTEN
- 390 B402 MOV AH,02 ;Display Character DOS Call
- 392 B2F9 MOV DL,F9 ;DL=ASCII character value in hexadecimal
- 394 CD21 INT 21 ; (ASCII F9h is a vertically centered DOT).
- 396 C3 RET ;RETurn to calling process (goto 35B).
-
- DONE MESSAGE DATA AREA
- 3A0 0D 0A 0A 44 4F 4E 45 2E-20 20 44 69 73 6B 20 69 ...DONE. Disk i
- 3B0 6E 20 41 3A 20 6E 6F 77-20 68 61 73 20 44 69 73 n A: now has Dis
- 3C0 6B 20 4D 61 6E 61 67 65-72 20 69 6E 73 74 61 6C k Manager instal
- 3D0 6C 65 64 2E 0D 0A 4F 6E-6C 79 20 54 72 61 63 6B led...Only Track
- 3E0 73 20 30 2D 36 20 28 41-44 41 4D 20 73 79 73 74 s 0-6 (ADAM syst
- 3F0 65 6D 20 61 72 65 61 29-20 77 65 72 65 20 77 72 em area) were wr
- 400 69 74 74 65 6E 2E 0D 0A-24 itten...$
-
-
- ERROR HANDLER (disk error)
- 410 86E2 XCHG AH,DL ;Put error code from INT 13/03 into DL,
- 412 52 PUSH DX ; save it.
- 413 B409 MOV AH,09 ;Display "ERROR"
- 415 BA2703 MOV DX,0327 ; text at 327.
- 418 CD21 INT 21
- 41A 5A POP DX ;Get error code
- 41B 52 PUSH DX ; Save it (for later program improvements)
- 41C B402 MOV AH,02 ; and Display it as an ASCII Character
- 41E CD21 INT 21 ; whose binary value can be decoded.
- 420 90 NOP
- 421 B400 MOV AH,00 ;BIOS Disk Reset (for next write attempt)
- 423 B200 MOV DL,00 ; on drive A:
- 425 CD13 INT 13
- 427 90 NOP
- 428 B409 MOV AH,09 ;Display FULL ERROR SCREEN
- 42A BA4004 MOV DX,0440 ; at 440
- 42D CD21 INT 21
- 42F 90 NOP
- 430 B44C MOV AH,4C ;TERMINATE PROGRAM DOS Call
- 432 CD21 INT 21 ; after unsuccessful write attempt.FULL ERROR MESSAGE SCREEN DATA AREA
- 440 0D 0A 2A 2A 20 45 52 52-4F 52 53 20 6E 6F 74 20 ..** ERRORS not
- 450 6E 6F 72 6D 61 6C 6C 79-20 64 65 74 65 63 74 65 normally detecte
- 460 64 20 62 79 20 4D 53 2D-44 4F 53 20 77 69 6C 6C d by MS-DOS will
- 470 20 61 62 6F 72 74 20 74-68 69 73 20 70 72 6F 67 abort this prog
- 480 72 61 6D 2E 0D 0A 2A 2A-20 49 66 20 65 72 72 6F ram...** If erro
- 490 72 73 20 6F 63 63 75 72-20 63 68 65 63 6B 20 74 rs occur check t
- 4A0 68 61 74 20 74 68 65 20-64 69 73 6B 20 69 6E 20 hat the disk in
- 4B0 41 3A 20 69 73 20 66 6F-72 6D 61 74 74 65 64 2C A: is formatted,
- 4C0 20 68 61 73 20 6E 6F 0D-0A 2A 2A 20 77 72 69 74 has no..** writ
- 4D0 65 20 70 72 6F 74 65 63-74 20 74 61 62 2C 20 61 e protect tab, a
- 4E0 6E 64 20 74 68 61 74 20-74 68 65 20 64 72 69 76 nd that the driv
- 4F0 65 20 64 6F 6F 72 20 69-73 20 63 6C 6F 73 65 64 e door is closed
- 500 2E 20 20 49 66 20 65 72-72 6F 72 73 0D 0A 2A 2A . If errors..**
- 510 20 70 65 72 73 69 73 74-2C 20 74 72 79 20 61 6E persist, try an
- 520 6F 74 68 65 72 20 64 69-73 6B 2E 20 20 46 72 65 other disk. Fre
- 530 71 75 65 6E 74 20 70 72-6F 62 6C 65 6D 73 20 6D quent problems m
- 540 61 79 20 69 6E 64 69 63-61 74 65 20 6C 6F 77 0D ay indicate low.
- 550 0A 2A 2A 20 71 75 61 6C-69 74 79 20 64 69 73 6B .** quality disk
- 560 73 2C 20 6F 72 20 61 20-6E 65 65 64 20 74 6F 20 s, or a need to
- 570 73 65 72 76 69 63 65 20-74 68 65 20 64 72 69 76 service the driv
- 580 65 20 62 65 66 6F 72 65-20 64 61 74 61 20 6C 6F e before data lo
- 590 73 73 2E 0D 0A 2A 2A 09-09 09 45 52 52 4F 52 20 ss...**...ERROR
- 5A0 4C 49 53 54 0D 0A 2A 2A-20 80 20 3D 20 44 69 73 LIST..** . = Dis
- 5B0 6B 20 74 69 6D 65 20 6F-75 74 20 28 6E 6F 20 72 k time out (no r
- 5C0 65 73 70 6F 6E 73 65 2C-20 64 72 69 76 65 20 6E esponse, drive n
- 5D0 6F 74 20 72 65 61 64 79-2C 20 64 6F 6F 72 20 6F ot ready, door o
- 5E0 70 65 6E 29 2E 0D 0A 2A-2A 20 02 20 3D 20 41 64 pen)...** . = Ad
- 5F0 64 72 65 73 73 20 6D 61-72 6B 20 6E 6F 74 20 66 dress mark not f
- 600 6F 75 6E 64 20 28 62 61-64 20 73 65 63 74 6F 72 ound (bad sector
- 610 2C 20 75 6E 66 6F 72 6D-61 74 74 65 64 20 64 69 , unformatted di
- 620 73 6B 29 2E 0D 0A 2A 2A-20 03 20 3D 20 57 72 69 sk)...** . = Wri
- 630 74 65 2D 70 72 6F 74 65-63 74 65 64 20 64 69 73 te-protected dis
- 640 6B 2E 0D 0A 2A 2A 20 04-20 3D 20 52 65 71 75 65 k...** . = Reque
- 650 73 74 65 64 20 73 65 63-74 6F 72 20 6E 6F 74 20 sted sector not
- 660 66 6F 75 6E 64 20 28 62-61 64 2F 64 61 6D 61 67 found (bad/damag
- 670 65 64 20 64 69 73 6B 29-2E 0D 0A 2A 2A 20 20 20 ed disk)...**
- 680 3D 20 43 6F 6E 74 72 6F-6C 6C 65 72 20 65 72 72 = Controller err
- 690 6F 72 2E 0D 0A 2A 2A 20-0C 20 28 6F 72 20 63 6C or...** . (or cl
- 6A0 65 61 72 65 64 20 73 63-72 65 65 6E 29 20 3D 20 eared screen) =
- 6B0 49 6E 76 61 6C 69 64 20-6D 65 64 69 61 2E 0D 0A Invalid media...
- 6C0 0A 2A 2A 20 4F 74 68 65-72 20 65 72 72 6F 72 73 .** Other errors
- 6D0 20 6D 61 79 20 6F 63 63-75 72 2C 20 77 68 69 63 may occur, whic
- 6E0 68 20 61 72 65 20 6E 6F-74 20 6C 69 73 74 65 64 h are not listed
- 6F0 20 61 62 6F 76 65 2E 24 above.$
-
- START OF BUFFER CONTAINING ADAM "DOS"
- 1000 F3 18 0D 45 4F 53 03 44-49 53 4B 5F 4D 47 52 03 ...EOS.DISK_MGR.