	load 'macros.dump'
	include 'driver.equ'
	include 'wp.equ'

;-----------------------------------------------
;
;   Imported addresses
;
;-----------------------------------------------

	IMPORT	W_CheckWells
	IMPORT	D_DrawIcon
	IMPORT	W_InvertBitBox
	IMPORT	W_OneRulClick
	IMPORT	D_SelectFont
	IMPORT	D_Set4Pat
	IMPORT	W_SetFullREct
	IMPORT	W_SetRulRect
	IMPORT	W_SetStatBit
;-----------------------------------------------
;
;   Forward addresses and entries
;
;-----------------------------------------------

	ENTRY	W_Box1
	ENTRY	W_BoxAdTable
	ENTRY	W_BoxLocTable
	ENTRY	W_DTabPc
	ENTRY	W_DrawTabs
	ENTRY	W_IndentPc
	ENTRY	W_LTabPc
	ENTRY	W_MargPc
	ENTRY	W_RTabPc
	ENTRY	W_RulOffset
	ENTRY	W_RulPinfo
	ENTRY	W_RulPRect
	ENTRY	W_RulPattern
	ENTRY	W_RulRect
	ENTRY	W_tabrect
	ENTRY	W_TabWell
	ENTRY	W_VisRuler
	ENTRY	W_vr_end
	ENTRY	W_vr_indentm
	ENTRY	W_vr_leftm
	ENTRY	W_vr_numtabs
	ENTRY	W_vr_rightm
	ENTRY	W_vr_status
	ENTRY	W_vr_tablist
	entry	W_r_changes
	entry	W_oldnumtabs
****************************************************************
*															  ;
*			  AppleWorks GS word processor RULERS			 ;
*______________________________________________________________*
*															  ;
*		CONTENTS:											 ;
*			  W_DrawRuler									   ;
*			  W_InitVisRuler(ruler:l)						   ;
*			  W_MakeVisRuler(ruler:l)						   ;
*			  W_RulerClick(taskrec:l) -> changed:w			  ;
*			  W_ModifyRuler(ruler:l)							;
*			  W_RulerData									   ;
*															  ;
****************************************************************


********************************************************************
*
*
*	includes
*
*
*
* Wednesday, May 3, 1989 5:14:23 AM
********************************************************************





****************************************************************
*
*   W_DrawRuler -- draw W_VisRuler at the top of the screen
*
****************************************************************
W_DrawRuler	PROC		EXPORT
			;Using W_RulerData

		local count:w,temp:w

		begin	+b

		jsl	  W_SetRulRect

		_PenNormal

		pushword #LightYellow
		jsl D_Set4Pat

		pushlong #W_RulRect
		_PaintRect

		_PenNormal

		pushword #0			  ; draw ruler's bottom Q_Line
		pushword W_RulRect+4
		_MoveTo
		pushword W_RulRect+6
		pushword #0
		_Line

		pushlong #W_RulPinfo	   ; ---- DRAW THE HASH MARKS ----
		pushlong #W_RulPRect	   ; first three inches...
		pushword W_RulOffset
		pushword #3
		pushword #notCopy
		_PPtoPort

		pushlong #W_RulPinfo	   ; ...second three inches...
		pushlong #W_RulPRect
		addword  W_RulOffset,#240,s
		pushword #3
		pushword #notCopy
		_PPtoPort

		pushlong #W_RulPinfo	   	; ...and third three inches!
		pushlong #W_RulPRect
		addword  W_RulOffset,#480,s
		pushword #3
		pushword #notCopy
		_PPtoPort

		movelong #0,ax		   	; use the system font
		ldy	  #0			  	; (black)
		jsl	  D_SelectFont

		addword  W_RulOffset,#10,s ; ---- DRAW THE NUMBERS ----
		pushword #8
		_MoveTo

		pushword #4			  		; fore copy
		_SetTextMode

		pushword #0			  		; black
		_SetForeColor
		pushword #3			  		; white, I guess
		_SetBackColor

		moveword #'1',count

loop	pushword #72			 	; move to the next number's position
		pushword #0
		_Move
		pushword count		   		; draw the number
		_DrawChar
		inc count
		cmpw count,#'9'		  		; done?
		ble loop

		jsl W_DrawTabs			 	; Draw the margins and W_Tabs

		stz count					; ---- DRAW THE BOXES AND TABWELLS ----
loop2	lda count
		asl a
		asl a
		tax

		cmpl W_BoxAdTable:x,#0	 	; draw one box
		beq nomore

		pushlong W_BoxAdTable:x
		pushlong W_BoxLocTable:x
		pushword #$8000		  		; not copy
		jsl D_DrawIcon

		inc count
		bra loop2

nomore	stz count					; ---- INVERT THE STATUS BOXES ----
		lda W_vr_status
		and #W_r_defined		   		; just look at the defined bits
		sta temp

invloop	lda temp
		beq fillwells
		clc
		ror temp				 	; is the bit set?
		bcc noinv

		pushword count
		jsl W_InvertBitBox

noinv	inc count
		bra invloop

fillwells	cmpw W_vr_numtabs,#W_maxTabs 	; ---- FILL THE TAB WELLS ----
		beq notabs

		pushlong #W_LTabPc		 		; Put W_Tabs in the wells if there are
		pushword #W_t1+W_THoff	   			;  less than 10 W_Tabs on the ruler.
		pushword #W_welltop
		pushword #NotBic
		jsl	  D_DrawIcon

		pushlong #W_DTabPc
		pushword #W_t2+W_THoff
		pushword #W_welltop
		pushword #NotBic
		jsl	  D_DrawIcon

		pushlong #W_RTabPc
		pushword #W_t3+W_THoff
		pushword #W_welltop
		pushword #NotBic
		jsl	  D_DrawIcon

notabs	jsl	  W_SetFullREct

		return

		ENDP

****************************************************************
*
*   W_DrawTabs -- draw the margin and tab markers
*
****************************************************************
W_DrawTabs	PROC		EXPORT
			;Using W_RulerData

		local count:w

		begin	+b

		pushlong #W_MargPc		 ; ---- DRAW THE MARGINS ----
		addword W_vr_leftm,#W_TabOffset,s
		pushword #W_tabtop
		pushword #NotBic
		jsl D_DrawIcon

		pushlong #W_IndentPc
		addword W_vr_indentm,#W_TabOffset,s
		pushword #W_tabtop
		pushword #NotBic
		jsl	  D_DrawIcon

		pushlong #W_MargPc
		addword  W_vr_rightm,#W_TabOffset,s
		pushword #W_tabtop
		pushword #NotBic
		jsl	  D_DrawIcon

		stz	  count		   ; ---- DRAW THE W_Tabs ----
tloop	cmpw	 count,W_vr_numtabs
		jeq	  endtloop

		lda	  count
		asl	  a
		asl	  a
		tax
		lda	  W_vr_tablist+W_ort_Type,x
		bmi	  decimal
		beq	  left

		pushlong #W_RTabPc
		bra	  gottype

left	pushlong #W_LTabPc
		bra	  gottype

decimal	pushlong #W_DTabPc

gotType	lda	  W_vr_tablist+W_ort_Location,x
		clc
		adc	  #W_TabOffset
		pha

		pushword #W_tabtop
		pushword #NotBic
		jsl	  D_DrawIcon

		inc	  count
		brl	  tloop

endtloop	return

		ENDP

****************************************************************
*
*   W_InitVisRuler(ruler:l) -- copy a D_New W_Handle into W_VisRuler
*
****************************************************************
W_InitVisRuler	PROC		EXPORT
			;Using	W_RulerData

		input	ruler:l

		begin	+b

		pushlong [ruler]
		pushlong #W_VisRuler
		pushlong #W_or_EndRulRec
		_BlockMove

		return

		ENDP

****************************************************************
*
*   W_MakeVisRuler(ruler:l) -- copy a D_New ruler into W_VisRuler and
*		D_Update the screen as little as possible
*
****************************************************************
W_MakeVisRuler	PROC		EXPORT
			;Using	W_RulerData

		input	ruler:l
		local	rptr:l,stat:w,bits:w,count:w,temp:l

		begin	+b

		jsl	  W_SetRulRect

		movelong [ruler],rptr

		moveword [rptr]:#W_or_Status,stat

		cmpw	 stat,W_vr_status
		jeq	  samestat

		lda	  stat			; Check the widow bit
		eor	  W_vr_status
		and	  #W_r_widow
		beq	  samewidow

		pushword #3			  ; If they're different,
		jsl	  W_SetStatBit	  ;  make them the same

samewidow	lda	  stat
		and	  #W_r_spacing	  ; check spacing
		sta	  bits
		lda	  W_vr_status
		and	  #W_r_spacing
		cmp	  bits
		jeq	  samespace

		stz	  count		   ; which one is set in the D_New one?
loop1	lsr	  bits
		bcs	  gotit1
		inc	  count
		bra	  loop1

gotit1	pushword count		   ; set it!
		jsl	  W_SetStatBit

samespace	lda	  stat
		and	  #W_r_just		 ; check justification
		sta	  bits
		lda	  W_vr_status
		and	  #W_r_just
		cmp	  bits
		jeq	  samestat

		stz	  count
loop2	lsr	  bits
		bcs	  gotit2
		inc	  count
		bra	  loop2

gotit2	pushword count
		jsl	  W_SetStatBit

samestat	cmpw	 [rptr]:#W_or_LeftM,W_vr_leftm	  ; is the tab Q_Line
		jne	  redotabs					   ; different?
		cmpw	 [rptr]:#W_or_IndentM,W_vr_indentm
		jne	  redotabs
		cmpw	 [rptr]:#W_or_RightM,W_vr_rightm
		jne	  redotabs
		cmpw	 [rptr]:#W_or_NumTabs,W_vr_numtabs
		jne	  redotabs

		stz	  count		   ; check each tab in the lists
		addlong  rptr,#W_or_TabList,temp

tloop	lda	  count		   ; if I've gone through the whole list,
		cmp	  W_vr_numtabs	  ;  the rulers are the same!
		jeq	  nevermind

		asl	  a
		asl	  a
		tay

		cmpw	 [temp]:y,W_vr_tablist:y
		bne	  redotabs
		inx
		inx
		cmpw	 [temp]:y,W_vr_tablist:y
		bne	  redotabs

		inc	  count
		bra	  tloop

redotabs	moveword W_vr_numtabs,W_oldnumtabs

		pushlong ruler		   ; copy in the ruler
		jsl	  W_InitVisRuler

		_PenNormal			   ; erase the old W_Tabs
		pushword #LightYellow
		jsl	  D_Set4Pat
		pushlong #W_tabrect
		_PaintRect

		jsl	  W_DrawTabs		; draw the D_New W_Tabs
		jsl	  W_CheckWells	  ; redraw the tab wells?

nevermind	jsl	  W_SetFullREct

		return

		ENDP

****************************************************************
*
*   W_RulerClick(taskrec:l) -> changed:w -- W_Handle a D_MouseDown
*		event (or a series of them) in W_VisRuler
*
****************************************************************
W_RulerClick	PROC		EXPORT
			;Using	W_RulerData

		input	taskrec:l
		output   diff:w
		local	mypoint:l

		begin	+b

		jsl	  W_SetRulRect

		stz	  diff

click	movelong [taskrec]:#10,mypoint

		pushlong !mypoint
		_GlobalToLocal

		spaceword						; is the mouse in the ruler?
		pushlong !mypoint
		pushlong #W_RulRect
		_PtInRect
		pla
		jeq	  bye			 			; si non, faire do-do!

inruler	stz W_r_changes

		spaceword
		pushlong mypoint
		jsl W_OneRulClick
		pla					  			; accumulated changes, if any.
		ora diff
		sta diff

eatmup_yum	spaceword					; eat the D_MouseUp
		pushword #4			  			; D_MouseUp only
		pushlong taskrec
		_GetNextEvent
		pla
		beq eatmup_yum

teststuff	moveword [taskrec]:#14,a
		and #$0200			   			; Is the shift W_Key down?
		jeq bye				  			; if not, go bye bye.

		addlong taskrec,#10,s
		_GlobalToLocal

		spaceword						; is the mouse still in the ruler?
		addlong taskrec,#10,s
		pushlong #W_RulRect
		_PtInRect
		pla
		jeq bye				  			; faire do-do!

		spaceword
		pushword #$ffff
		pushlong taskrec
		_EventAvail
		pla
		jeq teststuff					; no event -- keep looping (maybe)

		cmpw [taskrec],#1				; D_MouseDown?
		bne bye

		spaceword
		pushword #2			  			; get only the D_MouseDown
		pushlong taskrec
		_GetNextEvent
		pla
		jne click						; (just in case)

bye	jsl	  W_SetFullREct
		return

		ENDP

****************************************************************
*
*   W_ModifyRuler(ruler:l) -- modify a ruler just like the user
*		modified vixruler last W_Time
*
****************************************************************
W_ModifyRuler	PROC		EXPORT
			;Using W_RulerData

		input	ruler:l
		local	rptr:l,bits:w,taboff:w,tabno:w

		begin	+b

		jsl	  W_SetRulRect

		movelong [ruler],rptr

		lda W_r_changes				; check the left margin
		and #W_ch_left
		jeq sameleft

		moveword W_vr_leftm,[rptr]:#W_or_LeftM

sameleft	lda W_r_changes			; check the right margin
		and #W_ch_right
		jeq sameright

		moveword W_vr_rightm,[rptr]:#W_or_RightM

sameright	lda W_r_changes			; check the W_Indent margin
		and #W_ch_indent
		jeq sameindent

		moveword W_vr_indentm,[rptr]:#W_or_IndentM

sameindent	lda W_r_changes			; check the W_Tabs
		and #W_ch_tabs
		jeq sametabs

		pushlong #W_vr_numtabs
		addlong rptr,#W_or_NumTabs,s
		pushlong #W_vr_end-W_vr_numtabs
		_BlockMove

sametabs	ldy #W_or_Status		   	; ---- CHECK STATUS ----

		lda W_r_changes				; check the widow bit
		and #W_r_widow
		jeq samewidow

		lda W_vr_status
		and #W_r_widow
		sta bits

		lda [rptr],y
		and #$ffff-W_r_widow
		ora bits
		sta [rptr],y

samewidow	lda W_r_changes			; check the justification bits
		and #W_r_just
		jeq samejust

		lda W_vr_status
		and #W_r_just
		sta bits

		lda [rptr],y
		and #$ffff-W_r_just
		ora bits
		sta [rptr],y

samejust	lda W_r_changes			; check the spacing bits
		and #W_r_spacing
		jeq samespace

		lda W_vr_status
		and #W_r_spacing
		sta bits

		lda [rptr],y
		and #$ffff-W_r_spacing
		ora bits
		sta [rptr],y

samespace	cmpw [rptr]:#W_or_RightM,[rptr]:#W_or_IndentM	   	; ---- LEGALIZE
		jgt indentok										; MARGINS ----

		pushword [rptr]:#W_or_RightM
		moveword [rptr]:#W_or_IndentM,[rptr]:#W_or_RightM
		pullword [rptr]:#W_or_IndentM

indentok	cmpw [rptr]:#W_or_RightM,[rptr]:#W_or_LeftM
		jgt leftok

		pushword [rptr]:#W_or_RightM
		moveword [rptr]:#W_or_LeftM,[rptr]:#W_or_RightM
		pullword [rptr]:#W_or_LeftM

leftok

; Legalize W_Tabs
		Moveword #W_or_TabList,taboff
		moveword #0,tabno

tabloop	cmpw tabno,[rptr]:#W_or_NumTabs
		jge endtabloop

; Compare current tab to left margin
		cmpw [rptr]:taboff,[rptr]:#W_or_LeftM
		jge tableftok

		jsr trashtab
		bra tabloop

; Copmare current tab to right margin
tableftok
		cmpw [rptr]:taboff,[rptr]:#W_or_RightM
		jlt tabinc

		jsr trashtab
		brl tabloop

tabinc	AddWord taboff,#4,taboff
		inc tabno
		brl tabloop

endtabloop
		jsl	  W_SetFullREct

		return

trashtab
		pushword tabno
		pushword taboff
		inc tabno
trashloop	cmpw tabno,[rptr]:#W_or_NumTabs
		jge donetrashloop

		addword taboff,#4,y
		moveword [rptr]:y,[rptr]:taboff
		inc tabno
		addword taboff,#4,taboff
		bra trashloop

donetrashloop	pullword taboff
		pullword tabno
		moveword [rptr]:#W_or_NumTabs,a
		dec a
		moveword a,[rptr]:#W_or_NumTabs
		rts

		ENDP

****************************************************************
*
*   W_RulerData
*
****************************************************************
W_RulerData	PROC		EXPORT
		EXPORT	StdRuler
		EXPORT	W_StdTabList
		EXPORT	W_RulRect
		EXPORT	W_RulOffset
		EXPORT	W_VisRuler
		EXPORT	W_vr_reserved
		EXPORT	W_vr_status
		EXPORT	W_vr_leftm
		EXPORT	W_vr_indentm
		EXPORT	W_vr_rightm
		EXPORT	W_vr_numtabs
		EXPORT	W_vr_tablist
		EXPORT	W_vr_end
		EXPORT	W_BoxAdTable
		EXPORT	W_BoxLocTable
		EXPORT	W_tabrect
		EXPORT	W_RulPinfo
		EXPORT	W_RulPRect
		EXPORT	W_RulPattern
		EXPORT	W_BoxW
		EXPORT	W_Box1
		EXPORT	W_Box2
		EXPORT	W_Box3
		EXPORT	W_Box4
		EXPORT	W_Box5
		EXPORT	W_Box6
		EXPORT	W_TabWell
		EXPORT	W_TabIcons
		EXPORT	W_MargPc
		EXPORT	W_IndentPc
		EXPORT	W_LTabPc
		EXPORT	W_RTabPc
		EXPORT	W_DTabPc
		EXPORT	W_NothingPc

*--------------------------------------------------------------*
*			  Definition of ruler record (et al.)			 ;
*--------------------------------------------------------------*







StdRuler	; ; ---- THE STANDARD RULER ----
	DS.B 	2					; D_Reserved
	DC.W	W_r_left+W_r_single		; status
	DC.W	40					; left margin
	DC.W	40					; W_Indent margin
	DC.W	560					; right margin
	DC.W	1					; number of W_Tabs
W_StdTabList	
	DC.W	350					; tab location
	DC.W	W_rt_left				; tab type
	DS.B 4*W_maxTabs-4			; (other W_Tabs could go here!)

*--------------------------------------------------------------*
*				   Ruler drawing parameters				   ;
*--------------------------------------------------------------*

W_RulRect	DC.W	0,0,W_RulWdth,W_RulLength

W_RulOffset	DC.W	-40			; how far to the right is zero?

			Export W_r_changes
			Export W_oldnumtabs
W_r_changes	DC.W	0
W_oldnumtabs	DC.W	0			; old number of W_Tabs (in W_VisRuler)


W_VisRuler	; ; ---- THE VISIBLE RULER ----
W_vr_reserved	DS.B 2					 	; D_Reserved
W_vr_status	DC.W	W_r_left+W_r_single		; status
W_vr_leftm	DC.W	40					; left margin
W_vr_indentm	DC.W	40					; W_Indent margin
W_vr_rightm	DC.W	560					; right margin
W_vr_numtabs	DC.W	1					; number of W_Tabs
W_vr_tablist	; ; ---- THE VISIBLE TAB LIST ----
	DC.W	350							; tab location
	DC.W	W_rt_left						; tab type
	DS.B 	4*W_maxTabs-4		   			; other W_Tabs could go here!
W_vr_end

*--------------------------------------------------------------*
*					  'Box' location info					 ;
*--------------------------------------------------------------*
W_BoxAdTable
	DC.L	W_Box1,W_Box2,W_Box3,W_BoxW,W_Box4,W_Box5,W_Box6,W_Box1
	DC.L	W_TabWell,W_TabWell,W_TabWell,0

W_BoxLocTable	
	DC.W	W_boxtop,100,W_boxtop,150,W_boxtop,200
	DC.W	W_boxtop,20
	DC.W	W_boxtop,400,W_boxtop,450,W_boxtop,500,W_boxtop,550
	DC.W	W_welltop,W_t2,W_welltop,W_t1,W_welltop,W_t3


W_tabrect	
	DC.W	W_tabtop,0,W_boxtop,640


*--------------------------------------------------------------*
*					  Pixel images, etc.					  ;
*--------------------------------------------------------------*
W_RulPinfo	
	DC.B	$80
	DC.B	0
	DC.L	W_RulPattern
	DC.W	60
W_RulPRect	
	DC.W	0,0,7,240

W_RulPattern	
	DC.B	$d1,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11
	DC.B	$d1,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11
	DC.B	$d1,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11

	DC.B	$d1,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11
	DC.B	$d1,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11
	DC.B	$d1,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11

	DC.B	$d1,$11,$11,$11,$11,$11,$11,$11,$11,$11,$d1,$11,$11,$11,$11,$11,$11,$11,$11,$11
	DC.B	$d1,$11,$11,$11,$11,$11,$11,$11,$11,$11,$d1,$11,$11,$11,$11,$11,$11,$11,$11,$11
	DC.B	$d1,$11,$11,$11,$11,$11,$11,$11,$11,$11,$d1,$11,$11,$11,$11,$11,$11,$11,$11,$11

	DC.B	$d1,$11,$11,$11,$11,$d1,$11,$11,$11,$11,$d1,$11,$11,$11,$11,$d1,$11,$11,$11,$11
	DC.B	$d1,$11,$11,$11,$11,$d1,$11,$11,$11,$11,$d1,$11,$11,$11,$11,$d1,$11,$11,$11,$11
	DC.B	$d1,$11,$11,$11,$11,$d1,$11,$11,$11,$11,$d1,$11,$11,$11,$11,$d1,$11,$11,$11,$11

	DC.B	$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11
	DC.B	$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11
	DC.B	$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11

	DC.B	$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11
	DC.B	$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11
	DC.B	$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11,$d1,$11,$1d,$11,$11

	DC.B	$d1,$31,$1d,$13,$11,$d1,$31,$1d,$13,$11,$d1,$31,$1d,$13,$11,$d1,$31,$1d,$13,$11
	DC.B	$d1,$31,$1d,$13,$11,$d1,$31,$1d,$13,$11,$d1,$31,$1d,$13,$11,$d1,$31,$1d,$13,$11
	DC.B	$d1,$31,$1d,$13,$11,$d1,$31,$1d,$13,$11,$d1,$31,$1d,$13,$11,$d1,$31,$1d,$13,$11

;RulPattern72   dc h'd11111111111111111111111111111111111'
;			   dc h'd11111111111111111111111111111111111'
;			   dc h'd11111111111111111111111111111111111'
;
;			   dc h'd11111111111111111111111111111111111'
;			   dc h'd11111111111111111111111111111111111'
;			   dc h'd11111111111111111111111111111111111'
;
;			   dc h'd11111111111111111d11111111111111111'
;			   dc h'd11111111111111111d11111111111111111'
;			   dc h'd11111111111111111d11111111111111111'
;
;			   dc h'd11111111d11111111d11111111d11111111'
;			   dc h'd11111111d11111111d11111111d11111111'
;			   dc h'd11111111d11111111d11111111d11111111'
;
;			   dc h'd11131111d11131111d11131111d11131111'
;			   dc h'd11131111d11131111d11131111d11131111'
;			   dc h'd11131111d11131111d11131111d11131111'
;
;			   dc h'd11131111d11131111d11131111d11131111'
;			   dc h'd11131111d11131111d11131111d11131111'
;			   dc h'd11131111d11131111d11131111d11131111'
;
;			   dc h'dddddddddddddddddddddddddddddddddddd'
;			   dc h'dddddddddddddddddddddddddddddddddddd'
;			   dc h'dddddddddddddddddddddddddddddddddddd'

W_BoxW	
	DC.W	0,0,12,42
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$10
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$33,$30,$00,$00,$00,$00,$0c,$cc,$0d,$d0
	DC.B	$30,$30,$0f,$ff,$ff,$ff,$ff,$f0,$0c,$0d,$d0
	DC.B	$30,$30,$00,$00,$00,$00,$00,$00,$0c,$0d,$d0
	DC.B	$30,$30,$0f,$ff,$ff,$ff,$ff,$f0,$0c,$0d,$d0
	DC.B	$30,$30,$00,$00,$00,$00,$00,$00,$0c,$0d,$d0
	DC.B	$30,$30,$0f,$ff,$ff,$ff,$ff,$f0,$0c,$0d,$d0
	DC.B	$30,$33,$30,$00,$00,$00,$00,$0c,$cc,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$d0
	DC.B	$11,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$d0
		
W_Box1	
	DC.W	0,0,12,42
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$10
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$d0
	DC.B	$11,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$d0
		
W_Box2	
	DC.W	0,0,12,42
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$10
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$d0
	DC.B	$11,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$d0
		
W_Box3	
	DC.W	0,0,12,42
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$10
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$d0
	DC.B	$11,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$d0
		
W_Box4	
	DC.W	0,0,12,42
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$10
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$f0,$00,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$f0,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$d0
	DC.B	$11,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$d0

W_Box5	
	DC.W	0,0,12,42
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$10
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$0f,$ff,$ff,$ff,$ff,$ff,$ff,$f0,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$00,$00,$3f,$ff,$ff,$fc,$00,$00,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$03,$ff,$ff,$ff,$ff,$ff,$ff,$c0,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$00,$ff,$ff,$ff,$ff,$ff,$ff,$00,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$d0
	DC.B	$11,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$d0
		
W_Box6	
	DC.W	0,0,12,42
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$10
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$03,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$00,$3f,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$00,$0f,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$30,$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0d,$d0
	DC.B	$30,$00,$00,$00,$00,$00,$00,$00,$00,$0d,$d0
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fd,$d0
	DC.B	$11,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$d0
		
W_TabWell	
	DC.W	0,0,8,30
	DC.B	$3d,$11,$11,$11,$11,$11,$3d,$11
	DC.B	$3d,$d1,$11,$11,$11,$11,$3d,$d1
	DC.B	$3d,$d1,$11,$11,$11,$11,$3d,$d1
	DC.B	$3d,$d1,$11,$11,$11,$11,$3d,$d1
	DC.B	$3d,$d1,$11,$11,$11,$11,$3d,$d1
	DC.B	$3d,$d1,$11,$11,$11,$11,$3d,$d1
	DC.B	$3f,$ff,$ff,$ff,$ff,$ff,$fd,$d1
	DC.B	$11,$dd,$dd,$dd,$dd,$dd,$dd,$d1

W_TabIcons	
	DC.L	W_DTabPc,W_LTabPc,W_RTabPc,W_MargPc,W_IndentPc,W_MargPc

W_MargPc	
	DC.W	0,0,5,10
	DC.B	$ff,$0f,$ff
	DC.B	$f0,$00,$ff
	DC.B	$00,$00,$0f
	DC.B	$ff,$ff,$ff
	DC.B	$ff,$ff,$ff

W_IndentPc	
	DC.W	0,0,5,10
	DC.B	$ff,$4f,$ff
	DC.B	$ff,$4f,$ff
	DC.B	$ff,$4f,$ff
	DC.B	$f4,$44,$ff
	DC.B	$44,$44,$4f

W_LTabPc	
	DC.W	0,0,5,10
	DC.B	$ff,$4f,$ff
	DC.B	$ff,$44,$ff
	DC.B	$ff,$44,$4f
	DC.B	$ff,$44,$ff
	DC.B	$ff,$4f,$ff

W_RTabPc	
	DC.W	0,0,5,10
	DC.B	$ff,$4f,$ff
	DC.B	$f4,$4f,$ff
	DC.B	$44,$4f,$ff
	DC.B	$f4,$4f,$ff
	DC.B	$ff,$4f,$ff

W_DTabPc	
	DC.W	0,0,5,10
	DC.B	$ff,$4f,$ff
	DC.B	$f4,$44,$ff
	DC.B	$f4,$f4,$ff
	DC.B	$f4,$44,$ff
	DC.B	$ff,$4f,$ff

W_NothingPc	
	DC.W	0,0,5,10
	DC.B	$11,$11,$11
	DC.B	$11,$11,$11
	DC.B	$11,$11,$11
	DC.B	$11,$11,$11
	DC.B	$11,$11,$11

		ENDP
		END

