885    ;Lnge in Zeilen (immer direkt hier)

; HILFS-INFORMATIONEN    fr Desert Drain >1.54    680x0er Disassembler
; ACHTUNG! Seit Version 1.54 gibt es ein neues Format!

; Diese Daten entstammen: ATARI Profibuch ST-STE-TT Sybex-Verlag,
;   TurboAss Libraries und div. Zeitschriften fr F030 Angaben siehe
;   ST-Magazin 3/93 (Audio) und ST-Computer 5/93 (Video)

; letzte nderung: 05.07.1995 von Volker

AES:
appl_init       aes($0A)   ;Applikation bei den AES anmelden
appl_read       aes($0B)   ;liest Bytes aus dem Ereignispuffer
appl_write      aes($0C)   ;schreibt Bytes in den Ereignispuffer
appl_find       aes($0D)   ;ermittelt ID einer anderen Applikation
appl_tplay      aes($0E)   ;zeichnet Benutzeraktivitten auf
appl_trecord    aes($0F)   ;spielt gespeicherte wieder Ereignisse ab
appl_search     aes($12)   ;AES-Prozesse ermitteln (ab 4.0)
appl_exit       aes($13)   ;Applikation bei den AES abmelden
evnt_keybd      aes($14)   ;wartet auf Tastendruck
evnt_button     aes($15)   ;wartet auf Mausdruck
evnt_mouse      aes($16)   ;wartet auf Mausereignis
evnt_mesag      aes($17)   ;wartet Ereignis
evnt_timer      aes($18)   ;wartet bestimmte Zeitspanne ab
evnt_multi      aes($19)   ;wartet auf Universalereignis
evnt_dclick     aes($1A)   ;stellt Mausparameter ein
menu_bar        aes($1E)   ;Men ein- oder ausschalten
menu_icheck     aes($1F)   ;Haken im Men setzen/lschen
menu_ienable    aes($20)   ;Meneintrag de-/aktivieren
menu_tnormal    aes($21)   ;Mentitel deselektieren
menu_text       aes($22)   ;Mentext ndern
menu_register   aes($23)   ;Name eines Accessoiry/Programms ins Men eintragen
menu_popup      aes($24)   ;Popup-Men darstellen und verwalten (ab F030)
menu_attach     aes($25)   ;Popup-Men als Untermen an Hauptmen anbinden (ab F030)
menu_istart     aes($26)   ;Starteintrag eines Untermen einstellen (ab F030)
menu_settings   aes($27)   ;Untermen-Parameter abfragen/einstellen (ab F030)
objc_add        aes($28)   ;Objektstruktur ndern
objc_delete     aes($29)   ;Objekt lschen
objc_draw       aes($2A)   ;Objekt/-e zeichnen
objc_find       aes($2B)   ;fr ein Koordinatenpaar Objektnummer suchen
objc_offset     aes($2C)   ;absolute Objektkoordinaten berechnen
objc_order      aes($2D)   ;Position eines Objektes ndern
objc_edit       aes($2E)   ;erlaubt Texteingaben in einem Objekt
objc_change     aes($2F)   ;Objektstatus ndern und neuzeichnen
objc_sysvar     aes($30)   ;Verhalten der 3D-Buttons einstellen (ab 3.4)
form_do         aes($32)   ;Objekttree verwalten
form_dial       aes($33)   ;0:FMD_START,1:FMD_GROW,2:FMD_SHRINK,3:FMD_FINISH
form_alert      aes($34)   ;Stellt eine Alertbox dar und verwaltet sie.
form_error      aes($35)   ;Stellt Alertbox mit GEMDOS-Fehler dar.
form_center     aes($36)   ;zentriert Objekt
form_keybd      aes($37)   ;nimmt Tastatureingaben in einem Formular vor
form_button     aes($38)   ;nimmt Mausknopfeingaben in einem Formular vor
graf_rubbox     aes($46)   ;stellt eine Gummiband-Box dar
graf_dragbox    aes($47)   ;stellt eine verschiebbare Box dar
graf_mbox       aes($48)   ;zeichnet eine sich bewegende Box
graf_growbox    aes($49)   ;zeichnet eine wachsende Box
graf_shrinkbox  aes($4A)   ;zeichnet eine schrumpfende Box
graf_watchbox   aes($4B)   ;verwaltet Mausereignis fr ein Objekt
graf_slidebox   aes($4C)   ;verwaltet Schieberegler
graf_handle     aes($4D)   ;ermittelt VDI-Handle und Systemzeichensatzgre
graf_mouse      aes($4E)   ;legt die Form der Maus fest
graf_mkstate    aes($4F)   ;fragt Mausstatus und -position ab
srcp_read       aes($50)   ;ermittelt Pfadnamen fr das Clipboard
srcp_write      aes($51)   ;legt Pfad fr das Clipboard fest
fsel_input      aes($5A)   ;Fileselect-Box
fsel_exinput    aes($5B)   ;erweiterte Fileselect-Box (ab 1.4)
wind_create     aes($64)   ;Fenster erzeugen
wind_open       aes($65)   ;Fenster ffnen
wind_close      aes($66)   ;Fenster schlieen
wind_delete     aes($67)   ;Fenster entfernen
wind_get        aes($68)   ;Fensterparameter abfragen
wind_set        aes($69)   ;Fensterparameter setzen
wind_find       aes($6A)   ;fr ein Koordinatenpaar das Fensterhandle suchen
wind_update     aes($6B)   ;steuert das Schreibrecht fr den Bildschirm
wind_calc       aes($6C)   ;Fensterproportionen berechnen
wind_new        aes($6D)   ;alle Fensteroperationen zurcksetzen
rsrc_load       aes($6E)   ;Resource-Datei laden und installieren
rsrc_free       aes($6F)   ;geladene Resourcen wieder entfernen
rsrc_gaddr      aes($70)   ;Objekt-Adresse berechnen
rsrc_saddr      aes($71)   ;speichert Adresse einer Datenstruktur
rsrc_obfix      aes($72)   ;Objektkoordinaten umrechnen
rsrc_rcfix      aes($73)   ;Resource im Speicher umrechnen (ab 4.0)
shel_read       aes($78)   ;Namen und Kommandozeile lesen
shel_write      aes($79)   ;neue Applikation laden
shel_get        aes($7A)   ;Environment-Speicher lesen
shel_put        aes($7B)   ;Environment-Speicher schreiben
shel_find       aes($7C)   ;Datei suchen
shel_envrn      aes($7D)   ;Environmentpfade setzen
appl_getinfo    aes($82)   ;Infos ber AES erfragen (ab 4.0)
END

VDI:
v_opnwk         vdi($01)     ;Open workstation
v_clswk         vdi($02)     ;Close workstation
v_opnvwk        vdi($64)     ;Open virtual screen workstation
v_clsvwk        vdi($65)     ;Close virtual screen workstation
v_clrwk         vdi($03)     ;Clear workstation
v_updwk         vdi($04)     ;Update workstation
v_flushcache    vdi($FB)
v_killoutline   vdi($F2)
v_getoutline    vdi($F3)
v_loadcache     vdi($FA)
v_savecache     vdi($F9)
vst_load_fonts  vdi($77)     ;Load fonts
vst_unload_fonts vdi($78)    ;Unload fonts
vs_clip         vdi($81)     ;Set clipping rectangle
v_pline         vdi($0600)   ;Polyline
v_bez           vdi($060D)   ;Output Bezier
v_pmarker       vdi($07)     ;Polymarker
v_gtext         vdi($08)     ;Text
v_fillarea      vdi($0900)   ;Filled area
v_bez_fill      vdi($090D)   ;Output filled bezier
v_cellarray     vdi($0A)     ;Cell array
v_contourfill   vdi($67)     ;Contour fill
vr_recfl        vdi($72)     ;Fill rectangle
v_bez_con       vdi($0B00)
v_bar           vdi($0B01)   ;Bar
v_arc           vdi($0B02)   ;Arc
v_pieslice      vdi($0B03)   ;Pie
v_circle        vdi($0B04)   ;Circle
v_ellipse       vdi($0B05)   ;Ellipse
v_ellarc        vdi($0B06)   ;Elliptical arc
v_ellpie        vdi($0B07)   ;Elliptical pie
v_rbox          vdi($0B08)   ;Rounded rectangle
v_rfbox         vdi($0B09)   ;Filled rounded rectangle
v_justified     vdi($0B0A)   ;Justified graphics text
v_bez_on        vdi($0B0D)   ;En/able bezier capabilities
vswr_mode       vdi($20)     ;Set writing mode
vs_color        vdi($0E)     ;Set color representation
vsl_type        vdi($0F)     ;Set polyline line type
vsl_udsty       vdi($71)     ;Set user-defined line style pattern
vsl_width       vdi($10)     ;Set polyline line width
vsl_color       vdi($11)     ;Set polyline color index
vsl_ends        vdi($6C)     ;Set polyline end styles
vsm_type        vdi($12)     ;Set polymarker type
vsm_height      vdi($13)     ;Set polymarker height
vsm_color       vdi($14)     ;Set polymarker color index
vst_height      vdi($0C)     ;Set character height, absolute mode
vst_point       vdi($6B)     ;Set character height, points mode
vst_rotation    vdi($0D)     ;Set character baseline vector
vst_font        vdi($15)     ;Set text face
vst_color       vdi($16)     ;Set graphic text color index
vst_effects     vdi($6A)     ;Set graphic text special effects
vst_alignment   vdi($27)     ;Set graphic text alignment
vst_arbpt       vdi($F6)     ;  (Speedo)
vst_setsize     vdi($FC)     ;  (Speedo)
vst_skew        vdi($FD)     ;  (Speedo)
vst_scratch     vdi($F4)
vst_error       vdi($F5)
vsf_interior    vdi($17)     ;Set fill interior index
vsf_style       vdi($18)     ;Set fill style index
vsf_color       vdi($19)     ;Set fill color index
vsf_perimeter   vdi($68)     ;Set fill perimeter visibility
vsf_udpat       vdi($70)     ;Set user-defined fill pattern
vro_cpyfm       vdi($6D)     ;Copy raster, opaque
vrt_cpyfm       vdi($79)     ;Copy raster, transparent
vr_trnfm        vdi($6E)     ;Transform form
v_get_pixel     vdi($69)     ;Get pixel
vsin_mode       vdi($21)     ;Set input mode
vrq_locator     vdi($1C)     ;Input locator, request/sample mode
vrq_valuator    vdi($1D)     ;Input valuator, request/sample mode
vrq_choice      vdi($1E)     ;Input choice, request/sample mode
vrq_string      vdi($1F)     ;Input string, request/sample mode
vsc_form        vdi($6F)     ;Set mouse form
vex_timv        vdi($76)     ;Exchange timer interrupt vector
v_show_c        vdi($7A)     ;Show cursor
v_hide_c        vdi($7B)     ;Hide cursor
vq_mouse        vdi($7C)     ;Sample mouse button state
vex_butv        vdi($7D)     ;Exchange button change vector
vex_motv        vdi($7E)     ;Exchange mouse movement vector
vex_curv        vdi($7F)     ;Exchange cursor change vector
vq_key_s        vdi($80)     ;Sample keyboard state information
vq_extnd        vdi($66)     ;Extended inquire function
vq_color        vdi($1A)     ;Inquire color representation
vq_cellarray    vdi($1B)     ;Inquire cell array
vqin_mode       vdi($73)     ;Inquire input mode
vql_attributes  vdi($23)     ;Inquire current polyline attributes
vqm_attributes  vdi($24)     ;Inquire current polymarker attributes
vqf_attributes  vdi($25)     ;Inquire current fill area attributes
vqt_attributes  vdi($26)     ;Inquire current graphic text attributes
vqt_extent      vdi($74)     ;Inquire text extent
vqt_f_extent    vdi($F0)
vqt_width       vdi($75)     ;Inquire character cell width
vqt_name        vdi($82)     ;Inquire face name and index
vqt_fontinfo    vdi($83)     ;Inquire current face information
vqt_advance     vdi($F7)
vqt_cachesize   vdi($FF)
vqt_devinfo     vdi($F8)
vqt_get_tables  vdi($FE)
vq_chcells      vdi($0501)   ;Inquire addressable alpha character cells
v_exit_cur      vdi($0502)   ;Exit alpha mode
v_enter_cur     vdi($0503)   ;Enter alpha mode
v_curup         vdi($0504)   ;Alpha cursor up
v_curdown       vdi($0505)   ;Alpha cursor down
v_curright      vdi($0506)   ;Alpha cursor right
c_curleft       vdi($0507)   ;Alpha cursor left
v_curhome       vdi($0508)   ;Home alpha cursor
v_eeos          vdi($0509)   ;Erase to end of alpha screen
v_eeol          vdi($050A)   ;Erase to end of alpha text line
v_curaddress    vdi($050B)   ;Direct alpha cursor address
v_curtext       vdi($050C)   ;Output cursor addressable alpha text
v_rvon          vdi($050D)   ;Reverse video on
v_rvoff         vdi($050E)   ;Reverse video off
vq_curaddress   vdi($050F)   ;Inquire current alpha cursor address
vq_tabstatus    vdi($0510)   ;Inquire tablet status
v_hardcopy      vdi($0511)   ;Hardcopy
v_dspcur        vdi($0512)   ;Place graphic cursor at location
v_rmcur         vdi($0513)   ;Remove last graphic cursor
v_form_adv      vdi($0514)   ;Form advance
v_output_window   vdi($0515)  ;Output window
v_clear_disp_list  vdi($0516) ;Clear display list
v_bit_image     vdi($0517)   ;Output bit image file
vq_scan         vdi($0518)   ;Inquire printer scan
v_alpha_text    vdi($0519)   ;Output alpha text
vs_palette      vdi($053C)   ;Select palette
v_sound         vdi($053D)   ;Generate specified tone
vs_mute         vdi($053E)   ;Set/clear tone muting flag
vt_resolution   vdi($0551)  ;Set tablet axis resolution in lines/inch
vt_axis         vdi($0552)  ;Set table axis resolution in lines
vt_origin       vdi($0553)  ;Set tablet x and y origin
vq_tdimensions  vdi($0554)  ;Return tablet x and y dimensions
vt_alignment    vdi($0555)  ;Set tablet alignment
vsp_film        vdi($055B)  ;Set camera file type and exposure time
vqp_filename    vdi($055C)  ;Inquire camera file name
vsc_expose      vdi($055D)  ;Disable or enable file exp. for frame preview
v_meta_extents  vdi($0562)  ;Update metafile extents
v_write_meta    vdi($0563)  ;Write metafile item
vm_pagesize     vdi($0563)  ;Physical page size
wm_coords       vdi($0563)  ;Coordinate window
v_bez_qual      vdi($0563)  ;Set bezier quality
vm_filename     vdi($0564)  ;Change gem vdi filename
v_offset        vdi($0565)  ;Set line offset
v_fontinit      vdi($0566)  ;Init system font
END

GEMDOS:
Pterm0      gemdos(0)  Programm beenden
Cconin      gemdos(1)  Zeichen von kbd lesen
Cconout     gemdos(2)  (WORD z) Zeichen z auf Bildschirm ausgeben
Cauxin      gemdos(3)  Zeichen von ser lesen
Cauxout     gemdos(4)  (WORD z) Zeichen z auf ser ausgeben
Cprnout     gemdos(5)  (WORD z) Zeichen z auf prn ausgeben
Crawio      gemdos(6)  (WORD z) Zeichen z von kbd ohne Echo lesen
                       oder schreiben
Crawcin     gemdos(7)  Zeichen ohne Echo von kbd lesen
Cnecin      gemdos(8)  wie 7, nur ohne Steuerzeichen
Cconws      gemdos(9)  (LONG adr) String auf Bildschirm ausgeben
Cconrs      gemdos(10) (LONG a) String von kbd lesen (a:puf)
Cconis      gemdos(11) Prft ob ein Zeichen im kbd-Puffer ist
Dsetdrv     gemdos(14) (WORD d) aktuelles Laufw auf d festlegen
Cconos      gemdos(16) Bildschirm bereit zur Ausgabe?
Cprnos      gemdos(17) par bereit zur Ausgabe?
Cauxis      gemdos(18) liegt an ser ein Zeichen an?
Cauxos      gemdos(19) ser bereit zur Ausgabe?
Maddalt     gemdos(20) (LONG length,LONG addr) Fast-Ram einrichten
Dgetdrv     gemdos(25) aktuelles Laufwerk ermitteln
Fsetdta     gemdos(26) setzt DTA
Super       gemdos(32) r=(LONG a) a=-1: r: 0=User 1=Super
                       a=0: ->SSP      a=SSP ->UserMode
Tgetdate    gemdos(42) ermittelt Datum, Bit 0..4:Tag, 5..8:Monat
                       9..15: Jahr minus 1980
Tsetdate    gemdos(43) (LONG d) Datum setzen
Tgettime    gemdos(44) ermittelt Zeit, Bit 0..4:Sekunden, 5..10:Minuten
                       11..15:Stunden
Tsettime    gemdos(45) (LONG t) Zeit setzen
Fgetdta     gemdos(47) DTA ermitteln
Sversion    gemdos(48) GEMDOS-Versionsnummer
Ptermres    gemdos(49) (LONG b,WORD r) Programm verlassen und r zurckgeben
                       b Bytes ab Basepage resistent halten
Sconfig     gemdos(51) ???  KAOS 1.4
Dfree       gemdos(54) (LONG a,WORD d) ermittelt freien Diskspeicherplatz
                       a: 16Bytes puf  offset 0:Anzahl freier Cluster
                       4:Cluster ges  8:Bytes/Sektor  12:Sekt/Cluster
Dcreate     gemdos(57) (CHAR *a) Ordner anlegen
Ddelete     gemdos(58) (CHAR *a) Ordner lschen
Dsetpath    gemdos(59) (CHAR *a) aktuelles Verzeichnis wechseln
Fcreate     gemdos(60) handle=(CHAR *a,WORD attr) Datei anlegen
                       attr: Bit 0:schreibgeschtzt,1:versteckt
                       2:versteckte Systemdatei,3:Diskettenname
Fopen       gemdos(61) handle=(CHAR *a,WORD m) Datei ffnen  m=0 ->lesen
                       m=1 -> schreiben   m=2 -> beides
Fclose      gemdos(62) (handle) Datei schlieen
Fread       gemdos(63) (WORD handle,LONG l,LONG a) l Bytes ab a lesen
Fwrite      gemdos(64) (WORD handle,LONG l,LONG a) l Bytes nach a schreiben
Fdelete     gemdos(65) (CHAR *a) Datei lschen
Fseek       gemdos(66) (LONG n,WORD h,WORD m) n Schritte m=0:Anf 1:Pos 2:End
Fattrib     gemdos(67) (CHAR *a,WORD m,WORD attr) m=0:Attr lesen 1:schreiben
Mxalloc     gemdos(68) (LONG b,WORD m) b=-1:free_ram? sonst:b Bytes reservieren
                       m=0:aus ST-RAM 1:Fast 2:egal lieber ST 3: egal Fast
Fdup        gemdos(69) handle2=(WORD h) zweites Dateihandle erzeugen
Fforce      gemdos(70) (WORD h,WORD neuh) neues Ausgabehandle festlegen
Dgetpath    gemdos(71) (CHAR *a,WORD d) Zugriffspfad ermitteln
Malloc      gemdos(72) r=(LONG b) b=-1:free_ram?  sonst:b Bytes Ram
                       reservieren und r=Adresse des Blockes
Mfree       gemdos(73) (LONG a) reservierten Speicherbereich freigeben
Mshrink     gemdos(74) (LONG a,LONG b) Bereich ab a auf b reduzieren
Pexec       gemdos(75) (WORD m,CHAR *p,CHAR *c,CHAR *e) Programm m=0:laden
                       und starten 3:laden 4:starten 5:basepage ergnzen
Pterm       gemdos(76) (WORD r) Programm beenden und r zurck
Fsfirst     gemdos(78) (CHAR *a,WORD attr) Datei mit attr suchen
Fsnext      gemdos(79) weiter suchen
Frename     gemdos(86) (CHAR *old,CHAR *new) Datei umbenennen
Fdatime     gemdos(87) (CHAR *a,WORD h,WORD m) m=0:Dateizeit lesen 1:setzen
Flock       gemdos(92) (WORD h,WORD m,LONG start,LONG len) Datei mit Handle
                       h blockieren m=0:lock,1:unlock - len Bytes ab start
Syield     gemdos(255) () Rechenzeit abgeben
Fpipe      gemdos(256) (WORD *ptr) freie Kennung fr Pipe ermitteln
Fcntl      gemdos(260) (WORD f,LONG arg,WORD cmd)
Finstat    gemdos(261) (WORD f) Einleselnge von Datei f ermitteln
Foutstat   gemdos(262) (WORD f) Ausgabelnge von Datei f ermitteln
Fgetchar   gemdos(263) (WORD f,WORD mode) Zeichen aus Datei f lesen
Fputchar   gemdos(264) (WORD f,LONG c,WORD mode) Zeichen in Datei f schreiben
Pwait      gemdos(265) ()
Pnice      gemdos(266) (WORD delta) eigene Prozess-Prioritt ndern
Pgetpid    gemdos(267) () eigene Prozess-Id ermitteln
Pgetppid   gemdos(268) () Prozess-Id vom Elternprozess ermitteln
Pgetpgrp   gemdos(269) () Gruppen-Id ermitteln
Psetpgrp   gemdos(270) (WORD pid,WORD newgrp) Gruppen-Id setzen
Pgetuid    gemdos(271) () User-Id ermitteln
Psetuid    gemdos(272) () User-Id setzen
Pkill      gemdos(273) (WORD pid,WORD sig) Prozess beenden
Psignal    gemdos(274) (WORD sig,LONG handler) Signalroutine installieren
Pvfork     gemdos(275) () Prozess im Speicher kopieren
Pgetgid    gemdos(276) ()
Psetgid    gemdos(277) ()
Psigblock  gemdos(278) (ULONG mask)
Psigsetmask gemdos(279) (ULONG mask)
Pusrval    gemdos(280) (LONG arg) Prozess-Parameter setzen
Pdomain    gemdos(281) (WORD newdom) zwischen Mint und GEMDOS-Domain umschalten
Psigreturn gemdos(282) ()
Pfork      gemdos(283) ()
Pwait3     gemdos(284) (WORD flag,LONG *rusage)
Fselect    gemdos(285) (UWORD timeout,LONG *rfds,LONG *wfds,LONG *xfds)
Prusage    gemdos(286) (LONG r[8])
Psetlimit  gemdos(287) (WORD lim,LONG value)
Talarm     gemdos(288) (LONG secs) fr secs Sekunden auf Signal warten
Pause      gemdos(289) () Prozessbearbeitung aussetzen
Sysconf    gemdos(290) (WORD n)
Psigpending gemdos(291) ()
Dpathconf  gemdos(292) (CHAR *name,WORD n) Infos ber Filesystem ermitteln
Pmsg       gemdos(293) (WORD mode,LONG mbox,VOID *msg)
Fmidipipe  gemdos(294) (WORD pid,in,out)
Prenice    gemdos(295) (WORD pid,delta) Prioritt eines Prozesses einstellen
Dopendir   gemdos(296) (char *name,WORD flag) Dir. ffnen
Dreaddir   gemdos(297) (WORD buflen,LONG dir,CHAR *buf) aus Dir. lesen
Drewinddir gemdos(298) (LONG dir) Dir.-Auslesevorgang von neuem beginnen
Dclosedir  gemdos(299) (LONG dir) Dir. schlieen
Fxattr     gemdos(300) (WORD flag,CHAR *name,VOID *buf) Fileattr ermitteln
Flink      gemdos(30) (CHAR *oldname,CHAR *newname) Filelink installieren
Fsymlink   gemdos(302) (CHAR *oldname,CHAR *newname) symbolischen Link inst.
Freadlink  gemdos(303) (WORD size,CHAR *buf,CHAR *name)
Dcntl      gemdos(304) (WORD cmd,CHAR *name,LONG arg)
Fchown     gemdos(305) (CHAR *name,WORD uid,WORD gid) Fileeigentmer ndern
Fchmod     gemdos(306) (CHAR *name,WORD mode) Filezugriffsmodus einstellen
Pumask     gemdos(307) (WORD mask)
Psemaphore gemdos(308) (WORD mode,LONG id,LONG timeout)
Dlock      gemdos(309) (WORD mode,WORD drive) Laufwerk sperren
Psigpause  gemdos(310) (ULONG mask) auf Signal warten
Psigaction gemdos(311) (WORD sig,LONG act,LONG oact)
Pgeteuid   gemdos(312) ()
Pgetegid   gemdos(313) ()
Pwaitpid   gemdos(314) (WORD pid,WORD flag,LONG *rusage)
Dgetcwd    gemdos(315) (CHAR *path,WORD drv,WORD size)
Salert     gemdos(316) (CHAR *msg) Alertstring msg ausgeben, Pipe: ALERT
END

BIOS:
Getmpb    bios(0) (LONG a) Initialisierung des Memory-Parameter-Block
Bconstat  bios(1) (WORD d) Eingabe ber d mglich? 1:AUX  2:CON  3:MIDI
Bconin    bios(2) (WORD d) Zeichen von d lesen 0:PRT  1:AUX  2:CON  3:MIDI
Bconout   bios(3) (WORD d,WORD b) Zeichen b auf d ausgeben
                  0:PRT  1:AUX  2:CON  3:MIDI  4:IKBD  5:RAWCON
Rwabs     bios(4) (WORD m,LONG a,WORD n,WORD s,WORD d) m=0:Sekt lesen
                  1:Sekt schreiben
Setexec   bios(5) (WORD n,LONG a) Vektor n bei a=-1:lesen sonst setzen
Tickcal   bios(6) Abfrage des System Timers
Getbpb    bios(7) (WORD d) ermittelt Bios-Parameter-Block von Laufw d
Bcostat   bios(8) (WORD d) Ausgabe auf Einheit d mglich?
                  0:PRT  1:AUX  2:CON  3:IKBD  4:MIDI  5:RAWCON
Mediach   bios(9) (WORD d) Medium (z.B. Diskette) gewechselt?
Drvmap    bios(10) welche Laufwerke sind augeschlossen? (Bit0=A ...)
Kbshift   bios(11) (WORD c) Status der Tastaturumschalttasten
END

XBIOS:
Initmous    xbios(0)  (WORD m,LONG p,LONG v) m=0:aus 1:rel 2:abs 3:kbd
                      p=Info-Strukur  v=Vektor auf Routine
Ssbrk       xbios(1)  (LONG l) l Bytes reservieren (vor OS-INIT)
Physbase    xbios(2)  Adr des physikalischen Bildschirmspeichers
Logbase     xbios(3)  Adr des logischen Bildschrirmspeichers
Getrez      xbios(4)  Auflsung ST: 0=L 1=M 2=H  TT:4=M 6=H 7=L
Setscreen   xbios(5)  (LONG log,LONG pyhs,WORD rez [,WORD modecode])
                      Bildschirmadresse setzen
                      bei F030: Vsetscreen mit modecode
Setpalette  xbios(6)  (LONG a) neue Farbpalette setzen
Setcolor    xbios(7)  (WORD n,WORD c) n:Farbregister, bei c=-1:Reg n lesen
                      sonst n auf c setzen
Floprd      xbios(8)  (LONG a,LONG f,WORD d,WORD sec,WORD t,WORD s,WORD n)
                      Sektoren lesen
Flopwr      xbios(9)  (LONG a,WORD f,WORD d,WORD sec,WORD t,WORD s,WORD n)
                      Sektoren schreiben
Flopfmt     xbios(10) (LONG a,LONG f,WORD d,WORD sec,WORD t,WORD s,WORD i,
                      LONG m,WORD v) Spur formatieren
Getdsb      xbios(11) ???
Midiws      xbios(12) (WORD n,LONG a) gibt n+1 Bytes ab a ber MIDI aus
Mfpint      xbios(13) (WORD n,LONG a) Vektoren des MFP ndern
Iorec       xbios(14) (WORD d) Adr der Ein/Ausgabe Einheit d ermitteln
                      0:ser  1:ikbd  2:midi
Rsconf      xbios(15) (..) Parameter fr die ser setzen
Keytbl      xbios(16) (..) Adr der Tastbelegtab. ndern
Random      xbios(17) ermittelt eine 24-Bit-Zufallszahl
Protobt     xbios(18) (LONG a,LONG s,WORD d,WORD f) Bootsektor erzeugen
Flopver     xbios(19) (LONG a,LONG f,WORD d,WORD sec,WORD t,WORD s,WORD n)
                      Datei=RAM ?
Scrdmp      xbios(20) Hardcopy
Cursconf    xbios(21) (WORD c,WORD s) Curser c=0:aus 1:ein 2:blink ein
                      3:blink aus 4:blink auf s 5:blinkrate zurueck
Bsettime    xbios(22) (LONG t) Datum und Zeit setzen
Bgettime    xbios(23) Datum und Zeit lesen
Bioskey     xbios(24) Originaltastaturbelegung einstellen
Ikbdws      xbios(25) (WORD n,LONG a) n+1 Bytes ab a an ikbd senden
Jdisint     xbios(26) (WORD i) sperrt den MFP-Interrupt i
Jenabint    xbios(27) (WORD i) gibt den MFP-Interrupt i frei
Giaccess    xbios(28) (WORD d,WORD reg) Register reg des Soundchips bedienen
                      bit7 von reg -> d in reg schreiben, sonst lesen
Offgibit    xbios(29) (WORD b) lscht ein Bit des Port-A-Registers des
                      Soundchips, 'or' Verknpfung von b und original
Ongibit     xbios(30) (WORD b) setzt ein Bit, 'and' Verknpfung
Xbtimer     xbios(31) (WORD t,WORD ctrl,WORD data,LONG a) setzt MFP-Timer
                      (t=0..3)
Dosound     xbios(32) (LONG a) Sound-Sequenz ab a starten (a=-1 Abfrage)
Setprt      xbios(33) (WORD c) Druckerparam c=-1 lesen, sonst setzen
                      Bit0: Matr/Typrad  1:Farbe/Mono  2:1280/960
                         3:Draft/NLQ  4:par/ser  5:endl/einzel
Kbdvbase    xbios(34) Vektoren des Tastaturprozessors  offset:
                      0:midi_ein 4:tast_berl 8:midi_berl 12:kbd_status
                      16:maus 20:timer 24:stick 28:midi_sys 32:kbd_sys
Kbrate      xbios(35) (WORD ansprech,WORD wiederhr) Tastaturwiederholrate s/l
Prtblk      xbios(36) (LONG a) Hardcopy mit Parameterblock
Vsync       xbios(37) wartet auf Vertical-Blank-Interrupt
Supexec     xbios(38) (LONG a) Assemblerroutine im Supervisormodus aufrufen
Puntaes     xbios(39) AES abschalten
Floprate    xbios(41) (WORD new,WORD devno) steprate der Floppy lesen/setzen
DMAread     xbios(42) (LONG sec,WORD anz,LONG p,WORD devno) anz Sektoren ab
                      phys. Sektor sec nach p lesen, devno=0..15 DMA-Port
DMAwrite    xbios(43) (LONG sec,WORD anz,LONG p,WORD devno) anz Sektoren ab
                      p nach phys. Sektor sec schreiben, devno=DMA-Port
Bconmap     xbios(44) (WORD i) i: Index der neuen Schnittstelle, rueck=alt
                      -1: abfragen -2:Zeiger auf BCONMAP-Struktur
NVMaccess   xbios(46) (WORD op,WORD st,WORD count,LONG a)
                      RAM der TT-Uhr bedienen
Metainit    xbios(48) (LONG a) erhlt in Puffer a Infos ber Meta-DOS
Blitmode    xbios(64) (WORD b) Blitter b=-1 Blitter da?   Bit0:ein/aus
EsetShift   xbios(80) (WORD m) Shiftmode-Reg im TT-Vid-Shifter auf m setzen
EgetShift   xbios(81) Shiftmode-Register im TT-Video-Shifter erfragen
EsetBank    xbios(82) r=(WORD n) legt im TT aktuelle Farbbank fest, r=alt
EsetColor   xbios(83) r=(WORD n,WORD c) setzt das TT-Farbreg n auf c, r=alt
EsetPalette  xbios(84) (WORD n1,WORD n,LONG a) n TT-Farbreg ab n1 mit
                       Speicherinhalten ab Adresse a belegen
EgetPalette  xbios(85) (WORD n1,WORD n,LONG a) n TT-Farbreg ab n1 nach
                       Speicheradresse a auslesen
EsetGray    xbios(86) (WORD m) bei m!=0 Graustufenmodus im TT an.
EsetSmear   xbios(87) r=(WORD m) Smear-Modus: m=0:aus m>0:an, r=alt
Vsetmode    xbios(88) (WORD m) neuen Videomodus m einstellen (F030)
mon_type    xbios(89) ermittelt Monitortyp (F030) 0:SM 1:SC 2:VGA 3:Glotze
VsetSync    xbios(90) (WORD flag) externe Synchronisation benutzten? (F030)
VgetSize    xbios(91) r=(WORD m) Bildschirmspeichergre im Videomodus m
                      ermitteln (F030)
VsetRGB     xbios(93) (WORD index,WORD count,LONG array) Farbpalette setzen
                      Parameter wie bei EsetPalette (F030)
VgetRGB     xbios(94) (WORD index,WORD count,LONG array) Farbpalette lesen
                      Parameter wie bei EgetPalette (F030)
locksnd	  xbios(128) s=() Audiosystem sperren s=1:OK -128:nicht mgl(F030)
unlocksnd  xbios(129) s=() Audiosystem freigeben s=0:OK -129:Fehler (F030)
soundcmd   xbios(130) r=(WORD mode,WORD data) Setzen und Abfragen von Para-
                      metern des CODEC (A/D,D/A) (F030)
setbuffer  xbios(131) state=(WORD reg,LONG begaddr,LONG endaddr) Setzen der
                      Abspiel- und Aufnahmepuffer im Speicher bei reg=0 (F030)
setsndmode xbios(132) state=(WORD mode) Setzen des Aufnahme- und Abspielmode
                      mode=0:8Bit Stereo 1:16Bit Stereo 2:8Bit Mono (F030)
settrack   xbios(133) state=(WORD playtrack,WORD rectrack) Setzen der Auf-
                      nahme und Wiedergabekanle (F030)
setmontrack xbios(134) state=(WORD montrack) Auswahl der Stereospur montrack
                       fr Ausgabe ber D/A-Wandler (F030)
setinterrupt xbios(135) state=(WORD src_inter,WORD cause) Bestimmt welcher
                        Interrupt auftreten soll, wenn gesammter Puffer ab-
                        gespielt oder aufgenommen wurde (F030)
buffoper   xbios(136) state=(WORD mode) Setzen des Aufnahme-/Abspielmodus
                      mode=-1:aktuelle in state (F030)
dsptistate xbios(137) state=(WORD dspxmit,WORD dsprec) DSP abkoppeln (F030)
gpio       xbios(138) state=(WORD mode,WORD data) Setzen bzw. Abfragen der
                      Anschlsse der externen DSP-Schnittstelle (F030)
devconnect xbios(139) state=(WORD src,WORD dst,WORD srcclk,WORD prescale,
                      WORD protocol) Verbinden zweier Komponenten des Audio-
                      subsystems ber Multiplexer (F030)
sndstate   xbios(140) state=(WORD reset) akt. Status des CODEC incl. INIT
buffptr    xbios(141) state=(LONG pointer) Position der Abspiel- bzw. Auf-
                      nahmedatenzeiger ermitteln (F030)
VsetMask   xbios(150) (WORD andmask,WORD ormask) VDI-Masken setzen (F030)
END

LINEA:
init        linea #0    ;Initialization: D0,A0->Parameterblock
                        ;A1->Tabelle mit Zeigern auf die Systemzeichenstze
                        ;A2->Tab. mit den Anfangsadr. der Line-A-Routinen
putpix      linea #1    ;Put Pixel
getpix      linea #2    ;Get Pixel
line        linea #3    ;Arbitrary Line
hline       linea #4    ;Horizontal Line
fillrec     linea #5    ;Filled Rectangle
fillpoy     linea #6    ;Filled Polygon
bitblk      linea #7    ;Bit Block Transfer
textblk     linea #8    ;Text Block Transfer
showm       linea #9    ;Show Mouse
hidem       linea #10   ;Hide Mouse
transm      linea #11   ;Transform Mouse
undraw      linea #12   ;Undraw Sprite
draw        linea #13   ;Draw Sprite
copy        linea #14   ;Copy Raster Form
fill        linea #15   ;Seedfill
END

SYSVAR:
; Speicherkonfiguration
memconf    $FFFF8001   ;Memory Configuration Register ST(E)

; Videocontroller
dbaseh     $FFFF8201   ;Video-Base-Register High (Byte)
dbasel     $FFFF8203   ;Video-Base-Register Mid (Byte)
vcounthi   $FFFF8205   ;Video-Adress-Counter High (Byte)
vcountmid  $FFFF8207   ;Video-Adress-Counter Mid (Byte)
vcountlow  $FFFF8209   ;Video-Adress-Counter Low (Byte)
syncmode   $FFFF820A   ;Video-Sync-Mode-Register
dbaselow   $FFFF820C   ;Video-Base-Register Low (Byte) - only STE/TT
vbaselo    $FFFF820D   ;Video base address (lo; STE only)
linewid    $FFFF820F   ;Width of a scan-line (Words, minus 1; STE only)
color0     $FFFF8240   ;Color-Register 0
color1     $FFFF8242   ;Color-Register 1
color2     $FFFF8244   ;Color-Register 2
color3     $FFFF8246   ;Color-Register 3
color4     $FFFF8248   ;Color-Register 4
color5     $FFFF824A   ;Color-Register 5
color6     $FFFF824C   ;Color-Register 6
color7     $FFFF824E   ;Color-Register 7
color8     $FFFF8250   ;Color-Register 8
color9     $FFFF8252   ;Color-Register 9
color10    $FFFF8254   ;Color-Register 10
color11    $FFFF8256   ;Color-Register 11
color12    $FFFF8258   ;Color-Register 12
color13    $FFFF825A   ;Color-Register 13
color14    $FFFF825C   ;Color-Register 14
color15    $FFFF825E   ;Color-Register 15
shiftmd    $FFFF8260   ;ST-Shift-Mode-Reg. (0=L,1=M,2=H)
shift_tt   $FFFF8262   ;TT-Shift-Mode-Reg. (4=M,6=H,7=L)
hscroll    $FFFF8265   ;Horizontal scroll count (0..15; STE only)
stacydsp   $FFFF827E   ;STACY Display-Steuerung

; TT-Farbpalettenregister
TT_col0    $FFFF8400   ;TT-Pal. 0
TT_col255  $FFFF85FE   ;TT-Pal. 255

; DMA-Controller
diskctl   $FFFF8604   ;disk controller data access
fifo      $FFFF8606   ;DMA mode control
dmahigh   $FFFF8609   ;DMA-Base+Count.-Reg.-High (Byte)
dmamid    $FFFF860B   ;DMA-Base+Count.-Reg.-Mid (Byte)
dmalow    $FFFF860D   ;DMA-Base+Count.-Reg.-Low (Byte)

; SCSI-DMA (nur TT!)
tt_dmabas    $FFFF8701   ;DMA-Adress-Pointer (Highest Byte)
tt_dmabas+2  $FFFF8703   ;DMA-Adress-Pointer (High Byte)
tt_dmabas+4  $FFFF8705   ;DMA-Adress-Pointer (Low Byte)
tt_dmabas+6  $FFFF8707   ;DMA-Adress-Pointer (Lowest Byte)
tt_dmacnt    $FFFF8709   ;DMA-Bytezhler (Highest Byte)
tt_dmacnt+2  $FFFF870B   ;DMA-Bytezhler (High Byte)
tt_dmacnt+4  $FFFF870D   ;DMA-Bytezhler (Low Byte)
tt_dmacnt+6  $FFFF870F   ;DMA-Bytezhler (Lowest Byte)
tt_marsd     $FFFF8710   ;Restdatenregister (High-Word)
tt_marsd+2   $FFFF8712   ;Restdatenregister (Low-Word)
tt_dmactl    $FFFF8714   ;Kontrollregister (Word)

; SCSI-Controller 5380 (nur TT!)
s_data     $FFFF8781  ;Inhalt des SCSI-Datenbusses
s_icr      $FFFF8783  ;Initiator-Befehlsregister
s_mode     $FFFF8785  ;Betriebsartenregister
s_tcr      $FFFF8787  ;Target-Befehlsregister
s_idstat   $FFFF8789  ;Busstatusregister
s_dmastat  $FFFF878B  ;Statusregister
s_targrcv  $FFFF878D  ;Eingabedaten vom SCSI-Bus
s_inircv   $FFFF878F  ;Reset Interrupts+Parityfehler/Start Init-DMA-Eingabe

; Soundchip AY-3-8910
giselect  $FFFF8800   ;(W) sound chip register select
giread    $FFFF8800   ;(R) sound chip read-data
giwrite   $FFFF8802   ;(W) sound chip write-data

; DMA-Sound-Subsystem (nur STE,TT)  (13)
sndmactl  $FFFF8900   ;Sound-DMA-Control
sndbashi  $FFFF8902   ;Frame-Start-Adr. High-Byte
sndbasmi  $FFFF8904   ;Frame-Start-Adr. Middle-Byte
sndbaslo  $FFFF8906   ;Frame-Start-Adr. Low-Byte
sndadrhi  $FFFF8908   ;Frame-Adr.-Counter High-Byte
sndadrmi  $FFFF890A   ;Frame-Adr.-Counter Middle-Byte
sndadrlo  $FFFF890C   ;Frame-Adr.-Counter Low-Byte
sndendhi  $FFFF890E   ;Frame-End-Adress High-Byte
sndendmi  $FFFF8910   ;Frame-End-Adress Middle-Byte
sndendlo  $FFFF8912   ;Frame-End-Adress Low-Byte
sndmode   $FFFF8920   ;Sound-Mode-Control
MWDATA    $FFFF8922   ;MICROWIRE Adr.+Data-Bits
MWMASK    $FFFF8924   ;MICROWIRE Mask-Register

; Uhrchip des TT
rtc_rnr   $FFFF8961   ;Registerauswahl im Uhrenchip
rtc_data  $FFFF8963   ;Daten des selekt. Uhrenregisters

; Blitter (nicht im TT!)
Haftone   $FFFF8A00   ;Halftone-RAM, Word 0
HaftoneF  $FFFF8A1E   ;Halftone-RAM, Word 15
Src_Xinc  $FFFF8A20   ;Source-X-Inc.-Reg.
Src_Yinc  $FFFF8A22   ;Source-Y-Inc.-Reg.
Src_addr  $FFFF8A24   ;Source-Address-Reg.
Endmask1  $FFFF8A28   ;Endmask 1
Endmask2  $FFFF8A2A   ;Endmask 2
Endmask3  $FFFF8A2C   ;Endmask 3
Dst_Xinc  $FFFF8A2E   ;Dest.-X-Inc.-Reg.
Dst_Yinc  $FFFF8A30   ;Dest.-Y-Inc.-Reg.
Dst_Adr   $FFFF8A32   ;Dest.-Adress-Reg.
X_Count   $FFFF8A36   ;Worte/Zeile im Bit-Block
Y_Count   $FFFF8A38   ;Zeilen/Bit-Block
HOP       $FFFF8A3A   ;Halftone-OP-Register
OP        $FFFF8A3B   ;Log. OP-Register
Line_Num  $FFFF8A3C   ;Line-Number-Register
Skew      $FFFF8A3D   ;SKEW-Register

; SCC-DMA (nur TT!)
scdmabas    $FFFF8C01   ;DMA-Address-Pointer (Highest Byte)
scdmabas+2  $FFFF8C03   ;DMA-Address-Pointer (High Byte)
scdmabas+4  $FFFF8C05   ;DMA-Address-Pointer (Low Byte)
scdmabas+6  $FFFF8C07   ;DMA-Address-Pointer (Lowest Byte)
scdmacnt    $FFFF8C09   ;DMA-Bytezhler (Highest-Byte)
scdmacnt+2  $FFFF8C0B   ;DMA-Bytezhler (High-Byte)
scdmacnt+4  $FFFF8C0D   ;DMA-Bytezhler (Low-Byte)
scdmacnt+6  $FFFF8C0F   ;DMA-Bytezhler (Lowest-Byte)
scdmarsd    $FFFF8C10   ;Restdatenregister (High-Word)
scdmarsd+2  $FFFF8C12   ;Restdatenregister (Low-Word)
scdmactl    $FFFF8C14   ;Kontrollregister

; SCC Z8530 - Serial Communications Controller
sccctl_a  $FFFF8C81  ;Kanal A - Control-Register
sccdat_a  $FFFF8C83  ;Kanal A - Data-Register
sccctl_b  $FFFF8C85  ;Kanal B - Control-Register
sccctl_b  $FFFF8C87  ;Kanal B - Data-Register

; SCU - System Control Unit (TT/MEGA STE)
sys_mask  $FFFF8E01  ;System Int. Mask-Register
sys_stat  $FFFF8E03  ;System Int. Status-Register
sys_int   $FFFF8E05  ;System Software Int. erzeugen
vme_int   $FFFF8E07  ;VME-Bus_IRQ Level 3 erzeugen
scu_gp1   $FFFF8E09  ;SCU General Purpose Reg.1
scu_gp2   $FFFF8E0B  ;SCU General Purpose Reg.2
vme_mask  $FFFF8E0D  ;VME-Bus Int. Mask-Register
vme_stat  $FFFF8E0F  ;VME-Bus Int. Statur-Register
ste_ctl   $FFFF8E21  ;MEGA STE Cache+Taktctrl.

;Joystickports beim STE
PADDL0    $FFFF9210  ;Position des Paddle 0
PADDL1    $FFFF9212  ;Position des Paddle 1
PADDL2    $FFFF9214  ;Position des Paddle 2
PADDL3    $FFFF9216  ;Position des Paddle 3
XPEN      $FFFF9220  ;X-Position des Lightpens
YPEN      $FFFF9222  ;Y-Position des Lightpens

; 68901 Multifunktionsbaustein des ST/STE/TT (MFP1)
mfp     $FFFFFA00   ;MFP1: mfp base
gpip    $FFFFFA01   ;MFP1: Parallel-Port
aer     $FFFFFA03   ;MFP1: Flankenregister
ddr     $FFFFFA05   ;MFP1: Datenrichtung
iera    $FFFFFA07   ;MFP1: Interrupt Enable A
ierb    $FFFFFA09   ;MFP1: Interrupt Enable A
ipra    $FFFFFA0B   ;MFP1: Interrupt Pending A
iprb    $FFFFFA0D   ;MFP1: Interrupt Pending B
isra    $FFFFFA0F   ;MFP1: Interrupt In-Service A
isrb    $FFFFFA11   ;MFP1: Interrupt In-Service B
imra    $FFFFFA13   ;MFP1: Interrupt Mask A
imrb    $FFFFFA15   ;MFP1: Interrupt mask B
vr      $FFFFFA17   ;MFP1: Vektor-Register
tacr    $FFFFFA19   ;MFP1: Timer A Control
tbcr    $FFFFFA1B   ;MFP1: Timer B Control
tcdcr   $FFFFFA1D   ;MFP1: Timer C & D Control
tadr    $FFFFFA1F   ;MFP1: Timer A Data
tbdr    $FFFFFA21   ;MFP1: Timer B Data
tcdr    $FFFFFA23   ;MFP1: Timer C Data
tddr    $FFFFFA25   ;MFP1: Timer D Data
scr     $FFFFFA27   ;MFP1: Sync Character
ucr     $FFFFFA29   ;MFP1: USART Control
rsr     $FFFFFA2B   ;MFP1: Receiver Status
tsr     $FFFFFA2D   ;MFP1: Transmit Status
udr     $FFFFFA2F   ;MFP1: USART Data

;FPU im MEGA STE
FPstat    $FFFFFA40   ;Response-Register
FPctl     $FFFFFA42   ;Contol-Register
FPsave    $FFFFFA44   ;Save-Register
FPrestor  $FFFFFA46   ;Restore-Register
FPcmd     $FFFFFA4A   ;Command-Register
FPccr     $FFFFFA4E   ;Condition-Code-Register
FPop      $FFFFFA50   ;Operanden-Register
FPselct   $FFFFFA54   ;Register Select
FPiadr    $FFFFFA58   ;Instruction Address

; 68901 Multifunktionsbaustein des TT (MFP2)
mfp_tt    $FFFFFA80   ;MFP2: mfp base
gpip_tt   $FFFFFA81   ;MFP2: Parallel-Port
aer_tt    $FFFFFA83   ;MFP2: Flankenregister
ddr_tt    $FFFFFA85   ;MFP2: Datenrichtung
iera_tt   $FFFFFA87   ;MFP2: Interrupt Enable A
ierb_tt   $FFFFFA89   ;MFP2: Interrupt Enable A
ipra_tt   $FFFFFA8B   ;MFP2: Interrupt Pending A
iprb_tt   $FFFFFA8D   ;MFP2: Interrupt Pending B
isra_tt   $FFFFFA8F   ;MFP2: Interrupt In-Service A
isrb_tt   $FFFFFA91   ;MFP2: Interrupt In-Service B
imra_tt   $FFFFFA93   ;MFP2: Interrupt Mask A
imrb_tt   $FFFFFA95   ;MFP2: Interrupt mask B
vr_tt     $FFFFFA97   ;MFP2: Vektor-Register
tacr_tt   $FFFFFA99   ;MFP2: Timer A Control
tbcr_tt   $FFFFFA9B   ;MFP2: Timer B Control
tcdcr_tt  $FFFFFA9D   ;MFP2: Timer C & D Control
tadr_tt   $FFFFFA9F   ;MFP2: Timer A Data
tbdr_tt   $FFFFFAA1   ;MFP2: Timer B Data
tcdr_tt   $FFFFFAA3   ;MFP2: Timer C Data
tddr_tt   $FFFFFAA5   ;MFP2: Timer D Data
scr_tt    $FFFFFAA7   ;MFP2: Sync Character
ucr_tt    $FFFFFAA9   ;MFP2: USART Control
rsr_tt    $FFFFFAAB   ;MFP2: Receiver Status
tsr_tt    $FFFFFAAD   ;MFP2: Transmit Status
udr_tt    $FFFFFAAF   ;MFP2: USART Data

; Tastatur-ACIA
keyctl   $FFFFFC00   ;ACIA-Statusregister (R)
keyctl   $FFFFFC01   ;ACIA-Steuerregister (W)
keybd    $FFFFFC02   ;ACIA-Data-Register

; Midi-ACIA
midictl  $FFFFFC04   ;ACIA-Statusregister (R) -Steuerregister (W)
midi     $FFFFFC06   ;MIDI-ACIA-Data

; Systemvektoren (Namen sind nicht offiziell)
reset_ssp   $0   ;SSP nach Reset
reset_pc    $4   ;PC nach Reset
bus_error   $8   ;Exception: 2 Bomben
adr_error   $C   ;Exception: 3 Bomben, ungerade Wortadresse
ill_instr   $10  ;Exception: 4 Bomben, ungltiger Maschinenbefehl
divbyzero   $14  ;Division durch Null
chk_excep   $18  ;Exception durch
trapv_exc   $1C  ;Exception durch trapv
priv_err    $20  ;Privilegverletzung
trace_err   $24  ;Trace-Exception
linea_vec   $28  ;Linea-Verktor
linef_vec   $2C  ;Linef-Vektor
spur_inter  $60  ;Suprious Interrupt
autov_int1  $64  ;Autovektor-Interrupt, Level 1, unbenutzt
autov_int2  $68  ;Autovektor-Interrupt, Level 2
                 ;zeigt auf Handler fr Horizontal-Blanks
autov_int3  $6C  ;Autovektor-Interrupt, Level 3, unbenutzt
autov_int4  $70  ;Autovektor-Interrupt, Level 4
                 ;zeigt auf Handler fr Vertikal-Blanks
autov_int5  $74  ;Autovektor-Interrupt, Level 5, unbenutzt
autov_int6  $78  ;Autovektor-Interrupt, Level 6, unbenutzt
autov_int7  $7C  ;Autovektor-Interrupt, Level 7, unbenutzt
trp1vec     $84  ;-> gemdos
trp2vec     $88  ;-> aes/vdi
trp13vec    $B4  ;-> bios
trp14vec    $B8  ;-> xbios
busy_inter  $10  ;ST-MFP-Interrupt 0, Ausl. durch parallele Schnittstelle
dcd_inter   $104 ;ST-MFP-I-1,'Carrier detect' der seriellen Schnittstelle
cts_inter   $108 ;ST-MFP-I-2,'Clear to sent' der seriellen Schnittstelle
gpu_done    $10C ;ST-MFP-I-3,kann vom Blitter benutzt werden (ready)
baud_gen    $110 ;ST-MFP-I-4,Baudratengenerator,nicht benutzt
timer_200   $114 ;ST-MFP-I-5,->Systemtimer-Interrupt
ikbd_inter  $118 ;ST-MFP-I-6,->Handler fr IKDB- und MIDI-Interrupts
fdc_inter   $11C ;ST-MFP-I-7,FDC/ASCI,normalerweise unbelegt
diensi_int  $120 ;ST-MFP-I-8,Display Enable Signal,normalerw. gesperrt
rs232serr   $124 ;ST-MFP-I-9,RS232 Sendefehler
rs232sempty  $128 ;ST-MFP-I-10,RS232 Sendepuffer leer (1 Byte bertragen)
rs232eerr   $12C ;ST-MFP-I-11,RS232 Empfangsfehler
rs232efull  $130 ;ST-MFP-I-12,RS232 Empfangspuffer ist voll (1 Byte)
ring_indic  $138 ;ST-MFP-I-14,Ring Indicator,Signal bei ser angekommen
mono_mon    $13C ;ST-MFP-I-15,Monochrom Monitor Detect,unbenutzt
tt_mfp0     $140 ;TT-MFP-I-0
tt_mfp15    $17C ;TT-MFP-I-15
tt_scc0     $180 ;TT-SCC-I-0
tt_mfp      $1BC ;TT-SCC-I-15

; $300er Systemvariablen im TT030-TOS
proc_lives  $380 ;Magic Number $12345678 fr Gltigkeit der folg. Vektoren
proc_dregs  $384 ;gerettete Register D0-D7
proc_aregs  $3A4 ;gerettete Register A0-A7
proc_enum   $3C4 ;im ersten Byte: Nummer der aufgetretenen Exception
proc_usp    $3C8 ;geretteter USP (User-Stack-Pointer)
proc_stk    $3CC ;obersten 16 Worte des Stacks bei Exception

; BIOS Variables
etv_timer   $400   ;vector for timer interrupt chain
etv_critic  $404   ;vector for critical error chain
etv_term    $408   ;vector for process terminate
etv_xtra    $40C   ;5 reserved vectors
memvalid    $420   ;indicates system state on RESET (MagNmb $752019F3)
memcntrl    $424   ;mem controller config nibble ($FFFF8001)
resvalid    $426   ;validates 'resvector' (=$31415926 -> resvector)
resvector   $42A   ;[RESET] bailout vector
phystop     $42E   ;physical top of RAM
_membot     $432   ;bottom of available memory;
_memtop     $436   ;top of available memory;
memval2     $43A   ;validates 'memcntrl' and 'memconf' (MagNmb $237698AA)
flock       $43E   ;.w floppy disk/FIFO lock variable (<>0:no DMA)
seekrate    $440   ;.w default floppy seek rate (0:6,1:12,2:2,3:3 ms)
_timr_ms    $442   ;.w system timer calibration (in ms)
_fverify    $444   ;.w nonzero verify on floppy write
_bootdev    $446   ;.w default boot device
palmode     $448   ;.w 0:NTSC (60Hz), <>0:PAL(50Hz)
defshiftmd  $44A   ;.b default video rez
sshiftmd    $44C   ;.b shiftermode (ST:0=L,1=M,2=H; TT:4=M,6:H,7:L)
_v_bas_ad   $44E   ;pointer to base of screen memory
vblsem      $452   ;.w semaphore to enforce mutex in vbl
nvbls       $454   ;.w number of deferred vectors in _vblqueue
_vblqueue   $456   ;pointer to vector of deferred vfuncs
colorptr    $45A   ;pointer to palette setup (or NULL)
screenpt    $45E   ;pointer to screen base setup (|NULL)
_vbclock    $462   ;count of vblank interrupts
_frclock    $466   ;count of unblocked vblanks (not blocked by vblsem)
hdv_init    $46A   ;hard disk initialization
swv_vec     $46E   ;video change-resolution bailout
hdv_bpb     $472   ;disk "get BPB"
hdv_rw      $476   ;disk read/write
hdv_boot    $47A   ;disk "get boot sector"
hdv_mediach  $47E  ;disk media change detect
_cmdload    $482   ;.w nonzero load COMMAND.PRG from boot
conterm     $484   ;.b console/vt52 bitSwitches, 0:keyclick, 1:keyrepeat
                   ;2:CTRL-G->Ping!, 3:kbshift() in bits 24..31 by bconin()
trp14ret    $486   ;saved return addr for _trap14 (nonused)
criticret   $48A   ;saved return addr for _critic (nonused)
themd       $48E   ;memory descriptor (MD)
themdmd     $49E   ;(more MD)
savptr      $4A2   ;pointer to register save area
_nflops     $4A6   ;.w number of disks attached (0,1,2)
constate    $4A8   ;state of conout() parser
save_row    $4AC   ;.w saved row# for cursor X-Y addressing
sav_context  $4AE  ;pointer to saved processor context
_bufl       $4B2   ;2 buffer-list headers
_hz_200     $4BA   ;200hz raw system timer tick
the_env     $4BE   ;-> standard-environment-strings
_drvbits    $4C2   ;bit vector of "live" block devices
_drvbits.w  $4C4   ;bit vector of "live" block devices (word)
_dskbufp    $4C6   ;pointer to common disk buffer
_autopath   $4CA   ;pointer to autoexec path (or NULL)
_vbl_list   $4CE   ;initial _vblqueue
_prt_cnt    $4EE   ;.w screen-dump-state: -1:norm, 0:begin, >0:end ->-1
_prtabt     $4F0   ;.w printer abort flag
_sysbase    $4F2   ;-> base of OS
_shell_p    $4F6   ;-> global shell info
end_os      $4FA   ;-> end of OS memory usage
exec_os     $4FE   ;-> address of shell to exec on startup
scr_dump    $502   ;-> screen dump code
prv_lsto    $506   ;-> _lstostat()
prv_lst     $50A   ;-> _lstout()
prv_auxo    $50E   ;-> _auxostat()
prv_aux     $512   ;-> _auxout()
pun_ptr     $516   ;if AHDI -> pun_info
memval3     $51A   ;if MagNmb $5555AAAA ->RESET
xconstat    $51E   ;8 Zeiger auf Eingabestatus-Routinen
xconin      $53E   ;8 Zeiger auf Eingabe-Routinen
xcostat     $55E   ;8 Zeiger auf Ausgabestatus-Routinen
xconout     $57E   ;8 Zeiger auf Ausgabe-Routinen
_longframe  $59E   ;.w wenn <>0 -> kein 68000er
_p_cookies  $5A0   ;-> Cookie Jar
ramtop      $5A4   ;Zeiger auf das Ende des Fast-Ram
ramvalid    $5A8   ;MagNmb $1357BD13 = ramtop ist Ok
bell_hook   $5AC   ;->Routine fr 'Ping'-Gerusch (ab STE)
kcl_hook    $5B0   ;->Routine fr Tastenklick-Gerusch (ab STE)
END
