Path: utzoo!attcan!uunet!nbires!isis!csm9a!japplega From: japplega@csm9a.UUCP (Joe Applegate) Newsgroups: comp.os.minix Subject: Tandy 1000 Minix diffs Keywords: Tandy 1000 Minix 1.3 cdiff Message-ID: <758@csm9a.UUCP> Date: 3 Aug 88 03:18:10 GMT Organization: Colorado School of Mines Lines: 218 This shar file will create 3 cdiff's to patch the Minix 1.3 kernel to work with a Tandy 1000 or 1000A... they may or may not work with the new SX models. These diffs are derived from a very early MINIX fix posted by John Clark Cdiff's will be produced for const.h main.c and floppy.c A makefile (tn_makefile) will also be generated # ------- cut here and pass to sh ------- # Tandy 1000 and 1000A cdiffs for Minix 1.3 echo x - const.cdiff sed '/^X/s///' > const.cdiff << '/' X*** const.h Tue Aug 2 20:22:09 1988 X--- ../kernel/const.h Tue Aug 2 19:30:27 1988 X*************** X*** 25,31 **** X #define ETHER_VECTOR 11 /* ethernet interrupt vector */ X #define SECONDARY_VECTOR 11 /* RS232 interrupt vector for port 2 */ X #define RS232_VECTOR 12 /* RS232 interrupt vector for port 1 */ X! #define XT_WINI_VECTOR 13 /* xt winchester interrupt vector */ X #define FLOPPY_VECTOR 14 /* floppy disk interrupt vector */ X #define PRINTER_VECTOR 15 /* line printer interrupt vector */ X #define SYS_VECTOR 32 /* system calls are made with int SYSVEC */ X--- 25,38 ---- X #define ETHER_VECTOR 11 /* ethernet interrupt vector */ X #define SECONDARY_VECTOR 11 /* RS232 interrupt vector for port 2 */ X #define RS232_VECTOR 12 /* RS232 interrupt vector for port 1 */ X! X! #ifndef T1K X! #define XT_WINI_VECTOR 13 /* xt winchester interrupt vector */ X! #endif /* not Tandy 1000 */ X! #ifdef T1K X! #define XT_WINI_VECTOR 10 /* Tandy 1000 winchestor int. vector */ X! #endif /* Tandy 1000 */ X! X #define FLOPPY_VECTOR 14 /* floppy disk interrupt vector */ X #define PRINTER_VECTOR 15 /* line printer interrupt vector */ X #define SYS_VECTOR 32 /* system calls are made with int SYSVEC */ / echo x - floppy.cdiff sed '/^X/s///' > floppy.cdiff << '/' X*** floppy.c Tue Aug 2 20:22:23 1988 X--- ../kernel/floppy.c Tue Aug 2 19:30:38 1988 X*************** X*** 369,375 **** X */ X X if ( (motor_goal & MOTOR_MASK) != (motor_status & MOTOR_MASK) ) { X! port_out(DOR, motor_goal); X motor_status = motor_goal; X } X } X--- 369,380 ---- X */ X X if ( (motor_goal & MOTOR_MASK) != (motor_status & MOTOR_MASK) ) { X! #ifndef T1K X! port_out(DOR, motor_goal); X! #endif /* not Tandy 1000 */ X! #ifdef T1K X! port_out(DOR, motor_goal | 0X0F); X! #endif /* Tandy 1000 */ X motor_status = motor_goal; X } X } / echo x - main.cdiff sed '/^X/s///' > main.cdiff << '/' X*** main.c Tue Aug 2 20:22:26 1988 X--- ../kernel/main.c Tue Aug 2 19:30:54 1988 X*************** X*** 177,184 **** X pick_proc(); X X /* Now go to the assembly code to start running the current process. */ X! port_out(INT_CTLMASK, 0); /* do not mask out any interrupts in 8259A */ X! port_out(INT2_MASK, 0); /* same for second interrupt controller */ X restart(); X } X X--- 177,190 ---- X pick_proc(); X X /* Now go to the assembly code to start running the current process. */ X! #ifndef T1K X! port_out(INT_CTLMASK, 0); /* do not mask out any interrupts in 8259A */ X! port_out(INT2_MASK, 0); /* same for second interrupt controller */ X! #endif /* not Tandy 1000 */ X! #ifdef T1K X! port_out(INT_CTLMASK, 0X20); /* mask interrupt 5 */ X! /* Tandy's do not use the 2nd interrupt controller */ X! #endif /* Tandy 1000 */ X restart(); X } X / echo x - tn_makefile sed '/^X/s///' > tn_makefile << '/' X# The kernel dir contains xt_wini.c and at_wini.c. Before running make X# you must copy one of these to wini.c, depending on which controller you X# have. If you do not have a hard disk, you MUST choose one of them at random. X# On a PC, cpp and cem are in /lib and will be removed to make space while X# linking the kernel. On an AT, they are in /usr/lib are are not removed. X# This is because they have to be in /lib on a PC; the diskette is too small X# for them to be in /usr/lib. You can change this by editing commands/cc.c. X# X# Normally, MINIX scrolls the screen using the 6845's registers. However, X# on some EGA cards (those that are not IBM compatible), the 6845 is not X# properly emulated. On these machines, it is necessary to scroll in X# software by copying. This is much slower, but it works. The CFLAGS flags are: X# X# -Di8088 - required on an 8088/80286/80386 CPU; forbidden on a 68000 X# -F - run cpp and cem sequentially (used when memory is tight) X# -T. - put temporaries in working directory (when RAM disk is small) X# X# In the standard distribution, the following defaults are set X# PC: CFLAGS = -Di8088 -F -T. X# Tandy: CFLAGS = -Di8088 -DT1K -F -T. X# AT: CFLAGS = -Di8088 -F X# XCFLAGS= -Di8088 -DT1K -F -T. Xh=../h Xl=/usr/lib X Xobj = mpx88.s main.s tty.s floppy.s wini.s system.s proc.s clock.s memory.s \ X printer.s table.s klib88.s dmp.s X Xcobjs = main.s tty.s floppy.s wini.s system.s proc.s clock.s memory.s \ X printer.s table.s dmp.s X X Xkernel: makefile $(obj) $l/libc.a X @echo "Start linking Kernel." X @echo "On a PC, /lib/* will be removed to make space on RAM disk" X @echo "If linking fails due to lack of space on 2/1, rm xx_wini.c" X @rm -f /lib/cem /lib/cpp /tmp/* X @asld -o kernel $(obj) $l/libc.a $l/end.s X @echo "Kernel done. On a PC, restore /lib/cem and /lib/cpp manually" X Xclean: X rm -f $(cobjs) X Xclock.s: const.h type.h $h/const.h $h/type.h Xclock.s: $h/callnr.h Xclock.s: $h/com.h Xclock.s: $h/error.h Xclock.s: $h/signal.h Xclock.s: glo.h Xclock.s: proc.h X Xfloppy.s: const.h type.h $h/const.h $h/type.h Xfloppy.s: $h/callnr.h Xfloppy.s: $h/com.h Xfloppy.s: $h/error.h Xfloppy.s: glo.h Xfloppy.s: proc.h X X Xdmp.s: const.h type.h $h/const.h $h/type.h Xdmp.s: $h/callnr.h Xdmp.s: $h/com.h Xdmp.s: $h/error.h Xdmp.s: glo.h Xdmp.s: proc.h X Xmain.s: const.h type.h $h/const.h $h/type.h Xmain.s: $h/callnr.h Xmain.s: $h/com.h Xmain.s: $h/error.h Xmain.s: glo.h Xmain.s: proc.h X Xmemory.s: const.h type.h $h/const.h $h/type.h Xmemory.s: $h/callnr.h Xmemory.s: $h/com.h Xmemory.s: $h/error.h Xmemory.s: proc.h X Xprinter.s: const.h type.h $h/const.h $h/type.h Xprinter.s: $h/callnr.h Xprinter.s: $h/com.h Xprinter.s: $h/error.h Xprinter.s: proc.h Xprinter.s: glo.h X Xproc.s: const.h type.h $h/const.h $h/type.h Xproc.s: $h/callnr.h Xproc.s: $h/com.h Xproc.s: $h/error.h Xproc.s: glo.h Xproc.s: proc.h X Xsystem.s: const.h type.h $h/const.h $h/type.h Xsystem.s: $h/callnr.h Xsystem.s: $h/com.h Xsystem.s: $h/error.h Xsystem.s: $h/signal.h Xsystem.s: glo.h Xsystem.s: proc.h X Xtable.s: const.h type.h $h/const.h $h/type.h $h/com.h Xtable.s: glo.h Xtable.s: proc.h X Xtty.s: const.h type.h $h/const.h $h/type.h Xtty.s: $h/callnr.h Xtty.s: $h/com.h Xtty.s: $h/error.h Xtty.s: $h/sgtty.h Xtty.s: $h/signal.h Xtty.s: glo.h Xtty.s: proc.h X Xwini.s: const.h type.h $h/const.h $h/type.h Xwini.s: $h/callnr.h Xwini.s: $h/com.h Xwini.s: $h/error.h Xwini.s: proc.h /