ofs | hex dump | ascii |
---|
0000 | 02 00 21 2b 42 00 21 09 57 48 41 54 5f 4c 49 4e 45 2e 54 50 55 20 2d 20 44 69 73 70 6c 61 79 73 | ..!+B.!.WHAT_LINE.TPU.-.Displays |
0020 | 20 61 20 6d 65 73 73 61 67 65 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 | .a.message.with.the.current.line |
0040 | 20 6e 75 6d 62 65 72 2c 41 00 21 09 09 20 20 20 20 20 20 20 20 74 6f 74 61 6c 20 6e 75 6d 62 65 | .number,A.!..........total.numbe |
0060 | 72 20 6f 66 20 6c 69 6e 65 73 20 69 6e 20 74 68 65 20 66 69 6c 65 2c 20 61 6e 64 20 74 68 65 20 | r.of.lines.in.the.file,.and.the. |
0080 | 70 65 72 63 65 6e 74 61 67 65 2e 00 02 00 21 2d 01 00 21 00 00 00 2d 00 70 72 6f 63 65 64 75 72 | percentage....!-..!...-.procedur |
00a0 | 65 20 6c 73 69 5f 77 68 61 74 5f 6c 69 6e 65 09 09 21 20 57 68 61 74 20 6c 69 6e 65 20 61 6d 20 | e.lsi_what_line..!.What.line.am. |
00c0 | 49 20 6f 6e 3f 00 00 00 31 00 6c 6f 63 61 6c 20 74 68 69 73 5f 70 6f 73 69 74 69 6f 6e 2c 09 09 | I.on?...1.local.this_position,.. |
00e0 | 21 20 6d 61 72 6b 65 72 20 2d 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 00 3e 00 20 20 | !.marker.-.current.position.>... |
0100 | 20 20 20 20 73 74 61 72 74 5f 6f 66 5f 62 75 66 66 65 72 2c 09 09 21 20 6d 61 72 6b 65 72 20 2d | ....start_of_buffer,..!.marker.- |
0120 | 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 43 00 20 20 | .beginning.of.current.bufferC... |
0140 | 20 20 20 20 74 68 69 73 5f 6c 69 6e 65 5f 70 6f 73 69 74 69 6f 6e 2c 09 21 20 6d 61 72 6b 65 72 | ....this_line_position,.!.marker |
0160 | 20 2d 20 70 6f 73 69 74 69 6f 6e 20 61 74 20 73 74 61 72 74 20 6f 66 20 74 68 69 73 5f 6c 69 6e | .-.position.at.start.of.this_lin |
0180 | 65 00 35 00 20 20 20 20 20 20 74 6f 74 61 6c 5f 6c 69 6e 65 73 2c 09 09 21 20 69 6e 74 65 67 65 | e.5.......total_lines,..!.intege |
01a0 | 72 20 2d 20 74 6f 74 61 6c 20 6c 69 6e 65 73 20 69 6e 20 62 75 66 66 65 72 00 3a 00 20 20 20 20 | r.-.total.lines.in.buffer.:..... |
01c0 | 20 20 74 68 69 73 5f 6c 69 6e 65 2c 09 09 21 20 69 6e 74 65 67 65 72 20 2d 20 6c 69 6e 65 20 6e | ..this_line,..!.integer.-.line.n |
01e0 | 75 6d 62 65 72 20 6f 66 20 63 75 72 72 65 6e 74 20 67 75 65 73 73 3a 00 20 20 20 20 20 20 70 65 | umber.of.current.guess:.......pe |
0200 | 72 63 65 6e 74 3b 09 09 09 21 20 69 6e 74 65 67 65 72 20 2d 20 70 65 72 63 65 6e 74 20 6f 66 20 | rcent;...!.integer.-.percent.of. |
0220 | 77 61 79 20 74 68 72 6f 75 67 68 20 62 75 66 66 65 72 00 00 10 00 21 20 49 6e 69 74 69 61 6c 69 | way.through.buffer....!.Initiali |
0240 | 7a 61 74 69 6f 6e 00 00 39 00 74 6f 74 61 6c 5f 6c 69 6e 65 73 20 3a 3d 20 67 65 74 5f 69 6e 66 | zation..9.total_lines.:=.get_inf |
0260 | 6f 20 28 63 75 72 72 65 6e 74 5f 62 75 66 66 65 72 2c 20 22 72 65 63 6f 72 64 5f 63 6f 75 6e 74 | o.(current_buffer,."record_count |
0280 | 22 29 3b 00 1d 00 74 68 69 73 5f 70 6f 73 69 74 69 6f 6e 20 3a 3d 20 6d 61 72 6b 20 28 6e 6f 6e | ");...this_position.:=.mark.(non |
02a0 | 65 29 3b 00 31 00 73 74 61 72 74 5f 6f 66 5f 62 75 66 66 65 72 20 3a 3d 20 62 65 67 69 6e 6e 69 | e);.1.start_of_buffer.:=.beginni |
02c0 | 6e 67 5f 6f 66 20 28 63 75 72 72 65 6e 74 5f 62 75 66 66 65 72 29 3b 00 27 00 74 68 69 73 5f 6c | ng_of.(current_buffer);.'.this_l |
02e0 | 69 6e 65 20 3a 3d 20 6c 73 69 5f 64 65 74 65 72 6d 69 6e 65 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 | ine.:=.lsi_determine_line_number |
0300 | 3b 00 00 00 3e 00 21 20 54 50 55 20 77 69 6c 6c 20 74 72 75 6e 63 61 74 65 20 6e 75 6d 62 65 72 | ;...>.!.TPU.will.truncate.number |
0320 | 73 20 6f 6e 20 64 69 76 69 73 69 6f 6e 3b 20 6d 61 6b 65 20 69 74 20 72 6f 75 6e 64 20 69 6e 73 | s.on.division;.make.it.round.ins |
0340 | 74 65 61 64 00 00 35 00 70 65 72 63 65 6e 74 20 3a 3d 20 28 28 28 74 68 69 73 5f 6c 69 6e 65 20 | tead..5.percent.:=.(((this_line. |
0360 | 2a 20 31 30 30 30 29 20 2f 20 74 6f 74 61 6c 5f 6c 69 6e 65 73 29 2b 35 29 2f 31 30 3b 00 00 00 | *.1000)./.total_lines)+5)/10;... |
0380 | 12 00 21 20 44 69 73 70 6c 61 79 20 6d 65 73 73 61 67 65 20 00 00 36 00 6d 65 73 73 61 67 65 20 | ..!.Display.message...6.message. |
03a0 | 28 66 61 6f 20 28 22 59 6f 75 20 61 72 65 20 6f 6e 20 6c 69 6e 65 20 21 53 4c 20 6f 75 74 20 6f | (fao.("You.are.on.line.!SL.out.o |
03c0 | 66 20 21 53 4c 20 28 21 53 4c 25 29 22 2c 29 00 09 20 20 20 20 20 20 74 68 69 73 5f 6c 69 6e 65 | f.!SL.(!SL%)",)........this_line |
03e0 | 2c 20 74 6f 74 61 6c 5f 6c 69 6e 65 73 2c 20 70 65 72 63 65 6e 74 29 29 3b 00 00 00 0d 00 65 6e | ,.total_lines,.percent));.....en |
0400 | 64 70 72 6f 63 65 64 75 72 65 3b 00 01 00 0c 00 23 00 50 52 4f 43 45 44 55 52 45 20 6c 73 69 5f | dprocedure;.....#.PROCEDURE.lsi_ |
0420 | 64 65 74 65 72 6d 69 6e 65 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 00 31 00 4c 4f 43 41 4c 20 74 68 | determine_line_number.1.LOCAL.th |
0440 | 69 73 5f 70 6f 73 69 74 69 6f 6e 2c 09 09 21 20 6d 61 72 6b 65 72 20 2d 20 63 75 72 72 65 6e 74 | is_position,..!.marker.-.current |
0460 | 20 70 6f 73 69 74 69 6f 6e 00 3e 00 20 20 20 20 20 20 73 74 61 72 74 5f 6f 66 5f 62 75 66 66 65 | .position.>.......start_of_buffe |
0480 | 72 2c 09 09 21 20 6d 61 72 6b 65 72 20 2d 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 63 75 72 72 | r,..!.marker.-.beginning.of.curr |
04a0 | 65 6e 74 20 62 75 66 66 65 72 43 00 20 20 20 20 20 20 74 68 69 73 5f 6c 69 6e 65 5f 70 6f 73 69 | ent.bufferC.......this_line_posi |
04c0 | 74 69 6f 6e 2c 09 21 20 6d 61 72 6b 65 72 20 2d 20 70 6f 73 69 74 69 6f 6e 20 61 74 20 73 74 61 | tion,.!.marker.-.position.at.sta |
04e0 | 72 74 20 6f 66 20 74 68 69 73 5f 6c 69 6e 65 00 35 00 20 20 20 20 20 20 74 6f 74 61 6c 5f 6c 69 | rt.of.this_line.5.......total_li |
0500 | 6e 65 73 2c 09 09 21 20 69 6e 74 65 67 65 72 20 2d 20 74 6f 74 61 6c 20 6c 69 6e 65 73 20 69 6e | nes,..!.integer.-.total.lines.in |
0520 | 20 62 75 66 66 65 72 00 3a 00 20 20 20 20 20 20 74 68 69 73 5f 6c 69 6e 65 2c 09 09 21 20 69 6e | .buffer.:.......this_line,..!.in |
0540 | 74 65 67 65 72 20 2d 20 6c 69 6e 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 75 72 72 65 6e 74 20 67 | teger.-.line.number.of.current.g |
0560 | 75 65 73 73 3f 00 20 20 20 20 20 20 68 69 67 68 5f 6c 69 6e 65 2c 09 09 21 20 69 6e 74 65 67 65 | uess?.......high_line,..!.intege |
0580 | 72 20 2d 20 68 69 67 68 20 6c 69 6e 65 20 6c 69 6d 69 74 20 66 6f 72 20 62 69 6e 61 72 79 20 73 | r.-.high.line.limit.for.binary.s |
05a0 | 65 61 72 63 68 00 3e 00 20 20 20 20 20 20 6c 6f 77 5f 6c 69 6e 65 3b 09 09 09 21 20 69 6e 74 65 | earch.>.......low_line;...!.inte |
05c0 | 67 65 72 20 2d 20 6c 6f 77 20 6c 69 6e 65 20 6c 69 6d 69 74 20 66 6f 72 20 62 69 6e 61 72 79 20 | ger.-.low.line.limit.for.binary. |
05e0 | 73 65 61 72 63 68 00 00 10 00 21 20 49 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 00 00 3d 00 74 6f | search....!.Initialization..=.to |
0600 | 74 61 6c 5f 6c 69 6e 65 73 20 3a 3d 20 67 65 74 5f 69 6e 66 6f 20 28 63 75 72 72 65 6e 74 5f 62 | tal_lines.:=.get_info.(current_b |
0620 | 75 66 66 65 72 2c 20 22 72 65 63 6f 72 64 5f 63 6f 75 6e 74 22 29 20 2b 20 31 3b 00 1d 00 74 68 | uffer,."record_count").+.1;...th |
0640 | 69 73 5f 70 6f 73 69 74 69 6f 6e 20 3a 3d 20 6d 61 72 6b 20 28 6e 6f 6e 65 29 3b 00 2f 00 69 66 | is_position.:=.mark.(none);./.if |
0660 | 20 74 68 69 73 5f 70 6f 73 69 74 69 6f 6e 20 3d 20 65 6e 64 5f 6f 66 20 28 63 75 72 72 65 6e 74 | .this_position.=.end_of.(current |
0680 | 5f 62 75 66 66 65 72 29 20 74 68 65 6e 00 19 00 20 20 20 72 65 74 75 72 6e 20 74 6f 74 61 6c 5f | _buffer).then......return.total_ |
06a0 | 6c 69 6e 65 73 20 2d 20 31 00 04 00 65 6c 73 65 11 00 20 20 20 20 6c 6f 77 5f 6c 69 6e 65 20 3a | lines.-.1...else......low_line.: |
06c0 | 3d 20 31 00 06 00 65 6e 64 69 66 3b 31 00 73 74 61 72 74 5f 6f 66 5f 62 75 66 66 65 72 20 3a 3d | =.1...endif;1.start_of_buffer.:= |
06e0 | 20 62 65 67 69 6e 6e 69 6e 67 5f 6f 66 20 28 63 75 72 72 65 6e 74 5f 62 75 66 66 65 72 29 3b 00 | .beginning_of.(current_buffer);. |
0700 | 19 00 68 69 67 68 5f 6c 69 6e 65 20 3a 3d 20 74 6f 74 61 6c 5f 6c 69 6e 65 73 3b 00 00 00 0f 00 | ..high_line.:=.total_lines;..... |
0720 | 21 20 42 69 6e 61 72 79 20 73 65 61 72 63 68 00 00 00 04 00 6c 6f 6f 70 25 00 20 20 20 20 65 78 | !.Binary.search.....loop%.....ex |
0740 | 69 74 69 66 20 68 69 67 68 5f 6c 69 6e 65 20 2d 20 6c 6f 77 5f 6c 69 6e 65 20 3c 3d 20 31 3b 00 | itif.high_line.-.low_line.<=.1;. |
0760 | 39 00 20 20 20 20 74 68 69 73 5f 6c 69 6e 65 20 3a 3d 20 6c 6f 77 5f 6c 69 6e 65 20 2b 20 28 28 | 9.....this_line.:=.low_line.+.(( |
0780 | 68 69 67 68 5f 6c 69 6e 65 20 2d 20 6c 6f 77 5f 6c 69 6e 65 29 20 2f 20 32 29 3b 00 1f 00 20 20 | high_line.-.low_line)./.2);..... |
07a0 | 20 20 70 6f 73 69 74 69 6f 6e 20 28 73 74 61 72 74 5f 6f 66 5f 62 75 66 66 65 72 29 3b 00 22 00 | ..position.(start_of_buffer);.". |
07c0 | 20 20 20 20 6d 6f 76 65 5f 76 65 72 74 69 63 61 6c 20 28 74 68 69 73 5f 6c 69 6e 65 20 2d 20 31 | ....move_vertical.(this_line.-.1 |
07e0 | 29 3b 27 00 20 20 20 20 69 66 20 6d 61 72 6b 20 28 6e 6f 6e 65 29 20 3e 20 74 68 69 73 5f 70 6f | );'.....if.mark.(none).>.this_po |
0800 | 73 69 74 69 6f 6e 20 74 68 65 6e 00 18 00 09 68 69 67 68 5f 6c 69 6e 65 20 3a 3d 20 74 68 69 73 | sition.then....high_line.:=.this |
0820 | 5f 6c 69 6e 65 3b 08 00 20 20 20 20 65 6c 73 65 1e 00 20 20 20 20 20 20 20 20 6c 6f 77 5f 6c 69 | _line;......else..........low_li |
0840 | 6e 65 20 3a 3d 20 74 68 69 73 5f 6c 69 6e 65 3b 24 00 09 69 66 20 6d 61 72 6b 20 28 6e 6f 6e 65 | ne.:=.this_line;$..if.mark.(none |
0860 | 29 20 3d 20 74 68 69 73 5f 70 6f 73 69 74 69 6f 6e 20 74 68 65 6e 1c 00 09 20 20 20 20 68 69 67 | ).=.this_position.then.......hig |
0880 | 68 5f 6c 69 6e 65 20 3a 3d 20 74 68 69 73 5f 6c 69 6e 65 3b 0e 00 20 20 20 20 20 20 20 20 65 6e | h_line.:=.this_line;..........en |
08a0 | 64 69 66 3b 0a 00 20 20 20 20 65 6e 64 69 66 3b 08 00 65 6e 64 6c 6f 6f 70 3b 19 00 70 6f 73 69 | dif;......endif;..endloop;..posi |
08c0 | 74 69 6f 6e 20 28 74 68 69 73 5f 70 6f 73 69 74 69 6f 6e 29 3b 00 0f 00 72 65 74 75 72 6e 20 6c | tion.(this_position);...return.l |
08e0 | 6f 77 5f 6c 69 6e 65 00 28 00 45 4e 44 50 52 4f 43 45 44 55 52 45 20 21 20 6c 73 69 5f 64 65 74 | ow_line.(.ENDPROCEDURE.!.lsi_det |
0900 | 65 72 6d 69 6e 65 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 | ermine_line_number |