MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00001 00001 ;BACKUP/ASM - File/disk copy utility 00003 ; 0000 00004 *GET BUILDVER:3 00005 ; 00006 ; Buildver/asm is a bit of a kludge since not all utilities can load 00007 ; equates from LDOS60 and still compile. LOWCORE and everybody else 00008 ; relies on this setting, and it eventually ends up in LDOS60/EQU 00009 ; for programs that can use that. 00010 ; FFFF 00011 @BLD631 EQU -1 ;<631>Build 631 distribution (LEVEL 1B) 00012 ; These switches activate patches made since the 1B release. 00013 ; It is important that all earlier patches be enabled when a higher 00014 ; patch is enabled. 00015 ; Patches C thru F were published in TMQ IV.iv, page 32 (NOTE: the 00016 ; patch addresses listed for SPOOL in SPOOL1/FIX are 19H high.) FFFF 00017 @BLD631C EQU -1 ;<631>Apply 1C patches (SETKI) FFFF 00018 @BLD631D EQU -1 ;<631>Apply 1D patches (DIR) FFFF 00019 @BLD631E EQU -1 ;<631>Apply 1E patches (DIR & MEMDISK/DCT) FFFF 00020 @BLD631F EQU -1 ;<631>Apply 1F patches (SPOOL) 00021 ; Patches G and H were published in TMQ V.i, pages 10 and 18/19. FFFF 00022 @BLD631G EQU -1 ;<631>Apply 1G patches (//KEYIN,DIR,DO *) FFFF 00023 @BLD631H EQU -1 ;<631>Apply 1H patches (MEMORY) 00024 ; 00025 ;End of BUILDVER/ASM 0000 00026 *GET BACKUP1:3 00027 ;BACKUP1/ASM - Backup utility module MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00002 'Build 631 distribution (LEVEL 1B) 00450 ; These switches activate patches made since the 1B release. 00451 ; It is important that all earlier patches be enabled when a higher 00452 ; patch is enabled. 00453 ; Patches C thru F were published in TMQ IV.iv, page 32 (NOTE: the 00454 ; patch addresses listed for SPOOL in SPOOL1/FIX are 19H high.) FFFF 00455 @BLD631C EQU -1 ;<631>Apply 1C patches (SETKI) FFFF 00456 @BLD631D EQU -1 ;<631>Apply 1D patches (DIR) FFFF 00457 @BLD631E EQU -1 ;<631>Apply 1E patches (DIR & MEMDISK/DCT) FFFF 00458 @BLD631F EQU -1 ;<631>Apply 1F patches (SPOOL) 00459 ; Patches G and H were published in TMQ V.i, pages 10 and 18/19. FFFF 00460 @BLD631G EQU -1 ;<631>Apply 1G patches (//KEYIN,DIR,DO *) FFFF 00461 @BLD631H EQU -1 ;<631>Apply 1H patches (MEMORY) 00462 ; 00463 ;End of BUILDVER/ASM 00464 IF @BLD631 00466 ELSE 00467 COM '<*(C) 1982,3,4,6 by LSI*>' 00468 ENDIF 00469 ; 2600 00470 ORG 2600H 00471 ; 00472 IF @MOD2 00473 BOOTST$ DB 03H MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00003 '' 00501 ; 00503 ENDIF 00504 ; 00505 ; 00506 ; Normal exit - no errors 00507 ; 2685 216B2A 00508 EXIT1 LD HL,BUCAO$ ;"Backup complete... 2688 E5 00509 PUSH HL ;Save msg ptr 2689 CDC926 00510 CALL EXIT5 ;Ck if prompt for sys disk 268C E1 00511 POP HL 268D 00512 @@DSPLY 00513 IFEQ 00H,1 00514 LD HL, 00515 ENDIF 268D+3E0A 00516 LD A,10 268F+EF 00517 RST 40 2690 182B 00518 JR EXIT 00519 ; 00520 ; Error exit 00521 ; 2692 3E11 00522 DIRERR LD A,17 ;Init "Dir read error 2694 01 00523 DB 1 ;Ignore next inst 2695 3E20 00524 EXIT2 LD A,20H ;Init illegal drive # MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00004 ' 0 26FE B7 00604 OR A ; then no need to prompt 26FF C0 00605 RET NZ 2700 3E00 00606 SYSDRV$ LD A,0 ;P/u drive 0 indicator 2702 F620 00607 OR 20H ;Set bit 5 for sys test 2704 E5 00608 PUSH HL 2705 216D29 00609 LD HL,PMTSYS$ ;"insert system... 2708 F5 00610 PUSH AF ;Save drive # 2709 3AFC27 00611 LD A,(CURDSK+1) ;Save cur disk 270C 323B27 00612 LD (TDSK),A 270F F1 00613 POP AF 2710 CDFB27 00614 CALL CURDSK ;get wanted disk 2713 3AFC27 00615 LD A,(CURDSK+1) 2716 E607 00616 AND 7 ;Mask all but drive 2718 4F 00617 LD C,A ;Drive # to C 2719 00618 @@GTDCT ;Get the DCT this drive 2719+3E51 00619 LD A,81 271B+EF 00620 RST 40 271C FD7E04 00621 LD A,(IY+4) ;Get ckdrv bit 271F F5 00622 PUSH AF 2720 E67F 00623 AND 7FH ;Mask ckdrv, force on 2722 FD7704 00624 LD (IY+4),A 2725 FDE5 00625 PUSH IY 2727 00626 @@CKDRV 2727+3E21 00627 LD A,33 2729+EF 00628 RST 40 MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00006 ' dest 275D CD9228 00663 CALL RESTOR ;Restore to cyl 0 2760 C5 00664 PUSH BC 2761 D5 00665 PUSH DE ;Save registers 2762 E5 00666 PUSH HL 2763 21002D 00667 LD HL,BUF3$ ;Use this for I/O buffer 2766 110000 00668 LD DE,0 ;Read the BOOT 2769 CDA628 00669 CALL RDSEC 276C E1 00670 POP HL 276D D1 00671 POP DE ;Restore the registers 276E C1 00672 POP BC 276F C29726 00673 JP NZ,EXIT3 ;Quit on read error 2772 3A002D 00674 LD A,(BUF3$) ;P/u 1st byte of BOOT 2775 B7 00675 OR A ;If source, s/b 0 2776 2030 00676 JR NZ,PSRC3 ;Jump if not this disk 2778 C5 00677 PUSH BC 2779 D5 00678 PUSH DE 277A E5 00679 PUSH HL 277B FD5609 00680 LD D,(IY+9) ;P/u dir cyl MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00007 ' dest 27CA CD9228 00731 CALL RESTOR ; else restore to cyl 0 27CD C5 00732 PUSH BC MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00008 ' dest 00773 ; 00774 ; Routine to flash the prompt 00775 ; 2807 C5 00776 FLASH PUSH BC 2808 D5 00777 PUSH DE 2809 E5 00778 PUSH HL 280A 00779 @@FLAGS ;IY => flag table base 280A+3E65 00780 LD A,101 280C+EF 00781 RST 40 280D 0E0D 00782 LD C,CR ;Write a new line 280F 00783 @@DSP 280F+3E02 00784 LD A,2 MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00009 '',3 1E 49 6E 73 65 72 74 20 53 59 53 54 45 4D 20 64 69 73 6B 20 20 3C 45 4E 54 45 52 3E 03 298B 1D 00970 PMTSRC$ DB 29,30,'Insert SOURCE disk ',3 1E 49 6E 73 65 72 74 20 MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00013 '',3 45 4E 54 45 52 3E 03 29CC 1D 00973 DIFSRC$ DB 29,30,'* A L E R T * That',27H 1E 2A 20 41 20 4C 20 45 20 52 20 54 20 2A 20 20 54 68 61 74 27 29E2 73 00974 DB 's not the same source disk ',CR 20 6E 6F 74 20 74 68 65 20 73 61 6D 65 20 73 6F 75 72 63 65 20 64 69 73 6B 20 0D 29FE 1D 00975 DIFDST$ DB 29,30,'* A L E R T * That',27H 1E 2A 20 41 20 4C 20 45 20 52 20 54 20 2A 20 20 54 68 61 74 27 2A14 73 00976 DB 's not the same destination disk ',CR 20 6E 6F 74 20 74 68 65 20 73 61 6D 65 20 64 65 73 74 69 6E 61 74 69 6F 6E 20 64 69 73 6B 20 0D 2A35 53 00977 CCMOD$ DB 'Source disk is write protected; ' 6F 75 72 63 65 20 64 69 73 6B 20 69 73 20 77 72 69 74 65 20 70 72 6F 74 65 63 74 65 64 3B 20 2A55 4D 00978 DB 'MOD flags not updated',CR 4F 44 20 66 6C 61 67 73 20 6E 6F 74 20 75 70 64 61 74 65 64 0D 2A6B 0A 00979 BUCAO$ DB LF,'Backup complete',CR 42 61 63 6B 75 70 20 63 6F 6D 70 6C 65 74 65 0D 2A7C 0A 00980 ABRTBU$ DB LF,'Command aborted',14,CR 43 6F 6D 6D 61 6E 64 20 61 62 6F 72 74 65 64 0E 0D 2A8E 43 00981 CANTBU$ DB 'Can''t Backup - source disk write protected',LF 61 6E 27 74 20 42 61 63 6B 75 70 20 2D 20 73 6F 75 72 63 65 20 64 69 73 6B 20 77 72 69 74 65 20 70 72 6F 74 65 63 74 65 64 0A 2AB9 44 00982 PROT$ DB 'Disk contains protected files ',CR MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00014 ' flag table 2E1A+3E65 01020 LD A,101 2E1C+EF 01021 RST 40 2E1D FDE5 01022 PUSH IY 2E1F D1 01023 POP DE 2E20 211800 01024 LD HL,'Y'-'A' ;Get year type locn 2E23 19 01025 ADD HL,DE 2E24 223743 01026 LD (YFLAG1),HL ;Save for ckdrv 2E27 CD8028 01027 CALL RESKFLG ;Reset KFLAG bits 2E2A FDCB024E 01028 BIT 1,(IY+'C'-'A') ;Check on CMNDR active 2E2E 219A44 01029 LD HL,LDOS$ 2E31 C2AF26 01030 JP NZ,EXIT4 ; and exit if so 2E34 E1 01031 POP HL 2E35 7E 01032 BCK1 LD A,(HL) ;Bypass cmdline spaces 2E36 23 01033 INC HL 2E37 FE20 01034 CP ' ' 2E39 28FA 01035 JR Z,BCK1 01036 ; 01037 ; Scan for source partial spec 01038 ; 2E3B 110226 01039 LD DE,SPCFLD$ ;Pt to filespec field 2E3E 0608 01040 LD B,8 ;Init for file name 2E40 FE2D 01041 CP '-' ;Exclude matches? 2E42 2005 01042 JR NZ,BCK2 ;If '-', set flag 2E44 320D26 01043 LD (MFLG$),A MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00016 ' 2E8B 324227 01087 LD (SRCDRV$+1),A ;Stuff source drive 2E8E 7E 01088 BCK5 LD A,(HL) ;P/u char or separator 2E8F 23 01089 INC HL ;Bump ptr 2E90 FE3A 01090 CP ':' ;Find dest drive? 2E92 281F 01091 JR Z,BCK6 ;Get drive # if : 2E94 FE30 01092 CP 30H ; let prepositions thru 2E96 30F6 01093 JR NC,BCK5 2E98 FE20 01094 CP 20H ;Or a space separator 2E9A 28F2 01095 JR Z,BCK5 MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00017 ' 2EBC 32AF27 01118 LD (DSTDRV$+1),A ;Stuff dest drive 01119 ; 2EBF 117043 01120 LD DE,PRMTBL$ ;P/u parm table ptr 2EC2 D5 01121 PUSH DE ;Also in IX to check 2EC3 DDE1 01122 POP IX ; responses 2EC5 01123 @@PARAM ;Get parms if any 2EC5+3E11 01124 LD A,17 2EC7+EF 01125 RST 40 2EC8 21BF44 01126 LD HL,PRMERR$ ;Init "parm error 2ECB 2005 01127 JR NZ,$EX4 ;Quit on parm error 2ECD DD7E30 01128 LD A,(IX+DATRSP) ;Date can only be STR 2ED0 E6C0 01129 AND VAL!SW ;This must be string 2ED2 C2AF26 01130 $EX4 JP NZ,EXIT4 ;Quit if not 01131 ; 01132 ; Check on Source = Destination 01133 ; 2ED5 3A4227 01134 LD A,(SRCDRV$+1) ;P/u source drive 2ED8 21AF27 01135 LD HL,DSTDRV$+1 2EDB AE 01136 XOR (HL) ;Match against dest 2EDC 320328 01137 LD (SXORD+1),A ;0 if S=D, <>0 if S<>D 2EDF 200D 01138 JR NZ,DATPRM ;Bypass if source <> dest 2EE1 01139 @@FLAGS ;Else test if proc 2EE1+3E65 01140 LD A,101 2EE3+EF 01141 RST 40 2EE4 FDCB126E 01142 BIT 5,(IY+'S'-'A') 2EE8 21B243 01143 LD HL,NOINDO$ ;"can't do single... 2EEB C2AF26 01144 JP NZ,EXIT4 ;Abort if from 01145 ; 01146 ; Check on date entries 01147 ; MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00018 ' 0 if partspec 2F48 47 01195 LD B,A ;Hold in reg B 01196 ; 01197 ; Merge all "CLASS" parms together 01198 ; 2F49 DD7E0C 01199 LD A,(IX+SYSRSP) ;System files MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00019 'Is this year a leap year? 3163 FE0C 01531 CP 0CH ;<631> 3165 3003 01532 JR NC,LPBLW ;<631> 3167 C664 01533 ADD A,64H ;<631> 3169 77 01534 LD (HL),A ;<631> 316A E603 01535 LPBLW: AND 3 ;<631> 01536 ELSE 01537 LD A,(LILBUF$) ;Is year a leap year? 01538 AND 3 01539 ENDIF 316C 210846 01540 LD HL,MAXDAYS+1 ;Set Feb to have 29 days 316F 2001 01541 JR NZ,$+3 ; if so 3171 34 01542 INC (HL) 3172 3A5A26 01543 LD A,(LILBUF$+2) ;P/u month 3175 3D 01544 DEC A ;Range check 3176 FE0C 01545 CP 12 3178 302C 01546 JR NC,BADFMT ;Go if 0 or >12 317A 2B 01547 DEC HL ;Point to Jan entry 317B 85 01548 ADD A,L ;Index the month 317C 6F 01549 LD L,A 317D 7C 01550 LD A,H 317E CE00 01551 ADC A,0 3180 67 01552 LD H,A 3181 3A5926 01553 LD A,(LILBUF$+1) ;P/u day entry 3184 3D 01554 DEC A ;Reduce for test (0->FF) 3185 BE 01555 CP (HL) 3186 301E 01556 JR NC,BADFMT ;Go if too large (or 0) 3188 215A26 01557 LD HL,LILBUF$+2 ;Pt to month 318B 46 01558 LD B,(HL) 318C 0E00 01559 LD C,0 318E CB38 01560 SRL B ;Split month between 3190 CB19 01561 RR C ; B and C 3192 2B 01562 DEC HL 3193 7E 01563 LD A,(HL) ;Get the day MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00026 'Loop countdown 31B9 C8 01594 RET Z ;<631> 31BA 1B 01595 DEC DE ;<631>Backup the pointer 01596 ELSE 01597 DEC DE ;Backup the pointer 01598 DEC B ;Loop countdown 01599 RET Z 01600 ENDIF 31BB 7E 01601 LD A,(HL) ;Ck for valid separator 31BC 23 01602 INC HL ;Bump pointer 31BD B9 01603 CP C ;Separator char required 31BE 28F1 01604 JR Z,PRSD1 ;Loop if match 31C0 C9 01605 RET ;Else ret bad (NZ) 01606 ; 01607 ; Routine to parse a digit pair 01608 ; 31C1 CDD831 01609 PRSD2 CALL PRS4 ;Get a digit 31C4 3010 01610 JR NC,PRSD3 ;Jump if bad digit 31C6 5F 01611 LD E,A ;Multiply by ten 31C7 07 01612 RLCA 31C8 07 01613 RLCA 31C9 83 01614 ADD A,E 31CA 07 01615 RLCA MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00027 ' 2E5F 2023 01695 JR NZ,PMTYN ;<631> 01696 ENDIF 01697 ; 01698 ; If MPW = "PASSWORD", just query Y,N 01699 ; 2E61 2ACE2C 01700 LD HL,(BUF2$+0CEH) ;P/u disk MPW 2E64 11E042 01701 LD DE,PASSWORD ;P/u hash for "PASSWORD" 2E67 AF 01702 XOR A 2E68 ED52 01703 SBC HL,DE ;Does it match disk MPW? 2E6A 2818 01704 JR Z,PMTYN ;Go get Y or N if so 01705 ; 01706 ; User must enter Current Pack's MPW to proceed 01707 ; 2E6C 216132 01708 OLDMPW LD HL,OLDMPW$ ;"What's the old MPW? 2E6F 110000 01709 LD DE,0 ;Force prompt of message 2E72 CD6442 01710 CALL GETMPW ;Grab user input to match 01711 ; 01712 ; Routine to test master password for match 01713 ; 2E75 EB 01714 EX DE,HL ;Xfer hashed MPW to DE 2E76 2ACE2C 01715 LD HL,(BUF2$+0CEH) ;Grab pack MPW 2E79 AF 01716 XOR A ;Clear carry flag 2E7A ED52 01717 SBC HL,DE ;Did user enter pack MPW? 2E7C 215529 01718 LD HL,BADMPW$ ;Init "Bad MPW" just in case 2E7F C2AF26 01719 JP NZ,EXIT4 ;Abort if no match 2E82 1820 01720 JR $A1 ;PW good, continue backup 01721 ; 2E84 01722 PMTYN @@DSPLY PMTYN$ ;"Backup anyway?" 01723 IFEQ 01H,1 2E84+219332 01724 LD HL,PMTYN$ 01725 ENDIF 2E87+3E0A 01726 LD A,10 2E89+EF 01727 RST 40 2E8A 215826 01728 LD HL,LILBUF$ ;Prompt to continue 2E8D 010003 01729 LD BC,3<8 ; since ID's differ 2E90 01730 @@KEYIN 2E90+3E09 01731 LD A,9 2E92+EF 01732 RST 40 2E93 DAAC26 01733 JP C,ABRTBU ;Exit on break 2E96 7E 01734 LD A,(HL) 2E97 CBAF 01735 RES 5,A ;Make answer upper case 2E99 FE59 01736 CP 'Y' ;Was answer Yes? 2E9B 2807 01737 JR Z,$A1 ;Go if continue 2E9D C3AC26 01738 PACKNDO JP ABRTBU ; else abort 01739 ; 2EA0 13 01740 IDMATCH INC DE 2EA1 23 01741 INC HL 2EA2 1092 01742 DJNZ CPRID 2EA4 21602C 01743 $A1 LD HL,BUF2$+60H ;Dest lockout table 2EA7 11602B 01744 LD DE,BUF1$+60H ;Source lockout table MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00031 ' 01878 ELSE 01879 LD A,D ;This is the cylinder 01880 ENDIF 2F61 21F031 01881 LD HL,CYL$ ;Message posn to hold 2F64 CDA131 01882 CALL CVTDEC ; ASCII cyl number 01883 IF @BLD631 01884 ELSE 01885 PUSH DE 01886 ENDIF 2F67 01887 @@DSPLY LDCYL$ ;"loading cylinder... 01888 IFEQ 01H,1 2F67+21B131 01889 LD HL,LDCYL$ 01890 ENDIF 2F6A+3E0A 01891 LD A,10 2F6C+EF 01892 RST 40 2F6D 01893 @@DSPLY CYL$ ;"xx... 01894 IFEQ 01H,1 2F6D+21F031 01895 LD HL,CYL$ 01896 ENDIF 2F70+3E0A 01897 LD A,10 2F72+EF 01898 RST 40 2F73 D1 01899 POP DE ;Now set up to 2F74 E1 01900 POP HL ; read the cylinder MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00034 'Save buffer ptr 2FCF D5 01963 PUSH DE ;<631> 01964 ELSE 01965 OR E 01966 PUSH HL ;Save buffer ptr 01967 LD A,D 01968 ENDIF 2FD0 21F031 01969 LD HL,CYL$ ;"xx... 2FD3 CDA131 01970 CALL CVTDEC ;Convert cyl # to ASCII 01971 IF @BLD631 01972 ELSE 01973 PUSH DE 01974 ENDIF 2FD6 01975 @@DSPLY DUCYL$ ;"dumping cyl... 01976 IFEQ 01H,1 2FD6+21C631 01977 LD HL,DUCYL$ 01978 ENDIF 2FD9+3E0A 01979 LD A,10 2FDB+EF 01980 RST 40 2FDC 01981 @@DSPLY CYL$ ;"xx... 01982 IFEQ 01H,1 2FDC+21F031 01983 LD HL,CYL$ 01984 ENDIF 2FDF+3E0A 01985 LD A,10 2FE1+EF 01986 RST 40 2FE2 D1 01987 POP DE ;Recover cyl/sect 2FE3 E1 01988 POP HL ; and buffer posn 2FE4 7A 01989 DUCYL2 LD A,D ;P/u track # & bypass 2FE5 B7 01990 OR A ; if not cyl=0 2FE6 2028 01991 JR NZ,DUCYL2B 01992 ; 01993 IF @MOD2 01994 LD A,(BACKUP0) ;Get system flag 01995 OR A ;System disk? 01996 JR NZ,DUCYL2B ;Yes, bypass! 01997 ENDIF 01998 ; 2FE8 B3 01999 OR E ;Merge to test for sec=2 2FE9 FE02 02000 CP 2 2FEB 200D 02001 JR NZ,CKBOOT ;If not 2, ck 1 or 0 2FED 2EC6 02002 LD L,0C6H ;Point to id byte 2FEF 7E 02003 LD A,(HL) 2FF0 3C 02004 INC A ;If X'FF', leave as is MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00036 'Backup is complete 02274 ELSE 02275 JP EXIT1 ;Backup is complete 02276 ENDIF 02277 ENDIF 02278 IF @MOD2 02279 JR CKWRTK0 ;Check if write cyl 0 02280 ENDIF 3198 1C 02281 RESMF5 INC E ;Bump sector # 3199 7B 02282 LD A,E 319A FE00 02283 RESMF6 CP $-$ ;Compare highest sect this cyl 319C 20CB 02284 JR NZ,RESMF3 ;Do another sector if not 02285 IF @MOD4 02286 IF @BLD631 02287 TXEXIT1: ;<631> 02288 ENDIF 319E C38526 02289 JP EXIT1 ;Backup is complete 02290 ENDIF 02291 IF @MOD2 02292 CKWRTK0 LD A,(BACKUP0) ;Get flag 02293 OR A ;Anything? 02294 JP Z,EXIT1 ;Nope, go! 02295 CALL PMTSRC ;Prompt for source 02296 CALL READ0 ;Read cyl 0 02297 JP NZ,EXIT3 ;Go on error 02298 CALL PMTDST ;Prompt for dest drive 02299 CALL FORMAT0 ;Format cylinder 0 02300 JP NZ,EXIT3 ;Go on disk error 02301 ; 02302 ; Pass original step rate to new disk 02303 ; 02304 LD HL,(BUFFER$) ;Get I/O buffer 02305 INC HL ;Bump to step rate 02306 INC HL 02307 INC HL ;+3 02308 LD A,(BSMIR+1) ;Get step 02309 LD (HL),A ;Pass to buffer 02310 LD BC,80H ;Offset to sector 1 02311 ADD HL,BC ;Point to it 02312 LD (HL),A ;Pass to buffer 02313 CALL PMTDST ;Re-fetch DCT 02314 CALL WRITE0 ;Write cylinder 0 02315 JP NZ,EXIT3 ;Go on disk error 02316 CALL PMTDST ;Fetch DCT MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00042 ' 31A2 1600 02328 LD D,0 ;<631> 31A4 EB 02329 EX DE,HL ;<631> 31A5 0603 02330 LD B,3 ;<631> 31A7 3E5F 02331 LD A,5FH ;<631> 31A9 EF 02332 RST 28H ;<631> 31AA C9 02333 RET ;<631> 02334 ELSE 02335 CVTDEC LD (HL),' ' ;Init to leading blank 02336 LD B,100 02337 CALL CVD1 02338 LD (HL),' ' ;Init to blank 02339 LD B,10 02340 CALL CVD1 02341 LD (HL),'0' ;Init to leading 0 02342 LD B,1 02343 CVD1 LD C,0 ;Init digit counter 02344 CVD2 SUB B ;Sub 10's power until carry 02345 JR C,CVD3 02346 INC C ; and bump count 02347 JR CVD2 02348 CVD3 ADD A,B ;Add back last sub 02349 PUSH AF 02350 LD A,C ;Check the count 02351 OR A 02352 JR Z,CVD7 ;Ignore if 0 02353 ADD A,30H ; else change to ASCII digit 02354 LD (HL),A 02355 CVD7 POP AF 02356 INC HL 02357 RET 02358 ENDIF 02359 ; 02360 ; Message area 02361 ; 31AB 21F431 02362 NOTMIR LD HL,NOTMIR$ 31AE C3AF26 02363 JP EXIT4 31B1 1D 02364 LDCYL$ DB 29,'Reading < cylinder ',3 52 65 61 64 69 6E 67 20 3C 20 63 79 6C 69 6E 64 65 72 20 03 31C6 1D 02365 DUCYL$ DB 29,'Writing > cylinder ',3 MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00043 ' to abort: ',3 6F 72 20 3C 42 52 45 41 4B 3E 20 74 6F 20 61 62 6F 72 74 3A 20 03 3293 41 02374 PMTYN$ DB 'Are you sure you want to backup to it ' 72 65 20 79 6F 75 20 73 75 72 65 20 79 6F 75 20 77 61 6E 74 20 74 6F 20 62 61 63 6B 75 70 20 74 6F 20 69 74 20 32B9 3C 02375 DB ' ? ',3 59 2C 4E 3E 20 3F 20 03 02376 ; 32C2 00 02377 DC 64,0 ;PATCH space 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00044 ' to HITBUF at this point 02672 ; 2F11 CDA628 02673 CALL RDSEC ;Read the sector 2F14 2EC0 02674 LD L,0C0H ;Point to type flag 2F16 36FF 02675 LD (HL),0FFH ;Set it 2F18 2E00 02676 LD L,0 ;Reset buffer 2F1A CD9C28 02677 CALL WRSEC ; Write it back 02678 ; 02679 CLSBU5 2F1D CD4E27 02680 CALL PMTSRC ;Set up for source disk 2F20 CDA134 02681 CALL HITRD ;Read source HIT 2F23 C29726 02682 JP NZ,EXIT3 02683 ; 02684 ; Start the backup of files 02685 ; 2F26 210037 02686 LD HL,HITBUF ;Init to start of HIT 2F29 183A 02687 JR SCNH3 ;Branch to start 2F2B D2 02688 OPENIT DB 'R'!80H ;R2 2F2C E1 02689 SCNHIT POP HL ;Remove top stack entry 2F2D C1 02690 SCNH1 POP BC ;Recover DEC posn 2F2E 2637 02691 LD H,HITBUF<-8 ;HIT buf hi-order 2F30 68 02692 LD L,B ; and lo-order 2F31 02693 SCNH2 @@CKBRKC ;Check break hit 2F31+3E6A 02694 LD A,106 2F33+EF 02695 RST 40 2F34 C2AC26 02696 JP NZ,BREAK ;Quit if so 2F37 7D 02697 LD A,L ;Get the current DEC posn 2F38 C620 02698 ADD A,20H ;Advance to next file on 2F3A 6F 02699 LD L,A ; this dir sector until 2F3B 3028 02700 JR NC,SCNH3 ; end, then go to next 2F3D 2C 02701 INC L ; dir sector in the HIT 2F3E CB6D 02702 BIT 5,L ;Did we go off the end? MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00052 ' flag table base 308A+3E65 02895 LD A,101 308C+EF 02896 RST 40 308D FDCB12C6 02897 SET 0,(IY+'S'-'A') ;Inhibit file open bit 3091 FDE1 02898 POP IY 3093 02899 @@OPEN ;Attempt to open 3093+3E3B 02900 LD A,59 3095+EF 02901 RST 40 3096 D1 02902 POP DE ;Keep stack proper 3097 2812 02903 JR Z,CKOLD ;If file exists, ck OLD 3099 FE19 02904 CP 25 ;File access denied? 309B 280E 02905 JR Z,CKOLD ; means it exists 309D FE18 02906 CP 24 ;File not found? 309F C22C2F 02907 JP NZ,SCNHIT ;Ignore if not 30A2 3A0E26 02908 LD A,(NEWPRM$) ;Check if NEW requested 30A5 B7 02909 OR A 30A6 200A 02910 JR NZ,GODOIT ;Go if NEW & not found MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00056 ' 03010 ENDIF 312F FE0A 03011 CP 10 ;1980's? 3131 380D 03012 JR C,THERE 03013 IF @BLD631 3133 0C 03014 INC C ;<631>was '8', now '9' bump decade MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00058 ' 313C 0E30 03023 LD C,'0' ;<631> 313E 18EF 03024 JR L3B2F ;<631> 03025 ELSE 03026 LD A,9 ; else make 1999 03027 ENDIF 3140 47 03028 THERE LD B,A ;Save year offset 3141 79 03029 LD A,C ;Stuff decade for dsply 3142 12 03030 LD (DE),A 3143 13 03031 INC DE 3144 78 03032 LD A,B ;Year 3145 C630 03033 ADD A,'0' ;Make ascii 3147 12 03034 LD (DE),A 3148 13 03035 INC DE 3149 3E03 03036 SCDAT4 LD A,3 ;Show etx for display 314B 12 03037 LD (DE),A 314C 03038 @@DSPLY FCB1$ ;Display filename 03039 IFEQ 01H,1 314C+211826 03040 LD HL,FCB1$ 03041 ENDIF 314F+3E0A 03042 LD A,10 3151+EF 03043 RST 40 3152 03044 @@DSPLY QMARK$ ;" } ? " 03045 IFEQ 01H,1 3152+21C035 03046 LD HL,QMARK$ 03047 ENDIF 3155+3E0A 03048 LD A,10 3157+EF 03049 RST 40 3158 2A1626 03050 LD HL,(BUFFER$) ;Get user response 315B 010003 03051 LD BC,3<8 ;3 char max 315E 03052 @@KEYIN 315E+3E09 03053 LD A,9 3160+EF 03054 RST 40 3161 DAAC26 03055 JP C,ABRTBU ;Quit on Break 3164 7E 03056 LD A,(HL) ;Get the 1st char 3165 CBAF 03057 RES 5,A ;Strip lc if present 3167 FE59 03058 CP 'Y' ;Yes means move the file 3169 2808 03059 JR Z,CPYMSG ;Go if so 03060 ; 03061 ; Accept 'C' for response to set QUERY=N 03062 ; 316B D643 03063 SUB 'C' ;Was response "C"? 316D C22C2F 03064 JP NZ,SCNHIT ;Don't backup if not 3170 321526 03065 LD (QPARM$+1),A ;Set QUERY=N 3173 E3 03066 CPYMSG EX (SP),HL ;Place dummy HL below MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00059 ' 31C4 70 03126 LD (HL),B ;<631>B==0 Zero out DIR+1 to DIR+4 31C5 54 03127 LD D,H ;<631> 31C6 5D 03128 LD E,L ;<631> 31C7 13 03129 INC DE ;<631> 03130 ELSE 03131 LD (HL),0 ;Zero out DIR+1 to DIR+4 03132 LD D,H 03133 LD E,L 03134 INC DE 03135 LD BC,3 03136 ENDIF 31C8 EDB0 03137 LDIR 31CA 7D 03138 LD A,L ;Pt HL to DIR+16 31CB C60C 03139 ADD A,12 31CD 6F 03140 LD L,A 31CE 3C 03141 INC A 31CF 5F 03142 LD E,A ;Pt DE to DIR+17 31D0 36FF 03143 LD (HL),0FFH ;Stuff X'FF' into extent 31D2 0E0F 03144 LD C,15 ; & pswd fields 31D4 EDB0 03145 LDIR 31D6 7D 03146 DOSYS1 LD A,L ;Pt HL to Dir+0 31D7 E6E0 03147 AND 0E0H ; of dest 31D9 CB76 03148 BIT 6,(HL) ;Guard against writing 31DB CAEA2E 03149 JP Z,NOTSYS ; over a non-SYS file 31DE C605 03150 ADD A,5 ;Pt to name field 31E0 6F 03151 LD L,A 31E1 5F 03152 LD E,A ;Pt DE to name field of 31E2 262C 03153 LD H,BUF2$<-8 ; destination 31E4 3A1726 03154 LD A,(BUFFER$+1) ;P/u buffer hi-order addr 31E7 57 03155 LD D,A 31E8 010D00 03156 LD BC,13 ;Move name/ext into dest 31EB EDB0 03157 LDIR 31ED FD5609 03158 LD D,(IY+9) ;P/u dir cyl of dest 31F0 C1 03159 POP BC ;Rcvr DEC of source 31F1 C5 03160 PUSH BC 31F2 78 03161 LD A,B ;Calc dir sector for 31F3 E61F 03162 AND 1FH ; source SYS module 31F5 C602 03163 ADD A,2 31F7 5F 03164 LD E,A 31F8 2A1626 03165 LD HL,(BUFFER$) ;P/u buffer ptr for dest 31FB CDA128 03166 CALL WRSYS ;Write the dir to dest 31FE 3E12 03167 LD A,18 ;Init "Dir write error 3200 C29726 03168 JP NZ,EXIT3 ; and quit on bad write 03169 ; 03170 ; The HIT entries were transferred prior MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00061 ' config byte 3227 36C9 03204 LD (HL),0C9H ;Config off 03205 ; 3229 CDBB27 03206 DOSYS2 CALL PMTDST ;Prompt destination 03207 IF @MOD4 322C 0610 03208 LD B,16 ;Sector count for boot 322E 110000 03209 LD DE,0 ;Init track and sector 0 03210 ENDIF 03211 IF @MOD2 03212 LD DE,(CKPROT2) ;Get dest cyl number 03213 LD A,(PROTSEC+1) 03214 LD B,5 ;Default 5 sectors 03215 OR A 03216 JR Z,NBTSECS 03217 AND D 03218 JR Z,NBTSECS 03219 LD B,16 ;Use 16 sectors 03220 NBTSECS LD E,0 03221 ENDIF 3231 2A1626 03222 LD HL,(BUFFER$) ;P/u buffer start MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00062 ' bit 7 03301 AND 80H ;Keep only 03302 LD (HL),A ;To buffer 03303 POP HL ;HL => buffer start 03304 LD D,H ;Pass to DE 03305 LD E,L ;DE => buffer start 03306 LD BC,80H ;Buffer length 03307 ADD HL,BC ;HL => dest 03308 EX DE,HL ;HL=>source, DE=>dest 03309 LDIR ;Copy sector 0 => sec 1 03310 CALL PMTDST ;Re-fetch DCT 03311 CALL WRITE0 ;Write the cylinder 03312 JP NZ,EXIT3 ;Go on disk error 03313 COPY0E EQU $ 03314 ENDIF 03315 ; 03316 ; Routine to perform the file copy to destination 03317 ; 3266 112B2F 03318 DOFIL0 LD DE,OPENIT ;Check the name 3269 03319 @@RENAM 3269+3E38 03320 LD A,56 326B+EF 03321 RST 40 326C 0600 03322 LD B,0 ;Lrl = 256 326E CD8F34 03323 CALL GETSRC ;Prompt source & set fcb 3271 2A1626 03324 LD HL,(BUFFER$) ;Get buffer addr 3274 03325 @@FLAGS 3274+3E65 03326 LD A,101 MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00064 ' ern? 32F2 2820 03397 JR Z,DOFIL09 ;Also means load done 32F4 C39726 03398 JP EXIT3 ;Abort on any other error 32F7 24 03399 DOFIL05 INC H ;Bump the buffer ptr 32F8 7C 03400 LD A,H 32F9 FE00 03401 DOFIL06 CP $-$ ;Test out of memory 32FB 20E4 03402 JR NZ,DOFIL04 ;Loop if more room 32FD 2A1626 03403 LD HL,(BUFFER$) ;P/u buffer start 3300 223B26 03404 DOFIL07 LD (FCB2$+3),HL ; & set into dest fcb 3303 CD9834 03405 CALL GETDST ;Prompt dest & set fcb 3306 03406 @@VER ;Write dest w/verify 3306+3E49 03407 LD A,73 3308+EF 03408 RST 40 3309 C29726 03409 JP NZ,EXIT3 ;Quit on error 330C 24 03410 INC H ;Bump buffer page 330D 7C 03411 LD A,H 330E FE00 03412 DOFIL08 CP $-$ ;Out of memory? 3310 20EE 03413 JR NZ,DOFIL07 ;Write another if not 3312 18CA 03414 JR DOFIL03 ; else back to loading 03415 ; 03416 ; Reached the end of the source file 03417 ; 3314 CD2634 03418 DOFIL09 CALL LSTBUF ;Write remaining buffer 3317 2A2026 03419 LD HL,(FCB1$+8) ;P/u DEC & LRL 331A 224026 03420 LD (FCB2$+8),HL ; & stuff into dest 331D CD9834 03421 CALL GETDST ;Set for dest fcb 3320 03422 @@CLOSE ;Close 'er up 3320+3E3C 03423 LD A,60 3322+EF 03424 RST 40 3323 C29726 03425 JP NZ,EXIT3 ;Abort on close error 03426 ; 03427 ; Now remove the mod flag from destination 03428 ; and do CLONE function 03429 ; 3326 FD5609 03430 LD D,(IY+9) ;P/u dir cyl MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00066 '(B==0) Move both pswds 03469 ELSE 03470 LD BC,4 ;Move both pswds 03471 ENDIF 3365 EDB0 03472 LDIR 3367 E1 03473 POP HL ;Get source DIR+1 3368 23 03474 INC HL ;Pt to year field 3369 1B 03475 DEC DE ;Pt to new year 336A 3AD82A 03476 LD A,(NEWDT) ;Old to new flag 336D FE04 03477 CP 4 ;If not old to new, done 336F 2007 03478 JR NZ,NEWDT1 3371 7E 03479 LD A,(HL) ;Get old year 3372 E607 03480 AND 7 3374 12 03481 LD (DE),A ;Store in new year posn 3375 1B 03482 DEC DE MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00067 ' 03490 ENDIF 337F 3E12 03491 LD A,18 ;Init "Dir write error 3381 C29726 03492 JP NZ,EXIT3 ;Quit on error 03493 ; 03494 ; Attempt to clear mod flag of source 03495 ; 3384 3E00 03496 DOFIL12 LD A,0 ;Test for write prot src 3386 B7 03497 OR A ;Which implies, can't 3387 C22D2F 03498 JP NZ,SCNH1 ; clear mod flags 338A C1 03499 POP BC ;P/u DEC of source 338B C5 03500 PUSH BC 338C 78 03501 LD A,B ;Clear mod flag on source 338D E6E0 03502 AND 0E0H ;Dir sector is resident 338F 3C 03503 INC A ;In a buffer at BUF2 3390 6F 03504 LD L,A 3391 262C 03505 LD H,BUF2$<-8 3393 CBB6 03506 RES 6,(HL) ;Reset mod bit 3395 CD4E27 03507 CALL PMTSRC ;Set for source i/o 3398 FD5609 03508 LD D,(IY+9) ;P/u dir cyl 339B 78 03509 LD A,B ;Pt to dir sect of source 339C E61F 03510 AND 1FH 339E C602 03511 ADD A,2 ;Adjust for GAT and HIT 33A0 5F 03512 LD E,A 33A1 21002C 03513 LD HL,BUF2$ 33A4 CDA128 03514 CALL WRSYS ;Write it back 33A7 CA2D2F 03515 JP Z,SCNH1 ;Back on good write 33AA FE0F 03516 CP 15 ;Accept only "write prot error 03517 IF @BLD631 33AC 20D1 03518 JR NZ,TOEXIT3 ;<631>and quit 03519 ELSE 03520 LD A,18 ;Any other, "Dir write error 03521 JP NZ,EXIT3 ; and quit 03522 ENDIF 33AE 3EFF 03523 LD A,0FFH ;Turn off clear mod 33B0 328533 03524 LD (DOFIL12+1),A ; flag test 33B3 03525 @@LOGOT CCMOD$ ;"can't clear... 03526 IFEQ 01H,1 33B3+21352A 03527 LD HL,CCMOD$ 03528 ENDIF 33B6+3E0C 03529 LD A,12 33B8+EF 03530 RST 40 33B9 C32D2F 03531 JP SCNH1 ;Loop to next file 03532 ; 03533 ; Routine to compare HL to DE, ret Z if equal 03534 ; MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00068 '',29,3 65 73 74 69 6E 61 74 69 6F 6E 20 64 69 73 6B 2C 20 3C 45 4E 54 45 52 3E 1D 03 351C 44 03706 DOMSG DB 'Disk is full! - Can''t switch ' 69 73 6B 20 69 73 20 66 75 6C 6C 21 20 2D 20 43 61 6E 27 74 20 73 77 69 74 63 68 20 3539 77 03707 DB 'while in effect',CR 68 69 6C 65 20 3C 44 4F 3E 20 69 6E 20 65 66 66 65 63 74 0D 354E 20 03708 SIZBIG$ DB ' File is larger than destination ' 20 46 69 6C 65 20 69 73 20 6C 61 72 67 65 72 20 74 68 61 6E 20 64 65 73 74 69 6E 61 74 69 6F 6E 20 3570 63 03709 DB 'capacity - backup is bypassed',CR 61 70 61 63 69 74 79 20 2D 20 62 61 63 6B 75 70 20 69 73 20 62 79 70 61 73 73 65 64 0D 358E 43 03710 NOTSYS$ DB 'Can''t create SYSTEM disk - ' 61 6E 27 74 20 63 72 65 61 74 65 20 53 59 53 54 MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00072 ' UC 42BA 23 03850 GMPW7 INC HL 42BB 10F2 03851 DJNZ GMPW6 42BD D1 03852 POP DE ;Rcvr pointer to start 42BE C9 03853 RET 03854 ; 03855 ; Check a drive for availability 03856 ; 03857 CKDRV 42BF 3AFC27 03858 LD A,(CURDSK+1) ;P/u drive spec 42C2 4F 03859 LD C,A ;Place in C 42C3 FD7E00 03860 LD A,(IY+0) ;P/u drive vector 42C6 FEC3 03861 CP 0C3H ;Ck for enabled 42C8 C25E43 03862 JP NZ,CKDR5 ;Bypass if disabled 42CB E5 03863 PUSH HL 42CC D5 03864 PUSH DE 42CD FD7E06 03865 LD A,(IY+6) ;Make sure the current 42D0 FDBE05 03866 CP (IY+5) ; cylinder count is in range 42D3 D2DC42 03867 JP NC,CKDRV1 ;Go if in range 42D6 CD9228 03868 CALL RESTOR ;Restore drive 42D9 C26B43 03869 JP NZ,CKDR7A ;Go if error 03870 ; 42DC FD5605 03871 CKDRV1 LD D,(IY+5) ;P/u current track 42DF 1E00 03872 LD E,0 ;Set for sector 0 42E1 03873 @@SEEK ;Set track info to FDC 42E1+3E2E 03874 LD A,46 42E3+EF 03875 RST 40 42E4 C26B43 03876 JP NZ,CKDR7A ;Go if error 42E7 CD9728 03877 CALL RSELCT ;Wait until not busy 42EA 207F 03878 JR NZ,CKDR7A ;Not there - ret NZ 42EC FDCB035E 03879 BIT 3,(IY+3) ;If hard drive, bypass MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00077 ' processing',CR 3C 44 4F 3E 20 70 72 6F 63 65 73 73 69 6E 67 0D 43E5 44 04006 NOFMT$ DB 'Destination disk not formatted' 65 73 74 69 6E 61 74 69 6F 6E 20 64 69 73 6B 20 6E 6F 74 20 66 6F 72 6D 61 74 74 65 64 4403 20 04007 DB ' - Backup aborted',CR 2D 20 42 61 63 6B 75 70 20 61 62 6F 72 74 65 64 0D 4415 42 04008 HELLO$ DB 'BACKUP' 41 43 4B 55 50 441B 04009 *GET CLIENT:3 04010 ;CLIENT/ASM - File to establish sign-on headers 04011 ; and version numbers. MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00080 ' 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 444D 49 04018 DB 'Inc., ',10 ;<631> 6E 63 2E 2C 20 20 20 20 20 20 20 0A 04019 ELSE 04020 DB ' - 6.3.0 - Copyright 1982/83/84/86 by Logical Syst' 04021 DB 'ems, Inc. ',10 04022 ENDIF 04023 ; 04024 ; DB 'All Rights Reserved. Licensed 1982/83/84 to Tandy ' 04025 ; DB 'Corporation.',10,13 04026 ; 04027 ; DB 'All Rights Reserved. Beta-TEST Level/AD, DO NOT DI' 04028 ; DB 'STRIBUTE !! ',10,13 04029 ; DB 'All Rights reserved by LSI, 8970 N. 55th St. Milwa' 04030 ; DB 'ukee, Wisc. ',10,13 445A 41 04031 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 448C 72 04032 DB 'rohibited. ',10,13 6F 68 69 62 69 74 65 64 2E 20 20 0A 0D 449A 43 04033 LDOS$ DB 'Command executes only from DOS Ready',CR 6F 6D 6D 61 6E 64 20 65 78 65 63 75 74 65 73 20 6F 6E 6C 79 20 66 72 6F 6D 20 44 4F 53 20 52 65 61 64 79 0D 44BF 50 04034 PRMERR$ DB 'Parameter error',CR 61 72 61 6D 65 74 65 72 20 65 72 72 6F 72 0D 44CF 53 04035 SRCNUM$ DB 'Source drive number ? ',3 6F 75 72 63 65 20 64 72 69 76 65 20 6E 75 6D 62 65 72 20 3F 20 20 20 20 MISOSYS EDAS-4.3 04/19/99 21:02:20 BACKUP - LS-DOS 6.3 Page 00081 '