minor changes

This commit is contained in:
ceriel 1987-03-11 14:54:29 +00:00
parent 778948b661
commit b99a714497
6 changed files with 192 additions and 269 deletions

View file

@ -1,5 +1,6 @@
.\" $Header$
.TH 6500_AS 6ACK
.ad
.SH NAME
6500_as \- assembler for Mostek 6500
.SH SYNOPSIS

View file

@ -2,18 +2,19 @@
NROFF=nroff
MANDIR=/usr/man
SUF=opr
all:
for i in *.[1-8] ; do \
$(NROFF) -man head $$i > $$i.opr ; \
$(NROFF) -man head $$i > $$i.$(SUF) ; \
done
install:
for i in *.[1-8] ; do \
num=expr $$i : '.*\.\([1-8]\)' ; \
if test -f $(MANDIR)/man$$num/$$i ; \
then cp $$i $(MANDIR)/man$$num/em_$$i ; \
else cp $$i $(MANDIR)/man$$num/$$i ; \
then cat head $$i > $(MANDIR)/man$$num/em_$$i ; \
else cat head $$i $(MANDIR)/man$$num/$$i ; \
fi ; \
done
@ -26,3 +27,4 @@ pr:
clean:
-rm -f *.opr *.out
-rm -f *.$(SUF)

View file

@ -214,20 +214,20 @@ Return the number of ticks of user and system time consumed by the program.
The following program presents an example of how these routines can be used.
This program is equivalent to the UNIX command cat(1).
.nf
{$c+}
program cat(input,inp,output);
var inp:text;
{$c+}
program cat(input,inp,output);
var inp:text;
s:string;
function argc:integer; extern;
function argv(i:integer):string; extern;
procedure argshift; extern;
function strlen(s:string):integer; extern;
function strfetch(s:string; i:integer):char; extern;
function argc:integer; extern;
function argv(i:integer):string; extern;
procedure argshift; extern;
function strlen(s:string):integer; extern;
function strfetch(s:string; i:integer):char; extern;
procedure copy(var fi:text);
var c:char;
begin reset(fi);
procedure copy(var fi:text);
var c:char;
begin reset(fi);
while not eof(fi) do
begin
while not eoln(fi) do
@ -238,9 +238,9 @@ This program is equivalent to the UNIX command cat(1).
readln(fi);
writeln
end
end;
end;
begin {main}
begin {main}
if argc = 1 then
copy(input)
else
@ -251,34 +251,33 @@ This program is equivalent to the UNIX command cat(1).
else copy(inp);
argshift;
until argc <= 1;
end.
end.
.fi
.PP
Another example gives some idea of the way to manage trap handling:
.nf
program bigreal(output);
const EFOVFL=4;
var trapped:boolean;
program bigreal(output);
const EFOVFL=4;
var trapped:boolean;
procedure encaps(procedure p;
procedure q(n:integer)); extern;
procedure trap(n:integer); extern;
procedure encaps(procedure p; procedure q(n:integer)); extern;
procedure trap(n:integer); extern;
procedure traphandler(n:integer);
begin if n=EFOVFL then trapped:=true else trap(n) end;
procedure traphandler(n:integer);
begin if n=EFOVFL then trapped:=true else trap(n) end;
procedure work;
var i,j:real;
begin trapped:=false; i:=1;
procedure work;
var i,j:real;
begin trapped:=false; i:=1;
while not trapped do
begin j:=i; i:=i*2 end;
writeln('bigreal = ',j);
end;
end;
begin
begin
encaps(work,traphandler);
end.
end.
.fi
.SH FILES
.IP ~em/lib/*/tail_pc 20

View file

@ -1,5 +1,5 @@
.\" $Header$
.TH NS_ASS 6ACK
.TH NS_AS 6ACK
.ad
.SH NAME
ns_as \- National Semiconductor 16032 assembler/linker

View file

@ -4,196 +4,117 @@
.SH NAME
pc_prlib \- library of Pascal runtime routines
.SH SYNOPSIS
.ta 11n
.ta 11n 22n 33n 44n 55n
.nf
type alpha=packed array[1..8] of char;
.br
pstring= ^packed array[] of char;
function _abi(i:integer):integer;
.br
function _abl(i:long):long;
.br
function _mdi(j,i:integer):integer;
.br
function _mdl(j,i:long):long;
.br
function _abr(r:real):real;
.br
function _sin(r:real):real;
.br
function _cos(r:real):real;
.br
function _atn(r:real):real;
.br
function _exp(r:real):real;
.br
function _log(r:real):real;
.br
function _sqt(r:real):real;
.br
function _rnd(r:real):real;
type compared=-1..1;
.br
gotoinfo=record
.br
pcoffset:^procedure; { procedure id. without static link }
.br
nlocals: integer;
.br
end;
function _bcp(sz:integer; s2,s1:pstring):compared;
.br
function _bts(size,high,low:integer; base:^set 0..(8*size-1))
:set of 0..(8*size-1);
.br
procedure _gto(lb:^integer; p:^gotoinfo);
procedure _new(size:integer; var p:^integer);
.br
procedure _dis(size:integer; var p:^integer);
.br
procedure _sav(var p:^integer);
.br
procedure _rst(var p:^integer);
type arrdescr=record
.br
lowbnd: integer;
.br
diffbnds:integer;
.br
elsize: integer;
.br
end;
.br
arr1=array[] of ?;
.br
arr2=packed array[] of ?;
procedure _pac(var ad,zd:arrdescr; var zp:arr2; i:integer;
.br
var ap:arr1);
.br
procedure _unp(var ad,zd:arrdescr; i:integer; var ap:arr1;
.br
var zp:arr2;);
.br
function _asz(var dp:arrdescr):integer;
procedure _ass(line:integer; b:boolean);
.br
procedure procentry(var name:alpha);
.br
procedure procexit(var name:alpha);
const lowbyte=[0..7];
.br
MAGIC =[1,3,5,7];
.br
WINDOW =[11];
.br
ELNBIT =[12];
.br
EOFBIT =[13];
.br
TXTBIT =[14];
.br
WRBIT =[15];
.br
type file=record
.br
ptr: ^char;
.br
flags: set of [0..15];
.br
fname: string;
.br
ufd: 0..15;
.br
size: integer;
.br
count: 0..buflen;
.br
buflen: max(512,size) div size * size;
.br
bufadr: packed array[1..max(512,size)]
.br
of char;
.br
end;
.br
filep=^file;
.br
const NFILES=15;
.br
_extfl:^array[] of filep;
procedure _ini(var args:integer; var hb:integer;
var p:array[] of filep; var mainlb:integer);
.br
procedure _hlt(status:0..255);
procedure _opn(size:integer; f:filep);
.br
procedure _cre(size:integer; f:filep);
.br
procedure _cls(f:filep);
procedure _get(f:filep);
.br
procedure _put(f:filep);
.br
function _wdw(f:filep):^char;
.br
function _efl(f:filep):boolean;
function _eln(f:filep):boolean;
.br
function _rdc(f:filep):char;
.br
function _rdi(f:filep):integer;
.br
function _rdl(f:filep):long;
.br
function _rdr(f:filep):real;
.br
procedure _rln(f:filep);
.br
procedure _wrc(c:char; f:filep);
.br
procedure _wsc(w:integer; c:char; f:filep);
.br
procedure _wri(i:integer; f:filep);
.br
procedure _wsi(w:integer; i:integer; f:filep);
.br
procedure _wrl(l:long; f:filep);
.br
procedure _wsl(w:integer; l:long; f:filep);
.br
procedure _wrr(r:real; f:filep);
.br
procedure _wsr(w:integer; r:real; f:filep);
.br
procedure _wrf(ndigit:integer; w:integer; r:real; f:filep);
.br
procedure _wrs(l:integer; s:pstring; f:filep);
.br
procedure _wss(w:integer; l:integer; s:pstring; f:filep);
.br
procedure _wrb(b:boolean; f:filep);
.br
procedure _wsb(w:integer; b:boolean; f:filep);
.br
procedure _wrz(s:string; f:filep);
.br
procedure _wsz(w:integer; s:string; f:filep);
.br
procedure _wln(f:filep);
.br
procedure _pag(f:filep);
.fi
.SH DESCRIPTION
This library is used by the Pascal to EM compiler and
contains all the runtime routines for standard Pascal programs.

View file

@ -1,5 +1,5 @@
.\" $Header$
.TH z80_AS 6ACK
.TH Z80_AS 6ACK
.ad
.SH NAME
z80_as \- assembler for Zilog z80