329 lines
16 KiB
Plaintext
329 lines
16 KiB
Plaintext
|
{{
|
||
|
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||
|
│ Autor: Reinhard Zielinski │
|
||
|
│ Copyright (c) 2013 Reinhard Zielinski │
|
||
|
│ See end of file for terms of use. │
|
||
|
│ Die Nutzungsbedingungen befinden sich am Ende der Datei │
|
||
|
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||
|
|
||
|
Informationen : hive-project.de
|
||
|
Kontakt : zille09@gmail.com
|
||
|
System : TriOS
|
||
|
Name : PLEXUS - Zentrale Kommunikationseinheit der Borg
|
||
|
Chip : Regnatix
|
||
|
Typ : Loader-Programm für Plexus - TRIOS-Version
|
||
|
Version : 01
|
||
|
Subversion : 01-TRIOS
|
||
|
|
||
|
Funktion : "Startdatei für PLEXUS - unter TRIOS lauffähig, startet den Administra- und Bellatrixcode von SD-Karte
|
||
|
|
||
|
Logbuch :
|
||
|
'############################################# Version 1.00 #################################################################################################################
|
||
|
04-08-2013 : -Erster Versuch der Herauslösung der Startfunktionen aus der eigentlichen Plexus-Shell, es werden alle Startparameter in den E-Ram geladen und dann
|
||
|
die eigentliche Shell gestartet
|
||
|
-Außerdem wird das Plexus-Logo beim Start angezeigt -> das sieht cool aus ;-)
|
||
|
|
||
|
16-08-2013 -LOGO wurde Borg-mäßig in grün geändert - nu is noch cooler ;-)
|
||
|
-Scrolltext für unser Motto hinzugefügt - nu is aber Schluss mit cool
|
||
|
|
||
|
'############################################# Version 1.01 #################################################################################################################
|
||
|
15-10-2013 -LOGO-Farbgebung geändert, jetzt bunter, weil Plexus Version 2.0 geladen wird
|
||
|
19-10-2013 -Fehler in Iniload behoben, es wurde der Venatrix- und Sepia-Marker an die falsche Stelle im Ram abgelegt
|
||
|
07-11-2013 -Fehldarstellung beim Löschen des Start-Logo's behoben (jetzt wird der Bildschirm mit der aktuellen Shell-Hintergrundfarbe gelöscht)
|
||
|
|
||
|
'############################################# VERSION 1.02 #################################################################################################################
|
||
|
19-03-2014 -Laderoutine für die Error-und Systemtexte geändert, jeder Text hat jetzt eine feste Adresse, ist beim laden zwar langsamer aber die Texte
|
||
|
-werden viel schneller aus dem Ram geladen und angezeigt, egal wieviele Texte vorhanden sind
|
||
|
}}
|
||
|
|
||
|
OBJ
|
||
|
ios: "reg-ios-64"
|
||
|
|
||
|
CON
|
||
|
|
||
|
_CLKMODE = XTAL1 + PLL16X
|
||
|
_XINFREQ = 5_000_000
|
||
|
|
||
|
'-------- Speicher für diverse Texte ------------
|
||
|
TXT_RAM = $20000
|
||
|
vidnfo = $21000
|
||
|
sndnfo = $21200
|
||
|
prgnfo = $21400
|
||
|
Verz_RAM = $21800
|
||
|
MENU_RAM = $22000
|
||
|
'-------- Speicher für Titelliste ---------------
|
||
|
DMP_RAM = $40000
|
||
|
'-------- Speicher für Screensaver --------------
|
||
|
SCREEN_SV = $63000
|
||
|
'-------- Speicher für Systemfont ---------------
|
||
|
SYS_FONT = $66800 '....$693FF ' ab hier liegt der System-Font 11kb
|
||
|
|
||
|
|
||
|
|
||
|
'-------- Speicher für Dateiliste ---------------
|
||
|
DIR_RAM = $69440 '....$6AFFF
|
||
|
MOUSE_RAM = $69400 '....$6943F ' User-Mouse-Pointer 64byte
|
||
|
'-------- YMODEM Temp-Speicher ------------------
|
||
|
YMODEM_RAM= $7E400 '... $7E417 Name, der zu sendenden Datei, Was soll gemacht werden(0Empfang,1Senden)+Dirmarker
|
||
|
|
||
|
LINK_RAM = $7FE00
|
||
|
PARA_RAM = $7FE40
|
||
|
SETTING_RAM = $7FF00 'Hier stehen die System-Settings
|
||
|
START_FLAG = $7FFFF 'Flag das Plexus schonmal gestartet wurde ->Logo unterdrücken
|
||
|
|
||
|
|
||
|
ADM_SPEC = %00000000_00000000_00000000_01010011
|
||
|
|
||
|
'******************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
|
||
|
|
||
|
|
||
|
VAR
|
||
|
'systemvariablen
|
||
|
byte font[25] 'Hilfsstring für Strings aus dem Ram
|
||
|
byte colors[14]
|
||
|
long systemdir 'Systemverzeichnis-Marker
|
||
|
|
||
|
dat
|
||
|
ini byte "reg.ini",0 'Ini-Datei für Farbwerte, Dateiverknüpfungen und Systemeinstellungen
|
||
|
errortxt byte "reg.err",0
|
||
|
' Trash byte "TRASH ",0
|
||
|
video_inf byte "VIDEO.NFO",0
|
||
|
prg_inf byte "prg.nfo",0
|
||
|
sound_nfo byte "sound.nfo",0
|
||
|
plexus byte "plexus.dll",0
|
||
|
SYSTEM Byte "PLEXUS ",0 'Plexus-Systemverzeichnis
|
||
|
Version byte "Version 2.05",0
|
||
|
|
||
|
sysfont byte "reg.fnt",0
|
||
|
scrsaver byte "plexus.dat",0
|
||
|
scroll byte "WE ARE BORG! YOU WILL BE ASSIMILATED. RESISTANCE IS FUTIL.",0
|
||
|
|
||
|
PUB main | i,a
|
||
|
|
||
|
ios.start
|
||
|
ios.sdmount 'sd-card mounten
|
||
|
activate_dirmarker(0)
|
||
|
ios.sdchdir(@system) 'in's System-Verzeichnis springen
|
||
|
systemdir:=get_dirmarker 'System-Dirmarker lesen
|
||
|
'activate_dirmarker(0)
|
||
|
|
||
|
if ios.admgetspec<>ADM_SPEC
|
||
|
ios.admload(string("plexus.adm")) 'Administracode laden
|
||
|
|
||
|
activate_dirmarker(systemdir) 'nach dem Neustart von Administra wieder ins Systemverzeichnis springen
|
||
|
|
||
|
if ios.bel_get<>88
|
||
|
ios.belload(string("plexus.bel")) 'Bellatrixcode laden
|
||
|
|
||
|
|
||
|
ios.ram_fill(DIR_RAM,$1BFF,0) 'Dir-Speicher löschen
|
||
|
ios.ram_fill(DMP_RAM,$1FFF,0) 'Dmp-File-Speicher löschen
|
||
|
ios.ram_fill(TXT_RAM,$2000,0) 'Error-Text-Speicher löschen
|
||
|
ios.ram_fill(LINK_RAM,$1ff,0) 'Link-Speicher löschen
|
||
|
ios.ram_fill(MENU_RAM,$500,0) 'Menue-Text-Speicher löschen
|
||
|
ios.ram_fill(YMODEM_RAM,$30,0) 'YMODEM-RAM löschen
|
||
|
'--------------------------------------------------------------------------------------
|
||
|
activate_dirmarker(systemdir) 'nach dem Neustart von Administra wieder ins Systemverzeichnis springen
|
||
|
|
||
|
ios.sdopen("R",@errortxt)
|
||
|
fileload_err(TXT_RAM) 'Fehler-Texte laden
|
||
|
ios.sdopen("R",@video_inf)
|
||
|
fileload(vidnfo) 'Video-Info laden
|
||
|
ios.sdopen("R",@sound_nfo)
|
||
|
fileload(sndnfo) 'Sound-Info laden
|
||
|
ios.sdopen("R",@prg_inf)
|
||
|
fileload(prgnfo) 'Programm-Info laden
|
||
|
'***************** Initialisierung ohne Ini-Datei ****************************
|
||
|
if iniload 'wenn keine Ini da ist, standardwerte setzen
|
||
|
colors[0]:=light_blue
|
||
|
colors[1]:=white
|
||
|
colors[2]:=light_blue
|
||
|
colors[3]:=white
|
||
|
colors[4]:=dark_blue
|
||
|
colors[5]:=white
|
||
|
colors[6]:=grey
|
||
|
colors[7]:=white
|
||
|
colors[8]:=white
|
||
|
colors[9]:=dark_blue
|
||
|
colors[10]:=blue
|
||
|
colors[11]:=white
|
||
|
colors[12]:=purple
|
||
|
colors[13]:=black
|
||
|
colors[14]:=grey
|
||
|
i:=SETTING_RAM
|
||
|
a:=0
|
||
|
repeat 15
|
||
|
ios.ram_wrbyte(colors[a++],i++)
|
||
|
|
||
|
ios.ram_wrbyte(7,i++) 'baudrate setzen auf 57600
|
||
|
ios.ram_wrbyte(1,i++) 'show hidden files
|
||
|
ios.ram_wrbyte(1,i++) 'use trash
|
||
|
ios.ram_wrbyte(0,i++) 'Venatrix nicht verwenden
|
||
|
ios.ram_wrbyte(0,i++) 'Sepia nicht verwenden
|
||
|
|
||
|
'****************** Hauptbildschirm ******************************************
|
||
|
ios.printBoxcolor(0,red,orange,95)
|
||
|
ios.printchar(12) 'cls
|
||
|
|
||
|
LoadTiletoRam(@sysfont,SYS_FONT) 'Systemfont auf jeden Fall in den Ram laden
|
||
|
'******************************************************************************
|
||
|
'*Wird Plexus aus beendeten Bin Dateien geladen, wird das Logo nicht angezeigt*
|
||
|
'******************************************************************************
|
||
|
if ios.ram_rdbyte(START_FLAG)<>235
|
||
|
LoadTiletoRam(@scrsaver,SCREEN_SV) 'Plexus-Logo in den Ram laden
|
||
|
loadtile(SCREEN_SV) 'Plexus-Logo nach Bella laden
|
||
|
ios.display2dbox(red,0,0,2,39,0)
|
||
|
ios.display2dbox(blue,3,0,5,39,0)
|
||
|
ios.display2dbox(orange,6,0,9,39,0)
|
||
|
|
||
|
ios.display2dbox(light_blue,10,0,10,39,0)
|
||
|
|
||
|
ios.display2dbox(black,11,0,18,39,0)
|
||
|
|
||
|
ios.display2dbox(light_blue,19,0,19,39,0)
|
||
|
|
||
|
ios.display2dbox(orange,20,0,23,39,0)
|
||
|
ios.display2dbox(blue,24,0,26,39,0)
|
||
|
ios.display2dbox(red,27,0,29,39,0)
|
||
|
ios.displaypic(black,255,0,11,10,8,22)'light_orange,0,11,10,8,22) 'Plexus-Logo anzeigen
|
||
|
|
||
|
ios.setpos(7,15)
|
||
|
ios.print(string("Welcome to"))
|
||
|
ios.setpos(21,12)
|
||
|
ios.print(string("for Hive-Computer"))
|
||
|
ios.printBoxcolor(0,orange,blue,95)
|
||
|
ios.setpos(24,14)
|
||
|
ios.print(@version)
|
||
|
ios.printBoxcolor(0,orange,light_orange,95)
|
||
|
|
||
|
ios.scrollString(@scroll,4, light_orange, red, 27, 0, 39)
|
||
|
|
||
|
'************************* Plexus wird geladen *************************************
|
||
|
ios.printBoxcolor(0,0,ios.ram_rdbyte(SETTING_RAM),0)'ios.ram_rdbyte(0,colors[0],SETTING_RAM)
|
||
|
ios.printchar(12) 'cls
|
||
|
|
||
|
ios.sdopen("R",@plexus) 'Plexus.Dll öffnen
|
||
|
ios.ldbin(@plexus) 'Plexus laden
|
||
|
ios.stop
|
||
|
{
|
||
|
#$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
|
||
|
}
|
||
|
con '***************************************************** Diverse Texte in den E-Ram laden **************************************************************************************
|
||
|
|
||
|
PRI fileload(adr)|cont
|
||
|
|
||
|
cont:=ios.sdfattrib(0)
|
||
|
ios.sdxgetblk(adr,cont)
|
||
|
ios.sdclose
|
||
|
|
||
|
PRI fileload_err(adr)| cont,c,b,a,i
|
||
|
i:=adr
|
||
|
|
||
|
b:=0
|
||
|
repeat
|
||
|
a:=ios.sdgetc
|
||
|
|
||
|
if a==$0A
|
||
|
b++
|
||
|
i:=adr+(25*b)
|
||
|
next
|
||
|
else
|
||
|
ios.ram_wrbyte(a,i++)
|
||
|
until ios.sdeof
|
||
|
ios.sdclose
|
||
|
|
||
|
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)
|
||
|
|
||
|
con '********************************* Unterprogramme zur Tile-Verwaltung *********************************************************************************************************
|
||
|
PRI LoadTiletoRam(datei,adress) 'tile:=tilenr,dateiname,xtile-zahl,ytilezahl
|
||
|
|
||
|
ios.sdopen("R",datei)') 'datei öffnen
|
||
|
ios.sdxgetblk(adress,11264) 'datei in den Speicher schreiben (der blockbefehl ist viel schneller als der char-Befehl)
|
||
|
ios.sdclose
|
||
|
|
||
|
PRI loadtile(adress) 'tileset aus eram in bella laden
|
||
|
|
||
|
'anzahl:=2816 'anzahl longs '(16*11*16longs)
|
||
|
ios.loadtilebuffer(adress,2816) 'laden 'Systemfont-Bereich (Basic verwendet den gleichen Bereich)
|
||
|
|
||
|
|
||
|
PRI iniload:err|i,tmp
|
||
|
|
||
|
|
||
|
|
||
|
if ios.sdopen("R",@ini)
|
||
|
err:=1
|
||
|
else
|
||
|
err:=0
|
||
|
i:=SETTING_RAM
|
||
|
'---- SYSTEM-SETTINGS IN DEN RAM LADEN -------------
|
||
|
repeat 18
|
||
|
ios.ram_wrbyte(ios.sdgetc,i++)
|
||
|
tmp:=i
|
||
|
'---- DESKTOP-VERKNÜPFUNGEN IN DEN RAM LADEN -------
|
||
|
i:=LINK_RAM
|
||
|
repeat 51
|
||
|
ios.ram_wrbyte(ios.sdgetc,i++)
|
||
|
'---- USER-MAUSZEIGER IN DEN RAM LADEN -------------
|
||
|
i:=MOUSE_RAM
|
||
|
repeat 64
|
||
|
ios.ram_wrbyte(ios.sdgetc,i++)
|
||
|
ios.Mousepointer(MOUSE_RAM) 'MAUSZEIGER ANWENDEN
|
||
|
ios.displaymouse(0,0)
|
||
|
'---- LINK-PARAMETER IN DEN RAM LADEN --------------
|
||
|
i:=PARA_RAM
|
||
|
repeat 192
|
||
|
ios.ram_wrbyte(ios.sdgetc,i++)
|
||
|
'---- DCF-Empfänger benutzen -----------------------
|
||
|
ios.ram_wrbyte(ios.sdgetc,tmp++)
|
||
|
'---- HC05-Bluetooth-Modul -------------------------
|
||
|
ios.ram_wrbyte(ios.sdgetc,tmp++)
|
||
|
|
||
|
ios.sdclose
|
||
|
|
||
|
|
||
|
|
||
|
DAT 'lizenz
|
||
|
{{
|
||
|
|
||
|
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||
|
│ TERMS OF USE: MIT License │
|
||
|
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
|
||
|
│Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation │
|
||
|
│files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, │
|
||
|
│modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software│
|
||
|
│is furnished to do so, subject to the following conditions: │
|
||
|
│ │
|
||
|
│The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.│
|
||
|
│ │
|
||
|
│THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE │
|
||
|
│WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR │
|
||
|
│COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, │
|
||
|
│ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. │
|
||
|
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||
|
}}
|
||
|
|