Plexus 2.06
This commit is contained in:
parent
200fdee5d6
commit
a2d618a594
|
@ -2,4 +2,5 @@
|
||||||
|
|
||||||
* text=auto
|
* text=auto
|
||||||
|
|
||||||
|
*.NFO text eol=crlf
|
||||||
*.bat 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
|
Mail :Zille09@gmail.com
|
||||||
Hive-Project.de
|
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 ----------------------------------------------------------------
|
||||||
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
|
||||||
|
|
6
make.sh
6
make.sh
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
@ -490,12 +493,15 @@ 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])
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
-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
|
||||||
|
@ -2814,24 +2860,39 @@ PRI Text_Input(ser,min_x,max_x,min_y,max_y,mode,adr,ch)|k,ii,x,y,serchar,blck,in
|
||||||
ma:=ios.mouse_button(0)
|
ma:=ios.mouse_button(0)
|
||||||
|
|
||||||
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
|
||||||
serial:=0
|
y:=ios.mousey
|
||||||
Fensterweg
|
kl:=ios.get_window//10 'Icon-Button-Nummer des Fensters
|
||||||
return
|
if (kl==1) or (kl==2) or (k==27) 'Abfrage auf Fensterloeschen
|
||||||
|
if ser 'Terminalfenster
|
||||||
|
fensterweg
|
||||||
|
ios.serclose
|
||||||
|
serial:=0
|
||||||
|
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 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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{{ VGA-64Farben
|
{{ VGA-64Farben
|
||||||
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||||||
│ Autor: Ingo Kripahle,Reinhard Zielinski │
|
│ Autor: Ingo Kripahle,Reinhard Zielinski │
|
||||||
│ Copyright (c) 2013 Ingo Kriphale,Reinhard Zielinski │
|
│ Copyright (c) 2013 Ingo Kriphale,Reinhard Zielinski │
|
||||||
│ See end of file for terms of use. │
|
│ See end of file for terms of use. │
|
||||||
│ Die Nutzungsbedingungen befinden sich am Ende der Datei │
|
│ Die Nutzungsbedingungen befinden sich am Ende der Datei │
|
||||||
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
@ -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
|
||||||
|
@ -190,7 +190,7 @@ PUB main | zeichen,n,i,x,y ,speed 'chip: kommandoint
|
||||||
speed:=30
|
speed:=30
|
||||||
|
|
||||||
repeat
|
repeat
|
||||||
if mouseshow==1 'Mauspfeil anzeigen
|
if mouseshow==1 'Mauspfeil anzeigen
|
||||||
x+=mouse.delta_x
|
x+=mouse.delta_x
|
||||||
if x=<xbound '<1
|
if x=<xbound '<1
|
||||||
x:=xbound '1
|
x:=xbound '1
|
||||||
|
@ -204,7 +204,7 @@ PUB main | zeichen,n,i,x,y ,speed 'chip: kommandoint
|
||||||
XPos :=x
|
XPos :=x
|
||||||
YPos :=y
|
YPos :=y
|
||||||
'++++++++++++++++++++++++ Sprite-Bewegung ++++++++++++++++++++++++++++++++++++++++++++++++++
|
'++++++++++++++++++++++++ Sprite-Bewegung ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
if Sprite_Move==1
|
if Sprite_Move==1
|
||||||
repeat i from 0 to 7
|
repeat i from 0 to 7
|
||||||
if(spritenr[i]<176) and collision==0 'sprite definiert? und noch keine Kollision passiert
|
if(spritenr[i]<176) and collision==0 'sprite definiert? und noch keine Kollision passiert
|
||||||
if (sprite_x[i]==action_x) and (sprite_y[i]==action_y) 'sprite an Player-Position?
|
if (sprite_x[i]==action_x) and (sprite_y[i]==action_y) 'sprite an Player-Position?
|
||||||
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
228
source/ram.spin
228
source/ram.spin
|
@ -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
|
@ -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
|
||||||
|
@ -216,14 +219,14 @@ PRI os_cmdinput | x,y ,i,dk,a,b,c,port,key,padr,durchlauf,kl
|
||||||
ifnot key=="d" or key=="a"
|
ifnot key=="d" or key=="a"
|
||||||
popup_info_weg
|
popup_info_weg
|
||||||
util:=0
|
util:=0
|
||||||
case key
|
case key
|
||||||
F1_Key:Display_Help
|
F1_Key:Display_Help
|
||||||
F2_Key:Adress_Scanner
|
F2_Key:Adress_Scanner
|
||||||
F12_Key:ausstieg
|
F12_Key:ausstieg
|
||||||
ESC_KEY:popup_info_weg
|
ESC_KEY:popup_info_weg
|
||||||
RETURN_KEY:popup_info_weg
|
RETURN_KEY:popup_info_weg
|
||||||
F3_Key:util:=0
|
F3_Key:util:=0
|
||||||
Display_Info
|
Display_Info
|
||||||
|
|
||||||
if infomarker==0
|
if infomarker==0
|
||||||
Lese_register 'alle portregister lesen, wenn nicht das Scannerfenster angezeigt wird
|
Lese_register 'alle portregister lesen, wenn nicht das Scannerfenster angezeigt wird
|
||||||
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue