TriOS/lib/glob-con.spin

488 lines
25 KiB
Plaintext

{{ Bellatrix-Code
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Autor: Ingo Kripahle │
│ Copyright (c) 2012 Ingo Kripahle │
│ See end of file for terms of use. │
│ Die Nutzungsbedingungen befinden sich am Ende der Datei │
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
Informationen : hive-project.de
Kontakt : drohne235@googlemail.com
System : trios
Name :
Chip : global
Typ : konstanten
}}
CON 'Signaldefinitionen --------------------------------------------------------------------------
'signaldefinitionen global
#0, D0,D1,D2,D3,D4,D5,D6,D7 'datenbus
#24, HBEAT 'front-led
BUSCLK 'bustakt
BUS_WR '/wr - schreibsignal
BUS_HS ' '/hs - quittungssignal
I2C_SCL
I2C_SDA
SER_TX
SER_RX
'signaldefinitionen bellatrix
#8, B_VGABASE 'vga-signale (8pin)
#16, B_KEYBC,B_KEYBD 'keyboard-signale
#18, B_MOUSEC,B_MOUSED 'maus-signale
#20, B_VIDBASE 'video-signale(3pin)
#23, B_SELECT 'belatrix-auswahlsignal
'signaldefinitionen administra
#8, A_SOUNDL,A_SOUNDR 'sound (stereo 2 pin)
#10, A_SDD0,A_SDCLK,A_SDCMD,A_SDD3 'sd-cardreader (4 pin)
#21, A_Bluetooth_Line 'Key-Line des HC05-Bluetooth-Moduls
#23, A_SELECT 'administra-auswahlsignal
'plexbus
adm_sda = 19 'i2c-datenpin
adm_scl = 20 'i2c-clockpin
adm_int1 = 21 'interrupt port 1&2
adm_int2 = 22 'interrupt port 3
CON 'KEY_CODES -------------------------------------------------------------------------------------
KEY_CTRL = 2
KEY_ALT = 4
KEY_OS = 8
KEY_ESC = 27
KEY_TAB = 9
KEY_RETURN = 13
KEY_BS = 8
KEY_POS1 = 6
KEY_CURUP = 04
KEY_CURDOWN = 05
KEY_CURLEFT = 02
KEY_CURRIGHT = 03
KEY_PAGEUP = 160
KEY_PAGEDOWN = 162
KEY_SPACE = 32
KEY_F01 = 208
KEY_F02 = 209
KEY_F03 = 210
KEY_F04 = 211
KEY_F05 = 212
KEY_F06 = 213
KEY_F07 = 214
KEY_F08 = 215
KEY_F09 = 216
KEY_F10 = 217
KEY_F11 = 218
KEY_F12 = 219
CON 'ADMINISTRA-FUNKTIONEN --------------------------------------------------------------------------
' +------------- bluetooth
' |+------------ dfc77 receiver
' ||+----------- ays
' |||+---------- com
' |||| +-------- plexbus
' |||| |+------- rtc
' |||| ||+------ lan
' |||| |||+----- sid
' |||| ||||+---- wav
' |||| |||||+--- hss
' |||| ||||||+-- chiploader
' |||| |||||||+- dateisystem
A_FAT = %00000000_00000000_00000000_00000001
A_LDR = %00000000_00000000_00000000_00000010
A_HSS = %00000000_00000000_00000000_00000100
A_WAV = %00000000_00000000_00000000_00001000
A_SID = %00000000_00000000_00000000_00010000
A_LAN = %00000000_00000000_00000000_00100000
A_RTC = %00000000_00000000_00000000_01000000
A_PLX = %00000000_00000000_00000000_10000000
A_COM = %00000000_00000000_00000001_00000000
A_AYS = %00000000_00000000_00000010_00000000
A_DCF = %00000000_00000000_00000100_00000000
A_BLT = %00000000_00000000_00001000_00000000
' |
' ym
' ---------------------------------------------- SD-FUNKTIONEN
#1, a_sdMount 'sd-card mounten '
a_sdOpenDir 'direktory öffnen
a_sdNextFile 'verzeichniseintrag lesen
a_sdOpen 'datei öffnen
a_sdClose 'datei schließen
a_sdGetC 'zeichen lesen
a_sdPutC 'zeichen schreiben
a_sdGetBlk 'block lesen
a_sdPutBlk 'block schreiben
a_sdSeek 'zeiger in datei positionieren
a_sdFAttrib 'dateiattribute übergeben
a_sdVolname 'volumelabel abfragen
a_sdCheckMounted 'test ob volume gemounted ist
a_sdCheckOpen 'test ob eine datei geöffnet ist
a_sdCheckUsed 'test wie viele sektoren benutzt sind
a_sdCheckFree 'test wie viele sektoren frei sind
a_sdNewFile 'neue datei erzeugen
a_sdNewDir 'neues verzeichnis wird erzeugt
a_sdDel 'verzeichnis oder datei löschen
a_sdRename 'verzeichnis oder datei umbenennen
a_sdChAttrib 'attribute ändern
a_sdChDir 'verzeichnis wechseln
a_sdFormat 'medium formatieren
a_sdUnmount 'medium abmelden
a_sdDmAct 'dir-marker aktivieren
a_sdDmSet 'dir-marker setzen
a_sdDmGet 'dir-marker status abfragen
a_sdDmClr 'dir-marker löschen
a_sdDmPut 'dir-marker status setzen
a_sdEOF 'eof abfragen
a_sdPos 'zeiger in Datei abfragen
a_sdCopy 'Datei kopieren
a_sdDirSize '33 'Dateigrösse ->ist quatsch
' ---------------------------------------------- Bluetooth-Funktionen
#35, a_bl_Command_On
a_bl_Command_Off '36
' ---------------------------------------------- COM-FUNKTIONEN
#37, a_comInit
a_comTx
a_comRx '39
' ---------------------------------------------- RTC-FUNKTIONEN
#40, a_rtcTest 'Test if RTC Chip is available
a_rtcGetSeconds 'Returns the current second (0 - 59) from the real time clock.
a_rtcGetMinutes 'Returns the current minute (0 - 59) from the real time clock.
a_rtcGetHours 'Returns the current hour (0 - 23) from the real time clock.
a_rtcGetDay 'Returns the current day (1 - 7) from the real time clock.
a_rtcGetDate 'Returns the current date (1 - 31) from the real time clock.
a_rtcGetMonth 'Returns the current month (1 - 12) from the real time clock.
a_rtcGetYear 'Returns the current year (2000 - 2099) from the real time clock.
a_rtcSetSeconds 'Sets the current real time clock seconds. Seconds - Number to set the seconds to between 0 - 59.
a_rtcSetMinutes 'Sets the current real time clock minutes. Minutes - Number to set the minutes to between 0 - 59.
a_rtcSetHours 'Sets the current real time clock hours. Hours - Number to set the hours to between 0 - 23.
a_rtcSetDay 'Sets the current real time clock day. Day - Number to set the day to between 1 - 7.
a_rtcSetDate 'Sets the current real time clock date. Date - Number to set the date to between 1 - 31.
a_rtcSetMonth 'Sets the current real time clock month. Month - Number to set the month to between 1 - 12.
a_rtcSetYear 'Sets the current real time clock year. Year - Number to set the year to between 2000 - 2099.
a_rtcSetNVSRAM 'Sets the NVSRAM to the selected value (0 - 255) at the index (0 - 55).
a_rtcGetNVSRAM 'Gets the selected NVSRAM value at the index (0 - 55).
a_rtcPauseForSec 'Pauses execution for a number of seconds. Returns a puesdo random value derived from the current clock frequency and the time when called. Number - Number of seconds to pause for between 0 and 2,147,483,647.
a_rtcPauseForMSec 'Pauses execution for a number of milliseconds. Returns a puesdo random value derived from the current clock frequency and the time when called. Number - Number of milliseconds to pause for between 0 and 2,147,483,647.
a_rtcGetTime '59 'Returns the current hour, minute and second from the real time clock.
' ---------------------------------------------- DCF77-FUNKTIONEN
#60, a_DCF_InSync 'Sync-Status senden
a_DCF_Update_Clock 'RTC Synchronisieren
a_DCF_GetBitError
a_DCF_GetDatacount
a_DCF_GetBitNumber
a_DCF_GetBitLevel
a_DCF_GetTimeZone
a_DCF_GetActiveSet
a_DCF_start 'DCF-Empfang starten
a_DCF_stop 'DCF-Empfang stoppen
a_DCF_dcfon 'Status des DCF-Empfängers
a_DCF_GetSeconds
a_DCF_GetMinutes
a_DCF_GetHours
a_DCF_GetWeekDay
a_DCF_GetDay
a_DCF_GetMonth
a_DCF_GetYear '77
' ---------------------------------------------- LAN-FUNKTIONEN
#80, a_lanTXFlush 'Warten, bis Sendepuffer geleert ist
a_lanStart 'Start Network
a_lanStop 'Stop Network
a_lanConnect 'ausgehende TCP-Verbindung öffnen
a_lanListen 'auf eingehende TCP-Verbindung lauschen
a_lanWaitConnTimeout 'bestimmte Zeit auf Verbindung warten
a_lanClose 'TCP-Verbindung schließen
a_lanRXTime 'bestimmte Zeit warten auf Byte aus Empfangspuffer
a_lanRXData 'Daten aus Empfangspuffer lesen
a_lanTXData 'Daten senden
a_lanRXByte 'wenn vorhanden, Byte aus Empfangspuffer lesen
a_lanIsConnected '91 'TRUE, wenn Socket verbunden, sonst FALSE
' ---------------------------------------------- CHIP-MANAGMENT
#92, a_mgrSetSound 'soundsubsysteme verwalten
a_mgrGetSpec 'spezifikation abfragen
a_mgrSetSysSound 'systemsound ein/ausschalten
a_mgrGetSoundSys 'abfrage welches soundsystem aktiv ist
a_mgrALoad 'neuen code booten
a_mgrGetCogs 'freie cogs abfragen
a_mgrGetVer 'codeversion abfragen
a_mgrReboot '99 'neu starten
' ---------------------------------------------- HSS-FUNKTIONEN
#100, a_hssLoad 'hss-datei in puffer laden
a_hssPlay 'play
a_hssStop 'stop
a_hssPause 'pause
a_hssPeek 'register lesen
a_hssIntReg 'interfaceregister auslesen
a_hssVol 'lautstärke setzen
a_sfxFire 'sfx abspielen
a_sfxSetSlot 'sfx-slot setzen
a_sfxKeyOff
a_sfxStop '110
' ---------------------------------------------- PLX-Funktionen
#120, a_plxRun 'plx-bus freigeben
a_plxHalt 'plx-bus anfordern
a_plxIn 'port einlesen
a_plxOut 'port ausgeben
a_plxCh 'ad-wandler auslesen
a_plxGetReg 'poller-register lesen
a_plxSetReg 'poller-register setzen
a_plxStart 'i2c-dialog starten
a_plxStop 'i2c-dialog beenden
a_plxWrite 'i2c byte senden
a_plxRead 'i2c byte empfangen
a_plxPing 'abfrage ob device vorhanden ist
a_plxSetAdr 'adressen adda/ports für poller setzen
' ---------------------------------------------- GAMEDEVICES
a_Joy 'Joystick abfragen (1 x 8bit Port)
a_Paddle 'Paddle abfragen (1 x 8bit Port 1 x Analog)
a_Pad 'Pad abfragen (1 x 8bit Port 2 x Analog)
a_SetJoy 'Port für Joystick setzen
a_SetPad '137 'Chan für Pad setzen
' ---------------------------------------------- Venatrix-Propeller-Slave
a_VexPut 'Register im Venatrix-Plexus schreiben
a_VexGet '139 'Register im Venatrix-Plexus lesen
' ---------------------------------------------- AY-SOUNDFUNKTIONEN
#147, a_ayStart
a_ayStop
a_ayUpdateRegisters '149
' ---------------------------------------------- WAV-FUNKTIONEN
#150, a_sdwStart 'spielt wav-datei direkt von sd-card ab
a_sdwStop 'stopt wav-cog
a_sdwStatus 'fragt status des players ab
a_sdwLeftVol 'lautstärke links
a_sdwRightVol 'lautstärke rechts
a_sdwPause 'player pause/weiter-modus
a_sdwPosition '156
' ---------------------------------------------- SIDCog: DMP-Player-Funktionen (SIDCog2)
#157, a_s_mdmpplay 'dmp-file mono auf sid2 abspielen
a_s_sdmpplay 'dmp-file stereo auf beiden sids abspielen
a_s_dmpstop 'dmp-player beenden
a_s_dmppause 'dmp-player pausenmodus
a_s_dmpstatus 'dmp-player statusabfrage
a_s_dmppos 'player-position im dumpfile
a_s_mute 'alle register löschen
' ---------------------------------------------- SIDCog1-Funktionen
a_s1_setRegister
a_s1_updateRegisters
a_s1_setVolume
a_s1_play
a_s1_noteOn
a_s1_noteOff
a_s1_setFreq
a_s1_setWaveform
a_s1_setPWM
a_s1_setADSR
a_s1_setResonance
a_s1_setCutoff
a_s1_setFilterMask
a_s1_setFilterType
a_s1_enableRingmod
a_s1_enableSynchronization
' ---------------------------------------------- SIDCog2-Funktionen
a_s2_setRegister
a_s2_updateRegisters
a_s2_setVolume
a_s2_play
a_s2_noteOn
a_s2_noteOff
a_s2_setFreq
a_s2_setWaveform
a_s2_setPWM
a_s2_setADSR
a_s2_setResonance
a_s2_setCutoff
a_s2_setFilterMask
a_s2_setFilterType
a_s2_enableRingmod
a_s2_enableSynchronization
' ---------------------------------------------- Zusatzfunktionen
a_s2_resetRegisters
a_s1_resetRegisters
a_s_beep
a_s_dmpreg '199 'soundinformationen senden
' ############################################## mehrfach verwendete Funktionen
' 200 ... 254 können mehrfach verwendet,
' dürfen aber nur einmal
' eingebunden werden
' ---------------------------------------------- Funktionsgenerator
#210, a_startFunctionGenerator
a_stopFunctionGenerator
a_PulseWidth
a_Frequency_HZ
a_Frequency_Centihz
a_SetWaveform
a_SetDampLevel
a_SetUserWaveform
a_setParameter
CON 'BELLATRIX-FUNKTIONEN --------------------------------------------------------------------------
' +----------
' | +-------- window
' | |+------- vektor
' | ||+------ grafik
' | |||+----- text
' | ||||+---- maus
' | |||||+--- tastatur
' | ||||||+-- vga
' | |||||||+- tv
B_TV = %00000000_00000000_00000000_00000001
B_VGA = %00000000_00000000_00000000_00000010
B_KEY = %00000000_00000000_00000000_00000100
B_MOUSE = %00000000_00000000_00000000_00001000
B_TXT = %00000000_00000000_00000000_00010000
B_PIX = %00000000_00000000_00000000_00100000
B_VEC = %00000000_00000000_00000000_01000000
B_WIN = %00000000_00000000_00000000_10000000
#1, B_KEYSTAT 'tastaturstatus senden
B_KEYCODE 'tastaturzeichen senden
B_PRINTCTRL 'steuerzeichen ($100..$1FF) ausgeben
B_KEYSPEC 'statustasten ($100..$1FF) abfragen
B_PRINTLOGO 'hive-logo ausgeben
B_PRINTQCHAR '6 'zeichen ohne steuerzeichen augeben
#80, B_WDEF
B_WSET
B_WGETCOLS
B_WGETROWS
B_WOFRAME '84
#87, B_MGRLOAD 'neuen bellatrix-code laden
B_MGRWSCR 'setzt screen, in welchen geschrieben wird
B_MGRDSCR 'setzt screen, welcher angezeigt wird
B_MGRGETCOL 'farbregister auslesen
B_MGRSETCOL 'farbregister setzen
B_MGRGETRESX 'x-auflösung abfragen
B_MGRGETRESY 'y-auflösung abfragen
B_MGRGETCOLS 'spaltenanzahl abfragen
B_MGRGETROWS 'zeilenanzahl abfragen
B_MGRGETCOGS 'freie cogs abfragen
B_MGRGETSPEC 'spezifikation abfragen
B_MGRGETVER 'codeversion abfragen
B_MGRREBOOT '99 'bellatrix neu starten
' steuerzeichen
#0, B_CMD 'esc-code für zweizeichen-steuersequenzen
B_CLS
B_HOME
B_POS1
B_CURON
B_CUROFF
B_SCROLLUP
B_SCROLLDOWN
B_BACKSPACE
B_TAB
B_LF
B_FREE1
B_FREE2
B_CRLF
' dreizeichen-steuersequenzen
' [B_CMD][B_SCRCMD][...]
#01, B_SETCUR
B_SETX
B_SETY
B_GETX
B_GETY
B_SETCOL
B_FREE3
B_FREE4
B_SINIT
B_TABSET
B_WSETX
B_WSETY
B_WGETX
B_WGETY
CON 'G0-FUNKTIONEN --------------------------------------------------------------------------
#1, G0_KEYSTAT
G0_KEYCODE
G0_KEYSPEC
#10, G0_CLEAR
G0_COPY
G0_COLOR
G0_WIDTH
G0_COLORWIDTH
G0_PLOT
G0_LINE
G0_ARC
G0_VEC
G0_VECARC
G0_PIX
G0_PIXARC
G0_TEXT
G0_TEXTARC
G0_TEXTMODE
G0_BOX
G0_QUAD
G0_TRI
#93, G0_COLORTAB
G0_SCREEN
G0_DATBLK
G0_DATLEN
G0_DYNAMIC
G0_STATIC
G0_REBOOT
PUB glob_con_dummy
return
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. │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
}}