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)
