home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga 13 / MA_Cover_13.bin / source / asm / sfs / initializers.asm < prev    next >
Encoding:
Assembly Source File  |  1999-11-29  |  6.2 KB  |  290 lines

  1. *-----------------------------------------------*
  2. *    @Localize                *
  3. *-----------------------------------------------*
  4.  
  5. Localize:
  6.     move.l    localebase(a4),a6
  7.     MENUSTR    PROJECT,MT_Project
  8.     MENUSTR    PROJECT_SETTINGS,MI_Asetukset
  9.     MENUSTR    PROJECT_MUI_SETTINGS,MI_MUI_Asetukset
  10.     MENUSTR    PROJECT_ABOUT,MI_Tietoja
  11.     MENUSTR    PROJECT_ABOUT_MUI,MI_TietojaMUI
  12.     MENUSTR    PROJECT_QUIT,MI_Quit
  13.  
  14.     GETSTR2    MSG_GENERAL_INFO_FORMAT
  15.     move.l    d0,GeneralInfoFormat(a4)
  16.     GETSTR2    MSG_GENERAL_INFO_FORMAT2
  17.     move.l    d0,GeneralInfoFormat2(a4)
  18.     GETSTR2    MSG_GENERAL_INFO_FORMAT3
  19.     move.l    d0,GeneralInfoFormat3(a4)
  20.     GETSTR2    MSG_START_END_OFFSET_FORMAT
  21.     move.l    d0,StartEndOffsetText(a4)
  22.     GETSTR2    MSG_CACHE_SIZE_FORMAT
  23.     move.l    d0,CacheSizeText(a4)
  24.     GETSTR2    MSG_COPYBACK
  25.     move.l    d0,CopyBackText(a4)
  26.     GETSTR2    MSG_WRITE_THROUGH
  27.     move.l    d0,WriteThroughText(a4)
  28.     GETSTR2    MSG_NONE
  29.     move.l    d0,NoneText(a4)
  30.     GETSTR2 MSG_CASE_SENSITIVE
  31.     move.l    d0,CaseSensitiveText(a4)
  32.     GETSTR2    MSG_RECYCLED
  33.     move.l    d0,RecycledText(a4)
  34.     GETSTR2    MSG_NSD
  35.     move.l    d0,NSDText(a4)
  36.     GETSTR2    MSG_TD64
  37.     move.l    d0,TD64Text(a4)
  38.     GETSTR2    MSG_SCSI_DIRECT
  39.     move.l    d0,SCSIDirectText(a4)
  40.     GETSTR2    MSG_STANDARD
  41.     move.l    d0,StandardText(a4)
  42.     rts
  43.  
  44. *-----------------------------------------------*
  45. *    @AvaaKirjastot                *
  46. *-----------------------------------------------*
  47.  
  48. AvaaKirjastot:
  49.     lea    libnametable-t(a5),a3
  50.     lea    Kirjastot(a4),a2
  51. .loop1    move.l    (a3)+,d0
  52.     beq.b    .x
  53.     move.l    d0,a1
  54.     moveq    #0,d0
  55.     move.b    (a1)+,d0
  56.     move.l    a1,(a4)
  57.     move.w    d0,4(a4)
  58.     jsr    _LVOOpenLibrary(a6)
  59.     move.l    d0,(a2)+
  60.     bne.b    .loop1
  61.     move.l    dos(a4),a6
  62.     lea    t_ERR_NO_LIBRARY-t(a5),a1
  63.     move.l    a1,d1
  64.     move.l    a4,d2
  65.     jmp    _LVOVPrintf(a6)
  66. .x    rts
  67.  
  68. *-----------------------------------------------*
  69. *    @SuljeKirjastot                *
  70. *-----------------------------------------------*
  71.  
  72. SuljeKirjastot:
  73.     move.l    exec(a4),a6
  74.     lea    Kirjastot(a4),a2
  75.     moveq    #kirjastoja,d2
  76. .loop1    move.l    (a2)+,a1
  77.     jsr    _LVOCloseLibrary(a6)
  78.     dbf    d2,.loop1
  79.     rts
  80.  
  81. *-----------------------------------------------*
  82. *    @DoPostInit                *
  83. *-----------------------------------------------*
  84.  
  85. DoPostInit:
  86.     bsr    GetSomeVolumes
  87.  
  88.     move.l    intui(a4),a6
  89.     move.l    LV_LaiteLista-t(a5),a0
  90.     SETI    MUIA_NList_Active,0
  91.  
  92.     move.l    #MUIA_Application_Base,d0
  93.     move.l    App(a4),a0
  94.     move.l    a4,a1
  95.     jsr    _LVOGetAttr(a6)
  96.     move.l    exec(a4),a6
  97.     lea    PutkiFormaatti-t(a5),a0
  98.     move.l    a4,a1
  99.     lea    putchar,a2
  100.     lea    PutkiTiedosto(a4),a3
  101.     jmp    _LVORawDoFmt(a6)
  102.  
  103. *-----------------------------------------------*
  104. *    @Initialize                *
  105. *-----------------------------------------------*
  106.  
  107. Initialize:
  108.     bsr    CreatePackets
  109.     beq.b    .x
  110.     bsr    AvaaTimerDevice
  111.     beq.b    .x
  112.     bsr    TeePoolot
  113.     beq.b    .x
  114.     bsr    VaraaStepPuskurit
  115.     beq.b    .x
  116.     move.l    localebase(a4),a6        ; avataan katalogi
  117.     suba.l    a0,a0
  118.     lea    catalogname-t(a5),a1
  119.     lea    localetags-t(a5),a2
  120.     jsr    _LVOOpenCatalogA(a6)
  121.     move.l    d0,catalog(a4)
  122.     suba.l    a0,a0
  123.     jsr    _LVOOpenLocale(a6)
  124.     move.l    d0,SystemLocale(a4)
  125.     bsr    Localize
  126.     lea    16(a4),a0
  127.     move.l    a0,TextBuffer(a4)
  128.     move.b    #DTF_SUBST,MyDateTime+dat_Flags(a4)
  129.     moveq    #-1,d0
  130. .x    rts
  131.  
  132. *-----------------------------------------------*
  133. *    @UnInitialize                *
  134. *-----------------------------------------------*
  135.  
  136. UnInitialize:
  137.     bsr    FreeBitMap
  138.     bsr    DeletePackets
  139.     bsr    SuljeTimerDevice
  140.     bsr    TuhoaPoolot
  141.     bsr    VapautaStepPuskurit
  142.     move.l    localebase(a4),a6
  143.     move.l    catalog(a4),a0
  144.     jsr     _LVOCloseCatalog(a6)
  145.     move.l    SystemLocale(a4),a0
  146.     jmp    _LVOCloseLocale(a6)
  147.  
  148. *-----------------------------------------------*
  149. *    @CreatePackets                *
  150. *-----------------------------------------------*
  151.  
  152. CreatePackets:
  153.     move.l    exec(a4),a6
  154.     jsr    _LVOCreateMsgPort(a6)
  155.     move.l    d0,MsgPort(a4)
  156.     beq.b    .x
  157.     move.l    d0,a0
  158.     moveq    #0,d1
  159.     moveq    #0,d2
  160.     move.b    MP_SIGBIT(a0),d1
  161.     bset.l    d1,d2
  162.     move.l    dos(a4),a6
  163.     move.l    d2,PacketMask(a4)
  164.  
  165.     move.l    #DOS_STDPKT,d1
  166.     move.l    #0,d2
  167.     jsr    _LVOAllocDosObject(a6)
  168.     move.l    d0,packet0(a4)
  169.     beq.b    .x
  170.     move.l    #DOS_STDPKT,d1
  171.     move.l    #0,d2
  172.     jsr    _LVOAllocDosObject(a6)
  173.     move.l    d0,packet1(a4)
  174. .x    rts
  175.  
  176. *-----------------------------------------------*
  177. *    @DeletePackets                *
  178. *-----------------------------------------------*
  179.  
  180. DeletePackets:
  181.     move.l    exec(a4),a6
  182.     move.l    MsgPort(a4),a0
  183.     jsr    _LVODeleteMsgPort(a6)
  184.     move.l    dos(a4),a6
  185.     move.l    packet0(a4),d2
  186.     move.l    #DOS_STDPKT,d1
  187.     jsr    _LVOFreeDosObject(a6)
  188.     move.l    packet1(a4),d2
  189.     move.l    #DOS_STDPKT,d1
  190.     jmp    _LVOFreeDosObject(a6)
  191.  
  192. *-----------------------------------------------*
  193. *    @VaraaStepPuskurit            *
  194. *-----------------------------------------------*
  195.  
  196. VaraaStepPuskurit:
  197.     move.l    #step_bufsize*4,d0
  198.     move.l    #MEMF_PUBLIC,d1
  199.     jsr    _LVOAllocVec(a6)
  200.     move.l    d0,data0(a4)
  201.     beq.b    .x
  202.     move.l    #step_bufsize*4,d0
  203.     move.l    #MEMF_PUBLIC,d1
  204.     jsr    _LVOAllocVec(a6)
  205.     move.l    d0,data1(a4)
  206. .x    rts
  207.  
  208. *-----------------------------------------------*
  209. *    @VapautaStepPuskurit            *
  210. *-----------------------------------------------*
  211.  
  212. VapautaStepPuskurit:
  213.     move.l    data0(a4),a1
  214.     jsr    _LVOFreeVec(a6)
  215.     move.l    data1(a4),a1
  216.     jmp    _LVOFreeVec(a6)
  217.  
  218. *---------------------------------------*
  219. *    @AvaaTimerDevice        *
  220. *---------------------------------------*
  221.  
  222. AvaaTimerDevice:
  223.     move.l    exec(a4),a6
  224.     jsr    _LVOCreateMsgPort(a6)
  225.     move.l    d0,timerport(a4)
  226.     beq.b    .x
  227.     move.l    d0,a0
  228.     moveq    #0,d1
  229.     moveq    #0,d2
  230.     move.b    MP_SIGBIT(a0),d1
  231.     bset.l    d1,d2
  232.     move.l    d2,TimerMask(a4)
  233.     or.l    PacketMask(a4),d2
  234.     move.l    #IOTV_SIZE,d0
  235.     move.l    d2,SignalMask(a4)
  236.     jsr    _LVOCreateIORequest(a6)
  237.     move.l    d0,timer_io(a4)
  238.     beq.b    .x
  239.     lea    timername-t(a5),a0
  240.     move.l    d0,a1
  241.     clr.l    IOTV_TIME+TV_SECS(a1)
  242.     clr.l    IOTV_TIME+TV_MICRO(a1)
  243.     move.l    d0,a2
  244.     moveq    #UNIT_VBLANK,d0
  245.     moveq    #0,d1
  246.     jsr    _LVOOpenDevice(a6)
  247.     tst.l    d0
  248.     bne.b    .virhe
  249.     move.l    IO_DEVICE(a2),TimerBase(a4)
  250.     rts
  251. .virhe    moveq    #0,d0
  252. .x    rts
  253.  
  254. *---------------------------------------*
  255. *    @SuljeTimerDevice        *
  256. *---------------------------------------*
  257.  
  258. SuljeTimerDevice:
  259.     move.l    exec(a4),a6
  260.     tst.l    TimerBase(a4)
  261.     beq.b    .skip1
  262.     move.l    timer_io(a4),a1
  263.     jsr    _LVOCloseDevice(a6)
  264. .skip1    move.l    timer_io(a4),a0
  265.     jsr    _LVODeleteIORequest(a6)
  266.     move.l    timerport(a4),a0
  267.     jmp    _LVODeleteMsgPort(a6)
  268.  
  269. *-----------------------------------------------*
  270. *    @TeePoolot                *
  271. *-----------------------------------------------*
  272.  
  273. TeePoolot:
  274.     move.l    exec(a4),a6
  275.     move.l    #MEMF_ANY!MEMF_CLEAR,d0
  276.     move.l    #2048,d1
  277.     move.l    #Laite_SIZEOF,d2
  278.     jsr    _LVOCreatePool(a6)
  279.     move.l    d0,PerusLammikko(a4)
  280.     rts
  281.  
  282. *-----------------------------------------------*
  283. *    @TuhoaPoolot                *
  284. *-----------------------------------------------*
  285.  
  286. TuhoaPoolot:
  287.     move.l    exec(a4),a6
  288.     move.l    PerusLammikko(a4),a0
  289.     jmp    _LVODeletePool(a6)
  290.