Basic/source/Venatrix.spin

90 lines
4.1 KiB
Plaintext

{{
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Autor: Reinhard Zielinski -> Original-Code: Ingo Kripahle │
│ Copyright (c) 2013 Ingo Kripahle │
│ See end of file for terms of use. │
│ Die Nutzungsbedingungen befinden sich am Ende der Datei │
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
Informationen : hive-project.de
Kontakt : zille9@googlemail.com
System : Hive
Name : Bus-Erweiterung für Hive-Computer
Chip : Venatrix
Typ : Treiber
Version : 01
Subversion : 00
Funktion : Bus-System für Erweiterungsmodule
Der integrierte Loader kann Venatrix mit einem beliebigen Code versorgen
20-11-2013 -I2C-Slave Funktion hinzugefügt, damit die Bus-Karte vom Hive (Plexus) erkannt werden kann (Adresse 5)
COG's : MANAGMENT 1 COG
-------------------
1 COG
}}
CON
_CLKMODE = XTAL1 + PLL16X
_XINFREQ = 5_000_000
Treiberversion= 1
' /cs --------+
' clk -------+|
' /wr ------+||
' /hs -----+||| +------------------------- /cs ->bei Venatrix P24 statt P23
' |||| | -------- d0..d7
DB_IN = %00001000_00000000_00000000_00000000 'maske: dbus-eingabe
DB_OUT = %00001000_00000000_00000000_11111111 'maske: dbus-ausgabe
M1 = %00000010_00000000_00000000_00000000 'busclk=1? & /cs=0?
M2 = %00000011_00000000_00000000_00000000 'maske: busclk & /cs (/prop4)
M3 = %00000000_00000000_00000000_00000000 'busclk=0?
M4 = %00000010_00000000_00000000_00000000 'maske busclk
#0, D0,D1,D2,D3,D4,D5,D6,D7 'datenbus (Port A)
#8, B0,B1,B2,B3,B4,B5,B6,B7 'Port B
#16, C0,C1,C2,C3,C4,C5,C6,C7 'Port C
#24, BUS_CS 'Chip-Select
BUSCLK 'bustakt
BUS_WR '/wr - schreibsignal
BUS_HS ' '/hs - quittungssignal
SDA_PIN = 29
SCL_PIN = 28
obj
bus :"Venatrix-Bus" 'allgemeine Bus-Funktionen
i2c_slave: "AiChip_I2cSlave_Slave_003"
Var
byte proghdr[16] 'puffer für objektkopf
long plen 'länge datenblock loader
PUB main | zeichen,i 'chip: kommandointerpreter
''funktionsgruppe : chip
''funktion : kommandointerpreter
''eingabe : -
''ausgabe : -
bus.bus_init
i2c_Slave.Start( SCL_PIN, SDA_PIN, $5, 0, 0, 0 )
repeat
zeichen := bus.bus_getchar 'kommandocode empfangen
case zeichen
' ---------------------------------------------- CHIP-MANAGMENT
96: bus.mgr_getcogs 'freie cogs abfragen
97: bus.mgr_load 'neuen venatrix-code laden
98: bus.bus_putchar(Treiberversion) 'Rückgabe Testwert (Version des Venatrix-Treibers)
99: reboot 'Venatrix neu starten