[WHDLoad] ElectroMAN v1.0b1 #1
16
WHDLoad/ElectroMAN/.editorconfig
Normal file
16
WHDLoad/ElectroMAN/.editorconfig
Normal file
|
@ -0,0 +1,16 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
charset = latin1
|
||||
end_of_line = lf
|
||||
|
||||
[{Makefile}]
|
||||
indent_style = tab
|
||||
tab_size = 4
|
||||
|
||||
[{*.s}]
|
||||
indent_style = space
|
||||
tab_size = 4
|
||||
|
||||
[{README.md}]
|
||||
charset = utf-8
|
13
WHDLoad/ElectroMAN/.gitignore
vendored
Normal file
13
WHDLoad/ElectroMAN/.gitignore
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
data/DAT/
|
||||
data/L0/
|
||||
data/L1/
|
||||
data/L2/
|
||||
data/L3/
|
||||
data/L4/
|
||||
data/L5/
|
||||
data/L6/
|
||||
data/L7/
|
||||
data/L8/
|
||||
data/SFX/
|
||||
data/ElectroMan.exu*
|
||||
ElectroMAN.slave
|
BIN
WHDLoad/ElectroMAN/ElectroMAN.inf
Executable file
BIN
WHDLoad/ElectroMAN/ElectroMAN.inf
Executable file
Binary file not shown.
327
WHDLoad/ElectroMAN/Install
Executable file
327
WHDLoad/ElectroMAN/Install
Executable file
|
@ -0,0 +1,327 @@
|
|||
|
||||
(set #sub-dir "data") ;name of the sub-directory if any
|
||||
(set #readme-file "ReadMe") ;name of readme file
|
||||
(set #man-file "Manual") ;name of manual file
|
||||
(set #hint-file "Hints") ;name of hint file
|
||||
(set #sol-file "Solution") ;name of solution file
|
||||
(set #highs-file "highs") ;name of high scores file
|
||||
(set #exename "") ;name of executable program
|
||||
(set #prefix "ElectroMAN")
|
||||
;----------------------------
|
||||
; copy file including icon if exist
|
||||
; #copy-file - name of file to copy
|
||||
|
||||
(procedure P_CopyFile
|
||||
(if
|
||||
(exists #copy-file)
|
||||
(
|
||||
(copyfiles
|
||||
(help @copyfiles-help)
|
||||
(source #copy-file)
|
||||
(dest #dest)
|
||||
)
|
||||
(if
|
||||
(exists ("%s.info" #copy-file))
|
||||
(
|
||||
(copyfiles
|
||||
(help @copyfiles-help)
|
||||
(source ("%s.info" #copy-file))
|
||||
(dest #dest)
|
||||
)
|
||||
(tooltype
|
||||
(dest (tackon #dest #copy-file))
|
||||
(noposition)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;****************************
|
||||
;----------------------------
|
||||
; checks if given program is installed, if not abort install
|
||||
; #program - to check
|
||||
|
||||
(procedure P_ChkRun
|
||||
(if
|
||||
(= 0 (run ("cd SYS:\nWhich %s" #program)))
|
||||
("")
|
||||
(abort
|
||||
(cat
|
||||
"You must install \"" #program "\" first!\n"
|
||||
"It must be accessible via the path.\n"
|
||||
"You can find it in the WHDLoad package."
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;----------------------------
|
||||
; Wait for inserting disk
|
||||
; IN: #AD_disk - name of disk
|
||||
; OUT: -
|
||||
|
||||
(procedure P_disk
|
||||
(askdisk
|
||||
(dest #AD_disk)
|
||||
(prompt ("\nInsert Disk \"%s\" in any drive!" #AD_disk))
|
||||
(help @askdisk-help)
|
||||
)
|
||||
)
|
||||
|
||||
(procedure P_InstallDisk
|
||||
|
||||
(P_disk)
|
||||
(copyfiles
|
||||
(help @copyfiles-help)
|
||||
(source ("%s:" #AD_disk))
|
||||
(dest #dest)
|
||||
(all)
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
(procedure P_Install
|
||||
|
||||
|
||||
(set #AD_disk "ELECTROMAN")
|
||||
(P_InstallDisk)
|
||||
(set #AD_disk "SOUNDDATA")
|
||||
(P_InstallDisk)
|
||||
|
||||
)
|
||||
;****************************
|
||||
|
||||
(if
|
||||
(< @installer-version (+ (* 44 65536) 10))
|
||||
(
|
||||
(message
|
||||
(cat
|
||||
"Warning: your installer is outdated.\n"
|
||||
"All features of this installation won't be available, such as icon show and drawer opening.\n"
|
||||
"You have version " (/ @installer-version 65536) "."
|
||||
(BITAND @installer-version 65535) ", needed is at least version 44.10. "
|
||||
"The 'installer' 44.10 comes with OS 3.5 but is also contained in the NDK 3.9. "
|
||||
"You may also use the InstallerNG by Jens Tröger."
|
||||
"\n\n"
|
||||
"The installers can be obtained from the net:\n"
|
||||
"http://www.amiga.com/3.9/download/NDK3.9.lha\n"
|
||||
"aminet:util/sys/InstallerNG.lha"
|
||||
)
|
||||
)
|
||||
(set #newstuff 0)
|
||||
)
|
||||
(set #newstuff 1)
|
||||
)
|
||||
|
||||
(if
|
||||
(exists #readme-file)
|
||||
(if
|
||||
(= 0 (run ("SYS:Utilities/Multiview %s" #readme-file)))
|
||||
("")
|
||||
(run ("SYS:Utilities/More %s" #readme-file))
|
||||
)
|
||||
)
|
||||
|
||||
(set #program "WHDLoad")
|
||||
(P_ChkRun)
|
||||
|
||||
(set #suffix "") ; replace by suffix if dic slave is peculiar
|
||||
(if
|
||||
(getenv "WHDLInstPath")
|
||||
(set @default-dest (getenv "WHDLInstPath"))
|
||||
)
|
||||
|
||||
|
||||
|
||||
(set #dest
|
||||
(askdir
|
||||
(prompt
|
||||
(cat
|
||||
"Where should \"" @app-name "\" be installed?\n"
|
||||
"A drawer \"" #prefix "\" will be automatically created."
|
||||
)
|
||||
)
|
||||
(help @askdir-help)
|
||||
(default @default-dest)
|
||||
)
|
||||
)
|
||||
|
||||
; update for the end message
|
||||
(set @default-dest #dest)
|
||||
|
||||
(run ("setenv WHDLInstPath \"%s\"\ncopy ENV:WHDLInstPath ENVARC:" #dest))
|
||||
(set #dest (tackon #dest #prefix))
|
||||
(set #dest-org #dest)
|
||||
(if
|
||||
(exists #dest)
|
||||
(
|
||||
(set #choice
|
||||
(askbool
|
||||
(prompt
|
||||
(cat
|
||||
"\nDirectory \"" #dest "\" already exists.\n"
|
||||
"Should it be deleted?"
|
||||
)
|
||||
)
|
||||
(default 1)
|
||||
(choices "Delete" "Skip")
|
||||
(help @askbool-help)
|
||||
)
|
||||
)
|
||||
(if
|
||||
(= #choice 1)
|
||||
(run ("Delete \"%s\" \"%s.info\" All" #dest #dest))
|
||||
)
|
||||
)
|
||||
)
|
||||
(makedir #dest
|
||||
(help @makedir-help)
|
||||
(infos)
|
||||
)
|
||||
|
||||
;----------------------------
|
||||
|
||||
(copyfiles
|
||||
(help @copyfiles-help)
|
||||
(source ("%s.Slave" #prefix #suffix))
|
||||
(dest #dest)
|
||||
)
|
||||
|
||||
(if (exists ("%s.glowexot" #prefix)) ((set #icon 7)(set #icnt (+ 1 #icnt))(set #icon-gex "Exotic GlowIcon")) (set #icon-gex ""))
|
||||
(if (exists ("%s.newexot" #prefix)) ((set #icon 6)(set #icnt (+ 1 #icnt))(set #icon-nex "Exotic NewIcon")) (set #icon-nex ""))
|
||||
(if (exists ("%s.exoticon" #prefix)) ((set #icon 5)(set #icnt (+ 1 #icnt))(set #icon-exo "Exoticon")) (set #icon-exo ""))
|
||||
(if (exists ("%s.glowicon" #prefix)) ((set #icon 4)(set #icnt (+ 1 #icnt))(set #icon-glo "Glow Icon")) (set #icon-glo ""))
|
||||
(if (exists ("%s.coloricon" #prefix)) ((set #icon 3)(set #icnt (+ 1 #icnt))(set #icon-col "OS3.5 Icon")) (set #icon-col ""))
|
||||
(if (exists ("%s.newicon" #prefix)) ((set #icon 2)(set #icnt (+ 1 #icnt))(set #icon-new "NewIcon")) (set #icon-new ""))
|
||||
(if (exists ("%s.romicon" #prefix)) ((set #icon 1)(set #icnt (+ 1 #icnt))(set #icon-rom "RomIcon")) (set #icon-rom ""))
|
||||
(if (exists ("%s.inf" #prefix)) ((set #icon 0)(set #icnt (+ 1 #icnt))(set #icon-nor "Normal")) (set #icon-nor ""))
|
||||
(procedure P_Icon
|
||||
(copyfiles
|
||||
(help @copyfiles-help)
|
||||
(source ("%s.%s" #prefix #icon-suf))
|
||||
(newname ("%s.info" #icon-name))
|
||||
(dest #icon-dir)
|
||||
)
|
||||
(tooltype
|
||||
(dest (tackon #icon-dir #icon-name))
|
||||
(noposition)
|
||||
)
|
||||
)
|
||||
(if
|
||||
(> #icnt 1)
|
||||
(
|
||||
(set #icon-dir ("T:%s Icons" #prefix))
|
||||
(makedir #icon-dir
|
||||
(help @makedir-help)
|
||||
)
|
||||
(if #icon-nor ((set #icon-suf "inf") (set #icon-name #icon-nor) (P_Icon)))
|
||||
(if #icon-rom ((set #icon-suf "romicon") (set #icon-name #icon-rom) (P_Icon)))
|
||||
(if #icon-new ((set #icon-suf "newicon") (set #icon-name #icon-new) (P_Icon)))
|
||||
(if #icon-col ((set #icon-suf "coloricon") (set #icon-name #icon-col) (P_Icon)))
|
||||
(if #icon-glo ((set #icon-suf "glowicon") (set #icon-name #icon-glo) (P_Icon)))
|
||||
(if #icon-exo ((set #icon-suf "exoticon") (set #icon-name #icon-exo) (P_Icon)))
|
||||
(if #icon-nex ((set #icon-suf "newexot") (set #icon-name #icon-nex) (P_Icon)))
|
||||
(if #icon-gex ((set #icon-suf "glowexot") (set #icon-name #icon-gex) (P_Icon)))
|
||||
|
||||
(if (= #newstuff 1)
|
||||
(openwbobject #icon-dir)
|
||||
)
|
||||
|
||||
(set #icon
|
||||
(askchoice
|
||||
(prompt "\nWhich icon would you like to install?\n")
|
||||
(choices #icon-nor #icon-rom #icon-new #icon-col #icon-glo #icon-exo #icon-nex #icon-gex)
|
||||
(default #icon)
|
||||
(help @askchoice-help)
|
||||
)
|
||||
)
|
||||
(if (= #newstuff 1)
|
||||
(closewbobject #icon-dir)
|
||||
)
|
||||
(delete #icon-dir
|
||||
(help @delete-help)
|
||||
(all)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set #isnewicon 0)
|
||||
|
||||
(select #icon
|
||||
(set #icon "inf")
|
||||
(set #icon "romicon")
|
||||
(
|
||||
(set #icon "newicon")
|
||||
(set #isnewicon 1)
|
||||
)
|
||||
(set #icon "coloricon")
|
||||
(set #icon "glowicon")
|
||||
(set #icon "exoticon")
|
||||
(
|
||||
(set #icon "newexot")
|
||||
(set #isnewicon 1)
|
||||
)
|
||||
(set #icon "glowexot")
|
||||
)
|
||||
(copyfiles
|
||||
(help @copyfiles-help)
|
||||
(source ("%s.%s" #prefix #icon))
|
||||
(newname ("%s.info" #prefix))
|
||||
(dest #dest)
|
||||
)
|
||||
(if
|
||||
(= #isnewicon 1)
|
||||
("")
|
||||
(
|
||||
(tooltype
|
||||
(dest (tackon #dest #prefix))
|
||||
(settooltype "Slave")
|
||||
(settooltype "PreLoad")
|
||||
)
|
||||
(tooltype
|
||||
(dest (tackon #dest #prefix))
|
||||
(settooltype "PreLoad" "")
|
||||
(settooltype "Slave" ("%s.Slave" #prefix))
|
||||
)
|
||||
)
|
||||
)
|
||||
(tooltype
|
||||
(dest (tackon #dest #prefix))
|
||||
(setdefaulttool "WHDLoad")
|
||||
(setstack 10240)
|
||||
(noposition)
|
||||
)
|
||||
(set #copy-file #readme-file)
|
||||
(P_CopyFile)
|
||||
(set #copy-file #man-file)
|
||||
(P_CopyFile)
|
||||
(set #copy-file #hint-file)
|
||||
(P_CopyFile)
|
||||
(set #copy-file #sol-file)
|
||||
(P_CopyFile)
|
||||
(if
|
||||
(= #sub-dir "")
|
||||
("")
|
||||
(
|
||||
(set #dest (tackon #dest #sub-dir))
|
||||
(makedir #dest
|
||||
(help @makedir-help)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set #copy-file #highs-file)
|
||||
(P_CopyFile)
|
||||
(makedir (tackon #dest "save")
|
||||
(help @makedir-help)
|
||||
)
|
||||
(makedir (tackon #dest "libs")
|
||||
(help @makedir-help)
|
||||
)
|
||||
|
||||
(P_Install)
|
||||
(if (= #newstuff 1)
|
||||
(openwbobject #dest-org)
|
||||
)
|
||||
(exit)
|
||||
|
BIN
WHDLoad/ElectroMAN/Install.info
Executable file
BIN
WHDLoad/ElectroMAN/Install.info
Executable file
Binary file not shown.
46
WHDLoad/ElectroMAN/README.md
Normal file
46
WHDLoad/ElectroMAN/README.md
Normal file
|
@ -0,0 +1,46 @@
|
|||
# WHDLoad Installer for ElectroMAN by Tukinem
|
||||
|
||||
*ElectroMAN* is an Amiga port of Polish DOS game of the same title. I really
|
||||
enjoyed playing the game in primary school. Now I can play it on the Amiga.
|
||||
|
||||
The game came on 2 floppy disks. Having dumped them, I figured I might as well
|
||||
write WHDLoad slave so I can launch it from TinyLauncher.
|
||||
|
||||
This is my first time writing a WHDLoad slave. It's also the first time I
|
||||
touched M68K assembly in over two decades. I took a lot of code from
|
||||
[jotd/whdload_slaves](https://github.com/jotd666/whdload_slaves) repository
|
||||
and WHDLoad sources.
|
||||
|
||||
As is, this work should be considered **unstable**.
|
||||
|
||||
## Known issues
|
||||
|
||||
* When exitting the game by pressing ESC key on the title screen, WHDLoad will
|
||||
crash. For now, please exit the game by pressing the F10 key.
|
||||
|
||||
## TODO
|
||||
|
||||
* Add support for quitting the game with ESC key :).
|
||||
|
||||
## Requirements
|
||||
|
||||
AGA Amiga, Kickstart 3.1 or newer.
|
||||
|
||||
## Changelog
|
||||
|
||||
Version 1.0b1 (13.09.2024)
|
||||
|
||||
* Initial release.
|
||||
|
||||
## Contributing
|
||||
|
||||
If you think you found a bug or want to send a patch, feel free to contact
|
||||
me through e-mail.
|
||||
|
||||
## Author
|
||||
|
||||
This WHDLoad installer is developed by [Tomek Wójcik](https://www.bthlabs.pl/).
|
||||
|
||||
## License
|
||||
|
||||
Public domain.
|
38
WHDLoad/ElectroMAN/ReadMe
Executable file
38
WHDLoad/ElectroMAN/ReadMe
Executable file
|
@ -0,0 +1,38 @@
|
|||
THIS PACKAGE COMES WITH ABSOLUTELY NO WARRANTY OF ANY KIND, EITHER EXPRESS OR
|
||||
IMPLIED, STATUTORY OR OTHERWISE. THE ENTIRE RISK AS TO USE, RESULTS AND
|
||||
PERFORMANCE OF THE PACKAGE IS ASSUMED BY YOU AND IF THE PACKAGE SHOULD PROVE
|
||||
TO BE DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR OTHER REMEDIATION.
|
||||
UNDER NO CIRCUMSTANCES, CAN THE AUTHOR BE HELD RESPONSIBLE FOR ANY DAMAGE
|
||||
CAUSED IN ANY USUAL, SPECIAL, OR ACCIDENTAL WAY, ALSO IF THE OWNER OR A THIRD
|
||||
PARTY HAS BEEN POINTED AT SUCH POSSIBILITIES OF DAMAGE.
|
||||
|
||||
This install applies to "EletroMAN" (C) 2024 Tukinem & Retronics.
|
||||
|
||||
This install requires WHDLoad to be in the path. It can be found in the
|
||||
WHDLoad package.
|
||||
|
||||
The installed program requires 2 MB ChipMem and 0 MB OtherMem.
|
||||
It can be quit by pressing num 'F10' (key can be changed with Tooltype
|
||||
"QuitKey=").
|
||||
|
||||
The game reuires AGA and Kickstart 3.1 or newer.
|
||||
|
||||
If you have problems with this installation please try and get a newer
|
||||
version of this package from the WHDLoad WWW-Page. If that doesn't help try
|
||||
some Tooltypes like NOCACHE, NOAUTOVEC, NOVBRMOVE, NOMMU, PAL or NTSC. If
|
||||
that also fails, please inform the author via the Bug-Report-Form which
|
||||
can be accessed on the WHDLoad WWW-Page or create a mantis issue directly
|
||||
at http://mantis.whdload.de
|
||||
|
||||
For the full WHDLoad package, other installs and updates refer to:
|
||||
http://www.whdload.de/
|
||||
or aminet:dev/misc/whdload#?
|
||||
and aminet:game/patch/
|
||||
|
||||
Version 1.0b1 (13.09.2024) done by Tomek Wojcik:
|
||||
- initial release
|
||||
- source code included
|
||||
|
||||
Make sure that you're using the install script, not a simple copy of disk
|
||||
contents to "data".
|
BIN
WHDLoad/ElectroMAN/ReadMe.info
Normal file
BIN
WHDLoad/ElectroMAN/ReadMe.info
Normal file
Binary file not shown.
BIN
WHDLoad/ElectroMAN/data.info
Executable file
BIN
WHDLoad/ElectroMAN/data.info
Executable file
Binary file not shown.
0
WHDLoad/ElectroMAN/data/.placeholder
Normal file
0
WHDLoad/ElectroMAN/data/.placeholder
Normal file
167
WHDLoad/ElectroMAN/source/ElectroMAN.s
Executable file
167
WHDLoad/ElectroMAN/source/ElectroMAN.s
Executable file
|
@ -0,0 +1,167 @@
|
|||
;*---------------------------------------------------------------------------
|
||||
; :Program. ElectroMAN.s
|
||||
; :Contents. Slave for "ElectroMAN" from Tukinem & Retronics
|
||||
; :Author. Tomek Wojcik, from Wepl sources
|
||||
; :Original v1.0b1
|
||||
; :Version. $Id: ElectroMAN.s 1.0b1 2024/09/13 22:20:34 BTHLabs Exp BTHLabs $
|
||||
; :History. 2024-09-13 started
|
||||
; :Requires. -
|
||||
; :Copyright. Public Domain
|
||||
; :Language. 68000 Assembler
|
||||
; :Translator. Devpac 3.14, Barfly 2.9
|
||||
; :To Do. * Add support for quitting the game with ESC key :)
|
||||
;---------------------------------------------------------------------------*
|
||||
|
||||
INCLUDE whdload.i
|
||||
INCLUDE whdmacros.i
|
||||
INCLUDE lvo/dos.i
|
||||
|
||||
IFD BARFLY
|
||||
OUTPUT "/ElectroMAN.Slave"
|
||||
BOPT O+ ;enable optimizing
|
||||
BOPT OG+ ;enable optimizing
|
||||
BOPT ODd- ;disable mul optimizing
|
||||
BOPT ODe- ;disable mul optimizing
|
||||
BOPT w4- ;disable 64k warnings
|
||||
BOPT wo- ;disable optimizer warnings
|
||||
SUPER
|
||||
ENDC
|
||||
|
||||
;============================================================================
|
||||
|
||||
CHIPMEMSIZE = $200000 ;size of chip memory
|
||||
FASTMEMSIZE = 0 ;size of fast memory
|
||||
NUMDRIVES = 1 ;amount of floppy drives to be configured
|
||||
WPDRIVES = %0000 ;write protection of floppy drives
|
||||
|
||||
BLACKSCREEN ;set all initial colors to black
|
||||
;BOOTBLOCK ;enable _bootblock routine
|
||||
BOOTDOS ;enable _bootdos routine
|
||||
;BOOTEARLY ;enable _bootearly routine
|
||||
;CBDOSLOADSEG ;enable _cb_dosLoadSeg routine
|
||||
;CBDOSREAD ;enable _cb_dosRead routine
|
||||
;CBKEYBOARD ;enable _cb_keyboard routine
|
||||
CACHE ;enable inst/data cache for fast memory with MMU
|
||||
;CACHECHIP ;enable inst cache for chip/fast memory
|
||||
;CACHECHIPDATA ;enable inst/data cache for chip/fast memory
|
||||
;DEBUG ;add more internal checks
|
||||
;DISKSONBOOT ;insert disks in floppy drives
|
||||
DOSASSIGN ;enable _dos_assign routine
|
||||
;FONTHEIGHT = 8 ;enable 80 chars per line
|
||||
HDINIT ;initialize filesystem handler
|
||||
;HRTMON ;add support for HrtMON
|
||||
IOCACHE = 10000 ;cache for the filesystem handler (per fh)
|
||||
INITAGA ;enable AGA
|
||||
;MEMFREE = $200 ;location to store free memory counter
|
||||
;NEEDFPU ;set requirement for a fpu
|
||||
;POINTERTICKS = 1 ;set mouse speed
|
||||
;SETPATCH ;enable patches from SetPatch 1.38
|
||||
;SNOOPFS ;trace filesystem handler
|
||||
;STACKSIZE = 6000 ;increase default stack
|
||||
;TRDCHANGEDISK ;enable _trd_changedisk routine
|
||||
|
||||
;============================================================================
|
||||
|
||||
slv_Version = 17
|
||||
slv_Flags = WHDLF_NoError|WHDLF_Examine
|
||||
slv_keyexit = $59 ;F10
|
||||
|
||||
;============================================================================
|
||||
|
||||
INCLUDE whdload/kick31.s
|
||||
|
||||
;============================================================================
|
||||
|
||||
slv_name dc.b "ElectroMAN",0
|
||||
slv_copy dc.b "2024 Tukinem & Retronics",0
|
||||
slv_info dc.b "adapted by Tomek Wojcik",10
|
||||
dc.b "Version 1.0b1 2024-09-13"
|
||||
dc.b 0
|
||||
slv_CurrentDir dc.b "data",0
|
||||
slv_config dc.b 0
|
||||
_disk1 dc.b "ELECTROMAN",0
|
||||
_disk2 dc.b "SOUNDDATA",0
|
||||
_program dc.b "ElectroMan.exu",0
|
||||
_args dc.b 10
|
||||
_args_end dc.b 0
|
||||
EVEN
|
||||
|
||||
;============================================================================
|
||||
|
||||
_bootdos move.l _resload(pc),a2 ;A2 = resload
|
||||
|
||||
lea (_saveregs,pc),a0
|
||||
movem.l d1-d6/a2-a6,(a0)
|
||||
move.l (a7)+,(44,a0)
|
||||
|
||||
;open doslib
|
||||
lea (_dosname,pc),a1
|
||||
move.l (4),a6
|
||||
jsr (_LVOOldOpenLibrary,a6)
|
||||
lea (_dosbase,pc),a0
|
||||
move.l d0,(a0)
|
||||
move.l d0,a6 ;A6 = dosbase
|
||||
|
||||
;assigns
|
||||
lea (_disk1,pc),a0
|
||||
sub.l a1,a1
|
||||
bsr _dos_assign
|
||||
|
||||
lea (_disk2,pc),a0
|
||||
sub.l a1,a1
|
||||
bsr _dos_assign
|
||||
|
||||
;load exe
|
||||
lea (_program,pc),a0
|
||||
move.l a0,d1
|
||||
jsr (_LVOLoadSeg,a6)
|
||||
move.l d0,d7 ;D7 = segment
|
||||
beq .end
|
||||
|
||||
;patch
|
||||
move.l a3,a0
|
||||
move.l d7,a1
|
||||
jsr (resload_PatchSeg,a2)
|
||||
|
||||
IFD DEBUG
|
||||
;set debug
|
||||
clr.l -(a7)
|
||||
move.l d7,-(a7)
|
||||
pea WHDLTAG_DBGSEG_SET
|
||||
move.l a7,a0
|
||||
jsr (resload_Control,a2)
|
||||
add.w #12,a7
|
||||
ENDC
|
||||
|
||||
;call
|
||||
move.l d7,a1
|
||||
add.l a1,a1
|
||||
add.l a1,a1
|
||||
moveq #_args_end-_args,d0
|
||||
lea (_args,pc),a0
|
||||
movem.l (_saveregs,pc),d1-d6/a2-a6
|
||||
jsr (4,a1)
|
||||
|
||||
pea TDREASON_OK
|
||||
jmp (resload_Abort,a2)
|
||||
|
||||
IFEQ 1
|
||||
;remove exe
|
||||
move.l d7,d1
|
||||
move.l (_dosbase),a6
|
||||
jsr (_LVOUnLoadSeg,a6)
|
||||
ENDC
|
||||
|
||||
.end moveq #0,d0
|
||||
move.l (_saverts,pc),-(a7)
|
||||
rts
|
||||
|
||||
;============================================================================
|
||||
|
||||
_saveregs ds.l 11
|
||||
_saverts dc.l 0
|
||||
_dosbase dc.l 0
|
||||
|
||||
;============================================================================
|
||||
|
||||
END
|
16
WHDLoad/ElectroMAN/source/Makefile
Normal file
16
WHDLoad/ElectroMAN/source/Makefile
Normal file
|
@ -0,0 +1,16 @@
|
|||
DEVPACK := DEVPACK:
|
||||
VBCC := $(DEVPACK)VBCC
|
||||
|
||||
VASM := $(VBCC)/bin/vasmm68k_mot -pic -x -devpac -I$(DEVPACK)SDK/NDK_3.9/Include/include_i -I$(DEVPACK)SDK/whdload/Include -I$(DEVPACK)SDK/whdload/Src/sources -nosym -Fhunkexe
|
||||
|
||||
OUTFILE := /ElectroMAN.slave
|
||||
|
||||
SOURCES := ElectroMAN.s
|
||||
|
||||
all: $(OUTFILE)
|
||||
|
||||
clean:
|
||||
Delete ALL FORCE $(OUTFILE) $(OBJECTS)
|
||||
|
||||
$(OUTFILE): $(SOURCES)
|
||||
$(VASM) -o $(OUTFILE) $(SOURCES)
|
Loading…
Reference in New Issue
Block a user