Plexus 2.06
This commit is contained in:
parent
200fdee5d6
commit
a2d618a594
|
@ -2,4 +2,5 @@
|
|||
|
||||
* text=auto
|
||||
|
||||
*.NFO text eol=crlf
|
||||
*.bat text eol=crlf
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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
|
||||
Hive-Project.de
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
6
make.bat
6
make.bat
|
@ -27,7 +27,7 @@ REM mkdir %sdsys%
|
|||
REM ----------------------------------------------------------------
|
||||
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
|
||||
|
||||
%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
|
||||
move Bluetooth.binary %sdplex%\Bltooth.dll
|
||||
|
||||
%BSTC% -L %libpath% %D% -b -O a source\Venatrix.spin
|
||||
move Venatrix.binary %sdplex%\Venatrix.dll
|
||||
%BSTC% -L %libpath% %D% -b -O a source\Venatrix-Test.spin
|
||||
move Venatrix-Test.binary %sdplex%\Venatrix.dll
|
||||
|
||||
%BSTC% -L %libpath% %D% -b -O a source\YMODEM-Dll.spin
|
||||
move YMODEM-Dll.binary %sdplex%\YMODEM.dll
|
||||
|
|
6
make.sh
6
make.sh
|
@ -25,7 +25,7 @@ mkdir -p ${sdplex}
|
|||
# ----------------------------------------------------------------
|
||||
# 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
|
||||
|
||||
${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
|
||||
mv Bluetooth.binary ${sdplex}/Bltooth.dll
|
||||
|
||||
${BSTC} -L ${libpath} ${D} -b -O a source/Venatrix.spin
|
||||
mv Venatrix.binary ${sdplex}/Venatrix.dll
|
||||
${BSTC} -L ${libpath} ${D} -b -O a source/Venatrix-Test.spin
|
||||
mv Venatrix-Test.binary ${sdplex}/Venatrix.dll
|
||||
|
||||
${BSTC} -L ${libpath} ${D} -b -O a source/YMODEM-Dll.spin
|
||||
mv YMODEM-Dll.binary ${sdplex}/YMODEM.dll
|
||||
|
|
|
@ -67,7 +67,8 @@ panelcol =14 'Farbe des Utility-Panels
|
|||
ADM_SPEC = %00000000_00000000_00000000_01010011
|
||||
TEXT_RAM = $80000
|
||||
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
|
||||
'******************Farben ********************************************************
|
||||
|
@ -183,8 +184,7 @@ PUB main|a
|
|||
'--------------------------------------------------------------------------------------
|
||||
cmd_unmount
|
||||
iniload 'Ini-Datei mit Farbwerten laden
|
||||
|
||||
|
||||
ios.mousepointer(MOUSE_RAM) 'Sanduhr durch Mauszeiger ersetzen
|
||||
testfenster
|
||||
util:=0
|
||||
ios.ram_fill(Text_Ram,$1000,0)
|
||||
|
|
|
@ -57,6 +57,8 @@ ADM_SPEC = %00000000_00000000_00000000_01010011
|
|||
SETTING_RAM = $7FF00 'Hier stehen die System-Settings
|
||||
BRAM = $50000 'Overlay-Puffer
|
||||
Hour_Glass = $66800+(167*16*4)
|
||||
MOUSE_RAM = $69400 '....$6943F ' User-Mouse-Pointer 64byte
|
||||
|
||||
'******************Farben ********************************************************
|
||||
#$FC, Light_Grey, #$A8, Grey, #$54, Dark_Grey
|
||||
#$C0, Light_Red, #$80, Red, #$40, Dark_Red
|
||||
|
@ -140,6 +142,7 @@ PUB main
|
|||
'--------------------------------------------------------------------------------------
|
||||
cmd_unmount
|
||||
iniload 'Ini-Datei mit Farbwerten laden
|
||||
ios.mousepointer(MOUSE_RAM)
|
||||
testfenster
|
||||
util:=0
|
||||
displaytime 'Datum/Zeit
|
||||
|
@ -490,12 +493,15 @@ con '************************************************** Button-Funktionen ******
|
|||
|
||||
PRI buttonpress(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])
|
||||
|
||||
Mouse_Release
|
||||
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])
|
||||
|
||||
|
||||
|
|
|
@ -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. │
|
||||
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||
}}
|
|
@ -501,6 +501,33 @@ Logbuch :
|
|||
-mit unsinnigen Daten gefüllt
|
||||
-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 !!!
|
||||
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)
|
||||
|
@ -545,7 +572,18 @@ SETTING_RAM = $7FF00 'Hier stehen die System-Settings
|
|||
START_FLAG = $7FFFF 'Flag das Plexus schonmal gestartet wurde ->Logo unterdrücken
|
||||
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_X =640
|
||||
BEL_Y =480
|
||||
|
@ -772,6 +810,7 @@ dat
|
|||
DCF77 byte "dcf.dll",0 'DCF77-Empfänger-Test
|
||||
BLUETOOTH byte "bltooth.dll",0 'Bluetooth-Settings
|
||||
Ymodem byte "ymodem.dll",0 'Ymodem-Funktion
|
||||
BAS_RT byte "basrun.dll",0 'Basic-Runtime-Modul
|
||||
|
||||
root byte ".. ",0
|
||||
dirhoch byte ". ",0
|
||||
|
@ -797,7 +836,7 @@ dat
|
|||
Abbr byte "Cancel",0
|
||||
sysfont byte "reg.fnt",0
|
||||
promt byte "OK>",0
|
||||
Version byte "2.05",0
|
||||
Version byte "2.06",0
|
||||
New_dir byte "NEWDIR",0
|
||||
'------------ Tage ------------------------------------
|
||||
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
|
||||
|
||||
'num.init
|
||||
ios.mousebound(0,0,639,479) 'Maus-Bereich festlegen
|
||||
repeat
|
||||
|
||||
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
|
||||
do_restore:=1 'bei Maus-Bedienung Hintergrund wieder herstellen
|
||||
'------------------------------------------------- Fenster-Schließen -------------------------------------------------------------------------------------------------------------
|
||||
if kl==1 'Abfrage auf Fensterloeschen
|
||||
if doppelklick
|
||||
Close_Window(fst)
|
||||
if attribut_fenster 'beim Schließen des Attribut-Fensters SD-Card neu einlese
|
||||
mc:=SD_CARD
|
||||
attribut_fenster:=0
|
||||
if kl==2
|
||||
' if kl==1 'Abfrage auf Fensterloeschen
|
||||
' if doppelklick
|
||||
' Close_Window(fst)
|
||||
' if attribut_fenster 'beim Schließen des Attribut-Fensters SD-Card neu einlese
|
||||
' mc:=SD_CARD
|
||||
' attribut_fenster:=0
|
||||
if kl==1 or kl==2
|
||||
Close_Window(fst)
|
||||
if attribut_fenster
|
||||
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
|
||||
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
|
||||
|
||||
popupy+1:if mountmarker==1
|
||||
|
@ -1615,7 +1657,7 @@ pri show_tab(n)
|
|||
case n
|
||||
1:print_info(vidnfo,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)
|
||||
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)
|
||||
|
||||
ifnot OPEN_FILE(str)
|
||||
ios.mousepointer(Hour_Glass) 'Sanduhr anzeigen
|
||||
ios.ldbin(str)
|
||||
|
||||
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)
|
||||
4:if venatrix
|
||||
ios.venload(@filestring)
|
||||
5:ios.paraset(@filestring)
|
||||
ios.ldbin(@BAS_RT)
|
||||
|
||||
PRI FILE_START|a,c,dirmark
|
||||
|
||||
|
@ -2117,6 +2162,8 @@ PRI FILE_START|a,c,dirmark
|
|||
start_file(3)
|
||||
if strcomp(@buff,@venfile)
|
||||
start_file(4)
|
||||
if strcomp(@buff,@basfile) 'Basic-Runtime starten
|
||||
start_file(5)
|
||||
'****************************** Maus-Pfeil laden **************************************
|
||||
if strcomp(@buff,@maus)
|
||||
loadMouse(@filestring)
|
||||
|
@ -2128,8 +2175,8 @@ PRI FILE_START|a,c,dirmark
|
|||
ifnot OPEN_FILE(@dumpstring)
|
||||
ios.sid_sdmpplay(@dumpstring)
|
||||
play:=1
|
||||
'***************************** Text-oder Basic-Dateien anzeigen **********************
|
||||
if strcomp(@buff,@txtfile) or strcomp(@buff,@basfile) 'Txt oder Bas Dateien anzeigen
|
||||
'***************************** Text-Dateien anzeigen *********************************
|
||||
if strcomp(@buff,@txtfile) 'or strcomp(@buff,@basfile) 'Txt Dateien anzeigen
|
||||
windowloesch 'Dateifenster löschen
|
||||
textfenster 'Textfenster öffnen
|
||||
'playerstop
|
||||
|
@ -2788,7 +2835,7 @@ PRI bdselect(bauds):bd
|
|||
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
|
||||
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
|
||||
spalte:=min_x
|
||||
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
|
||||
|
||||
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
|
||||
serchar:=ios.serread'com.rxcheck 'Zeichen von der com. Schnittstelle lesen
|
||||
if k==27 'Abbruch mit ESC
|
||||
ios.serclose'com.stop
|
||||
if k==27 or ma 'Abbruch mit ESC
|
||||
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
|
||||
Fensterweg
|
||||
return
|
||||
else
|
||||
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 k==13 or serchar==13 'Return? dann neue Zeile
|
||||
zeile++
|
||||
'WIN_TILE(46,zeile,2)'print_win(@promt,2,zeile)
|
||||
spalte:=min_x
|
||||
WIN_TILE(6,zeile,spalte)
|
||||
if ser
|
||||
if k==13 'Return von Tastatur? -> zur Schnittstelle senden
|
||||
ios.sertx($0D)'com.tx($0D)
|
||||
ios.sertx($0A)'com.tx($0A) 'manche Terminalprogramme brauchen das
|
||||
ios.sertx($0D)
|
||||
ios.sertx($0A) 'manche Terminalprogramme brauchen das
|
||||
else
|
||||
if k==13
|
||||
ausg:=13
|
||||
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
|
||||
textline[adr-1]:=k 'Text in String schreiben
|
||||
if ser
|
||||
ios.sertx(k)'com.tx(k)
|
||||
ios.sertx(k)
|
||||
elseif serchar 'Zeichen von der com. Schnittstelle
|
||||
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
|
||||
spalte:=min_x 'Text in Ram schreiben (Parameter)
|
||||
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
|
||||
|
@ -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)
|
||||
zeile:=max_y 'Zeilennummer wieder auf max_y setzen
|
||||
|
||||
if ma 'Maustaste
|
||||
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
|
||||
if inp and ausg==13 'neue Eingabe-Daten
|
||||
ifnot mode 'Texteingabefenster
|
||||
if tmp>0 'Parameter-Modus
|
||||
w:=64-ii
|
||||
ios.ram_fill(adr_tmp+ii,w,0) 'rest löschen
|
||||
else
|
||||
textline[adr]:=0 'normaler Text-Modus, String abschliessen
|
||||
return 13
|
||||
|
||||
|
||||
con '************************************** Systeminfo-Programms-Fenster *******************************************************************************************************************
|
||||
|
||||
|
@ -3557,37 +3600,6 @@ PRI textdisplay(mode)|tx,tt,c,x,adr,b
|
|||
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
|
||||
|
||||
repeat strsize(str1)
|
||||
|
|
|
@ -69,10 +69,11 @@ YMODEM_RAM= $7E400 '... $7E417 Name, der zu sendenden Datei, Was soll gemacht
|
|||
LINK_RAM = $7FE00
|
||||
PARA_RAM = $7FE40
|
||||
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
|
||||
|
||||
|
||||
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 ********************************************************
|
||||
#$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
|
||||
#$FF, White, #$00, Black
|
||||
|
||||
|
||||
obj gc:"glob-con"
|
||||
VAR
|
||||
'systemvariablen
|
||||
byte font[25] 'Hilfsstring für Strings aus dem Ram
|
||||
|
@ -100,7 +101,7 @@ dat
|
|||
sound_nfo byte "sound.nfo",0
|
||||
plexus byte "plexus.dll",0
|
||||
SYSTEM Byte "PLEXUS ",0 'Plexus-Systemverzeichnis
|
||||
Version byte "Version 2.05",0
|
||||
Version byte "Version 2.06",0
|
||||
|
||||
sysfont byte "reg.fnt",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(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(LINK_RAM,$ff,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
|
||||
'--------------------------------------------------------------------------------------
|
||||
|
@ -181,25 +182,26 @@ PUB main | i,a
|
|||
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(light_red,3,0,5,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(blue,24,0,26,39,0)
|
||||
ios.display2dbox(light_red,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.displaypic(light_orange,black,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.printBoxcolor(0,orange,light_red,95)
|
||||
ios.setpos(24,14)
|
||||
ios.print(@version)
|
||||
ios.printBoxcolor(0,orange,light_orange,95)
|
||||
|
|
|
@ -126,14 +126,22 @@ pub printat(y,x)
|
|||
chromaBuffer[punkt]:=color
|
||||
drawingStop
|
||||
}
|
||||
pub put(c,x,y)
|
||||
|
||||
displayCharacter(c, printBoxFGColor[win], printBoxBGColor[win], y, x)
|
||||
|
||||
pub setx(x)
|
||||
printColumn:=x
|
||||
|
||||
pub sety(y)
|
||||
printRow:=y
|
||||
|
||||
pub getx
|
||||
return printColumn
|
||||
|
||||
pub gety
|
||||
return printRow
|
||||
|
||||
PUB printCharacter(character) '' 26 Stack Longs
|
||||
|
||||
'' ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -1544,6 +1552,9 @@ if_z jmpret mousePC, displayPC
|
|||
|
||||
drawBackground_ret ret ' Return.
|
||||
|
||||
|
||||
fit 496
|
||||
Dat
|
||||
' /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
' Data
|
||||
' /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -1646,14 +1657,15 @@ mouseRightPixels res 1
|
|||
|
||||
' /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
fit 496
|
||||
' fit 496
|
||||
|
||||
DAT
|
||||
|
||||
' //////////////////////Variable Array/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
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.
|
||||
lumaBuffer word 0[1_200] ' Display luma buffer.
|
||||
printColor long 0 ' Print cursor color control.
|
||||
|
|
|
@ -59,6 +59,8 @@ ADM_SPEC = %00000000_00000000_00000000_01010011
|
|||
SETTING_RAM = $7FF00 'Hier stehen die System-Settings
|
||||
BRAM = $50000 'Overlay-Puffer
|
||||
Hour_Glass = $66800+(167*16*4) 'Sanduhr
|
||||
MOUSE_RAM = $69400 '....$6943F ' User-Mouse-Pointer 64byte
|
||||
|
||||
'******************Farben ********************************************************
|
||||
#$FC, Light_Grey, #$A8, Grey, #$54, Dark_Grey
|
||||
#$C0, Light_Red, #$80, Red, #$40, Dark_Red
|
||||
|
@ -153,7 +155,7 @@ PUB main
|
|||
'--------------------------------------------------------------------------------------
|
||||
cmd_unmount
|
||||
iniload 'Ini-Datei mit Farbwerten laden
|
||||
|
||||
ios.mousepointer(MOUSE_RAM)
|
||||
testfenster
|
||||
util:=0
|
||||
repeat
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
Informationen : hive-project.de
|
||||
Kontakt : zille9@googlemail.com
|
||||
System : Hive
|
||||
Name : VGA-Tile-Treiber 640x480 Pixel, 40x30 Zeichen
|
||||
Name : VGA-Tile-Treiber 640x480 Pixel, 40x28 Tiles
|
||||
Chip : Bellatrix
|
||||
Typ : Treiber
|
||||
Version : 01
|
||||
|
@ -135,7 +135,7 @@ M3 = %00000000_00000000_00000000_00000000
|
|||
M4 = %00000010_00000000_00000000_00000000 'busclk=0?
|
||||
|
||||
_pinGroup = 1
|
||||
_startUpWait = 3
|
||||
_startUpWait = 2
|
||||
|
||||
|
||||
buttonbuff=33 'Buttonanzahl 1-32 Textbutton oder icon
|
||||
|
@ -156,7 +156,7 @@ VAR
|
|||
byte mouseshow 'Mouse-Pfeil anzeigen oder nicht
|
||||
byte strkette[40] 'stringpuffer fuer Scrolltext
|
||||
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
|
||||
long mousetile[16] 'User-Mousetilebuffer
|
||||
byte hintergr
|
||||
|
@ -289,7 +289,7 @@ PUB main | zeichen,n,i,x,y ,speed 'chip: kommandoint
|
|||
60: get_window 'Tastendruck im Fenster abfragen
|
||||
61: Change_Backuptile 'Backuptile unter dem Player ändern (Itemsammeln)
|
||||
62: PrintFont 'Text mit Tilefont darstellen
|
||||
|
||||
63: vga.put(bus_getchar,bus_getchar,bus_getchar)
|
||||
' ---------------------------------------------- CHIP-MANAGMENT
|
||||
96: mgr_getcogs 'freie cogs abfragen
|
||||
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[4]:=32
|
||||
sp_alter:=0
|
||||
collision:=0'viereck:=1
|
||||
collision:=0
|
||||
|
||||
vga.printwindow(0)
|
||||
vga.printBoxSize(0,0, 0, 29, 39)
|
||||
|
@ -1061,9 +1061,6 @@ pub Actor_Parameter|i
|
|||
|
||||
repeat 4
|
||||
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_y:=bus_getchar
|
||||
|
||||
|
@ -1179,7 +1176,7 @@ pub Set_sprite_XY|num,vx,vy,p,b
|
|||
|
||||
if vy<0
|
||||
p:=((sprite_y[num]-1)*40)+sprite_x[num]
|
||||
b:=position(p)
|
||||
b:=position(p) 'Überprüfung auf Blockade-Tile
|
||||
if b==0
|
||||
sprite_y[num]--
|
||||
if sprite_y[num]<1
|
||||
|
@ -1236,11 +1233,7 @@ pub Reset_Sprite|i
|
|||
pub Set_Action_Key|i
|
||||
repeat 5
|
||||
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
|
||||
hx:=bus_getchar
|
||||
hy:=bus_getchar
|
||||
|
|
|
@ -26,8 +26,8 @@ Logbuch :
|
|||
19-09-2010-dr235 - integration ramdisk
|
||||
- kommandos: xdir, xdel, xrename, xload, xsave, xtype
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
-dies wurde durch Setzen des Systemdirmarkers behoben
|
||||
-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
|
||||
|
@ -184,7 +187,7 @@ dat
|
|||
butOK byte " OK ",0
|
||||
Abbr byte "Cancel",0
|
||||
SYSTEM Byte "PLEXUS ",0 'Plexus-Systemverzeichnis
|
||||
|
||||
BAS_RT Byte "basrun.dll",0
|
||||
PUB main | flag ,a,x,y,i,d
|
||||
|
||||
ios.start
|
||||
|
@ -194,6 +197,7 @@ PUB main | flag ,a,x,y,i,d
|
|||
systemdir:=get_dirmarker 'Dir-Marker lesen
|
||||
|
||||
iniload
|
||||
ios.mousepointer(MOUSE_RAM)
|
||||
testfenster
|
||||
ios.printCursorRate(3)
|
||||
|
||||
|
@ -621,28 +625,19 @@ PRI plx_scan|ack,adr
|
|||
|
||||
PRI plx_put|wert
|
||||
|
||||
'if open
|
||||
device:=numm.FromStr(os_nxtoken1,numm#HEX)
|
||||
wert := numm.FromStr(os_nxtoken2,numm#HEX)
|
||||
ios.plxOut(device,wert)
|
||||
'else
|
||||
' ios.print(string("Kein Device geöffnet!"))
|
||||
' ios.printnl
|
||||
|
||||
PRI plx_get
|
||||
'################## das funktioniert noch nicht ?! ####################
|
||||
'if open
|
||||
device:=numm.FromStr(os_nxtoken1,numm#HEX)
|
||||
ios.print(string("Get : "))
|
||||
ios.printhex(ios.plxIn(device),2)
|
||||
ios.printnl
|
||||
'else
|
||||
' ios.print(string("Kein Device geöffnet!"))
|
||||
' ios.printnl
|
||||
|
||||
PRI plx_test
|
||||
|
||||
'ios.plxHalt
|
||||
ios.printcursorrate(0)
|
||||
ios.printcls
|
||||
repeat
|
||||
|
@ -656,12 +651,10 @@ PRI plx_test
|
|||
print_chan(1,ios.getreg(1))
|
||||
print_chan(2,ios.getreg(2))
|
||||
print_chan(3,ios.getreg(3))
|
||||
'ios.plxout($3A,!(cnt>>23))
|
||||
show_time
|
||||
show_time 'Zeitanzeige aktualisieren
|
||||
until ios.key
|
||||
ios.printnl
|
||||
ios.printcursorrate(3)
|
||||
'ios.plxRun
|
||||
|
||||
PRI print_chan(cnr,wert)
|
||||
|
||||
|
@ -816,8 +809,8 @@ cmd22 byte "dmset",0
|
|||
cmd23 byte "dmclr",0
|
||||
cmd24 byte "dmlist",0
|
||||
cmd25 byte "debug",0
|
||||
cmd26 byte "xload",0
|
||||
cmd27 byte "xsave",0
|
||||
cmd26 byte "time",0
|
||||
cmd27 byte "date",0
|
||||
cmd28 byte "xdir",0
|
||||
cmd29 byte "xrename",0
|
||||
cmd30 byte "xdel",0
|
||||
|
@ -893,9 +886,9 @@ elseif strcomp(stradr,@cmd12) 'cd - verzeichnis wechseln
|
|||
elseif strcomp(stradr,@cmd13) 'aload - lade administra-code
|
||||
cmd_aload
|
||||
'elseif strcomp(stradr,@cmd26) 'xload
|
||||
' rd_load
|
||||
' settime
|
||||
'elseif strcomp(stradr,@cmd27) 'xsave
|
||||
' rd_save
|
||||
' setdate
|
||||
'elseif strcomp(stradr,@cmd28) 'xdir
|
||||
' rd_dir
|
||||
'elseif strcomp(stradr,@cmd29) 'xrename
|
||||
|
@ -919,6 +912,7 @@ elseif strcomp(stradr,@cmd37)
|
|||
elseif os_testbin(stradr) '.bin
|
||||
elseif os_testadm(stradr) '.adm
|
||||
elseif os_testbel(stradr) '.bel
|
||||
elseif os_testbas(stradr)
|
||||
'elseif strcomp(stradr,@cmd38)
|
||||
' plx_open
|
||||
'elseif strcomp(stradr,@cmd39)
|
||||
|
@ -1079,6 +1073,37 @@ PUB os_testbel(stradr): flag | status,i,len 'sys: test ob kommando a
|
|||
ios.sdclose
|
||||
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
|
||||
|
||||
PRI os_printstr(strptr1,strptr2):strptr3
|
||||
|
@ -1808,6 +1833,7 @@ msg34 byte "Bellatrix Auflösung : ",0
|
|||
ext1 byte ".BIN",0
|
||||
ext2 byte ".ADM",0
|
||||
ext3 byte ".BEL",0
|
||||
ext4 byte ".BAS",0
|
||||
wait1 byte "<WEITER? */q:>",0
|
||||
|
||||
cstr byte "••••••••",0
|
||||
|
|
228
source/ram.spin
228
source/ram.spin
|
@ -15,7 +15,7 @@ _CLKMODE = XTAL1 + PLL16X
|
|||
_XINFREQ = 5_000_000
|
||||
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
|
||||
long CogNr
|
||||
long JobNr ' 3 continue params
|
||||
|
@ -42,23 +42,7 @@ pub wr_value(adr,val,m)
|
|||
repeat until JobNr == JOB_NONE
|
||||
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)
|
||||
|
||||
Address:=adr
|
||||
|
@ -69,6 +53,24 @@ pub ram_fill(adr,anz,wert)
|
|||
repeat until JobNr==JOB_NONE
|
||||
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
|
||||
CogNr := cognew(@cog_loop,@JobNr)
|
||||
|
@ -82,7 +84,16 @@ DAT ORG 0
|
|||
|
||||
cog_loop rdlong _job,par wz ' get job id
|
||||
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
|
||||
if_z jmp #cog_write
|
||||
|
||||
|
@ -92,103 +103,63 @@ cog_loop rdlong _job,par wz ' get job id
|
|||
cmp _job,#JOB_FILL wz
|
||||
if_z jmp #cog_fill
|
||||
|
||||
{ cmp _job,#PUT_BYTE wz
|
||||
if_z jmp #cog_put
|
||||
cmp _job,#JOB_COPY wz
|
||||
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
|
||||
|
||||
|
||||
'**************************************************************************************
|
||||
|
||||
cog_ready mov _ptr,par
|
||||
mov _job,#JOB_NONE
|
||||
wrlong _job,_ptr
|
||||
|
||||
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_ready mov _ptr,par 'Parameter
|
||||
mov _job,#JOB_NONE 'Job mit null füllen
|
||||
wrlong _job,_ptr 'nach hubram
|
||||
jmp #cog_loop 'zurück zur Abfrageschleife
|
||||
'######################################################################################
|
||||
|
||||
'**************************************************************************************
|
||||
|
||||
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
|
||||
'**************************************************************************************
|
||||
'########## 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
|
||||
|
||||
'**************************************************************************************
|
||||
|
||||
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
|
||||
'************************Byte,Word oder Long schreiben*********************************
|
||||
cog_write
|
||||
mov _RegA,_val ' wert merken
|
||||
mov _RegB,#8 ' shiftwert
|
||||
mov _RegC,#3 ' Zaehlerschleifenwert
|
||||
|
@ -200,8 +171,8 @@ cog_write call #sub_param
|
|||
loop_wrlong mov _val,_RegA
|
||||
shr _val,_RegB 'wert>>8
|
||||
add _RegB,#8 'shiftwert um 8 erhoehen
|
||||
add _ftemp, #1 'adr := adr + 1
|
||||
mov _adr,_ftemp 'adresse zurueckschreiben
|
||||
|
||||
call #moving
|
||||
call #sub_poke
|
||||
|
||||
cmp _count,#JOB_WRWORD wz 'wenn wrword hier aussteigen
|
||||
|
@ -211,10 +182,8 @@ loop_wrlong mov _val,_RegA
|
|||
|
||||
jmp #cog_ready
|
||||
|
||||
'**************************************************************************************
|
||||
cog_read call #sub_param
|
||||
|
||||
mov _ftemp,_adr ' adresse merken
|
||||
'***********************Byte, Word oder Long lesen*************************************
|
||||
cog_read
|
||||
mov _RegA,#8 ' shiftwert
|
||||
mov _RegC,#3 ' Schleifenzaehler
|
||||
|
||||
|
@ -244,12 +213,13 @@ cog_subrdword add _ptr,#4 ' next param
|
|||
|
||||
'**************************************************************************************
|
||||
rd_wr mov _RegB,_tmp
|
||||
add _ftemp,#1 'adresse+1
|
||||
moving add _ftemp,#1 'adresse+1
|
||||
mov _adr,_ftemp 'adresse zurueckschreiben
|
||||
moving_ret
|
||||
rd_wr_ret ret
|
||||
'**************************************************************************************
|
||||
|
||||
'**************************************************************************************
|
||||
'*****************************ein Byte in den RAM schreiben****************************
|
||||
sub_poke mov _tmp,_adr ' make a copy
|
||||
and _val,#$FF ' only D7-D0
|
||||
' BUS
|
||||
|
@ -266,12 +236,13 @@ sub_poke mov _tmp,_adr ' make a copy
|
|||
mov outa,_adr ' /WR+/RAMx + A10-A0 + D7-D0
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
mov outa,_tmp ' BUS + A10-A0 + D7-D0
|
||||
nop
|
||||
mov dira,#0
|
||||
|
||||
sub_poke_ret ret
|
||||
'**************************************************************************************
|
||||
'*****************************Ein Byte aus dem Ram lesen*******************************
|
||||
|
||||
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
|
||||
call #setadr
|
||||
and _tmp,_m_A19 wz ' MSB of address
|
||||
mov _tmp,_adr
|
||||
'mov _tmp,_adr
|
||||
if_z or _adr,_BUS_RD_R1 ' address <= $07FFFF
|
||||
if_nz or _adr,_BUS_RD_R2 ' address >= $800000
|
||||
nop
|
||||
mov outa,_adr ' /RAMx + A10-A0
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
mov _tmp,ina
|
||||
nop
|
||||
and _tmp,#$FF ' only D7-D0
|
||||
mov dira,#0
|
||||
sub_peek_ret ret
|
||||
'**************************************************************************************
|
||||
'******************************RAM-Adresse setzen***************************************
|
||||
|
||||
setadr ' ADR HI
|
||||
and _adr,_m_A18_A11 ' hi part
|
||||
|
@ -314,7 +286,6 @@ setadr_ret ret
|
|||
' SRLE LSEAA A18-A11
|
||||
' kD ALMMAAA AAAAAAAA DDDDDDDD
|
||||
' 21098 76543210 76543210
|
||||
|
||||
_DIR_OUT long %00000111_11111111_11111111_11111111
|
||||
_DIR_IN long %00000111_11111111_11111111_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_A10_A00 long %00000000_00000000_00000111_11111111
|
||||
'|_________________________________ 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
|
||||
_ptr res 1
|
||||
_adr res 1
|
||||
_val res 1
|
||||
_count res 1
|
||||
_tmp res 22
|
||||
_tmp res 1
|
||||
_ftemp res 1
|
||||
_regA res 1
|
||||
_RegB res 1
|
||||
_RegC res 1
|
||||
|
||||
fit 496
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -99,6 +99,7 @@ ADM_SPEC = %00000000_00000000_00000000_01010011
|
|||
SETTING_RAM = $7FF00 'Hier stehen die System-Settings
|
||||
BRAM = $50000 'Overlay-Puffer
|
||||
Hour_Glass = $66800+(167*16*4) 'Sanduhr
|
||||
MOUSE_RAM = $69400 '....$6943F ' User-Mouse-Pointer 64byte
|
||||
'******************Farben ********************************************************
|
||||
#$FC, Light_Grey, #$A8, Grey, #$54, Dark_Grey
|
||||
#$C0, Light_Red, #$80, Red, #$40, Dark_Red
|
||||
|
@ -197,6 +198,8 @@ PUB main
|
|||
PORT_ADR:=$20
|
||||
sepia_iniload 'sepia-ini datei lesen mit gespeicherten Portadressen
|
||||
ios.set_plxAdr(ADDA_ADR,PORT_ADR) 'Portadressen setzen
|
||||
ios.mousepointer(MOUSE_RAM)
|
||||
|
||||
testfenster
|
||||
port_setting
|
||||
util:=0
|
||||
|
@ -393,12 +396,9 @@ pri SCAN|ack,a,z,vx
|
|||
printhex(a,2,10,z,colors[winhcol],colors[act_color])
|
||||
|
||||
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
|
||||
'if a==$5 or a==$50
|
||||
' 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++)
|
||||
ios.displaytile(Cog_pic,colors[winhcol],red,0,z,vx++) 'belegte Adressen anzeigen
|
||||
|
||||
if vx>27
|
||||
vx:=12
|
||||
|
|
Loading…
Reference in New Issue