[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 at2017-10-07
size of install package48173 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
 - Shell causes access fault: use System/CLI instead (if you can try to fix
   the shell and tell me)


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

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

 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


 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.24 2017/10/07 16:59:25 wepl Exp wepl $

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

There are two classes of Symbols to define in the Slave-Source. The first
class must be specified to setup essential informations for the system. The
second class 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 $1000 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 (its 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: and 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: (volume has 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. Loads the lowlevel.library from disk into memory
and patches the function GetLanguageSelection to reflect the setting of the
host operating system. Requires that the disk version of the lowlevel.library
is present on the games data directory. BOOTDOS must be used, otherwise the
patch will not be activated.

INIT_MATHFFP

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

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 is connected it queries the keyboard for the addtional keys and
returns a joypad response to the calling application. The keys for the
emulation can be user defined via the Custom/K 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". The default keys for
the buttons are F1..F6 in order.
When trying this feature make sure the game does not force the game controller
to a joypad using SetJoyPortAttrsA! If it has been forced lowlowel will
always return a joypad and the emulation will not work.

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.
Using this feature it is absolutely simple 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 preset
(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 do 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.

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).


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 - 03.10.2017 21:48:14 - 4312 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.3 (03.10.2017)
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
34731lh51718Amiga2017-10-05 22:21:06Workbench13 Install/ReadMe
19901lh51310Amiga2000-09-11 00:39:24Workbench13 Install/ReadMe.info
243861lh58827Amiga2017-10-07 15:48:04Workbench13 Install/src/kick13.s
341881lh510169Amiga2014-02-01 00:39:36Workbench13 Install/src/kickfs.s
145741lh55694Amiga2017-10-07 15:59:26Workbench13 Install/src/kick.readme
111081lh54228Amiga2017-10-07 23:46:48Workbench13 Install/src/workbench13.asm
31441lh51781Amiga2003-12-10 14:56:44Workbench13 Install/Workbench13.colicon
43121lh53213Amiga2017-10-03 21:48:14Workbench13 Install/Workbench13.Slave

Old Install Archives
Workbench13-20070210.lha

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

last change : 2017-10-07
© 1996-2017 Bert Jahn, All Rights Reserved