PRANDUPD
FILE INFORMATION
FILENAME(S): PRANDUPD
FILE TYPE(S): SEQ
FILE SIZE: 2.8K
FIRST SEEN: 2025-10-20 00:35:06
APPEARS ON: 1 disk(s)
FILE HASH
8f1e22aaec2be518ad5bfea7cb97fa4b808fb77a34974d1b9cfc714788f56987
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| PIC MAGIC PAINT | PRANDUPD | SEQ | Robin Albicker | 19 | 5 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 50 52 4F 47 52 41 4D 20 50 52 41 4E 44 55 50 44 |PROGRAM PRANDUPD|
00000010: 28 52 41 4E 44 4F 4D 20 46 49 4C 45 20 55 50 44 |(RANDOM FILE UPD|
00000020: 41 54 45 2C 31 31 2F 31 32 2F 38 32 29 3B 0D 0D |ATE,11/12/82);..|
00000030: 43 4F 4E 53 54 20 44 49 53 4B 55 4E 49 54 3D 38 |CONST DISKUNIT=8|
00000040: 3B 0D 20 20 20 20 20 20 44 41 54 41 43 48 41 4E |;. DATACHAN|
00000050: 3D 32 3B 0D 20 20 20 20 20 20 43 4D 44 43 48 41 |=2;. CMDCHA|
00000060: 4E 3D 31 35 3B 0D 0D 56 41 52 20 53 49 5A 45 4F |N=15;..VAR SIZEO|
00000070: 4B 3A 20 42 4F 4F 4C 45 41 4E 3B 0D 20 20 20 20 |K: BOOLEAN;. |
00000080: 43 48 3A 20 43 48 41 52 3B 0D 20 20 20 20 46 49 |CH: CHAR;. FI|
00000090: 4C 45 53 49 5A 45 2C 20 52 45 43 4F 52 44 53 49 |LESIZE, RECORDSI|
000000A0: 5A 45 2C 20 52 45 43 4E 55 4D 3A 20 49 4E 54 45 |ZE, RECNUM: INTE|
000000B0: 47 45 52 3B 0D 20 20 20 20 53 54 52 3A 20 53 54 |GER;. STR: ST|
000000C0: 52 49 4E 47 3B 0D 20 20 20 20 44 41 54 41 49 4E |RING;. DATAIN|
000000D0: 2C 20 44 41 54 41 4F 55 54 2C 20 43 4F 4D 4D 41 |, DATAOUT, COMMA|
000000E0: 4E 44 49 4E 2C 20 43 4F 4D 4D 41 4E 44 4F 55 54 |NDIN, COMMANDOUT|
000000F0: 3A 20 54 45 58 54 3B 0D 0D 50 52 4F 43 45 44 55 |: TEXT;..PROCEDU|
00000100: 52 45 20 50 4F 53 49 54 49 4F 4E 28 43 48 41 4E |RE POSITION(CHAN|
00000110: 4E 45 4C 2C 20 52 45 43 4F 52 44 4E 55 4D 42 45 |NEL, RECORDNUMBE|
00000120: 52 2C 20 53 54 41 52 54 50 4F 53 49 54 49 4F 4E |R, STARTPOSITION|
00000130: 3A 20 49 4E 54 45 47 45 52 29 3B 0D 20 20 42 45 |: INTEGER);. BE|
00000140: 47 49 4E 0D 20 20 20 20 57 52 49 54 45 4C 4E 28 |GIN. WRITELN(|
00000150: 43 4F 4D 4D 41 4E 44 4F 55 54 2C 43 4F 4E 43 41 |COMMANDOUT,CONCA|
00000160: 54 28 27 50 27 2C 0D 20 20 20 20 20 20 20 20 20 |T('P',. |
00000170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000180: 20 20 20 20 20 43 48 52 28 43 48 41 4E 4E 45 4C | CHR(CHANNEL|
00000190: 29 2C 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 |),. |
000001A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000001B0: 20 43 48 52 28 52 45 43 4F 52 44 4E 55 4D 42 45 | CHR(RECORDNUMBE|
000001C0: 52 29 2C 43 48 52 28 52 45 43 4F 52 44 4E 55 4D |R),CHR(RECORDNUM|
000001D0: 42 45 52 20 53 48 52 20 38 29 2C 0D 20 20 20 20 |BER SHR 8),. |
000001E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000001F0: 20 20 20 20 20 20 20 20 20 20 43 48 52 28 53 54 | CHR(ST|
00000200: 41 52 54 50 4F 53 49 54 49 4F 4E 29 29 29 0D 20 |ARTPOSITION))). |
00000210: 20 45 4E 44 3B 0D 0D 46 55 4E 43 54 49 4F 4E 20 | END;..FUNCTION |
00000220: 44 49 53 4B 45 52 52 4F 52 3A 20 42 4F 4F 4C 45 |DISKERROR: BOOLE|
00000230: 41 4E 3B 0D 20 20 56 41 52 20 45 52 52 4F 52 4E |AN;. VAR ERRORN|
00000240: 55 4D 42 45 52 3A 20 49 4E 54 45 47 45 52 3B 0D |UMBER: INTEGER;.|
00000250: 20 20 20 20 20 20 4D 45 53 53 41 47 45 3A 20 53 | MESSAGE: S|
00000260: 54 52 49 4E 47 3B 0D 20 20 46 55 4E 43 54 49 4F |TRING;. FUNCTIO|
00000270: 4E 20 54 45 58 54 4F 46 28 46 52 4F 4D 43 42 4D |N TEXTOF(FROMCBM|
00000280: 3A 20 53 54 52 49 4E 47 29 3A 20 53 54 52 49 4E |: STRING): STRIN|
00000290: 47 3B 0D 20 20 20 20 56 41 52 20 43 4F 4D 4D 41 |G;. VAR COMMA|
000002A0: 50 4F 53 3A 20 49 4E 54 45 47 45 52 3B 0D 20 20 |POS: INTEGER;. |
000002B0: 20 20 42 45 47 49 4E 0D 20 20 20 20 20 20 43 4F | BEGIN. CO|
000002C0: 4D 4D 41 50 4F 53 3A 3D 50 4F 53 28 27 2C 27 2C |MMAPOS:=POS(',',|
000002D0: 46 52 4F 4D 43 42 4D 29 3B 0D 20 20 20 20 20 20 |FROMCBM);. |
000002E0: 54 45 58 54 4F 46 3A 3D 43 4F 50 59 28 46 52 4F |TEXTOF:=COPY(FRO|
000002F0: 4D 43 42 4D 2C 32 2C 43 4F 4D 4D 41 50 4F 53 2D |MCBM,2,COMMAPOS-|
00000300: 32 29 0D 20 20 20 20 45 4E 44 3B 0D 20 20 42 45 |2). END;. BE|
00000310: 47 49 4E 0D 20 20 20 20 52 45 41 44 28 43 4F 4D |GIN. READ(COM|
00000320: 4D 41 4E 44 49 4E 2C 45 52 52 4F 52 4E 55 4D 42 |MANDIN,ERRORNUMB|
00000330: 45 52 2C 4D 45 53 53 41 47 45 29 3B 0D 20 20 20 |ER,MESSAGE);. |
00000340: 20 49 46 20 45 52 52 4F 52 4E 55 4D 42 45 52 3C | IF ERRORNUMBER<|
00000350: 32 30 0D 20 20 20 20 20 20 20 20 54 48 45 4E 20 |20. THEN |
00000360: 44 49 53 4B 45 52 52 4F 52 3A 3D 46 41 4C 53 45 |DISKERROR:=FALSE|
00000370: 0D 20 20 20 20 20 20 45 4C 53 45 20 49 46 20 45 |. ELSE IF E|
00000380: 52 52 4F 52 4E 55 4D 42 45 52 3D 35 30 0D 20 20 |RRORNUMBER=50. |
00000390: 20 20 20 20 20 20 20 20 20 20 20 20 20 54 48 45 | THE|
000003A0: 4E 20 42 45 47 49 4E 0D 20 20 20 20 20 20 20 20 |N BEGIN. |
000003B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 52 | WR|
000003C0: 49 54 45 4C 4E 28 54 45 58 54 4F 46 28 4D 45 53 |ITELN(TEXTOF(MES|
000003D0: 53 41 47 45 29 29 3B 0D 20 20 20 20 20 20 20 20 |SAGE));. |
000003E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 49 | DI|
000003F0: 53 4B 45 52 52 4F 52 3A 3D 46 41 4C 53 45 0D 20 |SKERROR:=FALSE. |
00000400: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000410: 20 20 20 45 4E 44 0D 20 20 20 20 20 20 20 20 20 | END. |
00000420: 20 20 20 20 45 4C 53 45 20 42 45 47 49 4E 0D 20 | ELSE BEGIN. |
00000430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000440: 20 20 20 57 52 49 54 45 4C 4E 28 54 45 58 54 4F | WRITELN(TEXTO|
00000450: 46 28 4D 45 53 53 41 47 45 29 29 3B 0D 20 20 20 |F(MESSAGE));. |
00000460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000470: 20 44 49 53 4B 45 52 52 4F 52 3A 3D 54 52 55 45 | DISKERROR:=TRUE|
00000480: 3B 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |;. |
00000490: 20 20 20 20 20 20 57 52 49 54 45 4C 4E 28 27 45 | WRITELN('E|
000004A0: 4E 44 45 44 20 42 59 20 44 49 53 4B 20 45 52 52 |NDED BY DISK ERR|
000004B0: 4F 52 27 29 0D 20 20 20 20 20 20 20 20 20 20 20 |OR'). |
000004C0: 20 20 20 20 20 20 20 45 4E 44 0D 20 20 45 4E 44 | END. END|
000004D0: 3B 0D 0D 42 45 47 49 4E 0D 20 20 52 45 53 45 54 |;..BEGIN. RESET|
000004E0: 28 43 4F 4D 4D 41 4E 44 49 4E 2C 0D 20 20 20 20 |(COMMANDIN,. |
000004F0: 20 20 20 20 44 49 53 4B 55 4E 49 54 2C 0D 20 20 | DISKUNIT,. |
00000500: 20 20 20 20 20 20 43 4D 44 43 48 41 4E 29 3B 0D | CMDCHAN);.|
00000510: 20 20 52 45 57 52 49 54 45 28 43 4F 4D 4D 41 4E | REWRITE(COMMAN|
00000520: 44 4F 55 54 2C 0D 20 20 20 20 20 20 20 20 20 20 |DOUT,. |
00000530: 44 49 53 4B 55 4E 49 54 2C 0D 20 20 20 20 20 20 |DISKUNIT,. |
00000540: 20 20 20 20 43 4D 44 43 48 41 4E 29 3B 0D 20 20 | CMDCHAN);. |
00000550: 52 45 53 45 54 28 44 41 54 41 49 4E 2C 0D 20 20 |RESET(DATAIN,. |
00000560: 20 20 20 20 20 20 44 49 53 4B 55 4E 49 54 2C 0D | DISKUNIT,.|
00000570: 20 20 20 20 20 20 20 20 44 41 54 41 43 48 41 4E | DATACHAN|
00000580: 2C 0D 20 20 20 20 20 20 20 20 27 30 3A 52 41 4E |,. '0:RAN|
00000590: 44 4F 4D 27 29 3B 0D 20 20 49 46 20 44 49 53 4B |DOM');. IF DISK|
000005A0: 45 52 52 4F 52 0D 20 20 20 20 20 20 54 48 45 4E |ERROR. THEN|
000005B0: 20 45 58 49 54 28 4D 41 49 4E 29 3B 0D 20 20 52 | EXIT(MAIN);. R|
000005C0: 45 57 52 49 54 45 28 44 41 54 41 4F 55 54 2C 0D |EWRITE(DATAOUT,.|
000005D0: 20 20 20 20 20 20 20 20 20 20 44 49 53 4B 55 4E | DISKUN|
000005E0: 49 54 2C 0D 20 20 20 20 20 20 20 20 20 20 44 41 |IT,. DA|
000005F0: 54 41 43 48 41 4E 2C 0D 20 20 20 20 20 20 20 20 |TACHAN,. |
00000600: 20 20 27 30 3A 52 41 4E 44 4F 4D 27 29 3B 0D 20 | '0:RANDOM');. |
00000610: 20 49 46 20 44 49 53 4B 45 52 52 4F 52 0D 20 20 | IF DISKERROR. |
00000620: 20 20 20 20 54 48 45 4E 20 45 58 49 54 28 4D 41 | THEN EXIT(MA|
00000630: 49 4E 29 3B 0D 20 20 50 4F 53 49 54 49 4F 4E 28 |IN);. POSITION(|
00000640: 44 41 54 41 43 48 41 4E 2C 31 2C 31 29 3B 0D 20 |DATACHAN,1,1);. |
00000650: 20 52 45 41 44 28 44 41 54 41 49 4E 2C 46 49 4C | READ(DATAIN,FIL|
00000660: 45 53 49 5A 45 2C 52 45 43 4F 52 44 53 49 5A 45 |ESIZE,RECORDSIZE|
00000670: 29 3B 0D 20 20 57 52 49 54 45 4C 4E 28 27 54 48 |);. WRITELN('TH|
00000680: 45 20 46 49 4C 45 20 4A 55 53 54 20 4F 50 45 4E |E FILE JUST OPEN|
00000690: 45 44 20 48 41 53 20 43 41 50 41 43 49 54 59 20 |ED HAS CAPACITY |
000006A0: 46 4F 52 20 27 2C 0D 20 20 20 20 20 20 20 20 20 |FOR ',. |
000006B0: 20 20 46 49 4C 45 53 49 5A 45 2C 27 20 27 2C 52 | FILESIZE,' ',R|
000006C0: 45 43 4F 52 44 53 49 5A 45 2C 27 20 43 48 41 52 |ECORDSIZE,' CHAR|
000006D0: 41 43 54 45 52 20 52 45 43 4F 52 44 53 27 29 3B |ACTER RECORDS');|
000006E0: 0D 20 20 52 45 50 45 41 54 0D 20 20 20 20 52 45 |. REPEAT. RE|
000006F0: 50 45 41 54 0D 20 20 20 20 20 20 57 52 49 54 45 |PEAT. WRITE|
00000700: 28 27 4E 55 4D 42 45 52 20 4F 46 20 52 45 43 4F |('NUMBER OF RECO|
00000710: 52 44 3F 20 27 29 3B 0D 20 20 20 20 20 20 52 45 |RD? ');. RE|
00000720: 41 44 4C 4E 28 52 45 43 4E 55 4D 29 3B 0D 20 20 |ADLN(RECNUM);. |
00000730: 20 20 20 20 49 46 20 52 45 43 4E 55 4D 3C 32 0D | IF RECNUM<2.|
00000740: 20 20 20 20 20 20 20 20 20 20 54 48 45 4E 20 57 | THEN W|
00000750: 52 49 54 45 4C 4E 28 27 4E 55 4D 42 45 52 20 54 |RITELN('NUMBER T|
00000760: 4F 4F 20 4C 4F 57 21 27 29 0D 20 20 20 20 20 20 |OO LOW!'). |
00000770: 20 20 45 4C 53 45 20 49 46 20 52 45 43 4E 55 4D | ELSE IF RECNUM|
00000780: 3E 46 49 4C 45 53 49 5A 45 0D 20 20 20 20 20 20 |>FILESIZE. |
00000790: 20 20 20 20 20 20 20 20 20 20 20 54 48 45 4E 20 | THEN |
000007A0: 57 52 49 54 45 4C 4E 28 27 4E 55 4D 42 45 52 20 |WRITELN('NUMBER |
000007B0: 54 4F 4F 20 48 49 47 48 21 27 29 0D 20 20 20 20 |TOO HIGH!'). |
000007C0: 55 4E 54 49 4C 20 28 52 45 43 4E 55 4D 3E 31 29 |UNTIL (RECNUM>1)|
000007D0: 20 41 4E 44 20 28 52 45 43 4E 55 4D 3C 3D 46 49 | AND (RECNUM<=FI|
000007E0: 4C 45 53 49 5A 45 29 3B 0D 20 20 20 20 50 4F 53 |LESIZE);. POS|
000007F0: 49 54 49 4F 4E 28 44 41 54 41 43 48 41 4E 2C 52 |ITION(DATACHAN,R|
00000800: 45 43 4E 55 4D 2C 31 29 3B 0D 20 20 20 20 49 46 |ECNUM,1);. IF|
00000810: 20 44 49 53 4B 45 52 52 4F 52 0D 20 20 20 20 20 | DISKERROR. |
00000820: 20 20 20 54 48 45 4E 20 45 58 49 54 28 4D 41 49 | THEN EXIT(MAI|
00000830: 4E 29 3B 0D 20 20 20 20 52 45 41 44 28 44 41 54 |N);. READ(DAT|
00000840: 41 49 4E 2C 43 48 29 3B 0D 20 20 20 20 49 46 20 |AIN,CH);. IF |
00000850: 43 48 3D 24 46 46 0D 20 20 20 20 20 20 20 20 54 |CH=$FF. T|
00000860: 48 45 4E 20 57 52 49 54 45 4C 4E 28 27 45 4D 50 |HEN WRITELN('EMP|
00000870: 54 59 20 52 45 43 4F 52 44 27 29 0D 20 20 20 20 |TY RECORD'). |
00000880: 20 20 45 4C 53 45 20 42 45 47 49 4E 0D 20 20 20 | ELSE BEGIN. |
00000890: 20 20 20 20 20 20 20 20 20 20 52 45 41 44 28 44 | READ(D|
000008A0: 41 54 41 49 4E 2C 53 54 52 29 3B 0D 20 20 20 20 |ATAIN,STR);. |
000008B0: 20 20 20 20 20 20 20 20 20 57 52 49 54 45 4C 4E | WRITELN|
000008C0: 28 27 52 45 43 4F 52 44 20 49 53 20 27 27 27 2C |('RECORD IS ''',|
000008D0: 43 4F 4E 43 41 54 28 43 48 2C 53 54 52 29 2C 27 |CONCAT(CH,STR),'|
000008E0: 27 27 27 29 0D 20 20 20 20 20 20 20 20 20 20 20 |'''). |
000008F0: 45 4E 44 3B 0D 20 20 20 20 57 52 49 54 45 28 27 |END;. WRITE('|
00000900: 55 50 44 41 54 45 20 54 48 49 53 20 52 45 43 4F |UPDATE THIS RECO|
00000910: 52 44 3F 20 27 29 3B 0D 20 20 20 20 52 45 41 44 |RD? ');. READ|
00000920: 4C 4E 28 43 48 29 3B 0D 20 20 20 20 49 46 20 43 |LN(CH);. IF C|
00000930: 48 3D 27 59 27 0D 20 20 20 20 20 20 20 20 54 48 |H='Y'. TH|
00000940: 45 4E 20 52 45 50 45 41 54 0D 20 20 20 20 20 20 |EN REPEAT. |
00000950: 20 20 20 20 20 20 20 20 20 57 52 49 54 45 28 27 | WRITE('|
00000960: 4E 45 57 20 44 41 54 41 3A 20 27 29 3B 0D 20 20 |NEW DATA: ');. |
00000970: 20 20 20 20 20 20 20 20 20 20 20 20 20 52 45 41 | REA|
00000980: 44 4C 4E 28 53 54 52 29 3B 0D 20 20 20 20 20 20 |DLN(STR);. |
00000990: 20 20 20 20 20 20 20 20 20 49 46 20 4C 45 4E 47 | IF LENG|
000009A0: 54 48 28 53 54 52 29 3C 52 45 43 4F 52 44 53 49 |TH(STR)<RECORDSI|
000009B0: 5A 45 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 |ZE. |
000009C0: 20 20 20 20 20 20 54 48 45 4E 20 42 45 47 49 4E | THEN BEGIN|
000009D0: 0D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. |
000009E0: 20 20 20 20 20 20 20 20 20 20 20 50 4F 53 49 54 | POSIT|
000009F0: 49 4F 4E 28 44 41 54 41 43 48 41 4E 2C 52 45 43 |ION(DATACHAN,REC|
00000A00: 4E 55 4D 2C 31 29 3B 0D 20 20 20 20 20 20 20 20 |NUM,1);. |
00000A10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000A20: 20 20 57 52 49 54 45 4C 4E 28 44 41 54 41 4F 55 | WRITELN(DATAOU|
00000A30: 54 2C 53 54 52 29 3B 0D 20 20 20 20 20 20 20 20 |T,STR);. |
00000A40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000A50: 20 20 53 49 5A 45 4F 4B 3A 3D 54 52 55 45 0D 20 | SIZEOK:=TRUE. |
00000A60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000A70: 20 20 20 20 20 20 20 45 4E 44 0D 20 20 20 20 20 | END. |
00000A80: 20 20 20 20 20 20 20 20 20 20 20 20 45 4C 53 45 | ELSE|
00000A90: 20 42 45 47 49 4E 0D 20 20 20 20 20 20 20 20 20 | BEGIN. |
00000AA0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 | W|
00000AB0: 52 49 54 45 4C 4E 28 27 54 4F 4F 20 4C 4F 4E 47 |RITELN('TOO LONG|
00000AC0: 21 27 29 3B 0D 20 20 20 20 20 20 20 20 20 20 20 |!');. |
00000AD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 53 49 5A | SIZ|
00000AE0: 45 4F 4B 3A 3D 46 41 4C 53 45 0D 20 20 20 20 20 |EOK:=FALSE. |
00000AF0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000B00: 20 45 4E 44 0D 20 20 20 20 20 20 20 20 20 20 20 | END. |
00000B10: 20 20 55 4E 54 49 4C 20 53 49 5A 45 4F 4B 3B 0D | UNTIL SIZEOK;.|
00000B20: 20 20 20 20 57 52 49 54 45 28 27 4D 4F 52 45 3F | WRITE('MORE?|
00000B30: 20 27 29 3B 0D 20 20 20 20 52 45 41 44 4C 4E 28 | ');. READLN(|
00000B40: 43 48 29 0D 20 20 55 4E 54 49 4C 20 43 48 3C 3E |CH). UNTIL CH<>|
00000B50: 27 59 27 0D 45 4E 44 2E 0D 03 44 4F 9A FF |'Y'.END...DO.. |
PROGRAM PRANDUPD(RANDOM FILE UPDATE,11/1
2/82);..CONST DISKUNIT=8;. DATACHAN
=2;. CMDCHAN=15;..VAR SIZEOK: BOOLE
AN;. CH: CHAR;. FILESIZE, RECORDSI
ZE, RECNUM: INTEGER;. STR: STRING;.
DATAIN, DATAOUT, COMMANDIN, COMMANDOUT
: TEXT;..PROCEDURE POSITION(CHANNEL, REC
ORDNUMBER, STARTPOSITION: INTEGER);. BE
GIN. WRITELN(COMMANDOUT,CONCAT('P',.
CHR(CHANNEL
),. CHR(REC
ORDNUMBER),CHR(RECORDNUMBER SHR 8),.
CHR(STARTPOSIT
ION))). END;..FUNCTION DISKERROR: BOOLE
AN;. VAR ERRORNUMBER: INTEGER;. ME
SSAGE: STRING;. FUNCTION TEXTOF(FROMCBM
: STRING): STRING;. VAR COMMAPOS: INT
EGER;. BEGIN. COMMAPOS:=POS(',',
FROMCBM);. TEXTOF:=COPY(FROMCBM,2,C
OMMAPOS-2). END;. BEGIN. READ(COM
MANDIN,ERRORNUMBER,MESSAGE);. IF ERRO
RNUMBER<20. THEN DISKERROR:=FALSE
. ELSE IF ERRORNUMBER=50.
THEN BEGIN. WR
ITELN(TEXTOF(MESSAGE));.
DISKERROR:=FALSE.
END. ELSE BEGIN.
WRITELN(TEXTOF(MESSAGE));.
DISKERROR:=TRUE;.
WRITELN('ENDED BY DISK ERR
OR'). END. END;..BEGIN
. RESET(COMMANDIN,. DISKUNIT,.
CMDCHAN);. REWRITE(COMMANDOUT,.
DISKUNIT,. CMDCHAN);.
RESET(DATAIN,. DISKUNIT,.
DATACHAN,. '0:RANDOM');. IF DISK
ERROR. THEN EXIT(MAIN);. REWRITE(D
ATAOUT,. DISKUNIT,. DA
TACHAN,. '0:RANDOM');. IF DISK
ERROR. THEN EXIT(MAIN);. POSITION(
DATACHAN,1,1);. READ(DATAIN,FILESIZE,RE
CORDSIZE);. WRITELN('THE FILE JUST OPEN
ED HAS CAPACITY FOR ',. FILESI
ZE,' ',RECORDSIZE,' CHARACTER RECORDS');
. REPEAT. REPEAT. WRITE('NUMBER
OF RECORD? ');. READLN(RECNUM);.
IF RECNUM<2. THEN WRITELN('
NUMBER TOO LOW!'). ELSE IF RECNUM
>FILESIZE. THEN WRITELN(
'NUMBER TOO HIGH!'). UNTIL (RECNUM>1)
AND (RECNUM<=FILESIZE);. POSITION(DA
TACHAN,RECNUM,1);. IF DISKERROR.
THEN EXIT(MAIN);. READ(DATAIN,CH);
. IF CH=$FF. THEN WRITELN('EMP
TY RECORD'). ELSE BEGIN.
READ(DATAIN,STR);. WRITELN
('RECORD IS ''',CONCAT(CH,STR),'''').
END;. WRITE('UPDATE THIS RECO
RD? ');. READLN(CH);. IF CH='Y'.
THEN REPEAT. WRITE('
NEW DATA: ');. READLN(STR)
;. IF LENGTH(STR)<RECORDSI
ZE. THEN BEGIN.
POSITION(DATACHAN,REC
NUM,1);. WRITEL
N(DATAOUT,STR);.
SIZEOK:=TRUE. E
ND. ELSE BEGIN.
WRITELN('TOO LONG!');.
SIZEOK:=FALSE.
END. UNTIL
SIZEOK;. WRITE('MORE? ');. READLN(
CH). UNTIL CH<>'Y'.END...DO..
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL