[comp.sys.amiga] Fix to allow more than 24 lines in VT100R2.8

jw@sics.se (Johan Widen) (03/05/88)

Here is fix to allow a screen size larger than 24 lines in VT100R2.8.
I have also included some changes that are necessary in order to get
the code through Lattice 4.0.

*** :vt100.h.old	Tue Mar 01 14:00:56 1988
--- vt100.h	Sat Mar 05 01:07:32 1988
***************
*** 24,31 ****
  #define	VERSION	"VT100 (V2.8 ACS 880117) Terminal Window"
  
  /*********** ########  define the compiler type here ######## ********/
! #define	LATTICE	0
! #define MANX	1
  
  /*  compiler directives to fetch the necessary header files */
  #include <exec/types.h>
--- 24,31 ----
  #define	VERSION	"VT100 (V2.8 ACS 880117) Terminal Window"
  
  /*********** ########  define the compiler type here ######## ********/
! #define	LATTICE	1
! #define MANX	0
  
  /*  compiler directives to fetch the necessary header files */
  #include <exec/types.h>
***************
*** 52,57 ****
--- 52,67 ----
  #include <libraries/dosextens.h>
  #include <devices/timer.h>
  
+ #if LATTICE
+ #include <stdlib.h>
+ #include <string.h>
+ #include <proto/exec.h>
+ #include <proto/graphics.h>
+ #include <proto/intuition.h>
+ #include <proto/dos.h>
+ #include <proto/timer.h>
+ #endif
+ 
  #if MANX
  #include <functions.h>
  #undef NULL
***************
*** 106,114 ****
--- 116,126 ----
  #define BEEPFREQ    1000L
  #define COLORCLOCK  3579545L
  
+ #if MANX
  extern struct	MsgPort *CreatePort();
  extern char	*malloc(),*strcpy(),*fgets();
  extern long	ftell();
+ #endif
  
  extern int	multi;		    /* flags multi file transfers */
  extern int	server;
***************
*** 235,238 ****
  /* expand.c */
  extern char **expand();
  extern int  set_dir(), free_expand();
- 
--- 247,249 ----
*** :init.c.old	Fri Mar 04 14:54:06 1988
--- init.c	Sat Mar 05 02:32:40 1988
***************
*** 213,218 ****
--- 213,219 ----
      FILE    *fd = NULL;
      char    *p, *t, *ifile;
      int     l, dont_init = 0;
+     int	    screen_height;
  
      doing_init = 1;	/* make sure we only allow INIT script commands */
      if (argc > 1) {
***************
*** 277,282 ****
--- 278,284 ----
  	cleanup("can't open graphics library",2);
  
      /* Now set up all the screen info as necessary */
+     screen_height = GfxBase->NormalDisplayRows ;
      if(p_lines == 0)	/* Wants to use everything available */
  	    if(p_interlace)
  		p_lines = ((GfxBase->NormalDisplayRows*2) - 6) / 8;
***************
*** 284,299 ****
  		p_lines = ((GfxBase->NormalDisplayRows - 6) / 8);
  
      if (p_interlace == 0) {
- 	if (p_lines > 24) p_lines = 24;
  	MINY = 14;
  	NewWindow.Height    = (long)((p_lines*8)+8);
  	}
      else {
- 	if (p_lines > 48) p_lines = 48;
  	MINY = 16;
  	NewScreen.ViewModes |= LACE;
  	NewWindow.Height    = (long)((p_lines*8)+10);
  	}
      NewWindow.MinHeight = NewWindow.Height;
      NewWindow.MaxHeight = NewWindow.Height;
      NewWindow.TopEdge	= 0L;
--- 286,300 ----
  		p_lines = ((GfxBase->NormalDisplayRows - 6) / 8);
  
      if (p_interlace == 0) {
  	MINY = 14;
  	NewWindow.Height    = (long)((p_lines*8)+8);
  	}
      else {
  	MINY = 16;
  	NewScreen.ViewModes |= LACE;
  	NewWindow.Height    = (long)((p_lines*8)+10);
  	}
+     NewScreen.Height    = NewWindow.Height;
      NewWindow.MinHeight = NewWindow.Height;
      NewWindow.MaxHeight = NewWindow.Height;
      NewWindow.TopEdge	= 0L;
***************
*** 307,318 ****
  	if (p_depth < 1) p_depth = 1;
  	NewScreen.Depth     = (long)p_depth;
  
- 	NewScreen.Height    = (long)((p_lines*8)+16);
- 
  	if (p_interlace == 1)
! 	    NewScreen.TopEdge	= (long)(400 - NewScreen.Height);
  	else
! 	    NewScreen.TopEdge	= (long)(208 - NewScreen.Height);
  	}
      else {
  	p_depth			= 2L;
--- 308,317 ----
  	if (p_depth < 1) p_depth = 1;
  	NewScreen.Depth     = (long)p_depth;
  
  	if (p_interlace == 1)
! 	    NewScreen.TopEdge	= (long)(screen_height*2 - NewScreen.Height);
  	else
! 	    NewScreen.TopEdge	= (long)(screen_height - NewScreen.Height);
  	}
      else {
  	p_depth			= 2L;
*** :window.c.old	Tue Mar 01 14:01:14 1988
--- window.c	Sat Mar 05 01:51:58 1988
***************
*** 74,81 ****
  int  getinp;
      {
      ULONG class;
-     USHORT position, RemoveGadget();
-     unsigned int code, qual;
      int  lprmpt, lname;
      struct IntuiMessage *Msg;
  
--- 74,79 ----

Johan Widen
SICS, PO Box 1263, S-164 28 KISTA, SWEDEN
Tel: +46 8 752 15 32	Ttx: 812 61 54 SICS S	Fax: +46 8 751 72 30
Internet: jw@sics.se or {mcvax,munnari,ukc,unido}!enea!sics.se!jw
-- 
Johan Widen
SICS, PO Box 1263, S-164 28 KISTA, SWEDEN
Tel: +46 8 752 15 32	Ttx: 812 61 54 SICS S	Fax: +46 8 751 72 30
Internet: jw@sics.se or {mcvax,munnari,ukc,unido}!enea!sics.se!jw