con {{ --------------------------------------------------------------------------------------------------------- Hive-Computer-Projekt Name : TRIOS-Basic Chip : Regnatix-Code Version : 2.108 Dateien : Beschreibung : Importmodul für Text-Dateien ->importiert ein, als Textdatei vorliegendes Basic-Programm von SD-Karte in den Speicher Notes: 01-05-2014 -erste funktionierende Version -um die Sache optisch besser zu gestalten, wird noch ein Hinweisfenster mit dem System-Tile-Font erstellt -6761 Longs frei 11-05-2014 -Laderoutine durch Sicherheitsabfrage ergänzt, es wird überprüft, ob es sich bei der zu ladenden Datei um eine Textdatei handelt -überflüssige Variablen entfernt -PI und Wurzelzeichen in der Abfrage gültiger Zeichen hinzugefügt -6798 Longs frei }} obj ios :"reg-ios-bas" gc :"glob-con" con _CLKMODE = XTAL1 + PLL16X _XINFREQ = 5_000_000 version = 2.108 fEof = $FF ' dateiende-kennung linelen = 85 ' Maximum input line length quote = 34 ' Double quote caseBit = !32 ' Uppercase/Lowercase bit point = 46 ' point STR_LEN = 34 ' Stringlänge von Stringvariablen in Arrays FIELD_LEN = 512 ' Array-Feldgröße (max Feldgröße 8x8x8 -> Dim a(7,7,7) DIR_ENTRY = 546 ' max.Anzahl mit DIR-Befehl gefundener Einträge STR_MAX = 41 ' maximale Stringlänge für Printausgaben und font DPL_CNT = 1200 ' Map-und Bildschirm-Shadow-Speicher-Zähler (40Spalten*30Zeilen=1200-Tiles) '*****************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 '....$667FF ' hier beginnt der Tile-Speicher fuer 14 Tiledateien SYS_FONT = $66800 '....$693FF ' ab hier liegt der System-Font 11kb MOUSE_RAM = $69400 '....$6943F ' User-Mouse-Pointer 64byte DIR_RAM = $69440 '....$6AFFF ' Puffer fuer Dateinamen 7103Bytes fuer 546 Dateinamen VAR_RAM = $6B000 '....$77FFF ' Variablen-Speicher fuer Array-Variablen a[0...511]-z[0...511] (13312 moegliche Variablen) MAP_RAM = $78000 '....$79C27 ' Shadow-Display (Pseudo-Kopie des Bildschirmspeichers) 'FREI_RAM $79C28 .... $79FFF ' freier RAM-Bereich 984 Bytes auch für Shadow-Display DATA_RAM = $7A000 '.... $7DFFF ' 16kB DATA-Speicher BUTT_RAM = $7E000 '.... $7E4FF ' ca.1kB Button Puffer WTILE_RAM= $7E500 '.... $7E5FF ' Win-Tile Puffer hier können die Tiles, aus denen die Fenster gebaut werden geändert werden FUNC_RAM = $7E600 '.... $7EFFF ' Funktions-Speicher, hier werden die selbstdefinierten Funktionen gespeichert ERROR_RAM = $7F000 '....$7FAFF ' ERROR-Texte DIM_VAR = $7FB00 '....$7FBFF ' Variablen-Array-Dimensionstabelle DIM_STR = $7FC00 '....$7FCFF ' String-Array-Dimensionstabelle BACK_RAM = $7FD00 '....$7FDFF ' BACKUP RAM-Bereich 256 Bytes für Ladebalken 'Frei-Ram = $7FE00 ....$7FEFF ' noch freier Bereich 256 Bytes PMARK_RAM = $7FFF0 ' Flag für Reclaim Wert= 161 BMARK_RAM = $7FFF1 ' Flag für Basic-Warm-Start Wert= 121 SMARK_RAM = $7FFF2 ' Flag für übergebenen Startparameter Wert = 222 STR_ARRAY = $80000 '....$EE7FF ' Stringarray-Speicher USER_RAM = $EE800 '....$FFEFF ' Freier Ram-Bereich, für Anwender, Backup-Funktion usw. ADM_SPEC = gc#A_FAT|gc#A_LDR|gc#A_SID|gc#A_LAN|gc#A_RTC|gc#A_PLX'%00000000_00000000_00000000_11110011 '***************** Button-Anzahl ************************************************ BUTTON_CNT = 32 'Anzahl der möglichen Button '******************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***************************************************** ENTF_KEY = 186 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 MIN_EXP = -999999 MAX_EXP = 999999 var long tp, nextlineloc 'Kommandozeile,Zeilenadresse long speicheranfang,speicherende 'Startadresse-und Endadresse des Basic-Programms byte tline[linelen] 'Eingabezeilen-Puffer dat tok0 byte "IF",0 '128 getestet tok1 byte "THEN",0 '129 getestet tok110 byte "ELSE",0 '238 getestet tok2 byte "INPUT",0 ' INPUT {"";} {,} '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 , listet von bis zeilennummer 137 getestet NICHT AENDERN Funktionstaste!! tok10 byte "RUN", 0 '138 getestet NICHT AENDERN Funktionstaste!! tok26 byte "FOR", 0 ' FOR = TO 154 getestet tok27 byte "TO", 0 '155 getestet tok28 byte "STEP", 0 ' optional STEP 156 getestet tok29 byte "NEXT", 0 ' NEXT 157 getestet tok52 byte "END", 0 ' 180 getestet tok53 byte "PAUSE", 0 ' PAUSE