summaryrefslogtreecommitdiff
path: root/support/lsedit/review/goto_line.tpu
blob: 3b410e920f16b3bb1d55d105f234a9f997f13b6d (plain)
ofshex dumpascii
0000 03 00 21 2b 2b 00 48 00 21 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 72 6f 63 65 64 75 ..!++.H.!..The.following.procedu
0020 72 65 20 69 73 20 75 73 65 64 20 77 68 65 6e 20 64 65 66 69 6e 69 6e 67 20 61 20 6b 65 79 20 6f re.is.used.when.defining.a.key.o
0040 72 20 4c 53 45 20 63 6f 6d 6d 61 6e 64 20 74 6f 46 00 21 20 20 70 6f 73 69 74 69 6f 6e 20 74 6f r.LSE.command.toF.!..position.to
0060 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 6c 69 6e 65 2e 20 20 54 68 69 73 20 70 72 6f 63 65 64 .a.particular.line...This.proced
0080 75 72 65 20 70 72 6f 6d 70 74 73 20 66 6f 72 20 74 68 65 20 6c 69 6e 65 15 00 21 20 20 6e 75 6d ure.prompts.for.the.line..!..num
00a0 62 65 72 20 74 6f 20 62 65 20 75 73 65 64 2e 00 03 00 21 2d 2d 00 17 00 50 52 4f 43 45 44 55 52 ber.to.be.used....!--...PROCEDUR
00c0 45 20 6c 73 69 5f 67 6f 74 6f 5f 6c 69 6e 65 00 14 00 4c 4f 43 41 4c 20 6c 69 6e 65 5f 6e 75 6d E.lsi_goto_line...LOCAL.line_num
00e0 5f 73 74 72 3b 20 00 00 2d 00 6c 69 6e 65 5f 6e 75 6d 5f 73 74 72 20 3a 3d 20 52 45 41 44 5f 4c _str;...-.line_num_str.:=.READ_L
0100 49 4e 45 20 28 27 5f 4c 69 6e 65 20 6e 75 6d 62 65 72 3a 20 27 29 3b 00 25 00 6c 73 69 5f 67 6f INE.('_Line.number:.');.%.lsi_go
0120 74 6f 5f 6c 69 6e 65 5f 64 69 73 70 61 74 63 68 20 28 6c 69 6e 65 5f 6e 75 6d 5f 73 74 72 29 00 to_line_dispatch.(line_num_str).
0140 0c 00 45 4e 44 50 52 4f 43 45 44 55 52 45 02 00 21 0c 03 00 21 2b 2b 00 48 00 21 20 20 54 68 69 ..ENDPROCEDURE..!...!++.H.!..Thi
0160 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 74 68 65 20 27 63 61 6c 6c 61 62 6c 65 20 69 6e 74 s.procedure.is.the.'callable.int
0180 65 72 66 61 63 65 27 20 74 6f 20 74 68 65 20 67 6f 74 6f 2d 6c 69 6e 65 20 66 75 6e 63 74 69 6f erface'.to.the.goto-line.functio
01a0 6e 2e 03 00 21 2d 2d 00 2f 00 50 52 4f 43 45 44 55 52 45 20 6c 73 69 5f 67 6f 74 6f 5f 6c 69 6e n...!--./.PROCEDURE.lsi_goto_lin
01c0 65 5f 64 69 73 70 61 74 63 68 20 28 6c 69 6e 65 5f 6e 75 6d 5f 61 72 67 29 00 33 00 4c 4f 43 41 e_dispatch.(line_num_arg).3.LOCA
01e0 4c 20 6c 69 6e 65 5f 6e 75 6d 2c 09 20 20 20 20 20 21 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 L.line_num,......!.integer.value
0200 20 6f 66 20 6c 69 6e 65 20 6e 75 6d 62 65 72 00 34 00 20 20 20 20 20 20 6d 61 78 5f 6c 69 6e 65 .of.line.number.4.......max_line
0220 5f 6e 75 6d 2c 20 20 21 20 6c 61 72 67 65 73 74 20 6c 69 6e 65 20 6e 75 6d 62 65 72 20 69 6e 20 _num,..!.largest.line.number.in.
0240 62 75 66 66 65 72 36 00 20 20 20 20 20 20 74 68 69 73 5f 6c 69 6e 65 2c 20 20 20 20 20 21 20 6c buffer6.......this_line,.....!.l
0260 69 6e 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 3f 00 ine.number.of.the.current.line?.
0280 20 20 20 20 20 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 2c 20 20 21 20 64 69 73 74 61 6e 63 65 20 ......displacement,..!.distance.
02a0 62 65 74 77 65 65 6e 20 74 61 72 67 65 74 20 61 6e 64 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 00 between.target.and.current.line.
02c0 32 00 20 20 20 20 20 20 6c 69 6e 65 73 5f 74 6f 5f 6d 6f 76 65 2c 20 21 20 6e 75 6d 62 65 72 20 2.......lines_to_move,.!.number.
02e0 6f 66 20 6c 69 6e 65 73 20 74 6f 20 74 72 61 76 65 72 73 65 25 00 20 20 20 20 20 20 63 75 72 72 of.lines.to.traverse%.......curr
0300 5f 77 64 77 2c 09 20 20 20 20 20 21 20 63 75 72 72 65 6e 74 20 77 69 6e 64 6f 77 00 25 00 20 20 _wdw,......!.current.window.%...
0320 20 20 20 20 63 75 72 72 5f 62 75 66 2c 09 20 20 20 20 20 21 20 63 75 72 72 65 6e 74 20 62 75 66 ....curr_buf,......!.current.buf
0340 66 65 72 00 3e 00 20 20 20 20 20 20 74 6f 70 5f 6f 66 66 73 65 74 2c 20 20 20 20 21 20 6c 69 6e fer.>.......top_offset,....!.lin
0360 65 20 6f 66 66 73 65 74 20 66 6f 72 20 73 63 72 6f 6c 6c 69 6e 67 20 74 6f 70 20 6f 66 20 77 69 e.offset.for.scrolling.top.of.wi
0380 6e 64 6f 77 41 00 20 20 20 20 20 20 62 6f 74 74 6f 6d 5f 6f 66 66 73 65 74 2c 20 21 20 6c 69 6e ndowA.......bottom_offset,.!.lin
03a0 65 20 6f 66 66 73 65 74 20 66 6f 72 20 73 63 72 6f 6c 6c 69 6e 67 20 62 6f 74 74 6f 6d 20 6f 66 e.offset.for.scrolling.bottom.of
03c0 20 77 69 6e 64 6f 77 00 37 00 20 20 20 20 20 20 73 63 72 6f 6c 6c 5f 61 6d 74 3b 20 20 20 20 21 .window.7.......scroll_amt;....!
03e0 20 6e 75 6d 62 65 72 20 6f 66 20 6c 69 6e 65 73 20 74 6f 20 73 63 72 6f 6c 6c 20 77 69 6e 64 6f .number.of.lines.to.scroll.windo
0400 77 00 01 00 20 00 1b 00 63 75 72 72 5f 62 75 66 20 3a 3d 20 43 55 52 52 45 4e 54 5f 42 55 46 46 w.......curr_buf.:=.CURRENT_BUFF
0420 45 52 3b 00 1b 00 63 75 72 72 5f 77 64 77 20 3a 3d 20 43 55 52 52 45 4e 54 5f 57 49 4e 44 4f 57 ER;...curr_wdw.:=.CURRENT_WINDOW
0440 3b 00 03 00 21 2b 2b 00 32 00 21 20 20 43 6f 6e 76 65 72 74 20 74 68 65 20 69 6e 70 75 74 20 61 ;...!++.2.!..Convert.the.input.a
0460 72 67 75 6d 65 6e 74 20 74 6f 20 61 6e 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 2e 03 00 21 2d rgument.to.an.integer.value...!-
0480 2d 00 2b 00 49 46 20 47 45 54 5f 49 4e 46 4f 20 28 6c 69 6e 65 5f 6e 75 6d 5f 61 72 67 2c 20 27 -.+.IF.GET_INFO.(line_num_arg,.'
04a0 74 79 70 65 27 29 20 3d 20 53 54 52 49 4e 47 00 04 00 54 48 45 4e 21 00 20 20 20 6c 69 6e 65 5f type').=.STRING...THEN!....line_
04c0 6e 75 6d 20 3a 3d 20 49 4e 54 20 28 6c 69 6e 65 5f 6e 75 6d 5f 61 72 67 29 00 04 00 45 4c 53 45 num.:=.INT.(line_num_arg)...ELSE
04e0 1b 00 20 20 20 6c 69 6e 65 5f 6e 75 6d 20 3a 3d 20 6c 69 6e 65 5f 6e 75 6d 5f 61 72 67 00 06 00 .....line_num.:=.line_num_arg...
0500 45 4e 44 49 46 3b 03 00 21 2b 2b 00 19 00 21 20 20 45 72 72 6f 72 20 63 68 65 63 6b 20 74 68 65 ENDIF;..!++...!..Error.check.the
0520 20 69 6e 70 75 74 2e 00 03 00 21 2d 2d 00 34 00 6d 61 78 5f 6c 69 6e 65 5f 6e 75 6d 20 3a 3d 20 .input....!--.4.max_line_num.:=.
0540 47 45 54 5f 49 4e 46 4f 20 28 63 75 72 72 5f 62 75 66 2c 20 27 72 65 63 6f 72 64 5f 63 6f 75 6e GET_INFO.(curr_buf,.'record_coun
0560 74 27 29 3b 2f 00 49 46 20 28 6c 69 6e 65 5f 6e 75 6d 20 3c 3d 20 30 29 20 4f 52 20 28 6c 69 6e t');/.IF.(line_num.<=.0).OR.(lin
0580 65 5f 6e 75 6d 20 3e 20 6d 61 78 5f 6c 69 6e 65 5f 6e 75 6d 29 00 04 00 54 48 45 4e 06 00 20 20 e_num.>.max_line_num)...THEN....
05a0 20 21 2b 2b 2a 00 20 20 20 21 20 20 52 65 71 75 65 73 74 65 64 20 6c 69 6e 65 20 69 73 20 6e 6f .!++*....!..Requested.line.is.no
05c0 74 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 2e 00 20 20 20 21 20 20 49 66 20 69 74 20 77 61 t.in.the.buffer......!..If.it.wa
05e0 73 20 74 6f 6f 20 6c 6f 77 2c 20 67 6f 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 20 74 6f 70 2e s.too.low,.go.to.the.buffer.top.
0600 2f 00 20 20 20 21 20 20 49 66 20 69 74 20 77 61 73 20 74 6f 6f 20 68 69 67 68 2c 20 67 6f 20 74 /....!..If.it.was.too.high,.go.t
0620 6f 20 74 68 65 20 62 75 66 66 65 72 20 65 6e 64 2e 00 06 00 20 20 20 21 2d 2d 3d 00 20 20 20 4d o.the.buffer.end.......!--=....M
0640 45 53 53 41 47 45 20 28 46 41 4f 20 28 27 4c 69 6e 65 20 6e 75 6d 62 65 72 20 21 55 4c 20 6e 6f ESSAGE.(FAO.('Line.number.!UL.no
0660 74 20 69 6e 20 62 75 66 66 65 72 27 2c 20 6c 69 6e 65 5f 6e 75 6d 29 29 3b 00 13 00 20 20 20 49 t.in.buffer',.line_num));......I
0680 46 20 6c 69 6e 65 5f 6e 75 6d 20 3c 3d 20 30 00 07 00 20 20 20 54 48 45 4e 00 28 00 20 20 20 20 F.line_num.<=.0......THEN.(.....
06a0 20 20 50 4f 53 49 54 49 4f 4e 20 28 42 45 47 49 4e 4e 49 4e 47 5f 4f 46 20 28 63 75 72 72 5f 62 ..POSITION.(BEGINNING_OF.(curr_b
06c0 75 66 29 29 07 00 20 20 20 45 4c 53 45 00 22 00 20 20 20 20 20 20 50 4f 53 49 54 49 4f 4e 20 28 uf)).....ELSE.".......POSITION.(
06e0 45 4e 44 5f 4f 46 20 28 63 75 72 72 5f 62 75 66 29 29 09 00 20 20 20 45 4e 44 49 46 3b 00 08 00 END_OF.(curr_buf)).....ENDIF;...
0700 20 20 20 41 42 4f 52 54 06 00 45 4e 44 49 46 3b 03 00 21 2b 2b 00 1b 00 21 20 20 44 65 74 65 72 ...ABORT..ENDIF;..!++...!..Deter
0720 6d 69 6e 65 20 68 6f 77 20 66 61 72 20 74 6f 20 67 6f 2e 00 03 00 21 2d 2d 00 27 00 74 68 69 73 mine.how.far.to.go....!--.'.this
0740 5f 6c 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 _line.:=.lsi_determine_line_numb
0760 65 72 3b 00 25 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 20 3a 3d 20 6c 69 6e 65 5f 6e 75 6d 20 2d er;.%.displacement.:=.line_num.-
0780 20 74 68 69 73 5f 6c 69 6e 65 3b 00 34 00 21 4d 45 53 53 41 47 45 20 28 46 41 4f 20 28 27 44 69 .this_line;.4.!MESSAGE.(FAO.('Di
07a0 73 70 6c 61 63 65 6d 65 6e 74 20 3d 20 21 53 4c 27 2c 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 29 splacement.=.!SL',.displacement)
07c0 29 3b 03 00 21 2b 2b 00 39 00 21 20 20 54 75 72 6e 20 6f 66 66 20 73 63 72 65 65 6e 20 75 70 64 );..!++.9.!..Turn.off.screen.upd
07e0 61 74 69 6e 67 20 28 74 6f 20 61 76 6f 69 64 20 6c 6f 74 73 20 6f 66 20 73 63 72 6f 6c 6c 69 6e ating.(to.avoid.lots.of.scrollin
0800 67 29 2e 00 03 00 21 2d 2d 00 19 00 53 45 54 20 28 53 43 52 45 45 4e 5f 55 50 44 41 54 45 2c 20 g)....!--...SET.(SCREEN_UPDATE,.
0820 4f 46 46 29 3b 00 30 00 74 6f 70 5f 6f 66 66 73 65 74 20 3a 3d 20 47 45 54 5f 49 4e 46 4f 20 28 OFF);.0.top_offset.:=.GET_INFO.(
0840 63 75 72 72 5f 77 64 77 2c 20 27 73 63 72 6f 6c 6c 5f 74 6f 70 27 29 3b 36 00 62 6f 74 74 6f 6d curr_wdw,.'scroll_top');6.bottom
0860 5f 6f 66 66 73 65 74 20 3a 3d 20 47 45 54 5f 49 4e 46 4f 20 28 63 75 72 72 5f 77 64 77 2c 20 27 _offset.:=.GET_INFO.(curr_wdw,.'
0880 73 63 72 6f 6c 6c 5f 62 6f 74 74 6f 6d 27 29 3b 33 00 73 63 72 6f 6c 6c 5f 61 6d 74 20 3a 3d 20 scroll_bottom');3.scroll_amt.:=.
08a0 47 45 54 5f 49 4e 46 4f 20 28 63 75 72 72 5f 77 64 77 2c 20 27 73 63 72 6f 6c 6c 5f 61 6d 6f 75 GET_INFO.(curr_wdw,.'scroll_amou
08c0 6e 74 27 29 3b 00 28 00 53 45 54 20 28 53 43 52 4f 4c 4c 49 4e 47 2c 20 63 75 72 72 5f 77 64 77 nt');.(.SET.(SCROLLING,.curr_wdw
08e0 2c 20 4f 46 46 2c 20 30 2c 20 30 2c 20 30 29 3b 13 00 49 46 20 64 69 73 70 6c 61 63 65 6d 65 6e ,.OFF,.0,.0,.0);..IF.displacemen
0900 74 20 3c 20 30 00 04 00 54 48 45 4e 06 00 20 20 20 21 2b 2b 38 00 20 20 20 21 20 20 54 61 72 67 t.<.0...THEN.....!++8....!..Targ
0920 65 74 20 69 73 20 62 65 74 77 65 65 6e 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 20 61 et.is.between.current.position.a
0940 6e 64 20 62 75 66 66 65 72 20 74 6f 70 2e 06 00 20 20 20 21 2d 2d 20 00 20 20 20 49 46 20 6c 69 nd.buffer.top......!--.....IF.li
0960 6e 65 5f 6e 75 6d 20 3c 20 2d 31 2a 64 69 73 70 6c 61 63 65 6d 65 6e 74 07 00 20 20 20 54 48 45 ne_num.<.-1*displacement.....THE
0980 4e 00 09 00 20 20 20 20 20 20 21 2b 2b 00 41 00 20 20 20 20 20 20 21 20 20 54 61 72 67 65 74 20 N.........!++.A.......!..Target.
09a0 69 73 20 63 6c 6f 73 65 72 20 74 6f 20 62 75 66 66 65 72 20 74 6f 70 20 74 68 61 6e 20 74 6f 20 is.closer.to.buffer.top.than.to.
09c0 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 2e 00 2a 00 20 20 20 20 20 20 21 09 20 53 74 61 current.position..*.......!..Sta
09e0 72 74 20 66 72 6f 6d 20 74 68 65 20 74 6f 70 20 61 6e 64 20 77 6f 72 6b 20 64 6f 77 6e 2e 09 00 rt.from.the.top.and.work.down...
0a00 20 20 20 20 20 20 21 2d 2d 00 29 00 20 20 20 20 20 20 50 4f 53 49 54 49 4f 4e 20 28 42 45 47 49 ......!--.).......POSITION.(BEGI
0a20 4e 4e 49 4e 47 5f 4f 46 20 28 63 75 72 72 5f 62 75 66 29 29 3b 00 23 00 20 20 20 20 20 20 6c 69 NNING_OF.(curr_buf));.#.......li
0a40 6e 65 73 5f 74 6f 5f 6d 6f 76 65 20 3a 3d 20 6c 69 6e 65 5f 6e 75 6d 20 2d 20 31 00 07 00 20 20 nes_to_move.:=.line_num.-.1.....
0a60 20 45 4c 53 45 00 09 00 20 20 20 20 20 20 21 2b 2b 00 3e 00 20 20 20 20 20 20 21 20 20 54 61 72 .ELSE.........!++.>.......!..Tar
0a80 67 65 74 20 69 73 20 63 6c 6f 73 65 72 20 74 6f 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f get.is.closer.to.current.positio
0aa0 6e 20 74 68 61 6e 20 62 75 66 66 65 72 20 74 6f 70 2e 31 00 20 20 20 20 20 20 21 09 20 53 74 61 n.than.buffer.top.1.......!..Sta
0ac0 72 74 20 66 72 6f 6d 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 20 61 6e 64 20 77 6f 72 rt.from.current.position.and.wor
0ae0 6b 20 75 70 2e 00 09 00 20 20 20 20 20 20 21 2d 2d 00 23 00 20 20 20 20 20 20 6c 69 6e 65 73 5f k.up..........!--.#.......lines_
0b00 74 6f 5f 6d 6f 76 65 20 3a 3d 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 00 08 00 20 20 20 45 4e 44 to_move.:=.displacement......END
0b20 49 46 04 00 45 4c 53 45 06 00 20 20 20 21 2b 2b 38 00 20 20 20 21 20 20 54 61 72 67 65 74 20 69 IF..ELSE.....!++8....!..Target.i
0b40 73 20 62 65 74 77 65 65 6e 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 20 61 6e 64 20 62 s.between.current.position.and.b
0b60 75 66 66 65 72 20 65 6e 64 2e 06 00 20 20 20 21 2d 2d 2c 00 20 20 20 49 46 20 64 69 73 70 6c 61 uffer.end......!--,....IF.displa
0b80 63 65 6d 65 6e 74 20 3c 20 6d 61 78 5f 6c 69 6e 65 5f 6e 75 6d 20 2d 20 6c 69 6e 65 5f 6e 75 6d cement.<.max_line_num.-.line_num
0ba0 07 00 20 20 20 54 48 45 4e 00 09 00 20 20 20 20 20 20 21 2b 2b 00 3e 00 20 20 20 20 20 20 21 20 .....THEN.........!++.>.......!.
0bc0 20 54 61 72 67 65 74 20 69 73 20 63 6c 6f 73 65 72 20 74 6f 20 63 75 72 72 65 6e 74 20 70 6f 73 .Target.is.closer.to.current.pos
0be0 69 74 69 6f 6e 20 74 68 61 6e 20 62 75 66 66 65 72 20 65 6e 64 2e 33 00 20 20 20 20 20 20 21 09 ition.than.buffer.end.3.......!.
0c00 20 53 74 61 72 74 20 66 72 6f 6d 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 20 61 6e 64 .Start.from.current.position.and
0c20 20 77 6f 72 6b 20 64 6f 77 6e 2e 00 09 00 20 20 20 20 20 20 21 2d 2d 00 23 00 20 20 20 20 20 20 .work.down..........!--.#.......
0c40 6c 69 6e 65 73 5f 74 6f 5f 6d 6f 76 65 20 3a 3d 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 00 07 00 lines_to_move.:=.displacement...
0c60 20 20 20 45 4c 53 45 00 09 00 20 20 20 20 20 20 21 2b 2b 00 3e 00 20 20 20 20 20 20 21 20 20 54 ...ELSE.........!++.>.......!..T
0c80 61 72 67 65 74 20 69 73 20 63 6c 6f 73 65 72 20 74 6f 20 62 75 66 66 65 72 20 65 6e 64 20 74 68 arget.is.closer.to.buffer.end.th
0ca0 61 6e 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 2e 2b 00 20 20 20 20 20 20 21 09 20 53 an.current.position.+.......!..S
0cc0 74 61 72 74 20 66 72 6f 6d 20 62 75 66 66 65 72 20 65 6e 64 20 61 6e 64 20 77 6f 72 6b 20 75 70 tart.from.buffer.end.and.work.up
0ce0 2e 00 09 00 20 20 20 20 20 20 21 2d 2d 00 23 00 20 20 20 20 20 20 50 4f 53 49 54 49 4f 4e 20 28 ..........!--.#.......POSITION.(
0d00 45 4e 44 5f 4f 46 20 28 63 75 72 72 5f 62 75 66 29 29 3b 00 09 00 20 20 20 20 20 20 21 2b 2b 00 END_OF.(curr_buf));.........!++.
0d20 41 00 20 20 20 20 20 20 21 20 20 43 6f 6d 70 75 74 65 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 A.......!..Compute.the.number.of
0d40 20 6c 69 6e 65 73 20 74 6f 20 6d 6f 76 65 20 66 72 6f 6d 20 74 68 65 20 62 75 66 66 65 72 20 65 .lines.to.move.from.the.buffer.e
0d60 6e 64 2e 00 42 00 20 20 20 20 20 20 21 09 20 54 68 69 73 20 6e 75 6d 62 65 72 20 69 73 20 6e 65 nd..B.......!..This.number.is.ne
0d80 67 61 74 69 76 65 2c 20 62 65 63 61 75 73 65 20 74 68 65 20 63 75 72 73 6f 72 20 6d 75 73 74 20 gative,.because.the.cursor.must.
0da0 6d 6f 76 65 20 75 70 2c 4a 00 20 20 20 20 20 20 21 09 20 61 6e 64 20 69 73 20 74 68 65 20 64 69 move.up,J.......!..and.is.the.di
0dc0 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 20 74 61 72 67 65 74 20 6c 69 6e 65 fference.between.the.target.line
0de0 20 6e 75 6d 62 65 72 20 61 6e 64 20 74 68 65 20 6c 61 73 74 4f 00 20 20 20 20 20 20 21 09 20 6c .number.and.the.lastO.......!..l
0e00 69 6e 65 27 73 20 6e 75 6d 62 65 72 2c 20 70 6c 75 73 20 6f 6e 65 20 62 65 63 61 75 73 65 20 74 ine's.number,.plus.one.because.t
0e20 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 69 73 20 6f 6e 65 20 6c 69 6e 65 he.end.of.the.buffer.is.one.line
0e40 20 70 61 73 74 00 17 00 20 20 20 20 20 20 21 09 20 74 68 65 20 6c 61 73 74 20 6c 69 6e 65 2e 00 .past.........!..the.last.line..
0e60 09 00 20 20 20 20 20 20 21 2d 2d 00 35 00 20 20 20 20 20 20 6c 69 6e 65 73 5f 74 6f 5f 6d 6f 76 ........!--.5.......lines_to_mov
0e80 65 20 3a 3d 20 2d 28 6d 61 78 5f 6c 69 6e 65 5f 6e 75 6d 20 2d 20 6c 69 6e 65 5f 6e 75 6d 20 2b e.:=.-(max_line_num.-.line_num.+
0ea0 20 31 29 00 08 00 20 20 20 45 4e 44 49 46 06 00 45 4e 44 49 46 3b 36 00 21 4d 45 53 53 41 47 45 .1)......ENDIF..ENDIF;6.!MESSAGE
0ec0 20 28 46 41 4f 20 28 27 4c 69 6e 65 73 20 74 6f 20 6d 6f 76 65 20 3d 20 21 53 4c 27 2c 20 6c 69 .(FAO.('Lines.to.move.=.!SL',.li
0ee0 6e 65 73 5f 74 6f 5f 6d 6f 76 65 29 29 3b 03 00 21 2b 2b 00 1b 00 21 20 20 4d 6f 76 65 20 74 6f nes_to_move));..!++...!..Move.to
0f00 20 74 68 65 20 74 61 72 67 65 74 20 6c 69 6e 65 2e 00 03 00 21 2d 2d 00 1e 00 4d 4f 56 45 5f 56 .the.target.line....!--...MOVE_V
0f20 45 52 54 49 43 41 4c 20 28 6c 69 6e 65 73 5f 74 6f 5f 6d 6f 76 65 29 3b 03 00 21 2b 2b 00 1f 00 ERTICAL.(lines_to_move);..!++...
0f40 21 20 20 52 65 73 74 6f 72 65 20 74 68 65 20 73 63 72 65 65 6e 20 75 70 64 61 74 69 6e 67 2e 00 !..Restore.the.screen.updating..
0f60 03 00 21 2d 2d 00 18 00 53 45 54 20 28 53 43 52 45 45 4e 5f 55 50 44 41 54 45 2c 20 4f 4e 29 3b ..!--...SET.(SCREEN_UPDATE,.ON);
0f80 45 00 53 45 54 20 28 53 43 52 4f 4c 4c 49 4e 47 2c 20 63 75 72 72 5f 77 64 77 2c 20 4f 4e 2c 20 E.SET.(SCROLLING,.curr_wdw,.ON,.
0fa0 74 6f 70 5f 6f 66 66 73 65 74 2c 20 62 6f 74 74 6f 6d 5f 6f 66 66 73 65 74 2c 20 73 63 72 6f 6c top_offset,.bottom_offset,.scrol
0fc0 6c 5f 61 6d 74 29 3b 00 1c 00 45 4e 44 50 52 4f 43 45 44 55 52 45 20 21 20 6c 73 69 5f 67 6f 74 l_amt);...ENDPROCEDURE.!.lsi_got
0fe0 6f 5f 6c 69 6e 65 o_line