home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 42 / af042b.adf / Extensions.lha / _request.s < prev    next >
Text File  |  1992-02-21  |  13KB  |  638 lines

  1. ;---------------------------------------------------------------------
  2. ;    **   **   **  ***   ***   ****     **    ***  **  ****
  3. ;   ****  *** *** ** ** **     ** **   ****  **    ** **  **
  4. ;  **  ** ** * ** ** **  ***   *****  **  **  ***  ** **
  5. ;  ****** **   ** ** **    **  **  ** ******    ** ** **
  6. ;  **  ** **   ** ** ** *  **  **  ** **  ** *  ** ** **  **
  7. ;  **  ** **   **  ***   ***   *****  **  **  ***  **  ****
  8. ;---------------------------------------------------------------------
  9. ; AMOS Requester handler 
  10. ; By François Lionet
  11. ; AMOS and AMOS Compiler (c) Europress Software 1991
  12. ; To be used with AMOS1.3 and over
  13. ;--------------------------------------------------------------------- 
  14. ; This file is public domain
  15. ;---------------------------------------------------------------------
  16. ; Please refer to the _Music.s file for more informations
  17. ;---------------------------------------------------------------------
  18. *
  19. Version        MACRO
  20.         dc.b    "1.41"
  21.         ENDM
  22. *
  23.  
  24.  
  25.  
  26. Req_WY        equ    100
  27.  
  28. T_Tit        equ    0
  29. T_Text        equ    T_Tit+80
  30. T_Gad        equ    T_Text+320
  31. T_Size        equ    T_Gad+128
  32.  
  33. *
  34. ExtNb        equ    3-1
  35. *
  36.          Include    "_Equ.s"
  37.         RsSet    DataLong
  38.         Include "_Pointe.s"
  39.         Include "_CEqu.s"
  40.         Include    "_WEqu.s"
  41.         Include    "_LEqu.s"
  42. *
  43. Start        dc.l    C_Tk-C_Off
  44.         dc.l    C_Lib-C_Tk
  45.         dc.l    C_Title-C_Lib
  46.         dc.l    C_End-C_Title
  47.         dc.w    -1    
  48. *
  49. ******************************************************************
  50. *         OFFSETS TO FUNCTIONS
  51. C_Off           dc.w (L1-L0)/2,(L2-L1)/2,(L3-L2)/2,(L4-L3)/2
  52.             dc.w (L5-L4)/2,(L6-L5)/2,(L7-L6)/2,(L8-L7)/2
  53.             dc.w (L9-L8)/2,(L10-L9)/2,(L11-L10)/2
  54.  
  55. ******************************************************************
  56. *     TOKEN TABLE + Addresses
  57. C_Tk        dc.w     1,0
  58.         dc.b     $80,-1
  59.         dc.w    L_ReqOn,-1
  60.         dc.b    "request o","n"+$80,"I",-1
  61.         dc.w    L_ReqOf,-1
  62.         dc.b    "request of","f"+$80,"I",-1
  63.         dc.w    L_ReqWb,-1
  64.         dc.b    "request w","b"+$80,"I",-1
  65.         dc.w     0
  66.  
  67. ******************************************************************
  68. C_Lib
  69. ******************************************************************
  70. *        COLD START
  71. L0    movem.l    a3-a6,-(sp)
  72.     lea    ReqData(pc),a4
  73.     move.l    a4,ExtAdr+ExtNb*16(a5)
  74.     lea    Quit(pc),a0
  75.     move.l    a0,ExtAdr+ExtNb*16+8(a5)
  76. * Copy default palette    
  77.     lea    DefEPa+8(a5),a0    
  78.     lea    Req_Pal+8(pc),a1
  79.     moveq    #28-1,d0
  80. CPal    move.w    (a0)+,(a1)+
  81.     dbra    d0,CPal
  82. * Branch the requester
  83.     move.l    a5,Datas-ReqData(a4)
  84.     lea    Request(pc),a0
  85.     Rbsr    L_SetJump
  86.     move.l    d0,ReqPrev-ReqData(a4)
  87.     move.w    #-1,ReqFlag-ReqData(a4)            * Default is AMOS request
  88. * Return to caller
  89.     movem.l    (sp)+,a3-a6
  90.     moveq    #ExtNb,d0            * NO ERRORS
  91.     rts
  92.  
  93. ******* SCREEN RESET
  94. Warm    rts
  95.  
  96. ******* QUIT
  97. Quit    move.l    ReqPrev(pc),a0
  98.     Rbsr    L_SetJump
  99.     rts
  100.  
  101. ***********************************************************
  102. *    AMOS REQUESTER
  103. Request
  104.     movem.l    a0-a6/d0-d7,-(sp)
  105.  
  106.     lea    ReqData(pc),a6
  107.     move.l    Datas-ReqData(a6),a5
  108.     tst    ReqFlag-ReqData(a6)
  109.     beq.s    ReqANo
  110.     bmi.s    ReqAMOS
  111.  
  112. ******* System requester
  113. SyReq    tst.w    WbClose(a5)
  114.     bne.s    ReqAMOS
  115.     move.w    T_AMOSHere(a5),d0    * Is AMOS here?
  116. SyReq0    move.w    d0,ReqOld-ReqData(a6)
  117.     beq.s    SyReq1
  118.     EcCalD    AMOS_WB,0        * AMOS To BACK
  119. SyReq1    movem.l    (sp),a0-a6/d0-d7
  120.     move.l    ReqPrev(pc),a5
  121.     jsr    (a5)
  122.     lea    ReqData(pc),a6
  123.     move.l    Datas-ReqData(a6),a5
  124.     move.l    d0,Req_Pos-ReqData(a6)
  125.     move.w    ReqOld(pc),d1
  126.     beq.s    SyReq2
  127.     EcCalD    AMOS_WB,1        * AMOS To FRONT
  128. SyReq2    bra    ReqXX
  129.     
  130. ******* Always NO!
  131. ReqANo    movem.l    (sp)+,a0-a6/d0-d7
  132.     moveq    #0,d0
  133.     rts
  134.  
  135. ******* AMOS Normal requester
  136. ReqAMOS
  137.     move.w    T_AMOSHere(a5),d0    * Is AMOS Here?
  138.     beq.s    SyReq0
  139.     tst.w    ReqHere-ReqData(a6)        * Si deuxieme requester
  140.     bne.s    SyReq0            * >>> WB!
  141.     move.w    #-1,ReqHere-ReqData(a6)
  142. * 2.0 or 1.3?
  143.     tst.w    WB2.0(a5)        * WB2.0-> Normal requester!
  144.     bne.s    .20
  145.     bsr    Req_1.3
  146.     bra.s    .Open
  147. .20    bsr    Req_2.0
  148. * Open screen
  149. .Open    SyCall    AMALFrz
  150.     bsr    UnMix1
  151.     move.w    Req_Sx-ReqData(a6),d2
  152.     lsl.w    #3,d2
  153.     ext.l    d2
  154.     move.w    Req_Sy-ReqData(a6),d3
  155.     lsl.w    #3,d3
  156.     ext.l    d3
  157.     move.w    d3,Req_Sy-ReqData(a6)
  158.     moveq    #2,d4
  159.     move.l    #$8000,d5
  160.     moveq    #4,d6
  161.     moveq    #0,d7
  162.     lea    Req_Pal-ReqData(a6),a1
  163.     EcCalD    Cree,EcReq
  164.     bne    NoReq
  165.     move.l    a0,ScAdr-ReqData(a6)
  166.     SyCalD    ResZone,2
  167. * Initialise background text
  168.     WiCalA    Print,Req_Back-ReqData(a6)
  169.     WiCalA    Centre,T_Tit(a4)
  170.     WiCalA    Print,Req_Tit1(pc)
  171. * Print main text
  172.     moveq    #0,d1
  173.     moveq    #4,d2
  174.     WiCall    Locate
  175.     lea    T_Text(a4),a1
  176. .lop    move.l    a1,-(sp)
  177.     WiCall    Centre
  178.     move.l    (sp)+,a1
  179. .lop1    tst.b    (a1)+
  180.     bne.s    .lop1
  181.     tst.b    (a1)
  182.     bne.s    .lop
  183. * Positive text (left)
  184.     moveq    #1,d0
  185.     moveq    #"0",d1
  186.     bsr    PrtZone
  187. * Negative text (right)
  188. .NoPos    move.l    Req_Neg-ReqData(a6),d0
  189.     beq.s    .NoNeg
  190.     move.l    d0,a0
  191. .lop2    tst.b    (a0)+
  192.     bne.s    .lop2
  193.     sub.l    d0,a0
  194.     move.w    Req_Sx-ReqData(a6),d0
  195.     sub.w    a0,d0
  196.     add.b    #48,d0
  197.     move.b    d0,XTNeg-ReqData(a6)
  198.     moveq    #2,d0
  199.     moveq    #"0",d1
  200.     bsr    PrtZone
  201. * Screen appearance
  202. .NoNeg    move.l    ScAdr-ReqData(a6),a2
  203.     move.w    #288,d0
  204.     move.w    Req_Sx-ReqData(a6),d1
  205.     lsl.w    #1,d1
  206.     sub.w    d1,d0
  207.     move.w    d0,EcAWX(a2)
  208.     bset    #1,EcAW(a2)
  209.     moveq    #8,d7
  210.     moveq    #1,d6
  211.     move.w    Req_Sy-ReqData(a6),d5
  212.     lsr.w    #1,d5
  213.     add.w    #Req_Wy,d5
  214.     bsr    AppCentre
  215.     bsr    UnMix2
  216. * State of disc drive
  217.     SyCall    GetDisc
  218.     move.w    d0,DOld-ReqData(a6)
  219.  
  220. ******* Test loop (fun!)
  221. ReqLoop    move.l    a6,-(sp)
  222.     move.l    T_GfxBase(a5),a6
  223.     jsr    -270(a6)
  224.     move.l    (sp)+,a6
  225. * Automatic disc change
  226.     move.l    Req_IDCMP-ReqData(a6),d0
  227.     btst    #15,d0
  228.     beq.s    NoAuto
  229.     SyCall    GetDisc
  230.     cmp.w    DOld-ReqData(a6),d0
  231.     beq.s    NoAuto
  232.     move.w    d0,DOld-ReqData(a6)
  233.     bne    ReqYes
  234. * Keyboard
  235. NoAuto    SyCall    Inkey
  236.     cmp.w    #13,d1        * ASCII-> Return 
  237.     beq.s    ReqYes    
  238.     cmp.w    #27,d1        * ASCII-> ESC
  239.     beq.s    ReqNo    
  240. * Don't you think it is better than this wierd Amiga V and B?
  241. * Sometime I ask myself what they were thinking when they chose such
  242. * key combinations!
  243.     swap    d1
  244.     move.w    d1,d0        * Isolate AMIGA keys
  245.     and.w    #%1100000000000000,d0
  246.     beq.s    RqL0
  247.     cmp.b    #$34,d1        * V
  248.     beq.s    ReqYes
  249.     cmp.b    #$35,d1        * B
  250.     beq.s    ReqNo
  251. * Mouse pointer
  252. RqL0    SyCall    GetZone
  253.     cmp.w    #EcReq,d1
  254.     beq.s    RqL1
  255.     moveq    #0,d1
  256. RqL1:    swap     d1
  257.     cmp.w    d7,d1
  258.     beq.s    RqL2
  259.     move.w    d7,d0
  260.     move.w    d1,d7
  261.     moveq    #"0",d1
  262.     bsr    UnMix1
  263.     bsr    PrtZone
  264.     bsr    UnMix2
  265. RqL2:    move.w    d7,d0
  266.     moveq    #"1",d1
  267.     bsr    UnMix1
  268.     bsr    PrtZone
  269.     bsr    UnMix2
  270.     tst.w    d7
  271.     beq    ReqLoop
  272.     SyCall    MouseKey
  273.     tst.w    d1
  274.     beq    ReqLoop
  275.     cmp.w    #2,d7
  276.     beq.s    ReqNo
  277. ReqYes    moveq    #-1,d0
  278.     bra.s    ReqGo
  279. ReqNo    moveq    #0,d0
  280.  
  281. ******* End of screen (well done!!!)
  282. ReqGo    move.l    d0,-(sp)
  283.     bsr    UnMix1
  284.     move.l    ScAdr-ReqData(a6),a2
  285.     moveq    #-8,d7
  286.     move.w    EcTY(a2),d6
  287.     lsr.w    #1,d6
  288.     move.w    Req_Sy-ReqData(a6),d5
  289.     lsr.w    #1,d5
  290.     add.w    #Req_Wy,d5
  291.     bsr    AppCentre
  292.     EcCalD    Del,EcReq
  293.     bsr    UnMix2
  294.  
  295. ******* Back to system!
  296. ReqX    bsr    ClrData
  297.     clr.w    ReqHere-ReqData(a6)
  298.     SyCall    AMALUFrz    
  299.     move.l    (sp)+,Req_Pos-ReqData(a6)    * Returns answer
  300. * Normal exit
  301. ReqXX    movem.l    (sp)+,a0-a6/d0-d7
  302.     move.l    Req_Pos(pc),d0
  303.     rts
  304. ******* Can't open screen!!!
  305. NoReq    clr.l    -(sp)
  306.     bra.s    ReqX
  307.  
  308. ******* Print a zone D0-> zone, D1-> inverse or not
  309. PrtZone    subq.w    #1,d0
  310.     bmi.s    PrtX
  311.     bne.s    PrtNeg
  312. * Print pos text
  313. PrtPos    tst.l    Req_Pos-ReqData(a6)
  314.     beq.s    .skip
  315.     lea    TPos1-ReqData(a6),a1
  316.     move.b    d1,5(a1)
  317.     WiCall    Print
  318.     move.l    Req_Pos-ReqData(a6),a1
  319.     WiCall    Print
  320.     WiCalA    Print,TPos2-ReqData(a6)
  321. .skip    bra.s    PrtX
  322. * Print neg text
  323. PrtNeg    tst.l    Req_Neg-ReqData(a6)
  324.     beq.s    .skip
  325.     lea    TNeg1-ReqData(a6),a1
  326.     move.b    d1,5(a1)
  327.     WiCall    Print
  328.     move.l    Req_Neg-ReqData(a6),a1
  329.     WiCall    Print
  330.     WiCalA    Print,TNeg2-ReqData(a6)
  331. .skip
  332. PrtX    rts
  333.  
  334. ******* Screen appearance
  335. AppCentre:
  336.     move.w    d6,d4
  337.     move.w    d6,EcAWTy(a2)
  338.     add.w    d6,EcAWTy(a2)
  339.     bset    #2,EcAWT(a2)
  340.     move.w    EcTy(a2),d0
  341.     lsr.w    #1,d0
  342.     sub.w    d6,d0
  343.     move.w    d0,EcAVY(a2)
  344.     bset    #2,EcAV(a2)
  345.     move.w    d5,EcAWy(a2)
  346.     sub.w    d6,EcAWy(a2)
  347.     bset    #2,EcAW(a2)
  348.     movem.l    a2/d4-d7,-(sp)
  349.     SyCall    WaitVBL
  350.     EcCall    CopForce
  351.     movem.l    (sp)+,a2/d4-d7
  352.     add.w    d7,d6
  353.     bpl.s    FsApp2
  354.     clr.w    d6
  355. FsApp2:    move.w    EcTy(a2),d0
  356.     lsr.w    #1,d0
  357.     cmp.w    d0,d6
  358.     bcs.s    FsApp3
  359.     move.w    d0,d6
  360. FsApp3:    cmp.w    d4,d6
  361.     bne.s    AppCentre
  362.     rts
  363.  
  364. ******* Prevent mixes between AMOS and the requester!
  365. UnMix1    movem.l    d0-d7/a0-a6,-(sp)
  366.     move.l    $4,a6
  367.     jsr    Forbid(a6)
  368.     EcCall    Current
  369.     move.w    EcNumber(a0),d1
  370.     lea    ReqOld(pc),a0
  371.     move.w    d1,(a0)
  372.     EcCalD    Active,EcReq
  373.     EcCalD    First,EcReq
  374.     movem.l    (sp)+,d0-d7/a0-a6
  375.     rts
  376. UnMix2    movem.l    d0-d7/a0-a6,-(sp)
  377.     move.w    ReqOld(pc),d1
  378.     EcCall    Active
  379.     move.l    $4,a6
  380.     jsr    Permit(a6)
  381.     movem.l    (sp)+,d0-d7/a0-a6
  382.     rts
  383.  
  384. ******* Open TEXT data zone
  385. ResData    move.l    #T_Size,d0
  386.     SyCall    SyFast
  387.     move.l    d0,a4
  388.     rts
  389. ******* Clear TEXT data zone
  390. ClrData    move.l    #T_Size,d0
  391.     move.l    a4,a1
  392.     SyCall    SyFree
  393.     rts
  394.  
  395. ******* Entree requester WB1.3
  396. Req_1.3    bsr    ResData
  397.  
  398.     move.l    #$00008000,Req_IDCMP-ReqData(a6)
  399.  
  400.     lsr.w    #3,d2
  401.     addq.w    #3,d2
  402.     and.w    #$FFFC,d2
  403.     move.w    d2,Req_Sx-ReqData(a6)
  404.     lsr.w    #3,d3
  405.     addq.w    #2,d3
  406.     move.w    d3,Req_Sy-ReqData(a6)
  407.  
  408.     move.l    a1,a0
  409.     lea    T_Text(a4),a1
  410.     moveq    #10,d0
  411.     bsr    IT_Print
  412.  
  413.     clr.l    Req_Pos-ReqData(a6)
  414.     lea    T_Gad(a4),a1
  415.     move.l    a2,d0
  416.     move.l    d0,a0
  417.     beq.s    .skip1
  418.     move.l    a1,Req_Pos-ReqData(a6)
  419.     moveq    #0,d0
  420.     bsr    IT_Print
  421. .skip1
  422.     clr.l    Req_Neg-ReqData(a6)
  423.     lea    T_Gad+64(a4),a1
  424.     move.l    a3,d0
  425.     move.l    d0,a0
  426.     beq.s    .skip2
  427.     move.l    a1,Req_Neg-ReqData(a6)
  428.     moveq    #0,d0
  429.     bsr    IT_Print
  430. .skip2
  431.     lea    Req_Tit(pc),a0
  432.     lea    T_Tit(a4),a1
  433. .loop    move.b    (a0)+,(a1)+
  434.     bne.s    .loop
  435.     rts    
  436.  
  437. ******* Entree requester WB2.0: fabrique les chaines de caracteres
  438. Req_2.0    bsr    ResData
  439.     move.l    (a2),Req_IDCMP-ReqData(a6)
  440.  
  441.     lea    8(a1),a2
  442.     clr.w    TxtMaxCx-ReqData(a6)
  443.  
  444.     lea    T_Tit(a4),a1
  445.     move.l    (a2)+,d0
  446.     move.l    d0,a0
  447.     bne.s    .nof
  448.     lea    Req_Tit(pc),a0
  449. .nof    bsr    Format
  450.  
  451.     move.l    (a2)+,a0
  452.     lea    T_Text(a4),a1
  453.     bsr    Format
  454.     move.w    TxtCy-ReqData(a6),Req_Sy-ReqData(a6)
  455.  
  456.     move.l    (a2)+,a0
  457.     lea    T_Gad(a4),a1
  458.     bsr    Format
  459.  
  460.     lea    T_Gad(a4),a0
  461.     move.l    a0,Req_Pos-ReqData(a6)
  462.     clr.l    Req_Neg-ReqData(a6)
  463. .loop    move.b    (a0)+,d0
  464.     beq.s    .skp
  465.     cmp.b    #"|",d0
  466.     bne.s    .loop
  467.     clr.b    -1(a0)
  468.     move.l    a0,Req_Neg-ReqData(a6)
  469. .skp
  470.     move.w    TxtMaxCx-ReqData(a6),d0
  471.     cmp.w    #32,d0
  472.     bcc.s    .skp2
  473.     moveq    #32,d0
  474. .skp2    add.w    #9,d0
  475.     and.w    #$FFFC,d0
  476.     move.w    d0,Req_Sx-ReqData(a6)
  477.  
  478.     add.w    #8,Req_Sy-ReqData(a6)
  479.     rts
  480.  
  481. ** Routine, appel de RawDoFmt
  482. Format    clr.w    TxtCx-ReqData(a6)
  483.     move.w    #1,TxtCy-ReqData(a6)
  484.     movem.l    a2/a3/a6,-(sp)
  485.     exg    a3,a1
  486.     lea    .OutC(pc),a2
  487.     move.l    $4.w,a6
  488.     jsr    -522(a6)
  489.     exg    a3,a1
  490.     movem.l    (sp)+,a2/a3/a6
  491. .XMax    move.w    TxtCx-ReqData(a6),d0
  492.     cmp.w    TxtMaxCx-ReqData(a6),d0
  493.     bls.s    .sk
  494.     move.w    d0,TxtMaxCx-ReqData(a6)
  495. .sk    rts
  496. .OutC    movem.l    a6/d0,-(sp)
  497.     lea    ReqData(pc),a6
  498.     addq.w    #1,TxtCx-ReqData(a6)
  499.     move.b    d0,(a3)+
  500.     cmp.b    #10,d0
  501.     bne.s    .Skip
  502.     clr.b    (a3)+
  503.     addq.w    #1,TxtCy-ReqData(a6)
  504.     bsr.s    .XMax
  505.     clr.w    TxtCx-ReqData(a6)
  506. .Skip    movem.l    (sp)+,a6/d0
  507.     clr.b    (a3)
  508.     rts
  509.  
  510. ******* Routine: copie un intuitext dans le buffer
  511. *    A0-> ITEXT
  512. *    A1-> Buffer
  513. *    D0-> Mettre un 10 a la fin...
  514. IT_Print
  515.     movem.l    a0-a2/d0-d1,-(sp)
  516. .loop    move.l    12(a0),d1
  517.     move.l    d1,a2
  518.     beq.s    .skip
  519. .loop1    move.b    (a2)+,(a1)+
  520.     bne.s    .loop1
  521.     tst.w    d0
  522.     beq.s    .skip
  523.     move.b    d0,-1(a1)
  524.     clr.b    (a1)+
  525. .skip    move.l    16(a0),d1
  526.     move.l    d1,a0
  527.     bne.s    .loop
  528.     movem.l    (sp)+,a0-a2/d0-d1
  529.     rts
  530.  
  531. ;--------------------------------------------------------------------
  532. *        DATA ZONE
  533. ReqData        
  534. *
  535. ScAdr        dc.l     0
  536. Datas        dc.l     0
  537. ReqMain        dc.l     0
  538. ReqPrev        dc.l    0
  539. Req_Sx        dc.w     0
  540. Req_Sy        dc.w    0
  541. Req_Pos        dc.l    0
  542. Req_Neg        dc.l    0
  543. Req_IDCMP    dc.l    0
  544. ReqFlag        dc.w     0
  545. ReqOld        dc.w     0
  546. ReqHere        dc.w    0
  547. DOld        dc.w    0
  548. WB20        dc.w    0
  549. TxtCx        dc.w    0
  550. TxtMaxCx    dc.w    0
  551. TxtCy        dc.w    0
  552.  
  553. Req_Pal        dc.w    $000,$46C,$FFF,$C41
  554.         ds.w    28
  555.  
  556. *         Background drawing
  557. Req_Back    dc.b 27,"C0",27,"V0"
  558.         dc.b 24,28,31,27,"E0",24,29,30,27,"E2"
  559.         dc.b 27,"B3",24,31,7
  560.         dc.b 24,28,31,27,"E0",29,29,31,27,"E2"
  561.         dc.b 24,31
  562.         dc.b 0
  563. *         Title
  564. Req_Tit        dc.b "System request",0
  565. Req_Tit1    dc.b 27,"B1",0
  566. *         Positive text
  567. TPos1        dc.b 27,"B3",27,"I0",24,30,30,28,27,"E0",27,"Z0",0
  568. TPos2        dc.b 27,"E2",27,"Z1",0
  569. *         Negative text
  570. TNeg1        dc.b 27,"B3",27,"I0",24,30,30,27,"X"
  571. XTNeg        dc.b "0",27,"E0",27,"Z0",0
  572. TNeg2        dc.b 27,"E2",27,"Z2",0
  573.         even
  574. ;--------------------------------------------------------------------
  575.  
  576. L1
  577. L2
  578. L3
  579.  
  580. ***********************************************************
  581. *        REQUEST WB
  582. L_ReqWb        equ    4
  583. L4    moveq    #1,d0
  584.     Rbra    L_ROnOf
  585. *********************************************************** 
  586. *        REQUEST ON
  587. L_ReqOn        equ    5
  588. L5    moveq    #-1,d0
  589.     Rbra    L_ROnOf
  590. *********************************************************** 
  591. *        REQUEST OFF
  592. L_ReqOf        equ    6
  593. L6    moveq    #0,d0
  594.     Rbra    L_ROnOf
  595. *
  596. L_ROnOf        equ    7
  597. L7    move.l    ExtAdr+ExtNb*16(a5),a0
  598.     move.w    d0,ReqFlag-ReqData(a0)
  599.     rts
  600.  
  601. ********************************************************** 
  602. *    Change the library jump
  603. L_SetJump    equ    8
  604. L8    movem.l    a1/a6,-(sp)
  605.     move.l    a0,d0
  606.     move.l    T_IntBase(a5),a1
  607.     lea    -$15c,a0
  608.     move.w    WB2.0(a5),d1
  609.     beq.s    SetJ1
  610.     lea    -$1d4-(20*6),a0
  611. SetJ1    move.l    $4,a6
  612.     jsr    SetFunction(a6)
  613.     movem.l    (sp)+,a1/a6
  614.     rts
  615.  
  616. **********************************************************
  617. *    Even if you do not have error messages, you MUST
  618. *    leave TWO routines empty at the end...
  619. L9
  620. L10
  621. * Two routines means three borders!
  622. L11
  623.  
  624. *******************************************************************************
  625.  
  626. *         Welcome message
  627. C_Title        dc.b     31,"Requester V "
  628.         Version
  629.         dc.b    0,"$VER: "
  630.         Version
  631.         dc.b    0
  632.         Even
  633.  
  634. *        End of extension
  635. C_End        dc.w    0
  636.  
  637.     even
  638.