# initialize Squeal Mode

# Piglet factory, 16 teats on a side


L sow


########-----------------------------------------------------------


### fill the sty with IRQups for each IRQ or other event to be shunted

szIRQup=$((endIRQup-IRQup))	# 38

= $szIRQup to C
= 16 to D
= $IRQup to SI
#= 0xb8400 to DI
= $sty to DI
 call patternfill


########### fake-INTs-from-pmode replication
#
FINTsz=$((endFINT-FINT))	# 27

= FINTsz to C
= 16 to D
= $FINT to SI
= $wallow to DI
#= 0xb8800 to DI
 call patternfill

#
#
### set event number bytes in each instantiation of IRQup


pigoffset=$((pigname-IRQup-1))

= 16 to C
= 0x20 to D
= $((sty+pigoffset)) to DI
#= $((0xb8400+pigoffset)) to DI

L nextpiglet
	= D to byte @ DI
	1+ D
	+ $szIRQup to DI 
when C-1 			nextpiglet




#######=============================================================
####  get the IRQ legvec offset:segs and garnish the FINTs with them 
# After copying the legvecs. Using the original 8086 vectors here

FINToffset=$((eartag-FINT-4))

= 16 to C
= 64 to SI				# INT 0x10 
#= $((0xb8800+FINToffset)) to DI
= $((wallow+FINToffset)) to DI

L nexstrip
	= @ SI to A
	= A to @ DI	
	+ 4 to SI
        + $FINTsz to DI
when C-1                        nexstrip


#######''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
#     #  hook the IRQups into the k0 vectors 
#     #   Ha3sm IRQs @ offset 0x20 * 4

= 0x80 to DI
= $sty to A
= 16 to C
L pIRQup
	= A to @ DI		# quad, assumes all in low 64k, seg=0 
	+ szIRQup to A		# i.e. no shifting of the high dual
	+ 4 to DI
when C-1		pIRQup




##### +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
## declare individual FINTnum call addresses in compembly state

FINT10=$((wallow+(FINTsz*0)))
FINT11=$((wallow+(FINTsz*1)))
FINT12=$((wallow+(FINTsz*2)))
FINT13=$((wallow+(FINTsz*3)))
FINT14=$((wallow+(FINTsz*4)))
FINT15=$((wallow+(FINTsz*5)))
FINT16=$((wallow+(FINTsz*6)))
FINT17=$((wallow+(FINTsz*7)))
FINT18=$((wallow+(FINTsz*8)))
FINT19=$((wallow+(FINTsz*9)))
FINT1a=$((wallow+(FINTsz*10)))
FINT1b=$((wallow+(FINTsz*11)))
FINT1c=$((wallow+(FINTsz*12)))
FINT1d=$((wallow+(FINTsz*13)))
FINT1e=$((wallow+(FINTsz*14)))
FINT1f=$((wallow+(FINTsz*15)))

# so it's e.g.    call $FINT10   for vidBIOS from pmode.

