Browse Source

Add BEL functionality from Michael Schweikert

Added BEL functionality to Propeller-based consoles
Build directory cleanup
pull/9/head
Wayne Warthen 8 years ago
parent
commit
0834762f6e
  1. 2
      Source/Build.cmd
  2. 4
      Source/BuildHardware.cmd
  3. 4
      Source/BuildProp.cmd
  4. 7
      Source/Clean.cmd
  5. 5
      Source/Hardware/Build.cmd
  6. 5
      Source/Hardware/Clean.cmd
  7. 12
      Source/Hardware/ReadMe.txt
  8. 4
      Source/Hardware/VDU/Build.cmd
  9. 2
      Source/Hardware/VDU/Clean.cmd
  10. BIN
      Source/Hardware/VDU/VDU.rom
  11. 4
      Source/Prop/Build.cmd
  12. 0
      Source/Prop/Clean.cmd
  13. 12
      Source/Prop/ReadMe.txt
  14. 24
      Source/Prop/Spin/AnsiTerm.spin
  15. 0
      Source/Prop/Spin/E555_SPKEngine.spin
  16. 0
      Source/Prop/Spin/FullDuplexSerial.spin
  17. 0
      Source/Prop/Spin/FullDuplexSerialNull.spin
  18. 0
      Source/Prop/Spin/Keyboard.spin
  19. 43
      Source/Prop/Spin/ParPortProp.spin
  20. 0
      Source/Prop/Spin/Parallax Serial Terminal Null.spin
  21. 0
      Source/Prop/Spin/Parallax Serial Terminal.spin
  22. 28
      Source/Prop/Spin/PropIO.spin
  23. 36
      Source/Prop/Spin/PropIO2.spin
  24. 0
      Source/Prop/Spin/VGA_1024.spin
  25. 0
      Source/Prop/Spin/VGA_HiRes_Text.spin
  26. 0
      Source/Prop/Spin/safe_spi.spin
  27. 0
      Source/Prop/Spin/vga8x8d.spin
  28. 4
      Source/Prop/Spin/vgacolour.spin
  29. 11
      Source/ReadMe.txt

2
Source/Build.cmd

@ -2,7 +2,7 @@
setlocal
REM setlocal & call BuildDoc || exit /b 1 & endlocal
setlocal & call BuildHardware || exit /b 1 & endlocal
setlocal & call BuildProp || exit /b 1 & endlocal
setlocal & call BuildImages || exit /b 1 & endlocal
setlocal & call BuildShared || exit /b 1 & endlocal
REM setlocal & call BuildBP || exit /b 1 & endlocal

4
Source/BuildHardware.cmd

@ -1,4 +0,0 @@
@echo off
setlocal
setlocal & cd Hardware && call Build || exit /b 1 & endlocal

4
Source/BuildProp.cmd

@ -0,0 +1,4 @@
@echo off
setlocal
setlocal & cd Prop && call Build || exit /b 1 & endlocal

7
Source/Clean.cmd

@ -7,13 +7,8 @@ setlocal & cd ZCPR && call Clean.cmd & endlocal
setlocal & cd ZCPR-DJ && call Clean.cmd & endlocal
setlocal & cd ZSDOS && call Clean.cmd & endlocal
setlocal & cd CBIOS && call Clean.cmd & endlocal
setlocal & cd BPBIOS && call Clean.cmd & endlocal
setlocal & cd HBIOS && call Clean.cmd & endlocal
setlocal & cd Doc && call Clean.cmd & endlocal
setlocal & cd Images && call Clean & endlocal
setlocal & cd Hardware && call Clean & endlocal
setlocal & cd Prop && call Clean & endlocal

5
Source/Hardware/Build.cmd

@ -1,5 +0,0 @@
@echo off
setlocal
setlocal & pushd Prop && call Build & endlocal
setlocal & pushd VDU && call Build & endlocal

5
Source/Hardware/Clean.cmd

@ -1,5 +0,0 @@
@echo off
setlocal
setlocal & cd Prop && call Clean & endlocal
setlocal & cd VDU && call Clean & endlocal

12
Source/Hardware/ReadMe.txt

@ -1,12 +0,0 @@
The Hardware directory contains files that may be needed to complete
your system setup that would not be appropriate to include in the
ROM itself or in the ROM disk.
Contents
--------
VDU\vdu.rom: ROM image for VDU onboard EPROM
Prop\PropIO.eeprom: PropIO firmware for use with RomWBW
Prop\PropIO2.eeprom: PropIO V2 firmware for use with RomWBW
Prop\ParPortProp.eeprom: ParPortProp firmware for use with RomWBW

4
Source/Hardware/VDU/Build.cmd

@ -1,4 +0,0 @@
@echo off
setlocal
copy /Y VDU.rom "..\..\..\Binary"

2
Source/Hardware/VDU/Clean.cmd

@ -1,2 +0,0 @@
@echo off
setlocal

BIN
Source/Hardware/VDU/VDU.rom

Binary file not shown.

4
Source/Hardware/Prop/Build.cmd → Source/Prop/Build.cmd

@ -1,7 +1,7 @@
@echo off
setlocal
set TOOLS=../../../Tools
set TOOLS=../../Tools
set PATH=%TOOLS%\bst;%PATH%
@ -16,5 +16,5 @@ echo.
echo Building %1...
bstc Spin\%1 -e -l
if errorlevel 1 goto :eof
move /Y %1.eeprom "..\..\..\Binary"
move /Y %1.eeprom "..\..\Binary"
goto :eof

0
Source/Hardware/Prop/Clean.cmd → Source/Prop/Clean.cmd

12
Source/Prop/ReadMe.txt

@ -0,0 +1,12 @@
The Prop directory contains the files used to build the EEPROM
firmware images for the Propeller based boards supported by
RomWBW.
The build process places the resulting ROM image files in the
Binary directory. The firmware images are intended to integrate
with a host CPU board running RomWBW. The following images are
created:
PropIO.eeprom for use with original PropIO
PropIO2.eeprom for use with PropIO V2
ParPortProp.eeprom for use with Zeta ParPortProp

24
Source/Hardware/Prop/Spin/AnsiTerm.spin → Source/Prop/Spin/AnsiTerm.spin

@ -1,6 +1,7 @@
'' AnsiTerm.spin
''
'' MODIFIED BY WAYNE WARTHEN FOR ANSI COLOR CHARACTER SUPPORT
'' SPEAKER ENHANCEMENT BY MICHAEL SCHWEIKERT
''
'' based on...
''
@ -12,7 +13,7 @@
CON
cols = 80 ' screen columns
rows = 40 ' screen rows
rows = 30 ' screen rows
chars = rows * cols ' screen characters
termRows = 25 ' rows in terminal area
termChars = termRows * cols ' characters in terminal area
@ -21,9 +22,15 @@ CON
statRows = rows - TermRows ' status area rows
blank = $20
spkVol = 75
spkMaxFrq = 1_200
spkMinFrq = 200
spkBase = 13 ' Speaker pin
OBJ
vga : "vgacolour"
'vga : "vga8x8d"
spk : "E555_SPKEngine"
VAR
word screen[chars] ' screen character buffer
@ -83,6 +90,17 @@ PUB vidOn
PUB vidOff
vga.stop
PUB speakerFrequency(newFrequency)
result := spk.speakerFrequency(newFrequency, spkBase)
PUB speakerVolume(newVolume)
result := spk.speakerVolume(newVolume, spkBase)
PUB beep
spk.speakerFrequency(1000, spkBase)
waitcnt((clkfreq >> 4) + cnt)
spk.speakerFrequency(-1, spkBase)
PUB cls
wordfill(@screen, (curAttr | blank), chars)
@ -446,6 +464,10 @@ PUB processChar(c)
setCursorPos(pos)
return
if c == 7 ' bel
beep
return
1: ' Process char following escape
case c
"[":

0
Source/Hardware/Prop/Spin/E555_SPKEngine.spin → Source/Prop/Spin/E555_SPKEngine.spin

0
Source/Hardware/Prop/Spin/FullDuplexSerial.spin → Source/Prop/Spin/FullDuplexSerial.spin

0
Source/Hardware/Prop/Spin/FullDuplexSerialNull.spin → Source/Prop/Spin/FullDuplexSerialNull.spin

0
Source/Hardware/Prop/Spin/Keyboard.spin → Source/Prop/Spin/Keyboard.spin

43
Source/Hardware/Prop/Spin/ParPortProp.spin → Source/Prop/Spin/ParPortProp.spin

@ -38,17 +38,12 @@ CON
_CLKMODE = XTAL1 + PLL16X
_XINFREQ = 5_000_000
SLEEP = 60 * 5 ' Screen saver timeout in seconds
SPK_VOL = 75
SPK_MAXFRQ = 1_200
SPK_MINFRQ = 200
'SLEEP = 60 * 5 ' Screen saver timeout in seconds
SLEEP = 0 ' Zero for no screen saver
VGA_BASE = 16 ' VGA Video pins 16-23 (??)
KBD_BASE = 14 ' PS/2 Keyboard pins 14-15 (DATA, CLK)
SD_BASE = 24 ' SD Card pins 24-27 (DO, CLK, DI, CS)
SPK_BASE = 13 ' Speaker pin
STAT_ATTR1 = %00110000_00000000 ' Status area screen attribute (first line)
STAT_ATTR = %01110000_00000000 ' Status area screen attribute
@ -106,7 +101,6 @@ OBJ
sdc : "safe_spi" ' SD Card Driver
'dbg : "Parallax Serial Terminal" ' Serial Port Driver (debug output)
dbg : "Parallax Serial Terminal Null" ' Do nothing for debug output
spk : "E555_SPKEngine" ' Speaker Driver
sio : "FullDuplexSerial" ' Serial I/O
'sio : "FullDuplexSerialNull" ' Dummy driver to use when debugging
@ -148,7 +142,6 @@ PUB main | tmp
dsp.cls
MsgNewLine
TimerCount := SLEEP
dsp.VidOn
statRows := (dsp.statInfo >> 8) & $FF
@ -209,14 +202,15 @@ PUB main | tmp
MsgStr(string(" OK"))
MsgNewLine
MsgStr(string("Starting Timer..."))
Result := cognew(Timer, @TimerStack)
if (Result < 0)
MsgStr(string(" Failed! Error: "))
MsgDec(Result)
else
MsgStr(string(" OK"))
MsgNewLine
if (SLEEP > 0)
MsgStr(string("Starting Timer..."))
Result := cognew(Timer, @TimerStack)
if (Result < 0)
MsgStr(string(" Failed! Error: "))
MsgDec(Result)
else
MsgStr(string(" OK"))
MsgNewLine
MsgStr(string("Starting PortIO cog..."))
Result := cognew(@Entry, 0) + 1
@ -227,9 +221,7 @@ PUB main | tmp
MsgStr(string(" OK"))
MsgNewLine
spk.speakerFrequency(1000, SPK_BASE)
waitcnt((clkfreq >> 4) + cnt)
spk.speakerFrequency(-1, SPK_BASE)
dsp.beep
MsgStr(string("ParPortProp Ready!"))
MsgNewLine
@ -481,9 +473,9 @@ PRI SpeakerTone | Freq, Duration, tmp
dbg.Str(String("ms"))
dbg.NewLine
spk.speakerFrequency(Freq, SPK_BASE)
dsp.speakerFrequency(Freq)
waitcnt(Duration + cnt)
spk.speakerFrequency(-1, SPK_BASE)
dsp.speakerFrequency(-1)
return
@ -609,9 +601,10 @@ PRI Timer
TimerCount--
PRI Activity
if (TimerCount == 0)
dsp.VidOn
TimerCount := SLEEP
if (SLEEP > 0)
if (TimerCount == 0)
dsp.VidOn
TimerCount := SLEEP
DAT

0
Source/Hardware/Prop/Spin/Parallax Serial Terminal Null.spin → Source/Prop/Spin/Parallax Serial Terminal Null.spin

0
Source/Hardware/Prop/Spin/Parallax Serial Terminal.spin → Source/Prop/Spin/Parallax Serial Terminal.spin

28
Source/Hardware/Prop/Spin/PropIO.spin → Source/Prop/Spin/PropIO.spin

@ -43,7 +43,8 @@ CON
_CLKMODE = XTAL1 + PLL16X
_XINFREQ = 5_000_000
SLEEP = 60 * 5 ' Screen saver timeout in seconds
'SLEEP = 60 * 5 ' Screen saver timeout in seconds
SLEEP = 0 ' Zero for no screen saver
VGA_BASE = 16 ' VGA Video pins 16-23 (??)
KBD_BASE = 14 ' PS/2 Keyboard pins 14-15 (DATA, CLK)
@ -120,7 +121,6 @@ PUB main
dsp.cls
MsgNewLine
TimerCount := SLEEP
dsp.VidOn
statRows := (dsp.statInfo >> 8) & $FF
@ -166,14 +166,15 @@ PUB main
MsgStr(string(" OK"))
MsgNewLine
MsgStr(string("Starting Timer..."))
Result := cognew(Timer, @TimerStack)
if (Result < 0)
MsgStr(string(" Failed! Error: "))
MsgDec(Result)
else
MsgStr(string(" OK"))
MsgNewLine
if (SLEEP > 0)
MsgStr(string("Starting Timer..."))
Result := cognew(Timer, @TimerStack)
if (Result < 0)
MsgStr(string(" Failed! Error: "))
MsgDec(Result)
else
MsgStr(string(" OK"))
MsgNewLine
MsgStr(string("Starting PortIO cog..."))
Result := cognew(@PortIO, 0) + 1
@ -317,9 +318,10 @@ PRI Timer
TimerCount--
PRI Activity
if (TimerCount == 0)
dsp.VidOn
TimerCount := SLEEP
if (SLEEP > 0)
if (TimerCount == 0)
dsp.VidOn
TimerCount := SLEEP
{
PRI DumpBuffer(Buffer) | i, j

36
Source/Hardware/Prop/Spin/PropIO2.spin → Source/Prop/Spin/PropIO2.spin

@ -43,12 +43,12 @@ CON
_CLKMODE = XTAL1 + PLL16X
_XINFREQ = 5_000_000
SLEEP = 60 * 5 ' Screen saver timeout in seconds
'SLEEP = 60 * 5 ' Screen saver timeout in seconds
SLEEP = 0 ' Zero for no screen saver
VGA_BASE = 16 ' VGA Video pins 16-23 (??)
KBD_BASE = 14 ' PS/2 Keyboard pins 14-15 (DATA, CLK)
SD_BASE = 24 ' SD Card pins 24-27 (DO, CLK, DI, CS)
SPK_BASE = 13 ' Speaker pin
STAT_ATTR1 = %00110000_00000000 ' Status area screen attribute (first line)
STAT_ATTR = %01110000_00000000 ' Status area screen attribute
@ -77,14 +77,11 @@ CON
TRMST_ACTMASK = (TRMST_KBDACT | TRMST_DSPACT) ' bit mask for kbd or dsp active
OBJ
'dsp : "VGA_1024" ' VGA Terminal Driver
dsp : "AnsiTerm" ' VGA Terminal Driver
kbd : "Keyboard" ' PS/2 Keyboard Driver
sdc : "safe_spi" ' SD Card Driver
spk : "E555_SPKEngine" ' Speaker Driver
dbg : "Parallax Serial Terminal Null" ' Serial Port Driver (debug output)
VAR
@ -122,7 +119,6 @@ PUB main
dsp.cls
MsgNewLine
TimerCount := SLEEP
dsp.vidOn
statRows := (dsp.statInfo >> 8) & $FF
@ -168,14 +164,15 @@ PUB main
MsgStr(string(" OK"))
MsgNewLine
MsgStr(string("Starting Timer..."))
Result := cognew(Timer, @TimerStack)
if (Result < 0)
MsgStr(string(" Failed! Error: "))
MsgDec(Result)
else
MsgStr(string(" OK"))
MsgNewLine
if (SLEEP > 0)
MsgStr(string("Starting Timer..."))
Result := cognew(Timer, @TimerStack)
if (Result < 0)
MsgStr(string(" Failed! Error: "))
MsgDec(Result)
else
MsgStr(string(" OK"))
MsgNewLine
MsgStr(string("Starting PortIO cog..."))
Result := cognew(@PortIO, 0) + 1
@ -186,9 +183,7 @@ PUB main
MsgStr(string(" OK"))
MsgNewLine
spk.speakerFrequency(1000, SPK_BASE)
waitcnt((clkfreq >> 4) + cnt)
spk.speakerFrequency(-1, SPK_BASE)
dsp.beep
MsgStr(string("PropIO Ready!"))
MsgNewLine
@ -323,9 +318,10 @@ PRI Timer
TimerCount--
PRI Activity
if (TimerCount == 0)
dsp.vidOn
TimerCount := SLEEP
if (SLEEP > 0)
if (TimerCount == 0)
dsp.vidOn
TimerCount := SLEEP
{
PRI DumpBuffer(Buffer) | i, j

0
Source/Hardware/Prop/Spin/VGA_1024.spin → Source/Prop/Spin/VGA_1024.spin

0
Source/Hardware/Prop/Spin/VGA_HiRes_Text.spin → Source/Prop/Spin/VGA_HiRes_Text.spin

0
Source/Hardware/Prop/Spin/safe_spi.spin → Source/Prop/Spin/safe_spi.spin

0
Source/Hardware/Prop/Spin/vga8x8d.spin → Source/Prop/Spin/vga8x8d.spin

4
Source/Hardware/Prop/Spin/vgacolour.spin → Source/Prop/Spin/vgacolour.spin

@ -127,8 +127,8 @@ PUB stop | i
'' Stop VGA driver - frees two COGs
repeat i from 0 to 1
if cog[i]
cogstop(cog[i]~ - 1)
if cog[i]
cogstop(cog[i]~ - 1)
CON

11
Source/ReadMe.txt

@ -279,12 +279,11 @@ You may notice there are a few additional Build*.cmd files in the
Source directory. They are not used or required for building ROM
firmware. Their purpose is described below:
BuildHardware: Some of the RetroBrew Computer support boards
require onboard firmware separate from the CPU
board firmware. For the most part, this is the
Propeller-based boards (ParPortProp and PropIO).
This build script generates the firmware for these
boards.
BuildProp: Some RetroBrew Computer peripheral boards are based
on the Parallax Propeller. The Propeller requires
custom onboard EEPROM firmware to operate. This
command file builds the firmware images for each
of the Propeller-based boards.
BuildImages: RomWBW has the ability to create floppy disk and hard
disk images for use on systems running the RomWBW

Loading…
Cancel
Save