{*********************************************************************** * * * alle Routinen fuer COM-Files mit Endadress < 8000h ! * * * ***********************************************************************} var h_anf : integer absolute $8000; procedure h_ein; begin inline ($F3); (*DI*) port[$37C]:=$2E end; procedure h_aus; begin port[$37C]:=0; inline ($FB) (*EI*) end; const rtext : array[0..15] of byte = ($61,$50,$52,$0F,$19,$06,$19,$19, $02,$0D,$0C,$0C,$00,$00,$00,$00); procedure h_text; var i: byte; begin port [$378] := 0; for i := 0 to $0f do begin port [$374] := i; port [$375] := rtext[i]; end; port [$378] := 8; end; const gtext : array[0..15] of byte = ($35,$2D,$2E,$07,$5B,$02,$57,$57, $02,$03,$00,$00,$00,$00,$00,$00); procedure h_graph; var i: byte; begin port[$378] := 0; for i := 0 to $0f do begin port[$374] := i; port[$375] := gtext[i]; end; port[$37F] := $FF; port[$378] := $0A; end; procedure h_clrscr; begin H_EIN; fillchar(h_anf,$8000,0); H_AUS; end; function zieladresse (x, y :integer) :integer; begin zieladresse := $8000 + (y and 3) shl 13 + 90 * (y shr 2) + (x shr 3); end; procedure h_plot(x,y:integer); type pointer = ^byte; feld8 = array [1..8] of byte; const punkt : feld8 = (128,64,32,16,8,4,2,1); var zeiger : pointer; offset : integer; bytewert : byte; begin offset := zieladresse(x,y); bytewert := punkt [x and 7]; zeiger := ptr(offset); zeiger^ := bytewert or zeiger^; end; procedure screen(i:integer); begin write(#27,'z',chr(i)) end; procedure fett; begin write(#27,'p') end; procedure normal; begin write(#27,'q') end; procedure clearall; var i : integer; begin for i := 0 to 6 do write(#27,'z',chr(i),12,#27,'q',#27,'Y ') end;