home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols200 / vol270 / sed1.inc < prev    next >
Text File  |  1986-05-22  |  2KB  |  100 lines

  1. procedure setnumbuf;
  2. begin
  3.   while (numbuf>0) and (buffer[numbuf]=' ') do numbuf:=numbuf-1
  4. end;
  5.  
  6. procedure pushtop;
  7. begin
  8.   setnumbuf;
  9.   inline($3A/ numbuf/ $ED/ $5B/ ptop/
  10.          $13/ $B7/ $28/ $08/ $06/ $00/ $4F/ $21/ buffer/
  11.          $ED/ $B0/ $EB/ $36/ $0D/ $23/ $36/ $0A/ $22/
  12.          ptop)
  13. end;
  14.  
  15. procedure poptop;
  16. begin
  17.   inline($2A/ ptop/ $7E/ $B7/ $28/ $1C/ $0E/ $00/ $2B/
  18.          $0C/ $7E/ $B7/ $28/ $04/ $FE/ $0A/ $20/ $F6/ $22/
  19.          ptop/ $0D/ $0D/ $79/ $28/ $08/ $06/ $00/ $23/
  20.          $11/ buffer/ $ED/ $B0/ $32/ numbuf)
  21. end;
  22.  
  23. procedure pushbottom;
  24. begin
  25.   setnumbuf;
  26.   inline($3A/ numbuf/ $2A/ pbotm/ $2B/
  27.          $36/ $0A/ $2B/ $36/ $0D/ $B7/ $28/ $0E/ $2B/ $EB/
  28.          $06/ $00/ $4F/ $21/ buffer/ $2B/ $09/ $ED/ $B8/ $EB/
  29.          $23/ $22/ pbotm)
  30. end;
  31.  
  32. procedure popbottom;
  33. begin
  34.   inline($2A/ pbotm/ $0E/ $00/ $11/ buffer/ $7E/ $FE/
  35.          $1A/ $28/ $0C/ $FE/ $0D/ $28/ $06/ $12/ $13/ $23/
  36.          $0C/ $18/ $F1/ $23/ $23/ $22/ pbotm/ $79/ $32/
  37.          numbuf)
  38. end;
  39.  
  40. procedure topbottom;
  41. begin
  42.   inline($2A/ ptop/ $23/ $ED/ $5B/
  43.          pbotm/ $1A/ $FE/ $1A/ $28/ $0B/ $FE/ $0D/ $28/
  44.          $05/ $77/ $13/ $23/ $18/ $F2/ $13/ $13/ $ED/ $53/
  45.          pbotm/ $36/ $0D/ $23/ $36/ $0A/ $22/ ptop)
  46. end;
  47.  
  48. procedure bottomtop;
  49. begin
  50.   inline($2A/ pbotm/ $2B/ $36/ $0A/
  51.          $2B/ $36/ $0D/ $2B/ $ED/ $5B/ ptop/ $1A/ $B7/
  52.          $28/ $0F/ $1B/ $1B/ $1A/ $B7/ $28/ $09/ $FE/ $0A/
  53.          $28/ $05/ $77/ $1B/ $2B/ $18/ $F3/ $ED/ $53/
  54.          ptop/ $23/ $22/ pbotm)
  55. end;
  56.  
  57. procedure textbottom;
  58. begin
  59.   pushtop;
  60.   while mem[pbotm]<>$1A do topbottom;
  61.   repeat
  62.     poptop
  63.   until (numbuf>0) or (mem[ptop]=0)
  64. end;
  65.  
  66. procedure texttop;
  67. begin
  68.   pushbottom;
  69.   while mem[ptop]<>0 do bottomtop;
  70.   repeat
  71.     popbottom
  72.   until (numbuf>0) or (mem[pbotm]=$1A)
  73. end;
  74.  
  75. function getline(yto,yfrom:byte):byte;
  76. var i,j:byte;
  77. begin
  78.   if yto>yfrom then
  79.     begin
  80.       pushtop;
  81.       while yfrom<(yto-1) do
  82.         begin
  83.           topbottom;
  84.           yfrom:=yfrom+1
  85.         end;
  86.       popbottom
  87.     end
  88.   else if yto<yfrom then
  89.     begin
  90.       pushbottom;
  91.       while yfrom>(yto+1) do
  92.         begin
  93.           bottomtop;
  94.           yfrom:=yfrom-1
  95.         end;
  96.       poptop
  97.     end;
  98.   getline:=yto
  99. end;
  100.