ofs | hex dump | ascii |
---|
0000 | 70 72 6f 67 72 61 6d 20 62 64 65 6d 6f 28 6f 75 74 70 75 74 29 3b 20 7b 64 65 6d 6f 6e 73 74 72 | program.bdemo(output);.{demonstr |
0020 | 61 74 65 73 20 62 69 6e 61 72 79 20 66 69 6c 65 20 49 2f 4f 20 69 6e 20 47 4e 55 20 50 61 73 63 | ates.binary.file.I/O.in.GNU.Pasc |
0040 | 61 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 | al,...........................us |
0060 | 69 6e 67 20 65 78 74 65 72 6e 61 6c 20 43 20 72 6f 75 74 69 6e 65 73 20 74 6f 20 68 65 6c 70 20 | ing.external.C.routines.to.help. |
0080 | 6f 75 74 7d 0a 6c 61 62 65 6c 20 39 39 39 39 3b 0a 63 6f 6e 73 74 20 6e 61 6d 65 6c 65 6e 67 74 | out}.label.9999;.const.namelengt |
00a0 | 68 3d 31 30 30 3b 0a 74 79 70 65 20 62 79 74 65 3d 69 6e 74 65 67 65 72 28 38 29 3b 0a 20 62 79 | h=100;.type.byte=integer(8);..by |
00c0 | 74 65 66 69 6c 65 3d 70 61 63 6b 65 64 20 66 69 6c 65 20 6f 66 20 62 79 74 65 3b 0a 20 55 4e 49 | tefile=packed.file.of.byte;..UNI |
00e0 | 58 66 69 6c 65 6e 61 6d 65 3d 70 61 63 6b 65 64 20 61 72 72 61 79 5b 31 2e 2e 6e 61 6d 65 6c 65 | Xfilename=packed.array[1..namele |
0100 | 6e 67 74 68 5d 20 6f 66 20 63 68 61 72 3b 0a 76 61 72 20 66 6e 61 6d 65 3a 55 4e 49 58 66 69 6c | ngth].of.char;.var.fname:UNIXfil |
0120 | 65 6e 61 6d 65 3b 0a 20 62 66 69 6c 65 3a 62 79 74 65 66 69 6c 65 3b 0a 20 6b 2c 6c 3a 69 6e 74 | ename;..bfile:bytefile;..k,l:int |
0140 | 65 67 65 72 3b 0a 20 61 72 67 63 3a 61 73 6d 6e 61 6d 65 20 27 5f 70 5f 61 72 67 63 27 20 49 6e | eger;..argc:asmname.'_p_argc'.In |
0160 | 74 65 67 65 72 3b 0a 23 69 6e 63 6c 75 64 65 20 22 62 64 65 6d 6f 5f 65 78 74 2e 68 22 0a 70 72 | teger;.#include."bdemo_ext.h".pr |
0180 | 6f 63 65 64 75 72 65 20 70 72 69 6e 74 73 74 61 74 75 73 28 6e 3a 69 6e 74 65 67 65 72 29 3b 0a | ocedure.printstatus(n:integer);. |
01a0 | 76 61 72 20 78 3a 62 79 74 65 3b 0a 62 65 67 69 6e 20 69 66 20 74 65 73 74 65 6f 66 28 62 66 69 | var.x:byte;.begin.if.testeof(bfi |
01c0 | 6c 65 29 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 27 42 79 74 65 20 27 2c 6e 3a 31 2c 27 20 69 | le).then.writeln('Byte.',n:1,'.i |
01e0 | 73 20 45 4f 46 27 29 0a 65 6c 73 65 20 62 65 67 69 6e 0a 20 20 20 62 72 65 61 64 28 62 66 69 6c | s.EOF').else.begin....bread(bfil |
0200 | 65 2c 78 29 3b 20 77 72 69 74 65 6c 6e 28 27 42 79 74 65 20 27 2c 6e 3a 31 2c 27 20 69 73 20 27 | e,x);.writeln('Byte.',n:1,'.is.' |
0220 | 2c 78 3a 31 29 3b 0a 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a 62 65 67 69 6e 20 69 66 20 61 72 67 63 | ,x:1);...end;.end;.begin.if.argc |
0240 | 3d 31 20 74 68 65 6e 20 7b 6e 6f 20 66 69 6c 65 20 6e 61 6d 65 20 61 72 67 75 6d 65 6e 74 20 67 | =1.then.{no.file.name.argument.g |
0260 | 69 76 65 6e 20 6f 6e 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 7d 0a 20 20 62 65 67 69 6e 20 77 72 | iven.on.command.line}...begin.wr |
0280 | 69 74 65 6c 6e 28 27 43 72 65 61 74 69 6e 67 20 74 65 73 74 20 66 69 6c 65 20 62 74 65 73 74 27 | iteln('Creating.test.file.btest' |
02a0 | 29 3b 0a 20 20 66 6e 61 6d 65 3a 3d 27 62 74 65 73 74 00 27 3b 0a 20 20 69 66 20 6e 6f 74 20 74 | );...fname:='btest.';...if.not.t |
02c0 | 65 73 74 77 72 69 74 65 61 63 63 65 73 73 28 66 6e 61 6d 65 29 20 74 68 65 6e 0a 20 20 20 20 62 | estwriteaccess(fname).then.....b |
02e0 | 65 67 69 6e 20 77 72 69 74 65 6c 6e 28 27 49 20 63 6f 75 6c 64 6e 27 27 74 20 63 72 65 61 74 65 | egin.writeln('I.couldn''t.create |
0300 | 20 69 74 21 27 29 3b 20 67 6f 74 6f 20 39 39 39 39 3b 0a 20 20 20 20 65 6e 64 3b 0a 20 20 72 65 | .it!');.goto.9999;.....end;...re |
0320 | 77 72 69 74 65 28 62 66 69 6c 65 2c 66 6e 61 6d 65 29 3b 0a 20 20 66 6f 72 20 6b 3a 3d 2d 31 32 | write(bfile,fname);...for.k:=-12 |
0340 | 38 20 74 6f 20 31 32 37 20 64 6f 20 77 72 69 74 65 28 62 66 69 6c 65 2c 6b 29 3b 0a 20 20 65 6e | 8.to.127.do.write(bfile,k);...en |
0360 | 64 0a 20 20 65 6c 73 65 20 69 66 20 61 72 67 76 28 31 2c 66 6e 61 6d 65 29 20 74 68 65 6e 0a 20 | d...else.if.argv(1,fname).then.. |
0380 | 20 20 20 20 62 65 67 69 6e 20 6b 3a 3d 31 3b 0a 20 20 20 20 20 20 77 68 69 6c 65 20 66 6e 61 6d | ....begin.k:=1;.......while.fnam |
03a0 | 65 5b 6b 5d 3c 3e 27 00 27 20 64 6f 20 6b 3a 3d 6b 2b 31 3b 0a 20 20 20 20 20 20 77 72 69 74 65 | e[k]<>'.'.do.k:=k+1;.......write |
03c0 | 6c 6e 28 27 45 78 61 6d 69 6e 69 6e 67 20 66 69 6c 65 20 27 2c 66 6e 61 6d 65 3a 6b 2c 27 3a 27 | ln('Examining.file.',fname:k,':' |
03e0 | 29 3b 0a 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 62 65 67 69 6e 20 77 72 69 74 65 6c 6e 28 27 | );......end.else.begin.writeln(' |
0400 | 46 69 6c 65 20 6e 61 6d 65 20 74 6f 6f 20 6c 6f 6e 67 21 27 29 3b 0a 20 20 20 20 20 20 20 20 67 | File.name.too.long!');.........g |
0420 | 6f 74 6f 20 39 39 39 39 3b 0a 20 20 20 20 20 65 6e 64 3b 0a 69 66 20 6e 6f 74 20 74 65 73 74 72 | oto.9999;......end;.if.not.testr |
0440 | 65 61 64 61 63 63 65 73 73 28 66 6e 61 6d 65 29 20 74 68 65 6e 0a 20 20 62 65 67 69 6e 20 77 72 | eadaccess(fname).then...begin.wr |
0460 | 69 74 65 6c 6e 28 27 49 20 63 6f 75 6c 64 6e 27 27 74 20 72 65 61 64 20 69 74 21 27 29 3b 20 67 | iteln('I.couldn''t.read.it!');.g |
0480 | 6f 74 6f 20 39 39 39 39 3b 0a 20 20 65 6e 64 3b 0a 72 65 73 65 74 28 62 66 69 6c 65 2c 66 6e 61 | oto.9999;...end;.reset(bfile,fna |
04a0 | 6d 65 29 3b 0a 6c 3a 3d 66 6c 65 6e 67 74 68 28 62 66 69 6c 65 29 3b 0a 77 72 69 74 65 6c 6e 28 | me);.l:=flength(bfile);.writeln( |
04c0 | 27 54 68 65 20 66 69 6c 65 20 69 73 20 27 2c 6c 3a 31 2c 27 20 62 79 74 65 73 20 6c 6f 6e 67 27 | 'The.file.is.',l:1,'.bytes.long' |
04e0 | 29 3b 0a 70 72 69 6e 74 73 74 61 74 75 73 28 31 29 3b 0a 69 66 20 6c 3e 30 20 74 68 65 6e 0a 20 | );.printstatus(1);.if.l>0.then.. |
0500 | 20 62 65 67 69 6e 20 70 72 69 6e 74 73 74 61 74 75 73 28 32 29 3b 0a 20 20 69 66 20 6c 3e 31 20 | .begin.printstatus(2);...if.l>1. |
0520 | 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 20 6d 6f 76 65 74 6f 62 79 74 65 28 62 66 69 6c 65 2c | then.....begin.movetobyte(bfile, |
0540 | 6c 2d 32 29 3b 20 70 72 69 6e 74 73 74 61 74 75 73 28 6c 2d 31 29 3b 0a 20 20 20 20 65 6e 64 3b | l-2);.printstatus(l-1);.....end; |
0560 | 0a 20 20 6d 6f 76 65 74 6f 62 79 74 65 28 62 66 69 6c 65 2c 6c 2d 31 29 3b 20 70 72 69 6e 74 73 | ...movetobyte(bfile,l-1);.prints |
0580 | 74 61 74 75 73 28 6c 29 3b 0a 20 20 70 72 69 6e 74 73 74 61 74 75 73 28 6c 2b 31 29 3b 0a 20 20 | tatus(l);...printstatus(l+1);... |
05a0 | 6d 6f 76 65 74 6f 62 79 74 65 28 62 66 69 6c 65 2c 6c 20 64 69 76 20 32 29 3b 20 70 72 69 6e 74 | movetobyte(bfile,l.div.2);.print |
05c0 | 73 74 61 74 75 73 28 6c 20 64 69 76 20 32 20 2b 20 31 29 3b 0a 20 20 6d 6f 76 65 74 6f 62 79 74 | status(l.div.2.+.1);...movetobyt |
05e0 | 65 28 62 66 69 6c 65 2c 31 29 3b 20 70 72 69 6e 74 73 74 61 74 75 73 28 32 29 3b 0a 20 20 65 6e | e(bfile,1);.printstatus(2);...en |
0600 | 64 3b 0a 39 39 39 39 3a 65 6e 64 2e 0a | d;.9999:end.. |