home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol210 / crc68k.lbr < prev    next >
LBR Archive  |  1986-02-09  |  15.3 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: LBR Archive (archive/lbr).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert LBR Archive (archive/lbr) magic Supported
1% dexvert Micro Focus COBOL library (other/microFocusCobolLibrary) ext Unsupported
1% dexvert Micro Focus COBOL Library (other/microFocusCOBOLLibrary) ext Unsupported
100% file LBR archive data default
99% file data default
87% TrID LU library default
12% TrID C64 Hires bitmap default (weak)
100% lsar LBR default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 20 20 20 20 20 20 20 | 20 20 20 20 00 00 02 00 |. | ....|
|00000010| 6d db 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |m.......|........|
|00000020| 00 4d 43 52 43 20 20 20 | 20 53 55 42 02 00 03 00 |.MCRC | SUB....|
|00000030| 50 6a 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |Pj......|........|
|00000040| 00 43 52 43 20 20 20 20 | 20 43 20 20 05 00 26 00 |.CRC | C ..&.|
|00000050| c5 7e 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.~......|........|
|00000060| 00 57 49 4c 44 45 58 50 | 20 43 20 20 2b 00 31 00 |.WILDEXP| C +.1.|
|00000070| 9c a1 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000080| 00 43 52 43 41 53 4d 20 | 20 53 20 20 5c 00 07 00 |.CRCASM | S \...|
|00000090| d9 22 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |."......|........|
|000000a0| 00 41 53 4d 20 20 20 20 | 20 53 20 20 63 00 17 00 |.ASM | S c...|
|000000b0| 8b 05 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000c0| ff 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000e0| ff 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000100| 3b 20 53 75 62 6d 69 74 | 20 66 69 6c 65 20 74 6f |; Submit| file to|
|00000110| 20 6d 61 6b 65 20 43 52 | 43 2e 36 38 4b 0d 0a 0d | make CR|C.68K...|
|00000120| 0a 41 53 20 2d 4c 20 41 | 53 4d 2e 53 0d 0a 41 53 |.AS -L A|SM.S..AS|
|00000130| 20 2d 4c 20 43 52 43 41 | 53 4d 2e 53 0d 0a 43 50 | -L CRCA|SM.S..CP|
|00000140| 20 43 52 43 2e 43 20 43 | 52 43 2e 49 0d 0a 43 30 | CRC.C C|RC.I..C0|
|00000150| 20 43 52 43 2e 49 20 43 | 52 43 2e 49 43 20 43 52 | CRC.I C|RC.IC CR|
|00000160| 43 2e 53 54 0d 0a 43 31 | 20 43 52 43 2e 49 43 20 |C.ST..C1| CRC.IC |
|00000170| 43 52 43 2e 53 20 2d 4c | 0d 0a 41 53 20 2d 4c 20 |CRC.S -L|..AS -L |
|00000180| 2d 55 20 43 52 43 2e 53 | 0d 0a 45 52 41 20 43 52 |-U CRC.S|..ERA CR|
|00000190| 43 2e 49 2a 0d 0a 45 52 | 41 20 43 52 43 2e 53 2a |C.I*..ER|A CRC.S*|
|000001a0| 0d 0a 43 50 20 57 49 4c | 44 45 58 50 2e 43 20 57 |..CP WIL|DEXP.C W|
|000001b0| 49 4c 44 45 58 50 2e 49 | 0d 0a 43 30 20 57 49 4c |ILDEXP.I|..C0 WIL|
|000001c0| 44 45 58 50 2e 49 20 57 | 49 4c 44 45 58 50 2e 49 |DEXP.I W|ILDEXP.I|
|000001d0| 43 20 57 49 4c 44 45 58 | 50 2e 53 54 0d 0a 43 31 |C WILDEX|P.ST..C1|
|000001e0| 20 57 49 4c 44 45 58 50 | 2e 49 43 20 57 49 4c 44 | WILDEXP|.IC WILD|
|000001f0| 45 58 50 2e 53 20 2d 4c | 0d 0a 41 53 20 2d 4c 20 |EXP.S -L|..AS -L |
|00000200| 2d 55 20 57 49 4c 44 45 | 58 50 2e 53 0d 0a 45 52 |-U WILDE|XP.S..ER|
|00000210| 41 20 57 49 4c 44 45 58 | 50 2e 49 2a 0d 0a 45 52 |A WILDEX|P.I*..ER|
|00000220| 41 20 57 49 4c 44 45 58 | 50 2e 53 2a 0d 0a 4c 4f |A WILDEX|P.S*..LO|
|00000230| 20 2d 52 20 2d 4f 20 43 | 52 43 2e 36 38 4b 20 53 | -R -O C|RC.68K S|
|00000240| 2e 4f 20 43 52 43 2e 4f | 20 43 52 43 41 53 4d 2e |.O CRC.O| CRCASM.|
|00000250| 4f 20 41 53 4d 2e 4f 20 | 57 49 4c 44 45 58 50 2e |O ASM.O |WILDEXP.|
|00000260| 4f 20 43 4c 49 42 0d 0a | 0d 0a 1a 20 57 49 4c 44 |O CLIB..|... WILD|
|00000270| 45 58 50 2e 53 20 2d 4c | 0d 0a 41 53 20 2d 4c 20 |EXP.S -L|..AS -L |
|00000280| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********|
|00000290| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000002a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000002b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000002c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2f 0d 0a 2f 2a 09 09 |********|*/../*..|
|000002d0| 09 09 09 09 09 09 09 2a | 2f 0d 0a 2f 2a 20 43 20 |.......*|/../* C |
|000002e0| 52 20 43 20 2e 20 43 09 | 09 09 09 09 09 09 09 2a |R C . C.|.......*|
|000002f0| 2f 0d 0a 2f 2a 09 09 09 | 09 09 09 09 09 09 2a 2f |/../*...|......*/|
|00000300| 0d 0a 2f 2a 20 43 52 43 | 20 28 64 75 3a 29 66 69 |../* CRC| (du:)fi|
|00000310| 6c 65 6e 61 6d 65 2e 65 | 78 74 09 09 09 09 09 09 |lename.e|xt......|
|00000320| 2a 2f 0d 0a 2f 2a 09 09 | 09 09 09 09 09 09 09 2a |*/../*..|.......*|
|00000330| 2f 0d 0a 2f 2a 20 41 63 | 63 65 70 74 73 20 77 69 |/../* Ac|cepts wi|
|00000340| 6c 64 63 61 72 64 73 2e | 09 09 09 09 09 09 20 20 |ldcards.|...... |
|00000350| 20 20 20 09 2a 2f 0d 0a | 2f 2a 20 52 65 73 75 6c | .*/..|/* Resul|
|00000360| 74 73 20 63 6f 6d 70 61 | 72 61 62 6c 65 20 74 6f |ts compa|rable to|
|00000370| 20 43 52 43 20 66 6f 72 | 20 43 50 2f 4d 2d 38 30 | CRC for| CP/M-80|
|00000380| 20 62 79 20 52 69 63 68 | 61 72 64 20 43 6f 6e 6e | by Rich|ard Conn|
|00000390| 09 09 2a 2f 0d 0a 2f 2a | 09 09 09 09 09 09 09 09 |..*/../*|........|
|000003a0| 09 2a 2f 0d 0a 2f 2a 20 | 28 64 29 72 69 76 65 73 |.*/../* |(d)rives|
|000003b0| 20 09 41 20 2d 20 50 09 | 4d 41 58 44 52 56 09 09 | .A - P.|MAXDRV..|
|000003c0| 09 09 09 09 2a 2f 0d 0a | 2f 2a 20 28 75 29 73 65 |....*/..|/* (u)se|
|000003d0| 72 09 30 20 2d 20 33 31 | 09 4d 41 58 55 53 52 09 |r.0 - 31|.MAXUSR.|
|000003e0| 09 09 09 09 09 2a 2f 0d | 0a 2f 2a 09 09 09 09 09 |.....*/.|./*.....|
|000003f0| 09 09 09 09 2a 2f 0d 0a | 2f 2a 20 56 65 72 73 69 |....*/..|/* Versi|
|00000400| 6f 6e 3a 09 31 2e 31 30 | 09 66 6f 72 20 44 52 49 |on:.1.10|.for DRI|
|00000410| 20 43 09 09 09 09 09 2a | 2f 0d 0a 2f 2a 09 09 09 | C.....*|/../*...|
|00000420| 09 09 09 09 09 09 2a 2f | 0d 0a 2f 2a 20 41 75 67 |......*/|../* Aug|
|00000430| 75 73 74 20 32 39 2c 20 | 31 39 38 34 20 09 09 09 |ust 29, |1984 ...|
|00000440| 09 09 09 09 2a 2f 0d 0a | 2f 2a 20 43 68 72 69 73 |....*/..|/* Chris|
|00000450| 74 6f 70 68 65 72 20 52 | 68 6f 64 65 73 09 09 09 |topher R|hodes...|
|00000460| 09 09 09 09 2a 2f 0d 0a | 2f 2a 20 4c 61 62 72 61 |....*/..|/* Labra|
|00000470| 64 6f 72 69 61 6e 20 4c | 61 62 73 09 09 09 09 09 |dorian L|abs.....|
|00000480| 09 09 2a 2f 0d 0a 2f 2a | 09 09 09 09 09 09 09 09 |..*/../*|........|
|00000490| 09 2a 2f 0d 0a 2f 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.*/../**|********|
|000004a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2f 0d |********|******/.|
|000004e0| 0a 2f 2a 09 09 09 09 09 | 09 09 09 09 2a 2f 0d 0a |./*.....|....*/..|
|000004f0| 2f 2a 20 53 79 73 74 65 | 6d 20 64 65 70 65 6e 64 |/* Syste|m depend|
|00000500| 65 6e 63 69 65 73 3a 20 | 20 20 20 20 20 20 20 20 |encies: | |
|00000510| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000520| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000530| 20 20 20 20 20 20 20 20 | 2a 2f 0d 0a 2f 2a 09 44 | |*/../*.D|
|00000540| 52 49 20 72 65 71 75 69 | 72 65 73 20 6f 70 65 6e |RI requi|res open|
|00000550| 62 20 74 6f 20 69 6e 73 | 75 72 65 20 62 69 6e 61 |b to ins|ure bina|
|00000560| 72 79 20 64 61 74 61 20 | 69 73 20 75 73 65 64 2e |ry data |is used.|
|00000570| 20 20 20 20 09 09 2a 2f | 0d 0a 0d 0a 23 64 65 66 | ..*/|....#def|
|00000580| 69 6e 65 09 6f 70 65 6e | 09 6f 70 65 6e 62 0d 0a |ine.open|.openb..|
|00000590| 0d 0a 23 69 6e 63 6c 75 | 64 65 09 3c 63 74 79 70 |..#inclu|de.<ctyp|
|000005a0| 65 2e 68 3e 0d 0a 0d 0a | 23 64 65 66 69 6e 65 20 |e.h>....|#define |
|000005b0| 56 45 52 53 49 4f 4e 20 | 22 31 2e 31 30 5c 30 22 |VERSION |"1.10\0"|
|000005c0| 0d 0a 20 0d 0a 23 64 65 | 66 69 6e 65 20 4d 41 58 |.. ..#de|fine MAX|
|000005d0| 44 52 56 09 27 50 27 0d | 0a 23 64 65 66 69 6e 65 |DRV.'P'.|.#define|
|000005e0| 09 4d 41 58 55 53 52 09 | 33 31 0d 0a 23 64 65 66 |.MAXUSR.|31..#def|
|000005f0| 69 6e 65 20 52 45 41 44 | 46 20 30 0d 0a 23 64 65 |ine READ|F 0..#de|
|00000600| 66 69 6e 65 20 42 55 46 | 46 20 30 78 34 30 30 30 |fine BUF|F 0x4000|
|00000610| 09 09 2f 2a 20 31 36 6b | 20 61 74 20 61 20 74 69 |../* 16k| at a ti|
|00000620| 6d 65 20 2a 2f 0d 0a 23 | 64 65 66 69 6e 65 20 45 |me */..#|define E|
|00000630| 52 52 20 2d 31 0d 0a 0d | 0a 63 68 61 72 09 66 69 |RR -1...|.char.fi|
|00000640| 6c 65 31 5b 31 35 5d 3b | 09 20 09 2f 2a 20 73 74 |le1[15];|. ./* st|
|00000650| 6f 72 61 67 65 20 66 6f | 72 20 66 69 6c 65 6e 61 |orage fo|r filena|
|00000660| 6d 65 20 20 2a 2f 0d 0a | 0d 0a 2f 2a 2a 2a 2a 2a |me */..|../*****|
|00000670| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000680| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000690| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000006a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000006b0| 2a 2a 2a 2f 0d 0a 2f 2a | 09 09 09 09 4d 20 41 20 |***/../*|....M A |
|000006c0| 49 20 4e 09 09 09 09 09 | 2a 2f 0d 0a 2f 2a 2a 2a |I N.....|*/../***|
|000006d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000006e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000006f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000700| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000710| 2a 2a 2a 2a 2a 2f 0d 0a | 0d 0a 6d 61 69 6e 28 61 |*****/..|..main(a|
|00000720| 72 67 63 2c 20 61 72 67 | 76 29 0d 0a 69 6e 74 20 |rgc, arg|v)..int |
|00000730| 61 72 67 63 3b 0d 0a 63 | 68 61 72 20 2a 61 72 67 |argc;..c|har *arg|
|00000740| 76 5b 5d 3b 0d 0a 7b 0d | 0a 09 69 6e 74 09 69 3b |v[];..{.|..int.i;|
|00000750| 0d 0a 09 69 6e 74 20 09 | 63 72 63 76 61 6c 31 3b |...int .|crcval1;|
|00000760| 0d 0a 09 69 6e 74 09 75 | 73 65 72 31 3b 0d 0a 0d |...int.u|ser1;...|
|00000770| 0a 09 77 69 6c 64 65 78 | 70 28 26 61 72 67 63 2c |..wildex|p(&argc,|
|00000780| 26 61 72 67 76 29 3b 0d | 0a 0d 0a 09 70 72 69 6e |&argv);.|....prin|
|00000790| 74 66 28 22 43 52 43 20 | 20 20 20 20 20 20 20 20 |tf("CRC | |
|000007a0| 20 20 20 20 20 20 20 20 | 56 65 72 73 69 6f 6e 20 | |Version |
|000007b0| 25 73 5c 6e 5c 6e 22 2c | 20 56 45 52 53 49 4f 4e |%s\n\n",| VERSION|
|000007c0| 29 3b 0d 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |);.. | |
|000007d0| 20 0d 0a 09 66 6f 72 28 | 69 20 3d 20 31 20 3b 20 | ...for(|i = 1 ; |
|000007e0| 69 20 3c 20 61 72 67 63 | 20 3b 20 69 2b 2b 29 0d |i < argc| ; i++).|
|000007f0| 0a 09 09 7b 0d 0a 09 09 | 69 66 28 28 75 73 65 72 |...{....|if((user|
|00000800| 31 20 3d 20 64 5f 75 73 | 65 72 28 61 72 67 76 5b |1 = d_us|er(argv[|
|00000810| 69 5d 2c 66 69 6c 65 31 | 29 29 20 3d 3d 20 30 78 |i],file1|)) == 0x|
|00000820| 46 46 29 0d 0a 09 09 09 | 7b 0d 0a 09 09 09 70 72 |FF).....|{.....pr|
|00000830| 69 6e 74 66 28 22 49 6c | 6c 65 67 61 6c 20 44 55 |intf("Il|legal DU|
|00000840| 3a 20 6f 6e 20 25 73 5c | 6e 22 2c 20 61 72 67 76 |: on %s\|n", argv|
|00000850| 5b 69 5d 29 3b 0d 0a 09 | 09 09 65 78 69 74 28 45 |[i]);...|..exit(E|
|00000860| 52 52 29 3b 0d 0a 09 09 | 09 7d 0d 0a 09 09 69 66 |RR);....|.}....if|
|00000870| 28 75 73 65 72 31 20 3d | 3d 20 30 78 38 30 29 09 |(user1 =|= 0x80).|
|00000880| 2f 2a 20 67 65 74 20 75 | 73 65 72 20 6e 75 6d 62 |/* get u|ser numb|
|00000890| 65 72 20 69 66 20 64 65 | 66 61 75 6c 74 20 2a 2f |er if de|fault */|
|000008a0| 0d 0a 09 09 09 75 73 65 | 72 31 20 3d 20 62 64 6f |.....use|r1 = bdo|
|000008b0| 73 77 28 33 32 2c 30 78 | 46 46 29 3b 0d 0a 0d 0a |sw(32,0x|FF);....|
|000008c0| 09 09 63 72 63 76 61 6c | 31 20 3d 20 63 72 63 28 |..crcval|1 = crc(|
|000008d0| 75 73 65 72 31 29 3b 0d | 0a 0d 0a 09 09 70 72 69 |user1);.|.....pri|
|000008e0| 6e 74 66 28 22 25 53 20 | 20 20 5c 74 43 52 43 20 |ntf("%S | \tCRC |
|000008f0| 3d 20 25 30 34 78 5c 6e | 22 2c 20 61 72 67 76 5b |= %04x\n|", argv[|
|00000900| 69 5d 2c 20 63 72 63 76 | 61 6c 31 29 3b 0d 0a 09 |i], crcv|al1);...|
|00000910| 20 20 20 20 20 20 09 7d | 0d 0a 0d 0a 09 69 66 28 | .}|.....if(|
|00000920| 61 72 67 63 20 3c 20 32 | 29 0d 0a 09 09 7b 0d 0a |argc < 2|)....{..|
|00000930| 09 09 70 72 69 6e 74 66 | 28 22 55 73 61 67 65 3a |..printf|("Usage:|
|00000940| 5c 6e 22 29 3b 0d 0a 09 | 09 70 72 69 6e 74 66 28 |\n");...|.printf(|
|00000950| 22 20 20 20 20 43 52 43 | 20 28 64 75 3a 29 66 69 |" CRC| (du:)fi|
|00000960| 6c 65 6e 61 6d 65 2e 65 | 78 74 5c 6e 5c 6e 22 29 |lename.e|xt\n\n")|
|00000970| 3b 0d 0a 09 09 70 72 69 | 6e 74 66 28 22 45 76 65 |;....pri|ntf("Eve|
|00000980| 72 79 74 68 69 6e 67 20 | 65 78 63 65 70 74 20 66 |rything |except f|
|00000990| 69 6c 65 6e 61 6d 65 20 | 69 73 20 6f 70 74 69 6f |ilename |is optio|
|000009a0| 6e 61 6c 2e 5c 6e 22 29 | 3b 0d 0a 09 09 70 72 69 |nal.\n")|;....pri|
|000009b0| 6e 74 66 28 22 41 63 63 | 65 70 74 73 20 77 69 6c |ntf("Acc|epts wil|
|000009c0| 64 63 61 72 64 73 20 2a | 20 61 6e 64 20 3f 5c 6e |dcards *| and ?\n|
|000009d0| 22 29 3b 0d 0a 09 09 7d | 0d 0a 0d 0a 7d 0d 0a 0d |");....}|....}...|
|000009e0| 0a 2f 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |./******|********|
|000009f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2f 0d 0a 2f 2a 09 |********|**/../*.|
|00000a30| 09 09 45 20 4e 20 44 20 | 20 20 09 4d 20 41 20 49 |..E N D | .M A I|
|00000a40| 20 4e 09 09 09 09 2a 2f | 0d 0a 2f 2a 2a 2a 2a 2a | N....*/|../*****|
|00000a50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a80| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a90| 2a 2a 2a 2f 0d 0a 0d 0a | 69 6e 74 20 63 72 63 28 |***/....|int crc(|
|00000aa0| 75 73 65 72 29 0d 0a 69 | 6e 74 09 75 73 65 72 3b |user)..i|nt.user;|
|00000ab0| 0d 0a 7b 0d 0a 09 69 6e | 74 09 6e 75 6d 5f 62 79 |..{...in|t.num_by|
|00000ac0| 74 65 2c 20 66 64 2c 20 | 69 3b 0d 0a 09 69 6e 74 |te, fd, |i;...int|
|00000ad0| 09 6f 6c 64 75 73 72 3b | 0d 0a 09 63 68 61 72 09 |.oldusr;|...char.|
|00000ae0| 2a 61 72 65 61 2c 2a 6d | 61 6c 6c 6f 63 28 29 3b |*area,*m|alloc();|
|00000af0| 0d 0a 0d 0a 09 6f 6c 64 | 75 73 72 20 3d 20 62 64 |.....old|usr = bd|
|00000b00| 6f 73 77 28 33 32 2c 30 | 78 46 46 29 3b 2f 2a 20 |osw(32,0|xFF);/* |
|00000b10| 73 61 76 65 20 65 78 69 | 73 74 69 6e 67 20 75 73 |save exi|sting us|
|00000b20| 65 72 20 6e 75 6d 62 65 | 72 20 2a 2f 0d 0a 0d 0a |er numbe|r */....|
|00000b30| 09 62 64 6f 73 77 28 33 | 32 2c 75 73 65 72 29 3b |.bdosw(3|2,user);|
|00000b40| 09 09 2f 2a 20 6f 70 65 | 6e 20 66 69 6c 65 20 2a |../* ope|n file *|
|00000b50| 2f 0d 0a 09 69 66 28 28 | 66 64 20 3d 20 6f 70 65 |/...if((|fd = ope|
|00000b60| 6e 28 66 69 6c 65 31 2c | 20 52 45 41 44 46 29 29 |n(file1,| READF))|
|00000b70| 20 3d 3d 20 45 52 52 29 | 0d 0a 09 09 7b 0d 0a 09 | == ERR)|....{...|
|00000b80| 09 70 72 69 6e 74 66 28 | 22 43 61 6e 27 74 20 6f |.printf(|"Can't o|
|00000b90| 70 65 6e 20 25 73 5c 6e | 22 2c 20 66 69 6c 65 31 |pen %s\n|", file1|
|00000ba0| 29 3b 0d 0a 09 09 65 78 | 69 74 28 45 52 52 29 3b |);....ex|it(ERR);|
|00000bb0| 0d 0a 09 09 7d 0d 0a 0d | 0a 09 63 6c 72 63 72 63 |....}...|..clrcrc|
|00000bc0| 28 29 3b 09 09 2f 2a 20 | 63 6c 65 61 72 20 43 52 |();../* |clear CR|
|00000bd0| 43 20 63 6f 75 6e 74 65 | 72 20 2a 2f 0d 0a 0d 0a |C counte|r */....|
|00000be0| 09 61 72 65 61 20 3d 20 | 6d 61 6c 6c 6f 63 28 42 |.area = |malloc(B|
|00000bf0| 55 46 46 29 3b 20 20 20 | 09 2f 2a 20 61 6c 6c 6f |UFF); |./* allo|
|00000c00| 63 61 74 65 20 62 75 66 | 66 65 72 20 73 70 61 63 |cate buf|fer spac|
|00000c10| 65 20 2a 2f 0d 0a 0d 0a | 09 77 68 69 6c 65 28 6e |e */....|.while(n|
|00000c20| 75 6d 5f 62 79 74 65 20 | 3d 20 72 65 61 64 28 66 |um_byte |= read(f|
|00000c30| 64 2c 20 61 72 65 61 2c | 20 42 55 46 46 29 29 0d |d, area,| BUFF)).|
|00000c40| 0a 09 09 7b 20 0d 0a 09 | 09 69 66 28 6e 75 6d 5f |...{ ...|.if(num_|
|00000c50| 62 79 74 65 20 3d 3d 20 | 45 52 52 29 0d 0a 09 09 |byte == |ERR)....|
|00000c60| 09 7b 0d 0a 09 09 09 70 | 72 69 6e 74 66 28 22 42 |.{.....p|rintf("B|
|00000c70| 61 64 20 72 65 61 64 20 | 6f 6e 20 25 73 5c 6e 22 |ad read |on %s\n"|
|00000c80| 2c 20 66 69 6c 65 31 29 | 3b 0d 0a 09 09 09 65 78 |, file1)|;.....ex|
|00000c90| 69 74 28 45 52 52 29 3b | 0d 0a 09 09 09 7d 0d 0a |it(ERR);|.....}..|
|00000ca0| 09 09 66 6f 72 28 69 20 | 3d 20 30 20 3b 20 69 20 |..for(i |= 0 ; i |
|00000cb0| 3c 20 6e 75 6d 5f 62 79 | 74 65 20 3b 20 69 2b 2b |< num_by|te ; i++|
|00000cc0| 29 0d 0a 09 09 09 61 64 | 64 63 72 63 28 61 72 65 |).....ad|dcrc(are|
|00000cd0| 61 5b 69 5d 29 3b 20 2f | 2a 20 63 61 6c 63 75 6c |a[i]); /|* calcul|
|00000ce0| 61 74 65 20 43 52 43 20 | 2a 2f 0d 0a 09 09 7d 0d |ate CRC |*/....}.|
|00000cf0| 0a 0d 0a 09 69 66 28 63 | 6c 6f 73 65 28 66 64 29 |....if(c|lose(fd)|
|00000d00| 20 21 3d 20 30 29 09 2f | 2a 20 63 6c 6f 73 65 20 | != 0)./|* close |
|00000d10| 66 69 6c 65 20 2a 2f 0d | 0a 09 09 7b 0d 0a 09 09 |file */.|...{....|
|00000d20| 70 72 69 6e 74 66 28 22 | 43 61 6e 27 74 20 63 6c |printf("|Can't cl|
|00000d30| 6f 73 65 20 25 73 5c 6e | 22 2c 20 66 69 6c 65 31 |ose %s\n|", file1|
|00000d40| 29 3b 0d 0a 09 09 65 78 | 69 74 28 45 52 52 29 3b |);....ex|it(ERR);|
|00000d50| 0d 0a 09 09 7d 0d 0a 0d | 0a 09 66 72 65 65 28 61 |....}...|..free(a|
|00000d60| 72 65 61 29 3b 09 09 2f | 2a 20 66 72 65 65 20 61 |rea);../|* free a|
|00000d70| 6c 6c 6f 63 61 74 65 64 | 20 73 70 61 63 65 20 2a |llocated| space *|
|00000d80| 2f 0d 0a 09 62 64 6f 73 | 77 28 33 32 2c 6f 6c 64 |/...bdos|w(32,old|
|00000d90| 75 73 72 29 3b 09 2f 2a | 20 72 65 73 74 6f 72 65 |usr);./*| restore|
|00000da0| 20 6f 72 69 67 69 6e 61 | 6c 20 75 73 65 72 20 6e | origina|l user n|
|00000db0| 75 6d 62 65 72 20 2a 2f | 0d 0a 09 72 65 74 75 72 |umber */|...retur|
|00000dc0| 6e 28 67 65 74 63 72 63 | 28 29 29 3b 09 2f 2a 20 |n(getcrc|());./* |
|00000dd0| 72 65 74 75 72 6e 20 66 | 69 6e 61 6c 20 43 52 43 |return f|inal CRC|
|00000de0| 20 76 61 6c 75 65 20 2a | 2f 0d 0a 7d 0d 0a 0d 0a | value *|/..}....|
|00000df0| 0d 0a 2f 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |../*****|********|
|00000e00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000e10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000e20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2f 0d 0a 2f 2a |********|***/../*|
|00000e30| 09 09 09 09 09 09 09 2a | 2f 0d 0a 2f 2a 20 64 5f |.......*|/../* d_|
|00000e40| 75 73 65 72 28 29 09 20 | 09 09 56 65 72 73 69 6f |user(). |..Versio|
|00000e50| 6e 20 31 2e 30 20 20 38 | 2f 32 39 2f 38 34 09 2a |n 1.0 8|/29/84.*|
|00000e60| 2f 0d 0a 2f 2a 09 09 09 | 09 09 09 09 2a 2f 0d 0a |/../*...|....*/..|
|00000e70| 2f 2a 20 43 6f 6e 76 65 | 72 74 73 20 20 28 64 75 |/* Conve|rts (du|
|00000e80| 3a 29 66 69 6c 65 6e 61 | 6d 65 2e 65 78 74 20 69 |:)filena|me.ext i|
|00000e90| 6e 74 6f 20 64 3a 66 69 | 6c 65 6e 61 6d 65 2e 65 |nto d:fi|lename.e|
|00000ea0| 78 74 20 09 2a 2f 0d 0a | 2f 2a 20 61 6e 64 20 72 |xt .*/..|/* and r|
|00000eb0| 65 74 75 72 6e 73 20 61 | 20 75 73 65 72 20 6e 75 |eturns a| user nu|
|00000ec0| 6d 62 65 72 2e 20 09 09 | 09 09 2a 2f 0d 0a 2f 2a |mber. ..|..*/../*|
|00000ed0| 20 09 09 09 09 09 09 09 | 2a 2f 0d 0a 2f 2a 20 4f | .......|*/../* O|
|00000ee0| 6e 20 65 6e 74 72 79 3a | 09 09 09 09 09 09 2a 2f |n entry:|......*/|
|00000ef0| 0d 0a 2f 2a 09 69 6e 74 | 20 64 5f 75 73 65 72 28 |../*.int| d_user(|
|00000f00| 6e 61 6d 65 2c 66 69 6c | 65 29 09 09 09 09 2a 2f |name,fil|e)....*/|
|00000f10| 0d 0a 2f 2a 09 63 68 61 | 72 09 2a 6e 61 6d 65 2c |../*.cha|r.*name,|
|00000f20| 20 2a 66 69 6c 65 3b 09 | 09 09 09 2a 2f 0d 0a 2f | *file;.|...*/../|
|00000f30| 2a 09 09 09 09 09 09 09 | 2a 2f 0d 0a 2f 2a 09 6e |*.......|*/../*.n|
|00000f40| 61 6d 65 20 2d 20 70 6f | 69 6e 74 73 20 74 6f 20 |ame - po|ints to |
|00000f50| 74 68 65 20 65 6e 74 72 | 79 20 73 74 72 69 6e 67 |the entr|y string|
|00000f60| 09 09 2a 2f 0d 0a 2f 2a | 09 66 69 6c 65 20 2d 20 |..*/../*|.file - |
|00000f70| 70 6f 69 6e 74 73 20 74 | 6f 20 74 68 65 20 65 78 |points t|o the ex|
|00000f80| 69 74 20 73 74 72 69 6e | 67 20 09 09 2a 2f 0d 0a |it strin|g ..*/..|
|00000f90| 2f 2a 09 09 09 09 09 09 | 09 2a 2f 0d 0a 2f 2a 20 |/*......|.*/../* |
|00000fa0| 4f 6e 20 72 65 74 75 72 | 6e 3a 09 09 09 09 09 09 |On retur|n:......|
|00000fb0| 2a 2f 0d 0a 2f 2a 09 30 | 78 46 46 20 20 20 3d 20 |*/../*.0|xFF = |
|00000fc0| 69 6c 6c 65 67 61 6c 20 | 64 72 69 76 65 20 6f 72 |illegal |drive or|
|00000fd0| 20 75 73 65 72 09 4d 41 | 58 44 52 56 20 4d 41 58 | user.MA|XDRV MAX|
|00000fe0| 55 53 52 09 2a 2f 0d 0a | 2f 2a 09 30 78 38 30 20 |USR.*/..|/*.0x80 |
|00000ff0| 20 20 3d 20 6e 6f 20 75 | 73 65 72 20 6e 75 6d 62 | = no u|ser numb|
|00001000| 65 72 09 09 09 09 2a 2f | 0d 0a 2f 2a 09 30 20 2d |er....*/|../*.0 -|
|00001010| 20 33 31 20 3d 20 75 73 | 65 72 20 6e 75 6d 62 65 | 31 = us|er numbe|
|00001020| 72 09 09 09 09 2a 2f 0d | 0a 2f 2a 09 09 09 09 09 |r....*/.|./*.....|
|00001030| 09 09 2a 2f 0d 0a 2f 2a | 2a 2a 2a 2a 2a 2a 2a 2a |..*/../*|********|
|00001040| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001050| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001060| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2f |********|*******/|
|00001070| 0d 0a 09 0d 0a 69 6e 74 | 20 64 5f 75 73 65 72 28 |.....int| d_user(|
|00001080| 6e 61 6d 65 2c 66 69 6c | 65 29 0d 0a 63 68 61 72 |name,fil|e)..char|
|00001090| 09 2a 6e 61 6d 65 2c 2a | 66 69 6c 65 3b 0d 0a 7b |.*name,*|file;..{|
|000010a0| 0d 0a 09 63 68 61 72 09 | 75 73 72 5b 33 5d 3b 0d |...char.|usr[3];.|
|000010b0| 0a 09 69 6e 74 09 64 72 | 69 76 65 2c 69 2c 6a 2c |..int.dr|ive,i,j,|
|000010c0| 6b 2c 6c 3b 0d 0a 0d 0a | 2f 2a 20 46 69 72 73 74 |k,l;....|/* First|
|000010d0| 20 73 65 65 20 69 66 20 | 61 6e 79 20 64 72 69 76 | see if |any driv|
|000010e0| 65 20 6f 72 20 75 73 65 | 72 20 73 70 65 63 69 66 |e or use|r specif|
|000010f0| 69 65 64 20 2a 2f 0d 0a | 0d 0a 09 66 6f 72 28 69 |ied */..|...for(i|
|00001100| 20 3d 20 30 20 2c 20 6a | 20 3d 20 30 20 3b 20 6e | = 0 , j| = 0 ; n|
|00001110| 61 6d 65 5b 69 5d 20 3b | 20 69 2b 2b 29 0d 0a 09 |ame[i] ;| i++)...|
|00001120| 09 69 66 28 6e 61 6d 65 | 5b 69 5d 20 3d 3d 20 27 |.if(name|[i] == '|
|00001130| 3a 27 29 0d 0a 09 09 09 | 7b 0d 0a 09 09 09 6c 20 |:').....|{.....l |
|00001140| 3d 20 6a 20 3d 20 69 3b | 0d 0a 09 09 09 62 72 65 |= j = i;|.....bre|
|00001150| 61 6b 3b 0d 0a 09 09 09 | 7d 0d 0a 0d 0a 2f 2a 20 |ak;.....|}..../* |
|00001160| 49 66 20 6e 6f 20 64 72 | 69 76 65 20 6f 72 20 75 |If no dr|ive or u|
|00001170| 73 65 72 20 73 70 65 63 | 69 66 69 65 64 2c 20 72 |ser spec|ified, r|
|00001180| 65 74 75 72 6e 20 61 66 | 74 65 72 20 74 72 61 6e |eturn af|ter tran|
|00001190| 73 66 65 72 69 6e 67 20 | 73 74 72 69 6e 67 20 2a |sfering |string *|
|000011a0| 2f 0d 0a 0d 0a 09 69 66 | 28 6a 20 3d 3d 20 30 29 |/.....if|(j == 0)|
|000011b0| 09 09 0d 0a 09 09 7b 0d | 0a 09 09 66 6f 72 28 69 |......{.|...for(i|
|000011c0| 20 3d 20 30 20 3b 20 6e | 61 6d 65 5b 69 5d 20 3b | = 0 ; n|ame[i] ;|
|000011d0| 20 69 2b 2b 29 0d 0a 09 | 09 09 66 69 6c 65 5b 69 | i++)...|..file[i|
|000011e0| 5d 20 3d 20 6e 61 6d 65 | 5b 69 5d 3b 0d 0a 09 09 |] = name|[i];....|
|000011f0| 66 69 6c 65 5b 69 5d 20 | 3d 20 30 3b 0d 0a 09 09 |file[i] |= 0;....|
|00001200| 72 65 74 75 72 6e 28 30 | 78 38 30 29 3b 0d 0a 09 |return(0|x80);...|
|00001210| 09 7d 0d 0a 0d 0a 2f 2a | 20 53 65 65 20 69 66 20 |.}..../*| See if |
|00001220| 64 72 69 76 65 20 73 70 | 65 63 69 66 69 65 64 20 |drive sp|ecified |
|00001230| 28 69 66 20 61 6c 70 68 | 61 29 20 2a 2f 0d 0a 0d |(if alph|a) */...|
|00001240| 0a 09 28 69 73 61 6c 70 | 68 61 28 6e 61 6d 65 5b |..(isalp|ha(name[|
|00001250| 30 5d 29 29 20 3f 20 28 | 64 72 69 76 65 20 3d 20 |0])) ? (|drive = |
|00001260| 31 29 20 3a 20 28 64 72 | 69 76 65 20 3d 20 30 29 |1) : (dr|ive = 0)|
|00001270| 3b 0d 0a 09 0d 0a 2f 2a | 20 52 65 74 75 72 6e 20 |;...../*| Return |
|00001280| 69 6c 6c 65 67 61 6c 20 | 69 66 20 64 72 69 76 65 |illegal |if drive|
|00001290| 20 6f 75 74 20 6f 66 20 | 62 6f 75 6e 64 73 20 2a | out of |bounds *|
|000012a0| 2f 0d 0a 0d 0a 09 69 66 | 28 64 72 69 76 65 29 0d |/.....if|(drive).|
|000012b0| 0a 09 09 69 66 28 28 6e | 61 6d 65 5b 30 5d 20 26 |...if((n|ame[0] &|
|000012c0| 20 30 78 35 46 29 20 3e | 20 4d 41 58 44 52 56 29 | 0x5F) >| MAXDRV)|
|000012d0| 0d 0a 09 09 09 72 65 74 | 75 72 6e 28 30 78 46 46 |.....ret|urn(0xFF|
|000012e0| 29 3b 0d 0a 0d 0a 2f 2a | 20 50 72 65 70 61 72 65 |);..../*| Prepare|
|000012f0| 20 72 65 74 75 72 6e 20 | 73 74 72 69 6e 67 20 77 | return |string w|
|00001300| 69 74 68 20 64 72 69 76 | 65 20 61 6e 64 20 66 69 |ith driv|e and fi|
|00001310| 6c 65 6e 61 6d 65 20 61 | 6e 64 20 65 78 74 72 61 |lename a|nd extra|
|00001320| 63 74 20 75 73 65 72 20 | 6e 75 6d 62 65 72 20 2a |ct user |number *|
|00001330| 2f 0d 0a 0d 0a 09 66 6f | 72 28 6b 20 3d 20 30 2c |/.....fo|r(k = 0,|
|00001340| 20 69 20 3d 20 30 20 3b | 20 6a 20 3e 20 30 20 3b | i = 0 ;| j > 0 ;|
|00001350| 20 69 2b 2b 2c 20 6a 2d | 2d 29 09 2f 2a 20 67 65 | i++, j-|-)./* ge|
|00001360| 74 20 75 73 65 72 20 6e | 75 6d 62 65 72 20 69 66 |t user n|umber if|
|00001370| 20 61 6e 79 20 2a 2f 0d | 0a 09 09 69 66 28 69 73 | any */.|...if(is|
|00001380| 64 69 67 69 74 28 6e 61 | 6d 65 5b 69 5d 29 29 0d |digit(na|me[i])).|
|00001390| 0a 09 09 09 7b 0d 0a 09 | 09 09 75 73 72 5b 6b 5d |....{...|..usr[k]|
|000013a0| 20 3d 20 6e 61 6d 65 5b | 69 5d 3b 0d 0a 09 09 09 | = name[|i];.....|
|000013b0| 6b 2b 2b 3b 0d 0a 09 09 | 09 7d 0d 0a 09 75 73 72 |k++;....|.}...usr|
|000013c0| 5b 6b 5d 20 3d 20 30 3b | 09 09 09 2f 2a 20 74 65 |[k] = 0;|.../* te|
|000013d0| 72 6d 69 6e 61 74 65 20 | 75 73 65 72 20 6e 75 6d |rminate |user num|
|000013e0| 62 65 72 20 73 74 72 69 | 6e 67 20 2a 2f 0d 0a 0d |ber stri|ng */...|
|000013f0| 0a 09 69 66 28 64 72 69 | 76 65 29 0d 0a 09 09 7b |..if(dri|ve)....{|
|00001400| 0d 0a 09 09 66 69 6c 65 | 5b 30 5d 20 3d 20 6e 61 |....file|[0] = na|
|00001410| 6d 65 5b 30 5d 3b 0d 0a | 09 09 66 69 6c 65 5b 31 |me[0];..|..file[1|
|00001420| 5d 20 3d 20 27 3a 27 3b | 09 09 2f 2a 20 61 64 64 |] = ':';|../* add|
|00001430| 20 63 6f 6c 6f 6e 20 69 | 66 20 64 72 69 76 65 20 | colon i|f drive |
|00001440| 73 70 65 63 69 66 69 65 | 64 20 2a 2f 0d 0a 09 09 |specifie|d */....|
|00001450| 69 20 3d 20 32 3b 0d 0a | 09 09 7d 0d 0a 09 65 6c |i = 2;..|..}...el|
|00001460| 73 65 0d 0a 09 09 69 20 | 3d 20 30 3b 0d 0a 0d 0a |se....i |= 0;....|
|00001470| 09 66 6f 72 28 20 6c 20 | 2b 3d 20 31 20 3b 20 6e |.for( l |+= 1 ; n|
|00001480| 61 6d 65 5b 69 5d 20 3b | 20 69 2b 2b 20 2c 20 6c |ame[i] ;| i++ , l|
|00001490| 2b 2b 29 0d 0a 09 09 66 | 69 6c 65 5b 69 5d 20 3d |++)....f|ile[i] =|
|000014a0| 20 6e 61 6d 65 5b 6c 5d | 3b 0d 0a 09 66 69 6c 65 | name[l]|;...file|
|000014b0| 5b 6c 5d 20 3d 20 30 3b | 0d 0a 0d 0a 2f 2a 20 43 |[l] = 0;|..../* C|
|000014c0| 68 65 63 6b 20 69 66 20 | 75 73 65 72 20 6e 75 6d |heck if |user num|
|000014d0| 62 65 72 20 77 61 73 20 | 70 72 65 73 65 6e 74 20 |ber was |present |
|000014e0| 61 6e 64 20 63 68 65 63 | 6b 20 69 66 20 69 6e 20 |and chec|k if in |
|000014f0| 62 6f 75 6e 64 73 20 2a | 2f 0d 0a 0d 0a 09 69 66 |bounds *|/.....if|
|00001500| 28 6b 20 3d 3d 20 30 29 | 0d 0a 09 09 72 65 74 75 |(k == 0)|....retu|
|00001510| 72 6e 28 30 78 38 30 29 | 3b 0d 0a 09 65 6c 73 65 |rn(0x80)|;...else|
|00001520| 0d 0a 09 09 72 65 74 75 | 72 6e 28 28 6b 20 3d 20 |....retu|rn((k = |
|00001530| 61 74 6f 69 28 75 73 72 | 29 29 20 3e 20 4d 41 58 |atoi(usr|)) > MAX|
|00001540| 55 53 52 20 3f 20 30 78 | 46 46 20 3a 20 6b 29 3b |USR ? 0x|FF : k);|
|00001550| 0d 0a 7d 0d 0a 0d 0a 1a | 70 72 65 73 65 6e 74 20 |..}.....|present |
|00001560| 61 6e 64 20 63 68 65 63 | 6b 20 69 66 20 69 6e 20 |and chec|k if in |
|00001570| 62 6f 75 6e 64 73 20 2a | 2f 0d 0a 0d 0a 09 69 66 |bounds *|/.....if|
|00001580| 2f 2a 0d 0a 09 57 49 4c | 44 45 58 50 2e 43 20 09 |/*...WIL|DEXP.C .|
|00001590| 76 31 2e 35 09 38 2f 32 | 39 2f 38 32 0d 0a 09 42 |v1.5.8/2|9/82...B|
|000015a0| 44 53 20 43 20 43 6f 6d | 6d 61 6e 64 2d 6c 69 6e |DS C Com|mand-lin|
|000015b0| 65 20 57 69 6c 64 2d 63 | 61 72 64 20 65 78 70 61 |e Wild-c|ard expa|
|000015c0| 6e 73 69 6f 6e 20 75 74 | 69 6c 69 74 79 0d 0a 09 |nsion ut|ility...|
|000015d0| 57 72 69 74 74 65 6e 20 | 62 79 20 4c 65 6f 72 20 |Written |by Leor |
|000015e0| 5a 6f 6c 6d 61 6e 0d 0a | 09 31 2e 32 20 2d 20 52 |Zolman..|.1.2 - R|
|000015f0| 65 6d 6f 76 65 20 61 74 | 74 72 69 62 75 74 65 20 |emove at|tribute |
|00001600| 62 69 74 73 20 66 72 6f | 6d 20 6e 61 6d 65 73 20 |bits fro|m names |
|00001610| 2d 20 57 2e 20 45 61 72 | 6e 65 73 74 0d 0a 09 31 |- W. Ear|nest...1|
|00001620| 2e 33 20 2d 20 41 64 64 | 20 63 6f 64 65 20 74 6f |.3 - Add| code to|
|00001630| 20 69 67 6e 6f 72 65 20 | 2e 53 59 53 20 66 69 6c | ignore |.SYS fil|
|00001640| 65 73 20 28 57 2e 44 2e | 45 29 0d 0a 09 31 2e 34 |es (W.D.|E)...1.4|
|00001650| 20 2d 20 41 64 64 20 63 | 6f 64 65 20 74 6f 20 6d | - Add c|ode to m|
|00001660| 61 6b 65 20 2e 53 59 53 | 20 66 69 6c 65 73 20 75 |ake .SYS| files u|
|00001670| 6e 2d 66 69 6e 64 61 62 | 6c 65 20 28 44 61 76 65 |n-findab|le (Dave|
|00001680| 20 48 61 72 64 79 29 0d | 0a 09 31 2e 35 20 2d 20 | Hardy).|..1.5 - |
|00001690| 4c 69 6d 69 74 65 64 20 | 72 65 74 75 72 6e 65 64 |Limited |returned|
|000016a0| 20 61 72 67 75 6d 65 6e | 74 73 20 74 6f 20 4d 41 | argumen|ts to MA|
|000016b0| 58 49 54 45 4d 53 20 28 | 42 6f 62 20 4d 61 74 68 |XITEMS (|Bob Math|
|000016c0| 69 61 73 29 0d 0a 09 4d | 6f 64 69 66 69 65 64 20 |ias)...M|odified |
|000016d0| 74 6f 20 43 50 4d 2f 36 | 38 6b 20 43 20 62 79 20 |to CPM/6|8k C by |
|000016e0| 4a 69 6d 20 43 61 74 68 | 65 79 20 31 2f 32 2f 38 |Jim Cath|ey 1/2/8|
|000016f0| 33 0d 0a 0d 0a 09 4c 65 | 74 73 20 61 6d 62 69 67 |3.....Le|ts ambig|
|00001700| 75 6f 75 73 20 66 69 6c | 65 20 6e 61 6d 65 73 20 |uous fil|e names |
|00001710| 61 70 70 65 61 72 20 6f | 6e 20 74 68 65 20 63 6f |appear o|n the co|
|00001720| 6d 6d 61 6e 64 20 6c 69 | 6e 65 20 74 6f 20 43 20 |mmand li|ne to C |
|00001730| 70 72 6f 67 72 61 6d 73 | 2c 0d 0a 09 61 75 74 6f |programs|,...auto|
|00001740| 6d 61 74 69 63 61 6c 6c | 79 20 65 78 70 61 6e 64 |maticall|y expand|
|00001750| 69 6e 67 20 74 68 65 20 | 70 61 72 61 6d 65 74 65 |ing the |paramete|
|00001760| 72 20 6c 69 73 74 20 74 | 6f 20 63 6f 6e 74 61 69 |r list t|o contai|
|00001770| 6e 20 61 6c 6c 20 66 69 | 6c 65 73 20 74 68 61 74 |n all fi|les that|
|00001780| 0d 0a 09 66 69 74 20 74 | 68 65 20 61 66 6e 27 73 |...fit t|he afn's|
|00001790| 2e 0d 0a 0d 0a 09 41 6e | 20 61 66 6e 20 70 72 65 |......An| afn pre|
|000017a0| 63 65 64 65 64 20 62 79 | 20 61 20 22 7e 22 20 63 |ceded by| a "~" c|
|000017b0| 61 75 73 65 73 20 61 6c | 6c 20 6e 61 6d 65 73 20 |auses al|l names |
|000017c0| 6d 61 74 63 68 69 6e 67 | 20 74 68 65 20 67 69 76 |matching| the giv|
|000017d0| 65 6e 20 61 66 6e 20 74 | 6f 0d 0a 09 62 65 20 45 |en afn t|o...be E|
|000017e0| 58 43 4c 55 44 45 44 20 | 66 72 6f 6d 20 74 68 65 |XCLUDED |from the|
|000017f0| 20 72 65 73 75 6c 74 69 | 6e 67 20 65 78 70 61 6e | resulti|ng expan|
|00001800| 73 69 6f 6e 20 6c 69 73 | 74 2e 20 54 68 75 73 2c |sion lis|t. Thus,|
|00001810| 20 74 6f 20 79 69 65 6c | 64 20 61 0d 0a 09 63 6f | to yiel|d a...co|
|00001820| 6d 6d 61 6e 64 20 6c 69 | 6e 65 20 63 6f 6e 74 61 |mmand li|ne conta|
|00001830| 69 6e 69 6e 67 20 61 6c | 6c 20 66 69 6c 65 73 20 |ining al|l files |
|00001840| 65 78 63 65 70 74 20 22 | 43 4f 4d 22 20 66 69 6c |except "|COM" fil|
|00001850| 65 73 2c 20 79 6f 75 27 | 64 20 73 61 79 3a 0d 0a |es, you'|d say:..|
|00001860| 0d 0a 09 09 41 3e 70 72 | 6f 67 6e 61 6d 65 20 7e |....A>pr|ogname ~|
|00001870| 2a 2e 63 6f 6d 20 3c 63 | 72 3e 0d 0a 0d 0a 09 41 |*.com <c|r>.....A|
|00001880| 6e 6f 74 68 65 72 20 65 | 78 61 6d 70 6c 65 3a 20 |nother e|xample: |
|00001890| 74 6f 20 67 65 74 20 61 | 6c 6c 20 66 69 6c 65 73 |to get a|ll files|
|000018a0| 20 6f 6e 20 42 3a 20 65 | 78 63 65 70 74 20 2e 43 | on B: e|xcept .C|
|000018b0| 20 66 69 6c 65 73 2c 20 | 73 61 79 3a 0d 0a 0d 0a | files, |say:....|
|000018c0| 09 09 41 3e 70 72 6f 67 | 6e 61 6d 20 62 3a 2a 2e |..A>prog|nam b:*.|
|000018d0| 2a 20 7e 62 3a 2a 2e 63 | 20 3c 63 72 3e 0d 0a 0d |* ~b:*.c| <cr>...|
|000018e0| 0a 09 57 68 65 6e 20 67 | 69 76 69 6e 67 20 61 20 |..When g|iving a |
|000018f0| 22 7e 22 20 61 66 6e 2c | 20 22 2a 22 20 63 68 61 |"~" afn,| "*" cha|
|00001900| 72 73 20 69 6e 20 74 68 | 65 20 73 74 72 69 6e 67 |rs in th|e string|
|00001910| 20 6d 61 74 63 68 65 73 | 20 74 6f 20 74 68 65 20 | matches| to the |
|00001920| 65 6e 64 20 6f 66 0d 0a | 09 65 69 74 68 65 72 20 |end of..|.either |
|00001930| 74 68 65 20 66 69 6c 65 | 6e 61 6d 65 20 6f 72 20 |the file|name or |
|00001940| 65 78 74 65 6e 73 69 6f | 6e 2c 20 6a 75 73 74 20 |extensio|n, just |
|00001950| 6c 69 6b 65 20 43 50 2f | 4d 2c 20 62 75 74 20 22 |like CP/|M, but "|
|00001960| 3f 22 20 63 68 61 72 73 | 20 6d 61 74 63 68 0d 0a |?" chars| match..|
|00001970| 09 4f 4e 45 20 61 6e 64 | 20 4f 4e 4c 59 20 4f 4e |.ONE and| ONLY ON|
|00001980| 45 20 63 68 61 72 61 63 | 74 65 72 20 69 6e 20 65 |E charac|ter in e|
|00001990| 69 74 68 65 72 20 74 68 | 65 20 66 69 6c 65 6e 61 |ither th|e filena|
|000019a0| 6d 65 20 6f 72 20 65 78 | 74 65 6e 73 69 6f 6e 2e |me or ex|tension.|
|000019b0| 0d 0a 0d 0a 09 54 6f 20 | 75 73 65 20 57 49 4c 44 |.....To |use WILD|
|000019c0| 45 58 50 2c 20 62 65 67 | 69 6e 20 79 6f 75 72 20 |EXP, beg|in your |
|000019d0| 22 6d 61 69 6e 22 20 66 | 75 6e 63 74 69 6f 6e 20 |"main" f|unction |
|000019e0| 61 73 20 66 6f 6c 6c 6f | 77 73 3a 0d 0a 0d 0a 09 |as follo|ws:.....|
|000019f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001a00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001a10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 0a 09 |--------|-----...|
|00001a20| 6d 61 69 6e 28 61 72 67 | 63 2c 61 72 67 76 29 0d |main(arg|c,argv).|
|00001a30| 0a 09 69 6e 74 20 61 72 | 67 63 3b 0d 0a 09 63 68 |..int ar|gc;...ch|
|00001a40| 61 72 20 2a 2a 61 72 67 | 76 3b 0d 0a 09 7b 0d 0a |ar **arg|v;...{..|
|00001a50| 09 09 2e 2e 2e 09 09 09 | 5c 2a 20 6c 6f 63 61 6c |........|\* local|
|00001a60| 20 64 65 63 6c 61 72 61 | 74 69 6f 6e 73 20 20 5c | declara|tions \|
|00001a70| 2a 0d 0a 09 09 77 69 6c | 64 65 78 70 28 26 61 72 |*....wil|dexp(&ar|
|00001a80| 67 63 2c 20 26 61 72 67 | 76 29 3b 09 5c 2a 20 31 |gc, &arg|v);.\* 1|
|00001a90| 73 74 20 73 74 61 74 65 | 2e 20 69 6e 20 70 72 6f |st state|. in pro|
|00001aa0| 67 2e 20 5c 2a 0d 0a 09 | 09 64 69 6f 69 6e 69 74 |g. \*...|.dioinit|
|00001ab0| 28 26 61 72 67 63 2c 61 | 72 67 76 29 3b 20 20 20 |(&argc,a|rgv); |
|00001ac0| 20 5c 2a 20 69 66 20 75 | 73 69 6e 67 20 44 49 4f | \* if u|sing DIO|
|00001ad0| 09 20 20 20 5c 2a 0d 0a | 09 09 2e 2e 2e 0d 0a 09 |. \*..|........|
|00001ae0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001af0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 0a 0d |--------|-----...|
|00001b10| 0a 09 61 6e 64 20 6c 69 | 6e 6b 20 57 49 4c 44 45 |..and li|nk WILDE|
|00001b20| 58 50 2e 4f 20 69 6e 20 | 77 69 74 68 20 79 6f 75 |XP.O in |with you|
|00001b30| 72 20 70 72 6f 67 72 61 | 6d 2e 20 54 68 61 74 27 |r progra|m. That'|
|00001b40| 73 20 61 6c 6c 20 74 68 | 65 72 65 20 69 73 20 74 |s all th|ere is t|
|00001b50| 6f 0d 0a 09 69 74 3b 20 | 6e 6f 74 65 20 74 68 61 |o...it; |note tha|
|00001b60| 74 20 22 77 69 6c 64 65 | 78 70 22 20 75 73 65 73 |t "wilde|xp" uses|
|00001b70| 20 74 68 65 20 22 73 62 | 72 6b 22 20 66 75 6e 63 | the "sb|rk" func|
|00001b80| 74 69 6f 6e 20 74 6f 20 | 6f 62 74 61 69 6e 20 73 |tion to |obtain s|
|00001b90| 74 6f 72 61 67 65 2c 0d | 0a 09 73 6f 20 64 6f 6e |torage,.|..so don|
|00001ba0| 27 74 20 67 6f 20 70 6c | 61 79 69 6e 67 20 61 72 |'t go pl|aying ar|
|00001bb0| 6f 75 6e 64 20 77 69 74 | 68 20 6d 65 6d 6f 72 79 |ound wit|h memory|
|00001bc0| 20 74 68 61 74 20 69 73 | 20 6f 75 74 73 69 64 65 | that is| outside|
|00001bd0| 20 6f 66 20 74 68 65 0d | 0a 09 65 78 74 65 72 6e | of the.|..extern|
|00001be0| 61 6c 20 6f 72 20 73 74 | 61 63 6b 20 61 72 65 61 |al or st|ack area|
|00001bf0| 73 20 75 6e 6c 65 73 73 | 20 79 6f 75 20 6f 62 74 |s unless| you obt|
|00001c00| 61 69 6e 20 74 68 65 20 | 6d 65 6d 6f 72 79 20 74 |ain the |memory t|
|00001c10| 68 72 6f 75 67 68 20 22 | 73 62 72 6b 22 0d 0a 09 |hrough "|sbrk"...|
|00001c20| 6f 72 20 22 61 6c 6c 6f | 63 22 20 63 61 6c 6c 73 |or "allo|c" calls|
|00001c30| 2e 0d 0a 2a 2f 0d 0a 0d | 0a 23 69 6e 63 6c 75 64 |...*/...|.#includ|
|00001c40| 65 09 3c 73 74 64 69 6f | 2e 68 3e 0d 0a 23 69 6e |e.<stdio|.h>..#in|
|00001c50| 63 6c 75 64 65 09 3c 63 | 74 79 70 65 2e 68 3e 0d |clude.<c|type.h>.|
|00001c60| 0a 23 64 65 66 69 6e 65 | 09 09 4d 41 58 49 54 45 |.#define|..MAXITE|
|00001c70| 4d 53 09 32 30 30 09 2f | 2a 20 6d 61 78 20 6e 6f |MS.200./|* max no|
|00001c80| 2e 20 6f 66 20 69 74 65 | 6d 73 20 61 66 74 65 72 |. of ite|ms after|
|00001c90| 20 65 78 70 61 6e 73 69 | 6f 6e 20 2a 2f 0d 0a 23 | expansi|on */..#|
|00001ca0| 64 65 66 69 6e 65 09 09 | 53 45 41 52 43 48 5f 46 |define..|SEARCH_F|
|00001cb0| 49 52 53 54 09 31 37 09 | 2f 2a 20 42 44 4f 53 20 |IRST.17.|/* BDOS |
|00001cc0| 63 61 6c 6c 73 20 2a 2f | 0d 0a 23 64 65 66 69 6e |calls */|..#defin|
|00001cd0| 65 09 09 53 45 41 52 43 | 48 5f 4e 45 58 54 09 31 |e..SEARC|H_NEXT.1|
|00001ce0| 38 0d 0a 0d 0a 77 69 6c | 64 65 78 70 28 6f 61 72 |8....wil|dexp(oar|
|00001cf0| 67 63 70 2c 20 6f 61 72 | 67 76 70 29 0d 0a 69 6e |gcp, oar|gvp)..in|
|00001d00| 74 09 2a 6f 61 72 67 63 | 70 3b 09 09 2f 2a 20 70 |t.*oargc|p;../* p|
|00001d10| 6f 69 6e 74 65 72 20 74 | 6f 20 6f 6c 64 20 61 72 |ointer t|o old ar|
|00001d20| 67 63 20 2a 2f 0d 0a 63 | 68 61 72 09 2a 2a 2a 6f |gc */..c|har.***o|
|00001d30| 61 72 67 76 70 3b 09 09 | 2f 2a 20 70 6f 69 6e 74 |argvp;..|/* point|
|00001d40| 65 72 20 74 6f 20 6f 6c | 64 20 61 72 67 76 20 2a |er to ol|d argv *|
|00001d50| 2f 0d 0a 7b 0d 0a 09 69 | 6e 74 09 6e 61 72 67 63 |/..{...i|nt.nargc|
|00001d60| 3b 09 09 2f 2a 20 6e 65 | 77 20 61 72 67 63 20 2a |;../* ne|w argc *|
|00001d70| 2f 0d 0a 09 63 68 61 72 | 09 2a 2a 6e 61 72 67 76 |/...char|.**nargv|
|00001d80| 3b 09 2f 2a 20 6e 65 77 | 20 61 72 67 76 20 2a 2f |;./* new| argv */|
|00001d90| 0d 0a 09 63 68 61 72 09 | 2a 2a 6f 61 72 67 76 3b |...char.|**oargv;|
|00001da0| 09 2f 2a 20 6f 6c 64 20 | 61 72 67 76 20 2a 2f 0d |./* old |argv */.|
|00001db0| 0a 09 69 6e 74 09 6f 61 | 72 67 63 3b 09 09 2f 2a |..int.oa|rgc;../*|
|00001dc0| 20 6f 6c 64 20 61 72 67 | 63 20 2a 2f 0d 0a 09 63 | old arg|c */...c|
|00001dd0| 68 61 72 09 66 63 62 5b | 33 36 5d 3b 09 2f 2a 20 |har.fcb[|36];./* |
|00001de0| 66 63 62 20 75 73 65 64 | 20 66 6f 72 20 73 65 61 |fcb used| for sea|
|00001df0| 72 63 68 20 66 6f 72 20 | 66 69 72 73 74 2f 6e 65 |rch for |first/ne|
|00001e00| 78 74 20 63 61 6c 6c 73 | 20 2a 2f 0d 0a 09 69 6e |xt calls| */...in|
|00001e10| 74 09 64 6d 61 70 6f 73 | 3b 09 09 2f 2a 20 76 61 |t.dmapos|;../* va|
|00001e20| 6c 75 65 20 72 65 74 75 | 72 6e 65 64 20 62 79 20 |lue retu|rned by |
|00001e30| 73 65 61 72 63 68 20 63 | 61 6c 6c 73 20 2a 2f 0d |search c|alls */.|
|00001e40| 0a 09 69 6e 74 09 66 69 | 72 73 74 5f 74 69 6d 65 |..int.fi|rst_time|
|00001e50| 3b 09 2f 2a 20 75 73 65 | 64 20 69 6e 20 73 65 61 |;./* use|d in sea|
|00001e60| 72 63 68 20 72 6f 75 74 | 69 6e 65 20 2a 2f 0d 0a |rch rout|ine */..|
|00001e70| 09 63 68 61 72 09 64 69 | 72 62 75 66 5b 31 32 38 |.char.di|rbuf[128|
|00001e80| 5d 3b 09 2f 2a 20 44 69 | 72 65 63 74 6f 72 79 20 |];./* Di|rectory |
|00001e90| 42 75 66 66 65 72 20 2a | 2f 0d 0a 09 63 68 61 72 |Buffer *|/...char|
|00001ea0| 09 74 6d 70 66 6e 5b 32 | 30 5d 2c 09 2f 2a 20 74 |.tmpfn[2|0],./* t|
|00001eb0| 65 6d 70 20 66 69 6c 65 | 6e 61 6d 65 20 62 75 66 |emp file|name buf|
|00001ec0| 66 65 72 20 2a 2f 0d 0a | 09 09 2a 74 6d 70 66 6e |fer */..|..*tmpfn|
|00001ed0| 70 3b 0d 0a 09 63 68 61 | 72 09 2a 6e 6f 74 66 6e |p;...cha|r.*notfn|
|00001ee0| 73 5b 32 30 5d 3b 09 2f | 2a 20 6c 69 73 74 20 6f |s[20];./|* list o|
|00001ef0| 66 20 21 3c 61 66 6e 3e | 20 65 6e 74 72 69 65 73 |f !<afn>| entries|
|00001f00| 20 2a 2f 0d 0a 09 69 6e | 74 09 6e 6f 74 63 6f 75 | */...in|t.notcou|
|00001f10| 6e 74 3b 09 2f 2a 20 63 | 6f 75 6e 74 20 6f 66 20 |nt;./* c|ount of |
|00001f20| 65 6e 74 72 69 65 73 20 | 69 6e 20 6e 6f 74 66 6e |entries |in notfn|
|00001f30| 73 20 2a 2f 0d 0a 09 69 | 6e 74 09 63 75 72 5f 64 |s */...i|nt.cur_d|
|00001f40| 72 69 76 65 3b 09 2f 2a | 20 63 75 72 72 65 6e 74 |rive;./*| current|
|00001f50| 6c 79 20 6c 6f 67 67 65 | 64 20 64 72 69 76 65 20 |ly logge|d drive |
|00001f60| 2a 2f 0d 0a 09 69 6e 74 | 09 69 2c 6a 2c 6b 3b 0d |*/...int|.i,j,k;.|
|00001f70| 0a 09 63 68 61 72 09 2a | 73 62 72 6b 28 29 3b 09 |..char.*|sbrk();.|
|00001f80| 2f 2a 20 73 74 6f 72 61 | 67 65 20 61 6c 6c 6f 63 |/* stora|ge alloc|
|00001f90| 61 74 6f 72 20 2a 2f 0d | 0a 09 63 68 61 72 09 2a |ator */.|..char.*|
|00001fa0| 68 61 63 6b 6e 61 6d 65 | 28 29 3b 09 2f 2a 20 4e |hackname|();./* N|
|00001fb0| 61 6d 65 20 63 72 75 6e | 63 68 65 72 20 66 63 62 |ame crun|cher fcb|
|00001fc0| 20 2d 3e 20 73 74 72 69 | 6e 67 20 2a 2f 0d 0a 09 | -> stri|ng */...|
|00001fd0| 69 6e 74 09 74 6d 70 3b | 0d 0a 0d 0a 09 63 75 72 |int.tmp;|.....cur|
|00001fe0| 5f 64 72 69 76 65 20 3d | 20 5f 5f 42 44 4f 53 28 |_drive =| __BDOS(|
|00001ff0| 32 35 2c 20 30 6c 29 3b | 0d 0a 0d 0a 09 6f 61 72 |25, 0l);|.....oar|
|00002000| 67 76 20 3d 20 2a 6f 61 | 72 67 76 70 3b 0d 0a 09 |gv = *oa|rgvp;...|
|00002010| 6f 61 72 67 63 20 3d 20 | 2a 6f 61 72 67 63 70 3b |oargc = |*oargcp;|
|00002020| 0d 0a 09 6e 61 72 67 63 | 20 3d 20 6e 6f 74 63 6f |...nargc| = notco|
|00002030| 75 6e 74 20 3d 20 30 3b | 0d 0a 0d 0a 09 69 66 20 |unt = 0;|.....if |
|00002040| 28 28 6e 61 72 67 76 20 | 3d 20 73 62 72 6b 28 4d |((nargv |= sbrk(M|
|00002050| 41 58 49 54 45 4d 53 20 | 2a 20 34 20 2b 20 34 29 |AXITEMS |* 4 + 4)|
|00002060| 29 20 3d 3d 20 45 52 52 | 4f 52 29 0d 0a 09 09 72 |) == ERR|OR)....r|
|00002070| 65 74 75 72 6e 20 45 52 | 52 4f 52 3b 0d 0a 0d 0a |eturn ER|ROR;....|
|00002080| 09 66 6f 72 20 28 69 20 | 3d 20 30 3b 20 28 6e 61 |.for (i |= 0; (na|
|00002090| 72 67 63 20 3c 3d 20 28 | 4d 41 58 49 54 45 4d 53 |rgc <= (|MAXITEMS|
|000020a0| 2b 31 29 29 20 26 26 20 | 69 20 3c 20 6f 61 72 67 |+1)) && |i < oarg|
|000020b0| 63 3b 20 69 2b 2b 29 0d | 0a 09 09 69 66 20 28 6f |c; i++).|...if (o|
|000020c0| 61 72 67 76 5b 69 5d 5b | 30 5d 20 3d 3d 20 27 7e |argv[i][|0] == '~|
|000020d0| 27 29 20 7b 0d 0a 09 09 | 09 69 66 20 28 69 20 3d |') {....|.if (i =|
|000020e0| 3d 20 31 29 20 7b 0d 0a | 09 09 09 09 6f 61 72 67 |= 1) {..|....oarg|
|000020f0| 76 5b 6f 61 72 67 63 5d | 20 3d 20 22 2a 2e 2a 22 |v[oargc]| = "*.*"|
|00002100| 3b 0d 0a 09 09 09 09 6f | 61 72 67 63 2b 2b 3b 0d |;......o|argc++;.|
|00002110| 0a 09 09 09 7d 09 09 09 | 09 0d 0a 09 09 09 6e 6f |....}...|......no|
|00002120| 74 66 6e 73 5b 6e 6f 74 | 63 6f 75 6e 74 2b 2b 5d |tfns[not|count++]|
|00002130| 20 3d 20 26 6f 61 72 67 | 76 5b 69 5d 5b 31 5d 3b | = &oarg|v[i][1];|
|00002140| 0d 0a 09 09 7d 0d 0a 09 | 09 65 6c 73 65 20 69 66 |....}...|.else if|
|00002150| 20 28 21 68 61 73 77 69 | 6c 64 28 6f 61 72 67 76 | (!haswi|ld(oargv|
|00002160| 5b 69 5d 29 29 0d 0a 09 | 09 09 6e 61 72 67 76 5b |[i]))...|..nargv[|
|00002170| 6e 61 72 67 63 2b 2b 5d | 20 3d 20 6f 61 72 67 76 |nargc++]| = oargv|
|00002180| 5b 69 5d 3b 0d 0a 09 09 | 65 6c 73 65 20 7b 0d 0a |[i];....|else {..|
|00002190| 09 09 20 20 20 73 65 74 | 66 63 62 28 66 63 62 2c |.. set|fcb(fcb,|
|000021a0| 20 6f 61 72 67 76 5b 69 | 5d 29 3b 0d 0a 09 09 20 | oargv[i|]);.... |
|000021b0| 20 20 74 6d 70 66 6e 70 | 20 3d 20 74 6d 70 66 6e | tmpfnp| = tmpfn|
|000021c0| 3b 0d 0a 09 09 20 20 20 | 69 66 20 28 28 74 6d 70 |;.... |if ((tmp|
|000021d0| 66 6e 5b 31 5d 20 3d 20 | 6f 61 72 67 76 5b 69 5d |fn[1] = |oargv[i]|
|000021e0| 5b 31 5d 29 20 3d 3d 20 | 27 3a 27 29 20 7b 0d 0a |[1]) == |':') {..|
|000021f0| 09 09 09 74 6d 70 66 6e | 5b 30 5d 20 3d 20 6f 61 |...tmpfn|[0] = oa|
|00002200| 72 67 76 5b 69 5d 5b 30 | 5d 3b 0d 0a 09 09 09 74 |rgv[i][0|];.....t|
|00002210| 6d 70 66 6e 70 20 3d 20 | 74 6d 70 66 6e 20 2b 20 |mpfnp = |tmpfn + |
|00002220| 32 3b 0d 0a 09 09 20 20 | 20 7d 0d 0a 0d 0a 09 09 |2;.... | }......|
|00002230| 20 20 20 66 69 72 73 74 | 5f 74 69 6d 65 20 3d 20 | first|_time = |
|00002240| 54 52 55 45 3b 0d 0a 09 | 09 20 20 20 5f 5f 42 44 |TRUE;...|. __BD|
|00002250| 4f 53 28 32 36 2c 20 64 | 69 72 62 75 66 29 3b 20 |OS(26, d|irbuf); |
|00002260| 09 2f 2a 20 53 65 74 20 | 44 4d 41 20 61 64 64 72 |./* Set |DMA addr|
|00002270| 65 73 73 20 74 6f 20 44 | 69 72 20 62 75 66 66 65 |ess to D|ir buffe|
|00002280| 72 20 2a 2f 0d 0a 09 09 | 20 20 20 77 68 69 6c 65 |r */....| while|
|00002290| 20 28 6e 61 72 67 63 3c | 3d 28 4d 41 58 49 54 45 | (nargc<|=(MAXITE|
|000022a0| 4d 53 2b 31 29 29 20 7b | 20 2f 2a 20 66 69 6e 64 |MS+1)) {| /* find|
|000022b0| 20 61 6c 6c 20 6d 61 74 | 63 68 69 6e 67 20 66 69 | all mat|ching fi|
|000022c0| 6c 65 73 20 2a 2f 0d 0a | 09 09 20 20 20 20 20 64 |les */..|.. d|
|000022d0| 6d 61 70 6f 73 20 3d 20 | 5f 5f 42 44 4f 53 28 66 |mapos = |__BDOS(f|
|000022e0| 69 72 73 74 5f 74 69 6d | 65 20 3f 20 53 45 41 52 |irst_tim|e ? SEAR|
|000022f0| 43 48 5f 46 49 52 53 54 | 20 3a 20 53 45 41 52 43 |CH_FIRST| : SEARC|
|00002300| 48 5f 4e 45 58 54 2c 0d | 0a 09 09 09 09 09 09 09 |H_NEXT,.|........|
|00002310| 09 09 66 63 62 29 3b 0d | 0a 09 09 09 69 66 20 28 |..fcb);.|....if (|
|00002320| 64 6d 61 70 6f 73 20 3d | 3d 20 32 35 35 29 20 62 |dmapos =|= 255) b|
|00002330| 72 65 61 6b 3b 0d 0a 09 | 09 09 66 69 72 73 74 5f |reak;...|..first_|
|00002340| 74 69 6d 65 20 3d 20 46 | 41 4c 53 45 3b 0d 0a 09 |time = F|ALSE;...|
|00002350| 09 09 68 61 63 6b 6e 61 | 6d 65 28 74 6d 70 66 6e |..hackna|me(tmpfn|
|00002360| 70 2c 20 64 69 72 62 75 | 66 20 2b 20 64 6d 61 70 |p, dirbu|f + dmap|
|00002370| 6f 73 20 2a 20 33 32 29 | 3b 0d 0a 09 09 09 69 66 |os * 32)|;.....if|
|00002380| 20 28 28 6e 61 72 67 76 | 5b 6e 61 72 67 63 5d 20 | ((nargv|[nargc] |
|00002390| 3d 20 73 62 72 6b 28 73 | 74 72 6c 65 6e 28 74 6d |= sbrk(s|trlen(tm|
|000023a0| 70 66 6e 29 20 2b 20 31 | 29 29 20 3d 3d 20 45 52 |pfn) + 1|)) == ER|
|000023b0| 52 4f 52 29 0d 0a 09 09 | 09 09 72 65 74 75 72 6e |ROR)....|..return|
|000023c0| 20 45 52 52 4f 52 3b 0d | 0a 09 09 09 73 74 72 63 | ERROR;.|....strc|
|000023d0| 70 79 28 6e 61 72 67 76 | 5b 6e 61 72 67 63 2b 2b |py(nargv|[nargc++|
|000023e0| 5d 2c 20 74 6d 70 66 6e | 29 3b 0d 0a 09 09 20 20 |], tmpfn|);.... |
|000023f0| 20 7d 0d 0a 09 09 20 20 | 20 5f 5f 42 44 4f 53 28 | }.... | __BDOS(|
|00002400| 31 34 2c 20 28 6c 6f 6e | 67 29 20 63 75 72 5f 64 |14, (lon|g) cur_d|
|00002410| 72 69 76 65 29 3b 20 2f | 2a 20 72 65 73 74 6f 72 |rive); /|* restor|
|00002420| 65 20 74 6f 20 63 75 72 | 72 65 6e 74 20 64 72 69 |e to cur|rent dri|
|00002430| 76 65 20 2a 2f 0d 0a 09 | 09 7d 0d 0a 09 66 6f 72 |ve */...|.}...for|
|00002440| 20 28 69 20 3d 20 30 3b | 20 69 20 3c 20 6e 6f 74 | (i = 0;| i < not|
|00002450| 63 6f 75 6e 74 3b 20 69 | 2b 2b 29 0d 0a 09 09 66 |count; i|++)....f|
|00002460| 6f 72 20 28 6a 20 3d 20 | 31 3b 20 6a 20 3c 20 6e |or (j = |1; j < n|
|00002470| 61 72 67 63 3b 20 6a 2b | 2b 29 0d 0a 09 09 09 77 |argc; j+|+).....w|
|00002480| 68 69 6c 65 20 28 6d 61 | 74 63 68 28 6e 6f 74 66 |hile (ma|tch(notf|
|00002490| 6e 73 5b 69 5d 2c 20 6e | 61 72 67 76 5b 6a 5d 2c |ns[i], n|argv[j],|
|000024a0| 20 63 75 72 5f 64 72 69 | 76 65 29 29 0d 0a 09 09 | cur_dri|ve))....|
|000024b0| 09 7b 0d 0a 09 09 09 09 | 69 66 28 6a 20 3d 3d 20 |.{......|if(j == |
|000024c0| 2d 2d 6e 61 72 67 63 29 | 0d 0a 09 09 09 09 09 62 |--nargc)|.......b|
|000024d0| 72 65 61 6b 3b 0d 0a 09 | 09 09 09 66 6f 72 20 28 |reak;...|...for (|
|000024e0| 6b 20 3d 20 6a 3b 20 6b | 20 3c 20 6e 61 72 67 63 |k = j; k| < nargc|
|000024f0| 3b 20 6b 2b 2b 29 0d 0a | 09 09 09 09 09 6e 61 72 |; k++)..|.....nar|
|00002500| 67 76 5b 6b 5d 20 3d 20 | 6e 61 72 67 76 5b 6b 2b |gv[k] = |nargv[k+|
|00002510| 31 5d 3b 0d 0a 09 09 09 | 7d 0d 0a 09 2a 6f 61 72 |1];.....|}...*oar|
|00002520| 67 63 70 20 3d 20 6e 61 | 72 67 63 3b 0d 0a 09 2a |gcp = na|rgc;...*|
|00002530| 6f 61 72 67 76 70 20 3d | 20 6e 61 72 67 76 3b 0d |oargvp =| nargv;.|
|00002540| 0a 09 72 65 74 75 72 6e | 20 30 3b 0d 0a 7d 0d 0a |..return| 0;..}..|
|00002550| 0d 0a 73 74 61 74 69 63 | 20 63 68 61 72 20 2a 0d |..static| char *.|
|00002560| 0a 68 61 63 6b 6e 61 6d | 65 28 64 65 73 74 2c 73 |.hacknam|e(dest,s|
|00002570| 6f 75 72 63 65 29 0d 0a | 63 68 61 72 20 2a 64 65 |ource)..|char *de|
|00002580| 73 74 2c 20 2a 73 6f 75 | 72 63 65 3b 0d 0a 7b 0d |st, *sou|rce;..{.|
|00002590| 0a 09 69 6e 74 20 69 2c | 6a 3b 0d 0a 0d 0a 09 6a |..int i,|j;.....j|
|000025a0| 20 3d 20 30 3b 0d 0a 0d | 0a 09 66 6f 72 20 28 69 | = 0;...|..for (i|
|000025b0| 20 3d 20 31 3b 20 69 20 | 3c 20 39 3b 20 69 2b 2b | = 1; i |< 9; i++|
|000025c0| 29 0d 0a 09 7b 0d 0a 09 | 09 69 66 20 28 73 6f 75 |)...{...|.if (sou|
|000025d0| 72 63 65 5b 69 5d 20 3d | 3d 20 27 20 27 29 20 62 |rce[i] =|= ' ') b|
|000025e0| 72 65 61 6b 3b 0d 0a 09 | 09 64 65 73 74 5b 6a 2b |reak;...|.dest[j+|
|000025f0| 2b 5d 20 3d 20 74 6f 6c | 6f 77 65 72 28 73 6f 75 |+] = tol|ower(sou|
|00002600| 72 63 65 5b 69 5d 20 26 | 20 30 78 37 46 29 3b 0d |rce[i] &| 0x7F);.|
|00002610| 0a 09 7d 0d 0a 09 69 66 | 20 28 73 6f 75 72 63 65 |..}...if| (source|
|00002620| 5b 39 5d 20 21 3d 20 27 | 20 27 29 0d 0a 09 09 64 |[9] != '| ')....d|
|00002630| 65 73 74 5b 6a 2b 2b 5d | 20 3d 20 27 2e 27 3b 0d |est[j++]| = '.';.|
|00002640| 0a 0d 0a 09 66 6f 72 20 | 28 69 20 3d 20 39 3b 20 |....for |(i = 9; |
|00002650| 69 20 3c 20 31 32 3b 20 | 69 2b 2b 29 0d 0a 09 7b |i < 12; |i++)...{|
|00002660| 0d 0a 09 09 69 66 20 28 | 73 6f 75 72 63 65 5b 69 |....if (|source[i|
|00002670| 5d 20 3d 3d 20 27 20 27 | 29 20 62 72 65 61 6b 3b |] == ' '|) break;|
|00002680| 0d 0a 09 09 64 65 73 74 | 5b 6a 2b 2b 5d 20 3d 20 |....dest|[j++] = |
|00002690| 74 6f 6c 6f 77 65 72 28 | 73 6f 75 72 63 65 5b 69 |tolower(|source[i|
|000026a0| 5d 20 26 20 30 78 37 46 | 29 3b 0d 0a 09 7d 0d 0a |] & 0x7F|);...}..|
|000026b0| 09 64 65 73 74 5b 6a 5d | 20 3d 20 27 5c 30 27 3b |.dest[j]| = '\0';|
|000026c0| 0d 0a 09 72 65 74 75 72 | 6e 20 64 65 73 74 3b 0d |...retur|n dest;.|
|000026d0| 0a 7d 0d 0a 0d 0a 73 74 | 61 74 69 63 0d 0a 69 6e |.}....st|atic..in|
|000026e0| 74 20 68 61 73 77 69 6c | 64 28 66 6e 61 6d 65 29 |t haswil|d(fname)|
|000026f0| 0d 0a 63 68 61 72 20 2a | 66 6e 61 6d 65 3b 0d 0a |..char *|fname;..|
|00002700| 7b 0d 0a 09 63 68 61 72 | 20 63 3b 0d 0a 0d 0a 09 |{...char| c;.....|
|00002710| 77 68 69 6c 65 20 28 63 | 20 3d 20 2a 66 6e 61 6d |while (c| = *fnam|
|00002720| 65 2b 2b 29 0d 0a 09 09 | 69 66 20 28 63 20 3d 3d |e++)....|if (c ==|
|00002730| 20 27 2a 27 20 7c 7c 20 | 63 20 3d 3d 20 27 3f 27 | '*' || |c == '?'|
|00002740| 29 20 0d 0a 09 09 09 72 | 65 74 75 72 6e 20 54 52 |) .....r|eturn TR|
|00002750| 55 45 3b 0d 0a 09 72 65 | 74 75 72 6e 20 46 41 4c |UE;...re|turn FAL|
|00002760| 53 45 3b 0d 0a 7d 0d 0a | 0d 0a 73 74 61 74 69 63 |SE;..}..|..static|
|00002770| 0d 0a 6d 61 74 63 68 28 | 77 69 6c 64 6e 61 6d 2c |..match(|wildnam,|
|00002780| 20 66 69 6c 6e 61 6d 2c | 20 63 75 72 5f 64 72 69 | filnam,| cur_dri|
|00002790| 76 65 29 0d 0a 63 68 61 | 72 20 2a 77 69 6c 64 6e |ve)..cha|r *wildn|
|000027a0| 61 6d 2c 20 2a 66 69 6c | 6e 61 6d 2c 20 63 75 72 |am, *fil|nam, cur|
|000027b0| 5f 64 72 69 76 65 3b 0d | 0a 7b 0d 0a 20 20 20 63 |_drive;.|.{.. c|
|000027c0| 68 61 72 20 63 3b 0d 0a | 0d 0a 20 20 20 69 66 20 |har c;..|.. if |
|000027d0| 28 77 69 6c 64 6e 61 6d | 5b 31 5d 20 21 3d 20 27 |(wildnam|[1] != '|
|000027e0| 3a 27 29 0d 0a 20 20 20 | 7b 0d 0a 09 69 66 20 28 |:').. |{...if (|
|000027f0| 66 69 6c 6e 61 6d 5b 31 | 5d 20 3d 3d 20 27 3a 27 |filnam[1|] == ':'|
|00002800| 29 0d 0a 09 09 69 66 20 | 28 66 69 6c 6e 61 6d 5b |)....if |(filnam[|
|00002810| 30 5d 20 2d 20 27 61 27 | 20 3d 3d 20 63 75 72 5f |0] - 'a'| == cur_|
|00002820| 64 72 69 76 65 29 0d 0a | 09 09 09 66 69 6c 6e 61 |drive)..|...filna|
|00002830| 6d 20 2b 3d 20 32 3b 0d | 0a 09 09 65 6c 73 65 0d |m += 2;.|...else.|
|00002840| 0a 09 09 09 72 65 74 75 | 72 6e 20 46 41 4c 53 45 |....retu|rn FALSE|
|00002850| 3b 0d 0a 20 20 20 7d 0d | 0a 20 20 20 65 6c 73 65 |;.. }.|. else|
|00002860| 0d 0a 20 20 20 7b 0d 0a | 09 69 66 20 28 66 69 6c |.. {..|.if (fil|
|00002870| 6e 61 6d 5b 31 5d 20 21 | 3d 20 27 3a 27 29 0d 0a |nam[1] !|= ':')..|
|00002880| 09 09 69 66 20 28 77 69 | 6c 64 6e 61 6d 5b 30 5d |..if (wi|ldnam[0]|
|00002890| 20 2d 20 27 61 27 20 3d | 3d 20 63 75 72 5f 64 72 | - 'a' =|= cur_dr|
|000028a0| 69 76 65 29 0d 0a 09 09 | 09 77 69 6c 64 6e 61 6d |ive)....|.wildnam|
|000028b0| 20 2b 3d 20 32 3b 0d 0a | 09 09 65 6c 73 65 0d 0a | += 2;..|..else..|
|000028c0| 09 09 09 72 65 74 75 72 | 6e 20 46 41 4c 53 45 3b |...retur|n FALSE;|
|000028d0| 0d 0a 20 20 20 7d 0d 0a | 0d 0a 20 20 20 77 68 69 |.. }..|.. whi|
|000028e0| 6c 65 20 28 63 20 3d 20 | 2a 77 69 6c 64 6e 61 6d |le (c = |*wildnam|
|000028f0| 2b 2b 29 0d 0a 09 69 66 | 20 28 63 20 3d 3d 20 27 |++)...if| (c == '|
|00002900| 3f 27 29 0d 0a 09 09 69 | 66 20 28 28 63 20 3d 20 |?')....i|f ((c = |
|00002910| 2a 66 69 6c 6e 61 6d 2b | 2b 29 20 26 26 20 63 20 |*filnam+|+) && c |
|00002920| 21 3d 20 27 2e 27 29 0d | 0a 09 09 09 63 6f 6e 74 |!= '.').|....cont|
|00002930| 69 6e 75 65 3b 0d 0a 09 | 09 65 6c 73 65 0d 0a 09 |inue;...|.else...|
|00002940| 09 09 72 65 74 75 72 6e | 20 46 41 4c 53 45 3b 0d |..return| FALSE;.|
|00002950| 0a 09 65 6c 73 65 20 69 | 66 20 28 63 20 3d 3d 20 |..else i|f (c == |
|00002960| 27 2a 27 29 0d 0a 09 7b | 0d 0a 09 09 77 68 69 6c |'*')...{|....whil|
|00002970| 65 20 28 63 20 3d 20 2a | 77 69 6c 64 6e 61 6d 29 |e (c = *|wildnam)|
|00002980| 0d 0a 09 09 7b 20 09 77 | 69 6c 64 6e 61 6d 2b 2b |....{ .w|ildnam++|
|00002990| 3b 0d 0a 09 09 09 69 66 | 20 28 63 20 3d 3d 20 27 |;.....if| (c == '|
|000029a0| 2e 27 29 20 62 72 65 61 | 6b 3b 0d 0a 09 09 7d 0d |.') brea|k;....}.|
|000029b0| 0a 09 09 77 68 69 6c 65 | 20 28 63 20 3d 20 2a 66 |...while| (c = *f|
|000029c0| 69 6c 6e 61 6d 29 0d 0a | 09 09 7b 09 66 69 6c 6e |ilnam)..|..{.filn|
|000029d0| 61 6d 2b 2b 3b 0d 0a 09 | 09 09 69 66 20 28 63 20 |am++;...|..if (c |
|000029e0| 3d 3d 20 27 2e 27 29 20 | 62 72 65 61 6b 3b 0d 0a |== '.') |break;..|
|000029f0| 09 09 7d 0d 0a 09 7d 0d | 0a 09 65 6c 73 65 20 69 |..}...}.|..else i|
|00002a00| 66 20 28 63 20 3d 3d 20 | 2a 66 69 6c 6e 61 6d 2b |f (c == |*filnam+|
|00002a10| 2b 29 0d 0a 09 20 09 63 | 6f 6e 74 69 6e 75 65 3b |+)... .c|ontinue;|
|00002a20| 0d 0a 09 65 6c 73 65 20 | 72 65 74 75 72 6e 20 46 |...else |return F|
|00002a30| 41 4c 53 45 3b 0d 0a 0d | 0a 20 20 20 69 66 20 28 |ALSE;...|. if (|
|00002a40| 21 2a 66 69 6c 6e 61 6d | 29 0d 0a 09 72 65 74 75 |!*filnam|)...retu|
|00002a50| 72 6e 20 54 52 55 45 3b | 0d 0a 20 20 20 65 6c 73 |rn TRUE;|.. els|
|00002a60| 65 0d 0a 09 72 65 74 75 | 72 6e 20 46 41 4c 53 45 |e...retu|rn FALSE|
|00002a70| 3b 0d 0a 7d 0d 0a 0d 0a | 0d 0a 73 65 74 66 63 62 |;..}....|..setfcb|
|00002a80| 28 66 63 62 2c 20 6e 61 | 6d 65 29 0d 0a 63 68 61 |(fcb, na|me)..cha|
|00002a90| 72 20 66 63 62 5b 5d 2c | 20 2a 6e 61 6d 65 3b 0d |r fcb[],| *name;.|
|00002aa0| 0a 7b 0d 0a 09 69 6e 74 | 20 69 3b 0d 0a 09 63 68 |.{...int| i;...ch|
|00002ab0| 61 72 20 2a 72 69 6e 64 | 65 78 28 29 3b 0d 0a 09 |ar *rind|ex();...|
|00002ac0| 73 74 72 63 70 79 28 66 | 63 62 2c 20 22 20 20 20 |strcpy(f|cb, " |
|00002ad0| 20 20 20 20 20 20 20 20 | 20 22 29 3b 0d 0a 09 66 | | ");...f|
|00002ae0| 63 62 5b 30 5d 20 3d 20 | 66 63 62 5b 31 32 5d 20 |cb[0] = |fcb[12] |
|00002af0| 3d 20 66 63 62 5b 31 34 | 5d 20 3d 20 30 3b 0d 0a |= fcb[14|] = 0;..|
|00002b00| 09 69 66 20 28 2a 28 6e | 61 6d 65 20 2b 20 31 29 |.if (*(n|ame + 1)|
|00002b10| 20 3d 3d 20 27 3a 27 29 | 20 7b 0d 0a 09 09 66 63 | == ':')| {....fc|
|00002b20| 62 5b 30 5d 20 3d 20 74 | 6f 75 70 70 65 72 28 2a |b[0] = t|oupper(*|
|00002b30| 6e 61 6d 65 29 20 2d 20 | 27 41 27 20 2b 20 31 3b |name) - |'A' + 1;|
|00002b40| 0d 0a 09 09 6e 61 6d 65 | 20 2b 3d 20 32 3b 0d 0a |....name| += 2;..|
|00002b50| 09 7d 0d 0a 09 69 20 3d | 20 31 3b 0d 0a 09 77 68 |.}...i =| 1;...wh|
|00002b60| 69 6c 65 20 28 69 20 3c | 20 39 29 20 7b 0d 0a 09 |ile (i <| 9) {...|
|00002b70| 09 69 66 20 28 2a 6e 61 | 6d 65 20 3d 3d 20 27 5c |.if (*na|me == '\|
|00002b80| 30 27 29 0d 0a 09 09 09 | 62 72 65 61 6b 3b 0d 0a |0').....|break;..|
|00002b90| 09 09 69 66 20 28 2a 6e | 61 6d 65 20 3d 3d 20 27 |..if (*n|ame == '|
|00002ba0| 2e 27 20 7c 7c 20 2a 6e | 61 6d 65 20 3c 20 27 20 |.' || *n|ame < ' |
|00002bb0| 27 29 20 7b 0d 0a 09 09 | 09 6e 61 6d 65 2b 2b 3b |') {....|.name++;|
|00002bc0| 0d 0a 09 09 09 62 72 65 | 61 6b 3b 0d 0a 09 09 7d |.....bre|ak;....}|
|00002bd0| 0d 0a 09 09 69 66 20 28 | 2a 6e 61 6d 65 20 3d 3d |....if (|*name ==|
|00002be0| 20 27 2a 27 29 20 7b 0d | 0a 09 09 09 77 68 69 6c | '*') {.|....whil|
|00002bf0| 65 20 28 69 3c 39 29 0d | 0a 09 09 09 09 66 63 62 |e (i<9).|.....fcb|
|00002c00| 5b 69 2b 2b 5d 20 3d 20 | 27 3f 27 3b 0d 0a 09 09 |[i++] = |'?';....|
|00002c10| 09 62 72 65 61 6b 3b 0d | 0a 09 09 7d 0d 0a 09 09 |.break;.|...}....|
|00002c20| 66 63 62 5b 69 5d 20 3d | 20 74 6f 75 70 70 65 72 |fcb[i] =| toupper|
|00002c30| 28 2a 6e 61 6d 65 29 3b | 0d 0a 09 09 6e 61 6d 65 |(*name);|....name|
|00002c40| 2b 2b 3b 0d 0a 09 09 69 | 2b 2b 3b 0d 0a 09 7d 0d |++;....i|++;...}.|
|00002c50| 0a 09 69 66 20 28 28 6e | 61 6d 65 20 3d 20 72 69 |..if ((n|ame = ri|
|00002c60| 6e 64 65 78 28 6e 61 6d | 65 2c 20 27 2e 27 29 20 |ndex(nam|e, '.') |
|00002c70| 2b 20 31 29 20 3d 3d 20 | 31 29 0d 0a 09 09 72 65 |+ 1) == |1)....re|
|00002c80| 74 75 72 6e 3b 0d 0a 09 | 69 20 3d 20 39 3b 0d 0a |turn;...|i = 9;..|
|00002c90| 09 77 68 69 6c 65 20 28 | 69 20 3c 20 31 32 29 20 |.while (|i < 12) |
|00002ca0| 7b 0d 0a 09 09 69 66 20 | 28 2a 6e 61 6d 65 20 3d |{....if |(*name =|
|00002cb0| 3d 20 27 5c 30 27 29 0d | 0a 09 09 09 62 72 65 61 |= '\0').|....brea|
|00002cc0| 6b 3b 0d 0a 09 09 69 66 | 20 28 2a 6e 61 6d 65 20 |k;....if| (*name |
|00002cd0| 3d 3d 20 27 2e 27 20 7c | 7c 20 2a 6e 61 6d 65 20 |== '.' ||| *name |
|00002ce0| 3c 20 27 20 27 29 20 7b | 0d 0a 09 09 09 6e 61 6d |< ' ') {|.....nam|
|00002cf0| 65 2b 2b 3b 0d 0a 09 09 | 09 62 72 65 61 6b 3b 0d |e++;....|.break;.|
|00002d00| 0a 09 09 7d 0d 0a 09 09 | 69 66 20 28 2a 6e 61 6d |...}....|if (*nam|
|00002d10| 65 20 3d 3d 20 27 2a 27 | 29 20 7b 0d 0a 09 09 09 |e == '*'|) {.....|
|00002d20| 77 68 69 6c 65 20 28 69 | 20 3c 20 31 32 29 0d 0a |while (i| < 12)..|
|00002d30| 09 09 09 09 66 63 62 5b | 69 2b 2b 5d 20 3d 20 27 |....fcb[|i++] = '|
|00002d40| 3f 27 3b 0d 0a 09 09 09 | 62 72 65 61 6b 3b 0d 0a |?';.....|break;..|
|00002d50| 09 09 7d 0d 0a 09 09 66 | 63 62 5b 69 5d 20 3d 20 |..}....f|cb[i] = |
|00002d60| 74 6f 75 70 70 65 72 28 | 2a 6e 61 6d 65 29 3b 0d |toupper(|*name);.|
|00002d70| 0a 09 09 6e 61 6d 65 2b | 2b 3b 0d 0a 09 09 69 2b |...name+|+;....i+|
|00002d80| 2b 3b 0d 0a 09 7d 0d 0a | 7d 0d 0a 1a 00 00 00 00 |+;...}..|}.......|
|00002d90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002da0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002db0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002dc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002dd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002de0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002df0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002e00| 2a 20 41 73 73 65 6d 62 | 6c 79 20 73 75 70 70 6f |* Assemb|ly suppo|
|00002e10| 72 74 20 66 6f 72 20 43 | 52 43 20 63 61 6c 63 75 |rt for C|RC calcu|
|00002e20| 6c 61 74 69 6f 6e 0d 0a | 2a 0d 0a 2a 20 42 61 73 |lation..|*..* Bas|
|00002e30| 65 64 20 6f 6e 20 61 6c | 67 6f 72 69 74 68 6d 20 |ed on al|gorithm |
|00002e40| 75 73 65 64 20 69 6e 20 | 52 2e 20 43 6f 6e 6e 27 |used in |R. Conn'|
|00002e50| 73 20 43 52 43 2e 4d 41 | 43 0d 0a 2a 20 57 68 79 |s CRC.MA|C..* Why|
|00002e60| 20 74 68 69 73 20 64 69 | 66 66 65 72 73 20 66 72 | this di|ffers fr|
|00002e70| 6f 6d 20 68 69 73 20 53 | 59 53 4c 49 42 20 72 6f |om his S|YSLIB ro|
|00002e80| 75 74 69 6e 65 20 49 20 | 64 6f 20 6e 6f 74 20 6b |utine I |do not k|
|00002e90| 6e 6f 77 2e 0d 0a 2a 20 | 54 68 69 73 20 61 6c 6c |now...* |This all|
|00002ea0| 6f 77 73 20 63 61 6c 63 | 75 6c 61 74 69 6f 6e 20 |ows calc|ulation |
|00002eb0| 6f 66 20 73 61 6d 65 20 | 76 61 6c 75 65 73 20 61 |of same |values a|
|00002ec0| 73 20 74 68 65 20 43 50 | 2f 4d 2d 38 30 20 0d 0a |s the CP|/M-80 ..|
|00002ed0| 2a 20 70 72 6f 67 72 61 | 6d 73 20 43 52 43 20 61 |* progra|ms CRC a|
|00002ee0| 6e 64 20 43 52 43 4b 2e | 20 20 44 69 66 66 65 72 |nd CRCK.| Differ|
|00002ef0| 65 6e 74 20 66 72 6f 6d | 20 61 6c 67 6f 72 69 74 |ent from| algorit|
|00002f00| 68 6d 20 75 73 65 64 20 | 69 6e 0d 0a 2a 20 58 4d |hm used |in..* XM|
|00002f10| 4f 44 45 4d 20 70 72 6f | 67 72 61 6d 73 2e 0d 0a |ODEM pro|grams...|
|00002f20| 2a 0d 0a 2a 20 4a 75 6c | 79 2c 20 34 2c 20 31 39 |*..* Jul|y, 4, 19|
|00002f30| 38 34 0d 0a 2a 20 43 68 | 72 69 73 74 6f 70 68 65 |84..* Ch|ristophe|
|00002f40| 72 20 52 68 6f 64 65 73 | 0d 0a 2a 20 4c 61 62 72 |r Rhodes|..* Labr|
|00002f50| 61 64 6f 72 69 61 6e 20 | 4c 61 62 73 0d 0a 0d 0a |adorian |Labs....|
|00002f60| 09 2e 67 6c 6f 62 6c 09 | 5f 63 6c 72 63 72 63 09 |..globl.|_clrcrc.|
|00002f70| 09 2a 20 63 6c 65 61 72 | 20 43 52 43 20 63 6f 75 |.* clear| CRC cou|
|00002f80| 6e 74 65 72 0d 0a 09 2e | 67 6c 6f 62 6c 09 5f 61 |nter....|globl._a|
|00002f90| 64 64 63 72 63 20 20 20 | 20 20 20 20 20 09 2a 20 |ddcrc | .* |
|00002fa0| 61 64 64 20 62 79 74 65 | 20 74 6f 20 43 52 43 20 |add byte| to CRC |
|00002fb0| 63 6f 75 6e 74 65 72 0d | 0a 09 2e 67 6c 6f 62 6c |counter.|...globl|
|00002fc0| 09 5f 67 65 74 63 72 63 | 20 20 20 20 20 20 20 20 |._getcrc| |
|00002fd0| 20 2a 20 72 65 74 75 72 | 6e 20 66 69 6e 61 6c 20 | * retur|n final |
|00002fe0| 43 52 43 20 76 61 6c 75 | 65 0d 0a 20 20 20 20 20 |CRC valu|e.. |
|00002ff0| 20 20 20 0d 0a 09 2e 64 | 61 74 61 0d 0a 0d 0a 5f | ....d|ata...._|
|00003000| 63 6c 72 63 72 63 3a 0d | 0a 09 63 6c 72 2e 77 09 |clrcrc:.|..clr.w.|
|00003010| 43 52 43 56 41 4c 09 09 | 2a 20 63 6c 65 61 72 20 |CRCVAL..|* clear |
|00003020| 43 52 43 20 63 6f 75 6e | 74 65 72 0d 0a 09 72 74 |CRC coun|ter...rt|
|00003030| 73 0d 0a 0d 0a 5f 61 64 | 64 63 72 63 3a 0d 0a 09 |s...._ad|dcrc:...|
|00003040| 6d 6f 76 65 2e 62 09 35 | 28 61 37 29 2c 64 30 09 |move.b.5|(a7),d0.|
|00003050| 2a 20 67 65 74 20 64 61 | 74 61 20 62 79 74 65 20 |* get da|ta byte |
|00003060| 6f 66 66 20 43 20 73 74 | 61 63 6b 0d 0a 09 6d 6f |off C st|ack...mo|
|00003070| 76 65 2e 77 09 43 52 43 | 56 41 4c 2c 64 31 20 20 |ve.w.CRC|VAL,d1 |
|00003080| 20 20 20 20 09 2a 20 67 | 65 74 20 6f 6c 64 20 76 | .* g|et old v|
|00003090| 61 6c 75 65 0d 0a 09 61 | 64 64 2e 77 09 64 31 2c |alue...a|dd.w.d1,|
|000030a0| 64 31 0d 0a 09 61 64 64 | 2e 62 09 64 30 2c 64 31 |d1...add|.b.d0,d1|
|000030b0| 0d 0a 09 62 74 73 74 09 | 23 37 2c 43 52 43 56 41 |...btst.|#7,CRCVA|
|000030c0| 4c 0d 0a 09 62 65 71 09 | 73 6b 69 70 0d 0a 09 65 |L...beq.|skip...e|
|000030d0| 6f 72 69 2e 77 09 23 24 | 41 30 39 37 2c 64 31 0d |ori.w.#$|A097,d1.|
|000030e0| 0a 73 6b 69 70 3a 0d 0a | 09 6d 6f 76 65 2e 77 09 |.skip:..|.move.w.|
|000030f0| 64 31 2c 43 52 43 56 41 | 4c 0d 0a 09 72 74 73 0d |d1,CRCVA|L...rts.|
|00003100| 0a 0d 0a 5f 67 65 74 63 | 72 63 3a 0d 0a 09 6d 6f |..._getc|rc:...mo|
|00003110| 76 65 2e 77 09 43 52 43 | 56 41 4c 2c 64 30 0d 0a |ve.w.CRC|VAL,d0..|
|00003120| 09 72 74 73 0d 0a 0d 0a | 09 2e 62 73 73 0d 0a 43 |.rts....|..bss..C|
|00003130| 52 43 56 41 4c 3a 09 09 | 2e 64 73 2e 77 09 31 09 |RCVAL:..|.ds.w.1.|
|00003140| 2a 20 73 74 6f 72 61 67 | 65 20 66 6f 72 20 43 52 |* storag|e for CR|
|00003150| 43 20 76 61 6c 75 65 0d | 0a 0d 0a 09 2e 65 6e 64 |C value.|.....end|
|00003160| 0d 0a 0d 0a 1a 3a 0d 0a | 09 6d 6f 76 65 2e 77 09 |.....:..|.move.w.|
|00003170| 64 31 2c 43 52 43 56 41 | 4c 0d 0a 09 72 74 73 0d |d1,CRCVA|L...rts.|
|00003180| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003190| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000031a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000031b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000031c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 0d |********|*******.|
|000031d0| 0a 2a 09 41 73 73 65 6d | 62 6c 79 20 73 75 70 70 |.*.Assem|bly supp|
|000031e0| 6f 72 74 20 66 6f 72 20 | 43 20 20 2d 2d 20 20 44 |ort for |C -- D|
|000031f0| 52 49 20 76 65 72 73 69 | 6f 6e 20 66 6f 72 20 43 |RI versi|on for C|
|00003200| 50 2f 4d 20 36 38 4b 20 | 20 20 20 20 20 20 20 20 |P/M 68K | |
|00003210| 20 20 20 20 20 20 20 20 | 20 2a 0d 0a 2a 20 20 20 | | *..* |
|00003220| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003230| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003240| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003250| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003260| 20 20 20 20 20 20 20 20 | 20 20 2a 0d 0a 2a 09 73 | | *..*.s|
|00003270| 6f 75 72 63 65 3a 20 20 | 61 73 6d 2e 73 20 20 20 |ource: |asm.s |
|00003280| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003290| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000032a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000032b0| 20 20 20 20 20 2a 0d 0a | 2a 09 09 09 09 09 09 09 | *..|*.......|
|000032c0| 09 09 20 20 20 20 20 20 | 2a 0d 0a 2a 09 4a 75 6e |.. |*..*.Jun|
|000032d0| 65 20 33 30 2c 20 31 39 | 38 34 09 09 09 09 09 09 |e 30, 19|84......|
|000032e0| 09 20 20 20 20 20 20 2a | 0d 0a 2a 09 43 68 72 69 |. *|..*.Chri|
|000032f0| 73 74 6f 70 68 65 72 20 | 52 68 6f 64 65 73 09 09 |stopher |Rhodes..|
|00003300| 09 09 09 09 20 20 20 20 | 20 20 2a 0d 0a 2a 09 4c |.... | *..*.L|
|00003310| 61 62 72 61 64 6f 72 69 | 61 6e 20 4c 61 62 73 09 |abradori|an Labs.|
|00003320| 09 09 09 09 09 20 20 20 | 20 20 20 2a 0d 0a 2a 2a |..... | *..**|
|00003330| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003340| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003350| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003360| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003370| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 0d 0a 0d |********|*****...|
|00003380| 0a 2a 09 62 64 6f 73 77 | 28 66 75 6e 63 74 69 6f |.*.bdosw|(functio|
|00003390| 6e 2c 20 61 72 67 29 0d | 0a 2a 09 69 6e 74 09 66 |n, arg).|.*.int.f|
|000033a0| 75 6e 63 74 69 6f 6e 3b | 0d 0a 2a 09 69 6e 74 20 |unction;|..*.int |
|000033b0| 09 61 72 67 3b 0d 0a 0d | 0a 09 2e 47 4c 4f 42 4c |.arg;...|...GLOBL|
|000033c0| 20 5f 62 64 6f 73 77 0d | 0a 0d 0a 5f 62 64 6f 73 | _bdosw.|..._bdos|
|000033d0| 77 3a 0d 0a 09 4d 4f 56 | 45 2e 57 09 34 28 53 50 |w:...MOV|E.W.4(SP|
|000033e0| 29 2c 44 30 09 2a 20 67 | 65 74 20 66 69 72 73 74 |),D0.* g|et first|
|000033f0| 20 61 72 67 0d 0a 09 4d | 4f 56 45 2e 57 09 36 28 | arg...M|OVE.W.6(|
|00003400| 53 50 29 2c 44 31 09 2a | 20 67 65 74 20 73 65 63 |SP),D1.*| get sec|
|00003410| 6f 6e 64 20 61 72 67 0d | 0a 09 54 52 41 50 09 23 |ond arg.|..TRAP.#|
|00003420| 32 09 09 2a 20 63 61 6c | 6c 20 42 44 4f 53 0d 0a |2..* cal|l BDOS..|
|00003430| 09 52 54 53 09 0d 0a 0d | 0a 2a 09 62 64 6f 73 6c |.RTS....|.*.bdosl|
|00003440| 28 66 75 6e 63 74 69 6f | 6e 2c 20 61 72 67 29 0d |(functio|n, arg).|
|00003450| 0a 2a 09 69 6e 74 09 66 | 75 6e 63 74 69 6f 6e 3b |.*.int.f|unction;|
|00003460| 0d 0a 2a 09 6c 6f 6e 67 | 09 61 72 67 3b 0d 0a 0d |..*.long|.arg;...|
|00003470| 0a 09 2e 47 4c 4f 42 4c | 20 5f 62 64 6f 73 6c 0d |...GLOBL| _bdosl.|
|00003480| 0a 0d 0a 5f 62 64 6f 73 | 6c 3a 0d 0a 09 4d 4f 56 |..._bdos|l:...MOV|
|00003490| 45 2e 57 09 34 28 53 50 | 29 2c 44 30 09 2a 20 67 |E.W.4(SP|),D0.* g|
|000034a0| 65 74 20 66 69 72 73 74 | 20 61 72 67 0d 0a 09 4d |et first| arg...M|
|000034b0| 4f 56 45 2e 4c 09 36 28 | 53 50 29 2c 44 31 09 2a |OVE.L.6(|SP),D1.*|
|000034c0| 20 67 65 74 20 73 65 63 | 6f 6e 64 20 61 72 67 0d | get sec|ond arg.|
|000034d0| 0a 09 54 52 41 50 09 23 | 32 09 09 2a 20 63 61 6c |..TRAP.#|2..* cal|
|000034e0| 6c 20 42 44 4f 53 0d 0a | 09 52 54 53 0d 0a 0d 0a |l BDOS..|.RTS....|
|000034f0| 2a 09 62 64 6f 73 6c 70 | 28 66 75 6e 63 74 69 6f |*.bdoslp|(functio|
|00003500| 6e 2c 20 61 72 67 29 0d | 0a 2a 09 69 6e 74 09 66 |n, arg).|.*.int.f|
|00003510| 75 6e 63 74 69 6f 6e 3b | 0d 0a 2a 09 63 68 61 72 |unction;|..*.char|
|00003520| 20 09 2a 61 72 67 3b 0d | 0a 0d 0a 09 2e 47 4c 4f | .*arg;.|.....GLO|
|00003530| 42 4c 20 5f 62 64 6f 73 | 6c 70 0d 0a 0d 0a 5f 62 |BL _bdos|lp...._b|
|00003540| 64 6f 73 6c 70 3a 0d 0a | 09 4d 4f 56 45 2e 57 09 |doslp:..|.MOVE.W.|
|00003550| 34 28 53 50 29 2c 44 30 | 09 2a 20 67 65 74 20 66 |4(SP),D0|.* get f|
|00003560| 69 72 73 74 20 61 72 67 | 0d 0a 09 4d 4f 56 45 2e |irst arg|...MOVE.|
|00003570| 4c 09 36 28 53 50 29 2c | 44 31 09 2a 20 67 65 74 |L.6(SP),|D1.* get|
|00003580| 20 73 65 63 6f 6e 64 20 | 61 72 67 0d 0a 09 54 52 | second |arg...TR|
|00003590| 41 50 09 23 32 09 09 2a | 20 63 61 6c 6c 20 42 44 |AP.#2..*| call BD|
|000035a0| 4f 53 0d 0a 09 52 54 53 | 0d 0a 0d 0a 2a 2a 2a 2a |OS...RTS|....****|
|000035b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000035c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000035d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000035e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000035f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 0d 0a 2a 20 20 |********|***..* |
|00003600| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003610| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003620| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003630| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003640| 20 20 20 20 20 20 20 20 | 20 20 20 2a 0d 0a 2a 09 | | *..*.|
|00003650| 09 09 09 42 49 4f 53 20 | 63 61 6c 6c 73 20 20 20 |...BIOS |calls |
|00003660| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003670| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003680| 20 2a 0d 0a 2a 20 20 20 | 20 20 20 20 20 20 20 20 | *..* | |
|00003690| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000036a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000036b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000036c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000036d0| 20 20 2a 0d 0a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a | *..***|********|
|000036e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000036f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003700| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003710| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003720| 2a 2a 2a 2a 0d 0a 0d 0a | 2a 2a 2a 2a 2a 2a 2a 2a |****....|********|
|00003730| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 20 47 65 6e |********|**** Gen|
|00003740| 65 72 61 6c 20 63 61 6c | 6c 73 20 2a 2a 2a 2a 2a |eral cal|ls *****|
|00003750| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 0d |********|*******.|
|00003760| 0a 0d 0a 2a 09 62 69 6f | 73 28 66 75 6e 63 74 69 |...*.bio|s(functi|
|00003770| 6f 6e 29 0d 0a 2a 09 69 | 6e 74 09 66 75 6e 63 74 |on)..*.i|nt.funct|
|00003780| 69 6f 6e 0d 0a 0d 0a 09 | 2e 47 4c 4f 42 4c 09 5f |ion.....|.GLOBL._|
|00003790| 62 69 6f 73 0d 0a 0d 0a | 5f 62 69 6f 73 3a 0d 0a |bios....|_bios:..|
|000037a0| 09 4d 4f 56 45 2e 57 09 | 34 28 53 50 29 2c 44 30 |.MOVE.W.|4(SP),D0|
|000037b0| 09 2a 20 67 65 74 20 62 | 69 6f 73 20 63 61 6c 6c |.* get b|ios call|
|000037c0| 20 23 0d 0a 09 54 52 41 | 50 09 23 33 09 09 2a 20 | #...TRA|P.#3..* |
|000037d0| 63 61 6c 6c 20 42 49 4f | 53 0d 0a 09 52 54 53 0d |call BIO|S...RTS.|
|000037e0| 0a 0d 0a 2a 09 62 69 6f | 73 77 28 66 75 6e 63 74 |...*.bio|sw(funct|
|000037f0| 69 6f 6e 2c 20 61 72 67 | 29 0d 0a 2a 09 69 6e 74 |ion, arg|)..*.int|
|00003800| 09 66 75 6e 63 74 69 6f | 6e 3b 0d 0a 2a 09 69 6e |.functio|n;..*.in|
|00003810| 74 09 61 72 67 3b 0d 0a | 0d 0a 09 2e 47 4c 4f 42 |t.arg;..|....GLOB|
|00003820| 4c 09 5f 62 69 6f 73 77 | 0d 0a 0d 0a 5f 62 69 6f |L._biosw|...._bio|
|00003830| 73 77 3a 0d 0a 09 4d 4f | 56 45 2e 57 09 34 28 53 |sw:...MO|VE.W.4(S|
|00003840| 50 29 2c 44 30 09 2a 20 | 67 65 74 20 62 69 6f 73 |P),D0.* |get bios|
|00003850| 20 63 61 6c 6c 20 23 0d | 0a 09 4d 4f 56 45 2e 57 | call #.|..MOVE.W|
|00003860| 09 36 28 53 50 29 2c 44 | 31 09 2a 20 67 65 74 20 |.6(SP),D|1.* get |
|00003870| 44 31 2e 57 20 61 72 67 | 75 6d 65 6e 74 0d 0a 09 |D1.W arg|ument...|
|00003880| 54 52 41 50 09 23 33 0d | 0a 09 52 54 53 0d 0a 0d |TRAP.#3.|..RTS...|
|00003890| 0a 2a 09 62 69 6f 73 6c | 28 66 75 6e 63 74 69 6f |.*.biosl|(functio|
|000038a0| 6e 2c 20 61 72 67 29 0d | 0a 2a 09 69 6e 74 09 66 |n, arg).|.*.int.f|
|000038b0| 75 6e 63 74 69 6f 6e 3b | 0d 0a 2a 09 6c 6f 6e 67 |unction;|..*.long|
|000038c0| 09 61 72 67 3b 0d 0a 0d | 0a 09 2e 47 4c 4f 42 4c |.arg;...|...GLOBL|
|000038d0| 09 5f 62 69 6f 73 6c 0d | 0a 0d 0a 5f 62 69 6f 73 |._biosl.|..._bios|
|000038e0| 6c 3a 0d 0a 09 4d 4f 56 | 45 2e 57 09 34 28 53 50 |l:...MOV|E.W.4(SP|
|000038f0| 29 2c 44 30 09 2a 20 67 | 65 74 20 62 69 6f 73 20 |),D0.* g|et bios |
|00003900| 63 61 6c 6c 20 23 0d 0a | 09 4d 4f 56 45 2e 4c 09 |call #..|.MOVE.L.|
|00003910| 36 28 53 50 29 2c 44 31 | 09 2a 20 67 65 74 20 44 |6(SP),D1|.* get D|
|00003920| 31 2e 4c 20 61 72 67 75 | 6d 65 6e 74 0d 0a 09 54 |1.L argu|ment...T|
|00003930| 52 41 50 09 23 33 0d 0a | 09 52 54 53 0d 0a 0d 0a |RAP.#3..|.RTS....|
|00003940| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003950| 2a 2a 2a 2a 20 53 70 65 | 63 69 61 6c 20 63 61 6c |**** Spe|cial cal|
|00003960| 6c 73 20 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |ls *****|********|
|00003970| 2a 2a 2a 2a 2a 2a 2a 0d | 0a 0d 0a 2a 09 62 69 6f |*******.|...*.bio|
|00003980| 73 41 30 28 66 75 6e 63 | 74 69 6f 6e 2c 20 61 72 |sA0(func|tion, ar|
|00003990| 67 29 0d 0a 2a 09 69 6e | 74 09 66 75 6e 63 74 69 |g)..*.in|t.functi|
|000039a0| 6f 6e 3b 0d 0a 2a 09 63 | 68 61 72 09 2a 61 72 67 |on;..*.c|har.*arg|
|000039b0| 3b 0d 0a 0d 0a 09 2e 47 | 4c 4f 42 4c 09 5f 62 69 |;......G|LOBL._bi|
|000039c0| 6f 73 41 30 0d 0a 0d 0a | 5f 62 69 6f 73 41 30 3a |osA0....|_biosA0:|
|000039d0| 0d 0a 09 4d 4f 56 45 2e | 57 09 34 28 53 50 29 2c |...MOVE.|W.4(SP),|
|000039e0| 44 30 09 2a 20 67 65 74 | 20 62 69 6f 73 20 63 61 |D0.* get| bios ca|
|000039f0| 6c 6c 20 23 0d 0a 09 4d | 4f 56 45 2e 4c 09 36 28 |ll #...M|OVE.L.6(|
|00003a00| 53 50 29 2c 41 30 09 2a | 20 67 65 74 20 61 64 64 |SP),A0.*| get add|
|00003a10| 72 65 73 73 20 66 6f 72 | 20 41 30 0d 0a 09 54 52 |ress for| A0...TR|
|00003a20| 41 50 09 23 33 20 20 20 | 20 20 20 20 20 20 20 20 |AP.#3 | |
|00003a30| 20 20 20 2a 20 63 61 6c | 6c 20 42 49 4f 53 0d 0a | * cal|l BIOS..|
|00003a40| 09 52 54 53 0d 0a 0d 0a | 2a 09 62 69 6f 73 41 31 |.RTS....|*.biosA1|
|00003a50| 28 66 75 6e 63 74 69 6f | 6e 2c 20 61 72 67 29 0d |(functio|n, arg).|
|00003a60| 0a 2a 09 69 6e 74 09 66 | 75 6e 63 74 69 6f 6e 3b |.*.int.f|unction;|
|00003a70| 0d 0a 2a 09 63 68 61 72 | 09 2a 61 72 67 3b 0d 0a |..*.char|.*arg;..|
|00003a80| 0d 0a 09 2e 47 4c 4f 42 | 4c 09 5f 62 69 6f 73 41 |....GLOB|L._biosA|
|00003a90| 31 0d 0a 0d 0a 5f 62 69 | 6f 73 41 31 3a 0d 0a 09 |1...._bi|osA1:...|
|00003aa0| 4d 4f 56 45 2e 57 09 34 | 28 53 50 29 2c 44 30 09 |MOVE.W.4|(SP),D0.|
|00003ab0| 2a 20 67 65 74 20 62 69 | 6f 73 20 63 61 6c 6c 20 |* get bi|os call |
|00003ac0| 23 0d 0a 09 4d 4f 56 45 | 2e 4c 09 36 28 53 50 29 |#...MOVE|.L.6(SP)|
|00003ad0| 2c 41 31 09 2a 20 67 65 | 74 20 61 64 64 72 65 73 |,A1.* ge|t addres|
|00003ae0| 73 20 66 6f 72 20 41 31 | 0d 0a 09 54 52 41 50 09 |s for A1|...TRAP.|
|00003af0| 23 33 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |#3 | |
|00003b00| 2a 20 63 61 6c 6c 20 42 | 49 4f 53 0d 0a 09 52 54 |* call B|IOS...RT|
|00003b10| 53 09 0d 0a 0d 0a 2a 09 | 62 69 6f 73 4d 57 28 66 |S.....*.|biosMW(f|
|00003b20| 75 6e 63 74 69 6f 6e 2c | 20 61 72 67 31 2c 20 61 |unction,| arg1, a|
|00003b30| 72 67 32 29 0d 0a 2a 09 | 69 6e 74 09 66 75 6e 63 |rg2)..*.|int.func|
|00003b40| 74 69 6f 6e 3b 0d 0a 2a | 09 69 6e 74 09 61 72 67 |tion;..*|.int.arg|
|00003b50| 31 2c 20 61 72 67 32 3b | 0d 0a 0d 0a 09 2e 47 4c |1, arg2;|......GL|
|00003b60| 4f 42 4c 09 5f 62 69 6f | 73 4d 57 0d 0a 0d 0a 5f |OBL._bio|sMW...._|
|00003b70| 62 69 6f 73 4d 57 3a 0d | 0a 09 4d 4f 56 45 2e 57 |biosMW:.|..MOVE.W|
|00003b80| 09 34 28 53 50 29 2c 44 | 30 09 2a 20 67 65 74 20 |.4(SP),D|0.* get |
|00003b90| 62 69 6f 73 20 63 61 6c | 6c 20 23 0d 0a 09 4d 4f |bios cal|l #...MO|
|00003ba0| 56 45 2e 57 09 36 28 53 | 50 29 2c 44 31 09 2a 20 |VE.W.6(S|P),D1.* |
|00003bb0| 67 65 74 20 44 31 2e 57 | 20 64 61 74 61 0d 0a 09 |get D1.W| data...|
|00003bc0| 4d 4f 56 45 2e 57 09 38 | 28 53 50 29 2c 44 32 09 |MOVE.W.8|(SP),D2.|
|00003bd0| 2a 20 67 65 74 20 44 32 | 2e 57 20 64 61 74 61 0d |* get D2|.W data.|
|00003be0| 0a 09 54 52 41 50 09 23 | 33 09 09 2a 20 63 61 6c |..TRAP.#|3..* cal|
|00003bf0| 6c 20 42 49 4f 53 0d 0a | 09 52 54 53 0d 0a 0d 0a |l BIOS..|.RTS....|
|00003c00| 2a 09 62 69 6f 73 4d 4c | 28 66 75 6e 63 74 69 6f |*.biosML|(functio|
|00003c10| 6e 2c 20 61 72 67 31 2c | 20 61 72 67 32 29 0d 0a |n, arg1,| arg2)..|
|00003c20| 2a 09 69 6e 74 09 66 75 | 6e 63 74 69 6f 6e 3b 0d |*.int.fu|nction;.|
|00003c30| 0a 2a 09 69 6e 74 09 61 | 72 67 31 3b 0d 0a 2a 09 |.*.int.a|rg1;..*.|
|00003c40| 6c 6f 6e 67 09 61 72 67 | 32 3b 0d 0a 0d 0a 09 2e |long.arg|2;......|
|00003c50| 47 4c 4f 42 4c 09 5f 62 | 69 6f 73 4d 4c 0d 0a 0d |GLOBL._b|iosML...|
|00003c60| 0a 5f 62 69 6f 73 4d 4c | 3a 0d 0a 09 4d 4f 56 45 |._biosML|:...MOVE|
|00003c70| 2e 57 09 34 28 53 50 29 | 2c 44 30 09 2a 20 67 65 |.W.4(SP)|,D0.* ge|
|00003c80| 74 20 62 69 6f 73 20 63 | 61 6c 6c 20 23 0d 0a 09 |t bios c|all #...|
|00003c90| 4d 4f 56 45 2e 57 09 36 | 28 53 50 29 2c 44 31 09 |MOVE.W.6|(SP),D1.|
|00003ca0| 2a 20 67 65 74 20 44 31 | 2e 57 20 64 61 74 61 0d |* get D1|.W data.|
|00003cb0| 0a 09 4d 4f 56 45 2e 4c | 09 38 28 53 50 29 2c 44 |..MOVE.L|.8(SP),D|
|00003cc0| 32 09 2a 20 67 65 74 20 | 44 32 2e 4c 20 64 61 74 |2.* get |D2.L dat|
|00003cd0| 61 0d 0a 09 54 52 41 50 | 09 23 33 09 09 2a 20 63 |a...TRAP|.#3..* c|
|00003ce0| 61 6c 6c 20 42 49 4f 53 | 0d 0a 09 52 54 53 0d 0a |all BIOS|...RTS..|
|00003cf0| 0d 0a 09 2e 45 4e 44 0d | 0a 0d 0a 1a 2a 20 67 65 |....END.|....* ge|
+--------+-------------------------+-------------------------+--------+--------+