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