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