Plexus 2.06

This commit is contained in:
Joerg Deckert 2014-06-14 14:57:41 +02:00
parent 200fdee5d6
commit a2d618a594
21 changed files with 904 additions and 752 deletions

1
.gitattributes vendored
View File

@ -2,4 +2,5 @@
* text=auto * text=auto
*.NFO text eol=crlf
*.bat text eol=crlf *.bat text eol=crlf

BIN
data/COLORS/BLUE2.CLR Normal file

Binary file not shown.

BIN
data/COLORS/LBLUE2.CLR Normal file

Binary file not shown.

BIN
data/COLORS/WARM.CLR Normal file

Binary file not shown.

View File

@ -1,6 +1,6 @@
PLEXUS for Hive 2.05 PLEXUS for Hive 2.06
Autor:R.Zielinski 03/2014 Autor:R.Zielinski 04/2014
Mail :Zille09@gmail.com Mail :Zille09@gmail.com
Hive-Project.de Hive-Project.de

BIN
gfx/Belstart.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
gfx/Regfnt.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -27,7 +27,7 @@ REM mkdir %sdsys%
REM ---------------------------------------------------------------- REM ----------------------------------------------------------------
REM Code für Administra, Bellatrix und Regime erzeugen REM Code für Administra, Bellatrix und Regime erzeugen
%BSTC% -L %libpath% %D% -D __ADM_FAT -D __ADM_FAT_EXT -D __ADM_RTC -D __ADM_SID -D __ADM_PLX -D __ADM_DCF -D __ADM_BLT -b -O a ..\TriOS\flash\administra\admflash.spin %BSTC% -L %libpath% %D% -D __ADM_FAT -D __ADM_FAT_EXT -D __ADM_RTC -D __ADM_SID -D __ADM_LAN -D __ADM_PLX -D __ADM_DCF -D __ADM_BLT -b -O a ..\TriOS\flash\administra\admflash.spin
move admflash.binary %sdplex%\plexus.adm move admflash.binary %sdplex%\plexus.adm
%BSTC% -L %libpath% %D% -b -O a source\Plexus-Start-Trios.spin %BSTC% -L %libpath% %D% -b -O a source\Plexus-Start-Trios.spin
@ -45,8 +45,8 @@ move Plexus-Shell.binary %sdplex%\plexus.dll
%BSTC% -L %libpath% %D% -b -O a source\Bluetooth.spin %BSTC% -L %libpath% %D% -b -O a source\Bluetooth.spin
move Bluetooth.binary %sdplex%\Bltooth.dll move Bluetooth.binary %sdplex%\Bltooth.dll
%BSTC% -L %libpath% %D% -b -O a source\Venatrix.spin %BSTC% -L %libpath% %D% -b -O a source\Venatrix-Test.spin
move Venatrix.binary %sdplex%\Venatrix.dll move Venatrix-Test.binary %sdplex%\Venatrix.dll
%BSTC% -L %libpath% %D% -b -O a source\YMODEM-Dll.spin %BSTC% -L %libpath% %D% -b -O a source\YMODEM-Dll.spin
move YMODEM-Dll.binary %sdplex%\YMODEM.dll move YMODEM-Dll.binary %sdplex%\YMODEM.dll

View File

@ -25,7 +25,7 @@ mkdir -p ${sdplex}
# ---------------------------------------------------------------- # ----------------------------------------------------------------
# Code für Administra, Bellatrix und Regime erzeugen # Code für Administra, Bellatrix und Regime erzeugen
${BSTC} -L ${libpath} ${D} -D __ADM_FAT -D __ADM_FAT_EXT -D __ADM_RTC -D __ADM_SID -D __ADM_PLX -D __ADM_DCF -D __ADM_BLT -b -O a ../TriOS/flash/administra/admflash.spin ${BSTC} -L ${libpath} ${D} -D __ADM_FAT -D __ADM_FAT_EXT -D __ADM_RTC -D __ADM_SID -D __ADM_LAN -D __ADM_PLX -D __ADM_DCF -D __ADM_BLT -b -O a ../TriOS/flash/administra/admflash.spin
mv admflash.binary ${sdplex}/plexus.adm mv admflash.binary ${sdplex}/plexus.adm
${BSTC} -L ${libpath} ${D} -b -O a source/Plexus-Start-Trios.spin ${BSTC} -L ${libpath} ${D} -b -O a source/Plexus-Start-Trios.spin
@ -43,8 +43,8 @@ mv Plexus-Shell.binary ${sdplex}/plexus.dll
${BSTC} -L ${libpath} ${D} -b -O a source/Bluetooth.spin ${BSTC} -L ${libpath} ${D} -b -O a source/Bluetooth.spin
mv Bluetooth.binary ${sdplex}/Bltooth.dll mv Bluetooth.binary ${sdplex}/Bltooth.dll
${BSTC} -L ${libpath} ${D} -b -O a source/Venatrix.spin ${BSTC} -L ${libpath} ${D} -b -O a source/Venatrix-Test.spin
mv Venatrix.binary ${sdplex}/Venatrix.dll mv Venatrix-Test.binary ${sdplex}/Venatrix.dll
${BSTC} -L ${libpath} ${D} -b -O a source/YMODEM-Dll.spin ${BSTC} -L ${libpath} ${D} -b -O a source/YMODEM-Dll.spin
mv YMODEM-Dll.binary ${sdplex}/YMODEM.dll mv YMODEM-Dll.binary ${sdplex}/YMODEM.dll

View File

@ -67,7 +67,8 @@ panelcol =14 'Farbe des Utility-Panels
ADM_SPEC = %00000000_00000000_00000000_01010011 ADM_SPEC = %00000000_00000000_00000000_01010011
TEXT_RAM = $80000 TEXT_RAM = $80000
SETTING_RAM = $7FF00 'Hier stehen die System-Settings SETTING_RAM = $7FF00 'Hier stehen die System-Settings
Hour_Glass = $66800+(167*16*4) MOUSE_RAM = $69400 '....$6943F ' User-Mouse-Pointer 64byte
Hour_Glass = $66800+(167*16*4) ' Sanduhr
BRAM = $50000 'Overlay-Puffer BRAM = $50000 'Overlay-Puffer
'******************Farben ******************************************************** '******************Farben ********************************************************
@ -183,8 +184,7 @@ PUB main|a
'-------------------------------------------------------------------------------------- '--------------------------------------------------------------------------------------
cmd_unmount cmd_unmount
iniload 'Ini-Datei mit Farbwerten laden iniload 'Ini-Datei mit Farbwerten laden
ios.mousepointer(MOUSE_RAM) 'Sanduhr durch Mauszeiger ersetzen
testfenster testfenster
util:=0 util:=0
ios.ram_fill(Text_Ram,$1000,0) ios.ram_fill(Text_Ram,$1000,0)

View File

@ -57,6 +57,8 @@ ADM_SPEC = %00000000_00000000_00000000_01010011
SETTING_RAM = $7FF00 'Hier stehen die System-Settings SETTING_RAM = $7FF00 'Hier stehen die System-Settings
BRAM = $50000 'Overlay-Puffer BRAM = $50000 'Overlay-Puffer
Hour_Glass = $66800+(167*16*4) Hour_Glass = $66800+(167*16*4)
MOUSE_RAM = $69400 '....$6943F ' User-Mouse-Pointer 64byte
'******************Farben ******************************************************** '******************Farben ********************************************************
#$FC, Light_Grey, #$A8, Grey, #$54, Dark_Grey #$FC, Light_Grey, #$A8, Grey, #$54, Dark_Grey
#$C0, Light_Red, #$80, Red, #$40, Dark_Red #$C0, Light_Red, #$80, Red, #$40, Dark_Red
@ -140,6 +142,7 @@ PUB main
'-------------------------------------------------------------------------------------- '--------------------------------------------------------------------------------------
cmd_unmount cmd_unmount
iniload 'Ini-Datei mit Farbwerten laden iniload 'Ini-Datei mit Farbwerten laden
ios.mousepointer(MOUSE_RAM)
testfenster testfenster
util:=0 util:=0
displaytime 'Datum/Zeit displaytime 'Datum/Zeit
@ -491,11 +494,14 @@ con '************************************************** Button-Funktionen ******
PRI buttonpress(n) PRI buttonpress(n)
case n case n
1:printfont(string("Start "),250,0,0,0,29) 1:printfont(string("Start "),250,0,0,0,29)
ios.displaytile(164,0,colors[shellhcol],250,29,7)
4:printfont(@butOK,250,0,0,buttonx[n],buttony[n]) 4:printfont(@butOK,250,0,0,buttonx[n],buttony[n])
Mouse_Release Mouse_Release
case n case n
1:printfont(string("Start "),colors[hcolstatus],0,colors[statustextcol],0,29) 1:printfont(string("Start "),colors[hcolstatus],0,colors[statustextcol],0,29)
ios.displaytile(164,0,colors[shellhcol],colors[hcolstatus],29,7)
4:printfont(@butOK,colors[Buttonhcol],0,colors[buttontextcol],buttonx[n],buttony[n]) 4:printfont(@butOK,colors[Buttonhcol],0,colors[buttontextcol],buttonx[n],buttony[n])

View File

@ -0,0 +1,245 @@
{{┌──────────────────────────────────────────┐
│ I2C slave object │
│ Author: Chris Gadd │
│ Copyright (c) 2013 Chris Gadd │
│ See end of file for terms of use. │
└──────────────────────────────────────────┘
This object creates an I2C slave device with 32 byte-sized registers on the Propeller, which an I2C master device can read from and write to using standard protocol:
7-bit device ID + read/write bit, 8-bit register address, 8 bits of data
Supports single, repeated, and page reads and writes
Does NOT check for overruns - Writing 5 bytes starting at register 31 may produce unexpected results
To use:
slave.start(28,29,$42) Start the slave object using p28 for clock, p29 for data, with device ID $42
slave.check Returns the index (31-0) of the highest byte in the register that was written to by a master
Subsequent calls to slave.check return the index of the next highest byte with new data
slave.check_reg(5) Returns the contents of register 5 only if the new-data flag for that register is set, returns -1 otherwise
slave.get(10) Returns the value of register 10
slave.put(11,#2) Stores the value 2 in register 11
slave.flush Clears all 32 registers to 0
slave.address Returns the base address of the slave registers - useful for directly operating on the registers
by higher-level objects
Tested up to 769Kbps (max transmit speed of the master object)
}}
VAR
long flags ' Used to determine if a register has new data from the master
byte _slave_address
byte SCL_pin
byte SDA_pin
byte register[32]
byte cog
PUB start(clk_pin, data_pin, slave_address) : okay
stop
_slave_address := slave_address
SCL_pin := clk_pin
SDA_pin := data_pin
okay := cog := cognew(@entry, @flags) + 1
PUB stop
if cog
cogstop(cog~ - 1)
PUB address
return @register
PUB check : index
{{
Returns the number of the highest byte that was written to:
If an I2C master wrote to addresses 3 and 7 of the slave's buffer, #7 is returned
The flag for the highest byte is then cleared, so a subsequent check would return #3
Returns -1 if all updated byte addresses have been returned (no new data)
}}
index := (>| flags) - 1
flags := flags & !(|< index) ' Clear the highest set bit
PUB check_reg(index)
{{
Returns the value of the indexed register if that register has new data
Returns -1 otherwise
}}
if |< index & flags
flags := flags & !(|< index)
return register[index]
return -1
PUB get(index)
return register[index]
PUB put(index,data)
register[index] := data
PUB flush | i
flags~
repeat i from 0 to 31
register[i]~
DAT org
entry
mov t1,par
mov flags_address,t1 ' Retrieve all of the addresses and
add t1,#4 ' pin assignments from the VAR block,
rdbyte device_address,t1 ' and create bit masks
shl device_address,#1
add t1,#1
rdbyte t2,t1
mov SCL_mask,#1
shl SCL_mask,t2
add t1,#1
rdbyte t2,t1
mov SDA_mask,#1
shl SDA_mask,t2
add t1,#1
mov register_address,t1
mov idle_mask,SCL_mask
or idle_mask,SDA_mask
'----------------------------------------------------------------------------------------------------------------------
main
call #wait_for_start
start_detected
call #receive
mov t1,I2C_byte
and t1,#%1111_1110 ' clear the read/write flag and compare received
cmp t1,device_address wz ' device address with assigned address
if_ne jmp #main
call #ack
test I2C_byte,#%0000_0001 wc ' test read(1) or write(0) bit of device address
if_nc jmp #write
read '(from_master)
call #respond ' The master sends an ACK or NAK in response to
add data_address,#1 ' every byte sent back from the slave
if_nc jmp #read ' Send another byte if ACK (c=0)
jmp #main ' Stop if NAK (c=1)
write '(from_master)
rdlong t1,flags_address ' Use t1 to hold all flags
mov t2,#1 ' Use t2 to hold the flag of the current register
mov data_address,register_address ' Prepare the to store new data
call #receive ' First byte received is a register address
add data_address,I2C_byte
shl t2,I2C_byte ' Shift the flag to the appropriate register
call #ack
:loop
call #receive ' Receive a data byte
wrbyte I2C_byte,data_address ' Store in the addressed register
add data_address,#1 ' Address the next register
or t1,t2 ' Update the flags
wrlong t1,flags_address
shl t2,#1 ' Shift the flag to the next register
call #ack
jmp #:loop
'======================================================================================================================
wait_for_start ' SCL 
waitpeq idle_mask,idle_mask ' SDA 
:loop
waitpne SDA_mask,SDA_mask
test SCL_mask,ina wc
if_nc jmp #wait_for_start
wait_for_start_ret ret
'----------------------------------------------------------------------------------------------------------------------
receive ' (Read)
mov loop_counter,#8 ' 
mov I2C_byte,#0 ' SCL 
:loop ' SDA ───────
waitpne SCL_mask,SCL_mask
waitpeq SCL_mask,SCL_mask
test SDA_mask,ina wc
rcl I2C_byte,#1
call #detect_st_or_sp ' Check to see if the received bit is a stop or restart
djnz loop_counter,#:loop
receive_ret ret
'----------------------------------------------------------------------------------------------------------------------
respond ' (Write) (Read ACK or NAK)
mov loop_counter,#8 '  
rdbyte I2C_byte,data_address ' SCL  
shl I2C_byte,#32-8 ' SDA  ───────
:loop
waitpne SCL_mask,SCL_mask
shl I2C_byte,#1 wc
muxnc dira,SDA_mask
waitpeq SCL_mask,SCL_mask
waitpne SCL_mask,SCL_mask
djnz loop_counter,#:loop
andn dira,SDA_mask
'receive_ack_or_nak
waitpne SCL_mask,SCL_mask
waitpeq SCL_mask,SCL_mask
test SDA_mask,ina wc ' C is set if NAK
call #detect_st_or_sp
respond_ret ret
'----------------------------------------------------------------------------------------------------------------------
ack ' SCL 
waitpne SCL_mask,SCL_mask ' SDA 
or dira,SDA_mask
waitpeq SCL_mask,SCL_mask
waitpne SCL_mask,SCL_mask
andn dira,SDA_mask
ack_ret ret
'----------------------------------------------------------------------------------------------------------------------
nak ' SCL 
waitpne SCL_mask,SCL_mask ' SDA 
waitpeq SCL_mask,SCL_mask
call #detect_st_or_sp
waitpne SCL_mask,SCL_mask
nak_ret ret
'----------------------------------------------------------------------------------------------------------------------
detect_st_or_sp
' test SDA_mask,ina wc ' routine is called with C already set to SDA
if_c jmp #:detect_restart
:detect_stop ' SCL 
test SCL_mask,ina wz ' SDA 
if_z jmp detect_st_or_sp_ret
test SDA_mask,ina wz
if_nz jmp #main
jmp #:detect_stop
:detect_restart ' SCL 
test SCL_mask,ina wz ' SDA 
if_z jmp detect_st_or_sp_ret
test SDA_mask,ina wz
if_z jmp #start_detected
jmp #:detect_restart
detect_st_or_sp_ret ret
'----------------------------------------------------------------------------------------------------------------------
SCL_mask res 1
SDA_mask res 1
idle_mask res 1
device_address res 1
register_address res 1
data_address res 1
flags_address res 1
I2C_byte res 1
loop_counter res 1
t1 res 1
t2 res 1
fit
DAT
{{
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ 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. │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
}}

View File

@ -501,6 +501,33 @@ Logbuch :
-mit unsinnigen Daten gefüllt -mit unsinnigen Daten gefüllt
-1375 Longs frei -1375 Longs frei
'############################################################### Version 2.06 ####################################################################################################
16-04-2014 -Doppelklick auf linke obere Fensterecke abgeschafft, sorgte in diversen Unterprogrammen für Fehlfunktionen
-Durch Änderungen im Obj ram.spin, ein paar Longs eingebüßt (Routine ram_copy)
-Kopierroutine in Administra weiter geschrumpft
-1362 Longs frei
17-04-2014 -ram.spin noch etwas weiter optimiert, hat 5 Longs gebracht :-)
-neuen Startbildschirm für Version 2.06 erstellt
-reg-ios und admsid mit glob-con vereint und LAN-Funktionalität eingefügt, admsid.spin entsprechend erweitert, hat 4Longs gekostet
-1363 Longs frei
20-04-2014 -Fehler in der Plexus-Startdatei behoben, irrtümlicherweise wurden die Basic-Systemparameter beim Start überschrieben
-dadurch war die Reclaim-Funktion wirkungslos ->der Basicspeicher wurde gnadenlos gelöscht
-Abfrage auf Administratreiber in der Startdatei geändert
-1359 Longs frei
21-04-2014 -Fehler in der admsid behoben, Befehl plxput in der Dos-Shell hat nicht funktioniert, der Poller muss zum Setzen angehalten werden
-1359 Longs frei
08-05-2014 -Mousebound-Befehl beim Start eingefügt, da es passieren konnte, das beim Verlassen von Trios-Basic der Mausbereich eingegrenzt war.
-1339 Longs frei
18-05-2014 -Für Trios-Basic wurde ein Runtime-Modul erschaffen, was es erlaubt, binäre BAS-Dateien(ab TBasic Vers.2.2) direkt aus Plexus heraus zu starten
-somit können BAS-Dateien auch als Links gestartet werden
-DOS-Shell ebenfalls mit dieser Funktionalität ausgestattet
-1317 Longs frei
Notizen : Window 0 = Hauptbildschirm, darf nicht anderweitig genutzt werden !!! Notizen : Window 0 = Hauptbildschirm, darf nicht anderweitig genutzt werden !!!
Window 1 = Utilitie-Fenster (serielles Terminal, Uhr-Einstellung,Color-Settings, Ram-Monitor,Player,Systemsettings,Baud-Einstellung) Window 1 = Utilitie-Fenster (serielles Terminal, Uhr-Einstellung,Color-Settings, Ram-Monitor,Player,Systemsettings,Baud-Einstellung)
Window 2 = Infofenster (SD-Card-Info,Kopierfenster,Messagebox,Datei-Info) Window 2 = Infofenster (SD-Card-Info,Kopierfenster,Messagebox,Datei-Info)
@ -545,7 +572,18 @@ SETTING_RAM = $7FF00 'Hier stehen die System-Settings
START_FLAG = $7FFFF 'Flag das Plexus schonmal gestartet wurde ->Logo unterdrücken START_FLAG = $7FFFF 'Flag das Plexus schonmal gestartet wurde ->Logo unterdrücken
RETURN_FLAG = $7FFFE 'Rückkehr-Flag aus gestarteter Bin-Datei RETURN_FLAG = $7FFFE 'Rückkehr-Flag aus gestarteter Bin-Datei
ADM_SPEC = %00000000_00000000_00000000_01010011 '******************* Spezifikation für Administra **********************
' +---------- com
' | +-------- i2c
' | |+------- rtc
' | ||+------ lan
' | |||+----- sid
' | ||||+---- wav
' | |||||+--- hss
' | ||||||+-- bootfähig
' | |||||||+- dateisystem
'ADM_SPEC = %00000000_00000000_00000000_11110011
BEL_COLORS =64 BEL_COLORS =64
BEL_X =640 BEL_X =640
BEL_Y =480 BEL_Y =480
@ -772,6 +810,7 @@ dat
DCF77 byte "dcf.dll",0 'DCF77-Empfänger-Test DCF77 byte "dcf.dll",0 'DCF77-Empfänger-Test
BLUETOOTH byte "bltooth.dll",0 'Bluetooth-Settings BLUETOOTH byte "bltooth.dll",0 'Bluetooth-Settings
Ymodem byte "ymodem.dll",0 'Ymodem-Funktion Ymodem byte "ymodem.dll",0 'Ymodem-Funktion
BAS_RT byte "basrun.dll",0 'Basic-Runtime-Modul
root byte ".. ",0 root byte ".. ",0
dirhoch byte ". ",0 dirhoch byte ". ",0
@ -797,7 +836,7 @@ dat
Abbr byte "Cancel",0 Abbr byte "Cancel",0
sysfont byte "reg.fnt",0 sysfont byte "reg.fnt",0
promt byte "OK>",0 promt byte "OK>",0
Version byte "2.05",0 Version byte "2.06",0
New_dir byte "NEWDIR",0 New_dir byte "NEWDIR",0
'------------ Tage ------------------------------------ '------------ Tage ------------------------------------
DAY1 byte "MO",0 DAY1 byte "MO",0
@ -906,6 +945,7 @@ PUB main | i
ios.ram_wrbyte(0,RETURN_POINT+1) 'Verzeichnis_counter lesen und RAM-Platz danach löschen ios.ram_wrbyte(0,RETURN_POINT+1) 'Verzeichnis_counter lesen und RAM-Platz danach löschen
'num.init 'num.init
ios.mousebound(0,0,639,479) 'Maus-Bereich festlegen
repeat repeat
os_cmdinput 'Hauptprogrammschleife os_cmdinput 'Hauptprogrammschleife
@ -1100,13 +1140,13 @@ PRI os_cmdinput | x,y ,i,col,dk,kb,b,kl,fst,term_aus,kn,bd,tmp
fst:=kl/10 'Nummer des Fensters fst:=kl/10 'Nummer des Fensters
do_restore:=1 'bei Maus-Bedienung Hintergrund wieder herstellen do_restore:=1 'bei Maus-Bedienung Hintergrund wieder herstellen
'------------------------------------------------- Fenster-Schließen ------------------------------------------------------------------------------------------------------------- '------------------------------------------------- Fenster-Schließen -------------------------------------------------------------------------------------------------------------
if kl==1 'Abfrage auf Fensterloeschen ' if kl==1 'Abfrage auf Fensterloeschen
if doppelklick ' if doppelklick
Close_Window(fst) ' Close_Window(fst)
if attribut_fenster 'beim Schließen des Attribut-Fensters SD-Card neu einlese ' if attribut_fenster 'beim Schließen des Attribut-Fensters SD-Card neu einlese
mc:=SD_CARD ' mc:=SD_CARD
attribut_fenster:=0 ' attribut_fenster:=0
if kl==2 if kl==1 or kl==2
Close_Window(fst) Close_Window(fst)
if attribut_fenster if attribut_fenster
mc:=SD_CARD mc:=SD_CARD
@ -1193,7 +1233,9 @@ PRI os_cmdinput | x,y ,i,col,dk,kb,b,kl,fst,term_aus,kn,bd,tmp
case y case y
popupy:popupselect(@info,popupx,popupy) popupy:popupselect(@info,popupx,popupy)
keyboardscan("I") infofenster(12,10,27,20,ram_txt(32),1) 'SD-Card-Info-Fenster anzeigen
SD_CARD_INFO 'Fenster mit Info's füllen
' keyboardscan("I")
do_restore:=1 'Info-Fenster-Hintergrund soll wieder hergestellt werden do_restore:=1 'Info-Fenster-Hintergrund soll wieder hergestellt werden
popupy+1:if mountmarker==1 popupy+1:if mountmarker==1
@ -1615,7 +1657,7 @@ pri show_tab(n)
case n case n
1:print_info(vidnfo,6,8) 1:print_info(vidnfo,6,8)
2:print_info(sndnfo,6,8) 2:print_info(sndnfo,6,8)
printbin(ADM_SPEC,16,winhcol,0,act_color,15,8) printbin(ios.admgetspec,16,winhcol,0,act_color,15,8)
3:print_win(@sysfont,10,8) 3:print_win(@sysfont,10,8)
ios.displaypic(winhcol,panelcol,0,10,10,11,16) ios.displaypic(winhcol,panelcol,0,10,10,11,16)
@ -2052,6 +2094,7 @@ pri run_sys(str,mark) 'starten der eingebetteten Programme
activate_dirmarker(systemdir) activate_dirmarker(systemdir)
ifnot OPEN_FILE(str) ifnot OPEN_FILE(str)
ios.mousepointer(Hour_Glass) 'Sanduhr anzeigen
ios.ldbin(str) ios.ldbin(str)
pri Highlight_balken 'ist der Hevorhebungsbalken außerhalb des Scrollbereiches, dann gemerkte Werte löschen pri Highlight_balken 'ist der Hevorhebungsbalken außerhalb des Scrollbereiches, dann gemerkte Werte löschen
@ -2098,6 +2141,8 @@ pri start_file(mode)
3:ios.admload(@filestring) 3:ios.admload(@filestring)
4:if venatrix 4:if venatrix
ios.venload(@filestring) ios.venload(@filestring)
5:ios.paraset(@filestring)
ios.ldbin(@BAS_RT)
PRI FILE_START|a,c,dirmark PRI FILE_START|a,c,dirmark
@ -2117,6 +2162,8 @@ PRI FILE_START|a,c,dirmark
start_file(3) start_file(3)
if strcomp(@buff,@venfile) if strcomp(@buff,@venfile)
start_file(4) start_file(4)
if strcomp(@buff,@basfile) 'Basic-Runtime starten
start_file(5)
'****************************** Maus-Pfeil laden ************************************** '****************************** Maus-Pfeil laden **************************************
if strcomp(@buff,@maus) if strcomp(@buff,@maus)
loadMouse(@filestring) loadMouse(@filestring)
@ -2128,8 +2175,8 @@ PRI FILE_START|a,c,dirmark
ifnot OPEN_FILE(@dumpstring) ifnot OPEN_FILE(@dumpstring)
ios.sid_sdmpplay(@dumpstring) ios.sid_sdmpplay(@dumpstring)
play:=1 play:=1
'***************************** Text-oder Basic-Dateien anzeigen ********************** '***************************** Text-Dateien anzeigen *********************************
if strcomp(@buff,@txtfile) or strcomp(@buff,@basfile) 'Txt oder Bas Dateien anzeigen if strcomp(@buff,@txtfile) 'or strcomp(@buff,@basfile) 'Txt Dateien anzeigen
windowloesch 'Dateifenster löschen windowloesch 'Dateifenster löschen
textfenster 'Textfenster öffnen textfenster 'Textfenster öffnen
'playerstop 'playerstop
@ -2788,7 +2835,7 @@ PRI bdselect(bauds):bd
bd:=lookupz(bauds:300,600,1200,4800,9600,19200,38400,57600,115200) bd:=lookupz(bauds:300,600,1200,4800,9600,19200,38400,57600,115200)
PRI Text_Input(ser,min_x,max_x,min_y,max_y,mode,adr,ch)|k,ii,x,y,serchar,blck,inp,adr_tmp,w,kl,tmp PRI Text_Input(ser,min_x,max_x,min_y,max_y,mode,adr,ch):ausg|k,ii,x,y,serchar,blck,inp,adr_tmp,w,kl,tmp
{{####################################################### {{#######################################################
ser=serielle Schnittstelle verwenden ser=serielle Schnittstelle verwenden
mode=1 - Terminal mode=0 - Texteingabefeld mode=1 - Terminal mode=0 - Texteingabefeld
@ -2804,8 +2851,7 @@ PRI Text_Input(ser,min_x,max_x,min_y,max_y,mode,adr,ch)|k,ii,x,y,serchar,blck,in
zeile:=min_y zeile:=min_y
spalte:=min_x spalte:=min_x
do_restore:=1 'Hintergrund muss wieder hergestellt werden do_restore:=1 'Hintergrund muss wieder hergestellt werden
'if mode
' WIN_TILE(46,zeile,2) 'print_win(@promt,spalte-3,zeile) 'Terminal-Promt
WIN_TILE(6,zeile,spalte) 'Eingabe-Cursor WIN_TILE(6,zeile,spalte) 'Eingabe-Cursor
repeat repeat
@ -2815,23 +2861,38 @@ PRI Text_Input(ser,min_x,max_x,min_y,max_y,mode,adr,ch)|k,ii,x,y,serchar,blck,in
if ser if ser
serchar:=ios.serread'com.rxcheck 'Zeichen von der com. Schnittstelle lesen serchar:=ios.serread'com.rxcheck 'Zeichen von der com. Schnittstelle lesen
if k==27 'Abbruch mit ESC if k==27 or ma 'Abbruch mit ESC
ios.serclose'com.stop x:=ios.mousex
y:=ios.mousey
kl:=ios.get_window//10 'Icon-Button-Nummer des Fensters
if (kl==1) or (kl==2) or (k==27) 'Abfrage auf Fensterloeschen
if ser 'Terminalfenster
fensterweg
ios.serclose
serial:=0 serial:=0
Fensterweg else
return Close_Window(2) 'Eingabefenster
quit
if(x=>buttonx[4]) and (x=<buttonx[4]+5) and (y==buttony[4]) 'ok im Infofenster
buttonpress(4)
Close_Window(2)
buttonweg 'Button muss extra gelöscht werden, sonst Fehldarstellungen
ausg:=13
quit
if mode 'Terminal-Modus if mode 'Terminal-Modus
if k==13 or serchar==13 'Return? dann neue Zeile if k==13 or serchar==13 'Return? dann neue Zeile
zeile++ zeile++
'WIN_TILE(46,zeile,2)'print_win(@promt,2,zeile)
spalte:=min_x spalte:=min_x
WIN_TILE(6,zeile,spalte) WIN_TILE(6,zeile,spalte)
if ser if ser
if k==13 'Return von Tastatur? -> zur Schnittstelle senden if k==13 'Return von Tastatur? -> zur Schnittstelle senden
ios.sertx($0D)'com.tx($0D) ios.sertx($0D)
ios.sertx($0A)'com.tx($0A) 'manche Terminalprogramme brauchen das ios.sertx($0A) 'manche Terminalprogramme brauchen das
else else
if k==13 if k==13
ausg:=13
quit quit
@ -2875,7 +2936,7 @@ PRI Text_Input(ser,min_x,max_x,min_y,max_y,mode,adr,ch)|k,ii,x,y,serchar,blck,in
else else
textline[adr-1]:=k 'Text in String schreiben textline[adr-1]:=k 'Text in String schreiben
if ser if ser
ios.sertx(k)'com.tx(k) ios.sertx(k)
elseif serchar 'Zeichen von der com. Schnittstelle elseif serchar 'Zeichen von der com. Schnittstelle
WIN_TILE(serchar-16,zeile,spalte++) 'Zeichen ausgeben WIN_TILE(serchar-16,zeile,spalte++) 'Zeichen ausgeben
@ -2886,8 +2947,6 @@ PRI Text_Input(ser,min_x,max_x,min_y,max_y,mode,adr,ch)|k,ii,x,y,serchar,blck,in
else else
spalte:=min_x 'Text in Ram schreiben (Parameter) spalte:=min_x 'Text in Ram schreiben (Parameter)
zeile++ 'neue Zeile zeile++ 'neue Zeile
'if mode
' WIN_TILE(46,zeile,2)'print_win(@promt,2,zeile) 'Eingabepromt in neuer Zeile (Terminal)
if zeile==max_y+1 'letzte Zeile erreicht, dann eine Zeile hochscrollen if zeile==max_y+1 'letzte Zeile erreicht, dann eine Zeile hochscrollen
@ -2895,30 +2954,14 @@ PRI Text_Input(ser,min_x,max_x,min_y,max_y,mode,adr,ch)|k,ii,x,y,serchar,blck,in
ios.scrollup(1,winhcol, min_y, min_x, max_y, max_x,1) ios.scrollup(1,winhcol, min_y, min_x, max_y, max_x,1)
zeile:=max_y 'Zeilennummer wieder auf max_y setzen zeile:=max_y 'Zeilennummer wieder auf max_y setzen
if ma 'Maustaste if inp and ausg==13 'neue Eingabe-Daten
x:=ios.mousex
y:=ios.mousey
kl:=ios.get_window//10 'Icon-Button-Nummer des Fensters
if kl==1 'Abfrage auf Fensterloeschen
if doppelklick
Close_Window(2)
return
if kl==2
Close_Window(2)
return
if(x=>buttonx[4]) and (x=<buttonx[4]+5) and (y==buttony[4]) 'ok im Infofenster
buttonpress(4)
Close_Window(2)
buttonweg 'Button muss extra gelöscht werden, sonst Fehldarstellungen
quit
if inp 'neue Eingabe-Daten
ifnot mode 'Texteingabefenster ifnot mode 'Texteingabefenster
if tmp>0 'Parameter-Modus if tmp>0 'Parameter-Modus
w:=64-ii w:=64-ii
ios.ram_fill(adr_tmp+ii,w,0) 'rest löschen ios.ram_fill(adr_tmp+ii,w,0) 'rest löschen
else else
textline[adr]:=0 'normaler Text-Modus, String abschliessen textline[adr]:=0 'normaler Text-Modus, String abschliessen
return 13
con '************************************** Systeminfo-Programms-Fenster ******************************************************************************************************************* con '************************************** Systeminfo-Programms-Fenster *******************************************************************************************************************
@ -3557,37 +3600,6 @@ PRI textdisplay(mode)|tx,tt,c,x,adr,b
ios.sdclose ios.sdclose
{PRI texteingabe(y):ok|k,sp,i '************** Texteingabe im Dateifenster ******************
sp:=3
i:=0
WIN_TILE(26,y,sp)
bytefill(@textline,12,0) 'Stringpuffer löschen
repeat
k:=ios.key
ma:=ios.mouse_button(0)
if k==13 'Return? dann neue Zeile
ok:=1
textline[i++]:=0
quit
if k==27 'Abbruch
ok:=0
quit
if k==ios#CHAR_BS 'Backspace
if i>0
WIN_TILE(16,y,sp--)
WIN_TILE(26,y,sp)
i--
if k=>32 and k=<122 'Buchstaben und Zahlen
WIN_TILE(k-16,y,sp++)
textline[i++]:=k
if i>12
i:=12 'Zeichen von Tastatur
WIN_TILE(26,y,sp)
if sp>14
sp:=14
}
PRI printfont(str1,a,b,c,d,e)|f PRI printfont(str1,a,b,c,d,e)|f
repeat strsize(str1) repeat strsize(str1)

View File

@ -69,10 +69,11 @@ YMODEM_RAM= $7E400 '... $7E417 Name, der zu sendenden Datei, Was soll gemacht
LINK_RAM = $7FE00 LINK_RAM = $7FE00
PARA_RAM = $7FE40 PARA_RAM = $7FE40
SETTING_RAM = $7FF00 'Hier stehen die System-Settings SETTING_RAM = $7FF00 'Hier stehen die System-Settings
'Bereich 7FFF1-7FFFF 'Systemflags für Plexus und Basic
START_FLAG = $7FFFF 'Flag das Plexus schonmal gestartet wurde ->Logo unterdrücken START_FLAG = $7FFFF 'Flag das Plexus schonmal gestartet wurde ->Logo unterdrücken
ADM_SPEC = %00000000_00000000_00000000_01010011 ADM_SPEC = gc#A_FAT|gc#A_LDR|gc#A_SID|gc#A_LAN|gc#A_RTC|gc#A_PLX'%00000000_00000000_00000000_11110011
'******************Farben ******************************************************** '******************Farben ********************************************************
#$FC, Light_Grey, #$A8, Grey, #$54, Dark_Grey #$FC, Light_Grey, #$A8, Grey, #$54, Dark_Grey
@ -84,7 +85,7 @@ ADM_SPEC = %00000000_00000000_00000000_01010011
#$3C, Light_Teal, #$28, Teal, #$14, Dark_Teal #$3C, Light_Teal, #$28, Teal, #$14, Dark_Teal
#$FF, White, #$00, Black #$FF, White, #$00, Black
obj gc:"glob-con"
VAR VAR
'systemvariablen 'systemvariablen
byte font[25] 'Hilfsstring für Strings aus dem Ram byte font[25] 'Hilfsstring für Strings aus dem Ram
@ -100,7 +101,7 @@ dat
sound_nfo byte "sound.nfo",0 sound_nfo byte "sound.nfo",0
plexus byte "plexus.dll",0 plexus byte "plexus.dll",0
SYSTEM Byte "PLEXUS ",0 'Plexus-Systemverzeichnis SYSTEM Byte "PLEXUS ",0 'Plexus-Systemverzeichnis
Version byte "Version 2.05",0 Version byte "Version 2.06",0
sysfont byte "reg.fnt",0 sysfont byte "reg.fnt",0
scrsaver byte "plexus.dat",0 scrsaver byte "plexus.dat",0
@ -127,7 +128,7 @@ PUB main | i,a
ios.ram_fill(DIR_RAM,$1BFF,0) 'Dir-Speicher löschen 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(DMP_RAM,$1FFF,0) 'Dmp-File-Speicher löschen
ios.ram_fill(TXT_RAM,$2000,0) 'Error-Text-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(LINK_RAM,$ff,0) 'Link-Speicher löschen
ios.ram_fill(MENU_RAM,$500,0) 'Menue-Text-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 ios.ram_fill(YMODEM_RAM,$30,0) 'YMODEM-RAM löschen
'-------------------------------------------------------------------------------------- '--------------------------------------------------------------------------------------
@ -181,25 +182,26 @@ PUB main | i,a
LoadTiletoRam(@scrsaver,SCREEN_SV) 'Plexus-Logo in den Ram laden LoadTiletoRam(@scrsaver,SCREEN_SV) 'Plexus-Logo in den Ram laden
loadtile(SCREEN_SV) 'Plexus-Logo nach Bella laden loadtile(SCREEN_SV) 'Plexus-Logo nach Bella laden
ios.display2dbox(red,0,0,2,39,0) ios.display2dbox(red,0,0,2,39,0)
ios.display2dbox(blue,3,0,5,39,0) ios.display2dbox(light_red,3,0,5,39,0)
ios.display2dbox(orange,6,0,9,39,0) ios.display2dbox(orange,6,0,9,39,0)
ios.display2dbox(light_blue,10,0,10,39,0) ios.display2dbox(dark_red,10,0,10,39,0)
ios.display2dbox(black,11,0,18,39,0) ios.display2dbox(light_orange,11,0,18,39,0)
ios.display2dbox(light_blue,19,0,19,39,0) ios.display2dbox(dark_red,19,0,19,39,0)
ios.display2dbox(orange,20,0,23,39,0) ios.display2dbox(orange,20,0,23,39,0)
ios.display2dbox(blue,24,0,26,39,0) ios.display2dbox(light_red,24,0,26,39,0)
ios.display2dbox(red,27,0,29,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.displaypic(light_orange,black,0,11,10,8,22)'light_orange,0,11,10,8,22) 'Plexus-Logo anzeigen
ios.setpos(7,15) ios.setpos(7,15)
ios.print(string("Welcome to")) ios.print(string("Welcome to"))
ios.setpos(21,12) ios.setpos(21,12)
ios.print(string("for Hive-Computer")) ios.print(string("for Hive-Computer"))
ios.printBoxcolor(0,orange,blue,95) ios.printBoxcolor(0,orange,light_red,95)
ios.setpos(24,14) ios.setpos(24,14)
ios.print(@version) ios.print(@version)
ios.printBoxcolor(0,orange,light_orange,95) ios.printBoxcolor(0,orange,light_orange,95)

View File

@ -126,14 +126,22 @@ pub printat(y,x)
chromaBuffer[punkt]:=color chromaBuffer[punkt]:=color
drawingStop drawingStop
} }
pub put(c,x,y)
displayCharacter(c, printBoxFGColor[win], printBoxBGColor[win], y, x)
pub setx(x) pub setx(x)
printColumn:=x printColumn:=x
pub sety(y) pub sety(y)
printRow:=y printRow:=y
pub getx pub getx
return printColumn return printColumn
pub gety pub gety
return printRow return printRow
PUB printCharacter(character) '' 26 Stack Longs PUB printCharacter(character) '' 26 Stack Longs
'' //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// '' ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -1544,6 +1552,9 @@ if_z jmpret mousePC, displayPC
drawBackground_ret ret ' Return. drawBackground_ret ret ' Return.
fit 496
Dat
' ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ' /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
' Data ' Data
' ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ' /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -1646,14 +1657,15 @@ mouseRightPixels res 1
' ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ' /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
fit 496 ' fit 496
DAT DAT
' //////////////////////Variable Array///////////////////////////////////////////////////////////////////////////////////////// ' //////////////////////Variable Array/////////////////////////////////////////////////////////////////////////////////////////
mouseCache long 0[64] ' Mouse overlay display buffer. mouseCache long 0[64] ' Mouse overlay display buffer.
'chromaBuffer_tail long 0[1_200-(@chromaBuffer_tail-@chromaBuffer)/4] 'Trick von Kuroneko um Speicher zu sparen 'chromaBuffer_tail long 0[1_200-((@chromaBuffer_tail- @chromaBuffer)/4)] 'Trick von Kuroneko um Speicher zu sparen
chromaBuffer long 0[1_200] ' Display chroma buffer. chromaBuffer long 0[1_200] ' Display chroma buffer.
lumaBuffer word 0[1_200] ' Display luma buffer. lumaBuffer word 0[1_200] ' Display luma buffer.
printColor long 0 ' Print cursor color control. printColor long 0 ' Print cursor color control.

View File

@ -59,6 +59,8 @@ ADM_SPEC = %00000000_00000000_00000000_01010011
SETTING_RAM = $7FF00 'Hier stehen die System-Settings SETTING_RAM = $7FF00 'Hier stehen die System-Settings
BRAM = $50000 'Overlay-Puffer BRAM = $50000 'Overlay-Puffer
Hour_Glass = $66800+(167*16*4) 'Sanduhr Hour_Glass = $66800+(167*16*4) 'Sanduhr
MOUSE_RAM = $69400 '....$6943F ' User-Mouse-Pointer 64byte
'******************Farben ******************************************************** '******************Farben ********************************************************
#$FC, Light_Grey, #$A8, Grey, #$54, Dark_Grey #$FC, Light_Grey, #$A8, Grey, #$54, Dark_Grey
#$C0, Light_Red, #$80, Red, #$40, Dark_Red #$C0, Light_Red, #$80, Red, #$40, Dark_Red
@ -153,7 +155,7 @@ PUB main
'-------------------------------------------------------------------------------------- '--------------------------------------------------------------------------------------
cmd_unmount cmd_unmount
iniload 'Ini-Datei mit Farbwerten laden iniload 'Ini-Datei mit Farbwerten laden
ios.mousepointer(MOUSE_RAM)
testfenster testfenster
util:=0 util:=0
repeat repeat

View File

@ -9,7 +9,7 @@
Informationen : hive-project.de Informationen : hive-project.de
Kontakt : zille9@googlemail.com Kontakt : zille9@googlemail.com
System : Hive System : Hive
Name : VGA-Tile-Treiber 640x480 Pixel, 40x30 Zeichen Name : VGA-Tile-Treiber 640x480 Pixel, 40x28 Tiles
Chip : Bellatrix Chip : Bellatrix
Typ : Treiber Typ : Treiber
Version : 01 Version : 01
@ -135,7 +135,7 @@ M3 = %00000000_00000000_00000000_00000000
M4 = %00000010_00000000_00000000_00000000 'busclk=0? M4 = %00000010_00000000_00000000_00000000 'busclk=0?
_pinGroup = 1 _pinGroup = 1
_startUpWait = 3 _startUpWait = 2
buttonbuff=33 'Buttonanzahl 1-32 Textbutton oder icon buttonbuff=33 'Buttonanzahl 1-32 Textbutton oder icon
@ -156,7 +156,7 @@ VAR
byte mouseshow 'Mouse-Pfeil anzeigen oder nicht byte mouseshow 'Mouse-Pfeil anzeigen oder nicht
byte strkette[40] 'stringpuffer fuer Scrolltext byte strkette[40] 'stringpuffer fuer Scrolltext
word tnr,XPos,YPos word tnr,XPos,YPos
byte bnumber[buttonbuff],bx[buttonbuff],by[buttonbuff],bxx[buttonbuff] 'buttonvariable fuer 64 Buttons byte bnumber[buttonbuff],bx[buttonbuff],by[buttonbuff],bxx[buttonbuff] 'buttonvariable fuer 33 Buttons
word xbound,ybound,xxbound,yybound 'x und y bereich der Mouse eingrenzen word xbound,ybound,xxbound,yybound 'x und y bereich der Mouse eingrenzen
long mousetile[16] 'User-Mousetilebuffer long mousetile[16] 'User-Mousetilebuffer
byte hintergr byte hintergr
@ -289,7 +289,7 @@ PUB main | zeichen,n,i,x,y ,speed 'chip: kommandoint
60: get_window 'Tastendruck im Fenster abfragen 60: get_window 'Tastendruck im Fenster abfragen
61: Change_Backuptile 'Backuptile unter dem Player ändern (Itemsammeln) 61: Change_Backuptile 'Backuptile unter dem Player ändern (Itemsammeln)
62: PrintFont 'Text mit Tilefont darstellen 62: PrintFont 'Text mit Tilefont darstellen
63: vga.put(bus_getchar,bus_getchar,bus_getchar)
' ---------------------------------------------- CHIP-MANAGMENT ' ---------------------------------------------- CHIP-MANAGMENT
96: mgr_getcogs 'freie cogs abfragen 96: mgr_getcogs 'freie cogs abfragen
87: mgr_load 'neuen bellatrix-code laden 87: mgr_load 'neuen bellatrix-code laden
@ -332,7 +332,7 @@ PUB init_subsysteme|i',x,y,tn,tmp 'chip: initi
action_key[3]:=5 action_key[3]:=5
action_key[4]:=32 action_key[4]:=32
sp_alter:=0 sp_alter:=0
collision:=0'viereck:=1 collision:=0
vga.printwindow(0) vga.printwindow(0)
vga.printBoxSize(0,0, 0, 29, 39) vga.printBoxSize(0,0, 0, 29, 39)
@ -1061,9 +1061,6 @@ pub Actor_Parameter|i
repeat 4 repeat 4
actor[i++]:=bus_getchar 'tilenr1 actor[i++]:=bus_getchar 'tilenr1
' actor[1]:=bus_getchar 'farbe1
' actor[2]:=bus_getchar 'farbe2
' actor[3]:=bus_getchar 'farbe3
action_x:=bus_getchar action_x:=bus_getchar
action_y:=bus_getchar action_y:=bus_getchar
@ -1179,7 +1176,7 @@ pub Set_sprite_XY|num,vx,vy,p,b
if vy<0 if vy<0
p:=((sprite_y[num]-1)*40)+sprite_x[num] p:=((sprite_y[num]-1)*40)+sprite_x[num]
b:=position(p) b:=position(p) 'Überprüfung auf Blockade-Tile
if b==0 if b==0
sprite_y[num]-- sprite_y[num]--
if sprite_y[num]<1 if sprite_y[num]<1
@ -1236,11 +1233,7 @@ pub Reset_Sprite|i
pub Set_Action_Key|i pub Set_Action_Key|i
repeat 5 repeat 5
action_key[i++]:=bus_getchar action_key[i++]:=bus_getchar
{ action_key[1]:=bus_getchar
action_key[2]:=bus_getchar
action_key[3]:=bus_getchar
action_key[4]:=bus_getchar
}
pub Displaypalette|farbe,hy,hx,a pub Displaypalette|farbe,hy,hx,a
hx:=bus_getchar hx:=bus_getchar
hy:=bus_getchar hy:=bus_getchar

View File

@ -26,8 +26,8 @@ Logbuch :
19-09-2010-dr235 - integration ramdisk 19-09-2010-dr235 - integration ramdisk
- kommandos: xdir, xdel, xrename, xload, xsave, xtype - kommandos: xdir, xdel, xrename, xload, xsave, xtype
20-09-2010-dr235 - blocktransfer für xload/xsave (wesentlich bessere geschwindigkeit!!!) 20-09-2010-dr235 - blocktransfer für xload/xsave (wesentlich bessere geschwindigkeit!!!)
Kommandoliste:
- siehe regime.txt
25-02-2014 - Integration von Regime in Plexus begonnen -> soll die DOS-Shell von Plexus werden 25-02-2014 - Integration von Regime in Plexus begonnen -> soll die DOS-Shell von Plexus werden
@ -42,6 +42,9 @@ Kommandoliste:
29-03-2014 -Fehler im Aufruf der Hilfe-Funktion behoben, durch das Plexus-Verzeichnis wurde die Hilfe-Datei nicht mehr gefunden 29-03-2014 -Fehler im Aufruf der Hilfe-Funktion behoben, durch das Plexus-Verzeichnis wurde die Hilfe-Datei nicht mehr gefunden
-dies wurde durch Setzen des Systemdirmarkers behoben -dies wurde durch Setzen des Systemdirmarkers behoben
-4473 Longs frei -4473 Longs frei
18-05-2014 -direkter Start von Basic-Dateien (.BAS) über Runtime-Modul möglich, dabei ist die Dateiendung wegzulassen
-4480 Longs frei
}} }}
OBJ OBJ
@ -184,7 +187,7 @@ dat
butOK byte " OK ",0 butOK byte " OK ",0
Abbr byte "Cancel",0 Abbr byte "Cancel",0
SYSTEM Byte "PLEXUS ",0 'Plexus-Systemverzeichnis SYSTEM Byte "PLEXUS ",0 'Plexus-Systemverzeichnis
BAS_RT Byte "basrun.dll",0
PUB main | flag ,a,x,y,i,d PUB main | flag ,a,x,y,i,d
ios.start ios.start
@ -194,6 +197,7 @@ PUB main | flag ,a,x,y,i,d
systemdir:=get_dirmarker 'Dir-Marker lesen systemdir:=get_dirmarker 'Dir-Marker lesen
iniload iniload
ios.mousepointer(MOUSE_RAM)
testfenster testfenster
ios.printCursorRate(3) ios.printCursorRate(3)
@ -621,28 +625,19 @@ PRI plx_scan|ack,adr
PRI plx_put|wert PRI plx_put|wert
'if open
device:=numm.FromStr(os_nxtoken1,numm#HEX) device:=numm.FromStr(os_nxtoken1,numm#HEX)
wert := numm.FromStr(os_nxtoken2,numm#HEX) wert := numm.FromStr(os_nxtoken2,numm#HEX)
ios.plxOut(device,wert) ios.plxOut(device,wert)
'else
' ios.print(string("Kein Device geöffnet!"))
' ios.printnl
PRI plx_get PRI plx_get
'################## das funktioniert noch nicht ?! #################### '################## das funktioniert noch nicht ?! ####################
'if open
device:=numm.FromStr(os_nxtoken1,numm#HEX) device:=numm.FromStr(os_nxtoken1,numm#HEX)
ios.print(string("Get : ")) ios.print(string("Get : "))
ios.printhex(ios.plxIn(device),2) ios.printhex(ios.plxIn(device),2)
ios.printnl ios.printnl
'else
' ios.print(string("Kein Device geöffnet!"))
' ios.printnl
PRI plx_test PRI plx_test
'ios.plxHalt
ios.printcursorrate(0) ios.printcursorrate(0)
ios.printcls ios.printcls
repeat repeat
@ -656,12 +651,10 @@ PRI plx_test
print_chan(1,ios.getreg(1)) print_chan(1,ios.getreg(1))
print_chan(2,ios.getreg(2)) print_chan(2,ios.getreg(2))
print_chan(3,ios.getreg(3)) print_chan(3,ios.getreg(3))
'ios.plxout($3A,!(cnt>>23)) show_time 'Zeitanzeige aktualisieren
show_time
until ios.key until ios.key
ios.printnl ios.printnl
ios.printcursorrate(3) ios.printcursorrate(3)
'ios.plxRun
PRI print_chan(cnr,wert) PRI print_chan(cnr,wert)
@ -816,8 +809,8 @@ cmd22 byte "dmset",0
cmd23 byte "dmclr",0 cmd23 byte "dmclr",0
cmd24 byte "dmlist",0 cmd24 byte "dmlist",0
cmd25 byte "debug",0 cmd25 byte "debug",0
cmd26 byte "xload",0 cmd26 byte "time",0
cmd27 byte "xsave",0 cmd27 byte "date",0
cmd28 byte "xdir",0 cmd28 byte "xdir",0
cmd29 byte "xrename",0 cmd29 byte "xrename",0
cmd30 byte "xdel",0 cmd30 byte "xdel",0
@ -893,9 +886,9 @@ elseif strcomp(stradr,@cmd12) 'cd - verzeichnis wechseln
elseif strcomp(stradr,@cmd13) 'aload - lade administra-code elseif strcomp(stradr,@cmd13) 'aload - lade administra-code
cmd_aload cmd_aload
'elseif strcomp(stradr,@cmd26) 'xload 'elseif strcomp(stradr,@cmd26) 'xload
' rd_load ' settime
'elseif strcomp(stradr,@cmd27) 'xsave 'elseif strcomp(stradr,@cmd27) 'xsave
' rd_save ' setdate
'elseif strcomp(stradr,@cmd28) 'xdir 'elseif strcomp(stradr,@cmd28) 'xdir
' rd_dir ' rd_dir
'elseif strcomp(stradr,@cmd29) 'xrename 'elseif strcomp(stradr,@cmd29) 'xrename
@ -919,6 +912,7 @@ elseif strcomp(stradr,@cmd37)
elseif os_testbin(stradr) '.bin elseif os_testbin(stradr) '.bin
elseif os_testadm(stradr) '.adm elseif os_testadm(stradr) '.adm
elseif os_testbel(stradr) '.bel elseif os_testbel(stradr) '.bel
elseif os_testbas(stradr)
'elseif strcomp(stradr,@cmd38) 'elseif strcomp(stradr,@cmd38)
' plx_open ' plx_open
'elseif strcomp(stradr,@cmd39) 'elseif strcomp(stradr,@cmd39)
@ -1079,6 +1073,37 @@ PUB os_testbel(stradr): flag | status,i,len 'sys: test ob kommando a
ios.sdclose ios.sdclose
ios.sddmact(ios#DM_USER) 'u-marker aktivieren ios.sddmact(ios#DM_USER) 'u-marker aktivieren
byte[stradr][len] := 0 'extender wieder abschneiden
PUB os_testbas(stradr): flag | status,i,len 'sys: test ob kommando als bel-datei vorliegt
flag := FALSE
len := strsize(stradr)
repeat i from 0 to 3 '.bel anhängen
byte[stradr][len + i] := byte[@ext4][i]
byte[stradr][len + i] := 0
' im aktuellen dir suchen
status := ios.sdopen("r",stradr) 'datei vorhanden?
if status == 0 'datei gefunden
flag := TRUE
ios.paraset(stradr)
ios.ldbin(@BAS_RT)
else 'datei nicht gefunden
ios.sdclose
{
'im system-dir suchen
ios.sddmset(ios#DM_USER) 'u-marker setzen
ios.sddmact(ios#DM_SYSTEM) 's-marker aktivieren
status := ios.sdopen("r",stradr) 'datei vorhanden?
if status == 0 'datei gefunden
flag := TRUE
ios.belload(stradr) 'bellatrix-code laden
'ios.screeninit(0,1) 'systemmeldung
else 'datei nicht gefunden
ios.sdclose
}
ios.sddmact(ios#DM_USER) 'u-marker aktivieren
byte[stradr][len] := 0 'extender wieder abschneiden byte[stradr][len] := 0 'extender wieder abschneiden
PRI os_printstr(strptr1,strptr2):strptr3 PRI os_printstr(strptr1,strptr2):strptr3
@ -1808,6 +1833,7 @@ msg34 byte "Bellatrix Auflösung : ",0
ext1 byte ".BIN",0 ext1 byte ".BIN",0
ext2 byte ".ADM",0 ext2 byte ".ADM",0
ext3 byte ".BEL",0 ext3 byte ".BEL",0
ext4 byte ".BAS",0
wait1 byte "<WEITER? */q:>",0 wait1 byte "<WEITER? */q:>",0
cstr byte "••••••••",0 cstr byte "••••••••",0

View File

@ -15,7 +15,7 @@ _CLKMODE = XTAL1 + PLL16X
_XINFREQ = 5_000_000 _XINFREQ = 5_000_000
DB_IN = %00000111_11111111_11111111_00000000 'maske: dbus-eingabe DB_IN = %00000111_11111111_11111111_00000000 'maske: dbus-eingabe
#0,JOB_NONE,JOB_POKE,JOB_PEEK,JOB_FILL,JOB_WRLONG,JOB_RDLONG,JOB_WRWORD,JOB_RDWORD,DO_READ,DO_WRITE,PUT_BYTE,GET_BYTE #0,JOB_NONE,JOB_POKE,JOB_PEEK,JOB_FILL,JOB_WRLONG,JOB_RDLONG,JOB_WRWORD,JOB_RDWORD,DO_READ,DO_WRITE,JOB_COPY,JOB_KEEP
VAR VAR
long CogNr long CogNr
long JobNr ' 3 continue params long JobNr ' 3 continue params
@ -42,23 +42,7 @@ pub wr_value(adr,val,m)
repeat until JobNr == JOB_NONE repeat until JobNr == JOB_NONE
dira := DB_IN dira := DB_IN
{pub get_value(chip,m):w
Address := chip
Value := m
dira := 0
JobNr := GET_BYTE
repeat until JobNr == JOB_NONE
dira := DB_IN
w := Werte
pub put_value(chip,m)
Address := chip
Value := m
dira := 0
JobNr := PUT_BYTE
repeat until JobNr == JOB_NONE
dira := DB_IN
}
pub ram_fill(adr,anz,wert) pub ram_fill(adr,anz,wert)
Address:=adr Address:=adr
@ -69,6 +53,24 @@ pub ram_fill(adr,anz,wert)
repeat until JobNr==JOB_NONE repeat until JobNr==JOB_NONE
dira:=DB_IN dira:=DB_IN
pub ram_copy(von,ziel,zahl)
Address:=von
Value:=ziel
Anzahl:=zahl
dira :=0
JobNr:=Job_Copy
repeat until JobNr==JOB_NONE
dira:=DB_IN
pub ram_keep(adr):w
address:=adr
' Value:=0
' Anzahl:=0
dira := 0
JobNr:=Job_keep
repeat until JobNr == JOB_NONE
dira := DB_IN
w := Werte+1
Pub Start Pub Start
CogNr := cognew(@cog_loop,@JobNr) CogNr := cognew(@cog_loop,@JobNr)
@ -82,7 +84,16 @@ DAT ORG 0
cog_loop rdlong _job,par wz ' get job id cog_loop rdlong _job,par wz ' get job id
if_z jmp #cog_loop if_z jmp #cog_loop
'********** Parameter einlesen **********************
mov _ptr,par ' pointer of params
add _ptr,#4 ' move to param 1
rdlong _adr,_ptr ' lese 1.Parameter
add _ptr,#4 ' move to param 2
rdlong _val,_ptr ' lese 2.Parameter
add _ptr,#4 ' move to param 3
rdlong _count,_ptr ' lese 3-Parameter
mov _ftemp,_adr ' Kopie von _adr
'********** Kommandoabfrage *************************
cmp _job,#DO_WRITE wz cmp _job,#DO_WRITE wz
if_z jmp #cog_write if_z jmp #cog_write
@ -92,103 +103,63 @@ cog_loop rdlong _job,par wz ' get job id
cmp _job,#JOB_FILL wz cmp _job,#JOB_FILL wz
if_z jmp #cog_fill if_z jmp #cog_fill
{ cmp _job,#PUT_BYTE wz cmp _job,#JOB_COPY wz
if_z jmp #cog_put if_z jmp #cog_copy
if_z cmp _job,#JOB_KEEP wz
jmp #cog_keeping
cmp _job,#GET_BYTE wz
if_z jmp #cog_get
}
jmp #cog_loop jmp #cog_loop
'************************************************************************************** '**************************************************************************************
cog_ready mov _ptr,par cog_ready mov _ptr,par 'Parameter
mov _job,#JOB_NONE mov _job,#JOB_NONE 'Job mit null füllen
wrlong _job,_ptr wrlong _job,_ptr 'nach hubram
jmp #cog_loop 'zurück zur Abfrageschleife
jmp #cog_loop
'######################################################################################
'######################################################################################
{cog_get call #sub_param
cmp _adr,#1 wz
if_z jmp #adm_get
cog_put call #sub_param
cmp _adr,#1 wz
if_z jmp #adm_put
' cmp _adr,#2 wz
'if_z jmp #bel_put
' cmp _adr,#3 wz
'if_z jmp #ven_put
adm_put
' zeichen zu administra senden
' waitpeq _hs,_hs ' warte auf hs=1 (slave bereit)
and _val,#$ff ' wert maskieren
or _val,_a1 ' + bel=0 wr=0 clk=0
mov outa,_val ' daten + signale ausgeben
mov dira,_DIR_OUT ' bus auf ausgabe schalten
or outa,_a2 ' clk=0 --> clk=1
waitpeq _zero,_hs ' warte auf hs=0
mov dira,_DIR_IN ' bus auf eingabe schalten
mov outa,_s1 ' bussignale inaktiv
jmp #cog_ready
adm_get ' zeichen von administra empfangen
waitpeq _hs,_hs ' warte auf hs=1 (slave bereit)
mov outa,_a3 ' bel=0 wr=1 clk=1
waitpeq _zero,_hs ' warte auf hs=0
mov _val,ina ' daten einlesen
and _val,#$ff ' wert maskieren
mov outa,_s1 ' bussignale inaktiv
mov _tmp,_val
jmp cog_subpeek
}
'######################################################################################
{ outa := %00001001_01011000_00000000_00000000 'prop1=0, wr=0
dira := db_out 'datenbus auf ausgabe stellen
outa[7..0] := c 'daten --> dbus
outa[busclk] := 1 'busclk=1
waitpeq(%00000000_00000000_00000000_00000000,%00001000_00000000_00000000_00000000,0) 'hs=0?
dira := db_in 'bus freigeben
outa := %00001101_01111000_00000000_00000000 'wr=1, prop1=1, busclk=0
}
'###################################################################################### '######################################################################################
'************************************************************************************** '**************************************************************************************
cog_subpeek add _ptr,#4 ' Ergebnis nach Werte übergeben next param cog_subpeek add _ptr,#4 ' Ergebnis nach Werte übergeben next param
wrlong _tmp,_ptr wrlong _tmp,_ptr ' Wert -> hubram
jmp #cog_ready ' ausstieg
'**************************** eine Zeile überspringen *****************************
cog_keeping call #sub_peek
cmp _tmp,#0 wz 'Wert 0?
if_z jmp #cog_keepout 'dann raus
call #moving 'Adresse erhöhen
jmp #cog_keeping 'weiter
cog_keepout mov _tmp,_ftemp 'Adresse nach tmp
jmp #cog_subpeek
'************************Ram-Bereich kopieren**************************************
cog_copy
mov _REGA,_val 'zieladresse merken
loop_copy call #sub_peek 'Wert aus Quellspeicher lesen
mov _val,_tmp 'peekwert nach _val kopieren
mov _adr,_REGA 'zieladresse nach _adr
call #sub_poke 'wert in Zielspeicher schreiben
add _REGA,#1 'Zieladresse erhöhen
call #moving 'Quelladresse erhöhen und nach _adr zurückschreiben
djnz _count,#loop_copy 'counter runterzählen
jmp #cog_ready 'raus
'************************Ram-Bereich mit einem Wert füllen*****************************
cog_fill call #sub_poke 'schreiben
call #moving
djnz _count, #cog_fill'nächste zelle bis _count = 0
jmp #cog_ready jmp #cog_ready
'**************************************************************************************
'########## Parameterfeld (3-Parameter) einlesen###############
sub_param mov _ptr,par ' pointer of params
add _ptr,#4 ' move to param 1
rdlong _adr,_ptr ' get address1
add _ptr,#4 ' move to param 2
rdlong _val,_ptr ' wert
add _ptr,#4 ' move to param 3
rdlong _count,_ptr ' lese Jobnummer
sub_param_ret ret
'************************************************************************************** '************************Byte,Word oder Long schreiben*********************************
cog_write
cog_fill call #sub_param
mov _ftemp,_adr ' adresse merken
loop_fill call #sub_poke ' schreiben
add _ftemp, #1 'adr := adr + 1
mov _adr,_ftemp 'adresse zurueckschreiben
djnz _count, #loop_fill 'nächste zelle bis _count = 0
jmp #cog_ready
'**************************************************************************************
cog_write call #sub_param
mov _ftemp,_adr ' adresse merken
mov _RegA,_val ' wert merken mov _RegA,_val ' wert merken
mov _RegB,#8 ' shiftwert mov _RegB,#8 ' shiftwert
mov _RegC,#3 ' Zaehlerschleifenwert mov _RegC,#3 ' Zaehlerschleifenwert
@ -200,8 +171,8 @@ cog_write call #sub_param
loop_wrlong mov _val,_RegA loop_wrlong mov _val,_RegA
shr _val,_RegB 'wert>>8 shr _val,_RegB 'wert>>8
add _RegB,#8 'shiftwert um 8 erhoehen add _RegB,#8 'shiftwert um 8 erhoehen
add _ftemp, #1 'adr := adr + 1
mov _adr,_ftemp 'adresse zurueckschreiben call #moving
call #sub_poke call #sub_poke
cmp _count,#JOB_WRWORD wz 'wenn wrword hier aussteigen cmp _count,#JOB_WRWORD wz 'wenn wrword hier aussteigen
@ -211,10 +182,8 @@ loop_wrlong mov _val,_RegA
jmp #cog_ready jmp #cog_ready
'************************************************************************************** '***********************Byte, Word oder Long lesen*************************************
cog_read call #sub_param cog_read
mov _ftemp,_adr ' adresse merken
mov _RegA,#8 ' shiftwert mov _RegA,#8 ' shiftwert
mov _RegC,#3 ' Schleifenzaehler mov _RegC,#3 ' Schleifenzaehler
@ -244,12 +213,13 @@ cog_subrdword add _ptr,#4 ' next param
'************************************************************************************** '**************************************************************************************
rd_wr mov _RegB,_tmp rd_wr mov _RegB,_tmp
add _ftemp,#1 'adresse+1 moving add _ftemp,#1 'adresse+1
mov _adr,_ftemp 'adresse zurueckschreiben mov _adr,_ftemp 'adresse zurueckschreiben
moving_ret
rd_wr_ret ret rd_wr_ret ret
'************************************************************************************** '**************************************************************************************
'************************************************************************************** '*****************************ein Byte in den RAM schreiben****************************
sub_poke mov _tmp,_adr ' make a copy sub_poke mov _tmp,_adr ' make a copy
and _val,#$FF ' only D7-D0 and _val,#$FF ' only D7-D0
' BUS ' BUS
@ -266,12 +236,13 @@ sub_poke mov _tmp,_adr ' make a copy
mov outa,_adr ' /WR+/RAMx + A10-A0 + D7-D0 mov outa,_adr ' /WR+/RAMx + A10-A0 + D7-D0
nop nop
nop nop
nop
mov outa,_tmp ' BUS + A10-A0 + D7-D0 mov outa,_tmp ' BUS + A10-A0 + D7-D0
nop nop
mov dira,#0 mov dira,#0
sub_poke_ret ret sub_poke_ret ret
'************************************************************************************** '*****************************Ein Byte aus dem Ram lesen*******************************
sub_peek mov _tmp,_adr ' make a copy sub_peek mov _tmp,_adr ' make a copy
@ -281,19 +252,20 @@ sub_peek mov _tmp,_adr ' make a copy
mov dira,_DIR_IN ' D7..D0 as input mov dira,_DIR_IN ' D7..D0 as input
call #setadr call #setadr
and _tmp,_m_A19 wz ' MSB of address and _tmp,_m_A19 wz ' MSB of address
mov _tmp,_adr 'mov _tmp,_adr
if_z or _adr,_BUS_RD_R1 ' address <= $07FFFF if_z or _adr,_BUS_RD_R1 ' address <= $07FFFF
if_nz or _adr,_BUS_RD_R2 ' address >= $800000 if_nz or _adr,_BUS_RD_R2 ' address >= $800000
nop nop
mov outa,_adr ' /RAMx + A10-A0 mov outa,_adr ' /RAMx + A10-A0
nop nop
nop nop
nop
mov _tmp,ina mov _tmp,ina
nop nop
and _tmp,#$FF ' only D7-D0 and _tmp,#$FF ' only D7-D0
mov dira,#0 mov dira,#0
sub_peek_ret ret sub_peek_ret ret
'************************************************************************************** '******************************RAM-Adresse setzen***************************************
setadr ' ADR HI setadr ' ADR HI
and _adr,_m_A18_A11 ' hi part and _adr,_m_A18_A11 ' hi part
@ -314,7 +286,6 @@ setadr_ret ret
' SRLE LSEAA A18-A11 ' SRLE LSEAA A18-A11
' kD ALMMAAA AAAAAAAA DDDDDDDD ' kD ALMMAAA AAAAAAAA DDDDDDDD
' 21098 76543210 76543210 ' 21098 76543210 76543210
_DIR_OUT long %00000111_11111111_11111111_11111111 _DIR_OUT long %00000111_11111111_11111111_11111111
_DIR_IN long %00000111_11111111_11111111_00000000 _DIR_IN long %00000111_11111111_11111111_00000000
_BUS_INIT long %00000101_01111000_00000000_00000000 _BUS_INIT long %00000101_01111000_00000000_00000000
@ -328,17 +299,40 @@ _m_A19 long %00000100_00001000_00000000_00000000
_m_A18_A11 long %00000000_00000111_11111000_00000000 _m_A18_A11 long %00000000_00000111_11111000_00000000
_m_A10_A00 long %00000000_00000000_00000111_11111111 _m_A10_A00 long %00000000_00000000_00000111_11111111
'|_________________________________ HBEAT '|_________________________________ HBEAT
{
' ======================================================================================
' KONSTANTEN & VARIABELN
' ======================================================================================
' +------------------------------- /hs
' |+------------------------------ /wr
' ||+----------------------------- busclk
' |||+---------------------------- hbeat
' |||| +-------------------------- al
' |||| |+------------------------- /bel
' |||| ||+------------------------ /adm
' |||| |||+----------------------- /ram2
' |||| ||||+---------------------- /ram1
' |||| ||||| +---------- a0..10
' |||| ||||| |
' |||| ||||| | +- d0..7
' |||| |||||+----------+ +------+
_b1 long %00000001_00111000_00000000_00000000 ' adm=1, bel=0, wr=0, busclk=0
_b2 long %00000011_00111000_00000000_00000000 ' adm=1, bel=0, wr=0, busclk=1
_b3 long %00000111_00111000_00000000_00000000 ' adm=1, bel=0, wr=1, busclk=1
_a1 long %00000001_01011000_00000000_00000000 ' adm=0, bel=1, wr=0, busclk=0
_a2 long %00000011_01011000_00000000_00000000 ' adm=0, bel=1, wr=0, busclk=1
_a3 long %00000111_01011000_00000000_00000000 ' adm=0, bel=1, wr=1, busclk=1
_hs long %00001000_00000000_00000000_00000000 ' hs=1?
_zero long %00000000_00000000_00000000_00000000 '
}
_job res 1 _job res 1
_ptr res 1 _ptr res 1
_adr res 1 _adr res 1
_val res 1 _val res 1
_count res 1 _count res 1
_tmp res 22 _tmp res 1
_ftemp res 1 _ftemp res 1
_regA res 1 _regA res 1
_RegB res 1 _RegB res 1
_RegC res 1 _RegC res 1
fit 496 fit 496

File diff suppressed because it is too large Load Diff

View File

@ -99,6 +99,7 @@ ADM_SPEC = %00000000_00000000_00000000_01010011
SETTING_RAM = $7FF00 'Hier stehen die System-Settings SETTING_RAM = $7FF00 'Hier stehen die System-Settings
BRAM = $50000 'Overlay-Puffer BRAM = $50000 'Overlay-Puffer
Hour_Glass = $66800+(167*16*4) 'Sanduhr Hour_Glass = $66800+(167*16*4) 'Sanduhr
MOUSE_RAM = $69400 '....$6943F ' User-Mouse-Pointer 64byte
'******************Farben ******************************************************** '******************Farben ********************************************************
#$FC, Light_Grey, #$A8, Grey, #$54, Dark_Grey #$FC, Light_Grey, #$A8, Grey, #$54, Dark_Grey
#$C0, Light_Red, #$80, Red, #$40, Dark_Red #$C0, Light_Red, #$80, Red, #$40, Dark_Red
@ -197,6 +198,8 @@ PUB main
PORT_ADR:=$20 PORT_ADR:=$20
sepia_iniload 'sepia-ini datei lesen mit gespeicherten Portadressen sepia_iniload 'sepia-ini datei lesen mit gespeicherten Portadressen
ios.set_plxAdr(ADDA_ADR,PORT_ADR) 'Portadressen setzen ios.set_plxAdr(ADDA_ADR,PORT_ADR) 'Portadressen setzen
ios.mousepointer(MOUSE_RAM)
testfenster testfenster
port_setting port_setting
util:=0 util:=0
@ -393,12 +396,9 @@ pri SCAN|ack,a,z,vx
printhex(a,2,10,z,colors[winhcol],colors[act_color]) printhex(a,2,10,z,colors[winhcol],colors[act_color])
if ack if ack
ios.displaytile(Cog_pic,colors[winhcol],green,0,z,vx++) ios.displaytile(Cog_pic,colors[winhcol],green,0,z,vx++) 'unbelegte Adressen
else else
'if a==$5 or a==$50 ios.displaytile(Cog_pic,colors[winhcol],red,0,z,vx++) 'belegte Adressen anzeigen
' ios.displaytile(Cog_pic,colors[winhcol],blue,0,z,vx++) 'Venatrix-Karte wird blau dargestellt
'else
ios.displaytile(Cog_pic,colors[winhcol],red,0,z,vx++)
if vx>27 if vx>27
vx:=12 vx:=12