LS-DOS 6.3.1 - REPAIR Utility Assembly Listing (HTML format version)

[Copyright 1999,2002 Frank Durda IV, All Rights Reserved.
Mirroring of any material on this page in any form is expressly prohibited.
The official web site for this material is:  http://nemesis.lonestar.org
Contact this address for use clearances: clearance at nemesis.lonestar.org
Comments and queries to this address: web_software_2011 at nemesis.lonestar.org]
MISOSYS EDAS-4.3 04/11/99 22:05:01 REPAIR - LS-DOS 6.2          Page 00001 

              00001 ;REPAIR/ASM - Directory Track Repair Program
              00003 ;
000A          00004 LF      EQU     10
000D          00005 CR      EQU     13
4296          00006 BLNKMPW EQU     4296H
0040          00007 FLAG    EQU     01000000B
0010          00008 ABB     EQU     00010000B
              00009 ;
0000          00010 *GET    SVCMAC:3                ;SVC Macro equivalents
              00011 ;SVCMAC/ASM - LS-DOS Version VI
              00012 *LIST   OFF
              00404 *LIST   ON
0000          00406 *GET    COPYCOM:3               ;Copyright message
              00407 ; COPYCOM - File for Copyright COMment block
              00408 ;
0000          00409 *GET BUILDVER/ASM:3
              00410 ;
              00411 ;       Buildver/asm is a bit of a kludge since not all utilities can load
              00412 ;       equates from LDOS60 and still compile.  LOWCORE and everybody else
              00413 ;       relies on this setting, and it eventually ends up in LDOS60/EQU
              00414 ;       for programs that can use that.
              00415 ;
FFFF          00416 @BLD631         EQU     -1      ;<631>Build 631 distribution (LEVEL 1B)
              00417 ;       These switches activate patches made since the 1B release.
              00418 ;       It is important that all earlier patches be enabled when a higher
              00419 ;       patch is enabled.
              00420 ;       Patches C thru F were published in TMQ IV.iv, page 32 (NOTE: the
              00421 ;       patch addresses listed for SPOOL in SPOOL1/FIX are 19H high.)
FFFF          00422 @BLD631C        EQU     -1      ;<631>Apply 1C patches (SETKI)
FFFF          00423 @BLD631D        EQU     -1      ;<631>Apply 1D patches (DIR)
FFFF          00424 @BLD631E        EQU     -1      ;<631>Apply 1E patches (DIR & MEMDISK/DCT)
FFFF          00425 @BLD631F        EQU     -1      ;<631>Apply 1F patches (SPOOL)
              00426 ;       Patches G and H were published in TMQ V.i, pages 10 and 18/19.
FFFF          00427 @BLD631G        EQU     -1      ;<631>Apply 1G patches (//KEYIN,DIR,DO *)
FFFF          00428 @BLD631H        EQU     -1      ;<631>Apply 1H patches (MEMORY)
              00429 ;
              00430 ;End of BUILDVER/ASM
              00431         IF      @BLD631
              00433         ELSE
              00434         COM     '<*(C) 1982,3,4,6 by LSI*>'
              00435         ENDIF
              00436 ;
2600          00437         ORG     2600H
              00438 BEGIN
2600          00439         @@CKBRKC                ;Check for break
2600+3E6A     00440         LD      A,106
2602+EF       00441         RST     40
2603 2804     00442         JR      Z,BEGINA        ;Continue if not
2605 21FFFF   00443         LD      HL,-1           ;  else abort
2608 C9       00444         RET
              00445 ;
              00446 BEGINA
2609 ED731C26 00447         LD      (STACK),SP      ;Save entry stack
260D E5       00448         PUSH    HL              ;Save ptr to CMD buffer
260E 214A28   00449         LD      HL,HELLO$       ;Display the signon
2611 CD9F27   00450         CALL    $DSPLY
2614 E1       00451         POP     HL
2615 CD2226   00452         CALL    PGRM            ;Normal exit is via RET
              00453 ;
              00454 ;       Set exit condition..
              00455 ;
2618 210000   00456 $EXIT   LD      HL,0            ;Init for no error
261B 310000   00457 QUIT$   LD      SP,$-$          ;P/u original stack
261C          00458 STACK   EQU     $-2
261E          00459         @@CKBRKC                ;Clear break before exit
261E+3E6A     00460         LD      A,106
2620+EF       00461         RST     40
2621 C9       00462         RET
              00463 ;
2622 7E       00464 PGRM    LD      A,(HL)          ;Ck for drive entered
2623 FE3A     00465         CP      ':'             ;Colon indicator?
2625 C2E127   00466         JP      NZ,PRMERR       ;Quit if not
2628 23       00467         INC     HL              ;Point to drive #
2629 7E       00468         LD      A,(HL)          ;P/u drive
262A D630     00469         SUB     '0'             ;Cvrt to binary
262C FE08     00470         CP      8               ;Bigger than 7?
262E D24528   00471         JP      NC,ILLEG        ;Quit if so
              00472 ;
2631 B7       00473         OR      A               ;Can't be drive 0
2632 CADD27   00474         JP      Z,NOT0
2635 321C27   00475         LD      (DRIVE),A       ;Stuff for later
2638 23       00476         INC     HL              ;Bump past the drive
2639 4F       00477         LD      C,A
263A          00478         @@GTDCT                 ;What's its DCT$
263A+3E51     00479         LD      A,81
263C+EF       00480         RST     40
              00481 ;
              00482 ;       Get any parameters
              00483 ;
263D 114E29   00484         LD      DE,PRMTBL$      ;Pt to parm table
2640          00485         @@PARAM
2640+3E11     00486         LD      A,17
2642+EF       00487         RST     40
2643 C2E127   00488         JP      NZ,PRMERR       ;Exit on parm error
2646 3A5329   00489         LD      A,(MRSP)        ;MPW parameter entered?
2649 B7       00490         OR      A
264A C20627   00491         JP      NZ,MPARM        ;Go if so
264D FDCB035E 00492         BIT     3,(IY+3)        ;Can't "repair" a hard drive
2651 C2D927   00493         JP      NZ,NIXHARD      ;  except for MPW parm
2654 FDCB0466 00494         BIT     4,(IY+4)        ;If not alien controller
2658 CC1128   00495         CALL    Z,CKDRV         ;  make sure disk present
265B 110000   00496         LD      DE,0            ;Read BOOT to get dir cyl
265E CDB827   00497         CALL    RDSEC
2661 AF       00498         XOR     A
2662 32002A   00499         LD      (BUF1),A        ;Set 1st byte to zero
2665 3A022A   00500         LD      A,(BUF1+2)      ;P/u the dir cyl
2668 E67F     00501         AND     7FH             ;Strip bit 7
266A 32022A   00502         LD      (BUF1+2),A      ;Put it back
266D F5       00503         PUSH    AF              ;Save dir cyl
266E CDB227   00504         CALL    WRSEC           ;Rewrite the BOOT
2671 1C       00505         INC     E
2672 CDB827   00506         CALL    RDSEC           ;Get sect 1 also
2675 F1       00507         POP     AF
2676 32022A   00508         LD      (BUF1+2),A      ;Update dir cyl
2679 F5       00509         PUSH    AF
267A CDB227   00510         CALL    WRSEC           ;Write back
267D F1       00511         POP     AF              ;Dir cyl again
              00512 ;
267E 57       00513         LD      D,A
267F 1E00     00514         LD      E,0
2681 FD7709   00515         LD      (IY+9),A        ;Set as dir cyl
2684 CDB827   00516         CALL    RDSEC           ;Read the GAT
              00517 ;
2687 FDCB04AE 00518         RES     5,(IY+4)        ;Show single sided
268B 2ECB     00519         LD      L,0CBH          ;Pt to version # byte
268D 7E       00520         LD      A,(HL)          ;Pick it up
268E FE40     00521         CP      40H             ;Earlier than a 4.0?
2690 380E     00522         JR      C,LC            ;Bypass 2 sided ck if so
2692 FE70     00523         CP      70H             ;"Later" than 6.x?
2694 300A     00524         JR      NC,LC           ;Again, no sides ck
2696 2ECD     00525         LD      L,0CDH          ;Point to CONFIG byte
2698 CB6E     00526         BIT     5,(HL)          ;Check 2-sided
269A 2804     00527         JR      Z,LC            ;Go if not
269C FDCB04EE 00528         SET     5,(IY+4)        ;  else update DCT
              00529 ;
26A0 2EBF     00530 LC      LD      L,0BFH          ;Pt to end of lockout
26A2 0660     00531         LD      B,96            ;Max cylinder count
26A4 7E       00532 ALIEN1  LD      A,(HL)          ;P/u a lockout byte
26A5 3C       00533         INC     A               ;Locked out?
26A6 2003     00534         JR      NZ,ALIEN2       ;Exit when in use
26A8 2D       00535         DEC     L               ;Backup by 1
26A9 10F9     00536         DJNZ    ALIEN1
26AB 3EDD     00537 ALIEN2  LD      A,-35           ;What's in use?
26AD 80       00538         ADD     A,B             ;Convert to excess
26AE 2ECC     00539         LD      L,0CCH
26B0 77       00540         LD      (HL),A          ;Stuff into GAT
              00541 ;
              00542 ;       Construct config byte
              00543 ;
26B1 FD7E04   00544         LD      A,(IY+4)        ;P/u # sides
26B4 E6A0     00545         AND     80H!20H
26B6 47       00546         LD      B,A             ;Save tempy
26B7 FD7E03   00547         LD      A,(IY+3)        ;P/u density
26BA E640     00548         AND     40H
26BC B0       00549         OR      B               ;Merge with previous
26BD 47       00550         LD      B,A
26BE FD7E08   00551         LD      A,(IY+8)        ;P/u # grans/track
26C1 07       00552         RLCA
26C2 07       00553         RLCA                    ;  to bits 0-2
26C3 07       00554         RLCA
26C4 E607     00555         AND     7               ;Mask off the rest
26C6 B0       00556         OR      B               ;Merge with previous
26C7 2C       00557         INC     L               ;Pt to config byte in GAT
26C8 47       00558         LD      B,A             ;Save for a moment
26C9 7E       00559         LD      A,(HL)          ;P/u present config byte
26CA E680     00560         AND     80H             ;Keep only bit 7
26CC B0       00561         OR      B               ;Pick up the rest
26CD 77       00562         LD      (HL),A          ;  & stuff
26CE 2E00     00563         LD      L,0
26D0 CDA527   00564         CALL    WRSYS           ;Write the GAT
              00565 ;
              00566 ;       Operate on the HIT
              00567 ;
26D3 1C       00568         INC     E               ;Bump sector ptr to 1
26D4 CDB827   00569         CALL    RDSEC           ;Read the HIT
26D7 2C       00570         INC     L               ;Pt to DIR/SYS dec
26D8 36C4     00571         LD      (HL),0C4H       ;"correct" DEC code
26DA 2D       00572         DEC     L
26DB CDA527   00573         CALL    WRSYS           ;Write out the HIT
26DE 0608     00574         LD      B,8             ;Init for 8 sectors
26E0 1C       00575 ALIEN3  INC     E               ;Bump to next sector
26E1 CDB827   00576         CALL    RDSEC           ;Get the sector
26E4 CD8F27   00577         CALL    UNOPEN          ;Reset file open bit
26E7 7B       00578         LD      A,E             ;If DIR/SYS sector,
26E8 FE03     00579         CP      3               ;  then update count & it
26EA 200E     00580         JR      NZ,ALIEN4
26EC E5       00581         PUSH    HL
26ED 219642   00582         LD      HL,BLNKMPW      ;Set DIR/SYS password
26F0 22122A   00583         LD      (BUF1+12H),HL   ;To blanks
26F3 3A142A   00584         LD      A,(BUF1+20)     ;P/u ERN of DIR/SYS
26F6 D603     00585         SUB     3               ;Account for 1st 3 done
26F8 47       00586         LD      B,A             ;Update loop counter
26F9 E1       00587         POP     HL
26FA CDA527   00588 ALIEN4  CALL    WRSYS           ;Write back the sector
26FD 10E1     00589         DJNZ    ALIEN3
              00590 ;
26FF          00591         @@LOGOT ALCAO$          ;Advise complete - now readable
              00592         IFEQ    01H,1
26FF+21CF28   00593         LD      HL,ALCAO$
              00594         ENDIF
2702+3E0C     00595         LD      A,12
2704+EF       00596         RST     40
2705 C9       00597         RET                     ;Done
              00598 ;
              00599 ;       MPW parameter to change disk password on hard drive
              00600 ;
2706 110000   00601 MPARM   LD      DE,0            ;P/u MPW string address
2709 CB6F     00602         BIT     5,A             ;If not string, then error
270B CAE127   00603         JP      Z,PRMERR
270E FDCB035E 00604         BIT     3,(IY+3)        ;Can't do if not hard
2712 CAE127   00605         JP      Z,PRMERR
2715 CD2D27   00606         CALL    GETMPW          ;Get and hash the entry
2718 C2C227   00607         JP      NZ,IOERR
271B 0E00     00608         LD      C,0             ;Init to drive requested
271C          00609 DRIVE   EQU     $-1
271D CDEE27   00610         CALL    GATRD           ;Read GAT into BUF1
2720 C2C227   00611         JP      NZ,IOERR        ;Back on error
2723 22CE2A   00612         LD      (BUF1+0CEH),HL  ;Stuff PW
2726 CDEF27   00613         CALL    GATWR           ;Write sector 0 from buf
2729 C2C227   00614         JP      NZ,IOERR        ;Jump on write error
272C C9       00615         RET                     ;Finished with Repair
              00616 ;
              00617 ;       Enter SYS2 & hash the password
              00618 ;
272D CD3427   00619 GETMPW  CALL    GMPW1           ;Get MPW into buffer
2730 C0       00620         RET     NZ
2731 3EE4     00621         LD      A,0E4H          ;Hash password (DE) to HL
2733 EF       00622         RST     28H             ;Ret to what called
              00623 ;
              00624 ;       Place entered password into buffer
              00625 ;
2734 215729   00626 GMPW1   LD      HL,PSWDBUF      ;Point to buffer
2737 E5       00627         PUSH    HL
2738 0608     00628         LD      B,8             ;Init for 8 chars
273A 1A       00629 GMPW2   LD      A,(DE)          ;P/u a char
273B FE0D     00630         CP      CR              ;End of line?
273D 280F     00631         JR      Z,GMPW4
273F FE2C     00632         CP      ','             ;Comma separator?
2741 280B     00633         JR      Z,GMPW4
2743 FE22     00634         CP      '"'             ;Closing quote?
2745 2807     00635         JR      Z,GMPW4
2747 13       00636         INC     DE              ;Bump input pointer
2748 77       00637         LD      (HL),A          ;Transfer character
2749 23       00638         INC     HL              ;Bump output pointer
274A 10EE     00639         DJNZ    GMPW2           ;Loop until done
274C 1805     00640         JR      CKMPW
274E 3620     00641 GMPW4   LD      (HL),' '        ;Buffer with
2750 23       00642         INC     HL              ;  trailing spaces
2751 10FB     00643         DJNZ    GMPW4
              00644 ;
              00645 ;       Convert to upper case and check validity
              00646 ;
2753 E1       00647 CKMPW   POP     HL              ;Recover buffer start
2754 E5       00648         PUSH    HL
2755 0608     00649         LD      B,8
2757 7E       00650         LD      A,(HL)          ;P/u 1st char
2758 180E     00651         JR      CKMPW2          ;  & check 
275A 23       00652 CKMPW1  INC     HL
275B 7E       00653         LD      A,(HL)
275C FE20     00654         CP      ' '             ;Got to a space?
275E 2823     00655         JR      Z,CKMPW7
2760 FE30     00656         CP      '0'             ;Less than '0' is error
2762 3823     00657         JR      C,INVMPW
2764 FE3A     00658         CP      '9'+1           ;<0-9> is okay for 2-n
2766 3812     00659         JR      C,CKMPW3
2768 FE41     00660 CKMPW2  CP      'A'             ;Less than "A" is error
276A 381B     00661         JR      C,INVMPW
276C FE5B     00662         CP      'Z'+1           ; is okay
276E 380A     00663         JR      C,CKMPW3
2770 FE61     00664         CP      'a'             ; convert to
2772 3813     00665         JR      C,INVMPW
2774 FE7B     00666         CP      'z'+1
2776 300F     00667         JR      NC,INVMPW
2778 CBAE     00668         RES     5,(HL)          ;  upper case
277A 10DE     00669 CKMPW3  DJNZ    CKMPW1
277C D1       00670 CKMPW4  POP     DE              ;Point to buffer start
277D AF       00671         XOR     A
277E C9       00672         RET
277F 23       00673 CKMPW5  INC     HL
2780 BE       00674         CP      (HL)            ;No imbedded spaces
2781 2004     00675         JR      NZ,INVMPW
2783 10FA     00676 CKMPW7  DJNZ    CKMPW5
2785 18F5     00677         JR      CKMPW4
2787 211C29   00678 INVMPW  LD      HL,BADMPW$      ;Init "Invalid PW
278A 3E3F     00679         LD      A,63            ;Set extended error
278C B7       00680         OR      A               ;Set NZ condition
278D D1       00681         POP     DE              ;Clean up stack
278E C9       00682         RET
              00683 ;
              00684 ;       Reset any file open bits
              00685 ;
278F E5       00686 UNOPEN  PUSH    HL              ;Save buffer posn
2790 C5       00687         PUSH    BC
2791 0608     00688         LD      B,8             ;8 entries
2793 2C       00689         INC     L               ;Dir + 1
2794 CBAE     00690 ZAP     RES     5,(HL)          ;Clear file open bit
2796 3E20     00691         LD      A,32
2798 85       00692         ADD     A,L             ;Pt to next Dir+1
2799 6F       00693         LD      L,A
279A 10F8     00694         DJNZ    ZAP             ;Do 8 entries per direc
279C C1       00695         POP     BC
279D E1       00696         POP     HL
279E C9       00697         RET
              00698 ;
279F          00699 $DSPLY  @@DSPLY                 ;Display a line
              00700         IFEQ    00H,1
              00701         LD      HL,
              00702         ENDIF
279F+3E0A     00703         LD      A,10
27A1+EF       00704         RST     40
27A2 C8       00705         RET     Z
27A3 181D     00706         JR      IOERR
              00707 ;
27A5          00708 WRSYS   @@WRSSC                 ;Write the sector
27A5+3E36     00709         LD      A,54
27A7+EF       00710         RST     40
27A8 2018     00711         JR      NZ,IOERR
27AA          00712         @@VRSEC                 ;Verify it
27AA+3E32     00713         LD      A,50
27AC+EF       00714         RST     40
27AD FE06     00715         CP      6               ;Must be SYSTEM sector
27AF C8       00716         RET     Z
27B0 1810     00717         JR      IOERR
              00718 ;
27B2          00719 WRSEC   @@WRSEC                 ;Write normal sector
27B2+3E35     00720         LD      A,53
27B4+EF       00721         RST     40
27B5 C8       00722         RET     Z
27B6 180A     00723         JR      IOERR
              00724 ;
              00725 ;       Sector read routine
              00726 ;
27B8 21002A   00727 RDSEC   LD      HL,BUF1         ;Read sector
27BB          00728         @@RDSEC 
27BB+3E31     00729         LD      A,49
27BD+EF       00730         RST     40
27BE C8       00731         RET     Z
27BF FE06     00732         CP      6
27C1 C8       00733         RET     Z               ;Fall thru to error?
              00734 ;
              00735 ;       Error exits
              00736 ;
27C2 FE3F     00737 IOERR   CP      63              ;Extended error?
27C4 281F     00738         JR      Z,EXTERR        ;Log it and quit
27C6 2600     00739         LD      H,0             ;Error to HL
27C8 6F       00740         LD      L,A
27C9 E5       00741         PUSH    HL              ;Save error code
27CA F6C0     00742         OR      0C0H            ;Set short, return
27CC 4F       00743         LD      C,A             ;Error to C for
27CD          00744         @@ERROR                 ;  display
27CD+3E1A     00745         LD      A,26
27CF+EF       00746         RST     40
              00747 ;
27D0 21E828   00748         LD      HL,ABTJOB$      ;Init"Job aborted
              00749 ;
27D3          00750         @@LOGOT                 ;Log the msg
              00751         IFEQ    00H,1
              00752         LD      HL,
              00753         ENDIF
27D3+3E0C     00754         LD      A,12
27D5+EF       00755         RST     40
27D6 E1       00756         POP     HL              ;Recover error code
27D7 1812     00757         JR      QUIT$$
              00758 ;
              00759 ;       Internal error handler
              00760 ;
27D9 213429   00761 NIXHARD LD      HL,NIXHARD$     ;"Can't to hard drive
27DC DD       00762         DB      0DDH
27DD 21F728   00763 NOT0    LD      HL,NOT0$        ;"Can't do drive 0
27E0 DD       00764         DB      0DDH
27E1 210C29   00765 PRMERR  LD      HL,PRMERR$      ;"Parm error
27E4 DD       00766         DB      0DDH
27E5          00767 EXTERR  @@LOGOT                 ;Display the error
              00768         IFEQ    00H,1
              00769         LD      HL,
              00770         ENDIF
27E5+3E0C     00771         LD      A,12
27E7+EF       00772         RST     40
27E8 21FFFF   00773         LD      HL,-1           ;Set abort code
27EB C31B26   00774 QUIT$$  JP      QUIT$
              00775 ;
              00776 ;       Read the granule allocation table
              00777 ;
27EE F6       00778 GATRD   DB      0F6H            ;Set NZ for test
27EF AF       00779 GATWR   XOR     A               ;Set Z for test
27F0 E5       00780         PUSH    HL
27F1 F5       00781         PUSH    AF
27F2 FD5609   00782         LD      D,(IY+9)        ;Dir cylinder
27F5 21002A   00783         LD      HL,BUF1
27F8 5D       00784         LD      E,L             ;Set to sector 0
27F9 F1       00785         POP     AF
27FA 2807     00786         JR      Z,GATRW1        ;Go if write
27FC          00787         @@RDSSC
27FC+3E55     00788         LD      A,85
27FE+EF       00789         RST     40
27FF 3E14     00790         LD      A,14H
2801 180C     00791         JR      GATRW3
2803          00792 GATRW1  @@WRSSC
2803+3E36     00793         LD      A,54
2805+EF       00794         RST     40
2806 2003     00795         JR      NZ,GATRW2       ;Skip verify if error
2808          00796         @@VRSEC                 ;Verify the write
2808+3E32     00797         LD      A,50
280A+EF       00798         RST     40
280B FE06     00799 GATRW2  CP      6               ;Expect error 6
280D 3E15     00800         LD      A,15H           ;Init "Gat error
280F E1       00801 GATRW3  POP     HL
2810 C9       00802         RET
              00803 ;
              00804 ;       Routine to check on floppy present
              00805 ;
2811 3E28     00806 CKDRV   LD      A,40            ;@DCSTAT
2813 EF       00807         RST     28H
2814 202F     00808         JR      NZ,ILLEG
2816 3E2C     00809         LD      A,44            ;@RSTORE
2818 EF       00810         RST     28H
2819 21002A   00811         LD      HL,BUF1         ;Set up for
281C C5       00812         PUSH    BC              ;  mini ckdrv
281D          00813         @@TIME                  ;P/u timer ptr
281D+3E13     00814         LD      A,19
281F+EF       00815         RST     40
2820 C1       00816         POP     BC
2821 EB       00817         EX      DE,HL           ;Pt HL to
2822 2B       00818         DEC     HL              ;  heartbeat counter
2823 3E2F     00819         LD      A,47            ;@RSLCT
2825 EF       00820         RST     28H             ;Wait till ready
2826 7E       00821         LD      A,(HL)          ;Get heartbeat count
2827 C614     00822         ADD     A,20            ;Init to + 500ms
2829 57       00823         LD      D,A             ;Store for timeout check
282A CD3A28   00824 CK1     CALL    INDEX
282D 20FB     00825         JR      NZ,CK1          ;Get no pulse
282F CD3A28   00826 CK2     CALL    INDEX
2832 28FB     00827         JR      Z,CK2           ;Get pulse
2834 CD3A28   00828 CK3     CALL    INDEX
2837 20FB     00829         JR      NZ,CK3          ;Get no pulse
2839 C9       00830         RET
              00831 ;
283A 7E       00832 INDEX   LD      A,(HL)          ;Get time
283B BA       00833         CP      D               ;Interval expired?
283C 2806     00834         JR      Z,ILLG1
283E 3E2F     00835         LD      A,47            ;@RSLCT
2840 EF       00836         RST     28H
2841 CB4F     00837         BIT     1,A             ;Test for index pulse
2843 C9       00838         RET
              00839 ;
2844 E1       00840 ILLG1   POP     HL              ;Fix stack
2845 3E20     00841 ILLEG   LD      A,32            ;'illegal drv #'
2847 C3C227   00842         JP      IOERR
              00843 ;
              00844 ;
              00845 ;       Messages
              00846 ;
284A 52       00847 HELLO$  DB      'REPAIR'
     45 50 41 49 52 
2850          00848 *GET    CLIENT:3
              00849 ;CLIENT/ASM - File to establish sign-on headers
              00850 ; and version numbers.
              00851 ;
              00852 ; EACH STRING SHOULD CONTAIN ONLY 63 CHARACTERS !!
              00853 ;
              00854         IF      @BLD631
              00855 ;                12345678901234567890123456789012345678901234567890
2850 20       00856         DB      ' - 6.3.1 - Copyright 1982/83/84/86/90 by MISOSYS, ';<631>
     2D 20 36 2E 33 2E 31 20
     2D 20 43 6F 70 79 72 69
     67 68 74 20 31 39 38 32
     2F 38 33 2F 38 34 2F 38
     36 2F 39 30 20 62 79 20
     4D 49 53 4F 53 59 53 2C
     20 
2882 49       00857         DB      'Inc.,       ',10       ;<631>
     6E 63 2E 2C 20 20 20 20
     20 20 20 0A 
              00858         ELSE
              00859         DB      ' - 6.3.0 - Copyright 1982/83/84/86 by Logical Syst'
              00860         DB      'ems, Inc.   ',10
              00861         ENDIF
              00862 ;
              00863 ;       DB      'All Rights Reserved. Licensed 1982/83/84 to Tandy '
              00864 ;       DB      'Corporation.',10,13
              00865 ;
              00866 ;       DB      'All Rights Reserved. Beta-TEST Level/AD, DO NOT DI'
              00867 ;       DB      'STRIBUTE !! ',10,13
              00868 ;       DB      'All Rights reserved by LSI, 8970 N. 55th St. Milwa'
              00869 ;       DB      'ukee, Wisc. ',10,13
288F 41       00870         DB      'All Rights Reserved. Unauthorized duplication is p'
     6C 6C 20 52 69 67 68 74
     73 20 52 65 73 65 72 76
     65 64 2E 20 55 6E 61 75
     74 68 6F 72 69 7A 65 64
     20 64 75 70 6C 69 63 61
     74 69 6F 6E 20 69 73 20
     70 
28C1 72       00871         DB      'rohibited.  ',10,13
     6F 68 69 62 69 74 65 64
     2E 20 20 0A 0D 
              00872 ;
28CF 52       00873 ALCAO$  DB      'Repair function complete',CR
     65 70 61 69 72 20 66 75
     6E 63 74 69 6F 6E 20 63
     6F 6D 70 6C 65 74 65 0D
28E8 52       00874 ABTJOB$ DB      'REPAIR aborted',CR
     45 50 41 49 52 20 61 62
     6F 72 74 65 64 0D 
28F7 43       00875 NOT0$   DB      'Can''t REPAIR drive 0',CR
     61 6E 27 74 20 52 45 50
     41 49 52 20 64 72 69 76
     65 20 30 0D 
290C 50       00876 PRMERR$ DB      'Parameter error',CR
     61 72 61 6D 65 74 65 72
     20 65 72 72 6F 72 0D 
291C 49       00877 BADMPW$ DB      'Invalid master password',CR
     6E 76 61 6C 69 64 20 6D
     61 73 74 65 72 20 70 61
     73 73 77 6F 72 64 0D 
2934 43       00878 NIXHARD$        DB      'Can''t repair a hard drive',CR
     61 6E 27 74 20 72 65 70
     61 69 72 20 61 20 68 61
     72 64 20 64 72 69 76 65
     0D 
              00879 ;
294E 80       00880 PRMTBL$ DB      80H
0020          00881 STR     EQU     20H
294F 23       00882         DB      STR!3,'MPW'
     4D 50 57 
2953 00       00883 MRSP    DB      0
2954 0727     00884         DW      MPARM+1
2956 00       00885         NOP
              00886 ;
2957          00887 PSWDBUF DS      8               ;Password buffer
295F          00888 HASHBUF DS      4               ;Owner & user hashes
2963          00889 FCB     DS      32
2A00          00890         ORG     $<-8+1<+8
2A00          00891 BUF1    DS      256
              00892 ;
2600          00893         END     BEGIN
2600 is the transfer address
00000 Total errors


[Copyright 1999,2002 Frank Durda IV, All Rights Reserved.
Mirroring of any material on this page in any form is expressly prohibited.
The official web site for this material is:  http://nemesis.lonestar.org
Contact this address for use clearances: clearance at nemesis.lonestar.org
Comments and queries to this address: web_software_2011 at nemesis.lonestar.org]

Valid HTML 4.01!