This file documents the status of the individual parts of EmuTOS. Supported emulators/hardware ============================ This table should be updated regularly. When indicating failure, if possible add a line showing which version ran OK. Unless otherwise specified in 'details', systems were tested using a ROM version of EmuTOS. system | ok? | who | date | details --------------------+-------+-----+-------------+---------------- Emulators | | | | ARAnyM 1.1.0 | yes | CZ | 17 Feb 2024 | Hatari v2.4.1 | yes | VRI | 14 Mar 2024 | PaCifiST v0.48 | no | (7) | 21 Jul 2021 | see (B) SainT v2.40 | yes | RFB | 29 Aug 2020 | 192k ROM only Steem SSE 4.1.2 R14 | yes | CZ | 17 Feb 2024 | (Win 32 D3D) STonC v0.8.1 | yes | LVL | 9 Feb 2003 | STonX 0.6.7.6 | yes | THH | 14 Nov 2008 | STonX DOS | yes | CZ | 22 Jul 2021 | see (A) TOSBox 1.10a | no | ? | < Sep 2002 | WinSTon v0.5 | no | RFB | 29 Aug 2020 | WinUAE 5.2.0 | yes | VRI | 14 Mar 2024 | --------------------+-------+-----+-------------+---------------- Atari & compatibles | | | | STf & STfm | yes | CZ | 17 Feb 2024 | Mega ST | yes | CZ | 17 Feb 2024 | tested w/ prg256 STe | yes | CZ | 17 Feb 2024 | Mega STe | yes | CZ | 17 Feb 2024 | TT030 | yes | CZ | 17 Feb 2024 | Falcon030 | yes | CZ | 17 Feb 2024 | Falcon030 + CT60 | yes | RFB | 10 Mar 2024 | tested with PRG Suska III-C (2K15B) | yes | (3) | 23 Apr 2016 | --------------------+-------+-----+-------------+---------------- Other systems | | | | Amiga Blizzard 1260 | yes | (1) | Aug 2012 | tested with BlizKick Amiga 500 + Vampire | yes | VRI | 13 Oct 2019 | GOLD2.11 Amiga 600 + Vampire | yes | (4) | Mar 2017 | Amiga 1000 | yes | (2) | Jul 2012 | FireBee | yes | VRI | 15 Mar 2024 | M5484LITE | yes | VRI | 25 Jul 2022 | Vampire V4-SA | yes | CZ | 10 Mar 2024 | Core 9465 + MAPROM Apple Lisa | yes | (8) | 4 Feb 2021 | Remarks: (A) StonX DOS: EmuTOS 1.1 and 1.1.1 are known to be incompatible. Newer snapshots are ok again. (B) Last version tested OK under PaCifiST: EmuTOS 0.8.7, 192k ROMs Abbreviations for testers: CZ: Christian Zietz LVL: Laurent Vogel RFB: Roger Burrows THH: Thomas Huth VRI: Vincent Rivière Other testers: (1) reported by Michaël Gibs (2) reported by amiman99 (3) reported by Markus Fröschle (4) reported by Flype (5) reported by Stefan Niestegge (6) reported by Claude Labelle (7) reported by Siegfried Hübner (8) reported by Stéphane Pitteloud ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Implemented functions ===================== Now let's talk about the different subsystems, and what is implemented. NOTE: the information in the following table may be somewhat dated. For example, most GEMDOS/BIOS/XBIOS functions are known to work without problems. This is what the first field of the following table means: ? Status unknown - Not yet implemented > Partially implemented X Fully implemented and untested t Fully implemented and partially tested T Tested and working on an emulator or real hardware Hardware initialization ---------------------------------------------------------------------------- T CPU setting, tested on: 68000 (real & emu), 68010 (real), 68020 (real), 68030 (real & emu), 68040 (emu), 68060 (real), 68080 (real), V4e (real) T FPU T 68030 MMU and cache initialization T Memory controller (both ST and Falcon) T DMA controller T WD 1772 / AJAX Floppy disk controller T MFP, MFP#2 T PSG T ST shifter T STe shifter T TT shifter T VIDEL T ACIAs, IKBD protocol t MegaST Real-Time Clock (set clock not tested) T NVRAM (including RTC) T Blitter T Microwire t DMA sound T DSP T SCC T IDE T ACSI T SCSI T SD/MMC T NatFeats (a framework for native features on emulators) BOOT sequence ---------------------------------------------------------------------------- T configure memory T execute reset routine T detect monitor type T detect graphics resolution T detect processor type, FPU type and hardware features T setup a cookie jar with system cookies ... T init floppy drives T boot floppy t boot DMA (note it does not work with e.g. AHDI) T execute reset-resident prgs: undocumented TOS feature, disabled by default T run AUTO prgs T run 'command.prg' T run the default shell, EmuCON T run the GEM desktop BIOS devices ---------------------------------------------------------------------------- T 0 PRN: parallel port T 1 AUX: default serial port (*) T 2 CON: console (screen) T 3 MIDI T 4 IKBD T 5 raw screen T 6 ST-compatible serial port (*) T 7 SCC channel B (*) T 8 TT-MFP serial port (*) T 9 SCC channel A (*) (*) Note: serial port I/O is interrupt-driven, but flow control is not yet implemented for serial ports ACIA interrupt handlers ---------------------------------------------------------------------------- T MIDI input (midivec) t IKBD error (vkbderr) t MIDI error (vmiderr) T IKBD status (statvec) T IKBD mouse (mousevec) T IKBD clock (clockvec) T IKBD joystick (joyvec) T main MIDI vector (midisys) T main IKBD vector (ikbdsys) BIOS Functions ---------------------------------------------------------------------------- T 0x00 Getmpb T 0x01 Bconstat T 0x02 Bconin T 0x03 Bconout T 0x04 Rwabs T 0x05 Setexc T 0x06 Tickcal T 0x07 Getbpb T 0x08 Bcostat T 0x09 Mediach T 0x0a Drvmap T 0x0b Kbshift XBIOS Functions ---------------------------------------------------------------------------- All XBIOS versions: T 0x00 Initmous - 0x01 Ssbrk (useless - will not be implemented) T 0x02 Physbase T 0x03 Logbase T 0x04 Getrez T 0x05 Setscreen T 0x06 Setpalette T 0x07 Setcolor T 0x08 Floprd T 0x09 Flopwr T 0x0a Flopfmt - 0x0b Dbmsg (useless - will not be implemented) T 0x0c Midiws T 0x0d Mfpint T 0x0e Iorec T 0x0f Rsconf (flow control isn't implemented, setting is ignored) T 0x10 Keytbl T 0x11 Random T 0x12 Protobt T 0x13 Flopver T 0x14 Scrdmp (unlike TOS, the default dump routine does nothing) T 0x15 Cursconf T 0x16 Settime T 0x17 Gettime T 0x18 Bioskeys T 0x19 Ikbdws T 0x1a Jdisint T 0x1b Jenabint T 0x1c Giaccess T 0x1d Offgibit T 0x1e Ongibit T 0x1f Xbtimer T 0x20 Dosound T 0x21 Setprt T 0x22 Kbdvbase T 0x23 Kbrate - 0x24 Prtblk (useless - will not be implemented) T 0x25 Vsync T 0x26 Supexec - 0x27 Puntaes (useless - will not be implemented) TOS v1.02: T 0x29 Floprate T 0x40 Blitmode TOS v2.0: T 0x2a DMAread T 0x2b DMAwrite T 0x2c Bconmap TOS v3.00: T 0x2e NVMaccess T 0x50 EsetShift (for TT shifter only) T 0x51 EgetShift (for TT shifter only) T 0x52 EsetBank (for TT shifter only) T 0x53 EsetColor (for TT shifter only) T 0x54 EsetPalette (for TT shifter only) T 0x55 EgetPalette (for TT shifter only) T 0x56 EsetGray (for TT shifter only) T 0x57 EsetSmear (for TT shifter only) TOS v4.00: T 0x58 Vsetmode (for Falcon Videl only) T 0x59 Vmontype (for Falcon Videl only) T 0x5a VsetSync (for Falcon Videl only) T 0x5b VgetSize (for Falcon Videl only) - 0x5c VsetVars (for Falcon Videl only) - undocumented T 0x5d VsetRGB (for Falcon Videl only) T 0x5e VgetRGB (for Falcon Videl only) T 0x5f VcheckMode (for Falcon Videl only) - undocumented - 0x96 VsetMask (for Falcon Videl only) - relevant when 16-bit colour is supported 0x08 bit set in _SND: T 0x60 Dsp_DoBlock T 0x61 Dsp_BlkHandShake T 0x62 Dsp_BlkUnpacked T 0x63 Dsp_InStream T 0x64 Dsp_OutStream T 0x65 Dsp_IOStream T 0x66 Dsp_RemoveInterrupts T 0x67 Dsp_GetWordSize T 0x68 Dsp_Lock T 0x69 Dsp_Unlock T 0x6a Dsp_Available T 0x6b Dsp_Reserve T 0x6c Dsp_LoadProg T 0x6d Dsp_ExecProg T 0x6e Dsp_ExecBoot T 0x6f Dsp_LodToBinary T 0x70 Dsp_TriggerHC T 0x71 Dsp_RequestUniqueAbility T 0x72 Dsp_GetProgAbility T 0x73 Dsp_FlushSubroutines T 0x74 Dsp_LoadSubroutine T 0x75 Dsp_InqSubrAbility T 0x76 Dsp_RunSubroutine T 0x77 Dsp_Hf0 T 0x78 Dsp_Hf1 T 0x79 Dsp_Hf2 T 0x7a Dsp_Hf3 T 0x7b Dsp_BlkWords T 0x7c Dsp_BlkBytes T 0x7d Dsp_Hstat T 0x7e Dsp_SetVectors T 0x7f Dsp_MultBlocks 0x04 bit set in _SND: T 0x80 LockSnd T 0x81 UnlockSnd T 0x82 Soundcmd T 0x83 Setbuffer T 0x84 Setmode T 0x85 Settracks T 0x86 Setmontracks T 0x87 Setinterrupt T 0x88 Buffoper T 0x89 Dsptristate T 0x8a Gpio T 0x8b Devconnect T 0x8c Sndstatus T 0x8d Buffptr TOS v4 extended XBIOS functionality: t 16-bit Videl resolution setting GEMDOS Functions ---------------------------------------------------------------------------- All GEMDOS versions: T 0x00 Pterm0 T 0x01 Cconin T 0x02 Cconout T 0x03 Cauxin T 0x04 Cauxout T 0x05 Cprnout T 0x06 Crawio T 0x07 Crawin T 0x08 Cnecin T 0x09 Cconws T 0x0a Cconrs T 0x0b Cconis T 0x0e Dsetdrv T 0x10 Cconos T 0x11 Cprnos T 0x12 Cauxis T 0x13 Cauxos T 0x19 Dgetdrv T 0x1a Fsetdta T 0x20 Super T 0x2a Tgetdate T 0x2b Tsetdate T 0x2c Tgettime T 0x2d Tsettime T 0x2f Fgetdta T 0x30 Sversion T 0x31 Ptermres T 0x36 Dfree T 0x39 Dcreate T 0x3a Ddelete T 0x3b Dsetpath T 0x3c Fcreate T 0x3d Fopen T 0x3e Fclose T 0x3f Fread T 0x40 Fwrite T 0x41 Fdelete T 0x42 Fseek T 0x43 Fattrib T 0x45 Fdup T 0x46 Fforce T 0x47 Dgetpath T 0x48 Malloc T 0x49 Mfree T 0x4a Mshrink T 0x4b Pexec T 0x4c Pterm T 0x4e Fsfirst T 0x4f Fsnext T 0x56 Frename T 0x57 Fdatime GEMDOS v0.19 (TOS v2/v3): T 0x14 Maddalt T 0x44 Mxalloc (and Pexec mode 6) GEMDOS v0.30 (TOS v4): T 0x15 Srealloc (undocumented by Atari) Line-A functions ---------------------------------------------------------------------------- T 0x00 Initialization T 0x01 Put pixel T 0x02 Get pixel T 0x03 Arbitrary line T 0x04 Horizontal line T 0x05 Filled rectangle T 0x06 Filled polygon T 0x07 Bit block transfer (NOTE: this may be missing options not needed by VDI) T 0x08 Text block transfer T 0x09 Show mouse T 0x0a Hide mouse T 0x0b Transform mouse T 0x0c Undraw sprite T 0x0d Draw sprite T 0x0e Copy raster form T 0x0f Seedfill VDI functions ---------------------------------------------------------------------------- All TOS 1.0 calls are implemented T 1 v_opnwk T 2 v_clswk T 3 v_clrwk - 4 v_updwk (not supported by Atari TOS) T 5,1 vq_chcells T 5,2 v_exit_cur T 5,3 v_enter_cur T 5,4 v_curup T 5,5 v_curdown T 5,6 v_curright T 5,7 v_curleft T 5,8 v_curhome T 5,9 v_eeos T 5,10 v_eeol T 5,11 vs_curaddress T 5,12 v_curtext T 5,13 v_rvon T 5,14 v_rvoff T 5,15 vq_curaddress T 5,16 vq_tabstatus T 5,17 v_hardcopy T 5,18 v_dspcur (Atari docs are incorrect for this call) T 5,19 v_rmcur (Atari docs are incorrect for this call) - 5,xx other subcodes are not implemented T 6 v_pline T 7 v_pmarker T 8 v_gtext T 9 v_fillarea - 10 v_cellarray (not supported by any current VDI driver) T 11,1 v_bar T 11,2 v_arc T 11,3 v_pieslice T 11,4 v_circle T 11,5 v_ellipse T 11,6 v_ellarc T 11,7 v_ellpie T 11,8 v_rbox T 11,9 v_rfbox T 11,10 v_justified T 12 vst_height T 13 vst_rotation T 14 vs_color T 15 vsl_type T 16 vsl_width T 17 vsl_color T 18 vsm_type T 19 vsm_height T 20 vsm_color T 21 vst_font T 22 vst_color T 23 vsf_interior T 24 vsf_style T 25 vsf_color T 26 vq_color - 27 vq_cellarray (not supported by any current VDI driver) T 28 vrq_locator T 28 vsm_locator T 29 vrq_valuator T 29 vsm_valuator T 30 vrq_choice T 30 vsm_choice T 31 vrq_string T 31 vsm_string T 32 vswr_mode T 33 vsin_mode T 35 vql_attributes T 36 vqm_attributes T 37 vqf_attributes T 38 vqt_attributes T 39 vst_alignment T 100 v_opnvwk T 101 v_clsvwk T 102 vq_extnd T 103 v_contourfill T 104 vsf_perimeter T 105 v_get_pixel T 106 vst_effects T 107 vst_point T 108 vsl_ends T 109 vro_cpyfm T 110 vr_trnfm T 111 vsc_form T 112 vsf_udpat T 113 vsl_udsty T 114 vr_recfl T 115 vqin_mode T 116 vqt_extent T 117 vqt_width T 118 vex_timv T 119 vst_load_fonts (stub, needs GDOS or equivalent) T 120 vst_unload_fonts (stub, needs GDOS or equivalent) t 121 vrt_cpyfm T 122 v_show_c T 123 v_hide_c T 124 vq_mouse T 125 vex_butv T 126 vex_motv T 127 vex_curv T 128 vq_key_s T 129 vs_clip T 130 vqt_name T 131 vqt_fontinfo TOS v4 extended VDI functionality: - 16-bit support for graphics functions (for now, use fVDI) AES functions ---------------------------------------------------------------------------- All AES versions: T 10 appl_init T 11 appl_read T 12 appl_write T 13 appl_find T 14 appl_tplay T 15 appl_trecord X 17 appl_yield (PC-GEM call) T 19 appl_exit T 20 evnt_keybd T 21 evnt_button T 22 evnt_mouse T 23 evnt_mesag T 24 evnt_timer T 25 evnt_multi T 26 evnt_dclick T 30 menu_bar T 31 menu_icheck T 32 menu_ienable T 33 menu_tnormal T 34 menu_text T 35 menu_register T 40 objc_add T 41 objc_delete T 42 objc_draw T 43 objc_find T 44 objc_offset T 45 objc_order T 46 objc_edit T 47 objc_change T 50 form_do T 51 form_dial T 52 form_alert T 53 form_error T 54 form_center T 55 form_keybd T 56 form_button T 70 graf_rubberbox T 71 graf_dragbox T 72 graf_movebox T 73 graf_growbox T 74 graf_shrinkbox T 75 graf_watchbox T 76 graf_slidebox T 77 graf_handle T 78 graf_mouse T 79 graf_mkstate T 80 scrp_read T 81 scrp_write X 82 scrp_clear (PC-GEM call) T 90 fsel_input T 100 wind_create T 101 wind_open T 102 wind_close T 103 wind_delete T 104 wind_get T 105 wind_set T 106 wind_find T 107 wind_update T 108 wind_calc T 110 rsrc_load T 111 rsrc_free T 112 rsrc_gaddr T 113 rsrc_saddr T 114 rsrc_obfix T 120 shel_read T 121 shel_write T 122 shel_get T 123 shel_put T 124 shel_find T 125 shel_envrn X 126 shel_rdef (PC-GEM call) T 127 shel_wdef (PC-GEM call, but also used internally) AES v1.40 (TOS >= v1.04): T 91 fsel_exinput T 109 wind_new AES v3.20 (TOS v2.06 & v3.06) T 78 graf_mouse extensions AES v3.30 (TOS >= v3.06): T 105 wind_set extensions AES v3.40 (TOS v4.04) >T 36 menu_popup >T 37 menu_attach T 38 menu_istart >T 39 menu_settings T 48 objc_sysvar TOS v4 extended AES functionality: T RSC file color icon support T 3D object support Misc desktop functions ---------------------------------------------------------------------------- - Cartridge file system support (useless - will not be implemented)