You've already forked amiga
[ElectroMAN] WIP
This commit is contained in:
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)
|
||||
Reference in New Issue
Block a user