home *** CD-ROM | disk | FTP | other *** search
- *:ts=16
- section VertB,code
-
- include "exec/types.i"
- include "exec/stack.i"
- include "exec/execbase.i"
- include "exec/lists.i"
- include "exec/tasks.i"
- include "adef.i"
-
- xdef _VertBServer,_SetBase
- xdef _SetOldCloseWB,_GetOldCloseWB
- xdef _SetOldOpenWB,_GetOldOpenWB
- xdef _WB_BASE_PTR
- xdef _Old_OpenWB,_Old_CloseWB
- xref _Update
-
-
- _SetBase move.l 4(sp),_WB_BASE_PTR
- rts
- _SetOldOpenWB move.l 4(sp),_Old_OpenWB
- rts
- _SetOldCloseWB move.l 4(sp),_Old_CloseWB
- rts
-
- _GetOldOpenWB move.l _Old_OpenWB,d0
- rts
- _GetOldCloseWB move.l _Old_CloseWB,d0
- rts
-
- _VertBServer
- tst.b WD_s_int(a1)
- beq next_it
- moveq.l #0,d0
- move.l 4.w,a0
- move.l LH_HEAD+TaskReady(a0),a0
- subq.w #1,d0
- loop:
- SUCC a0,a0
- move.l a0,d1
- dbeq d0,loop
- endcount
- neg.w d0
- subq.w #1,d0
- move.l 4,a0
- move.l ThisTask(a0),a0
- move.l a0,d1
- beq nonew
- cmp.b #TS_RUN,TC_STATE(a0)
- bne nonew
- addq.w #1,d0
- nonew
- move.l 4.w,a0
- moveq.l #1,d1
- add.l d1,WD_Count_CNT(a1)
- add.l d0,WD_Ready_CNT(a1)
- sub.w d1,WD_cnt(a1)
- bpl next_it
- move.w WD_End_CNT(a1),WD_cnt(a1)
- tst.b WD_s_rast(a1)
- bne next_it
- move.l a1,-(sp)
- jsr _Update
- addq.l #4,sp
- next_it
- moveq.l #0,d0
- rts
-
- xdef _NewClose
- xdef _Old_CloseWB
- xdef _Old_OpenWB
-
-
- _NewClose
- movem.l d0-d7/a0-a6,-(sp)
- move.l _WB_BASE_PTR(PC),a2
- move.l WD_close(a2),a0
- move.l a0,d0
- beq noclose
- move.l a2,-(sp)
- jsr (a0)
- addq.l #4,sp
- noclose
- movem.l (sp)+,d0-d7/a0-a6
- move.l _Old_CloseWB(PC),a0
- jsr (a0)
- tst.l d0
- bne noreopen
- movem.l d0-d7/a0-a6,-(sp)
- move.l _WB_BASE_PTR(PC),a2
- move.l WD_open(a2),a0
- move.l a0,d0
- beq nosetreopen
- move.l a2,-(sp)
- jsr (a0)
- addq.l #4,sp
- nosetreopen
- movem.l (sp)+,d0-d7/a0-a6
- noreopen rts
-
- _WB_BASE_PTR dc.l 0
- _Old_CloseWB dc.l 0
- _Old_OpenWB dc.l 0
-
- xdef _NewOpen
- _NewOpen
- move.l _Old_OpenWB(PC),a0
- jsr (a0)
- tst.l d0
- beq noallopen
- movem.l d0-d7/a0-a6,-(sp)
- move.l _WB_BASE_PTR(PC),a2
- move.l WD_open(a2),a0
- move.l a0,d0
- beq noopen
- move.l a2,-(sp)
- jsr (a0)
- addq.l #4,sp
- noopen
- movem.l (sp)+,d0-d7/a0-a6
- noallopen
- rts
-
-
-
- AreaMove equ -$fc
- AreaDraw equ -$102
- AreaEnd equ -$108
- Move equ -$f0
- Draw equ -$f6
- WritePixel equ -$144
- SetAPen equ -$156
- RectFill equ -$132
-
- xdef _CalcShift
- _CalcShift
- move.l 4(sp),d0
- swap d0
- ext.l d0
- rts
-
- xdef _FindMaxValue
- * FindMaxValue (struct WIN_DEF *wd)
- _FindMaxValue
- move.l 4(sp),a0
- moveq.l #0,d0
- move.w WD_buffer_size(a0),d1
- subq.w #1,d1
- bmi end_find_loop
- move.l WD_buffer(a0),a0
- find_loop
- cmp.l (a0)+,d0
- bge no_new_find_value
- move.l -4(a0),d0
- no_new_find_value
- dbra d1,find_loop
- end_find_loop
- rts
-
- section ALoadData,data
-
- include "intuition/intuition.i"
-
- xdef _WinTagList
- xdef _SizeFlag
- xdef _IDCMPFlags
- xdef _WIN_XPOS,_WIN_YPOS
- xdef _WIN_WIDTH,_WIN_HEIGHT
- xdef _TitlePtr
-
- FALSE equ 0
- TRUE equ -1
-
- _WinTagList dc.l WA_SizeGadget
- _SizeFlag dc.l FALSE
- dc.l WA_DragBar
- dc.l TRUE
- dc.l WA_DepthGadget
- dc.l TRUE
- dc.l WA_CloseGadget
- dc.l TRUE
- dc.l WA_AutoAdjust
- dc.l TRUE
- dc.l WA_IDCMP
- _IDCMPFlags dc.l IDCMP_CLOSEWINDOW
- dc.l WA_Title
- _TitlePtr dc.l 0
- dc.l WA_Top
- _WIN_YPOS dc.l 0
- dc.l WA_Left
- _WIN_XPOS dc.l 0
- dc.l WA_Width
- _WIN_WIDTH dc.l 256
- dc.l WA_Height
- _WIN_HEIGHT dc.l 64
- dc.l WA_DetailPen
- dc.l 0
- dc.l WA_BlockPen
- dc.l 1
- dc.l WA_MinWidth
- dc.l 44
- dc.l WA_MinHeight
- dc.l 32
- dc.l WA_MaxWidth
- dc.l 1400
- dc.l WA_MaxHeight
- dc.l 600
- dc.l TAG_DONE
- dc.l 0
-
- end
-
-