con'********************************** Hilfesystem *******************************************************************************************************************************
_CLKMODE     = XTAL1 + PLL16X
_XINFREQ     = 5_000_000
'*****************Speicherbereiche**********************************************
   maxstack  = 20                      ' Maximum stack tiefe fuer gosub
   userPtr   = $1FFFF                  ' Ende Programmspeicher  128kb
   TMP_RAM   = $20000 '....$3FFFF      ' Bearbeitungsspeicher   128kb (fuer die Zeileneditierung bzw.Einfuegung von Zeilen)
   TILE_RAM  = $40000 '....$67FFF      ' hier beginnt der Tile-Speicher fuer 10 Tiledateien
   SYS_FONT  = $66800 '....$693FF      ' ab hier liegt der System-Font 16kb
   MOUSE_RAM = $69400 '....$6943F      ' User-Mouse-Pointer 64byte
   DIR_RAM   = $69440 '....$6EFFF      ' Puffer fuer Dateinamen 16kb fuer 1255 Dateinamen
   VAR_RAM   = $6F000 '....$757FF      ' Variablen-Speicher fuer Array-Variablen a[0...255]-z[0...255] (6656 moegliche Variablen)
   STR_START = $75800 '....$7EFFF      ' ab hier werden die strings abgelegt 26x150 Zeichen
   ERROR_RAM = $7F000 '....$7FF00      ' ERROR-Texte 'freier eRam-Bereich
   PMARK_RAM = $7FFF1                  ' Flag für Reclaim
   BMARK_RAM = $7FFF2                  ' Flag für Basic-Warm-Start
   MAP_RAM   = $80000 '....$8FFFF      ' ab hier werden MAP-Daten abgelegt 64kb
'*****************SID-COG-Wellenformen*******************************************
   sid_triangle   = 16
   sid_saw        = 32
   sid_square     = 64
   sid_noise      = 128

'******************BUS-Signale***************************************************
   #19,    REG_RAM1,REG_RAM2
   #24,    HBEAT                                           'front-led
           BUSCLK                                          'bustakt
           BUS_WR                                          '/wr - schreibsignal
           BUS_HS '                                        '/hs - quittungssignal
   DB_IN           = %00000111_11111111_11111111_00000000  'maske: dbus-eingabe
   DB_OUT          = %00000111_11111111_11111111_11111111  'maske: dbus-ausgabe

'******************Farben ********************************************************
  #$FC, Light_Grey, #$A8, Grey, #$54, Dark_Grey
  #$C0, Light_Red, #$80, Red, #$40, Dark_Red
  #$30, Light_Green, #$20, Green, #$10, Dark_Green
  #$1F, Light_Blue, #$09, Blue, #$04, Dark_Blue
  #$F0, Light_Orange, #$E6, Orange, #$92, Dark_Orange
  #$CC, Light_Purple, #$88, Purple, #$44, Dark_Purple
  #$3C, Light_Teal, #$28, Teal, #$14, Dark_Teal
  #$FF, White, #$00, Black

'*****************Tastencodes*****************************************************
   bspKey    = $C8                     ' PS/2 keyboard backspace key
   breakKey  = $CB                     ' PS/2 keyboard escape key
   fReturn   = 13
   fLinefeed = 10
   KEY_LEFT  = 2
   KEY_RIGHT = 3
   KEY_UP    = 4
   KEY_DOWN  = 5
   KEY_PGUP  = 160
   KEY_PGDN  = 162
var
   byte xtiles[11]                                                            'xtiles fuer tilenr        '
   byte ytiles[11]                                                            'ytiles fuer tilenr
   byte str0                                                                  'String fuer Fontfunktion in Fenstern
   byte aktuellestileset                                                      'nummer des aktuellen tilesets
   word workdir                                                               'aktuelles Verzeichnis
   byte font[150]                                                                  'Stringpuffer fuer Font-Funktion
   long startadresse[11]                                                      'startadresse des tiles im eram
   long basicmarker                                                           'Dir-Marker Basic-Verzeichnis
obj ios   : "reg-ios-64"
dat
   tok0  byte "IF",0                                                                       '128    getestet
   tok1  byte "THEN",0                                                                     '129    getestet
   tok110 byte "ELSE",0                                                                    '238    getestet
   tok2  byte "INPUT",0    ' INPUT {"<prompt>";} <var> {,<var>}                            '130    getestet
   tok3  byte "PRINT",0    ' PRINT                                                         '131    getestet
   tok88 byte "ON",0       ' ON GOSUB GOTO                                                  216    getestet
   tok4  byte "GOTO",0                                                                     '132    getestet
   tok5  byte "GOSUB", 0                                                                   '133    getestet
   tok6  byte "RETURN", 0                                                                  '134    getestet
   tok7  byte "REM", 0                                                                     '135    getestet
   tok8  byte "NEW", 0                                                                     '136    getestet
   tok9  byte "LIST", 0     'list <expr>,<expr> listet von bis zeilennummer                 137    getestet      NICHT AENDERN Funktionstaste!!
   tok10 byte "RUN", 0                                                                     '138    getestet      NICHT AENDERN Funktionstaste!!
   tok26 byte "FOR", 0      ' FOR <var> = <expr> TO <expr>                                  154    getestet
   tok27 byte "TO", 0                                                                      '155    getestet
   tok28 byte "STEP", 0     ' optional STEP <expr>                                          156    getestet
   tok29 byte "NEXT", 0     ' NEXT <var>                                                    157    getestet
   tok52 byte "END", 0      '                                                               180    getestet
   tok53 byte "PAUSE", 0    ' PAUSE <time ms> {,<time us>}                                  181    getestet
   tok58 byte "DUMP", 0     ' DUMP <startadress>,<anzahl zeilen>,<0..1> (0 Hram,1 Eram)     186    getestet
   tok86 byte "BYE",0       ' Basic beenden                                                 214    getestet      NICHT AENDERN Funktionstaste!!
   tok84 byte "INKEY",0     'Auf Tastendruck warten Rueckgabe ascii wert                    212    getestet
   tok85 byte "CLEAR",0     'alle Variablen loeschen                                        213    getestet
   tok87 byte "PEEK",0      'Byte aus Speicher lesen momentan nur eram                      215    getestet -ok
   tok80 byte "POKE",0      'Byte in Speicher schreiben momentan nur eram                   208    getestet -ok
   tok89 byte "BEEP",0      'beep oder beep <expr> piepser in versch.Tonhoehen              217    getestet
   tok92 byte "EDIT",0      'Zeile editieren                                                220    getestet

'************************** Dateioperationen **************************************************************
   tok12 byte "OPEN", 0     ' OPEN " <file> ",<mode>                                        140    getestet
   tok13 byte "FREAD", 0     ' FREAD <var> {,<var>}                                         141    getestet -ok
   tok14 byte "WRITE", 0    ' WRITE <"text"> :                                              142    getestet
   tok15 byte "CLOSE", 0    ' CLOSE                                                         143    getestet
   tok16 byte "DEL", 0      ' DELETE " <file> "                                             144    getestet
   tok17 byte "REN", 0      ' RENAME " <file> "," <file> "                                  145    getestet
   tok102 byte "CHDIR",0    ' Verzeichnis wechseln                                          230    getestet      kann nicht CD heissen, kollidiert sonst mit Hex-Zahlen-Auswertung in getanynumber
   tok18 byte "DIR", 0      ' dir anzeige                                                   146    getestet      NICHT AENDERN Funktionstaste!!
   tok19 byte "SAVE", 0     ' SAVE or SAVE [<expr>] or SAVE "<file>"                        147    getestet      NICHT AENDERN Funktionstaste!!
   tok20 byte "LOAD", 0     ' LOAD or LOAD [<expr>] or LOAD "<file>" ,{<expr>}              148    getestet      NICHT AENDERN Funktionstaste!!
   tok54 byte "FILE", 0     ' FILE wert aus datei lesen oder in Datei schreiben             182    getestet
   tok24  byte "GFILE",0    ' GETFILE rueckgabe der mit Dir gefundenen Dateien ,Dateinamen  152    getestet
   tok78 byte "MKDIR",0     ' Verzeichnis erstellen                                         206    getestet
   tok112 byte "GATTR",0    ' Dateiattribute auslesen                                       240    getestet
   tok90 byte "BLOAD",0      'Bin Datei laden                                               218    getestet -ok
   tok57 byte "MKFILE", 0    'Datei erzeugen                                                185    getestet -ok

'************************* logische Operatoren **********************************************************************
   tok21 byte "NOT" ,0      ' NOT <logical>                                                '139    getestet
   tok22 byte "AND" ,0      ' <logical> AND <logical>                                      '150    getestet
   tok23 byte "OR", 0       ' <logical> OR <logical>                                       '151    getestet
'************************* mathematische Funktionen *****************************************************************
   tok106 byte "FN",0       'Mathematische funktionen                                       234    getestet
                            ' ^,!,//, Sin,Cos,Tan,ArcTan,Ln,e,EXP,Round,Min,Max,Log
                            'Wurzel, Fraction,Int,Floor,Ceil,SHL;SHR;REV;ROR;ROL;ODER;XODER,UND
   tok11 byte "RND", 0      'Zufallszahl von x                                             '139    getestet

'******************************** Mouse Befehle *********************************************************************
   tok93 byte "MGET",0      'Mouse-xyz-position                                           ' 221    getestet -ok
   tok97 byte "MB",0        'Mouse-Button                                                 ' 225    getestet -ok
   tok63 byte "MOUSE",0     'Mouse on off  Mouse on,farbe                                 ' 191    getestet
   tok96 byte "MBOUND",0    'Mouse-Bereich definieren                                     ' 224    getestet

'***********************SID-Synth-Befehle****************************************************************************
   tok30 byte "NOTE", 0       'Note an                                                      158    getestet -ok
   tok31 byte "NTOFF", 0      'Note aus                                                     159    getestet
   tok32 byte "VOL", 0        'Vol 0-15 Lautstaerke einstellen                              160    getestet
   tok33 byte "PLAY", 0       'Datei abspielen                                              161    getestet
   tok41 byte "ADSR", 0       'Huellkurve                                                   169    getestet
   tok42 byte "WAVE", 0       'WAVEFORM auswaehlen                                          170    getestet
   tok43 byte "FLT", 0        'FILTERTYP  lp,bp,hp                                          171    getestet
   tok44 byte "FMASK", 0      'Filtermaske ch1,ch2,ch3                                      172    getestet
   tok45 byte "RGMOD", 0      'Ringmodulator                                                173    getestet
   tok46 byte "CUT", 0        'Cutoff frequenz, Resonanz Frequenz                           174    getestet -ok
   tok72 byte "PWM",0         'PWM wert                                                     200    getestet
   tok73 byte "SYNC",0        'Oszillatorsynchronisation                                    201    getestet
   tok75 byte "GDMP",0        'dmp-playerposition
                              'abfragen                                                     203    getestet

'************************* Bildschirmbefehle ***********************************************************************
   tok59 byte "COL",0       'Farbe setzen  1,2,3 Vordergrund,hintergrund,Cursor             187    getestet
   tok60 byte "CLS",0       'Bildschirm loeschen cursor oberste Zeile Pos1                  188    getestet -ok
   tok62 byte "POS",0       'Cursor an Pos x,y setzen -> Locate(x,y)                        190    getestet
   tok64 byte "PLOT",0      'Pixel setzen                                                   192    getestet
   tok66 byte "SCRDN",0     'n Zeilen runterscrollen -> Scrdown(n)                          194    getestet
   tok67 byte "SCRUP",0     'n Zeilen hochscrollen   -> Scrup(n)                            195    getestet
   tok68 byte "CROFF",0     'Cursor ausschalten                                             196    getestet
   tok69 byte "CRON",0      'Cursor einschalten                                             197    getestet
   tok39 byte "WIN", 0      'Fenster C,T,S,R erstellen                                      167    getestet-ok
   tok49 byte "FREE",0      'freien Speicher anzeigen                                       177    getestet-ok
   tok74 byte "BUTTON",0    'Button erzeugen                                                202    getestet-ok
   tok98 byte "FRAME",0     'Rahmen zeichnen                                                226    getestet
   tok99 byte "WSET",0      'in ein zuvor definiertes Fenster springen                      227    getestet
   tok101 byte "SCROLL",0   'Textzeile nach links scrollen                                  229    getestet
   tok81 byte "CIRC",0      'Kreis zeichnen                                                 209    getestet
   tok82 byte "LINE",0      'Linie zeichnen                                                 210    getestet
   tok103 byte "BOX",0      '2dbox zeichnen                                                 231    getestet
   tok118 byte "GETX",0     'Cursor X-Position lesen                                        246    getestet
   tok119 byte "GETY",0     'Cursor Y-Position lesen                                        247    getestet
   tok122 byte "HEX",0      'Ausgabe von Hex-Zahlen mit Print                           '   250    getestet
   tok120 byte "BIN",0      'Ausgabe von Binärzahlen mit Print                          '   248    getestet
   tok125 byte "VER",0      'Versionsanzeige                                            '   253    getestet-ok

'************************* Datum und Zeit funktionen ***************************************************************
   tok70 byte "STIME",0    'Stunde:Minute:Sekunde setzen ->                                 198    getestet
   tok71 byte "SDATE",0    'Datum setzen                                                    199    getestet-ok
   tok76 byte "GTIME",0    'Zeit   abfragen                                                 204    getestet
   tok77 byte "GDATE",0    'Datum abfragen                                                  205    getestet
   tok65 byte "TIME",0     'Zeit anzeigen                                                   193    getestet
   tok111 byte "TIMER",0   'Timer-Funktionen  set,read,clear?,entry,delete                  239    getestet

'**************************** STRINGFUNKTIONEN ********************************************************************

   tok35 byte "STR$", 0     'l,m,r left, mid, right                                         163    getestet
   tok36 byte "COMP$", 0    'Stringvergleich                                                164    getestet
   tok37 byte "LEN", 0      'Stringlänge zurueckgeben                                       165    getestet
   tok48 byte "CHR$", 0     'CHR$(expr)                                                     176    getestet
   tok105 byte "ASC",0      'ASCII-Wert einer Stringvariablen zurueckgeben                  233    getestet
   tok56  byte "TAB", 0     'Tabulator setzen                                               184    getestet
   tok113 byte "VAL",0      'String in FLOAT-Zahlenwert umwandeln                           241    getestet
   tok108 byte "STRING$",0   'Zeichenwiederholung                                           236    getestet
   tok109 byte "DIM",0       'Stringarray dimensionieren                                    237    getestet
   tok116 byte "INSTR",0    'Zeichenkette in einer anderen Zeichenkette suchen            ' 244    getestet

'**************************** Grafik-Tile-Befehle *****************************************************************
   tok34  byte "TLOAD", 0    'Tileset in eram laden                                         162    getestet
   tok51  byte "TILE", 0     'Tileblock aus aktuellem Tileset anzeigen                      179    getestet
   tok50  byte "STILE", 0    'tileset in bella laden                                        178    getestet
   tok100 byte "TPIC",0      'komplettes Tileset als Bild anzeigen                          228    getestet
   tok104 byte "FONT",0      'Text mit aktuellem Tileset als Font ausgeben                  232    getestet
   tok25  byte "MAP", 0      'MAP-Befehle L=load,S=Save,D=Display,W=Write in Ram          ' 153    getestet
   tok91 byte "PLAYER",0     'Spielerfigur-Parameter p,k,g(parameter,Keys,collision,get)    219    getestet-ok
   tok114 byte "PLAYXY",0    'Spielerbewegung                                               242    getestet-ok
   tok121 byte "SPRITE",0    'Sprite-Parameter p, m, s(parameter, move,speed,usw)           249    getestet-ok

'**************************** Funktionen der seriellen Schnittstelle **********************************************
   tok115 byte "COM",0      'serielle Schnittstelle öffnen  / schliessen                    243    getestet

'************************ Befehle in der Testphase ****************************************************************
   tok123 byte "BACKUP", 0   'Bildschirmbereich sichern                                  '  251    im Test-ok
   tok124 byte "RECOVER",0   'Bildschirmbereich restaurieren                             '  252    im Test-ok
   tok117 byte "XBUS",0      'direkte Bus-Kommunikation zu den Props                        245    im Test-ok
   tok38 byte "READ", 0      'Data Lesen                                                   '166    im Test-ok
   tok40 byte "DATA", 0      'Data-Anweisung                                               '168    im Test-ok
   tok47 byte "RESTORE", 0   'Data-Zeiger zurücksetzen                                      175    im Test-ok
   tok83 byte "FUNC",0       'mathematische Benutzerfunktionen                              211    im Test-ok
   tok61 byte "RENUM",0      'Renumberfunktion                                              189    im Test
'******************************************************************************************************************
'************************ Port-Funktionen *************************************************************************
   tok79 byte "PORT",0       ' Port-Funktionen      Port s,i,o,p                            207    getestet-ok
   tok55 byte "JOY",0        ' Joystick abfragen für 2 Joysticks                            183    getestet-ok
'************************ ende Basic-Befehle **********************************************************************

'******************************* freie Befehle für Erweiterungen **************************************************
   tok94 byte "BEFB",0                                                                    ' 222
   tok95 byte "BEFC",0                                                                    ' 223
   tok107 byte"BEFF",0      '                                                               235
   tok126 byte"BEFG",0                                                                     '254
'        ---------------------------- Mehr Befehle sind nicht möglich --------------------------
'******************************************************************************************************************

   toks  word @tok0, @tok1, @tok2, @tok3, @tok4, @tok5, @tok6, @tok7
         word @tok8, @tok9, @tok10, @tok11, @tok12, @tok13, @tok14, @tok15
         word @tok16, @tok17, @tok18, @tok19, @tok20, @tok21, @tok22, @tok23
         word @tok24, @tok25, @tok26, @tok27, @tok28, @tok29, @tok30, @tok31
         word @tok32, @tok33, @tok34, @tok35, @tok36, @tok37, @tok38, @tok39
         word @tok40, @tok41, @tok42, @tok43, @tok44, @tok45, @tok46, @tok47
         word @tok48, @tok49, @tok50, @tok51, @tok52, @tok53, @tok54, @tok55
         word @tok56, @tok57, @tok58, @tok59, @tok60, @tok61, @tok62, @tok63
         word @tok64, @tok65, @tok66, @tok67, @tok68, @tok69, @tok70, @tok71
         word @tok72, @tok73, @tok74, @tok75, @tok76, @tok77, @tok78, @tok79
         word @tok80, @tok81, @tok82, @tok83, @tok84, @tok85, @tok86, @tok87
         word @tok88, @tok89, @tok90, @tok91, @tok92, @tok93', @tok94, @tok95
         word @tok96, @tok97, @tok98, @tok99, @tok100, @tok101, @tok102,@tok103
         word @tok104, @tok105, @tok106,{ @tok107,} @tok108, @tok109, @tok110
         word @tok111, @tok112, @tok113, @tok114, @tok115, @tok116, @tok117
         word @tok118, @tok119, @tok120, @tok121, @tok122, @tok123, @tok124
         word @tok125', @tok126

   tokx  word


   tile          byte "Tile",0               'tile-Verzeichnis
   help          byte "Help",0               'Hilfeverzeichnis
'   Status        byte "F1HELP F2LOAD F3SAVE F4DIR F5RUN F6LIST",0'
'   adm           byte "Bas.adm",0
   bel           byte "Bel.sys",0
   sysfont       byte "sysfont.dat",0                               'system-font, dieses Tileset ist nur halb so gross (16x8 Tiles) um beim Laden Zeit zu sparen
   basic         byte "basic.bin",0
   root          byte "..",0
   bas           byte "basic",0                                      'basic verzeichnis

pub hilfe | key,kapitelptr,a,e,end,pf,epf,seite

    ios.start
    basicmarker:=get_dirmarker
    mount
    sdset(@help)                                              'ins help verzeichnis wechseln
    win
    kapitelptr:=0
    a:=0
    e:=25'11
    end:=((@tokx - @toks) / 2)-1                      'Anzahl token
    pf:=2                                             'oberste Pfeilposition
    epf:=27                                           'unterste Pfeilposition
    loadtile                                       'systemfont laden
    seite:=1
    liste(a,e,seite)                                  'Befehlsliste ausgeben
          repeat
              key:=ios.key

                   if key==KEY_UP
                          kapitelptr-=1
                          if kapitelptr<a
                             kapitelptr:=a
                          pf-=1'2
                          if pf=<2
                             pf:=2
                          pfeil(pf,pf+1)'2)
                   elseif key==KEY_DOWN
                          kapitelptr+=1
                          if kapitelptr>end
                             kapitelptr:=end
                          if kapitelptr>a+25'11
                             kapitelptr:=e
                          pf+=1'2
                          if pf=>epf
                             pf:=epf
                          pfeil(pf,pf-1)'2)
                   elseif key==KEY_PGUP  or key==KEY_LEFT             'seite hoch
                          ios.printcls
                          e:=a-1
                          a:=e-25'11
                          if a<0
                             a:=0
                          if e<25'11
                             e:=25'11
                          seite--
                          if seite<1
                             seite:=1
                          liste(a,e,seite)
                          kapitelptr:=a
                          pf:=2
                          epf:=27

                   elseif key==KEY_PGDN or key==KEY_RIGHT             'seite runter
                          ios.printcls
                          if e+25>end'11 >end
                             a:=e+1
                             seite++
                             if seite>(end+26)/26
                                seite:=(end+26)/26

                             liste(a,end,seite)
                             pf:=2
                             epf:=end-a+2
                          else
                             a:=e+1
                             e:=a+25'11
                             seite++
                             liste(a,e,seite)
                             pf:=2
                             epf:=27
                          kapitelptr:=a
                   elseif key==13               'auswahl Kapitel mit return
                          kapitelanzeige(kapitelptr)
                   elseif key==27               'hilfe beenden
                          ios.printwindow(0)
                          ios.printchar(12)
                          ios.setpos(6,8)
                          ios.Print(string("Kehre zurueck zu Basic..."))
                          ios.setpos(8,7)
                          ios.print(string("Einen kleinen Moment bitte!"))
                          quit

activate_dirmarker(basicmarker)
'ios.sdchdir(@root)
'ios.sdchdir(@bas)
ios.sdopen("r",@basic)
ios.ldbin(@basic)
close
ios.printcursorrate(3)
ios.stop
pri win
    ios.printwindow(0)
    ios.printBoxSize(0,0, 0, 29, 39)
    ios.printBoxColor(0,0,30,0)
    ios.printchar(12)                    'cls
    ios.printcursorrate(0)
    ios.display3Dframe(12, 45, 0, 0, 27, 29, 39)
    ios.printBoxColor(6,12,45,0 )'schwarz auf weiss
    ios.printBoxSize(6,1, 28, 2, 38)
    printfont(string("*BEFEHLE*"),$f0,$80,0,29,0)
    ios.printBoxColor(6,12,45,0 )
    ios.printBoxSize(6,3, 28, 28, 38)
pri kapitelanzeige(ptr) |i,c,adr,marker,x,y
    i:=8
    adr:=3
    ios.display3Dbox(12, 45, 0, 0, 0, 29, 26)
    ios.os_error(ios.sdopen("R",@@toks[ptr]))                 'datei öffnen
    x:=1
    y:=1
      repeat
          c:=ios.sdgetc

          if x==25 or c==10                                   'zeilenumbruch bei spalte 25
             x:=1
             y+=1
          if c==10 or c==13                                   'return oder linefeed nicht als zeichen anzeigen
             next
          if c>96
             c-=32
          ios.displayTile(c,45,0,0,y,x)                       'text mit systemfont anzeigen
          x++

      until ios.sdeof                                         'ausgabe bis eof
ios.sdclose

pri pfeil(x,xx)
    printfont(string("<-"),45,0,0,37,x)'ios.displaystring(string("<-"),1,45,x,37)
    printfont(string("  "),45,0,0,37,xx)'ios.displaystring(string("  "),1,45,xx,37)
pri liste(a,e,seite) | n,i,len
    n:=2
    seite+=48
    repeat i from a to e
                printfont(@@toks[i],45,0,0,28,n)                'verfuegbare Befehle anzeigen
                len:=strsize(@@toks[i])
                printfont(String("    "),45,0,0,28+len,n)
                n++'=2
                printfont(string("<-"),45,0,0,37,2)
                ios.displayTile(seite,45,0,0,28,33)

pri loadtile|c,adress,anzahl            'tileset aus eram in bella laden


    ios.loadtilebuffer(SYS_FONT,2816)  'laden

pri printfont(str,a,b,c,d,e)|f,n

    repeat strsize(str)
         f:= byte[str++]
         if d>39                            'wenn Bildschirmrand erreicht, neue Zeile
            d:=0
            e++
         if f>96
            f-=32
         ios.displayTile(f,a,b,c,e,d)       'einzelnes Tile anzeigen   ('displayTile(tnr,pcol,scol,tcol, row, column))

         d++

pri close
'   sdset(0)     'ins root
   ios.sdclose
   ios.sdunmount
PRI mount
     'playerstatus
     ios.sdmount
     activate_dirmarker(basicmarker)
pri sdset(str)                                         'Verzeichniswechsel
    ios.sdchdir(str)
    ios.sddmset(str)
PRI activate_dirmarker(mark)                       'USER-Marker setzen

     ios.sddmput(ios#DM_USER,mark)                  'usermarker wieder in administra setzen
     ios.sddmact(ios#DM_USER)                      'u-marker aktivieren

PRI get_dirmarker:dm                                'USER-Marker lesen

    ios.sddmset(ios#DM_USER)
    dm:=ios.sddmget(ios#DM_USER)
