home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume16 / nethck31 / patch2n < prev    next >
Encoding:
Internet Message Format  |  1993-06-15  |  61.2 KB

  1. Path: uunet!news.tek.com!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v17i089:  nethack31 - display oriented dungeons & dragons (Ver. 3.1), Patch2n/33
  5. Date: 11 Jun 1993 00:11:38 GMT
  6. Organization: Tektronix, Inc, Redmond, OR, USA
  7. Lines: 1773
  8. Approved: billr@saab.CNA.TEK.COM
  9. Message-ID: <1v8ijq$j29@ying.cna.tek.com>
  10. NNTP-Posting-Host: saab.cna.tek.com
  11. Xref: uunet comp.sources.games:1777
  12.  
  13. Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller)
  14. Posting-number: Volume 17, Issue 89
  15. Archive-name: nethack31/Patch2n
  16. Patch-To: nethack31: Volume 16, Issue 1-116
  17. Environment: Amiga, Atari, Mac, MS-DOS, Windows-NT, OS2, Unix, VMS, X11
  18.  
  19.  
  20.  
  21. #! /bin/sh
  22. # This is a shell archive.  Remove anything before this line, then unpack
  23. # it by saving it into a file and typing "sh file".  To overwrite existing
  24. # files, type "sh file -c".  You can also feed this as standard input via
  25. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  26. # will see the following message at the end:
  27. #        "End of archive 14 (of 33)."
  28. # Contents:  patches02o sys/amiga/charwin.uu
  29. # Wrapped by billr@saab on Thu Jun 10 16:55:03 1993
  30. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  31. if test -f 'patches02o' -a "${1}" != "-c" ; then 
  32.   echo shar: Renaming existing file \"'patches02o'\" to \"'patches02o.orig'\"
  33.   mv -f 'patches02o' 'patches02o.orig'
  34. fi
  35. echo shar: Extracting \"'patches02o'\" \(54581 characters\)
  36. sed "s/^X//" >'patches02o' <<'END_OF_FILE'
  37. X*** /tmp/da10711    Tue Jun  1 16:03:40 1993
  38. X--- include/winami.h    Thu May  6 11:19:19 1993
  39. X***************
  40. X*** 9,18 ****
  41. X  /* descriptor for Amiga Intuition-based windows.  If we decide to cope with
  42. X   * tty-style windows also, then things will need to change. */
  43. X  /* per-window data */
  44. X! struct WinDesc {
  45. X      xchar type;            /* type of window */
  46. X      boolean active;        /* true if window is active */
  47. X      xchar offx, offy;        /* offset from topleft of display */
  48. X      short rows, cols;        /* dimensions */
  49. X      short curx, cury;        /* current cursor position */
  50. X      short maxrow, maxcol;    /* the maximum size used -- for INVEN wins */
  51. X--- 9,21 ----
  52. X  /* descriptor for Amiga Intuition-based windows.  If we decide to cope with
  53. X   * tty-style windows also, then things will need to change. */
  54. X  /* per-window data */
  55. X! struct amii_WinDesc {
  56. X      xchar type;            /* type of window */
  57. X      boolean active;        /* true if window is active */
  58. X+     boolean wasup;        /* true if menu/text window was already open */
  59. X+     short disprows;        /* Rows displayed so far (used for paging in message win) */
  60. X      xchar offx, offy;        /* offset from topleft of display */
  61. X+     short vwx, vwy, vcx, vcy;    /* View cursor location */
  62. X      short rows, cols;        /* dimensions */
  63. X      short curx, cury;        /* current cursor position */
  64. X      short maxrow, maxcol;    /* the maximum size used -- for INVEN wins */
  65. X***************
  66. X*** 31,37 ****
  67. X  #endif
  68. X  #define FLMAP_INGLYPH    1    /* An NHW_MAP window is in glyph mode */
  69. X  #define FLMAP_CURSUP    2    /* An NHW_MAP window has the cursor displayed */
  70. X!     long flags;
  71. X      short cursx, cursy;        /* Where the cursor is displayed at */
  72. X      short curs_apen,        /* Color cursor is displayed in */
  73. X        curs_bpen;
  74. X--- 34,42 ----
  75. X  #endif
  76. X  #define FLMAP_INGLYPH    1    /* An NHW_MAP window is in glyph mode */
  77. X  #define FLMAP_CURSUP    2    /* An NHW_MAP window has the cursor displayed */
  78. X! #define FLMAP_SKIP    4
  79. X! #define FLMSG_FIRST    1    /* First message in the NHW_MESSAGE window for this turn */
  80. X!     long wflags;
  81. X      short cursx, cursy;        /* Where the cursor is displayed at */
  82. X      short curs_apen,        /* Color cursor is displayed in */
  83. X        curs_bpen;
  84. X***************
  85. X*** 40,46 ****
  86. X  /* descriptor for intuition-based displays -- all the per-display data */
  87. X  /* this is a generic thing - think of it as Screen level */
  88. X  
  89. X! struct DisplayDesc {
  90. X  /* we need this for Screen size (which will vary with display mode) */
  91. X      uchar rows, cols;        /* width & height of display in text units */
  92. X      short xpix, ypix;        /* width and height of display in pixels */
  93. X--- 45,51 ----
  94. X  /* descriptor for intuition-based displays -- all the per-display data */
  95. X  /* this is a generic thing - think of it as Screen level */
  96. X  
  97. X! struct amii_DisplayDesc {
  98. X  /* we need this for Screen size (which will vary with display mode) */
  99. X      uchar rows, cols;        /* width & height of display in text units */
  100. X      short xpix, ypix;        /* width and height of display in pixels */
  101. X***************
  102. X*** 63,69 ****
  103. X              int qual;
  104. X          } mouse;
  105. X          long menucode;
  106. X!     } u;
  107. X  } WEVENT;
  108. X  
  109. X  #define MAXWIN 20        /* maximum number of windows, cop-out */
  110. X--- 68,74 ----
  111. X              int qual;
  112. X          } mouse;
  113. X          long menucode;
  114. X!     } un;
  115. X  } WEVENT;
  116. X  
  117. X  #define MAXWIN 20        /* maximum number of windows, cop-out */
  118. X***************
  119. X*** 70,80 ****
  120. X  
  121. X  /* port specific variable declarations */
  122. X  extern winid WIN_BASE;
  123. X  #define NHW_BASE    6
  124. X  
  125. X! extern struct WinDesc *wins[MAXWIN + 1];
  126. X  
  127. X! extern struct DisplayDesc *amiIDisplay;    /* the Amiga Intuition descriptor */
  128. X  
  129. X  extern char morc;        /* last character typed to xwaitforspace */
  130. X  extern char defmorestr[];    /* default --more-- prompt */
  131. X--- 75,89 ----
  132. X  
  133. X  /* port specific variable declarations */
  134. X  extern winid WIN_BASE;
  135. X+ extern winid WIN_VIEW;
  136. X+ extern winid WIN_VIEWBOX;
  137. X  #define NHW_BASE    6
  138. X+ #define NHW_VIEW    7
  139. X+ #define NHW_VIEWBOX    8
  140. X  
  141. X! extern struct amii_WinDesc *amii_wins[MAXWIN + 1];
  142. X  
  143. X! extern struct amii_DisplayDesc *amiIDisplay;    /* the Amiga Intuition descriptor */
  144. X  
  145. X  extern char morc;        /* last character typed to xwaitforspace */
  146. X  extern char defmorestr[];    /* default --more-- prompt */
  147. X*** /tmp/da10719    Tue Jun  1 16:03:42 1993
  148. X--- include/winprocs.h    Tue Apr 27 17:00:10 1993
  149. X***************
  150. X*** 1,4 ****
  151. X! /*    SCCS Id: @(#)winprocs.h    3.1    92/09/19    */
  152. X  /* Copyright (c) David Cohrs, 1992                  */
  153. X  /* NetHack may be freely redistributed.  See license for details. */
  154. X  
  155. X--- 1,4 ----
  156. X! /*    SCCS Id: @(#)winprocs.h    3.1    93/04/26    */
  157. X  /* Copyright (c) David Cohrs, 1992                  */
  158. X  /* NetHack may be freely redistributed.  See license for details. */
  159. X  
  160. X***************
  161. X*** 45,54 ****
  162. X--- 45,60 ----
  163. X  #endif /* COM_COMPL */
  164. X      void FDECL((*win_number_pad), (int));
  165. X      void NDECL((*win_delay_output));
  166. X+ #ifdef CHANGE_COLOR
  167. X+     void FDECL((*win_change_color), (int,long,int));
  168. X+     char * NDECL((*win_get_color_string));
  169. X+ #endif
  170. X  
  171. X      /* other defs that really should go away (they're tty specific) */
  172. X      void NDECL((*win_start_screen));
  173. X      void NDECL((*win_end_screen));
  174. X+ 
  175. X+     void FDECL((*win_outrip), (winid,int));
  176. X  };
  177. X  
  178. X  extern NEARDATA struct window_procs windowprocs;
  179. X***************
  180. X*** 96,104 ****
  181. X--- 102,115 ----
  182. X  #endif
  183. X  #define number_pad (*windowprocs.win_number_pad)
  184. X  #define delay_output (*windowprocs.win_delay_output)
  185. X+ #ifdef CHANGE_COLOR
  186. X+ #define change_color (*windowprocs.win_change_color)
  187. X+ #define get_color_string (*windowprocs.win_get_color_string)
  188. X+ #endif
  189. X  
  190. X  /* other defs that really should go away (they're tty specific) */
  191. X  #define start_screen (*windowprocs.win_start_screen)
  192. X  #define end_screen (*windowprocs.win_end_screen)
  193. X  
  194. X+ #define outrip (*windowprocs.win_outrip)
  195. X  #endif
  196. X*** /tmp/da10727    Tue Jun  1 16:03:43 1993
  197. X--- include/wintty.h    Fri May 28 11:31:56 1993
  198. X***************
  199. X*** 1,4 ****
  200. X! /*    SCCS Id: @(#)wintty.h    3.1    92/10/06          */
  201. X  /* Copyright (c) David Cohrs, 1991,1992                  */
  202. X  /* NetHack may be freely redistributed.  See license for details. */
  203. X  
  204. X--- 1,4 ----
  205. X! /*    SCCS Id: @(#)wintty.h    3.1    93/05/26          */
  206. X  /* Copyright (c) David Cohrs, 1991,1992                  */
  207. X  /* NetHack may be freely redistributed.  See license for details. */
  208. X  
  209. X***************
  210. X*** 102,107 ****
  211. X--- 102,125 ----
  212. X  E void NDECL(graph_off);
  213. X  E void NDECL(cl_eos);
  214. X  
  215. X+ /*
  216. X+  * termcap.c (or facsimiles in other ports) is the right place for doing
  217. X+  * strange and arcane things such as outputting escape sequences to select
  218. X+  * a color or whatever.  wintty.c should concern itself with WHERE to put
  219. X+  * stuff in a window.
  220. X+  */
  221. X+ E void FDECL(term_start_attr,(int attr));
  222. X+ E void FDECL(term_end_attr,(int attr));
  223. X+ E void NDECL(term_start_raw_bold);
  224. X+ E void NDECL(term_end_raw_bold);
  225. X+ 
  226. X+ #ifdef TEXTCOLOR
  227. X+ E void NDECL(term_end_color);
  228. X+ E void FDECL(term_start_color,(int color));
  229. X+ E int FDECL(has_color,(int color));
  230. X+ #endif /* TEXTCOLOR */
  231. X+ 
  232. X+ 
  233. X  /* ### topl.c ### */
  234. X  
  235. X  E void FDECL(addtopl, (const char *));
  236. X***************
  237. X*** 115,121 ****
  238. X  #endif
  239. X  E void FDECL(docorner, (int, int));
  240. X  E void NDECL(end_glyphout);
  241. X! E void FDECL(g_putch, (UCHAR_P));
  242. X  E void NDECL(win_tty_init);
  243. X  
  244. X  /* external declarations */
  245. X--- 133,139 ----
  246. X  #endif
  247. X  E void FDECL(docorner, (int, int));
  248. X  E void NDECL(end_glyphout);
  249. X! E void FDECL(g_putch, (int));
  250. X  E void NDECL(win_tty_init);
  251. X  
  252. X  /* external declarations */
  253. X***************
  254. X*** 158,168 ****
  255. X--- 176,214 ----
  256. X  #endif /* COM_COMPL */
  257. X  E void FDECL(tty_number_pad, (int));
  258. X  E void NDECL(tty_delay_output);
  259. X+ #ifdef CHANGE_COLOR
  260. X+ E void FDECL(tty_change_color,(int color,long rgb,int reverse));
  261. X+ E char * NDECL(tty_get_color_string);
  262. X+ #endif
  263. X  
  264. X  /* other defs that really should go away (they're tty specific) */
  265. X  E void NDECL(tty_start_screen);
  266. X  E void NDECL(tty_end_screen);
  267. X  
  268. X+ E void FDECL(genl_outrip, (winid,int));
  269. X  #undef E
  270. X+ 
  271. X+ #ifdef NO_TERMS
  272. X+ # ifdef MAC
  273. X+ #  define putchar term_putc
  274. X+ #  define putc term_fputc
  275. X+ #  define fputc term_fputc
  276. X+ #  define fflush term_flush
  277. X+ #  define fputs term_fputs
  278. X+ #  define puts term_puts
  279. X+ #  define printf term_printf
  280. X+ #  define fprintf fterm_printf
  281. X+ # endif
  282. X+ # if defined(MSDOS) || defined(WIN32CON)
  283. X+ #  if defined(SCREEN_BIOS) || defined(SCREEN_DJGPPFAST)
  284. X+ #   undef putchar
  285. X+ #   undef putc
  286. X+ #   undef puts
  287. X+ #   define putchar(x) xputc(x)  /* video.c, nttty.c */
  288. X+ #   define putc(x) xputc(x)     
  289. X+ #   define puts xputs           
  290. X+ #  endif
  291. X+ # endif
  292. X+ #endif
  293. X  
  294. X  #endif /* WINTTY_H */
  295. X*** /tmp/da10743    Tue Jun  1 16:03:47 1993
  296. X--- include/you.h    Tue Jun  1 14:28:36 1993
  297. X***************
  298. X*** 1,4 ****
  299. X! /*    SCCS Id: @(#)you.h    3.1    92/11/29    */
  300. X  /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  301. X  /* NetHack may be freely redistributed.  See license for details. */
  302. X  
  303. X--- 1,4 ----
  304. X! /*    SCCS Id: @(#)you.h    3.1    93/04/24    */
  305. X  /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  306. X  /* NetHack may be freely redistributed.  See license for details. */
  307. X  
  308. X***************
  309. X*** 71,88 ****
  310. X      Bitfield(minor_oracle,1);    /* received at least 1 cheap oracle */
  311. X      Bitfield(major_oracle,1);    /*  "  expensive oracle */
  312. X  #ifdef MULDGN
  313. X      Bitfield(qexpelled,1);        /* expelled from the Quest dungeon */
  314. X!     Bitfield(qcompleted,1);        /* successfully completed the Quest task */
  315. X  #endif
  316. X!     Bitfield(uheard_tune,2);    /* if you heard the passtune */
  317. X!     Bitfield(uopened_dbridge,1);    /* if you open the drawbridge */
  318. X!     Bitfield(invoked,1);        /* invoked the gate to the Sanctum level */
  319. X  
  320. X      Bitfield(gehennom_entered,1);    /* entered Gehennom via Valley */
  321. X  #ifdef ELBERETH
  322. X!     Bitfield(uhand_of_elbereth,1);    /* if you become Hand of Elbereth */
  323. X  #endif
  324. X!     Bitfield(udemigod,1);        /* once you kill the wiz */
  325. X  };
  326. X  
  327. X  
  328. X--- 71,90 ----
  329. X      Bitfield(minor_oracle,1);    /* received at least 1 cheap oracle */
  330. X      Bitfield(major_oracle,1);    /*  "  expensive oracle */
  331. X  #ifdef MULDGN
  332. X+     Bitfield(qcalled,1);        /* called by Quest leader to do task */
  333. X      Bitfield(qexpelled,1);        /* expelled from the Quest dungeon */
  334. X!     Bitfield(qcompleted,1);        /* successfully completed Quest task */
  335. X  #endif
  336. X!     Bitfield(uheard_tune,2);    /* 1=know about, 2=heard passtune */
  337. X!     Bitfield(uopened_dbridge,1);    /* opened the drawbridge */
  338. X!     Bitfield(invoked,1);        /* invoked Gate to the Sanctum level */
  339. X  
  340. X      Bitfield(gehennom_entered,1);    /* entered Gehennom via Valley */
  341. X  #ifdef ELBERETH
  342. X!     Bitfield(uhand_of_elbereth,2);    /* became Hand of Elbereth */
  343. X  #endif
  344. X!     Bitfield(udemigod,1);        /* killed the wiz */
  345. X!     Bitfield(ascended,1);        /* has offered the Amulet */
  346. X  };
  347. X  
  348. X  
  349. X***************
  350. X*** 148,154 ****
  351. X  #define BC_CHAIN 0x02    /* bit mask for chain in 'bc_felt' below */
  352. X      int bglyph;    /* glyph under the ball */
  353. X      int cglyph;    /* glyph under the chain */
  354. X!     int bc_order;    /* ball & chain order [see bc_order() in trap.c] */
  355. X      int bc_felt;    /* mask for ball/chain being felt */
  356. X  
  357. X  
  358. X--- 150,156 ----
  359. X  #define BC_CHAIN 0x02    /* bit mask for chain in 'bc_felt' below */
  360. X      int bglyph;    /* glyph under the ball */
  361. X      int cglyph;    /* glyph under the chain */
  362. X!     int bc_order;    /* ball & chain order [see bc_order() in ball.c] */
  363. X      int bc_felt;    /* mask for ball/chain being felt */
  364. X  
  365. X  
  366. X*** /tmp/da10751    Tue Jun  1 16:03:49 1993
  367. X--- include/youprop.h    Tue Jun  1 14:28:35 1993
  368. X***************
  369. X*** 122,129 ****
  370. X  #define Vomiting        u.uprops[VOMITING].p_flgs
  371. X  #define Energy_regeneration    u.uprops[ENERGY_REGENERATION].p_flgs
  372. X  #define HMagical_breathing    u.uprops[MAGICAL_BREATHING].p_flgs
  373. X! #define Magical_breathing    UPROP(HMagical_breathing,\
  374. X!                       magic_breathing(uasmon))
  375. X  #define Half_spell_damage    u.uprops[HALF_SPDAM].p_flgs
  376. X  #define Half_physical_damage    u.uprops[HALF_PHDAM].p_flgs
  377. X  
  378. X--- 122,131 ----
  379. X  #define Vomiting        u.uprops[VOMITING].p_flgs
  380. X  #define Energy_regeneration    u.uprops[ENERGY_REGENERATION].p_flgs
  381. X  #define HMagical_breathing    u.uprops[MAGICAL_BREATHING].p_flgs
  382. X! #define Amphibious        UPROP(HMagical_breathing,\
  383. X!                       amphibious(uasmon))
  384. X! #define Breathless        UPROP(HMagical_breathing,\
  385. X!                       breathless(uasmon))
  386. X  #define Half_spell_damage    u.uprops[HALF_SPDAM].p_flgs
  387. X  #define Half_physical_damage    u.uprops[HALF_PHDAM].p_flgs
  388. X  
  389. X*** /tmp/da12515    Tue Jun  1 17:31:34 1993
  390. X--- sys/msdos/Install.dos    Wed May 12 16:34:19 1993
  391. X***************
  392. X*** 1,4 ****
  393. X!     SCCS Id: @(#)Install.dos     3.1        93/01/06
  394. X  
  395. X          Copyright (c) NetHack PC Development Team 1990 - 1993.
  396. X          NetHack may be freely redistributed.  See license for details.
  397. X--- 1,4 ----
  398. X!     SCCS Id: @(#)Install.dos     3.1        93/05/10
  399. X  
  400. X          Copyright (c) NetHack PC Development Team 1990 - 1993.
  401. X          NetHack may be freely redistributed.  See license for details.
  402. X***************
  403. X*** 7,18 ****
  404. X                   NetHack 3.1 on an MS-DOS system
  405. X          ======================================================
  406. X                   (or, How to make PC NetHack 3.1)
  407. X!                     Last revision: Jan 6, 1993
  408. X  
  409. X  Credit for a runnable full PC NetHack 3.1 goes to the PC Development team
  410. X! of Norm Meluch, Kevin Smolkowski, Paul Winner and Steve VanDevender who
  411. X! built on the work of Pierre Martineau, Stephen Spackman, Steve Creps,
  412. X! Mike Threepoint and Don Kneller.
  413. X  
  414. X  I.  Dispelling the Myths:
  415. X  
  416. X--- 7,18 ----
  417. X                   NetHack 3.1 on an MS-DOS system
  418. X          ======================================================
  419. X                   (or, How to make PC NetHack 3.1)
  420. X!                     Last revision: May 10, 1993
  421. X  
  422. X  Credit for a runnable full PC NetHack 3.1 goes to the PC Development team
  423. X! of Norm Meluch, Kevin Smolkowski, Paul Winner, Michael Allison and Steve
  424. X! VanDevender who built on the work of Pierre Martineau, Stephen Spackman,
  425. X! Steve Creps, Mike Threepoint and Don Kneller.
  426. X  
  427. X  I.  Dispelling the Myths:
  428. X  
  429. X***************
  430. X*** 24,30 ****
  431. X      following compilers:
  432. X  
  433. X      Microsoft C 6.0a
  434. X!     Microsoft C 7.0
  435. X      DJGPP       1.9   (gcc version 2.2 for msdos,
  436. X                         free from your local archive sites)
  437. X  
  438. X--- 24,30 ----
  439. X      following compilers:
  440. X  
  441. X      Microsoft C 6.0a
  442. X!     Microsoft C 7.0 and Microsoft Visual C++ Professional (MSVC) 1.0
  443. X      DJGPP       1.9   (gcc version 2.2 for msdos,
  444. X                         free from your local archive sites)
  445. X  
  446. X***************
  447. X*** 52,58 ****
  448. X      dat, doc, include, src, sys\share, sys\msdos, util and win\tty.
  449. X      Other subdirectories may also be included in your distribution, but
  450. X      they are not necessary for use with MSDOS.  You can delete them
  451. X!     to save space.  If you are using MSC7, the makefile will create
  452. X      an additional directory src\o.
  453. X  
  454. X      Check the file "Files" in your top level directory for an exact
  455. X--- 52,58 ----
  456. X      dat, doc, include, src, sys\share, sys\msdos, util and win\tty.
  457. X      Other subdirectories may also be included in your distribution, but
  458. X      they are not necessary for use with MSDOS.  You can delete them
  459. X!     to save space.  If you are using MSC7 or MSVC, the makefile will create
  460. X      an additional directory src\o.
  461. X  
  462. X      Check the file "Files" in your top level directory for an exact
  463. X***************
  464. X*** 79,86 ****
  465. X      your linker can find them.
  466. X  
  467. X      Makefiles are included should you want to build your own termcap
  468. X!     library file.  Makemsc.lib works with Microsoft C and generates
  469. X!     termcap.lib, Makegcc.lib works with DJGPP and generates libtermc.a.
  470. X  
  471. X  4.  ovlmgr.uu (MS-DOS overlay manager) is the uuencoded assembled
  472. X      object module for the overlay manager used with Microsoft C 6.0
  473. X--- 79,87 ----
  474. X      your linker can find them.
  475. X  
  476. X      Makefiles are included should you want to build your own termcap
  477. X!     library file.  Makemsc.lib works with Microsoft C (MSC and MSVC)
  478. X!     and generates termcap.lib, Makegcc.lib works with DJGPP and generates
  479. X!     libtermc.a.
  480. X  
  481. X  4.  ovlmgr.uu (MS-DOS overlay manager) is the uuencoded assembled
  482. X      object module for the overlay manager used with Microsoft C 6.0
  483. X***************
  484. X*** 109,127 ****
  485. X      or as few of them as you wish.
  486. X  
  487. X      Also check pcconf.h, which should not need much editing (if you are
  488. X!     including termcap.uu and random.c).  If you are not including these, you
  489. X!     will need to comment out TERMLIB and/or RANDOM.  If you are using
  490. X!     a Microsoft compiler you should make doubly certain that OVERLAY is
  491. X!     defined in pcconf.h, since otherwise things will compile properly but
  492. X!     very ugly things are likely to happen wherever function pointers
  493. X!     cross overlay boundaries - the linker is a little thick about that.
  494. X  
  495. X      Commenting out the #define TERMLIB in pcconf.h to disable use of termcap
  496. X!     routines (relying on the ANSI_DEFAULT feature) will make your job a bit
  497. X!     easier.  However, you can compile with both TERMLIB and ANSI_DEFAULT
  498. X      and simply not set your TERM variable if you do not wish to use the
  499. X!     termcap file settings.
  500. X  
  501. X  7.  If you want to change the high score list behavior, examine the top of
  502. X      topten.c, in the src directory.  You may want to change the definitions of
  503. X      PERSMAX, POINTSMIN, and ENTRYMAX.  I set POINTSMIN to 51 and ENTRYMAX to
  504. X--- 110,147 ----
  505. X      or as few of them as you wish.
  506. X  
  507. X      Also check pcconf.h, which should not need much editing (if you are
  508. X!     including termcap.uu and random.c).  If you are not including random.c
  509. X!     you will need to comment out RANDOM. 
  510. X  
  511. X+     There are several options available for screen management with this
  512. X+     release of PC NetHack.  The features #define TERMLIB, #define
  513. X+     ANSI_DEFAULT, and #define NO_TERMS in pcconf.h control the various
  514. X+     options.
  515. X+ 
  516. X      Commenting out the #define TERMLIB in pcconf.h to disable use of termcap
  517. X!     routines means relying on either the ANSI_DEFAULT feature, or the
  518. X!     NO_TERMS feature, and will make your job a bit easier.
  519. X!     You can elect to compile with both TERMLIB and ANSI_DEFAULT
  520. X      and simply not set your TERM variable if you do not wish to use the
  521. X!     termcap file settings.  The NO_TERMS feature has the advantage of not
  522. X!     needing the DEVICE=ANSI.SYS statement in config.sys.  It will not
  523. X!     work with TERMLIB, nor with ANSI_DEFAULT.  It uses internal routines 
  524. X!     for screen management, and may be an ideal choice if your
  525. X!     play machine is industry standard (has an IBM compatible BIOS).
  526. X  
  527. X+     Should you define NO_TERMS, only define one of the two screen
  528. X+     access methods.  If compiling for Microsoft machines, use
  529. X+     SCREEN_BIOS, if using DJGPP you can choose between SCREEN_BIOS
  530. X+     and SCREEN_DJGPPFAST.  Never, never, ever choose both.  Bad things
  531. X+     will happen.
  532. X+     
  533. X+     If you are using a Microsoft compiler you should make doubly certain
  534. X+     that OVERLAY is defined in pcconf.h, since otherwise things will 
  535. X+     compile properly but very ugly things are likely to happen wherever
  536. X+     function pointers cross overlay boundaries - the linker is a little 
  537. X+     thick about that.
  538. X+ 
  539. X+ 
  540. X  7.  If you want to change the high score list behavior, examine the top of
  541. X      topten.c, in the src directory.  You may want to change the definitions of
  542. X      PERSMAX, POINTSMIN, and ENTRYMAX.  I set POINTSMIN to 51 and ENTRYMAX to
  543. X***************
  544. X*** 134,139 ****
  545. X--- 154,165 ----
  546. X      commenting out RANDOM in pcconf.h or tosconf.h, comment out (or set equal
  547. X      to nothing) the RANDOM macro in your Makefile.
  548. X  
  549. X+     If you elected not to use termcap, then comment out (or set equal to
  550. X+     nothing) the TERMLIB macro in your Makefile.
  551. X+     
  552. X+     That is,    TERMLIB = (SSYS)\termlib.lib
  553. X+     should be   TERMLIB =
  554. X+ 
  555. X      If you are recompiling after patching your sources, or if you got your
  556. X      files from somewhere other than the official distribution, "touch
  557. X      makedefs.c" to ensure that certain files (onames.h and pm.h) are remade,
  558. X***************
  559. X*** 169,179 ****
  560. X  Appendix A - Microsoft C Compilers
  561. X  
  562. X      You can compile NetHack using almost any version of Microsoft C later
  563. X!     than 5.1.  Versions 5.0 and earlier are broken in such a way that it
  564. X!     is impossible to use them.  Version 6.0 requires a patch available
  565. X!     from Microsoft; after applying you should have 6.0ax.  Version 7.0
  566. X!     works with or without the August 1992 patch.
  567. X  
  568. X      Officially, support is no longer provided for MSC versions prior to
  569. X      6.0ax.  NetHack v3.1 will compile with 5.1, but you will need to
  570. X      make a lot of modifications to the makefiles in order to avoid heap
  571. X--- 195,213 ----
  572. X  Appendix A - Microsoft C Compilers
  573. X  
  574. X      You can compile NetHack using almost any version of Microsoft C later
  575. X!     than 5.1, including Microsoft Visual C++ Professional 1.0.  MSC Versions
  576. X!     5.0 and earlier are broken in such a way that it is impossible to use 
  577. X!     them.  Version 6.0 requires a patch available from Microsoft; after 
  578. X!     applying you should have 6.0ax.  
  579. X!     
  580. X!     MSC Version 7.0 works with or without the August 1992 patch. 
  581. X  
  582. X+     MSVC Professional 1.0 works as distributed, although there seems 
  583. X+     to be a problem with the compiler having problems and stopping the 
  584. X+     compile periodically.  Things proceed normally after starting 'make'
  585. X+     once again.  The problem, although annoying, does not affect the code
  586. X+     generation or the final executable.
  587. X+ 
  588. X      Officially, support is no longer provided for MSC versions prior to
  589. X      6.0ax.  NetHack v3.1 will compile with 5.1, but you will need to
  590. X      make a lot of modifications to the makefiles in order to avoid heap
  591. X***************
  592. X*** 180,189 ****
  593. X      space problems.  We strongly recommend upgrading to 6.0ax if you
  594. X      intend to recompile NetHack often.
  595. X  
  596. X!     One Makefile is used for all versions.  Version 7.0 takes advantage
  597. X!     of the CL environment variables to set the compiler flags, as they
  598. X!     exceed the MSDOS limitation of 128 characters on the command line.
  599. X!     Please read the Makefile carefully and select those options that
  600. X      go with the compiler.  Also, remember to run setup.bat to set the
  601. X      CL environment variable before you compile.
  602. X  
  603. X--- 214,223 ----
  604. X      space problems.  We strongly recommend upgrading to 6.0ax if you
  605. X      intend to recompile NetHack often.
  606. X  
  607. X!     One Makefile is used for all versions.  MSC Version 7.0 and MSVC take 
  608. X!     advantage of the CL environment variables to set the compiler flags, 
  609. X!     as they exceed the MSDOS limitation of 128 characters on the command 
  610. X!     line.  Please read the Makefile carefully and select those options that
  611. X      go with the compiler.  Also, remember to run setup.bat to set the
  612. X      CL environment variable before you compile.
  613. X  
  614. X***************
  615. X*** 231,236 ****
  616. X--- 265,274 ----
  617. X      linker in version 7.0.  Instead of linking in the custom overlay
  618. X      manager, we just let Microsoft do the work.
  619. X  
  620. X+   Microsoft Visual C++ Professional version 1.0
  621. X+     The Microsoft Visual C++ Professional compiler can utilize the same
  622. X+     Makefiles and instructions for compiling as Microsoft C version 7.0.
  623. X+ 
  624. X  Appendix B - DJGPP Compiler (gcc ported to msdos)
  625. X  
  626. X      If you have a 386 or better machine, you are in luck.  You can compile
  627. X***************
  628. X*** 248,255 ****
  629. X      Windows.  See the DJGPP documentation for more details on particular
  630. X      memory requirements.
  631. X  
  632. X!     Building with DJGPP is easy, just follow the steps outlined in the
  633. X!     main section.
  634. X  
  635. X  Appendix C - Borland C Compiler
  636. X  
  637. X--- 286,295 ----
  638. X      Windows.  See the DJGPP documentation for more details on particular
  639. X      memory requirements.
  640. X  
  641. X!     If you want to use the built-in DJGPP screen routines, uncomment
  642. X!     SCREEN_DJGPPFAST in pcconf.h.  Note that some of these routines
  643. X!     seem to be broken so we pick and choose the ones that work.  See
  644. X!     video.c for details. 
  645. X  
  646. X  Appendix C - Borland C Compiler
  647. X  
  648. X*** /tmp/da12523    Tue Jun  1 17:31:36 1993
  649. X--- sys/msdos/MakeGCC.src    Tue May 11 09:53:56 1993
  650. X***************
  651. X*** 1,4 ****
  652. X! #       SCCS Id: @(#)MakeGCC.src       3.1     93/01/05
  653. X  #    Copyright (c) NetHack PC Development Team 1992, 1993.
  654. X  #       PC NetHack 3.1 Src Makefile for djgpp 1.09 and ndmake 4.5
  655. X  #
  656. X--- 1,4 ----
  657. X! #       SCCS Id: @(#)MakeGCC.src       3.1     93/05/03
  658. X  #    Copyright (c) NetHack PC Development Team 1992, 1993.
  659. X  #       PC NetHack 3.1 Src Makefile for djgpp 1.09 and ndmake 4.5
  660. X  #
  661. X***************
  662. X*** 13,19 ****
  663. X  
  664. X  
  665. X  CC       = gcc
  666. X! STUB     = stub.exe         # Can either be stub.exe or go32.exe
  667. X  STUBPATH = f:\djgpp\bin\    # Must be complete path with trailing '\'
  668. X  LINK     = gcc
  669. X  
  670. X--- 13,19 ----
  671. X  
  672. X  
  673. X  CC       = gcc
  674. X! STUB     = go32.exe         # Can be either stub.exe or go32.exe
  675. X  STUBPATH = f:\djgpp\bin\    # Must be complete path with trailing '\'
  676. X  LINK     = gcc
  677. X  
  678. X***************
  679. X*** 60,71 ****
  680. X  default : $(GAMEFILE)
  681. X  
  682. X  #
  683. X! #  If TERMLIB is defined in pcconf.c, comment out the upper line and
  684. X  #  uncomment the lower.  Note that you must build the termc library
  685. X  #  and place it in djgpp's lib directory.  See termcap.zip for details
  686. X  
  687. X! #TERMLIB =
  688. X! TERMLIB = -ltermc
  689. X  
  690. X  LIBRARIES = $(LIBS) $(TERMLIB)
  691. X  
  692. X--- 60,71 ----
  693. X  default : $(GAMEFILE)
  694. X  
  695. X  #
  696. X! #  If TERMLIB is defined in pcconf.h, comment out the upper line and
  697. X  #  uncomment the lower.  Note that you must build the termc library
  698. X  #  and place it in djgpp's lib directory.  See termcap.zip for details
  699. X  
  700. X! TERMLIB =
  701. X! #TERMLIB = -ltermc
  702. X  
  703. X  LIBRARIES = $(LIBS) $(TERMLIB)
  704. X  
  705. X***************
  706. X*** 115,121 ****
  707. X  VOBJ20 = were.o     wield.o    windows.o  wintty.o   wizard.o
  708. X  VOBJ21 = worm.o     worn.o     write.o    zap.o
  709. X  
  710. X! SOBJ    = msdos.o    sys.o      tty.o      unix.o
  711. X  
  712. X  VVOBJ  = version.o
  713. X  
  714. X--- 115,121 ----
  715. X  VOBJ20 = were.o     wield.o    windows.o  wintty.o   wizard.o
  716. X  VOBJ21 = worm.o     worn.o     write.o    zap.o
  717. X  
  718. X! SOBJ    = msdos.o    sys.o      tty.o      unix.o    video.o
  719. X  
  720. X  VVOBJ  = version.o
  721. X  
  722. X***************
  723. X*** 156,162 ****
  724. X               $(INCL)\objclass.h $(INCL)\trap.h      $(INCL)\flag.h    \
  725. X               $(RM_H)            $(INCL)\vision.h    $(INCL)\wintype.h \
  726. X               $(INCL)\engrave.h  $(INCL)\rect.h      $(INCL)\extern.h \
  727. X!              $(INCL)\trampoli.h $(INCL)\hack.h
  728. X  
  729. X  
  730. X  
  731. X--- 156,162 ----
  732. X               $(INCL)\objclass.h $(INCL)\trap.h      $(INCL)\flag.h    \
  733. X               $(RM_H)            $(INCL)\vision.h    $(INCL)\wintype.h \
  734. X               $(INCL)\engrave.h  $(INCL)\rect.h      $(INCL)\extern.h \
  735. X!              $(INCL)\hack.h
  736. X  
  737. X  
  738. X  
  739. X***************
  740. X*** 258,263 ****
  741. X--- 258,267 ----
  742. X  
  743. X  msdos.o : $(HACK_H)  $(MSYS)\msdos.c
  744. X      copy $(MSYS)\msdos.c .
  745. X+     $(CC) $(CFLAGS) -o$*.o $*.c
  746. X+ 
  747. X+ video.o : $(HACK_H)  $(MSYS)\video.c
  748. X+     copy $(MSYS)\video.c .
  749. X      $(CC) $(CFLAGS) -o$*.o $*.c
  750. X  
  751. X  
  752. X*** /tmp/da12539    Tue Jun  1 17:31:41 1993
  753. X--- sys/msdos/MakeMSC.src    Tue Jun  1 12:38:54 1993
  754. X***************
  755. X*** 1,6 ****
  756. X! # SCCS Id: @(#)MakeMSC.src    3.1    93/01/18
  757. X  # Copyright (c) NetHack PC Development Team 1992, 1993
  758. X! # PC NetHack 3.1 Makefile for Microsoft(tm) "C" >= 6.0ax
  759. X  #
  760. X  # Nota Bene:    Before you get to here you should have already read
  761. X  #         the Install.dos file located in the sys/msdos directory.
  762. X--- 1,6 ----
  763. X! # SCCS Id: @(#)MakeMSC.src    3.1    93/05/23
  764. X  # Copyright (c) NetHack PC Development Team 1992, 1993
  765. X! # PC NetHack 3.1 Makefile for Microsoft(tm) "C" >= 6.0ax and MSVC >= 1.0
  766. X  #
  767. X  # Nota Bene:    Before you get to here you should have already read
  768. X  #         the Install.dos file located in the sys/msdos directory.
  769. X***************
  770. X*** 7,18 ****
  771. X  
  772. X  # This Makefile supports two different overlay management schemes.
  773. X  # You must select either the one that supports Microsoft C
  774. X! # version 6 or version 7.  By default this Makefile is set up
  775. X! # for version 7 or greater.  Certain sections particular to
  776. X! # each compiler are marked either MSC7 or MSC6.  If you are
  777. X! # using Microsoft C version 7, make sure that all the MSC6
  778. X  # sections are commented out and pay particular attention
  779. X! # to all sections marked MSC7, uncommenting all the variables.
  780. X  # Do the same thing for MSC6 if you are using that version of
  781. X  # the compiler.
  782. X  #
  783. X--- 7,19 ----
  784. X  
  785. X  # This Makefile supports two different overlay management schemes.
  786. X  # You must select either the one that supports Microsoft C
  787. X! # version 6, or the one that supports Microsoft C version 7 and 
  788. X! # Microsoft Visual C++ Professional version 1 (MSVC).  By default this 
  789. X! # Makefile is set up for version 7 or greater (including MSVC).  Certain 
  790. X! # sections particular to each compiler are marked either MSC7/MSVC or MSC6.
  791. X! # If you are using Microsoft C version 7 or MSVC, make sure that all the MSC6
  792. X  # sections are commented out and pay particular attention
  793. X! # to all sections marked MSC7/MSVC, uncommenting all the variables.
  794. X  # Do the same thing for MSC6 if you are using that version of
  795. X  # the compiler.
  796. X  #
  797. X***************
  798. X*** 60,80 ****
  799. X  #
  800. X  
  801. X  
  802. X! #### MSC7 Section Only #####
  803. X! # MSC7 Compiler Flags are set up in the setup.bat file using
  804. X  # the CL environment variable as the total lenth of the compiler
  805. X  # command line exceeds the MSDOS 128 character limit.
  806. X  #
  807. X  CFLAGS    = /c
  808. X! LFLAGS    = /noi /seg:512 /map /st:5120 /DYNAMIC:1100 /INFO
  809. X  OVLMUCKING =    # None required
  810. X! MSC6MUCK =     # None required
  811. X  ############################
  812. X  
  813. X  
  814. X  #### MSC6 Section Only #####
  815. X  #
  816. X! # First comment out the MSC7 section.  And uncomment much of what is below.
  817. X  #
  818. X  
  819. X  #
  820. X--- 61,83 ----
  821. X  #
  822. X  
  823. X  
  824. X! #### MSC7/MSVC Section Only #####
  825. X! # MSC7 and MSVC Compiler Flags are set up in the setup.bat file using
  826. X  # the CL environment variable as the total lenth of the compiler
  827. X  # command line exceeds the MSDOS 128 character limit.
  828. X  #
  829. X  CFLAGS    = /c
  830. X! LFLAGS    = /noi /seg:512 /map /st:5120 /DYNAMIC:1050 /INFO
  831. X  OVLMUCKING =    # None required
  832. X! MSC6MUCK =    # None required
  833. X! OVERLAY =    # None required
  834. X! OVERLAY_H =    # None required
  835. X  ############################
  836. X  
  837. X  
  838. X  #### MSC6 Section Only #####
  839. X  #
  840. X! # First comment out the MSC7/MSVC section.  And uncomment much of what is below.
  841. X  #
  842. X  
  843. X  #
  844. X***************
  845. X*** 88,109 ****
  846. X  #LFLAGS    = /noi /seg:512 /map /st:4096
  847. X  #EXEPATCH = exesmurf    # Executable Massager
  848. X  #EXEFLAGS = /max4500 /min4500
  849. X! #OVLMUCKING = $(EXEPATCH) ovlmgr.obj
  850. X  #MSC6MUCK = msc6muck
  851. X  
  852. X  #
  853. X  # For Microsoft C version <= 6.00ax, we use a custom overlay
  854. X! # manager, which requires the lower line to be uncommented.
  855. X! OVLMGR    =
  856. X! #OVLMGR    = ovlmgr.obj
  857. X! 
  858. X  #
  859. X  # Switch the following $(OBJ)\$(OVLMGR): lines if you don't have a
  860. X  # MASM compatible assembler.
  861. X! $(OBJ)\$(OVLMGR):
  862. X! # $(OBJ)\$(OVLMGR): ; copy $(SYS)\$(OVLMGR) $(OBJ)\$(OVLMGR)
  863. X  
  864. X  #
  865. X  # If you need to recompile ovlmgr.asm you may want to change
  866. X  # some of the flags.
  867. X  AFLAGS = /MX
  868. X--- 91,116 ----
  869. X  #LFLAGS    = /noi /seg:512 /map /st:4096
  870. X  #EXEPATCH = exesmurf    # Executable Massager
  871. X  #EXEFLAGS = /max4500 /min4500
  872. X! #OVLMUCKING = $(EXEPATCH) $(OBJ)\ovlmgr.obj
  873. X  #MSC6MUCK = msc6muck
  874. X  
  875. X  #
  876. X  # For Microsoft C version <= 6.00ax, we use a custom overlay
  877. X! # manager.
  878. X  #
  879. X  # Switch the following $(OBJ)\$(OVLMGR): lines if you don't have a
  880. X  # MASM compatible assembler.
  881. X! #$(OBJ)\ovlmgr.obj: $(SYS)\ovlmgr.asm
  882. X! #    $(ASM) $(AFLAGS) $(SYS)\ovlmgr.asm, $@ ;
  883. X! $(OBJ)\ovlmgr.obj: ; copy $(SYS)\ovlmgr.obj $(OBJ)\ovlmgr.obj
  884. X  
  885. X  #
  886. X+ # Object files and a header file required for trampoli overlay system.
  887. X+ #
  888. X+ #OVERLAY = $(OBJ)\ovlmgr.obj $(OBJ)\trampoli.o
  889. X+ #OVERLAY_H = $(INCL)\trampoli.h
  890. X+ 
  891. X+ #
  892. X  # If you need to recompile ovlmgr.asm you may want to change
  893. X  # some of the flags.
  894. X  AFLAGS = /MX
  895. X***************
  896. X*** 119,127 ****
  897. X  #$(EXEPATCH).exe: $(OBJ)\$(EXEPATCH).o
  898. X  #    $(LINK) $(OBJ)\$*.o, $*.exe;
  899. X  
  900. X- #
  901. X- #$(OBJ)\$(EXEPATCH).o: $(SYS)\$(EXEPATCH).c
  902. X- #    $(CC) /W0 /Fo$(OBJ)\$*.o $(SYS)\$*.c
  903. X  ############################
  904. X  
  905. X  #
  906. X--- 126,131 ----
  907. X***************
  908. X*** 133,141 ****
  909. X  # RANDOM    =
  910. X  
  911. X  #
  912. X! # If TERMLIB is NOT #defined in the source, comment out the
  913. X! # lower line and uncomment the upper.  Make sure that TERMLIB
  914. X! # contains the full pathname to the termcap library.
  915. X  
  916. X  #TERMLIB =
  917. X  TERMLIB = $(SSYS)\termcap.lib
  918. X--- 137,145 ----
  919. X  # RANDOM    =
  920. X  
  921. X  #
  922. X! # If TERMLIB is NOT #defined in the source (in include\pcconf.h), 
  923. X! # comment out the lower line and uncomment the upper.  Make sure 
  924. X! # that TERMLIB contains the full pathname to the termcap library. 
  925. X  
  926. X  #TERMLIB =
  927. X  TERMLIB = $(SSYS)\termcap.lib
  928. X***************
  929. X*** 155,191 ****
  930. X         .o .c .y .l .obj .asm
  931. X  
  932. X  .c.o:
  933. X!     $(CC) $(CFLAGS) /Fo$(OBJ)\$*.o $*.c
  934. X  .c.0:
  935. X!     $(CC) $(CFLAGS) /DOVL0 /NT$*.0 /Fo$(OBJ)\$*.0 $*.c
  936. X  .c.0-1:
  937. X!     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /NT$*.0-1 /Fo$(OBJ)\$*.0-1 $*.c
  938. X  .c.0-2:
  939. X!     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /DOVL2 /NT$*.0-2 /Fo$(OBJ)\$*.0-2 $*.c
  940. X  .c.0-3:
  941. X!     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /DOVL2 /DOVL3 /NT$*.0-3 /Fo$(OBJ)\$*.0-3 $*.c
  942. X  .c.1:
  943. X!     $(CC) $(CFLAGS) /DOVL1 /NT$*.1 /Fo$(OBJ)\$*.1 $*.c
  944. X  .c.1-2:
  945. X!     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /NT$*.1-2 /Fo$(OBJ)\$*.1-2 $*.c
  946. X  .c.1-3:
  947. X!     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /DOVL3 /NT$*.1-3 /Fo$(OBJ)\$*.1-3 $*.c
  948. X  .c.1-b:
  949. X!     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /DOVL3 /DOVLB /NT$*.1-b /Fo$(OBJ)\$*.1-b $*.c
  950. X  .c.2:
  951. X!     $(CC) $(CFLAGS) /DOVL2 /NT$*.2 /Fo$(OBJ)\$*.2 $*.c
  952. X  .c.2-3:
  953. X!     $(CC) $(CFLAGS) /DOVL2 /DOVL3 /NT$*.2-3 /Fo$(OBJ)\$*.2-3 $*.c
  954. X  .c.2-b:
  955. X!     $(CC) $(CFLAGS) /DOVL2 /DOVL3 /DOVLB /NT$*.2-b /Fo$(OBJ)\$*.2-b $*.c
  956. X  .c.3:
  957. X!     $(CC) $(CFLAGS) /DOVL3 /NT$*.3 /Fo$(OBJ)\$*.3 $*.c
  958. X  .c.3-b:
  959. X!     $(CC) $(CFLAGS) /DOVL3 /DOVLB /NT$*.3-b /Fo$(OBJ)\$*.3-b $*.c
  960. X  .c.b:
  961. X!     $(CC) $(CFLAGS) /DOVLB /NT$*.b /Fo$(OBJ)\$*.b $*.c
  962. X  .asm.obj:
  963. X!     $(ASM) $(AFLAGS) $(SYS)\$*.asm, $(OBJ)\$*.obj ;
  964. X  
  965. X  #
  966. X  #    Header Objects.
  967. X--- 159,195 ----
  968. X         .o .c .y .l .obj .asm
  969. X  
  970. X  .c.o:
  971. X!     $(CC) $(CFLAGS) /Fo$@ $<
  972. X  .c.0:
  973. X!     $(CC) $(CFLAGS) /DOVL0 /NT$(@F) /Fo$@ $<
  974. X  .c.0-1:
  975. X!     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /NT$(@F) /Fo$@ $<
  976. X  .c.0-2:
  977. X!     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /DOVL2 /NT$(@F) /Fo$@ $<
  978. X  .c.0-3:
  979. X!     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /DOVL2 /DOVL3 /NT$(@F) /Fo$@ $<
  980. X  .c.1:
  981. X!     $(CC) $(CFLAGS) /DOVL1 /NT$(@F) /Fo$@ $<
  982. X  .c.1-2:
  983. X!     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /NT$(@F) /Fo$@ $<
  984. X  .c.1-3:
  985. X!     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /DOVL3 /NT$(@F) /Fo$@ $<
  986. X  .c.1-b:
  987. X!     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /DOVL3 /DOVLB /NT$(@F) /Fo$@ $<
  988. X  .c.2:
  989. X!     $(CC) $(CFLAGS) /DOVL2 /NT$(@F) /Fo$@ $<
  990. X  .c.2-3:
  991. X!     $(CC) $(CFLAGS) /DOVL2 /DOVL3 /NT$(@F) /Fo$@ $<
  992. X  .c.2-b:
  993. X!     $(CC) $(CFLAGS) /DOVL2 /DOVL3 /DOVLB /NT$(@F) /Fo$@ $<
  994. X  .c.3:
  995. X!     $(CC) $(CFLAGS) /DOVL3 /NT$(@F) /Fo$@ $<
  996. X  .c.3-b:
  997. X!     $(CC) $(CFLAGS) /DOVL3 /DOVLB /NT$(@F) /Fo$@ $<
  998. X  .c.b:
  999. X!     $(CC) $(CFLAGS) /DOVLB /NT$(@F) /Fo$@ $<
  1000. X  .asm.obj:
  1001. X!     $(ASM) $(AFLAGS) $<, $@ ;
  1002. X  
  1003. X  #
  1004. X  #    Header Objects.
  1005. X***************
  1006. X*** 225,238 ****
  1007. X  #    Overlay Objects.
  1008. X  #
  1009. X  
  1010. X! ROOT =    $(OBJ)\main.o $(OBJ)\msdos.0 $(OBJ)\dungeon.0 \
  1011. X      $(OBJ)\alloc.o $(OBJ)\random.o $(OBJ)\decl.o $(OBJ)\dbridge.0 \
  1012. X      $(OBJ)\objects.o $(OBJ)\invent.0 $(OBJ)\mkobj.0 $(OBJ)\mkroom.0 \
  1013. X!     $(OBJ)\rnd.0 $(OBJ)\termcap.0 $(OBJ)\mondata.0 $(OBJ)\muse.o \
  1014. X      $(OBJ)\engrave.0 $(OBJ)\explode.o $(OBJ)\display.o $(OBJ)\vision.o \
  1015. X      $(OBJ)\attrib.0 $(OBJ)\rect.o $(OBJ)\vis_tab.o $(OBJ)\hacklib.0 \
  1016. X      $(OBJ)\monst.o $(OBJ)\hack.3 $(OBJ)\topl.0 $(OBJ)\trap.0 \
  1017. X!     $(OBJ)\wintty.o $(OBJ)\monmove.0 $(OBJ)\dogmove.0
  1018. X  
  1019. X  # These could use to go in root, but are in OLV1 to make
  1020. X  # the game loadable in under 512 free ram.
  1021. X--- 229,242 ----
  1022. X  #    Overlay Objects.
  1023. X  #
  1024. X  
  1025. X! ROOT =    $(OVERLAY) $(OBJ)\main.o $(OBJ)\msdos.0 $(OBJ)\dungeon.0 \
  1026. X      $(OBJ)\alloc.o $(OBJ)\random.o $(OBJ)\decl.o $(OBJ)\dbridge.0 \
  1027. X      $(OBJ)\objects.o $(OBJ)\invent.0 $(OBJ)\mkobj.0 $(OBJ)\mkroom.0 \
  1028. X!     $(OBJ)\rnd.0 $(OBJ)\video.0 $(OBJ)\mondata.0 $(OBJ)\muse.o \
  1029. X      $(OBJ)\engrave.0 $(OBJ)\explode.o $(OBJ)\display.o $(OBJ)\vision.o \
  1030. X      $(OBJ)\attrib.0 $(OBJ)\rect.o $(OBJ)\vis_tab.o $(OBJ)\hacklib.0 \
  1031. X      $(OBJ)\monst.o $(OBJ)\hack.3 $(OBJ)\topl.0 $(OBJ)\trap.0 \
  1032. X!     $(OBJ)\termcap.0 $(OBJ)\wintty.o $(OBJ)\monmove.0 $(OBJ)\dogmove.0
  1033. X  
  1034. X  # These could use to go in root, but are in OLV1 to make
  1035. X  # the game loadable in under 512 free ram.
  1036. X***************
  1037. X*** 285,294 ****
  1038. X  OVL29 = $(OBJ)\objnam.2-b $(OBJ)\hacklib.2-b
  1039. X  OVL30 = $(OBJ)\pager.o
  1040. X  OVL31 = $(OBJ)\botl.0
  1041. X! OVL32 = $(OBJ)\botl.b $(OBJ)\topl.b $(OBJ)\termcap.1 $(OBJ)\windows.o
  1042. X  OVL33 = $(OBJ)\topl.1-2
  1043. X  OVL34 = $(OBJ)\pline.o
  1044. X! OVL35 = $(OBJ)\termcap.2-b
  1045. X  OVL36 = $(OBJ)\quest.o $(OBJ)\questpgr.o
  1046. X  OVL37 = $(OBJ)\invent.b
  1047. X  OVL38 = $(OBJ)\hack.b
  1048. X--- 289,299 ----
  1049. X  OVL29 = $(OBJ)\objnam.2-b $(OBJ)\hacklib.2-b
  1050. X  OVL30 = $(OBJ)\pager.o
  1051. X  OVL31 = $(OBJ)\botl.0
  1052. X! OVL32 = $(OBJ)\botl.b $(OBJ)\topl.b $(OBJ)\termcap.1 $(OBJ)\windows.o \
  1053. X!     $(OBJ)\video.1
  1054. X  OVL33 = $(OBJ)\topl.1-2
  1055. X  OVL34 = $(OBJ)\pline.o
  1056. X! OVL35 = $(OBJ)\termcap.2-b $(OBJ)\video.2-b
  1057. X  OVL36 = $(OBJ)\quest.o $(OBJ)\questpgr.o
  1058. X  OVL37 = $(OBJ)\invent.b
  1059. X  OVL38 = $(OBJ)\hack.b
  1060. X***************
  1061. X*** 439,445 ****
  1062. X      $(UTL)\makedefs.c    $(UTL)\panic.c        $(UTL)\recover.c \
  1063. X      $(UTL)\dgn_main.c    $(UTL)\dgn_comp.l    $(UTL)\dgn_comp.y \
  1064. X      $(UTL)\lev_main.c    $(UTL)\lev_comp.l    $(UTL)\lev_comp.y \
  1065. X!     $(HACK_H)
  1066. X      @echo You must first "$(MAKEBIN) all" in the $(UTL) directory.
  1067. X      @attrib .foo
  1068. X  
  1069. X--- 444,450 ----
  1070. X      $(UTL)\makedefs.c    $(UTL)\panic.c        $(UTL)\recover.c \
  1071. X      $(UTL)\dgn_main.c    $(UTL)\dgn_comp.l    $(UTL)\dgn_comp.y \
  1072. X      $(UTL)\lev_main.c    $(UTL)\lev_comp.l    $(UTL)\lev_comp.y \
  1073. X!     $(HACK_H)        $(INCL)\patchlevel.h    $(INCL)\qtext.h
  1074. X      @echo You must first "$(MAKEBIN) all" in the $(UTL) directory.
  1075. X      @attrib .foo
  1076. X  
  1077. X***************
  1078. X*** 463,497 ****
  1079. X  #
  1080. X  
  1081. X  $(OBJ)\msdos.0: $(HACK_H) $(INCL)\termcap.h $(SYS)\msdos.c
  1082. X!     $(CC) $(CFLAGS) /DOVL0 /NT$*.0 /Fo$(OBJ)\$*.0 $(SYS)\$*.c
  1083. X  
  1084. X  $(OBJ)\msdos.b: $(HACK_H) $(INCL)\termcap.h $(SYS)\msdos.c
  1085. X!     $(CC) $(CFLAGS) /DOVLB /NT$*.b /Fo$(OBJ)\$*.b $(SYS)\$*.c
  1086. X  
  1087. X! $(OBJ)\trampoli.o: $(HACK_H)    $(SYS)\trampoli.c
  1088. X!     $(CC) $(CFLAGS) /Fo$(OBJ)\$*.o $(SYS)\$*.c
  1089. X  
  1090. X  #
  1091. X  #    $(SSYS) files.
  1092. X  #
  1093. X  
  1094. X  $(OBJ)\main.o: $(HACK_H)    $(SSYS)\pcmain.c
  1095. X!     $(CC) $(CFLAGS) /Fo$(OBJ)\main.o $(SSYS)\pcmain.c
  1096. X  
  1097. X  $(OBJ)\pcsys.o:    $(HACK_H)    $(INCL)\wintty.h    $(SSYS)\pcsys.c
  1098. X!     $(CC) $(CFLAGS) /Fo$(OBJ)\$*.o $(SSYS)\$*.c
  1099. X  
  1100. X  $(OBJ)\random.o: $(SSYS)\random.c
  1101. X!     $(CC) $(CFLAGS) /Fo$(OBJ)\$*.o $(SSYS)\$*.c
  1102. X  
  1103. X  $(OBJ)\tty.o: $(HACK_H)        $(INCL)\wintty.h    $(SSYS)\pctty.c
  1104. X!     $(CC) $(CFLAGS) /Fo$(OBJ)\tty.o    $(SSYS)\pctty.c
  1105. X  
  1106. X  $(OBJ)\unix.0: $(HACK_H)    $(SSYS)\pcunix.c
  1107. X!     $(CC) $(CFLAGS) /DOVL0 /Fo$(OBJ)\unix.0 $(SSYS)\pcunix.c
  1108. X  
  1109. X  $(OBJ)\unix.1-b: $(HACK_H)    $(SSYS)\pcunix.c
  1110. X!     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /DOVL3 /DOVLB /Fo$(OBJ)\unix.1-b $(SSYS)\pcunix.c
  1111. X  
  1112. X  #
  1113. X  #    $(WIN) files.
  1114. X--- 468,514 ----
  1115. X  #
  1116. X  
  1117. X  $(OBJ)\msdos.0: $(HACK_H) $(INCL)\termcap.h $(SYS)\msdos.c
  1118. X!     $(CC) $(CFLAGS) /DOVL0 /NT$(@F) /Fo$@ $(SYS)\msdos.c
  1119. X  
  1120. X  $(OBJ)\msdos.b: $(HACK_H) $(INCL)\termcap.h $(SYS)\msdos.c
  1121. X!     $(CC) $(CFLAGS) /DOVLB /NT$(@F) /Fo$@ $(SYS)\msdos.c
  1122. X  
  1123. X! $(OBJ)\trampoli.o: $(HACK_H) $(SYS)\trampoli.c
  1124. X!     $(CC) $(CFLAGS) /Fo$@ $(SYS)\trampoli.c
  1125. X  
  1126. X+ $(OBJ)\video.0:    $(HACK_H) $(INCL)\wintty.h $(SYS)\video.c
  1127. X+     $(CC) $(CFLAGS) /DOVL0 /NT$(@F) /Fo$@ $(SYS)\video.c
  1128. X+ 
  1129. X+ $(OBJ)\video.1: $(HACK_H) $(INCL)\wintty.h $(SYS)\video.c
  1130. X+     $(CC) $(CFLAGS) /DOVL1 /NT$(@F) /Fo$@ $(SYS)\video.c
  1131. X+ 
  1132. X+ $(OBJ)\video.2-b: $(HACK_H) $(INCL)\wintty.h $(SYS)\video.c
  1133. X+     $(CC) $(CFLAGS) /DOVL2 /DOVLB /NT$(@F) /Fo$@ $(SYS)\video.c
  1134. X+ 
  1135. X+ $(OBJ)\exesmurf.o: $(SYS)\exesmurf.c
  1136. X+     $(CC) $(CFLAGS) /Fo$@ $(SYS)\exesmurf.c
  1137. X+ 
  1138. X  #
  1139. X  #    $(SSYS) files.
  1140. X  #
  1141. X  
  1142. X  $(OBJ)\main.o: $(HACK_H)    $(SSYS)\pcmain.c
  1143. X!     $(CC) $(CFLAGS) /Fo$@ $(SSYS)\pcmain.c
  1144. X  
  1145. X  $(OBJ)\pcsys.o:    $(HACK_H)    $(INCL)\wintty.h    $(SSYS)\pcsys.c
  1146. X!     $(CC) $(CFLAGS) /Fo$@ $(SSYS)\pcsys.c
  1147. X  
  1148. X  $(OBJ)\random.o: $(SSYS)\random.c
  1149. X!     $(CC) $(CFLAGS) /Fo$@ $(SSYS)\random.c
  1150. X  
  1151. X  $(OBJ)\tty.o: $(HACK_H)        $(INCL)\wintty.h    $(SSYS)\pctty.c
  1152. X!     $(CC) $(CFLAGS) /Fo$@    $(SSYS)\pctty.c
  1153. X  
  1154. X  $(OBJ)\unix.0: $(HACK_H)    $(SSYS)\pcunix.c
  1155. X!     $(CC) $(CFLAGS) /DOVL0 /Fo$@ $(SSYS)\pcunix.c
  1156. X  
  1157. X  $(OBJ)\unix.1-b: $(HACK_H)    $(SSYS)\pcunix.c
  1158. X!     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /DOVL3 /DOVLB /Fo$@ $(SSYS)\pcunix.c
  1159. X  
  1160. X  #
  1161. X  #    $(WIN) files.
  1162. X***************
  1163. X*** 499,541 ****
  1164. X  
  1165. X  $(OBJ)\getline.0-1: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\func_tab.h \
  1166. X      $(WIN)\getline.c
  1167. X!     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /NT$*.0-1 /Fo$(OBJ)\$*.0-1 $(WIN)\$*.c
  1168. X  
  1169. X  $(OBJ)\getline.2: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\func_tab.h \
  1170. X      $(WIN)\getline.c
  1171. X!     $(CC) $(CFLAGS) /DOVL2 /NT$*.2 /Fo$(OBJ)\$*.2 $(WIN)\$*.c
  1172. X  
  1173. X  $(OBJ)\getline.b: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\func_tab.h \
  1174. X      $(WIN)\getline.c
  1175. X!     $(CC) $(CFLAGS) /DOVLB /NT$*.b /Fo$(OBJ)\getline.b $(WIN)\$*.c
  1176. X  
  1177. X  $(OBJ)\termcap.0: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\termcap.h \
  1178. X      $(WIN)\termcap.c
  1179. X!     $(CC) $(CFLAGS) /DOVL0 /NT$*.0 /Fo$(OBJ)\$*.0 $(WIN)\$*.c
  1180. X  
  1181. X  $(OBJ)\termcap.1: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\termcap.h \
  1182. X      $(WIN)\termcap.c
  1183. X!     $(CC) $(CFLAGS) /DOVL1 /NT$*.1 /Fo$(OBJ)\$*.1 $(WIN)\$*.c
  1184. X  
  1185. X  $(OBJ)\termcap.2-b: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\termcap.h \
  1186. X      $(WIN)\termcap.c
  1187. X!     $(CC) $(CFLAGS) /DOVL2 /DOVLB /NT$*.2-b /Fo$(OBJ)\$*.2-b $(WIN)\$*.c
  1188. X  
  1189. X  $(OBJ)\topl.0: $(HACK_H)    $(INCL)\termcap.h    $(INCL)\wintty.h \
  1190. X      $(WIN)\topl.c
  1191. X!     $(CC) $(CFLAGS) /DOVL0 /NT$*.0 /Fo$(OBJ)\$*.0 $(WIN)\$*.c
  1192. X  
  1193. X  $(OBJ)\topl.1-2: $(HACK_H)    $(INCL)\termcap.h    $(INCL)\wintty.h \
  1194. X      $(WIN)\topl.c
  1195. X!     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /NT$*.1-2 /Fo$(OBJ)\$*.1-2 $(WIN)\$*.c
  1196. X  
  1197. X  $(OBJ)\topl.b: $(HACK_H)    $(INCL)\termcap.h    $(INCL)\wintty.h \
  1198. X      $(WIN)\topl.c
  1199. X!     $(CC) $(CFLAGS) /DOVLB /NT$*.b /Fo$(OBJ)\$*.b $(WIN)\$*.c
  1200. X  
  1201. X  $(OBJ)\wintty.o: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\termcap.h \
  1202. X      $(WIN)\wintty.c
  1203. X!     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /DOVL2 /DOVLB /Fo$(OBJ)\$*.o $(WIN)\$*.c
  1204. X  
  1205. X  #
  1206. X  #    $(SRC) files.
  1207. X--- 516,558 ----
  1208. X  
  1209. X  $(OBJ)\getline.0-1: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\func_tab.h \
  1210. X      $(WIN)\getline.c
  1211. X!     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /NT$(@F) /Fo$@ $(WIN)\getline.c
  1212. X  
  1213. X  $(OBJ)\getline.2: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\func_tab.h \
  1214. X      $(WIN)\getline.c
  1215. X!     $(CC) $(CFLAGS) /DOVL2 /NT$(@F) /Fo$@ $(WIN)\getline.c
  1216. X  
  1217. X  $(OBJ)\getline.b: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\func_tab.h \
  1218. X      $(WIN)\getline.c
  1219. X!     $(CC) $(CFLAGS) /DOVLB /NT$(@F) /Fo$@ $(WIN)\getline.c
  1220. X  
  1221. X  $(OBJ)\termcap.0: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\termcap.h \
  1222. X      $(WIN)\termcap.c
  1223. X!     $(CC) $(CFLAGS) /DOVL0 /NT$(@F) /Fo$@ $(WIN)\termcap.c
  1224. X  
  1225. X  $(OBJ)\termcap.1: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\termcap.h \
  1226. X      $(WIN)\termcap.c
  1227. X!     $(CC) $(CFLAGS) /DOVL1 /NT$(@F) /Fo$@ $(WIN)\termcap.c
  1228. X  
  1229. X  $(OBJ)\termcap.2-b: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\termcap.h \
  1230. X      $(WIN)\termcap.c
  1231. X!     $(CC) $(CFLAGS) /DOVL2 /DOVLB /NT$(@F) /Fo$@ $(WIN)\termcap.c
  1232. X  
  1233. X  $(OBJ)\topl.0: $(HACK_H)    $(INCL)\termcap.h    $(INCL)\wintty.h \
  1234. X      $(WIN)\topl.c
  1235. X!     $(CC) $(CFLAGS) /DOVL0 /NT$(@F) /Fo$@ $(WIN)\topl.c
  1236. X  
  1237. X  $(OBJ)\topl.1-2: $(HACK_H)    $(INCL)\termcap.h    $(INCL)\wintty.h \
  1238. X      $(WIN)\topl.c
  1239. X!     $(CC) $(CFLAGS) /DOVL1 /DOVL2 /NT$(@F) /Fo$@ $(WIN)\topl.c
  1240. X  
  1241. X  $(OBJ)\topl.b: $(HACK_H)    $(INCL)\termcap.h    $(INCL)\wintty.h \
  1242. X      $(WIN)\topl.c
  1243. X!     $(CC) $(CFLAGS) /DOVLB /NT$(@F) /Fo$@ $(WIN)\topl.c
  1244. X  
  1245. X  $(OBJ)\wintty.o: $(HACK_H)    $(INCL)\wintty.h    $(INCL)\termcap.h \
  1246. X      $(WIN)\wintty.c
  1247. X!     $(CC) $(CFLAGS) /DOVL0 /DOVL1 /DOVL2 /DOVLB /Fo$@ $(WIN)\wintty.c
  1248. X  
  1249. X  #
  1250. X  #    $(SRC) files.
  1251. X*** /tmp/da12547    Tue Jun  1 17:31:43 1993
  1252. X--- sys/msdos/MakeMSC.utl    Tue Jun  1 12:38:49 1993
  1253. X***************
  1254. X*** 1,8 ****
  1255. X! #    SCCS Id: @(#)MakeMSC.utl     3.1     93/01/18
  1256. X  # Copyright (c) NetHack PC Development Team 1992, 1993.
  1257. X  # NetHack may be freely redistributed.  See license for details.
  1258. X  #
  1259. X  # PC NetHack 3.1 Utilities Source Code Makefile for Microsoft(tm) "C" >= 6.0ax
  1260. X  #
  1261. X  #    In addition to your C compiler,
  1262. X  #
  1263. X--- 1,9 ----
  1264. X! #    SCCS Id: @(#)MakeMSC.utl     3.1     93/05/23
  1265. X  # Copyright (c) NetHack PC Development Team 1992, 1993.
  1266. X  # NetHack may be freely redistributed.  See license for details.
  1267. X  #
  1268. X  # PC NetHack 3.1 Utilities Source Code Makefile for Microsoft(tm) "C" >= 6.0ax
  1269. X+ # and Microsoft Visual C++ Professional version >= 1.0.
  1270. X  #
  1271. X  #    In addition to your C compiler,
  1272. X  #
  1273. X***************
  1274. X*** 214,220 ****
  1275. X      $(LINK) $(LFLAGS) $(MAKEOBJS), $*.exe,, $(CLIB);
  1276. X  
  1277. X  makedefs.o:    $(CONFIG_H)        $(PERMONST_H)      $(INCL)\objclass.h \
  1278. X!         $(INCL)\monsym.h    $(INCL)\qtext.h
  1279. X  
  1280. X  #
  1281. X  #    Level Compiler Dependencies
  1282. X--- 215,221 ----
  1283. X      $(LINK) $(LFLAGS) $(MAKEOBJS), $*.exe,, $(CLIB);
  1284. X  
  1285. X  makedefs.o:    $(CONFIG_H)        $(PERMONST_H)      $(INCL)\objclass.h \
  1286. X!         $(INCL)\monsym.h    $(INCL)\qtext.h    $(INCL)\patchlevel.h
  1287. X  
  1288. X  #
  1289. X  #    Level Compiler Dependencies
  1290. X*** /tmp/da12555    Tue Jun  1 17:31:45 1993
  1291. X--- sys/msdos/Makefile.dat    Tue Apr 27 17:03:04 1993
  1292. X***************
  1293. X*** 1,9 ****
  1294. X! #    SCCS Id: @(#)Makefile.dat  3.1   93/01/18
  1295. X  #    Copyright (c) NetHack PC Development Team 1992, 1993.
  1296. X  #    NetHack may be freely redistributed.  See license for details.
  1297. X  #
  1298. X! # PC NetHack 3.1 Data Files Makefile for NDMAKE and MSC >= 6.0ax
  1299. X! # or DGJPP 1.9.
  1300. X  
  1301. X  DAT    = ..\dat
  1302. X  INCL    = ..\include
  1303. X--- 1,9 ----
  1304. X! #    SCCS Id: @(#)Makefile.dat  3.1   93/04/25
  1305. X  #    Copyright (c) NetHack PC Development Team 1992, 1993.
  1306. X  #    NetHack may be freely redistributed.  See license for details.
  1307. X  #
  1308. X! # PC NetHack 3.1 Data Files Makefile for NDMAKE and MSC >= 6.0ax, or
  1309. X! # MSVC >= 1.0, or DGJPP 1.9.
  1310. X  
  1311. X  DAT    = ..\dat
  1312. X  INCL    = ..\include
  1313. X*** /tmp/da12587    Tue Jun  1 17:31:53 1993
  1314. X--- sys/msdos/msdos.c    Mon May 17 15:11:24 1993
  1315. X***************
  1316. X*** 1,4 ****
  1317. X! /*    SCCS Id: @(#)msdos.c     3.1     93/02/16          */
  1318. X  /* Copyright (c) NetHack PC Development Team 1990, 1991, 1992      */
  1319. X  /* NetHack may be freely redistributed.  See license for details. */
  1320. X  
  1321. X--- 1,4 ----
  1322. X! /*    SCCS Id: @(#)msdos.c     3.1     93/05/06          */
  1323. X  /* Copyright (c) NetHack PC Development Team 1990, 1991, 1992      */
  1324. X  /* NetHack may be freely redistributed.  See license for details. */
  1325. X  
  1326. X***************
  1327. X*** 10,18 ****
  1328. X  
  1329. X  #define NEED_VARARGS
  1330. X  #include "hack.h"
  1331. X- #ifdef MICRO
  1332. X- #include "termcap.h"
  1333. X- #endif
  1334. X  
  1335. X  #ifdef MSDOS
  1336. X  
  1337. X--- 10,15 ----
  1338. X***************
  1339. X*** 34,53 ****
  1340. X  /*
  1341. X   * BIOS interrupts
  1342. X   */
  1343. X  #define KEYBRD_BIOS 0x16
  1344. X! #define VIDEO_BIOS  0x10
  1345. X  /*
  1346. X   * Keyboard BIOS functions
  1347. X   */
  1348. X  #define READCHAR    0x00    /* Read Character from Keyboard */
  1349. X  #define GETKEYFLAGS 0x02    /* Get Keyboard Flags */
  1350. X- /*
  1351. X-  * Video BIOS functions
  1352. X-  */
  1353. X- #define SETCURPOS   0x02    /* Set Cursor Position */
  1354. X- #define GETMODE     0x0f    /* Get Video Mode */
  1355. X- #define FONTINFO    0x1130  /* Get Font Info */
  1356. X  
  1357. X  
  1358. X  #ifdef OVL0
  1359. X  
  1360. X--- 31,49 ----
  1361. X  /*
  1362. X   * BIOS interrupts
  1363. X   */
  1364. X+ #ifdef PC9801
  1365. X+ #define KEYBRD_BIOS 0x18
  1366. X+ #else
  1367. X  #define KEYBRD_BIOS 0x16
  1368. X! #endif
  1369. X! 
  1370. X  /*
  1371. X   * Keyboard BIOS functions
  1372. X   */
  1373. X  #define READCHAR    0x00    /* Read Character from Keyboard */
  1374. X  #define GETKEYFLAGS 0x02    /* Get Keyboard Flags */
  1375. X  
  1376. X+ void FDECL(get_cursor,(int *, int *));
  1377. X  
  1378. X  #ifdef OVL0
  1379. X  
  1380. X***************
  1381. X*** 76,83 ****
  1382. X--- 72,84 ----
  1383. X  /*
  1384. X   *  Keyboard translation tables.
  1385. X   */
  1386. X+ #ifdef PC9801
  1387. X+ #define KEYPADLO    0x38
  1388. X+ #define KEYPADHI    0x50
  1389. X+ #else
  1390. X  #define KEYPADLO    0x47
  1391. X  #define KEYPADHI    0x53
  1392. X+ #endif
  1393. X  
  1394. X  #define PADKEYS     (KEYPADHI - KEYPADLO + 1)
  1395. X  #define iskeypad(x)    (KEYPADLO <= (x) && (x) <= KEYPADHI)
  1396. X***************
  1397. X*** 90,98 ****
  1398. X--- 91,126 ----
  1399. X  static const struct pad {
  1400. X      char normal, shift, cntrl;
  1401. X  } keypad[PADKEYS] = {
  1402. X+ #ifdef PC9801
  1403. X+             {'>', '>', '>'},        /* Ins */
  1404. X+             {'<', '<', '<'},        /* Del */
  1405. X+             {'k', 'K', C('k')},        /* Up */
  1406. X+             {'h', 'H', C('h')},        /* Left */
  1407. X+             {'l', 'L', C('l')},        /* Right */
  1408. X+             {'j', 'J', C('j')},        /* Down */
  1409. X+             { 0 ,  0 ,  0 },        /* HomeClr */
  1410. X+             {'?', '?', '?' },        /* Help */
  1411. X+             {'m', C('p'), C('p')},        /* - */
  1412. X+             {'/', '/', '/'},        /* / */
  1413. X              {'y', 'Y', C('y')},        /* 7 */
  1414. X              {'k', 'K', C('k')},        /* 8 */
  1415. X              {'u', 'U', C('u')},        /* 9 */
  1416. X+             {'*', '*', '*'},        /* * */
  1417. X+             {'h', 'H', C('h')},        /* 4 */
  1418. X+             {'g', 'g', 'g'},        /* 5 */
  1419. X+             {'l', 'L', C('l')},        /* 6 */
  1420. X+             {'p', 'P', C('p')},        /* + */
  1421. X+             {'b', 'B', C('b')},        /* 1 */
  1422. X+             {'j', 'J', C('j')},        /* 2 */
  1423. X+             {'n', 'N', C('n')},        /* 3 */
  1424. X+             {'=', '=', '='},        /* = */
  1425. X+             {'i', 'I', C('i')},        /* 0 */
  1426. X+             {',' ':', ':'},         /* , */
  1427. X+             {'.', '.', '.'}         /* . */
  1428. X+ #else
  1429. X+             {'y', 'Y', C('y')},        /* 7 */
  1430. X+             {'k', 'K', C('k')},        /* 8 */
  1431. X+             {'u', 'U', C('u')},        /* 9 */
  1432. X              {'m', C('p'), C('p')},        /* - */
  1433. X              {'h', 'H', C('h')},        /* 4 */
  1434. X              {'g', 'g', 'g'},        /* 5 */
  1435. X***************
  1436. X*** 103,112 ****
  1437. X--- 131,168 ----
  1438. X              {'n', 'N', C('n')},        /* 3 */
  1439. X              {'i', 'I', C('i')},        /* Ins */
  1440. X              {'.', ':', ':'}            /* Del */
  1441. X+ #endif
  1442. X  }, numpad[PADKEYS] = {
  1443. X+ #ifdef PC9801
  1444. X+             {'>', '>', '>'},        /* Ins */
  1445. X+             {'<', '<', '<'},        /* Del */
  1446. X+             {'8', M('8'), '8'},        /* Up */
  1447. X+             {'4', M('4'), '4'},        /* Left */
  1448. X+             {'6', M('6'), '6'},        /* Right */
  1449. X+             {'2', M('2'), '2'},        /* Down */
  1450. X+             { 0 ,  0 ,  0 },        /* HomeClr */
  1451. X+             {'?', '?', '?'},        /* Help */
  1452. X+             {'m', C('p'), C('p')},        /* - */
  1453. X+             {'/', '/', '/'},        /* / */
  1454. X              {'7', M('7'), '7'},        /* 7 */
  1455. X              {'8', M('8'), '8'},        /* 8 */
  1456. X              {'9', M('9'), '9'},        /* 9 */
  1457. X+             {'*', '*', '*'},        /* * */
  1458. X+             {'4', M('4'), '4'},        /* 4 */
  1459. X+             {'g', 'G', 'g'},        /* 5 */
  1460. X+             {'6', M('6'), '6'},        /* 6 */
  1461. X+             {'p', 'P', C('p')},        /* + */
  1462. X+             {'1', M('1'), '1'},        /* 1 */
  1463. X+             {'2', M('2'), '2'},        /* 2 */
  1464. X+             {'3', M('3'), '3'},        /* 3 */
  1465. X+             {'=', '=', '='},        /* = */
  1466. X+             {'i', 'I', C('i')},        /* 0 */
  1467. X+             {',', ':', ':'},        /* , */
  1468. X+             {'.', '.', '.'}         /* . */
  1469. X+ #else
  1470. X+             {'7', M('7'), '7'},        /* 7 */
  1471. X+             {'8', M('8'), '8'},        /* 8 */
  1472. X+             {'9', M('9'), '9'},        /* 9 */
  1473. X              {'m', C('p'), C('p')},        /* - */
  1474. X              {'4', M('4'), '4'},        /* 4 */
  1475. X              {'g', 'G', 'g'},        /* 5 */
  1476. X***************
  1477. X*** 117,122 ****
  1478. X--- 173,179 ----
  1479. X              {'3', M('3'), '3'},        /* 3 */
  1480. X              {'i', 'I', C('i')},        /* Ins */
  1481. X              {'.', ':', ':'}            /* Del */
  1482. X+ #endif
  1483. X  };
  1484. X  
  1485. X  /*
  1486. X***************
  1487. X*** 127,138 ****
  1488. X--- 184,206 ----
  1489. X   * scan code table to translate the scan code into a letter, then set the
  1490. X   * "meta" bit for it.  -3.
  1491. X   */
  1492. X+ #ifdef PC9801
  1493. X+ #define SCANLO        0x5
  1494. X+ #else
  1495. X  #define SCANLO        0x10
  1496. X+ #endif /* PC9801 */
  1497. X  
  1498. X  static const char scanmap[] = {     /* ... */
  1499. X+ #ifdef PC9801
  1500. X+              0,  0,  0,  0,  0,  0, '-','^','\\','\b',
  1501. X+     '\t','q','w','e','r','t','y','u','i','o','p','@','[', '\n',
  1502. X+     'a','s','d','f','g','h','j','k','l',';',':', ']',
  1503. X+     'z','x','c','v','b','N','m',',','.','/'    /* ... */
  1504. X+ #else
  1505. X      'q','w','e','r','t','y','u','i','o','p','[',']', '\n',
  1506. X      0, 'a','s','d','f','g','h','j','k','l',';','\'', '`',
  1507. X      0, '\\', 'z','x','c','v','b','n','m',',','.','?'    /* ... */
  1508. X+ #endif /* PC9801 */
  1509. X  };
  1510. X  
  1511. X  #define inmap(x)    (SCANLO <= (x) && (x) < SCANLO + SIZE(scanmap))
  1512. X***************
  1513. X*** 140,148 ****
  1514. X--- 208,223 ----
  1515. X  /*
  1516. X   * BIOSgetch gets keys directly with a BIOS call.
  1517. X   */
  1518. X+ #ifdef PC9801
  1519. X+ #define SHIFT        0x1
  1520. X+ #define KANA        0x4
  1521. X+ #define GRPH        0x8
  1522. X+ #define CTRL        0x10
  1523. X+ #else
  1524. X  #define SHIFT        (0x1 | 0x2)
  1525. X  #define CTRL        0x4
  1526. X  #define ALT        0x8
  1527. X+ #endif /* PC9801 */
  1528. X  
  1529. X  static char
  1530. X  BIOSgetch()
  1531. X***************
  1532. X*** 175,181 ****
  1533. X--- 250,262 ----
  1534. X              ch = kpad[scan - KEYPADLO].normal;
  1535. X      }
  1536. X      /* Translate unassigned Alt-letters */
  1537. X+ #ifdef PC9801
  1538. X+     if (shift & KANA)
  1539. X+         return 0;
  1540. X+     if ((shift & GRPH) && (ch >= 0x80)) {
  1541. X+ #else
  1542. X      if ((shift & ALT) && !ch) {
  1543. X+ #endif
  1544. X          if (inmap(scan))
  1545. X              ch = scanmap[scan - SCANLO];
  1546. X          return (isprint(ch) ? M(ch) : ch);
  1547. X***************
  1548. X*** 194,199 ****
  1549. X--- 275,284 ----
  1550. X      intdos(®s, ®s);
  1551. X      ch = regs.h.al;
  1552. X  
  1553. X+ #ifdef PC9801
  1554. X+     if (ch < 0)    /* KANA letters and GRPH-shifted letters(?) */
  1555. X+         ch = 0; /* munch it */
  1556. X+ #else
  1557. X      /*
  1558. X       * The extended codes for Alt-shifted letters, and unshifted keypad
  1559. X       * and function keys, correspond to the scan codes.  So we can still
  1560. X***************
  1561. X*** 212,217 ****
  1562. X--- 297,303 ----
  1563. X              if (isprint(ch)) ch = M(ch);
  1564. X          } else ch = 0;        /* munch it */
  1565. X      }
  1566. X+ #endif
  1567. X      return (ch);
  1568. X  }
  1569. X  
  1570. X***************
  1571. X*** 392,461 ****
  1572. X      return (regs.x.dx);
  1573. X  }
  1574. X  
  1575. X! #endif /* OVL0 */
  1576. X! #ifdef OVLB
  1577. X! 
  1578. X! void
  1579. X! get_scr_size()
  1580. X! {
  1581. X!     union REGS regs;
  1582. X! 
  1583. X!     if (!flags.BIOS) {        /* assume standard screen size */
  1584. X!         CO = 80;
  1585. X!         LI = 24;
  1586. X!         return;
  1587. X!     }
  1588. X! 
  1589. X!     regs.x.ax = FONTINFO;
  1590. X!     regs.x.bx = 0;            /* current ROM BIOS font */
  1591. X!     regs.h.dl = 24;            /* default row count */
  1592. X!                     /* in case no EGA/MCGA/VGA */
  1593. X!     int86(VIDEO_BIOS, ®s, ®s); /* Get Font Information */
  1594. X! 
  1595. X!     /* MDA/CGA/PCjr ignore INT 10h, Function 11h, but since we
  1596. X!      * cleverly loaded up DL with the default, everything's fine.
  1597. X!      *
  1598. X!      * Otherwise, DL now contains rows - 1.  Also, CX contains the
  1599. X!      * points (bytes per character) and ES:BP points to the font
  1600. X!      * table.  -3.
  1601. X!      */
  1602. X! 
  1603. X!     regs.h.ah = GETMODE;
  1604. X!     int86(VIDEO_BIOS, ®s, ®s); /* Get Video Mode */
  1605. X! 
  1606. X!     /* This goes back all the way to the original PC.  Completely
  1607. X!      * safe.  AH contains # of columns, AL contains display mode,
  1608. X!      * and BH contains the active display page.
  1609. X!      */
  1610. X! 
  1611. X!     LI = regs.h.dl + 1;
  1612. X!     CO = regs.h.ah;
  1613. X! }
  1614. X! 
  1615. X! #endif /* OVLB */
  1616. X! #ifdef OVL0
  1617. X! 
  1618. X! void
  1619. X! gotoxy(x,y)
  1620. X! int x,y;
  1621. X! {
  1622. X!     union REGS regs;
  1623. X! 
  1624. X!     x--; y--;            /* (0,0) is upper right corner */
  1625. X! 
  1626. X!     regs.h.ah = SETCURPOS;
  1627. X!     regs.h.bh = 0;            /* display page */
  1628. X!     regs.h.dh = y;            /* row */
  1629. X!     regs.h.dl = x;            /* column */
  1630. X!     int86(VIDEO_BIOS, ®s, ®s); /* Set Cursor Position */
  1631. X! 
  1632. X!     /* This, too, goes back all the way to the original PC.  If
  1633. X!      * we ever get so fancy as to swap display pages (i doubt it),
  1634. X!      * then we'll need to set BH appropriately.  This function
  1635. X!      * returns nothing.  -3.
  1636. X!      */
  1637. X! }
  1638. X! 
  1639. X! #endif /* OVL0 */
  1640. X  
  1641. X  #endif /* MSDOS */
  1642. X--- 478,483 ----
  1643. X      return (regs.x.dx);
  1644. X  }
  1645. X  
  1646. X! # endif /* OVLB */
  1647. X  
  1648. X  #endif /* MSDOS */
  1649. X*** /tmp/da12635    Tue Jun  1 17:32:07 1993
  1650. X--- sys/msdos/setup.bat    Tue Jun  1 12:13:35 1993
  1651. X***************
  1652. X*** 25,31 ****
  1653. X  goto err_set
  1654. X  
  1655. X  :ok_gcc
  1656. X! echo Copying Makefiles.
  1657. X  echo "MakeGCC.src -> ..\..\src\makefile"
  1658. X  copy makegcc.src ..\..\src\makefile
  1659. X  echo "MakeGCC.utl -> ..\..\util\makefile"
  1660. X--- 25,31 ----
  1661. X  goto err_set
  1662. X  
  1663. X  :ok_gcc
  1664. X! echo Symbolic links, msdos style
  1665. X  echo "MakeGCC.src -> ..\..\src\makefile"
  1666. X  copy makegcc.src ..\..\src\makefile
  1667. X  echo "MakeGCC.utl -> ..\..\util\makefile"
  1668. X***************
  1669. X*** 38,46 ****
  1670. X  echo Setting Environment variables for Compiler.
  1671. X  set  CL= /AL /G2 /Oo /Gs /Gt18 /Zp1 /W0 /I..\include /nologo /DMOVERLAY
  1672. X  echo Copying Makefiles.
  1673. X! echo "MakeMSC.src -> ..\..\dat\makefile"
  1674. X  copy makemsc.src ..\..\src\makefile
  1675. X! echo "MakeMSC.utl -> ..\..\dat\makefile"
  1676. X  copy makemsc.utl ..\..\util\makefile
  1677. X  echo "Makefile.dat -> ..\..\dat\makefile"
  1678. X  copy makefile.dat ..\..\dat\makefile
  1679. X--- 38,46 ----
  1680. X  echo Setting Environment variables for Compiler.
  1681. X  set  CL= /AL /G2 /Oo /Gs /Gt18 /Zp1 /W0 /I..\include /nologo /DMOVERLAY
  1682. X  echo Copying Makefiles.
  1683. X! echo "MakeMSC.src -> ..\..\src\makefile"
  1684. X  copy makemsc.src ..\..\src\makefile
  1685. X! echo "MakeMSC.utl -> ..\..\util\makefile"
  1686. X  copy makemsc.utl ..\..\util\makefile
  1687. X  echo "Makefile.dat -> ..\..\dat\makefile"
  1688. X  copy makefile.dat ..\..\dat\makefile
  1689. END_OF_FILE
  1690. if test 54581 -ne `wc -c <'patches02o'`; then
  1691.     echo shar: \"'patches02o'\" unpacked with wrong size!
  1692. fi
  1693. # end of 'patches02o'
  1694. if test -f 'sys/amiga/charwin.uu' -a "${1}" != "-c" ; then 
  1695.   echo shar: Renaming existing file \"'sys/amiga/charwin.uu'\" to \"'sys/amiga/charwin.uu.orig'\"
  1696.   mv -f 'sys/amiga/charwin.uu' 'sys/amiga/charwin.uu.orig'
  1697. fi
  1698. echo shar: Extracting \"'sys/amiga/charwin.uu'\" \(3696 characters\)
  1699. sed "s/^X//" >'sys/amiga/charwin.uu' <<'END_OF_FILE'
  1700. Xbegin 664 char.pw
  1701. XM4&]W97)7:6YD;W=S('8R+C5C(*DQ.3@W+"`Q.3@X(&)Y($E.3U9!5%)/3DE#
  1702. XM4RP@24Y#+B`@("`@("`@("`@("`@("`@("`@("`@```"K`````E```#\````
  1703. XM`0`````!``````=C:&%R+F,`!]$Y^``````"@`#(``,``8````\`````!\>D
  1704. XMP````````````````@````$``````0`````!`````!@```#@X.#0<%#``(``
  1705. XML`#P`(!04/#P```````!``(0"``@`D``!0`%_____P``````````````````
  1706. XM```````````````-!\\EP```````!E1Y<&5?```!`)L`&`$+`&P`!0`%____
  1707. XM_P```!%0:6-K(&$@0VAA<F%C=&5R``?17)``B0`.`'H`"@````,``0?17&0`
  1708. XM````!]$D(`````````````$'T3B0_____P,```4'T5QT````````````>P``
  1709. XM`'L`"P````L```````````<``0``&P`!``````?/)]``````````"D)A<F)A
  1710. XM<FEA;@`````*`````0?/)>`'SRCX!\\KH`?/+D@'SR\`!\\PD`````$`````
  1711. XM`0`````!``````0G0B<``````0`````!``?173``B0`;`'H`"@````,``0?1
  1712. XM7+P`````!]$FT`````````````('T3Y0_____P,```4'T5S,````````````
  1713. XM>P```'L`"P````L```````````<``0``,``!``````?/,^``````````!$5L
  1714. XM9@`````*`````0?/.%`'SSX(!\\^P`?/0N`'SUN8!\]GH`````$``````0``
  1715. XM```!``````0G12<``````0`````!``?178@`B0`H`'H`"@````,``0?175P`
  1716. XM````!]%!J`````````````,'T4-H_____P,```4'T5UL````````````>P``
  1717. XM`'L`"P````L```````````<``0``)``!``````?/9_``````````!TMN:6=H
  1718. XM=``````*`````0?/:]@'SWG@!\^!N`?/K!`'SZXP!]$DT`````$``````0``
  1719. XM```!``````0G2R<``````0`````!``?17@``"0`.`'H`"@````,``0?17;0`
  1720. XM````!]%$``````````````0'T5NX_____P,```4'T5W$````````````>P``
  1721. XM`'L`"P````L```````````<``0``$``!``````?/].``````````#4%R8VAE
  1722. XM;VQO9VES=``````*`````0?13B`'T5)`!]%<Z`?17/@'T5W@!]%=\`````$`
  1723. XM`````0`````!``````0G02<``````0`````!``?17Q``"0`;`'H`"@````,`
  1724. XM`0?17BP`````!]%>6`````````````4'T5Z(_____P,```4'T5X\````````
  1725. XM````>P```'L`"P````L```````````<``0``(0`!``````?/]/@`````````
  1726. XM"$-A=F5M86X`````"@````$'T5ZP!]%>P`?17M`'T5[@!]%>\`?17P`````!
  1727. XM``````$``````0`````$)T,G``````$``````0`'T6`@``D`*`!Z``H````#
  1728. XM``$'T5\\``````?17V@````````````&!]%?F/____\#```%!]%?3```````
  1729. XM`````'L```![``L````+```````````'``$``",``0`````'S_4P````````
  1730. XM``=(96%L97(`````"@````$'T5_`!]%?T`?17^`'T5_P!]%@``?18!`````!
  1731. XM``````$``````0`````$)T@G``````$``````0`'T6$P``D`-0!Z``H````#
  1732. XM``$'T6!,``````?18'@````````````'!]%@J/____\#```%!]%@7```````
  1733. XM`````'L```![``L````+```````````'``$``"0``0`````'S_C`````````
  1734. XM``=0<FEE<W0`````"@````$'T6#0!]%@X`?18/`'T6$`!]%A$`?182`````!
  1735. XM``````$``````0`````$)U`G``````$``````0`'T6)``(D`-0!Z``H````#
  1736. XM``$'T6%<``````?188@````````````(!]%AN/____\#```%!]%A;```````
  1737. XM`````'L```![``L````+```````````'``$``"@``0`````'S_BP````````
  1738. XM``92;V=U90`````*`````0?18>`'T6'P!]%B``?18A`'T6(@!]%B,`````$`
  1739. XM`````0`````!``````0G4B<``````0`````!``?18U``B0!"`'H`"@````,`
  1740. XM`0?18FP`````!]%BF`````````````D'T6+(_____P,```4'T6)\````````
  1741. XM````>P```'L`"P````L```````````<``0``(@`!``````?1(Y``````````
  1742. XM"%1O=7)I<W0`````"@````$'T6+P!]%C``?18Q`'T6,@!]%C,`?18T`````!
  1743. XM``````$``````0`````$)U0G``````$``````0`'T61@``D`0@!Z``H````#
  1744. XM``$'T6-\``````?18Z@````````````*!]%CV/____\#```%!]%CC```````
  1745. XM`````'L```![``L````+```````````'``$``"$``0`````'T2,8````````
  1746. XM``A386UU<F%I``````H````!!]%D``?19!`'T60@!]%D,`?19$`'T610````
  1747. XM`0`````!``````$`````!"=3)P`````!``````$`!]%P*``)`%X`^@`*````
  1748. XM`P`!!]%DC``````'T62X``````````````?1;\#_____`0``!0?19)P`````
  1749. XM``````#[````^P`+````"P```````````0`!```.``$`````!]%DV```````
  1750. XM```=4&EC:R!A(%)A;F1O;2!#:&%R86-T97(@5'EP90`````*`````0?190`'
  1751. XMT6T`!]%OZ`?1;_@'T7`(!]%P&`````$``````0`````!``````(Q``````$`
  1752. XM`````0`'T7%```D`3P!Z``H````#``$'T7!4``````?1<(`````````````,
  1753. XM!]%PN/____\#```%!]%P9````````````'L```![``L````+```````````'
  1754. XM``$``!T``0`````'T29X``````````E686QK>7)I90`````*`````0?1<.`'
  1755. XMT7#P!]%Q``?1<1`'T7$@!]%Q,`````$``````0`````!``````0G5B<`````
  1756. XM`0`````!````````B0!/`'H`"@````,``0?1<6P`````!]%QF```````````
  1757. XM``T'T7'(_____P,```4'T7%\````````````>P```'L`"P````L`````````
  1758. XM``<``0``)@`!``````?1)A``````````!U=I>F%R9``````*`````0?1<?`'
  1759. XMT7(`!]%R$`?1<B`'T7(P!]%R0`````$``````0`````!``````0G5R<`````
  1760. X'`0`````!``?1
  1761. X`
  1762. Xend
  1763. END_OF_FILE
  1764. if test 3696 -ne `wc -c <'sys/amiga/charwin.uu'`; then
  1765.     echo shar: \"'sys/amiga/charwin.uu'\" unpacked with wrong size!
  1766. fi
  1767. # end of 'sys/amiga/charwin.uu'
  1768. echo shar: End of archive 14 \(of 33\).
  1769. cp /dev/null ark14isdone
  1770. MISSING=""
  1771. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ; do
  1772.     if test ! -f ark${I}isdone ; then
  1773.     MISSING="${MISSING} ${I}"
  1774.     fi
  1775. done
  1776. if test "${MISSING}" = "" ; then
  1777.     echo You have unpacked all 33 archives.
  1778.     echo "Now execute ./patchit.sh"
  1779.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1780. else
  1781.     echo You still need to unpack the following archives:
  1782.     echo "        " ${MISSING}
  1783. fi
  1784. ##  End of shell archive.
  1785. exit 0
  1786.