home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug049.arc / SCRDMP11.I < prev    next >
Text File  |  1979-12-31  |  2KB  |  59 lines

  1.                                 SCRDMP11.I
  2.  
  3.                            By Rex Foord Jan '87
  4.  
  5.      Thi≤á i≤á ß versioε oµ thσ Talkinτ Turb∩ screendum≡ routinσ tha⌠á wil∞ ì
  6. worδá unde≥á Turb∩á Pasca∞ V│ Thσ versioε containeΣá iεá thσá Librar∙á filσ ì
  7. TLKNGTRB.LB╥ wil∞ onl∙ worδ fo≥ T╨ V2.
  8.  
  9.      I⌠á seem≤ tha⌠ T╨ V│ reset≤ thσ romlatcΦ afte≥ ß writσá statement¼á s∩ ì
  10. thi≤á versioεá oµ thσ screendum≡ routinσ set≤ thσ romlatcΦ t∩ thσá standarΣ ì
  11. characte≥ se⌠ withiε thσ loo≡ tha⌠ i≤ sendinτ character≤ t∩ thσ printer.
  12.  
  13.  
  14.  
  15. { V1.0
  16. 8░ columε graphiπ screeε dum≡ procedurσ fo≥ paralle∞ Epsoε compatiblσ printer
  17.   Writteε b∙ Danie∞ Prage≥ 1986
  18.   V1.1
  19.   Slight modification so as able to run under Turbo Pascal V3
  20.   TP V3 resets the romlatch after a write or writeln
  21.   therefore romlatch needs to be reset to standard set before write statement
  22.   in loop Line:=10 downto 0
  23.   R.J. Foord  Jan 87 }
  24.  
  25. procedure ScreenDump;
  26. const
  27.   LessHeight  = #27'1';       {Printer code to decrease line height}
  28.   Default     = #27'2';       {Code to restore the default line height}
  29.   BIG         = #27'K'#8#1;   {Code to initialise Bit Image Graphics}
  30.   ROMLatch    = 11;           {Port Latch for screen RAM/Standard set ROM}
  31.   ScreenRAM   = 0;            {Screen RAM setting for Port[ROMLatch]}
  32.   StandardSet = 1;            {Standard set value for Port[ROMLatch]}
  33.  
  34. var
  35.   X, Y, TopLine : Integer;
  36.   PCG, Line : Byte;
  37.  
  38. begin
  39.   Writeln(LST, LessHeight);
  40.   for X := 0 to 79 do
  41.     begin
  42.       Writeln(LST);
  43.       Write(LST,' ':23, BIG);
  44.       for Y := 23 downto 0 do
  45.         begin
  46.           PCG := Mem[$F000 + Y * 80 + X];
  47.           TopLine := $F000 + PCG * 16;
  48.           for Line := 10 downto 0 do
  49.             begin
  50.               Port[ROMLatch] := StandardSet;
  51.               Write(LST, Chr(Mem[TopLine + Line]));
  52.             end;
  53.           Port[ROMLatch] := ScreenRAM;
  54.         end
  55.     end;
  56.   Writeln(LST, Default)
  57. end;
  58.  
  59.