

SRCZIP= entry.a86 dummy.a86 jmptbl0.a86 \
	monobj16.a86 monobj8.a86 monobj2.a86 monobj0.a86 monobjt.a86 \
	monout16.a86 monout8.a86 monout2.a86 monout0.a86 monoutt.a86 \
	imouse.a86 timouse.a86 externs.a86 \
	 ibmmdvsp.a86 700mdvsp.a86 ibmmdvsp.a86 t10dvsp.a86 t20dvsp.a86 \
	 egammre1.a86 egammre2.a86 \
	 monmmre1.a86 monmmre2.a86 \
	 t10mmre1.a86 t10mmre2.a86 \
	 mblit.a86 cblit.a86 \
	 monspblt.a86 rastop.a86 trastop.a86 \
	 vgamblit.a86 vgablit.a86 \
	 mcgmblit.a86 mcgblit.a86 \
	 egamblit.a86 egablit.a86 \
	 eh1mblit.a86 eh1blit.a86 \
	 eh8mblit.a86 eh8blit.a86 \
	 elfmblit.a86 elfblit.a86 \
	 el8mblit.a86 el8blit.a86 \
	 cgamblit.a86 cgablit.a86 \
	 attmblit.a86 attblit.a86 \
	 hrcmblit.a86 hrcblit.a86 \
	 p64mblit.a86 p64blit.a86 \
	 p75mblit.a86 p75blit.a86 \
	 khmmblit.a86 khmblit.a86 \
	 t10mblit.a86 t10blit.a86 \
	 t12mblit.a86 t12blit.a86 \
	 t20mblit.a86 t20blit.a86 \
	 t2mmblit.a86 t2mblit.a86 \
	 opttext.a86 opttext1.a86 opttdraw.a86 lorespat.a86 \
	 8opttext.a86 mopttext.a86 copttext.a86 hirespat.a86 topttext.a86 \
	 voptdraw.a86 vgapat.a86 \
	 mcptdraw.a86 mcgpat.a86 \
	 eoptdraw.a86 egapat.a86 \
	 e1ptdraw.a86 eh1pat.a86 \
	 e8ptdraw.a86 eh8pat.a86 \
	 elptdraw.a86 elfpat.a86 \
	 elqtdraw.a86 el8pat.a86 \
	 cgptdraw.a86 cgapat.a86 \
	 atptdraw.a86 attpat.a86 \
	 hrptdraw.a86 hrcpat.a86 \
	 poptdraw.a86 p64pat.a86 \
	 p7ptdraw.a86 p75pat.a86 \
	 kmptdraw.a86 khmpat.a86 \
	 t1ptdraw.a86 t10pat.a86 \
	 t12tdraw.a86 t12pat.a86 \
	 t2ptdraw.a86 t20pat.a86 \
	 tmptdraw.a86 t2mpat.a86 \
	 popttext.a86 p640.a86 p752.a86 \
	 vgafont.a86 vgacp.a86 \
	 egafont.a86 egacp.a86 \
	 cgafont.a86 cgacp.a86 \
	 vgafont0.a86 vga_drv0.a86 vgaregs.a86 vgadev.a86 \
	 egafont0.a86 ega_drv0.a86 egaregs.a86 egadev.a86 \
	 cgafont0.a86 cga_drv0.a86 cgaregs.a86 cgadev.a86 \
	              att_drv0.a86 attregs.a86 attdev.a86 \
	              eh1_drv0.a86 eh1regs.a86 eh1dev.a86 \
	              eh8_drv0.a86 eh8regs.a86 eh8dev.a86 \
	              elf_drv0.a86 elfregs.a86 elfdev.a86 \
	              el8_drv0.a86 el8regs.a86 el8dev.a86 \
	              p64_drv0.a86 p64regs.a86 p64dev.a86 \
	              t10_drv0.a86 t10regs.a86 t10dev.a86 \
	              t12_drv0.a86 t12regs.a86 t12dev.a86 \
	              t20_drv0.a86 t20regs.a86 t20dev.a86 \
	              t2m_drv0.a86 t2mregs.a86 t2mdev.a86 \
	              p75_drv0.a86 p752regs.a86 p752dev.a86 \
	              hrc_drv0.a86 hercregs.a86 hercdev.a86 \
	              mcg_drv0.a86 mcgaregs.a86 mcgadev.a86 \
	              khm_drv0.a86 khmregs.a86 khmdev.a86 \
	 isin.a86 enddseg.a86 \
	 sdpsc3.inp \
	 sdpsm3.inp \
	 sdehf3.inp \
	 sdeh83.inp \
	 sdehm3.inp \
	 sdelf3.inp \
	 sdel83.inp \
	 sdcga3.inp \
	 sdatt3.inp \
	 sdhrc3.inp \
	 sdp643.inp \
	 sdp753.inp \
	 sdkhm3.inp \
	 sdt103.inp \
	 sdt123.inp \
	 sdt203.inp \
	 sdt2m3.inp \
	 copying.txt readme.txt source.txt Makefile  

#
# Drivers I can compare byte-for-byte with the GEM 1.x originals
#
GEM_DRIVERS=sdcga3.cga sdehf3.ega sdhrc3.ega \
	      sdeh83.ega sdelf3.cga sdehm3.ega \
	      sdel83.cga sdkhm3.ega sdt103.cga \
	      sdt123.cga sdt203.vga sdt2m3.vga

#
# Drivers where I haven't got the GEM 1.x original, perhaps because it 
# never existed.
#
GUESS_DRIVERS=sdp643.vga sdp753.ega sdpsc3.vga \
	      sdpsm3.vga sdatt3.ega 

all:	$(GEM_DRIVERS) $(GUESS_DRIVERS)

#
# Ensure that the linker INP file is big enough - if it isn't you get 
# strange "Syntax error" messages. To be safe add 128 extra spaces to the
# end; LINK86 only reads up to the last multiple of 128 bytes.
#
sdpsc3.vga:	entry.obj jmptbl0.obj monobj16.obj  \
		monout16.obj vgafont0.obj \
		popttext.obj isin.obj dummy.obj vga_drv0.obj \
		vgamblit.obj vgablit.obj \
		voptdraw.obj vgapat.obj enddseg.obj
	link86 sdpsc3[i

sdehf3.ega:	entry.obj jmptbl0.obj monobj16.obj  \
		monout16.obj egafont0.obj \
		popttext.obj isin.obj dummy.obj ega_drv0.obj \
		egamblit.obj egablit.obj \
		eoptdraw.obj egapat.obj enddseg.obj sdehf3.inp
	link86 sdehf3[i

sdeh83.ega:	entry.obj jmptbl0.obj monobj8.obj  \
		monout8.obj egafont0.obj \
		8opttext.obj isin.obj dummy.obj eh8_drv0.obj \
		eh8mblit.obj eh8blit.obj \
		e8ptdraw.obj eh8pat.obj enddseg.obj sdeh83.inp
	link86 sdeh83[i

sdehm3.ega:	entry.obj jmptbl0.obj monobj2.obj  \
		monout2.obj egafont0.obj \
		mopttext.obj isin.obj dummy.obj eh1_drv0.obj \
		eh1mblit.obj eh1blit.obj \
		e1ptdraw.obj eh1pat.obj enddseg.obj
	link86 sdehm3[i

sdelf3.cga:	entry.obj jmptbl0.obj monobj16.obj  \
		monout16.obj cgafont0.obj \
		popttext.obj isin.obj dummy.obj elf_drv0.obj \
		elfmblit.obj elfblit.obj \
		elptdraw.obj elfpat.obj enddseg.obj sdelf3.inp
	link86 sdelf3[i

sdel83.cga:	entry.obj jmptbl0.obj monobj16.obj  \
		monout16.obj cgafont0.obj \
		popttext.obj isin.obj dummy.obj el8_drv0.obj \
		el8mblit.obj el8blit.obj \
		elqtdraw.obj el8pat.obj enddseg.obj sdel83.inp
	link86 sdel83[i


sdcga3.cga:	entry.obj jmptbl0.obj monobj2.obj  \
		monout2.obj cgafont0.obj \
		mopttext.obj isin.obj dummy.obj cga_drv0.obj \
		cgamblit.obj cgablit.obj \
		cgptdraw.obj cgapat.obj enddseg.obj
	link86 sdcga3[i

sdatt3.ega:	entry.obj jmptbl0.obj monobj2.obj  \
		monout2.obj vgafont0.obj \
		mopttext.obj isin.obj dummy.obj att_drv0.obj \
		attmblit.obj attblit.obj \
		atptdraw.obj attpat.obj enddseg.obj
	link86 sdatt3[i

sdhrc3.ega:	entry.obj jmptbl0.obj monobj2.obj  \
		monout2.obj egafont0.obj \
		mopttext.obj isin.obj dummy.obj hrc_drv0.obj \
		hrcmblit.obj hrcblit.obj \
		hrptdraw.obj hrcpat.obj enddseg.obj sdhrc3.inp
	link86 sdhrc3[i

sdpsm3.vga:	entry.obj jmptbl0.obj monobj2.obj  \
		monout2.obj vgafont0.obj \
		mopttext.obj isin.obj dummy.obj mcg_drv0.obj \
		mcgmblit.obj mcgblit.obj \
		mcptdraw.obj mcgpat.obj enddseg.obj
	link86 sdpsm3[i

sdp643.vga:	entry.obj jmptbl0.obj monobj16.obj  \
		monout16.obj vgafont0.obj \
		popttext.obj isin.obj dummy.obj p64_drv0.obj \
		p64mblit.obj p64blit.obj \
		poptdraw.obj p64pat.obj enddseg.obj p640.obj
	link86 sdp643[i

sdp753.ega:	entry.obj jmptbl0.obj monobj16.obj  \
		monout16.obj egafont0.obj \
		popttext.obj isin.obj dummy.obj p75_drv0.obj \
		p75mblit.obj p75blit.obj \
		p7ptdraw.obj p75pat.obj enddseg.obj p752.obj
	link86 sdp753[i

sdkhm3.ega:	entry.obj jmptbl0.obj monobj2.obj  \
		monout2.obj egafont0.obj \
		mopttext.obj isin.obj dummy.obj khm_drv0.obj \
		khmmblit.obj khmblit.obj \
		kmptdraw.obj khmpat.obj enddseg.obj
	link86 sdkhm3[i

sdt103.cga:	entry.obj jmptbl0.obj monobj2.obj  \
		monout2.obj cgafont0.obj \
		mopttext.obj isin.obj dummy.obj t10_drv0.obj \
		t10mblit.obj t10blit.obj \
		t1ptdraw.obj t10pat.obj enddseg.obj
	link86 sdt103[i

sdt123.cga:	entry.obj jmptbl0.obj monobj2.obj  \
		monout2.obj cgafont0.obj \
		mopttext.obj isin.obj dummy.obj t12_drv0.obj \
		t12mblit.obj t12blit.obj \
		t12tdraw.obj t12pat.obj enddseg.obj
	link86 sdt123[i

sdt203.vga:	entry.obj jmptbl0.obj monobj2.obj  \
		monout2.obj vgafont0.obj \
		mopttext.obj isin.obj dummy.obj t20_drv0.obj \
		t20mblit.obj t20blit.obj \
		t2ptdraw.obj t20pat.obj enddseg.obj
	link86 sdt203[i

sdt2m3.vga:	entry.obj jmptbl0.obj monobjt.obj  \
		monoutt.obj vgafont0.obj \
		topttext.obj isin.obj dummy.obj t2m_drv0.obj \
		t2mmblit.obj t2mblit.obj \
		tmptdraw.obj t2mpat.obj enddseg.obj
	link86 sdt2m3[i


%.obj:	%.a86 externs.a86
	rasm86 $< $$pzsz

cga_drv0.obj:	cga_drv0.a86 cgaregs.a86 externs.a86 ibmmdvsp.a86 imouse.a86 \
		monmmre1.a86 monmmre2.a86 cgadev.a86
t10_drv0.obj:	t10_drv0.a86 t10regs.a86 externs.a86 t10dvsp.a86 timouse.a86 \
		t10mmre1.a86 t10mmre2.a86 t10dev.a86
t12_drv0.obj:	t12_drv0.a86 t12regs.a86 externs.a86 ibmmdvsp.a86 imouse.a86 \
		monmmre1.a86 monmmre2.a86 t12dev.a86
t20_drv0.obj:	t20_drv0.a86 t20regs.a86 externs.a86 t20dvsp.a86 timouse.a86 \
		t10mmre1.a86 t10mmre2.a86 t20dev.a86
t2m_drv0.obj:	t2m_drv0.a86 t2mregs.a86 externs.a86 t20dvsp.a86 timouse.a86 \
		t10mmre1.a86 t10mmre2.a86 t2mdev.a86
att_drv0.obj:	att_drv0.a86 attregs.a86 externs.a86 ibmmdvsp.a86 imouse.a86 \
		monmmre1.a86 monmmre2.a86 attdev.a86
hrc_drv0.obj:	hrc_drv0.a86 hercregs.a86 externs.a86 ibmmdvsp.a86 \
		imouse.a86 monmmre1.a86 monmmre2.a86 hercdev.a86
ega_drv0.obj:	ega_drv0.a86 egaregs.a86 externs.a86 ibmmdvsp.a86 imouse.a86 \
		egammre1.a86 egammre2.a86 egadev.a86
eh8_drv0.obj:	eh8_drv0.a86 eh8regs.a86 externs.a86 ibmmdvsp.a86 imouse.a86 \
		egammre1.a86 egammre2.a86 eh8dev.a86
eh1_drv0.obj:	eh1_drv0.a86 eh1regs.a86 externs.a86 ibmmdvsp.a86 imouse.a86 \
		monmmre1.a86 monmmre2.a86 eh1dev.a86
elf_drv0.obj:	elf_drv0.a86 elfregs.a86 externs.a86 ibmmdvsp.a86 imouse.a86 \
		egammre1.a86 egammre2.a86 elfdev.a86
vga_drv0.obj:	vga_drv0.a86 vgaregs.a86 externs.a86 ibmmdvsp.a86 imouse.a86 \
		egammre1.a86 egammre2.a86 vgadev.a86
mcg_drv0.obj:	mcg_drv0.a86 mcgaregs.a86 externs.a86 ibmmdvsp.a86 \
		imouse.a86 monmmre1.a86 monmmre2.a86 mcgadev.a86
p64_drv0.obj:	p64_drv0.a86 p64regs.a86 externs.a86 ibmmdvsp.a86 imouse.a86 \
		egammre1.a86 egammre2.a86 p64dev.a86
p75_drv0.obj:	p75_drv0.a86 p752regs.a86 externs.a86 ibmmdvsp.a86 imouse.a86 \
		egammre1.a86 egammre2.a86 p752dev.a86
khm_drv0.obj:	khm_drv0.a86 khmregs.a86 externs.a86 ibmmdvsp.a86 imouse.a86 \
		monmmre1.a86 monmmre2.a86 khmdev.a86

vgamblit.obj:	vgamblit.a86 mblit.a86
vgablit.obj:	vgablit.a86 cblit.a86
voptdraw.obj:	voptdraw.a86 opttdraw.a86
vgapat.obj:	vgapat.a86 hirespat.a86

egamblit.obj:	egamblit.a86 mblit.a86
egablit.obj:	egablit.a86 cblit.a86
eoptdraw.obj:	eoptdraw.a86 opttdraw.a86
egapat.obj:	egapat.a86 hirespat.a86

eh8mblit.obj:	eh8mblit.a86 mblit.a86
eh8blit.obj:	eh8blit.a86 cblit.a86
e8ptdraw.obj:	e8ptdraw.a86 opttdraw.a86
eh8pat.obj:	eh8pat.a86 hirespat.a86

eh1mblit.obj:	eh1mblit.a86 monspblt.a86
eh1blit.obj:	eh1blit.a86 rastop.a86
e1ptdraw.obj:	e1ptdraw.a86 opttdraw.a86
eh1pat.obj:	eh1pat.a86 hirespat.a86

elfmblit.obj:	elfmblit.a86 mblit.a86
elfblit.obj:	elfblit.a86 cblit.a86
elptdraw.obj:	elptdraw.a86 opttdraw.a86
elfpat.obj:	elfpat.a86 lorespat.a86

el8mblit.obj:	el8mblit.a86 mblit.a86
el8blit.obj:	el8blit.a86 cblit.a86
elqtdraw.obj:	elqtdraw.a86 opttdraw.a86
el8pat.obj:	el8pat.a86 lorespat.a86

cgamblit.obj:	cgamblit.a86 monspblt.a86
cgablit.obj:	cgablit.a86 rastop.a86
cgptdraw.obj:	cgptdraw.a86 opttdraw.a86
cgapat.obj:	cgapat.a86 lorespat.a86

t10mblit.obj:	t10mblit.a86 monspblt.a86
t10blit.obj:	t10blit.a86 rastop.a86
t1ptdraw.obj:	t1ptdraw.a86 opttdraw.a86
t10pat.obj:	t10pat.a86 lorespat.a86

t12mblit.obj:	t12mblit.a86 monspblt.a86
t12blit.obj:	t12blit.a86 rastop.a86
t12tdraw.obj:	t12tdraw.a86 opttdraw.a86
t12pat.obj:	t12pat.a86 lorespat.a86

t20mblit.obj:	t20mblit.a86 monspblt.a86
t20blit.obj:	t20blit.a86 trastop.a86
t2ptdraw.obj:	t2ptdraw.a86 opttdraw.a86
t20pat.obj:	t20pat.a86 lorespat.a86

t2mmblit.obj:	t2mmblit.a86 monspblt.a86
t2mblit.obj:	t2mblit.a86 trastop.a86
tmptdraw.obj:	tmptdraw.a86 opttdraw.a86
t2mpat.obj:	t2mpat.a86 lorespat.a86

attmblit.obj:	attmblit.a86 monspblt.a86
attblit.obj:	attblit.a86 rastop.a86
atptdraw.obj:	atptdraw.a86 opttdraw.a86
attpat.obj:	attpat.a86 hirespat.a86

hrcmblit.obj:	hrcmblit.a86 monspblt.a86
hrcblit.obj:	hrcblit.a86 rastop.a86
hrptdraw.obj:	hrptdraw.a86 opttdraw.a86
hrcpat.obj:	hrcpat.a86 hirespat.a86

mcgmblit.obj:	mcgmblit.a86 monspblt.a86
mcgblit.obj:	mcgblit.a86 rastop.a86
mcptdraw.obj:	mcptdraw.a86 opttdraw.a86
mcgpat.obj:	mcgpat.a86 hirespat.a86

p64mblit.obj:	p64mblit.a86 monspblt.a86
p64blit.obj:	p64blit.a86 rastop.a86
poptdraw.obj:	poptdraw.a86 opttdraw.a86
p64pat.obj:	p64pat.a86 hirespat.a86

p75mblit.obj:	p75mblit.a86 monspblt.a86
p75blit.obj:	p75blit.a86 rastop.a86
p7ptdraw.obj:	p7ptdraw.a86 opttdraw.a86
p75pat.obj:	p75pat.a86 hirespat.a86

monobj16.obj:	monobj16.a86 monobj0.a86
monobj8.obj:	monobj8.a86 monobj0.a86
monobj2.obj:	monobj2.a86 monobj0.a86

monout16.obj:	monout16.a86 monout0.a86
monout8.obj:	monout8.a86 monout0.a86
monout2.obj:	monout2.a86 monout0.a86

khmmblit.obj:	khmmblit.a86 monspblt.a86
khmblit.obj:	khmblit.a86 rastop.a86
kmptdraw.obj:	kmptdraw.a86 opttdraw.a86
khmpat.obj:	khmpat.a86 hirespat.a86


topttext.obj:	topttext.a86 opttext.a86
mopttext.obj:	mopttext.a86 opttext.a86
popttext.obj:	popttext.a86 opttext1.a86
8opttext.obj:	8opttext.a86 opttext1.a86

zip:	$(SRCZIP) $(BINZIP)
	zip g13drvs.zip $(SRCZIP)
