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

Workbench 1.3< >3D World Tennis

Workbench 3.1 (CBM)

download the install packageWorkbench31.lha
created at2022-10-03
size of install package63869 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..2 MB ChipMem and 2..33 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.8 (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.7 (2021-11-15) done by Wepl:
 - reassembled with latest kickemu
 - activated internal resident command WHDCtrl which can quit WHDLoad ATM

 version 1.6 (2021-01-03) done by Wepl:
 - reassembled with latest kickemu
 - activated Host SetKeyboard, requires WHDLoad 18.7

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

 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

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

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

 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.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
Workbench31_32.Slave - 02.10.2022 00:34:02 - 5672 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.8 (02.10.2022)
Kickstart name40063.a600 40068.a1200 40068.a4000
Kickstart size512 KiB ($80000)
Kickstart checksum$970c $9ff5 $75d3
Workbench31_4.Slave - 02.10.2022 00:33:56 - 5672 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.8 (02.10.2022)
Kickstart name40063.a600 40068.a1200 40068.a4000
Kickstart size512 KiB ($80000)
Kickstart checksum$970c $9ff5 $75d3
Workbench31_1.Slave - 02.10.2022 00:33:46 - 5672 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.8 (02.10.2022)
Kickstart name40063.a600 40068.a1200 40068.a4000
Kickstart size512 KiB ($80000)
Kickstart checksum$970c $9ff5 $75d3

Install Archive Content Listing
UnpackedLvlMethodPackedOSDate/TimeName
15841lh51046Amiga2017-10-05 22:36:24Workbench31 Install.info
413091lh59655Amiga2019-01-19 18:07:46Workbench31 Install/Install
12561lh5830Amiga2006-12-18 20:40:42Workbench31 Install/Install.info
40081lh51938Amiga2022-10-02 00:44:48Workbench31 Install/ReadMe
19901lh51310Amiga2000-09-11 00:37:22Workbench31 Install/ReadMe.info
331121lh510025Amiga2021-11-15 20:40:56Workbench31 Install/src/whdload/kick31.s
358461lh510789Amiga2022-10-03 14:18:04Workbench31 Install/src/whdload/kickfs.s
159221lh56215Amiga2021-11-15 21:03:00Workbench31 Install/src/whdload/kick.readme
82791lh52838Amiga2021-01-02 00:14:16Workbench31 Install/src/whdload/segtracker.s
105511lh54012Amiga2022-09-28 00:16:22Workbench31 Install/src/workbench31.asm
56721lh54067Amiga2022-10-02 00:33:46Workbench31 Install/Workbench31_1.Slave
56721lh54067Amiga2022-10-02 00:34:02Workbench31 Install/Workbench31_32.Slave
56721lh54068Amiga2022-10-02 00:33:56Workbench31 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
Workbench31-20171007.lha
Workbench31-20190119.lha
Workbench31-20210103.lha
Workbench31-20211115.lha

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

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