Jove Z100 mods
Ken Mitchum
km at cadre.ARPA
Mon May 20 08:23:41 AEST 1985
Here are the Z100 mods for JOVE/MSDOS from Jim Knutson. They replace
the corresponding files in the Jove sources.
NOTE: These mods are for the Z100 only. The Z150 and Z160 do not
need these mods.
Ken Mitchum
University of Pittsburgh
# This is a shell archive. Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
#
# Wrapped by ut-ngp!knutson on Wed May 8 13:55:49 CDT 1985
# Contents: h19.c jovelink.z10 makefile.z10 rawio.asm
echo x - h19.c
sed 's/^@//' > "h19.c" <<'@//E*O*F h19.c//'
/* terminal control for h19 */
/* after Trm.c */
/* K. Mitchum 6/84 */
#include "tm.h"
#include "jove.h"
/* define BIGH19 if using 25 lines */
#define BIGH19
#define NCOLS 80
/* local equates for h19 escape sequences */
#ifdef BIGH19
/* enable 25th line, restart block cursor, no autolf, no autocr */
#define H19INIT "\033x1\033x4\033y5\033y8\033y9\033x4\033E"
#define H19EXIT "\033y1\033y4\033E"
#define LINES 25
#else
/* same as above, disable 25th line */
#define H19INIT "\033y1\033x4\033y5\033y8\033y9\033E"
#define H19EXIT "\033y1\033y4\033E"
#define LINES 24
#endif
#define REVOFF "\033q" /* reverse video off */
#define REVON "\033p" /* reverse video on */
#define INSLN "\033L" /* insert line */
#define DELLN "\033M" /* delete line */
#define INSCHON "\033@" /* enter insert character mode */
#define INSCHOFF "\033O" /* exit insert character mode */
#define CURFWD "\033C" /* cursor forward */
#define CURDWN "\033B" /* cursor down */
#define CURUP "\033A" /* cursor up */
#define CURPOS "\033Y%c%c" /* cursor positioning sequence */
#define CURHOME "\033H" /* cursor home, non destructive */
#define KILLN "\033K" /* kill line */
#define DELCHR "\033N" /* delete char */
#define CLRSCN "\033E" /* erase screen and home */
#define BS 010 /* backspace char */
/* padding constants */
#define KILLNPAD 0.05
#define INSLNPAD 0.25
#define DELLNPAD 0.25
#define INSCHPAD 0.05
#define CURPAD 0.01
#define INITPAD 0.05
#define DELPAD 0.05
#define CLRSCNPAD 1.00
#define REVPAD 0.10
static int curX, curY, Baud, DesHL, CurHL;
static float BaudFactor;
#ifdef VAX
static
enum IDmode { m_insert = 1, m_overwrite = 0} DesiredMode;
static
enum Vmode { v_regular = 1, v_reverse = 0} Vimage;
#else
int DesiredMode, Vimage;
#define m_insert 1
#define m_overwrite 0
#define v_regular 1
#define v_reverse 0
#endif
static
INSmode (new)
#ifdef VAX
enum IDmode new;
#else
int new;
#endif
{
DesiredMode = new;
}
static HLmode (new)
{
DesHL = new;
}
static SetHL (OverRide)
{
register Des = OverRide ? 0 : DesHL;
if (Des == CurHL)
return;
if (Vimage == v_reverse)
printf (Des ? REVOFF : REVON);
else
printf (Des ? REVON : REVOFF);
CurHL = Des;
pad(1,REVPAD);
}
static inslines(n)
{
SetHL(1);
while(n--) {
printf(INSLN);
pad(1,INSLNPAD);
}
}
static dellines(n)
{
SetHL(1);
while(n--) {
printf(DELLN);
pad(1,DELLNPAD);
}
}
static writechars(start, end)
register char *start, *end;
{
int insmode =0;
SetHL(0);
if (DesiredMode == m_insert) {
printf(INSCHON);
insmode++;
}
while ((start <= end) && ((curY != (LINES -1)) || (curX < (NCOLS)))) {
pch(*start++);
curX++;
}
}
static blanks(n)
register int n;
{
int insmode;
int len = n;
insmode = 0;
SetHL(0);
curX += n;
if (DesiredMode == m_insert) {
printf(INSCHON);
insmode++;
}
while(n--) pch(' ');
}
static
pad (n, f)
float f; {
return;
}
static topos(row,column)
register int row, column;
{
SetHL(1);
row++;
column++;
if(curX != column || curY != row) {
if(cur););;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
else if(curX == column -1) printf(CURFWD);
else if(curY == row +1) printf(CURUP);
else if(curY == row -1) printf(CURDWN);
else printf(CURPOS,row+31,column+31);
}
else {
if(row == 1 && column == 1) {
printf(CURHOME);
}
else printf(CURPOS,(row+31)&0x7f,(column+31)&0x7f);
}
curX = column;
curY = row;
/* pad(1,CURPAD);*/
}
}
static init (BaudRate)
{
BaudFactor = BaudRate / 100.;
Baud = BaudRate;
/* MetaFlag++; */
}
static reset()
{
printf(H19INIT);
curX = curY = 1;
CurHL = 0;
DesiredMode = m_overwrite;
pad(1,INITPAD);
wipescreen();
}
cleanup()
{
SetHL(1);
printf(H19EXIT);
topos(24,1);
sleep(1);
}
static wipeline()
{
SetHL(1);
printf(KILLN);
pad(1,KILLNPAD);
}
static wipescreen()
{
SetHL(1);
/*
#ifdef BIGH19
topos(25,1);
printf(KILLN);
topos(1,1);
#endif
*/
printf(CLRSCN);
pad(1,CLRSCNPAD);
}
static delchars(n)
{
int len = n;
SetHL(1);
while(n--) printf(DELCHR);
pad(len,DELPAD);
}
Trm()
{
Vimage = v_regular;
tt.t_length = LINES;
tt.t_INSmode = INSmode;
tt.t_HLmode = HLmode;
tt.t_inslines = inslines;
tt.t_dellines = dellines;
tt.t_blanks = blanks;
tt.t_init = init;
tt.t_cleanup = cleanup;
tt.t_wipeline = wipeline;
tt.t_wipescreen = wipescreen;
tt.t_topos = topos;
tt.t_reset = reset;
tt.t_delchars = delchars;
tt.t_writechars = writechars;
tt.t_window = NULL;
reset();
return(tt.t_length);
}
pch(c)
{
#ifdef VAX
Putc(c,&termout);
#else
write(1,&c,1);
#endif
}
putp(p)
char p;
{
writechars(&p,&p);
@//E*O*F h19.c//
chmod u=rw,g=r,o= h19.c
echo x - jovelink.z10
sed 's/^@//' > "jovelink.z10" <<'@//E*O*F jovelink.z10//'
main+extend+funcs+buf+case+cmode+
curs+delete+disp+draw+strncpy+
inc+insert+io+marks+meta+misc+
move+proc+re+screen+rawio+
tag+temp+h19+term+terms+ttout+
wind+inter+format+stat+gcsec
jove
jove
\c86\lib\c86b2s
@//E*O*F jovelink.z10//
chmod u=rw,g=r,o= jovelink.z10
echo x - makefile.z10
sed 's/^@//' > "makefile.z10" <<'@//E*O*F makefile.z10//'
jove.exe part1 part2 part3
link @jovelink.z10
part1 buf.obj case.obj cmode.obj curs.obj delete.obj disp.obj draw.obj extend.obj funcs.obj inc.obj insert.obj io.obj
part2 main.obj marks.obj meta.obj misc.obj move.obj proc.obj re.obj screen.obj tag.obj temp.obj h19.obj term.obj rawio.obj
part3 terms.obj ttout.obj wind.obj format.obj inter.obj stat.obj strncpy.obj gcsec.obj
install
copy jove.exe \bin
clean
del *.obj
del jove.exe
backup
copy *.h a:/v
copy *.c a:/v
copy *.asm a:/v
buf.obj buf.c stat.h
cc buf -ib -h\c86\include\
case.obj case.c
cc case -ib -h\c86\include\
cmode.obj cmode.c
cc cmode -ib -h\c86\include\
curs.obj curs.c tm.h screen.h
cc curs -ib -h\c86\include\
delete.obj delete.c
cc delete -ib -h\c86\include\
disp.obj disp.c term.h screen.h signal.h
cc disp -ib -h\c86\include\
draw.obj draw.c term.h screen.h
cc draw -ib -h\c86\include\
extend.obj extend.c
cc extend -ib -h\c86\include\
funcs.obj funcs.c funcs.h files.h
cc funcs -ib -h\c86\include\
inc.obj inc.c
cc inc -ib -h\c86\include\
insert.obj insert.c
cc insert -ib -h\c86\include\
io.obj io.c files.h term.h stat.h
cc io -ib -h\c86\include\
main.obj main.c signal.h
cc main -ib -h\c86\include\
marks.obj marks.c
cc marks -ib -h\c86\include\
meta.obj meta.c
cc meta -ib -h\c86\include\
misc.obj misc.c signal.h
cc misc -ib -h\c86\include\
move.obj move.c
cc move -ib -h\c86\include\
proc.obj proc.c whoami.h
cc proc -ib -h\c86\include\
re.obj re.c
cc re -ib -h\c86\include\
screen.obj screen.c temp.h term.h screen.h
cc screen -ib -h\c86\include\
tag.obj tag.c
cc tag -ib -h\c86\include\
temp.obj temp.c temp.h files.h
cc temp -ib -h\c86\include\
h19.obj h19.c jove.h tm.h
cc h19 -ib -h\c86\include\
term.obj term.c term.h tune.h
cc term -ib -h\c86\include\
terms.obj terms.c tm.h termcap.h term.h screen.h
cc terms -ib -h\c86\include\
ttout.obj ttout.c term.h
cc ttout -ib -h\c86\include\
wind.obj wind.c term.h screen.h
cc wind -ib -h\c86\include\
inter.obj inter.c screen.h
cc inter -ib -h\c86\include\
format.obj format.c
cc format -ib -h\c86\include\
stat.obj stat.c stat.h
cc stat -ib -h\c86\include\
strncpy.obj strncpy.c
cc strncpy -ib -h\c86\include\
gcsec.obj gcsec.asm
masm gcsec,,,.
rawio.obj rawio.asm
masm rawio,,,.
@//E*O*F makefile.z10//
chmod u=rw,g=r,o= makefile.z10
echo x - rawio.asm
sed 's/^@//' > "rawio.asm" <<'@//E*O*F rawio.asm//'
; raw i/o returns using ibm bios ints.
; k. mitchum 12/84.
include model.h
include prologue.h
@@z100 equ TRUE
public rawgetc, rawchkc
if @bigmodel
rawchkc proc far
else
rawchkc proc near
endif
if @z100
mov dl,0ffh
mov ah,6
int 21h
else
mov ah,1
int 16h
endif
jz rawchk1 ;if no character
mov ax,1
ret
rawchk1:
mov ax,0
ret
rawchkc endp
if @bigmodel
rawgetc proc far
else
rawgetc proc near
endif
if @z100
mov ah,7
int 21h
else
mov ah,0
int 16h
endif
ret
rawgetc endp
include epilogue.h
end
@//E*O*F rawio.asm//
chmod u=rw,g=r,o= rawio.asm
exit 0
More information about the Comp.sources.unix
mailing list