This file documents the status of the single parts of EmuTOS

Here is a quick list of supported emulators/hardware:
This table should be updated regularly. When indicating failure,
if possible add a line telling in which version it did run.

  emulator/machine    |  ok?  | who |   date    |  details
  --------------------+-------+-----+-----------+----------------
  Aranym              |  yes  | LVL |    Feb 03 |
  Hatari              |  yes  | THH | 14 Nov 08 |
  MegaSTE             |  yes  | (1) | 26 Jun 04 | RAMTOS only
  Pacifist v0.48      |  yes  | LVL | winter 01 |
  STonX 0.6.7.6       |  yes  | THH | 14 Nov 08 |
  STonC v0.8.1        |  yes  | LVL | 9  Feb 03 |
  STeem v2.0.6        |  yes  | LVL | 30 Sep 02 | 
  TOSBox 1.10a        |   no  |  ?  |  < Sep 02 |
  WinSTon V0.1r2      |   no  |  ?  |  < Sep 02 |

  (1) reported to LVL by Frédéric Pécourt

Now lets talk about the different subsystems, and if they are implemented.

This is, what the first field of the following table means:

- Not yet implemented
X Fully implemented
> Partially implemented
? status unknown
t Fully implemented and partially tested
T tested and working on an emulator or real hardware


 Hardware initialisation
 ----------------------------------------------------------------------------
 t CPU setting (tested only 68000 (real and emu) and 68040 (emu))
 > FPU (detected, is any initialisation needed?) 
 T Memory controller (both ST and Falcon)
 T DMA controller
 t WD 1772 Floppy disk controller (write track not tested)
 T MFP
 T PSG
 T ST shifter
 T ACIAs, IKBD protocol
 t MegaST Real-Time Clock  (set clock not tested)
 > STE shifter
 t NVRAM (including RTC)
 > Videl
 - Blitter
 - Microwire
 - DMA sound
 - DSP
 - SCC
 - IDE
 > ACSI hard disk
 T NatFeats (a framework for native features on emulators) 


 BOOT sequence
 ----------------------------------------------------------------------------
 T configure memory
 X execute reset routine
 X detect monitor type
 T detect graphics resolution
 t detect processor type, FPU type and hardware features
 X setup a cookie jar with system cookies
   ...
 X init floppy drives
 T boot floppy
 - boot DMA
 - execute reset-resident prgs
 T run AUTO prgs
 T run 'command.prg'
 T run the default shell, EmuCON
 T run the GEM desktop


 BIOS devices
 ----------------------------------------------------------------------------
 > parallel port
 - serial port
 T console
 X IKBD
 X MIDI
 T ascii 



 ACIA interrupt routines
 ----------------------------------------------------------------------------
 - midierr
 - ikbderr
 X midi input
 T ikbd key events
 t IKBD clock           (set clock not tested)
 - mouse                (will be done as part of VDI)
 - joysticks            (is done by games - TOS does not have one)



 BIOS Functions
 ----------------------------------------------------------------------------
 T 0x00 getmpb
 T 0x01 bconstat        (the function works for console only)
 > 0x02 bconin          (the function works for console only)
 T 0x03 bconout         (the function works for console only)
 T 0x04 rwabs
 T 0x05 setexc
 T 0x06 tickcal
 T 0x07 getbpb
 > 0x08 bcostat         (the function works for console only)
 > 0x09 mediach         (crude, floppy write-protect mode not monitored)
 X 0x0a drvmap          (the function works, but not the devices)
 X 0x0b kbshift
 X 0x11 date_time       (used by BDOS to get/set the date and time)


 XBIOS Functions
 ----------------------------------------------------------------------------
 X 0x00 initmous
 - 0x01 ssbrk           (useless - will not be implemented)
 X 0x02 physBase
 X 0x03 logBase
 X 0x04 getRez
 > 0x05 setscreen       (not fully tested)
 X 0x06 setPallete
 X 0x07 setColor
 X 0x08 floprd
 X 0x09 flopwr
 X 0x0a flopfmt
 - 0x0b used-by-BIOS    (useless - will not be implemented)
 X 0x0c midiws
 X 0x0d mfpint
 X 0x0e iorec
 X 0x0f rsconf
 X 0x10 keytbl
 X 0x11 random
 X 0x12 protobt
 X 0x13 flopver
 - 0x14 scrdmp
 T 0x15 cursconf
 X 0x16 settime
 X 0x17 gettime
 X 0x18 bioskeys
 X 0x19 ikbdws
 X 0x1a jdisint
 X 0x1b jenabint
 X 0x1c giaccess
 X 0x1d offgibit
 X 0x1e ongibit
 X 0x1f xbtimer
 X 0x20 dosound
 - 0x21 setprt          (useless - will not be implemented)
 X 0x22 kbdvbase
 - 0x23 kbrate
 - 0x24 prtblk          (useless - will not be implemented)
 X 0x25 vsync
 X 0x26 supexec
 - 0x27 puntaes         (useless - will not be implemented)

 X 0x29 floprate
 X 0x2a DMAread
 X 0x2b DMAwrite
 - 0x2c Bconmap

 X 0x2e NVMaccess

 - 0x40 Blitmode

 X 0x50 EsetShift       (for TT shifter only)
 X 0x51 EgetShift       (for TT shifter only)

 > 0x58 Vsetmode        (for Falcon Videl only)
 X 0x59 Vmontype        (for Falcon Videl only)


 GEMDOS Functions
 ----------------------------------------------------------------------------
 X 0x00 Pterm0
 X 0x01 Cconin
 X 0x02 Cconout
 X 0x03 Cauxin
 X 0x04 Cauxout
 X 0x05 Cprnout
 X 0x06 Crawio
 X 0x07 Crawin
 X 0x08 Cnecin
 X 0x09 Cconws
 X 0x0a Cconrs
 X 0x0b Cconis
 X 0x0e Dsetdrv
 X 0x10 Cconos
 X 0x11 Cprnos
 X 0x12 Cauxis
 X 0x13 Cauxos
 X 0x14 Maddalt
 X 0x19 Dgetdrv
 X 0x1a Fsetdta
 X 0x20 Super
 X 0x2a Tgetdate
 X 0x2b Tsetdate
 X 0x2c Tgettime
 X 0x2d Tsettime
 X 0x2f Fgetdta
 X 0x30 Sversion
 X 0x31 Ptermres
 X 0x36 Dfree
 X 0x39 Dcreate
 X 0x3a Ddelete
 X 0x3b Dsetpath
 X 0x3c Fcreate
 X 0x3d Fopen
 X 0x3e Fclose
 X 0x3f Fread
 X 0x40 Fwrite
 X 0x41 Fdelete
 X 0x42 Fseek
 X 0x43 Fattrib
 X 0x44 Mxalloc
 X 0x45 Fdup
 X 0x46 Fforce
 X 0x47 Dgetpath
 X 0x48 Malloc
 X 0x49 Mfree
 X 0x4a Mshrink
 X 0x4b Pexec
 X 0x4c Pterm
 X 0x4e Fsfirst
 X 0x4f Fsnext
 X 0x56 Frename
 X 0x57 Fdatime


 VDI functions
 ----------------------------------------------------------------------------
 All TOS 1.0 calls are implemented.
 
 T      v_opnwk
 X      v_clswk
 T      v_opnvwk
 T      v_clsvwk
 T      v_clrwk
 ?      v_updwk
 ?      vst_load_fonts
 ?      vst_unload_fonts
 ?      vs_clip
 T      v_pline
 ?      v_pmarker
 ?      v_gtext
 ?      v_fillarea
 ?      v_cellarray
 ?      v_contourfill
 ?      vr_recfl
 ?      v_bar
 ?      v_arc
 ?      v_pieslice
 T      v_circle
 ?      v_ellarc
 ?      v_ellpie
 ?      v_ellipse
 ?      v_rbox
 ?      v_rfbox
 ?      v_justified
 ?      vswr_mode
 >      vs_color
 ?      vsl_type
 ?      vsl_udsty
 ?      vsl_width
 ?      vsl_color
 ?      vsl_ends
 ?      vsm_type
 ?      vsm_height
 ?      vsm_color
 ?      vst_height
 ?      vst_point
 ?      vst_rotation
 ?      vst_font
 ?      vst_color
 ?      vst_effects
 ?      vst_alignment
 ?      vsf_interior
 ?      vsf_style
 ?      vsf_color
 ?      vsf_perimeter
 ?      vsf_udpat
 ?      vro_cpyfm
 ?      vrt_cpyfm
 ?      vr_trnfm
 ?      v_get_pixel
 ?      vsin_mode
 ?      vrq_locator
 ?      vsm_locator
 ?      vrq_valuator
 ?      vsm_valuator
 ?      vrq_choice
 ?      vsm_choice
 ?      vrq_string
 ?      vsm_string
 ?      vsc_form
 ?      vex_timv
 ?      v_show_c
 ?      v_hide_c
 ?      vq_mouse
 T      vex_butv
 T      vex_motv
 T      vex_curv
 ?      vq_key_s
 ?      vq_extnd
 >      vq_color
 ?      vql_attributes
 ?      vqm_attributes
 ?      vqf_attributes
 ?      vqt_attributes
 ?      vqt_extent
 ?      vqt_width
 ?      vqt_name
 ?      vq_cellarray
 ?      vqin_mode
 ?      vqt_font_info
 ?      vq_chcells
 ?      v_exit_cur
 ?      v_enter_cur
 ?      v_curup
 ?      v_curdown
 ?      v_curright
 ?      v_curleft
 ?      v_curhome
 ?      v_eeos
 ?      v_eeol
 ?      vs_curaddress
 ?      v_curtext
 ?      v_rvon
 ?      v_rvoff
 ?      vq_curaddress
 ?      vq_tabstatus
 ?      v_hardcopy
 ?      v_dspcur
 ?      v_rmcur
 ?      v_form_adv
 ?      v_output_window
 ?      v_clear_disp_list
 ?      v_bit_image
 ?      vs_palette
 ?      vqp_films
 ?      vqp_state
 ?      vsp_state
 ?      vsp_save
 ?      vsp_message
 ?      vqp_error
 ?      v_meta_extents
 ?      v_write_meta
 ?      vm_filename


 AES functions
 ----------------------------------------------------------------------------
 All TOS 1.0 calls are implemented.

 X      appl_init
 X      appl_read
 X      appl_write
 X      appl_find
 X      appl_tplay
 X      appl_trecord
 X      appl_bvset              (PC-GEM call)
 X      appl_yield              (PC-GEM call)
 X      appl_exit
 X      evnt_keybd
 X      evnt_button
 X      evnt_mouse
 X      evnt_mesag
 X      evnt_timer
 X      evnt_multi
 X      evnt_dclick
 X      menu_bar
 X      menu_icheck
 X      menu_ienable
 X      menu_tnormal
 X      menu_text
 X      menu_register
 X      menu_unregister         (PC-GEM call)
 X      menu_click              (PC-GEM call)
 X      objc_add
 X      objc_delete
 X      objc_draw
 X      objc_find
 X      objc_offset
 X      objc_order
 X      objc_edit
 X      objc_change
 X      form_do
 X      form_dial
 X      form_alert
 X      form_error
 X      form_center
 X      form_keybd
 X      form_button
 X      graf_rubbox
 X      graf_dragbox
 X      graf_mbox
 T      graf_growbox
 T      graf_shrinkbox
 X      graf_watchbox
 X      graf_slidebox
 X      graf_handle
 X      graf_mouse
 X      graf_mkstate
 X      scrp_read
 X      scrp_write
 X      scrp_clear              (PC-GEM call)
 >      fsel_exinput
 X      fsel_input
 X      wind_create
 X      wind_open
 X      wind_close
 X      wind_delete
 X      wind_get
 X      wind_set
 X      wind_find
 X      wind_update
 X      wind_calc
 t      wind_new
 X      rsrc_load
 X      rsrc_free
 X      rsrc_gaddr
 X      rsrc_saddr
 X      rsrc_obfix
 X      shel_read
 X      shel_write
 X      shel_get
 X      shel_put
 X      shel_find
 X      shel_envrn
 X      shel_rdef              (PC-GEM call)
 X      shel_wdef              (PC-GEM call)
 X      xgrf_stepcalc          (PC-GEM call)
 X      xgrf_2box              (PC-GEM call)

