home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / disks / disk439.lzh / DeluxeChanger / Sources / DCAskWindow.asm < prev    next >
Assembly Source File  |  1991-01-18  |  5KB  |  259 lines

  1.  
  2.     XREF    _DCScrBase
  3.     XDEF    TypeAsk
  4.  
  5.     INCLUDE exec/exec_lib.i
  6.     INCLUDE intuition/intuition_lib.i
  7.     INCLUDE help.i
  8.  
  9.     SECTION "AskWindow",CODE
  10.  
  11. TypeAsk bsr    GetLibs
  12.     SADD    AskWindow,a0
  13.     move.l    _DCScrBase,$1e(a0)
  14.     CALLPC    _IntuitionBase,OpenWindow
  15.     beq    NoType
  16.     move.l    d0,a1
  17.     SADD    _AskWindBase,a0
  18.     move.l    a1,(a0)
  19.     move.l    $32(a1),4(a0)
  20.     move.l    $56(a1),8(a0)
  21.     PEEKL    _AskWindRast,a0
  22.     SADD    ABorder8,a1
  23.     moveq.l #0,d0
  24.     moveq.l #0,d1
  25.     CALLSYS DrawBorder
  26.     PEEKL    _AskWindRast,a0
  27.     SADD    ChangeText,a1
  28.     moveq.l #0,d0
  29.     moveq.l #0,d1
  30.     CALLSYS PrintIText
  31.     bsr    CalcProp
  32. AskWait PEEKL    _AskWindUser,a0
  33.     CALLEXEC WaitPort
  34.     PEEKL    _AskWindUser,a0
  35.     CALLSYS GetMsg
  36.     move.l    d0,a1
  37.     move.l    $14(a1),d4
  38.     move.l    $1c(a1),a4
  39.     CALLSYS ReplyMsg
  40.     cmpi.b    #$20,d4
  41.     beq.s    GadDown
  42.     cmpi.b    #$40,d4
  43.     beq.s    GadUp
  44.     bra    AskWait
  45. GadUp    cmpi.w    #"CL",$26(a4)
  46.     bne.s    NoQuit
  47.     move.w    #"CL",d7
  48.     bra    AskQuit
  49. NoQuit    cmpi.w    #"OK",$26(a4)
  50.     bne.s    AskWait
  51.     bsr    MakeReturn
  52.     bra    AskQuit
  53. GadDown cmpi.w    #"PR",$26(a4)
  54.     bne.s    NoProp
  55.     bsr    CalcProp
  56.     bra    AskWait
  57. NoProp    bsr    SetBool
  58.     bra    AskWait
  59. AskQuit PEEKL    _AskWindBase,a0
  60.     CALLPC    _IntuitionBase,CloseWindow
  61. NoType    PEEKL    Memory,d0
  62.     mulu    #100,d0
  63.     rts
  64.  
  65. CalcProp
  66.     moveq.l #0,d0
  67.     PEEKW    APropSpecial+2,d0
  68.     mulu    #3000,d0
  69.     swap    d0
  70.     andi.l    #$ffff,d0
  71.     addq.l    #1,d0
  72.     POKEL    d0,Memory
  73.     SADD    PropBytes+8,a1
  74.     bsr    MakeMem
  75.     PEEKL    _AskWindRast,a0
  76.     SADD    PropText,a1
  77.     moveq.l #0,d0
  78.     moveq.l #0,d1
  79.     CALLPC    _IntuitionBase,PrintIText
  80.     cmpi.w    #$80,AProp+12
  81.     beq.s    CalcProp
  82.     rts
  83.  
  84. MakeMem moveq.l #3,d1
  85.     SADD    Tens,a0
  86. Next    moveq.l #"0",d2
  87. Dec    addq.l    #1,d2
  88.     sub.l    (a0),d0
  89.     bcc.s    Dec
  90.     subq.l    #1,d2
  91.     add.l    (a0)+,d0
  92.     move.b    d2,(a1)+
  93.     dbra    d1,Next
  94.     rts
  95.  
  96. Tens    dc.l    1000,100,10,1
  97.  
  98. MakeReturn
  99.     SADD    BoolList,a0
  100. Make1    move.l    (a0)+,a1
  101.     cmpi.w    #$82,$c(a1)
  102.     bne.s    NotSelected
  103.     move.w    $26(a1),d7
  104. NotSelected
  105.     tst.l    (a0)
  106.     bne.s    Make1
  107.     rts
  108.  
  109. SetBool SADD    BoolList,a0
  110. Set1    move.l    (a0)+,a1
  111.     move.w    #2,$c(a1)
  112.     move.w    $26(a1),d1
  113.     cmp.w    $26(a4),d1
  114.     bne.s    NoSet
  115.     move.w    #$82,$c(a1)
  116. NoSet    tst.l    (a0)
  117.     bne.s    Set1
  118.     SADD    ABool0,a0
  119.     PEEKL    _AskWindBase,a1
  120.     suba.l    a2,a2
  121.     CALLPC    _IntuitionBase,RefreshGadgets
  122.     rts
  123.  
  124. BoolList    dc.l    ABool0,ABool1,ABool2,0
  125.  
  126. ***    Library-Zeiger suchen und merken
  127.  
  128. GetLibs move.l    4,a6
  129.     lea    $17a(a6),a0
  130.     SADD    IntName,a1
  131.     CALLSYS FindName
  132.     POKEL    d0,_IntuitionBase
  133.     rts
  134.  
  135. IntName     INTNAME
  136. _IntuitionBase    ds.l    1
  137.  
  138. ***    Data-Teil
  139.  
  140. AskWindow    dc.w    160,21,320,158
  141.         dc.b    -1,-1
  142.         dc.l    8!$20!$40,$800!$1000!$10000,AProp,0,0,0,0
  143.         dc.w    0,0,0,0,15
  144. _AskWindBase    ds.l    1
  145. _AskWindRast    ds.l    1
  146. _AskWindUser    ds.l    1
  147. AProp        dc.l    ABool0
  148.         dc.w    24,109,272,6,0,2,3
  149.         dc.l    APropInfo,0,0,0,APropSpecial
  150.         dc.w    "PR"
  151.         dc.l    0
  152. APropInfo    ds.w    4
  153. APropSpecial    dc.w    1!2!8,1140*$ffff/3000,0,$200
  154.         ds.w    7
  155. ABool0        dc.l    ABool1
  156.         dc.w    20,27,280,11,$80!2,2,1
  157.         dc.l    ABorder0,ABorder2,AText0,0,0
  158.         dc.w    "AS"
  159.         dc.l    0
  160. AText0        dc.b    1,0,1,0
  161.         dc.w    140-9*4,2
  162.         dc.l    0,ABytes0,0
  163.         TEXT    ABytes0,"ASSEMBLER"
  164. ABool1        dc.l    ABool2
  165.         dc.w    20,27+21,280,11,2,2,1
  166.         dc.l    ABorder0,ABorder2,AText1,0,0
  167.         dc.w    "BS"
  168.         dc.l    0
  169. AText1        dc.b    1,0,1,0
  170.         dc.w    140-5*4,2
  171.         dc.l    0,ABytes1,0
  172.         TEXT    ABytes1,"BASIC"
  173. ABool2        dc.l    ABool3
  174.         dc.w    20,27+2*21,280,11,2,2,1
  175.         dc.l    ABorder0,ABorder2,AText2,0,0
  176.         dc.w    "CS"
  177.         dc.l    0
  178. AText2        dc.b    1,0,1,0
  179.         dc.w    140-4,2
  180.         dc.l    0,ABytes2,0
  181.         TEXT    ABytes2,"C"
  182. ABool3        dc.l    ABool4
  183.         dc.w    20,27+20+7+5*10+3*11,130,11,2,1,1
  184.         dc.l    ABorder4,ABorder6,AText3,0,0
  185.         dc.w    "CL"
  186.         dc.l    0
  187. AText3        dc.b    1,0,1,0
  188.         dc.w    65-5*4,2
  189.         dc.l    0,ABytes3,0
  190.         TEXT    ABytes3,"CANCEL"
  191. ABool4        dc.l    0
  192.         dc.w    170,27+20+7+5*10+3*11,130,11,2,1,1
  193.         dc.l    ABorder4,ABorder6,AText4,0,0
  194.         dc.w    "OK"
  195.         dc.l    0
  196. AText4        dc.b    1,0,1,0
  197.         dc.w    65-8*4,2
  198.         dc.l    0,ABytes4,0
  199.         TEXT    ABytes4,"CONTINUE"
  200.  
  201. ChangeText    dc.b    1,0,1,0
  202.         dc.w    160-12*4,10
  203.         dc.l    0,ChangeBytes,PropText
  204.         TEXT    ChangeBytes,<"CHANGE TO ...">
  205. PropText    dc.b    1,0,1,0
  206.         dc.w    160-14*4,90
  207.         dc.l    0,PropBytes,0
  208.         TEXT    PropBytes,<"BUFFER: 000000">
  209. Memory        ds.l    1
  210.  
  211. ABorder0    dc.w    0,0
  212.         dc.b    2,0,1,3
  213.         dc.l    APairs02,ABorder1
  214. ABorder1    dc.w    0,0
  215.         dc.b    1,0,1,3
  216.         dc.l    APairs13,0
  217. ABorder2    dc.w    0,0
  218.         dc.b    1,0,1,3
  219.         dc.l    APairs02,ABorder3
  220. ABorder3    dc.w    0,0
  221.         dc.b    2,0,1,3
  222.         dc.l    APairs13,0
  223. APairs02    dc.w    279,0,0,0,0,9
  224. APairs13    dc.w    0,10,279,10,279,1
  225. ABorder4    dc.w    0,0
  226.         dc.b    2,0,1,3
  227.         dc.l    APairs46,ABorder5
  228. ABorder5    dc.w    0,0
  229.         dc.b    1,0,1,3
  230.         dc.l    APairs57,0
  231. ABorder6    dc.w    0,0
  232.         dc.b    1,0,1,3
  233.         dc.l    APairs46,ABorder7
  234. ABorder7    dc.w    0,0
  235.         dc.b    2,0,1,3
  236.         dc.l    APairs57,0
  237. APairs46    dc.w    129,0,0,0,0,9
  238. APairs57    dc.w    0,10,129,10,129,1
  239. ABorder8    dc.w    0,0
  240.         dc.b    2,0,1,3
  241.         dc.l    APairs8,ABorder9
  242. APairs8     dc.w    319,0,0,0,0,156
  243. ABorder9    dc.w    0,0
  244.         dc.b    1,0,1,3
  245.         dc.l    APairs9,PropBorder0
  246. APairs9     dc.w    0,157,319,157,319,1
  247. PropBorder0    dc.w    20,107
  248.         dc.b    1,0,1,3
  249.         dc.l    PropPairs0,PropBorder1
  250. PropPairs0    dc.w    279,0,0,0,0,8
  251. PropBorder1    dc.w    20,107
  252.         dc.b    2,0,1,3
  253.         dc.l    PropPairs1,0
  254. PropPairs1    dc.w    0,9,279,9,279,1
  255.  
  256.     END
  257.  
  258.  
  259.