[Main] [Docs] [Installs] [Search] [Team] [Guestbook] [Links]

Action Replay MKII/III Loader< >Workbench 3.1

Workbench 1.3 (Amiga Inc.)

download the install packageWorkbench13.lha
created at2023-02-19
size of install package55582 Bytes
Author/Contact
(use it to report problems with that install)
Wepl
Mantis BugTracker1060


 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 "Workbench 1.3" © 1987 Amiga Inc..

 Requirements:
 -------------
 This install requires WHDLoad to be in the path. It can be found in the
 WHDLoad package.

 The installed program requires 1 MB ChipMem and 1.5 MB OtherMem.
 It can be quit by pressing F10 (key can be changed with Tooltype "QuitKey=").

 The game requires an installed A500 Kickstart 1.3 image.
 The kickstart image must be located in the directory "Devs:Kickstarts" and
 must be named "kick34005.A500". The image can be extracted from a A500 with
 tools like 'GrabKick' or similar which can be found on aminet.
 If the image is of wrong version or altered in any way WHDLoad will quit with
 an appropriate message.
 Additionally the file "kick34005.A500.RTB" must be installed in the same
 directory as the kickstart image. It can be found in the archive
 "util/boot/skick346.lha" on aminet.


 Features:
 ---------
 This installs the Workbench under WHDLoad. It installs the Workbench and the
 Extras disk. You may add other software manually by copying it to the
 installation directory.
 There are different releases of the 1.3 Workbench disk. If you have "original
 and unmodified" disk with an unsupported name please contact me so that I can
 adjust the install script.
 After installation you should manually edit the startup-sequence of the
 installed workbench to remove programs which create access faults or make
 other problems.
 Known problems:
 - SetPatch causes access fault: uncomment it from the startup-sequence, the
   patches are already included in the Slave so there is no need for it
 - SetClock Load causes access fault: uncomment it from the startup-sequence,
   the Slave will take over the system time from host Amiga, so there is no
   need for it


 History:
 --------
 version 1.7 (2023-02-19) done by Wepl:
 - added WHDCtrl resident command

 version 1.6 (2022-01-02) done by Wepl:
 - fixed crash with _cb_dosLoadSeg and empty names
 - fixed a bug bug in kickfs with write cache
 thanks to Radek for reports

 version 1.5 (2021-01-03) done by Wepl:
 - reassembled with latest kickemu
 - activated Host SetKeyboard, requires WHDLoad 18.7
 - fix for Shell-Seg added to avoid access fault with Alias command

 version 1.4 (2019-01-19) done by Wepl:
 - reassembled with latest kickemu, SegTracker added

 version 1.3 (05.10.17) done by Wepl:
 - adapted for latest kickemu, with that also the cache setup has changed:
   before it was inst/data cacheable in expansion memory, without MMU non
   cacheable, now it is inst cachable in all memory, also without MMU
   use option NoCache if this breaks compatibility with extra software
   installed
 - updated install script

 version 1.1 (17.01.07) done by Wepl:
 - new install script
 - chip and fast memory increased

 version 1.0 (18.12.06) done by Wepl:
 - initial release on eab


 Contact:
 --------
 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, EXPCHIP, 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.

 For the full WHDLoad package, other installs and updates refer to:
	http://www.whdload.de/
 or	aminet:dev/misc/whdload#?
 and	aminet:game/patch/


$Id: kick.readme 1.30 2021/11/15 21:02:59 wepl Exp wepl $

Symbols in the Slave-Source
***************************

There are two kinds of Symbols to define in the Slave-Source. The first one
must be specified to setup essential informations for the system. The second
contains optional Symbols changing some behaviors of the emulation.

Additional there are required flags in the ws_Flags field of the WHDLoadSlave
structure. The flag WHDLF_EmulPriv must be always set because the exec
function Supervisor requires it to change from user-mode into supervisor-mode.
The flag WHDLF_Examine is only required if the file system handler (see
HDINIT) is used.


Required Symbols
----------------

CHIPMEMSIZE = $80000

That specfies the amount of Chip-Memory for the system. Allowed values are
between $2000 and $200000. It is recommended to start with a full value like
$80000 or $100000, and later to adjust that value to the minimum required
using the MEMFREE feature (see below).

FASTMEMSIZE = $10000

That specifies the Fast-Memory (better to say ExpMem because it can be ChipMem
too if not enough FastMem is available) for the system. Allowed values are
0 upto any what WHDLoad supports.

NUMDRIVES = 1

That sets the number of drives which will get detected by the emulated system.
The amount has nothing to do with the amount of physically available drives!
Allowed values are -1 ... 4. The value -1 has special meaning that Custom1/N
is used to set drive count. If Custom1/N is not specified (zero) than one
drive will be used. Setting the drivecount to 0 works only with Kickstart 3.1,
the older Kickstarts 1.2 and 1.3 will crash if there is no floppy drive.

WPDRIVES = %0000

That sets the protections state for the emulated floppy drives. Bit #0 means
drive DF0:. The bitvalue 0 means 'write protected' and 1 means 'read/write'.
E.g. %1111 means all drives 'read/write'.


Optional Symbols
----------------

BLACKSCREEN

That symbol forces all colors (0-4,17-19) in the default system (intuition)
preferences to null. The result is that the initial AmigaDOS boot screen will
be invisible.

CACHE

The presence of that symbol enables full cpu caches for the expansion memory
before the kickstart is booting. Chip memory remains uncached.
If there is no MMU or it isn't used by WHDLoad the caches cannot be set
separately for chip and expansion memory. This will result in no caches are
active for all memory.
Without any of the CACHE* options all caches are switched off.

CACHECHIP

The presence of that symbol enables only the instruction cache for the chip and
expansion memory before the kickstart is booting. The data cache is switched
off. Whether the MMU is used by WHDLoad makes no difference for this option.
Without any of the CACHE* options all caches are switched off.

CACHECHIPDATA

The presence of that symbol enables full cpu caches for the chip and expansion
memory before the kickstart is booting. Whether the MMU is used by WHDLoad makes
no difference for this option.
Beware: in difference to the options CACHE/CACHECHIP this enables also the data
cache in chip memory. This will cause problems if the cpu uses the same memory
as dma masters like the blitter (cpu will not see changes made by the blitter
if memory is cached).
Without any of the CACHE* options all caches are switched off.

DEBUG

If that symbol is defined various checks will be included in the emulation
code. It should be enabled during the development task and removed for final
releases.

DISKSONBOOT

If that symbol is defined there will be disks inserted in the drives at
booting time. Otherwise all drives will be empty. If the symbol is set, DF0:
will contain 'Disk.1', DF1: 'Disk.2' an so on. To insert or change disks in
the drives use the function _trd_changedisk (see below).

DOSASSIGN

If that symbol is defined the subroutine _dos_assign will be included and can
be used (see below).

FONTHEIGHT

If defined that symbol sets the system default font height in the preferences
(intuition), under Kick1.3 the default is 9 (60 chars per line), 8 makes 80
chars per line on a standard screen.

HDINIT

If that symbol is defined a dos filesystem handler will be installed which
mounts the actual directory as a drive called DH0: (the volume has the name
'WHDLoad'). If there is no bootable disk inserted (check DISKSONBOOT) the
dos.library will try to boot from that device. HDINIT requires that the flag
WHDLF_Examine is set (if you use the new style Slave examples where kicknn.s
will be included in front of your own code the flag is automatically set by
kicknn.s).

HRTMON

The presence of that symbol adds some debugging support for HrtMon. HrtMon
reads to much from the stackframe if entered. If the SSP is at the end of the
memory that will cause an access fault. The symbol results in a decremented
SSP.

IOCACHE = 1024

If the symbol is defined it enables a read/write cache in conjuction with
option HDINIT. The cache will be allocated on request for each opened file
seperately. If the installed program uses savegames you should probably set
the IOCACHE to the size of the savegame (or at least half/quarter) to minimize
the amount OS swaps. If you use large values you maybe need to increase the
memory for the installed program. Be careful with large values of IOCACHE
because it may cause memory fragmentation and if the installed program holds
many files open it will need a lot of memory.

INITAGA

Only available in kick31.s. Enables the AGA graphics modes using
gfx.SetChipRev(SETCHIPREV_BEST).

INIT_AUDIO

Only available in kick31.s. Forces the kickstart to initialize the
audio.device.

INIT_GADTOOLS

Only available in kick31.s. Forces the kickstart to initialize the
gadtools.library.

INIT_LOWLEVEL

Only available in kick31.s. Initializes the lowlevel.library. The function
GetLanguageSelection will reflect the setting of the host operating system. 
The symbol JOYPADEMU can be used to activate a joypad emulation via the
keyboard.

INIT_MATHFFP

Only available in kick31.s. Forces the kickstart to initialize the
mathffp.library.

INIT_NONVOLATILE

Only available in kick31.s. Includes the source file nonvolatile.s and calls
their initialization routine. This builds a custom nonvolatile.library in 
memory. The library saves all data to the single file 'nvram'.

JOYPADEMU

Only available in kick31.s. Requires that INIT_LOWLEVEL and BOOTDOS are also
set. It patches ReadJoyPort to emulate the joypad buttons of the controller
in port 1 via keyboard. A connected joypad remains fully working. If a
joystick or joypad is connected/detected/forced it queries the keyboard for the
addtional keys and always returns a joypad response to the calling application.
The keys for the emulation can be user defined via the Custom/K WHDLoad option/
tooltype. It uses dos.ReadArgs to parse the specified string with the template
"Blue/K,Green/K,Yellow/K,Grey/K,LeftEar/K,RightEar/K,Force/S". The default keys
for the buttons are F1..F6 in order.
The option Force disables the auto sensing of the lowlevel.library and forces
port #1 to a joystick which than get transformed to a joypad by the JOYPADEMU.

MEMFREE = $100

If this symbol is defined the function exec.AllocMem will be patched. At each
call to this function the size of the largest free memory chunk will be
calculated and saved at the specified address if lower than the previous one.
This feature simplyfies the process to optimize the memory requirements
and avoid memory wasting. Test a game trough all paths with that symbol
defined. Then make a dump and checkout the memory dump file. At address
(MEMFREE) you will find the lowest free chip memory during the games lifetime.
At address (MEMFREE+4) you will find the same for fast memory.
The MEMFREE has also the side effect that trashing the memory list will be
detected on the next AllocMem call because AvailMem(LARGEST) used in MEMFREE
will traverse all free memory. This may be useful for debugging.

NEEDFPU

If that symbol is defined the system will get informed if an FPU is present
(execbase.AttnFlags). If the symbol is not defined the system will think there
is no FPU regardless if there is one really. The system will use a different
task switching routine which will save also the FPU registers if a FPU is
present.

NO68020

Only available in kick31.s. Makes all patches done compatible to the 68000
processor, so that resulting Slave does not require a 68020. It should be noted
here that the kickstart images for A1200 and A4000 contain code for the 68020
in the utility.library. Therefore the install is still not 68000 compatible if
these kickstart images are used and the installed program uses these functions
from utility.library. The kickstart image from A600 is 68000 compatible.

POINTERTICKS

If defined that symbol sets the system default mouse speed in the preferences
(intuition). The system default is 2. Setting 1 means fast, 4 slow.

PROMOTE_DISPLAY

Only available in kick31.s. Enables display promotion when WHDLoad options
DblPAL or DblNTSC are used. The monitor driver (from "DEVS:Monitors/") must be
present in the install directory. BOOTDOS must be used, otherwise the patch
will not be activated.

SEGTRACKER

If that symbol is defined a segment tracker equal to the known utility
SegTracker by Michael Sinz will be installed. The dos functions LoadSeg and
UnLoadSeg will be patched and for each loaded executable the name and the 
occupied memory will be tracked. This will consume some additional memory.
WHDLoad will use this information on an error condtions to display which
loaded executable has caused the fault and also shows at which offset in the
executable it happened. The provided tool stinf can be used to display all
tracked segments when run under WHDLoad. It works also on Kickstart 1.x
contrary to the original SegTracker which requires Kickstart 2.x.

SETKEYBOARD

If that symbol is defined the virtual file WHDLoad.keymap is tried to load. If
it succeeds this file is added to the keymap.resource and set as default keymap.
This makes the keymap of the host system available and obsoletes any SetMap or
SetKeyboard commands.

SETPATCH

If that symbol is defined nearly all patches done by the SetPatch v1.38
program will be performed. Usually that is not necessary and omitting the
option makes the Slave around 400 bytes shorter. Only available in kick12.s
and kick13.s.

SNOOPFS

In conjunction with HDINIT this will log all dos packets after been processed
by the installed filesystem handler. Logging uses resload_Log and therefore
requires slv_Version >= 18. That log entries are actually written requires that
WHDLoad's option FileLog has been set.
The supplied perl script chkunlock.pl can be used to search the log file for
missing dos.UnLock and dos.Close calls.

STACKSIZE

Using this symbol the default stacksize can be set. The initial CLI structure
will be patched for this. The system default on V33 and V34 is 4000 bytes, on
V40 it's 4096 bytes.

TRDCHANGEDISK

If that symbol is defined the subroutine _trd_changedisk will be included and
can be used (see below).

WHDCTRL

If that symbol is defined an internal resident command called WHDCtrl is added
to the dos residents list. This command currently supports the option Quit
which will cause WHDLoad to immediate quit. It maybe useful in scripts to quit
after an operation has been finished.


Labels in the Slave-Source
**************************

In the old style Slaves it was sufficient to only define the labels below.
Beginning with the new style and WHDLoad v16 the kicknn.s will be included at
the top of the slave source which results in that these labels are not visible
to kicknn.s in the first assembling pass. This can cause problems with your
assembler (e.g. "Internal Global Optimize Error" with BASM). To aid this you
must define an uppercase symbol without the underlines (e.g. BOOTEARLY for
_bootearly) before including kicknn.s in your slave source (see examples).

_bootearly

	* will be entered before any diskaccess are performed by the Kickstart
	* NO dos.library exists at this time!
	* you can continue the boot process by returning via a RTS

_bootblock

	* will be entered after the bootblock has been loaded from the disk in
	  drive DF0:, that is the point at which Kickstart normally jumps into
	  bootblock
	* Registers upon calling:
	  A1 = ioreq, initialized to access trackdisk.device unit 0
	  A0/A4 = buffer, containing the already loaded bootblock (1024 bytes)
		on Kick 1.2/1.3 its A4 on Kick 3.1 its A0
	  A6 = execbase
	* NO dos.library exists at this time!
	* you can continue the boot process by returning via a RTS

_bootdos

	* that label will called like a program located in the startup-
	  sequence, that means it is a real CLI process, input and output
	  streams are connected to the initial CLI window
	* dos.library is fully initialized and usable
	* the routine behind the label may return via a RTS, then the control
	  is returned to the dos.library and the prompt will appear in the
	  initial CLI window
	* _bootdos requires option HDINIT, because it uses a virtual
	  startup-sequence and a virtual program loaded from within
	* _bootdos does not work with diskimages because it is handled via
	  the virtual filesystem of HDINIT, if you boot from a diskimage it
	  will simply never called

_cb_dosLoadSeg

	* that label will be called after each successful execution of
	  dos.LoadSeg and can be used to patch the loaded programs
	* Registers upon calling:
	  D0 = BSTR name of the loaded program as BCPL string
	  D1 = BPTR segment list of the loaded program as BCPL pointer
	* the routine may destroy all registers but must return via RTS

_cb_dosRead

	* works only in conjunction with HDINIT and only for files loaded
	  via the virtual filesystem of HDINIT and not for files from
	  disk images
	* that label will be called after each successful execution of
	  dos.Read and can be used to patch the loaded data
	* Registers upon calling:
	  D0 = ULONG amount of bytes read during current Read
	  D1 = ULONG offset in file on start of current Read
	  A0 = CPTR  full name of file
	  A1 = APTR  buffer to the data has been read
	* the routine may destroy all registers but must return via RTS

_cb_keyboard

	* this routine will be called on each key press, it is executed
	  before the keyboard has been acknowledged, therefore no time
	  intense tasks should be executed here
	* Registers upon calling:
	  D0 = UBYTE rawkey code of the actual pressed key
	* the routine may destroy all registers but must return via RTS

Functions in kick(12|13|31).s
*****************************

as usual D0-D1/A0-A1 are scratch registers, except otherwise stated

_dos_assign
	* only avaliable if DOSASSIGN is defined
	* performs a C:Assign like operation
	* SYNOPSIS
		IN:	A0 = CPTR destination name
			A1 = CPTR directory (can be 0 meaning SYS:)
		OUT:	-
	* only under kick12/13.s you may also assign device names to a
	  directory!
	* EXAMPLE
		lea	(_name,pc),a0
		sub.l	a1,a1
		bsr	_dos_assign
		...
	  _name dc.b	"DataDisk",0

_trd_changedisk
	* only avaliable if TRDCHANGEDISK is defined
	* change a disk in a trackdisk.device unit
	* SYNOPSIS
		IN:	D0 = BYTE unit
			D1 = BYTE number of disk image to insert
		OUT:	-
	* will cause two diskchanges as usual, one for removing the old disk
	  and one for inserting the new one

_flushcache
	* flush cpu caches
	* all registers will preserved


Labels in kick(12|13|31).s
**************************

_attnflags
	* a long word containing the exec.AttnFlags with additional bits
	  defined by WHDLoad
	* EXAMPLE
		move.l	(_attnflags,pc),d0
		btst	#AFB_68020,d0
		beq	...

_dosname
	* only avaliable if HDINIT is defined
	* containing "dos.library"
	* can be used to open dos.library

_monitor
	* a long word containing the actual monitor
	* EXAMPLE
		move.l	(_monitor,pc),d0
		cmp.l	#PAL_MONITOR_ID,d0
		beq	...

_resload
	* containing resload base

Icons contained in install package

WHDLoad Slave information
Workbench13.Slave - 19.02.2023 03:02:44 - 5728 bytes
required WHDLoad version16
flagsNoError EmulPriv Examine
required Chip Memory1020 KiB ($ff000)
required Expansion Memory1280 KiB ($140000)
info nameWorkbench 1.3 Kickstarter 34.005
info copy1987 Amiga Inc.
info installadapted for WHDLoad by Wepl
Version 1.7 (19.02.2023)
Kickstart name34005.a500
Kickstart size256 KiB ($40000)
Kickstart checksum$f9e3

Install Archive Content Listing
UnpackedLvlMethodPackedOSDate/TimeName
15841lh51047Amiga2003-12-10 14:24:18Workbench13 Install.info
347831lh58623Amiga2017-10-05 21:46:38Workbench13 Install/Install
12561lh5831Amiga2003-12-10 14:25:34Workbench13 Install/Install.info
39041lh51897Amiga2023-02-19 03:04:20Workbench13 Install/ReadMe
19901lh51310Amiga2000-09-11 00:39:24Workbench13 Install/ReadMe.info
301731lh510648Amiga2023-02-19 02:38:12Workbench13 Install/src/whdload/kick13.s
358461lh510789Amiga2022-10-03 14:18:04Workbench13 Install/src/whdload/kickfs.s
159221lh56215Amiga2021-12-21 22:01:02Workbench13 Install/src/whdload/kick.readme
82791lh52838Amiga2021-01-02 00:14:16Workbench13 Install/src/whdload/segtracker.s
118161lh54521Amiga2023-02-19 03:02:38Workbench13 Install/src/workbench13.asm
31441lh51781Amiga2003-12-10 14:56:44Workbench13 Install/Workbench13.colicon
57281lh54247Amiga2023-02-19 03:02:44Workbench13 Install/Workbench13.Slave

Old Install Archives
Workbench13-20070210.lha
Workbench13-20171007.lha
Workbench13-20190119.lha
Workbench13-20210103.lha
Workbench13-20221003.lha

[Main] [Docs] [Installs] [Search] [Team] [Guestbook] [Links]

last change : 2024-03-14
© 1996-2024 Bert Jahn, All Rights Reserved