home *** CD-ROM | disk | FTP | other *** search
-
- XREF _DCScrBase
- XDEF TypeAsk
-
- INCLUDE exec/exec_lib.i
- INCLUDE intuition/intuition_lib.i
- INCLUDE help.i
-
- SECTION "AskWindow",CODE
-
- TypeAsk bsr GetLibs
- SADD AskWindow,a0
- move.l _DCScrBase,$1e(a0)
- CALLPC _IntuitionBase,OpenWindow
- beq NoType
- move.l d0,a1
- SADD _AskWindBase,a0
- move.l a1,(a0)
- move.l $32(a1),4(a0)
- move.l $56(a1),8(a0)
- PEEKL _AskWindRast,a0
- SADD ABorder8,a1
- moveq.l #0,d0
- moveq.l #0,d1
- CALLSYS DrawBorder
- PEEKL _AskWindRast,a0
- SADD ChangeText,a1
- moveq.l #0,d0
- moveq.l #0,d1
- CALLSYS PrintIText
- bsr CalcProp
- AskWait PEEKL _AskWindUser,a0
- CALLEXEC WaitPort
- PEEKL _AskWindUser,a0
- CALLSYS GetMsg
- move.l d0,a1
- move.l $14(a1),d4
- move.l $1c(a1),a4
- CALLSYS ReplyMsg
- cmpi.b #$20,d4
- beq.s GadDown
- cmpi.b #$40,d4
- beq.s GadUp
- bra AskWait
- GadUp cmpi.w #"CL",$26(a4)
- bne.s NoQuit
- move.w #"CL",d7
- bra AskQuit
- NoQuit cmpi.w #"OK",$26(a4)
- bne.s AskWait
- bsr MakeReturn
- bra AskQuit
- GadDown cmpi.w #"PR",$26(a4)
- bne.s NoProp
- bsr CalcProp
- bra AskWait
- NoProp bsr SetBool
- bra AskWait
- AskQuit PEEKL _AskWindBase,a0
- CALLPC _IntuitionBase,CloseWindow
- NoType PEEKL Memory,d0
- mulu #100,d0
- rts
-
- CalcProp
- moveq.l #0,d0
- PEEKW APropSpecial+2,d0
- mulu #3000,d0
- swap d0
- andi.l #$ffff,d0
- addq.l #1,d0
- POKEL d0,Memory
- SADD PropBytes+8,a1
- bsr MakeMem
- PEEKL _AskWindRast,a0
- SADD PropText,a1
- moveq.l #0,d0
- moveq.l #0,d1
- CALLPC _IntuitionBase,PrintIText
- cmpi.w #$80,AProp+12
- beq.s CalcProp
- rts
-
- MakeMem moveq.l #3,d1
- SADD Tens,a0
- Next moveq.l #"0",d2
- Dec addq.l #1,d2
- sub.l (a0),d0
- bcc.s Dec
- subq.l #1,d2
- add.l (a0)+,d0
- move.b d2,(a1)+
- dbra d1,Next
- rts
-
- Tens dc.l 1000,100,10,1
-
- MakeReturn
- SADD BoolList,a0
- Make1 move.l (a0)+,a1
- cmpi.w #$82,$c(a1)
- bne.s NotSelected
- move.w $26(a1),d7
- NotSelected
- tst.l (a0)
- bne.s Make1
- rts
-
- SetBool SADD BoolList,a0
- Set1 move.l (a0)+,a1
- move.w #2,$c(a1)
- move.w $26(a1),d1
- cmp.w $26(a4),d1
- bne.s NoSet
- move.w #$82,$c(a1)
- NoSet tst.l (a0)
- bne.s Set1
- SADD ABool0,a0
- PEEKL _AskWindBase,a1
- suba.l a2,a2
- CALLPC _IntuitionBase,RefreshGadgets
- rts
-
- BoolList dc.l ABool0,ABool1,ABool2,0
-
- *** Library-Zeiger suchen und merken
-
- GetLibs move.l 4,a6
- lea $17a(a6),a0
- SADD IntName,a1
- CALLSYS FindName
- POKEL d0,_IntuitionBase
- rts
-
- IntName INTNAME
- _IntuitionBase ds.l 1
-
- *** Data-Teil
-
- AskWindow dc.w 160,21,320,158
- dc.b -1,-1
- dc.l 8!$20!$40,$800!$1000!$10000,AProp,0,0,0,0
- dc.w 0,0,0,0,15
- _AskWindBase ds.l 1
- _AskWindRast ds.l 1
- _AskWindUser ds.l 1
- AProp dc.l ABool0
- dc.w 24,109,272,6,0,2,3
- dc.l APropInfo,0,0,0,APropSpecial
- dc.w "PR"
- dc.l 0
- APropInfo ds.w 4
- APropSpecial dc.w 1!2!8,1140*$ffff/3000,0,$200
- ds.w 7
- ABool0 dc.l ABool1
- dc.w 20,27,280,11,$80!2,2,1
- dc.l ABorder0,ABorder2,AText0,0,0
- dc.w "AS"
- dc.l 0
- AText0 dc.b 1,0,1,0
- dc.w 140-9*4,2
- dc.l 0,ABytes0,0
- TEXT ABytes0,"ASSEMBLER"
- ABool1 dc.l ABool2
- dc.w 20,27+21,280,11,2,2,1
- dc.l ABorder0,ABorder2,AText1,0,0
- dc.w "BS"
- dc.l 0
- AText1 dc.b 1,0,1,0
- dc.w 140-5*4,2
- dc.l 0,ABytes1,0
- TEXT ABytes1,"BASIC"
- ABool2 dc.l ABool3
- dc.w 20,27+2*21,280,11,2,2,1
- dc.l ABorder0,ABorder2,AText2,0,0
- dc.w "CS"
- dc.l 0
- AText2 dc.b 1,0,1,0
- dc.w 140-4,2
- dc.l 0,ABytes2,0
- TEXT ABytes2,"C"
- ABool3 dc.l ABool4
- dc.w 20,27+20+7+5*10+3*11,130,11,2,1,1
- dc.l ABorder4,ABorder6,AText3,0,0
- dc.w "CL"
- dc.l 0
- AText3 dc.b 1,0,1,0
- dc.w 65-5*4,2
- dc.l 0,ABytes3,0
- TEXT ABytes3,"CANCEL"
- ABool4 dc.l 0
- dc.w 170,27+20+7+5*10+3*11,130,11,2,1,1
- dc.l ABorder4,ABorder6,AText4,0,0
- dc.w "OK"
- dc.l 0
- AText4 dc.b 1,0,1,0
- dc.w 65-8*4,2
- dc.l 0,ABytes4,0
- TEXT ABytes4,"CONTINUE"
-
- ChangeText dc.b 1,0,1,0
- dc.w 160-12*4,10
- dc.l 0,ChangeBytes,PropText
- TEXT ChangeBytes,<"CHANGE TO ...">
- PropText dc.b 1,0,1,0
- dc.w 160-14*4,90
- dc.l 0,PropBytes,0
- TEXT PropBytes,<"BUFFER: 000000">
- Memory ds.l 1
-
- ABorder0 dc.w 0,0
- dc.b 2,0,1,3
- dc.l APairs02,ABorder1
- ABorder1 dc.w 0,0
- dc.b 1,0,1,3
- dc.l APairs13,0
- ABorder2 dc.w 0,0
- dc.b 1,0,1,3
- dc.l APairs02,ABorder3
- ABorder3 dc.w 0,0
- dc.b 2,0,1,3
- dc.l APairs13,0
- APairs02 dc.w 279,0,0,0,0,9
- APairs13 dc.w 0,10,279,10,279,1
- ABorder4 dc.w 0,0
- dc.b 2,0,1,3
- dc.l APairs46,ABorder5
- ABorder5 dc.w 0,0
- dc.b 1,0,1,3
- dc.l APairs57,0
- ABorder6 dc.w 0,0
- dc.b 1,0,1,3
- dc.l APairs46,ABorder7
- ABorder7 dc.w 0,0
- dc.b 2,0,1,3
- dc.l APairs57,0
- APairs46 dc.w 129,0,0,0,0,9
- APairs57 dc.w 0,10,129,10,129,1
- ABorder8 dc.w 0,0
- dc.b 2,0,1,3
- dc.l APairs8,ABorder9
- APairs8 dc.w 319,0,0,0,0,156
- ABorder9 dc.w 0,0
- dc.b 1,0,1,3
- dc.l APairs9,PropBorder0
- APairs9 dc.w 0,157,319,157,319,1
- PropBorder0 dc.w 20,107
- dc.b 1,0,1,3
- dc.l PropPairs0,PropBorder1
- PropPairs0 dc.w 279,0,0,0,0,8
- PropBorder1 dc.w 20,107
- dc.b 2,0,1,3
- dc.l PropPairs1,0
- PropPairs1 dc.w 0,9,279,9,279,1
-
- END
-
-
-