*** makefile.msc.orig Thu Feb 23 00:34:21 1995 --- makefile.msc Thu Feb 23 01:26:56 1995 *************** *** 11,17 **** # /c means don't link # /AL means large memory model (large code, large data) # /DPC means define symbol PC ! CFLAGS = /c /AL /DPC #/DMSDOS #/Zi #/Od # see other terminal defines in term.h TERMFLAGS = --- 11,23 ---- # /c means don't link # /AL means large memory model (large code, large data) # /DPC means define symbol PC ! #CFLAGS = /c /AL /DPC #/DMSDOS #/Zi #/Od ! # /*** /DREADLINE コマンド行編集とヒストリ ***/ ! # /*** /DHP200LX 今回の変更を有効にする ***/ ! # /*** /DMSC_ERRNO errno の宣言でのエラーを回避する ***/ ! # /*** /Os サイズを小さくするための最適化 ***/ ! # /*** /Gt コードとスタックサイズが64k を越えても大丈夫 ***/ ! CFLAGS = /c /AL /DPC /DREADLINE /DMSC_ERRNO /DHP200LX /Os /Gt # see other terminal defines in term.h TERMFLAGS = *************** *** 41,47 **** cl $(CFLAGS) $*.c .asm.obj: ! masm $*; pcgraph.obj: pcgraph.asm header.mac lineproc.mac --- 47,59 ---- cl $(CFLAGS) $*.c .asm.obj: ! # masm $*; ! # /*** ごめんなさい、masm を持ってないんです (^^;) ***/ ! tasm $*; ! ! # /*** nmake 一発で gnuplot.exe を作るためにターゲットを記述しておく ***/ ! all: gnuplot.exe ! pcgraph.obj: pcgraph.asm header.mac lineproc.mac *** linkopt.msc.orig Thu Feb 23 00:34:32 1995 --- linkopt.msc Sun Feb 12 21:02:32 1995 *************** *** 1,5 **** pcgraph+hrcgraph+corgraph+bitmap+term+graphics+graph3d+contour+ ! plot+setshow+command+help+internal+misc+ parse+eval+scanner+standard+util+version gnuplot nul; --- 1,5 ---- pcgraph+hrcgraph+corgraph+bitmap+term+graphics+graph3d+contour+ ! plot+readline+setshow+command+help+internal+misc+ parse+eval+scanner+standard+util+version gnuplot nul; *** help.c.orig Mon Jun 15 17:18:22 1992 --- help.c Thu Feb 23 01:17:07 1995 *************** *** 178,184 **** --- 178,193 ---- static void EndOutput(); static FILE *outfile; /* for unix pager, if any */ static int pagelines; /* count for builtin pager */ + /*** ここから ***/ + #ifdef HP200LX + /* セグメント, オフセットから far ポインタを作る */ + #define farp(s,o) ((void far *)((((long)((unsigned)(s)))<<16)+((unsigned)(o)))) + /* メモリを読みだす (書き込みにも使えるけど... ^^) */ + #define SCREENSIZE (*(unsigned char far *)(farp((0x0040),(0x0084)))) + #else #define SCREENSIZE 24 /* lines on screen (most have at least 24) */ + #endif + /*** ここまで ***/ /* help: * print a help message *** parse.c.orig Mon Jun 15 17:18:28 1992 --- parse.c Thu Feb 23 01:23:15 1995 *************** *** 45,55 **** --- 45,57 ---- #include #include "plot.h" + #ifndef MSC_ERRNO /*** ここ ***/ #ifndef vms #ifndef __ZTC__ extern int errno; #endif #endif + #endif /*** ここ ***/ extern int num_tokens,c_token; extern struct lexical_unit token[]; *** util.c.orig Mon Jun 15 17:18:36 1992 --- util.c Thu Feb 23 01:22:41 1995 *************** *** 51,57 **** --- 51,59 ---- #ifndef vms #ifndef __ZTC__ + #ifndef MSC_ERRNO /*** ここ ***/ extern int errno; + #endif /*** ここ ***/ extern int sys_nerr; extern char *sys_errlist[]; #endif *** term/pc.trm.orig Mon Jun 15 17:23:14 1992 --- term/pc.trm Thu Feb 23 01:21:01 1995 *************** *** 56,61 **** --- 56,78 ---- } static struct text_info tinfo; /* So we can restore starting text mode. */ + /*** ここから ***/ + #else + #ifdef HP200LX + #include + static int textmode = 0x70; + + #define GETSCRMODE 0x0f + #define VIDEOBIOS 0x10 + int gettextmode(void) + { + union REGS regs; + regs.h.ah = GETSCRMODE; + int86(VIDEOBIOS, ®s, ®s); + return(regs.h.al); + } + #endif /* HP200LX */ + /*** ここまで ***/ #endif *************** *** 87,93 **** --- 104,117 ---- textmode(tinfo.currmode); clrscr(); #else + /*** ここから ***/ + #ifdef HP200LX + Vmode(textmode); + fprintf(stderr, "\033[2J"); + #else Vmode(3); + #endif /* HP200LX */ + /*** ここまで ***/ #endif } *************** *** 97,102 **** --- 121,133 ---- closegraph(); textmode(tinfo.currmode); clrscr(); + /*** ここから ***/ + #else + #ifdef HP200LX + Vmode(textmode); + fprintf(stderr, "\033[2J"); + #endif /* HP200LX */ + /*** ここまで ***/ #endif } *************** *** 156,161 **** --- 187,197 ---- CGA_graphics() { + /*** ここから ***/ + #ifdef HP200LX + textmode = gettextmode(); + #endif + /*** ここまで ***/ graphics_on = TRUE; Vmode(6); } *************** *** 242,247 **** --- 278,288 ---- EGA_graphics() { + /*** ここから ***/ + #ifdef HP200LX + textmode = gettextmode(); + #endif + /*** ここまで ***/ graphics_on = TRUE; Vmode(16); } *************** *** 325,330 **** --- 366,376 ---- VGA_graphics() { + /*** ここから ***/ + #ifdef HP200LX + textmode = gettextmode(); + #endif + /*** ここまで ***/ graphics_on = TRUE; Vmode(18); } *************** *** 408,413 **** --- 454,464 ---- EGALIB_graphics() { + /*** ここから ***/ + #ifdef HP200LX + textmode = gettextmode(); + #endif + /*** ここまで ***/ graphics_on = TRUE; GPINIT(); } *************** *** 478,483 **** --- 529,539 ---- HERC_graphics() { + /*** ここから ***/ + #ifdef HP200LX + textmode = gettextmode(); + #endif + /*** ここまで ***/ HVmode(1); graphics_on = TRUE; } *************** *** 589,594 **** --- 645,655 ---- ATT_graphics() { + /*** ここから ***/ + #ifdef HP200LX + textmode = gettextmode(); + #endif + /*** ここまで ***/ graphics_on = TRUE; Vmode(0x40); /* 40H is the magic number for the AT&T driver */ } *************** *** 668,673 **** --- 729,739 ---- COR_graphics() { + /*** ここから ***/ + #ifdef HP200LX + textmode = gettextmode(); + #endif + /*** ここまで ***/ graphics_on = TRUE; Vmode(3); /* clear text screen */ grinit(corscreen);