434 lines
28 KiB
Plaintext
434 lines
28 KiB
Plaintext
|
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)
|