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

Workbench 1.3< >3D World Tennis

Workbench 3.1 (CBM)

download the install packageWorkbench31.lha
created at2017-10-07
size of install package57073 Bytes
Author/Contact
(use it to report problems with that install)
Wepl
Mantis BugTracker794


 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 3.1"  1993 CBM.

 Requirements:
 -------------
 This install requires WHDLoad to be in the path.

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

 The game requires an installed A600/A1200/A4000 Kickstart 3.1 image.
 The kickstart image must be located in the directory "Devs:Kickstarts" and
 must be named "kick40063.A600", "kick40068.A1200" or "kick40068.A4000". The
 image can be extracted from a A600/A1200/A4000 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 "kick40063.A600.RTB", "kick40068.A1200.RTB" or
 "kick40068.A4000.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. You may add other software manually
 by copying it to the installation directory.
 It is tested with original 6 disk DD Floppy release. It should also work with
 the 3 disk HD floppy release, but this is untested.
 To speedup the preload process you may delete all unwanted files, e.g. other
 languages, fonts etc.

 provided and installed are 3 slaves with different memory requirements:
  Workbench31_1.Slave   1 MB Chip  1 MB Fast
  Workbench31_4.Slave   2 MB Chip  4 MB Fast
  Workbench31_32.Slave  2 MB Chip 32 MB Fast

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

 version 1.1 (21.01.07) done by Wepl:
 - supports A600 kickstart due updated kickemu, with that 68000 compatible
 - new install script
 - greetings to Don Adan

 version 1.1.1 (17.02.07) done by Wepl:
 - install script corrected to place files from Storage disk into own folder

 version 1.2 (09.04.10) done by Wepl:
 - providing additional slaves with more memory
 - slaves reassembled with latest kickemu version

 version 1.4 (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
Workbench31_32.Slave - 03.10.2017 22:12:00 - 4584 bytes
required WHDLoad version16
flagsNoError EmulPriv Examine
required Chip Memory2044 KiB ($1ff000)
required Expansion Memory33280 KiB ($2080000)
info nameWorkbech 3.1 Kickstart 40.063/068
info copy1985-93 Commodore-Amiga Inc.
info installadapted for WHDLoad by Wepl
Version 1.4 (03.10.2017)
Kickstart name40068.a1200 40068.a4000 40063.a600
Kickstart size512 KiB ($80000)
Kickstart checksum$9ff5 $75d3 $970c
Workbench31_1.Slave - 03.10.2017 22:11:48 - 4584 bytes
required WHDLoad version16
flagsNoError EmulPriv Examine
required Chip Memory1020 KiB ($ff000)
required Expansion Memory1536 KiB ($180000)
info nameWorkbech 3.1 Kickstart 40.063/068
info copy1985-93 Commodore-Amiga Inc.
info installadapted for WHDLoad by Wepl
Version 1.4 (03.10.2017)
Kickstart name40068.a1200 40068.a4000 40063.a600
Kickstart size512 KiB ($80000)
Kickstart checksum$9ff5 $75d3 $970c
Workbench31_4.Slave - 03.10.2017 22:11:54 - 4584 bytes
required WHDLoad version16
flagsNoError EmulPriv Examine
required Chip Memory2044 KiB ($1ff000)
required Expansion Memory4608 KiB ($480000)
info nameWorkbech 3.1 Kickstart 40.063/068
info copy1985-93 Commodore-Amiga Inc.
info installadapted for WHDLoad by Wepl
Version 1.4 (03.10.2017)
Kickstart name40068.a1200 40068.a4000 40063.a600
Kickstart size512 KiB ($80000)
Kickstart checksum$9ff5 $75d3 $970c

Install Archive Content Listing
UnpackedLvlMethodPackedOSDate/TimeName
15841lh51046Amiga2017-10-05 22:36:24Workbench31 Install.info
393371lh59557Amiga2017-10-05 23:29:06Workbench31 Install/Install
12561lh5830Amiga2006-12-18 20:40:42Workbench31 Install/Install.info
34601lh51732Amiga2017-10-05 22:45:04Workbench31 Install/ReadMe
19901lh51310Amiga2000-09-11 00:37:22Workbench31 Install/ReadMe.info
337481lh510188Amiga2017-10-07 15:48:06Workbench31 Install/src/kick31.s
341881lh510169Amiga2014-02-01 00:39:36Workbench31 Install/src/kickfs.s
145741lh55694Amiga2017-10-07 15:59:26Workbench31 Install/src/kick.readme
100851lh53814Amiga2017-10-07 23:46:48Workbench31 Install/src/workbench31.asm
45841lh53276Amiga2017-10-03 22:11:48Workbench31 Install/Workbench31_1.Slave
45841lh53276Amiga2017-10-03 22:12:00Workbench31 Install/Workbench31_32.Slave
45841lh53275Amiga2017-10-03 22:11:54Workbench31 Install/Workbench31_4.Slave
45301lh52023Amiga2006-12-18 19:12:08Workbench31 Install/Workbench31.colicon

Old Install Archives
Workbench31-20070210.lha
Workbench31-20070217.lha
Workbench31-20100420.lha

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

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