00000000: 01 04 19 04 0A 00 8F 20 20 20 20 20 20 20 20 57 |....... W|
00000010: 52 49 54 54 45 4E 20 42 59 00 36 04 14 00 8F 20 |RITTEN BY.6.... |
00000020: 20 20 20 20 50 41 54 52 49 43 4B 20 4D 43 41 4C | PATRICK MCAL|
00000030: 4C 49 53 54 45 52 00 5E 04 1E 00 8F 20 20 20 20 |LISTER.^.... |
00000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000050: 20 20 20 20 20 20 20 20 20 20 20 20 20 5E 00 84 | ^..|
00000060: 04 28 00 8F 20 20 20 55 53 45 20 54 48 49 53 20 |.(.. USE THIS |
00000070: 50 52 4F 47 52 41 4D 20 54 4F 20 4C 45 41 52 4E |PROGRAM TO LEARN|
00000080: 20 48 4F 57 00 AB 04 32 00 8F 20 20 20 43 52 45 | HOW...2.. CRE|
00000090: 41 54 45 20 41 4E 44 20 55 53 45 20 52 45 4C 41 |ATE AND USE RELA|
000000A0: 54 49 56 45 20 46 49 4C 45 53 2E 00 D1 04 3C 00 |TIVE FILES....<.|
000000B0: 8F 20 20 20 49 54 20 49 53 20 46 4C 45 58 49 42 |. IT IS FLEXIB|
000000C0: 4C 45 20 45 4E 4F 55 47 48 20 46 4F 52 20 59 4F |LE ENOUGH FOR YO|
000000D0: 55 00 F7 04 46 00 8F 20 20 20 54 4F 20 43 55 53 |U...F.. TO CUS|
000000E0: 54 4F 4D 49 5A 45 20 49 54 20 46 4F 52 20 59 4F |TOMIZE IT FOR YO|
000000F0: 55 52 20 55 53 45 2E 00 41 05 50 00 4C 4C 24 B2 |UR USE..A.P.LL$.|
00000100: C7 28 31 33 29 20 20 20 3A 8F 20 20 54 48 49 53 |.(13) :. THIS|
00000110: 20 49 53 20 54 48 45 20 46 49 45 4C 44 20 44 45 | IS THE FIELD DE|
00000120: 4C 49 4D 49 54 45 52 20 55 53 45 44 20 57 48 45 |LIMITER USED WHE|
00000130: 4E 20 57 52 49 54 49 4E 47 20 52 45 43 4F 52 44 |N WRITING RECORD|
00000140: 53 00 77 05 5A 00 9F 31 35 2C 38 2C 31 35 2C 22 |S.w.Z..15,8,15,"|
00000150: 49 30 22 3A A0 31 35 20 3A 20 8F 20 20 49 4E 49 |I0":.15 : . INI|
00000160: 54 49 41 4C 49 5A 45 20 54 48 45 20 44 49 53 4B |TIALIZE THE DISK|
00000170: 20 44 52 49 56 45 2E 00 BF 05 64 00 85 22 93 57 | DRIVE....d..".W|
00000180: 48 41 54 20 49 53 20 54 48 45 20 4E 41 4D 45 20 |HAT IS THE NAME |
00000190: 4F 46 20 54 48 45 20 46 49 4C 45 22 3B 4E 4D 24 |OF THE FILE";NM$|
000001A0: 20 3A 8F 20 20 4D 41 58 49 4D 55 4D 20 31 36 20 | :. MAXIMUM 16 |
000001B0: 43 48 41 52 41 43 54 45 52 20 4E 41 4D 45 2E 00 |CHARACTER NAME..|
000001C0: 00 06 6E 00 85 22 48 4F 57 20 4D 41 4E 59 20 43 |..n.."HOW MANY C|
000001D0: 48 41 52 41 43 54 45 52 53 20 49 4E 20 45 41 43 |HARACTERS IN EAC|
000001E0: 48 20 52 45 43 4F 52 44 22 3B 4C 4E 20 20 3A 8F |H RECORD";LN :.|
000001F0: 20 20 20 20 4D 41 58 49 4D 55 4D 20 32 35 34 2E | MAXIMUM 254.|
00000200: 00 06 06 73 00 99 00 1D 06 78 00 99 22 11 44 4F |...s.....x..".DO|
00000210: 20 59 4F 55 20 57 41 4E 54 20 54 4F 22 00 34 06 | YOU WANT TO".4.|
00000220: 7A 00 99 22 12 52 92 45 41 44 20 41 20 52 45 43 |z..".R.EAD A REC|
00000230: 4F 52 44 22 00 4C 06 7C 00 99 22 12 57 92 52 49 |ORD".L.|..".W.RI|
00000240: 54 45 20 41 20 52 45 43 4F 52 44 22 00 63 06 7E |TE A RECORD".c.~|
00000250: 00 99 22 12 53 92 45 54 20 55 50 20 41 20 46 49 |..".S.ET UP A FI|
00000260: 4C 45 22 00 77 06 80 00 85 22 4F 52 20 12 51 92 |LE".w...."OR .Q.|
00000270: 55 49 54 22 3B 41 24 00 8A 06 82 00 8B 20 41 24 |UIT";A$...... A$|
00000280: B2 22 52 22 20 A7 20 32 30 30 00 9D 06 8C 00 8B |."R" . 200......|
00000290: 20 41 24 B2 22 57 22 20 A7 20 34 30 30 00 B0 06 | A$."W" . 400...|
000002A0: 96 00 8B 20 41 24 B2 22 53 22 20 A7 20 36 30 30 |... A$."S" . 600|
000002B0: 00 C3 06 A0 00 8B 20 41 24 B2 22 51 22 20 A7 20 |...... A$."Q" . |
000002C0: 38 30 30 00 EC 06 AA 00 99 22 54 59 50 45 20 41 |800......"TYPE A|
000002D0: 4E 20 27 52 27 20 27 57 27 20 27 53 27 20 4F 52 |N 'R' 'W' 'S' OR|
000002E0: 20 27 51 27 20 20 22 3A 89 31 32 30 00 F2 06 BE | 'Q' ":.120....|
000002F0: 00 3A 00 27 07 C8 00 8F 20 20 54 48 49 53 20 53 |.:.'.... THIS S|
00000300: 45 43 54 49 4F 4E 20 50 4F 53 49 54 49 4F 4E 53 |ECTION POSITIONS|
00000310: 20 54 4F 20 41 4E 44 20 52 45 41 44 53 20 41 20 | TO AND READS A |
00000320: 52 45 43 4F 52 44 2E 00 5A 07 D2 00 9F 31 35 2C |RECORD..Z....15,|
00000330: 38 2C 31 35 20 20 20 20 20 20 20 20 20 20 20 3A |8,15 :|
00000340: 8F 20 4F 50 45 4E 20 54 48 45 20 43 4F 4D 4D 41 |. OPEN THE COMMA|
00000350: 4E 44 20 43 48 41 4E 4E 45 4C 00 81 07 DC 00 8D |ND CHANNEL......|
00000360: 20 35 30 30 30 20 3A 8F 20 20 43 48 45 43 4B 20 | 5000 :. CHECK |
00000370: 54 48 45 20 45 52 52 4F 52 20 43 48 41 4E 4E 45 |THE ERROR CHANNE|
00000380: 4C 00 C8 07 E6 00 9F 38 2C 38 2C 38 2C 22 30 3A |L......8,8,8,"0:|
00000390: 22 AA 28 4E 4D 24 29 AA 22 2C 4C 2C 22 AA C7 28 |".(NM$).",L,"..(|
000003A0: 4C 4E 29 20 3A 8F 20 20 4F 50 45 4E 20 46 49 4C |LN) :. OPEN FIL|
000003B0: 45 20 57 49 54 48 20 52 45 43 4F 52 44 20 4C 45 |E WITH RECORD LE|
000003C0: 4E 47 54 48 20 4C 4E 2E 00 EF 07 F0 00 8D 20 35 |NGTH LN....... 5|
000003D0: 30 30 30 20 3A 8F 20 20 43 48 45 43 4B 20 54 48 |000 :. CHECK TH|
000003E0: 45 20 45 52 52 4F 52 20 43 48 41 4E 4E 45 4C 00 |E ERROR CHANNEL.|
000003F0: 11 08 FA 00 85 22 52 45 41 44 20 57 48 41 54 20 |....."READ WHAT |
00000400: 52 45 43 4F 52 44 20 4E 55 4D 42 45 52 22 3B 52 |RECORD NUMBER";R|
00000410: 4E 00 49 08 04 01 8D 31 30 30 30 20 3A 8F 20 20 |N.I....1000 :. |
00000420: 43 41 4C 43 55 4C 41 54 45 20 54 48 45 20 4C 4F |CALCULATE THE LO|
00000430: 57 20 42 59 54 45 2F 48 49 47 48 20 42 59 54 45 |W BYTE/HIGH BYTE|
00000440: 20 50 4F 49 4E 54 45 52 2E 00 83 08 0E 01 98 31 | POINTER.......1|
00000450: 35 2C 22 50 22 AA C7 28 39 36 AA 38 29 AA C7 28 |5,"P"..(96.8)..(|
00000460: 52 4C 29 AA C7 28 52 48 29 AA C7 28 31 29 20 3A |RL)..(RH)..(1) :|
00000470: 8F 20 20 50 4F 53 49 54 49 4F 4E 20 43 4F 4D 4D |. POSITION COMM|
00000480: 41 4E 44 00 AA 08 18 01 8D 20 35 30 30 30 20 3A |AND...... 5000 :|
00000490: 8F 20 20 43 48 45 43 4B 20 54 48 45 20 45 52 52 |. CHECK THE ERR|
000004A0: 4F 52 20 43 48 41 4E 4E 45 4C 00 D5 08 1D 01 8B |OR CHANNEL......|
000004B0: 20 45 B2 35 30 20 A7 99 22 52 45 43 4F 52 44 20 | E.50 .."RECORD |
000004C0: 4E 55 4D 42 45 52 20 54 4F 20 4C 41 52 47 45 22 |NUMBER TO LARGE"|
000004D0: 3A 89 33 34 30 00 08 09 22 01 84 38 2C 41 41 24 |:.340..."..8,AA$|
000004E0: 2C 42 42 24 2C 43 43 24 2C 44 44 24 2C 45 45 24 |,BB$,CC$,DD$,EE$|
000004F0: 20 3A 8F 20 20 52 45 41 44 20 49 4E 20 54 48 45 | :. READ IN THE|
00000500: 20 46 49 45 4C 44 53 2E 00 2F 09 2C 01 8D 20 35 | FIELDS../.,.. 5|
00000510: 30 30 30 20 3A 8F 20 20 43 48 45 43 4B 20 54 48 |000 :. CHECK TH|
00000520: 45 20 45 52 52 4F 52 20 43 48 41 4E 4E 45 4C 00 |E ERROR CHANNEL.|
00000530: 54 09 36 01 99 22 11 52 45 43 4F 52 44 20 4E 55 |T.6..".RECORD NU|
00000540: 4D 42 45 52 22 3B 52 4E 3B 22 43 4F 4E 54 41 49 |MBER";RN;"CONTAI|
00000550: 4E 53 3A 22 00 6A 09 3B 01 99 22 20 20 20 20 4E |NS:".j.;.." N|
00000560: 41 4D 45 3A 20 22 3B 41 41 24 00 80 09 40 01 99 |AME: ";AA$...@..|
00000570: 22 20 41 44 44 52 45 53 53 3A 20 22 3B 42 42 24 |" ADDRESS: ";BB$|
00000580: 00 96 09 45 01 99 22 20 20 20 20 43 49 54 59 3A |...E.." CITY:|
00000590: 20 22 3B 43 43 24 00 AC 09 4A 01 99 22 20 20 20 | ";CC$...J.." |
000005A0: 53 54 41 54 45 3A 20 22 3B 44 44 24 00 C2 09 4F |STATE: ";DD$...O|
000005B0: 01 99 22 5A 49 50 20 43 4F 44 45 3A 20 22 3B 45 |.."ZIP CODE: ";E|
000005C0: 45 24 00 E1 09 54 01 85 22 11 52 45 41 44 20 41 |E$...T..".READ A|
000005D0: 4E 4F 54 48 45 52 20 52 45 43 4F 52 44 22 3B 41 |NOTHER RECORD";A|
000005E0: 24 00 F2 09 5E 01 8B 20 41 24 B2 22 59 22 A7 32 |$...^.. A$."Y".2|
000005F0: 35 30 00 15 0A 68 01 A0 38 3A A0 31 35 3A 89 31 |50...h..8:.15:.1|
00000600: 32 30 20 3A 8F 20 20 47 4F 20 54 4F 20 54 48 45 |20 :. GO TO THE|
00000610: 20 4D 45 4E 55 00 1B 0A 86 01 3A 00 51 0A 90 01 | MENU.....:.Q...|
00000620: 8F 20 20 54 48 49 53 20 53 45 43 54 49 4F 4E 20 |. THIS SECTION |
00000630: 50 4F 53 49 54 49 4F 4E 53 20 54 4F 20 41 4E 44 |POSITIONS TO AND|
00000640: 20 57 52 49 54 45 53 20 41 20 52 45 43 4F 52 44 | WRITES A RECORD|
00000650: 2E 00 84 0A 9A 01 9F 31 35 2C 38 2C 31 35 20 20 |.......15,8,15 |
00000660: 20 20 20 20 20 20 20 20 20 3A 8F 20 4F 50 45 4E | :. OPEN|
00000670: 20 54 48 45 20 43 4F 4D 4D 41 4E 44 20 43 48 41 | THE COMMAND CHA|
00000680: 4E 4E 45 4C 00 AB 0A 9F 01 8D 20 35 30 30 30 20 |NNEL...... 5000 |
00000690: 3A 8F 20 20 43 48 45 43 4B 20 54 48 45 20 45 52 |:. CHECK THE ER|
000006A0: 52 4F 52 20 43 48 41 4E 4E 45 4C 00 F2 0A A4 01 |ROR CHANNEL.....|
000006B0: 9F 38 2C 38 2C 38 2C 22 30 3A 22 AA 28 4E 4D 24 |.8,8,8,"0:".(NM$|
000006C0: 29 AA 22 2C 4C 2C 22 AA C7 28 4C 4E 29 20 3A 8F |).",L,"..(LN) :.|
000006D0: 20 20 4F 50 45 4E 20 46 49 4C 45 20 57 49 54 48 | OPEN FILE WITH|
000006E0: 20 52 45 43 4F 52 44 20 4C 45 4E 47 54 48 20 4C | RECORD LENGTH L|
000006F0: 4E 2E 00 19 0B AE 01 8D 20 35 30 30 30 20 3A 8F |N....... 5000 :.|
00000700: 20 20 43 48 45 43 4B 20 54 48 45 20 45 52 52 4F | CHECK THE ERRO|
00000710: 52 20 43 48 41 4E 4E 45 4C 00 3D 0B B8 01 85 22 |R CHANNEL.=...."|
00000720: 11 57 52 49 54 45 20 57 48 41 54 20 52 45 43 4F |.WRITE WHAT RECO|
00000730: 52 44 20 4E 55 4D 42 45 52 22 3B 52 4E 00 85 0B |RD NUMBER";RN...|
00000740: BD 01 85 22 4E 41 4D 45 22 3B 41 41 24 20 20 20 |..."NAME";AA$ |
00000750: 20 20 20 20 3A 8F 20 20 43 48 41 4E 47 45 20 54 | :. CHANGE T|
00000760: 48 45 20 50 52 4F 4D 50 54 53 20 54 4F 20 41 53 |HE PROMPTS TO AS|
00000770: 4B 20 46 4F 52 20 54 48 45 20 44 41 54 41 20 4E |K FOR THE DATA N|
00000780: 45 45 44 45 44 00 BF 0B C2 01 85 22 41 44 44 52 |EEDED......"ADDR|
00000790: 45 53 53 22 3B 42 42 24 20 20 20 20 3A 8F 20 20 |ESS";BB$ :. |
000007A0: 49 4E 20 59 4F 55 52 20 50 41 52 54 49 43 55 4C |IN YOUR PARTICUL|
000007B0: 41 52 20 41 50 50 4C 49 43 41 54 49 4F 4E 2E 00 |AR APPLICATION..|
000007C0: 05 0C C7 01 85 22 43 49 54 59 22 3B 43 43 24 20 |....."CITY";CC$ |
000007D0: 20 20 20 20 20 20 3A 8F 20 20 41 4E 59 20 4E 55 | :. ANY NU|
000007E0: 4D 42 45 52 20 4F 46 20 46 49 45 4C 44 53 20 43 |MBER OF FIELDS C|
000007F0: 41 4E 20 42 45 20 55 53 45 44 20 41 53 20 4C 4F |AN BE USED AS LO|
00000800: 4E 47 20 41 53 00 45 0C CC 01 85 22 53 54 41 54 |NG AS.E...."STAT|
00000810: 45 22 3B 44 44 24 20 20 20 20 20 20 3A 8F 20 20 |E";DD$ :. |
00000820: 54 48 45 59 20 46 49 54 20 57 49 54 48 49 4E 20 |THEY FIT WITHIN |
00000830: 54 48 45 20 52 45 43 4F 52 44 20 4C 45 4E 47 54 |THE RECORD LENGT|
00000840: 48 20 59 4F 55 00 81 0C D6 01 85 22 5A 49 50 20 |H YOU......"ZIP |
00000850: 43 4F 44 45 22 3B 45 45 24 20 20 20 3A 8F 20 20 |CODE";EE$ :. |
00000860: 53 50 45 43 49 46 49 45 44 20 57 48 45 4E 20 43 |SPECIFIED WHEN C|
00000870: 52 45 41 54 49 4E 47 20 54 48 45 20 46 49 4C 45 |REATING THE FILE|
00000880: 2E 00 AD 0C E0 01 52 43 24 B2 41 41 24 AA 4C 4C |......RC$.AA$.LL|
00000890: 24 AA 42 42 24 AA 4C 4C 24 AA 43 43 24 AA 4C 4C |$.BB$.LL$.CC$.LL|
000008A0: 24 AA 44 44 24 AA 4C 4C 24 AA 45 45 24 00 F0 0C |$.DD$.LL$.EE$...|
000008B0: EA 01 8F 20 20 52 43 24 20 49 53 20 54 48 45 20 |... RC$ IS THE |
000008C0: 53 54 52 49 4E 47 20 43 4F 4E 54 41 49 4E 49 4E |STRING CONTAININ|
000008D0: 47 20 41 4C 4C 20 54 48 45 20 46 49 45 4C 44 53 |G ALL THE FIELDS|
000008E0: 20 46 4F 52 20 54 48 45 20 52 45 43 4F 52 44 2E | FOR THE RECORD.|
000008F0: 00 2A 0D F4 01 8F 20 20 52 45 4D 45 4D 42 45 52 |.*.... REMEMBER|
00000900: 20 54 48 45 20 4D 41 58 20 4C 45 4E 47 54 48 20 | THE MAX LENGTH |
00000910: 46 4F 52 20 52 43 24 20 49 53 20 32 35 34 20 43 |FOR RC$ IS 254 C|
00000920: 48 41 52 41 43 54 45 52 53 2E 00 62 0D FE 01 8D |HARACTERS..b....|
00000930: 31 30 30 30 20 3A 8F 20 20 43 41 4C 43 55 4C 41 |1000 :. CALCULA|
00000940: 54 45 20 54 48 45 20 4C 4F 57 20 42 59 54 45 2F |TE THE LOW BYTE/|
00000950: 48 49 47 48 20 42 59 54 45 20 50 4F 49 4E 54 45 |HIGH BYTE POINTE|
00000960: 52 2E 00 9C 0D 08 02 98 31 35 2C 22 50 22 AA C7 |R.......15,"P"..|
00000970: 28 39 36 AA 38 29 AA C7 28 52 4C 29 AA C7 28 52 |(96.8)..(RL)..(R|
00000980: 48 29 AA C7 28 31 29 20 3A 8F 20 20 50 4F 53 49 |H)..(1) :. POSI|
00000990: 54 49 4F 4E 20 43 4F 4D 4D 41 4E 44 00 C3 0D 12 |TION COMMAND....|
000009A0: 02 8D 20 35 30 30 30 20 3A 8F 20 20 43 48 45 43 |.. 5000 :. CHEC|
000009B0: 4B 20 54 48 45 20 45 52 52 4F 52 20 43 48 41 4E |K THE ERROR CHAN|
000009C0: 4E 45 4C 00 F3 0D 17 02 8B 20 45 B2 35 30 20 A7 |NEL...... E.50 .|
000009D0: 99 22 54 48 45 20 44 4F 53 20 57 49 4C 4C 20 45 |."THE DOS WILL E|
000009E0: 58 50 41 4E 44 20 54 48 45 20 46 49 4C 45 20 4E |XPAND THE FILE N|
000009F0: 4F 57 22 00 14 0E 1C 02 98 38 2C 52 43 24 20 20 |OW"......8,RC$ |
00000A00: 3A 8F 20 20 57 52 49 54 45 20 54 48 45 20 52 45 |:. WRITE THE RE|
00000A10: 43 4F 52 44 00 3B 0E 26 02 8D 20 35 30 30 30 20 |CORD.;.&.. 5000 |
00000A20: 3A 8F 20 20 43 48 45 43 4B 20 54 48 45 20 45 52 |:. CHECK THE ER|
00000A30: 52 4F 52 20 43 48 41 4E 4E 45 4C 00 5A 0E 30 02 |ROR CHANNEL.Z.0.|
00000A40: 85 22 57 52 49 54 45 20 41 4E 4F 54 48 45 52 20 |."WRITE ANOTHER |
00000A50: 52 45 43 4F 52 44 22 3B 41 24 00 6B 0E 3A 02 8B |RECORD";A$.k.:..|
00000A60: 20 41 24 B2 22 59 22 A7 34 33 30 00 8E 0E 44 02 | A$."Y".430...D.|
00000A70: A0 38 3A A0 31 35 3A 89 31 32 30 20 3A 8F 20 20 |.8:.15:.120 :. |
00000A80: 47 4F 20 54 4F 20 54 48 45 20 4D 45 4E 55 00 94 |GO TO THE MENU..|
00000A90: 0E 4E 02 3A 00 DB 0E 58 02 8F 20 20 54 48 49 53 |.N.:...X.. THIS|
00000AA0: 20 53 45 43 54 49 4F 4E 20 50 4F 53 49 54 49 4F | SECTION POSITIO|
00000AB0: 4E 53 20 54 4F 20 41 4E 44 20 57 52 49 54 45 53 |NS TO AND WRITES|
00000AC0: 20 54 48 45 20 48 49 47 48 45 53 54 20 52 45 43 | THE HIGHEST REC|
00000AD0: 4F 52 44 20 4E 55 4D 42 45 52 2E 00 23 0F 62 02 |ORD NUMBER..#.b.|
00000AE0: 8F 20 20 41 4C 54 48 4F 55 47 48 20 4E 4F 54 20 |. ALTHOUGH NOT |
00000AF0: 45 4E 54 49 52 45 4C 59 20 4E 45 43 45 53 53 41 |ENTIRELY NECESSA|
00000B00: 52 59 2C 20 57 52 49 54 49 4E 47 20 41 4E 44 20 |RY, WRITING AND |
00000B10: 55 50 44 41 54 49 4E 47 20 4C 4F 4E 47 20 46 49 |UPDATING LONG FI|
00000B20: 4C 45 53 00 68 0F 6C 02 8F 20 20 49 53 20 53 50 |LES.h.l.. IS SP|
00000B30: 45 45 44 45 44 20 57 48 45 4E 20 54 48 49 53 20 |EEDED WHEN THIS |
00000B40: 50 52 4F 43 45 45 44 55 52 45 20 49 53 20 55 53 |PROCEEDURE IS US|
00000B50: 45 44 2E 20 20 54 48 49 53 20 57 49 4C 4C 20 43 |ED. THIS WILL C|
00000B60: 41 55 53 45 20 54 48 45 00 AF 0F 76 02 8F 20 20 |AUSE THE...v.. |
00000B70: 44 4F 53 20 53 49 44 45 20 53 45 43 54 4F 52 20 |DOS SIDE SECTOR |
00000B80: 4C 49 53 54 20 54 4F 20 42 45 20 43 52 45 41 54 |LIST TO BE CREAT|
00000B90: 45 44 20 45 4E 54 49 52 45 4C 59 20 41 54 20 54 |ED ENTIRELY AT T|
00000BA0: 48 45 20 53 54 41 52 54 20 52 41 54 48 45 52 00 |HE START RATHER.|
00000BB0: ED 0F 80 02 8F 20 20 54 48 41 54 20 42 45 49 4E |..... THAT BEIN|
00000BC0: 47 20 41 50 50 45 4E 44 45 44 20 46 4F 52 20 45 |G APPENDED FOR E|
00000BD0: 41 43 48 20 4E 45 57 20 48 49 47 48 45 52 20 52 |ACH NEW HIGHER R|
00000BE0: 45 43 4F 52 44 20 4E 55 4D 42 45 52 2E 00 20 10 |ECORD NUMBER.. .|
00000BF0: 8A 02 9F 31 35 2C 38 2C 31 35 20 20 20 20 20 20 |...15,8,15 |
00000C00: 20 20 20 20 20 3A 8F 20 4F 50 45 4E 20 54 48 45 | :. OPEN THE|
00000C10: 20 43 4F 4D 4D 41 4E 44 20 43 48 41 4E 4E 45 4C | COMMAND CHANNEL|
00000C20: 00 47 10 94 02 8D 20 35 30 30 30 20 3A 8F 20 20 |.G.... 5000 :. |
00000C30: 43 48 45 43 4B 20 54 48 45 20 45 52 52 4F 52 20 |CHECK THE ERROR |
00000C40: 43 48 41 4E 4E 45 4C 00 8E 10 9E 02 9F 38 2C 38 |CHANNEL......8,8|
00000C50: 2C 38 2C 22 30 3A 22 AA 28 4E 4D 24 29 AA 22 2C |,8,"0:".(NM$).",|
00000C60: 4C 2C 22 AA C7 28 4C 4E 29 20 3A 8F 20 20 4F 50 |L,"..(LN) :. OP|
00000C70: 45 4E 20 46 49 4C 45 20 57 49 54 48 20 52 45 43 |EN FILE WITH REC|
00000C80: 4F 52 44 20 4C 45 4E 47 54 48 20 4C 4E 2E 00 B5 |ORD LENGTH LN...|
00000C90: 10 A8 02 8D 20 35 30 30 30 20 3A 8F 20 20 43 48 |.... 5000 :. CH|
00000CA0: 45 43 4B 20 54 48 45 20 45 52 52 4F 52 20 43 48 |ECK THE ERROR CH|
00000CB0: 41 4E 4E 45 4C 00 DF 10 B2 02 99 22 11 57 48 41 |ANNEL......".WHA|
00000CC0: 54 20 49 53 20 54 48 45 20 48 49 47 48 45 53 54 |T IS THE HIGHEST|
00000CD0: 20 52 45 43 4F 52 44 20 4E 55 4D 42 45 52 22 00 | RECORD NUMBER".|
00000CE0: F9 10 B7 02 85 22 59 4F 55 20 57 41 4E 54 20 54 |....."YOU WANT T|
00000CF0: 4F 20 55 53 45 22 3B 52 4E 00 31 11 BC 02 8D 31 |O USE";RN.1....1|
00000D00: 30 30 30 20 3A 8F 20 20 43 41 4C 43 55 4C 41 54 |000 :. CALCULAT|
00000D10: 45 20 54 48 45 20 4C 4F 57 20 42 59 54 45 2F 48 |E THE LOW BYTE/H|
00000D20: 49 47 48 20 42 59 54 45 20 50 4F 49 4E 54 45 52 |IGH BYTE POINTER|
00000D30: 2E 00 6B 11 C6 02 98 31 35 2C 22 50 22 AA C7 28 |..k....15,"P"..(|
00000D40: 39 36 AA 38 29 AA C7 28 52 4C 29 AA C7 28 52 48 |96.8)..(RL)..(RH|
00000D50: 29 AA C7 28 31 29 20 3A 8F 20 20 50 4F 53 49 54 |)..(1) :. POSIT|
00000D60: 49 4F 4E 20 43 4F 4D 4D 41 4E 44 00 92 11 D0 02 |ION COMMAND.....|
00000D70: 8D 20 35 30 30 30 20 3A 8F 20 20 43 48 45 43 4B |. 5000 :. CHECK|
00000D80: 20 54 48 45 20 45 52 52 4F 52 20 43 48 41 4E 4E | THE ERROR CHANN|
00000D90: 45 4C 00 C2 11 D5 02 8B 20 45 B2 35 30 20 A7 99 |EL...... E.50 ..|
00000DA0: 22 54 48 45 20 44 4F 53 20 57 49 4C 4C 20 45 58 |"THE DOS WILL EX|
00000DB0: 50 41 4E 44 20 54 48 45 20 46 49 4C 45 20 4E 4F |PAND THE FILE NO|
00000DC0: 57 22 00 D3 11 DA 02 98 38 2C C7 28 32 35 35 29 |W"......8,.(255)|
00000DD0: 20 3A 8F 00 FA 11 E4 02 8D 20 35 30 30 30 20 3A | :....... 5000 :|
00000DE0: 8F 20 20 43 48 45 43 4B 20 54 48 45 20 45 52 52 |. CHECK THE ERR|
00000DF0: 4F 52 20 43 48 41 4E 4E 45 4C 00 1D 12 EE 02 A0 |OR CHANNEL......|
00000E00: 38 3A A0 31 35 3A 89 31 32 30 20 3A 8F 20 20 47 |8:.15:.120 :. G|
00000E10: 4F 20 54 4F 20 54 48 45 20 4D 45 4E 55 00 2A 12 |O TO THE MENU.*.|
00000E20: 20 03 A0 38 3A A0 31 35 3A 80 00 66 12 E8 03 8F | ..8:.15:..f....|
00000E30: 20 20 54 48 49 53 20 53 55 42 52 4F 55 54 49 4E | THIS SUBROUTIN|
00000E40: 45 20 43 41 4C 43 55 4C 41 54 45 53 20 54 48 45 |E CALCULATES THE|
00000E50: 20 52 45 43 4F 52 44 20 4E 55 4D 42 45 52 20 50 | RECORD NUMBER P|
00000E60: 4F 49 4E 54 45 52 00 8F 12 F2 03 8F 20 20 49 4E |OINTER...... IN|
00000E70: 20 54 48 45 20 4C 4F 57 20 42 59 54 45 2F 48 49 | THE LOW BYTE/HI|
00000E80: 47 48 20 42 59 54 45 20 46 4F 52 4D 41 54 2E 00 |GH BYTE FORMAT..|
00000E90: C9 12 FC 03 8F 20 20 52 4E 20 28 52 45 43 4F 52 |..... RN (RECOR|
00000EA0: 44 20 4E 55 4D 42 45 52 29 20 49 53 20 55 53 45 |D NUMBER) IS USE|
00000EB0: 44 20 54 4F 20 43 41 4C 43 55 4C 41 54 45 20 52 |D TO CALCULATE R|
00000EC0: 4C 20 41 4E 44 20 52 48 2E 00 07 13 06 04 52 48 |L AND RH......RH|
00000ED0: B2 B5 28 52 4E AD 32 35 36 29 3A 52 4C B2 52 4E |..(RN.256):RL.RN|
00000EE0: AB 28 32 35 36 AC 52 48 29 20 3A 20 8F 20 20 52 |.(256.RH) : . R|
00000EF0: 4C 20 49 53 20 4C 4F 57 20 2D 2D 20 52 48 20 49 |L IS LOW -- RH I|
00000F00: 53 20 48 49 47 48 2E 00 0D 13 10 04 8E 00 47 13 |S HIGH........G.|
00000F10: 88 13 8F 20 20 20 54 48 49 53 20 49 53 20 54 48 |... THIS IS TH|
00000F20: 45 20 44 49 53 4B 20 44 52 49 56 45 20 45 52 52 |E DISK DRIVE ERR|
00000F30: 4F 52 20 43 48 45 43 4B 49 4E 47 20 53 55 42 52 |OR CHECKING SUBR|
00000F40: 4F 55 54 49 4E 45 2E 00 76 13 92 13 84 31 35 2C |OUTINE..v....15,|
00000F50: 45 2C 45 24 2C 41 2C 42 20 20 20 3A 8F 20 20 52 |E,E$,A,B :. R|
00000F60: 45 41 44 20 54 48 45 20 45 52 52 4F 52 20 43 48 |EAD THE ERROR CH|
00000F70: 41 4E 4E 45 4C 2E 00 A3 13 9C 13 8B 20 45 B2 30 |ANNEL....... E.0|
00000F80: 20 A7 20 8E 20 20 3A 8F 20 20 54 48 45 52 45 20 | . . :. THERE |
00000F90: 49 53 20 4E 4F 20 45 52 52 4F 52 20 49 46 20 45 |IS NO ERROR IF E|
00000FA0: 3D 30 2E 00 E9 13 A6 13 8F 20 20 20 45 3D 35 30 |=0....... E=50|
00000FB0: 20 28 52 45 43 4F 52 44 20 4E 4F 54 20 50 52 45 | (RECORD NOT PRE|
00000FC0: 53 45 4E 54 29 20 41 4E 59 20 54 49 4D 45 20 41 |SENT) ANY TIME A|
00000FD0: 20 52 45 43 4F 52 44 20 4E 55 4D 42 45 52 20 50 | RECORD NUMBER P|
00000FE0: 4F 49 4E 54 45 52 20 49 53 00 26 14 B0 13 8F 20 |OINTER IS.&.... |
00000FF0: 20 20 50 4F 53 49 54 49 4F 4E 45 44 20 42 45 59 | POSITIONED BEY|
00001000: 4F 4E 44 20 54 48 45 20 43 55 52 52 45 4E 54 20 |OND THE CURRENT |
00001010: 48 49 47 48 45 53 54 20 52 45 43 4F 52 44 20 4E |HIGHEST RECORD N|
00001020: 55 4D 42 45 52 2E 00 35 14 BA 13 8B 20 45 B2 35 |UMBER..5.... E.5|
00001030: 30 20 A7 20 8E 00 54 14 C4 13 99 22 54 48 45 52 |0 . ..T...."THER|
00001040: 45 20 49 53 20 41 4E 20 49 2F 4F 20 50 52 4F 42 |E IS AN I/O PROB|
00001050: 4C 45 4D 22 00 70 14 CE 13 99 22 45 52 52 4F 52 |LEM".p...."ERROR|
00001060: 20 4E 55 4D 42 45 52 20 49 53 22 3B 45 2C 45 24 | NUMBER IS";E,E$|
00001070: 00 90 14 D8 13 99 22 41 54 20 54 52 41 43 4B 22 |......"AT TRACK"|
00001080: 3B 41 3B 22 20 20 20 53 45 43 54 4F 52 22 3B 42 |;A;" SECTOR";B|
00001090: 00 C7 14 E2 13 8B 20 45 B2 37 30 20 A7 99 22 11 |...... E.70 ..".|
000010A0: 4D 41 4B 45 20 53 55 52 45 20 59 4F 55 20 49 4E |MAKE SURE YOU IN|
000010B0: 50 55 54 20 54 48 45 20 43 4F 52 52 45 43 54 20 |PUT THE CORRECT |
000010C0: 52 45 43 4F 52 44 22 00 F8 14 EC 13 8B 20 45 B2 |RECORD"...... E.|
000010D0: 37 30 20 A7 99 22 4C 45 4E 47 54 48 20 46 4F 52 |70 .."LENGTH FOR|
000010E0: 20 41 4E 20 45 58 49 53 54 49 4E 47 20 46 49 4C | AN EXISTING FIL|
000010F0: 45 20 4E 41 4D 45 2E 22 00 05 15 F6 13 A0 38 3A |E NAME."......8:|
00001100: A0 31 35 3A 90 00 00 00 |.15:.... |
....... WRITTEN BY.6.... PATR
ICK MCALLISTER.^....
^...(.. USE THIS PROGRAM
TO LEARN HOW...2.. CREATE AND USE RELA
TIVE FILES..Q.<.. IT IS FLEXIBLE ENOUG
H FOR YOU...F.. TO CUSTOMIZE IT FOR YO
UR USE..A.P.LL$.G(13) :. THIS IS THE
FIELD DELIMITER USED WHEN WRITING RECORD
S.W.Z..15,8,15,"I0": 15 : . INITIALIZE
THE DISK DRIVE....D..".WHAT IS THE NAME
OF THE FILE";NM$ :. MAXIMUM 16 CHARACTE
R NAME....N.."HOW MANY CHARACTERS IN EAC
H RECORD";LN :. MAXIMUM 254....S....
.X..".DO YOU WANT TO".4.Z..".R.EAD A REC
ORD".L.|..".W.RITE A RECORD".C.~..".S.ET
UP A FILE".W...."OR .Q.UIT";A$...... A$
."R" . 200...... A$."W" . 400...... A$."
S" . 600.C. .. A$."Q" . 800......"TYPE A
N 'R' 'W' 'S' OR 'Q' ":.120.....:.'.H..
THIS SECTION POSITIONS TO AND READS A
RECORD..Z.R..15,8,15 :. OPEN T
HE COMMAND CHANNEL...... 5000 :. CHECK
THE ERROR CHANNEL.H....8,8,8,"0:".(NM$).
",L,".G(LN) :. OPEN FILE WITH RECORD LE
NGTH LN....... 5000 :. CHECK THE ERROR
CHANNEL......"READ WHAT RECORD NUMBER";R
N.I....1000 :. CALCULATE THE LOW BYTE/H
IGH BYTE POINTER.......15,"P".G(96.8).G(
RL).G(RH).G(1) :. POSITION COMMAND.....
. 5000 :. CHECK THE ERROR CHANNEL.U....
E.50 .."RECORD NUMBER TO LARGE":.340...
"..8,AA$,BB$,CC$,DD$,EE$ :. READ IN THE
FIELDS../.,.. 5000 :. CHECK THE ERROR
CHANNEL.T.6..".RECORD NUMBER";RN;"CONTAI
NS:".J.;.." NAME: ";AA$...@.." ADDRES
S: ";BB$...E.." CITY: ";CC$...J.."
STATE: ";DD$.B.O.."ZIP CODE: ";EE$...T..
".READ ANOTHER RECORD";A$...^.. A$."Y".2
50...H. 8: 15:.120 :. GO TO THE MENU...
..:.Q.... THIS SECTION POSITIONS TO AND
WRITES A RECORD.......15,8,15
:. OPEN THE COMMAND CHANNEL...... 5000
:. CHECK THE ERROR CHANNEL......8,8,8,"
0:".(NM$).",L,".G(LN) :. OPEN FILE WITH
RECORD LENGTH LN....... 5000 :. CHECK
THE ERROR CHANNEL.=....".WRITE WHAT RECO
RD NUMBER";RN......"NAME";AA$ :.
CHANGE THE PROMPTS TO ASK FOR THE DATA N
EEDED...B.."ADDRESS";BB$ :. IN YOUR
PARTICULAR APPLICATION....G.."CITY";CC$
:. ANY NUMBER OF FIELDS CAN BE US
ED AS LONG AS.E.L.."STATE";DD$ :.
THEY FIT WITHIN THE RECORD LENGTH YOU...
V.."ZIP CODE";EE$ :. SPECIFIED WHEN C
REATING THE FILE......RC$.AA$.LL$.BB$.LL
$.CC$.LL$.DD$.LL$.EE$...... RC$ IS THE
STRING CONTAINING ALL THE FIELDS FOR THE
RECORD..*.... REMEMBER THE MAX LENGTH
FOR RC$ IS 254 CHARACTERS..B....1000 :.
CALCULATE THE LOW BYTE/HIGH BYTE POINTE
R.......15,"P".G(96.8).G(RL).G(RH).G(1)
:. POSITION COMMAND.C.... 5000 :. CHEC
K THE ERROR CHANNEL...... E.50 .."THE DO
S WILL EXPAND THE FILE NOW"......8,RC$
:. WRITE THE RECORD.;.&.. 5000 :. CHEC
K THE ERROR CHANNEL.Z.0.."WRITE ANOTHER
RECORD";A$.K.:.. A$."Y".430...D. 8: 15:.
120 :. GO TO THE MENU...N.:...X.. THIS
SECTION POSITIONS TO AND WRITES THE HIG
HEST RECORD NUMBER..#.B.. ALTHOUGH NOT
ENTIRELY NECESSARY, WRITING AND UPDATING
LONG FILES.H.L.. IS SPEEDED WHEN THIS
PROCEEDURE IS USED. THIS WILL CAUSE THE
...V.. DOS SIDE SECTOR LIST TO BE CREAT
ED ENTIRELY AT THE START RATHER...... T
HAT BEING APPENDED FOR EACH NEW HIGHER R
ECORD NUMBER.. ....15,8,15 :.
OPEN THE COMMAND CHANNEL.G.... 5000 :.
CHECK THE ERROR CHANNEL......8,8,8,"0:".
(NM$).",L,".G(LN) :. OPEN FILE WITH REC
ORD LENGTH LN....... 5000 :. CHECK THE
ERROR CHANNEL......".WHAT IS THE HIGHEST
RECORD NUMBER"......"YOU WANT TO USE";R
N.1....1000 :. CALCULATE THE LOW BYTE/H
IGH BYTE POINTER..K.F..15,"P".G(96.8).G(
RL).G(RH).G(1) :. POSITION COMMAND...P.
. 5000 :. CHECK THE ERROR CHANNEL.B.U..
E.50 .."THE DOS WILL EXPAND THE FILE NO
W".S.Z..8,G(255) :....... 5000 :. CHECK
THE ERROR CHANNEL..... 8: 15:.120 :. G
O TO THE MENU.*. . 8: 15:..F.... THIS S
UBROUTINE CALCULATES THE RECORD NUMBER P
OINTER...... IN THE LOW BYTE/HIGH BYTE
FORMAT..I.... RN (RECORD NUMBER) IS USE
D TO CALCULATE RL AND RH......RH..(RN.25
6):RL.RN.(256.RH) : . RL IS LOW -- RH I
S HIGH........G.... THIS IS THE DISK D
RIVE ERROR CHECKING SUBROUTINE..V....15,
E,E$,A,B :. READ THE ERROR CHANNEL...
.... E.0 . . :. THERE IS NO ERROR IF E
=0....... E=50 (RECORD NOT PRESENT) AN
Y TIME A RECORD NUMBER POINTER IS.&....
POSITIONED BEYOND THE CURRENT HIGHEST
RECORD NUMBER..5.... E.50 . ..T.D.."THER
E IS AN I/O PROBLEM".P.N.."ERROR NUMBER
IS";E,E$...X.."AT TRACK";A;" SECTOR";B
.G.... E.70 ..".MAKE SURE YOU INPUT THE
CORRECT RECORD"...... E.70 .."LENGTH FOR
AN EXISTING FILE NAME."..... 8: 15:....
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL