home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 21 / AACD 21.iso / AACD / Games / JST / InstallWizard / source / hd.asm < prev    next >
Encoding:
Assembly Source File  |  2001-03-19  |  2.1 KB  |  110 lines

  1. ; *** %gamename% HD loader v1.0
  2. ; *** Written by %authorname%
  3.  
  4.     include  "syslibs.i"                ; !osemu
  5.     include  "jst.i"
  6.  
  7.     HD_PARAMS   "",0,0                   ; !fileload
  8.     HD_PARAMS   "%diskfile%",%disksize%,%nbdisks% ; !diskload
  9.  
  10. loader:
  11.     RELOC_MOVEL D0,trainer
  12.  
  13.     move.l   #%extsize%,D0            ; !expmem
  14.     JSRABS   AllocExtMem            ; !expmem
  15.     RELOC_MOVEL D0,ExtBase            ; !expmem
  16.     beq   MemErr                ; !expmem
  17.  
  18.     Mac_printf  "%gamename% HD Loader v1.0"
  19.     Mac_printf  "Coded by %authorname% © %year%"
  20.  
  21.     RELOC_TSTL  trainer
  22.     beq   .skip
  23.  
  24.     NEWLINE
  25.     Mac_printf  "Trainer activated"
  26. .skip
  27.     JSRGEN   CheckAGA            ; !aga
  28.     tst.l D0                ; !aga
  29.     bne   AgaErr                ; !aga
  30.  
  31.     TESTFILE    progname        ; !osemu
  32.     tst.l    D0                ; !osemu
  33.     bne    ExeErr                ; !osemu
  34.  
  35.     lea    subdir_name(pc),A0        ; !subdir
  36.     JSRABS    SetFilesPath            ; !subdir
  37.  
  38.     JSRABS    UseHarryOSEmu            ; !osemu
  39.  
  40.     JSRABS    LoadDisks            ; !diskload
  41.     move.l    #%sizelimit%,D0        ; !fileload
  42.     JSRABS    LoadSmallFiles            ; !fileload
  43.  
  44.     moveq.l    #0,D0
  45.     move.l    #CACRF_CopyBack,D1
  46.     JSRABS    Degrade
  47.  
  48.     GO_SUPERVISOR
  49.     SAVE_OSDATA    %chipsize%
  50.  
  51.     move.w    #0,SR                ; !osemu
  52.  
  53. ;;    JSRGEN    FreezeAll
  54. ;;    move    #$2700,SR
  55.  
  56.     bsr    InstallBoot
  57.  
  58.     ; **** boot stuff and patch
  59.  
  60.     JSRGEN    FlushCachesHard
  61.                     ; !osemu
  62.     JSR    (A1)            ; !osemu
  63.                     ; !osemu
  64.  
  65.     JSRGEN    InGameExit
  66.  
  67. InstallBoot:
  68.     lea    progname(pc),A0    ; !osemu
  69.     bsr    LoadExecutable    ; !osemu
  70.     STORE_REGS    ; !osemu
  71.     move.l    A1,A3    ; !osemu
  72.             ; !osemu
  73.     move.l    A3,A0    ; !osemu
  74.     move.l    A0,A1    ; !osemu
  75.     lea    .bytes(pc),A2    ; !osemu
  76.     moveq.l    #8,D0            ; !osemu
  77.     JSRGEN    HexSearch        ; !osemu
  78.     RESTORE_REGS    ; !osemu
  79.     rts
  80. .bytes:            ; !osemu
  81.     dc.l    0,0        ; !osemu
  82.  
  83. MemErr:                                    ; !expmem
  84.     Mac_printf    "** Not enough memory to run %gamename%!"    ; !expmem
  85.     JMPABS        CloseAll                    ; !expmem
  86.  
  87. AgaErr:                                    ; !aga
  88.     Mac_printf    "** You need a A1200/A4000 to run %gamename%!"    ; !aga
  89.     JMPABS        CloseAll                    ; !aga
  90.  
  91. ExeErr:
  92.     lea    exenotfound(pc),A1        ; !osemu
  93.     JSRABS    Display                ; !osemu
  94.     NEWLINE                    ; !osemu
  95.     JMPABS    CloseAll            ; !osemu
  96.  
  97. subdir_name:                                ; !subdir
  98.     dc.b    "%subdir%",0                        ; !subdir
  99.     cnop    0,4                            ; !subdir
  100.  
  101. trainer:
  102.     dc.l  0
  103. ExtBase:            ; !expmem
  104.     dc.l  0            ; !expmem
  105.  
  106. exenotfound:                ; !osemu
  107.     dc.b    "** Cannot find file "    ; !osemu
  108. progname:            ; !osemu
  109.     dc.b    "%gamename%",0    ; !osemu
  110.