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 setlocal
REM setlocal & call BuildDoc || exit /b 1 & endlocal 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 BuildImages || exit /b 1 & endlocal
setlocal & call BuildShared || exit /b 1 & endlocal setlocal & call BuildShared || exit /b 1 & endlocal
REM setlocal & call BuildBP || 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 ZCPR-DJ && call Clean.cmd & endlocal
setlocal & cd ZSDOS && call Clean.cmd & endlocal setlocal & cd ZSDOS && call Clean.cmd & endlocal
setlocal & cd CBIOS && call Clean.cmd & endlocal setlocal & cd CBIOS && call Clean.cmd & endlocal
setlocal & cd BPBIOS && call Clean.cmd & endlocal setlocal & cd BPBIOS && call Clean.cmd & endlocal
setlocal & cd HBIOS && call Clean.cmd & endlocal setlocal & cd HBIOS && call Clean.cmd & endlocal
setlocal & cd Doc && call Clean.cmd & endlocal setlocal & cd Doc && call Clean.cmd & endlocal
setlocal & cd Images && call Clean & 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 @echo off
setlocal setlocal
set TOOLS=../../../Tools
set TOOLS=../../Tools
set PATH=%TOOLS%\bst;%PATH% set PATH=%TOOLS%\bst;%PATH%
@ -16,5 +16,5 @@ echo.
echo Building %1... echo Building %1...
bstc Spin\%1 -e -l bstc Spin\%1 -e -l
if errorlevel 1 goto :eof if errorlevel 1 goto :eof
move /Y %1.eeprom "..\..\..\Binary"
move /Y %1.eeprom "..\..\Binary"
goto :eof 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 '' AnsiTerm.spin
'' ''
'' MODIFIED BY WAYNE WARTHEN FOR ANSI COLOR CHARACTER SUPPORT '' MODIFIED BY WAYNE WARTHEN FOR ANSI COLOR CHARACTER SUPPORT
'' SPEAKER ENHANCEMENT BY MICHAEL SCHWEIKERT
'' ''
'' based on... '' based on...
'' ''
@ -12,7 +13,7 @@
CON CON
cols = 80 ' screen columns cols = 80 ' screen columns
rows = 40 ' screen rows
rows = 30 ' screen rows
chars = rows * cols ' screen characters chars = rows * cols ' screen characters
termRows = 25 ' rows in terminal area termRows = 25 ' rows in terminal area
termChars = termRows * cols ' characters in terminal area termChars = termRows * cols ' characters in terminal area
@ -21,9 +22,15 @@ CON
statRows = rows - TermRows ' status area rows statRows = rows - TermRows ' status area rows
blank = $20 blank = $20
spkVol = 75
spkMaxFrq = 1_200
spkMinFrq = 200
spkBase = 13 ' Speaker pin
OBJ OBJ
vga : "vgacolour" vga : "vgacolour"
'vga : "vga8x8d" 'vga : "vga8x8d"
spk : "E555_SPKEngine"
VAR VAR
word screen[chars] ' screen character buffer word screen[chars] ' screen character buffer
@ -83,6 +90,17 @@ PUB vidOn
PUB vidOff PUB vidOff
vga.stop 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 PUB cls
wordfill(@screen, (curAttr | blank), chars) wordfill(@screen, (curAttr | blank), chars)
@ -446,6 +464,10 @@ PUB processChar(c)
setCursorPos(pos) setCursorPos(pos)
return return
if c == 7 ' bel
beep
return
1: ' Process char following escape 1: ' Process char following escape
case c 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 _CLKMODE = XTAL1 + PLL16X
_XINFREQ = 5_000_000 _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 (??) VGA_BASE = 16 ' VGA Video pins 16-23 (??)
KBD_BASE = 14 ' PS/2 Keyboard pins 14-15 (DATA, CLK) KBD_BASE = 14 ' PS/2 Keyboard pins 14-15 (DATA, CLK)
SD_BASE = 24 ' SD Card pins 24-27 (DO, CLK, DI, CS) 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_ATTR1 = %00110000_00000000 ' Status area screen attribute (first line)
STAT_ATTR = %01110000_00000000 ' Status area screen attribute STAT_ATTR = %01110000_00000000 ' Status area screen attribute
@ -106,7 +101,6 @@ OBJ
sdc : "safe_spi" ' SD Card Driver sdc : "safe_spi" ' SD Card Driver
'dbg : "Parallax Serial Terminal" ' Serial Port Driver (debug output) 'dbg : "Parallax Serial Terminal" ' Serial Port Driver (debug output)
dbg : "Parallax Serial Terminal Null" ' Do nothing for debug output dbg : "Parallax Serial Terminal Null" ' Do nothing for debug output
spk : "E555_SPKEngine" ' Speaker Driver
sio : "FullDuplexSerial" ' Serial I/O sio : "FullDuplexSerial" ' Serial I/O
'sio : "FullDuplexSerialNull" ' Dummy driver to use when debugging 'sio : "FullDuplexSerialNull" ' Dummy driver to use when debugging
@ -148,7 +142,6 @@ PUB main | tmp
dsp.cls dsp.cls
MsgNewLine MsgNewLine
TimerCount := SLEEP
dsp.VidOn dsp.VidOn
statRows := (dsp.statInfo >> 8) & $FF statRows := (dsp.statInfo >> 8) & $FF
@ -209,14 +202,15 @@ PUB main | tmp
MsgStr(string(" OK")) MsgStr(string(" OK"))
MsgNewLine 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...")) MsgStr(string("Starting PortIO cog..."))
Result := cognew(@Entry, 0) + 1 Result := cognew(@Entry, 0) + 1
@ -227,9 +221,7 @@ PUB main | tmp
MsgStr(string(" OK")) MsgStr(string(" OK"))
MsgNewLine MsgNewLine
spk.speakerFrequency(1000, SPK_BASE)
waitcnt((clkfreq >> 4) + cnt)
spk.speakerFrequency(-1, SPK_BASE)
dsp.beep
MsgStr(string("ParPortProp Ready!")) MsgStr(string("ParPortProp Ready!"))
MsgNewLine MsgNewLine
@ -481,9 +473,9 @@ PRI SpeakerTone | Freq, Duration, tmp
dbg.Str(String("ms")) dbg.Str(String("ms"))
dbg.NewLine dbg.NewLine
spk.speakerFrequency(Freq, SPK_BASE)
dsp.speakerFrequency(Freq)
waitcnt(Duration + cnt) waitcnt(Duration + cnt)
spk.speakerFrequency(-1, SPK_BASE)
dsp.speakerFrequency(-1)
return return
@ -609,9 +601,10 @@ PRI Timer
TimerCount-- TimerCount--
PRI Activity PRI Activity
if (TimerCount == 0)
dsp.VidOn
TimerCount := SLEEP
if (SLEEP > 0)
if (TimerCount == 0)
dsp.VidOn
TimerCount := SLEEP
DAT 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 _CLKMODE = XTAL1 + PLL16X
_XINFREQ = 5_000_000 _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 (??) VGA_BASE = 16 ' VGA Video pins 16-23 (??)
KBD_BASE = 14 ' PS/2 Keyboard pins 14-15 (DATA, CLK) KBD_BASE = 14 ' PS/2 Keyboard pins 14-15 (DATA, CLK)
@ -120,7 +121,6 @@ PUB main
dsp.cls dsp.cls
MsgNewLine MsgNewLine
TimerCount := SLEEP
dsp.VidOn dsp.VidOn
statRows := (dsp.statInfo >> 8) & $FF statRows := (dsp.statInfo >> 8) & $FF
@ -166,14 +166,15 @@ PUB main
MsgStr(string(" OK")) MsgStr(string(" OK"))
MsgNewLine 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...")) MsgStr(string("Starting PortIO cog..."))
Result := cognew(@PortIO, 0) + 1 Result := cognew(@PortIO, 0) + 1
@ -317,9 +318,10 @@ PRI Timer
TimerCount-- TimerCount--
PRI Activity PRI Activity
if (TimerCount == 0)
dsp.VidOn
TimerCount := SLEEP
if (SLEEP > 0)
if (TimerCount == 0)
dsp.VidOn
TimerCount := SLEEP
{ {
PRI DumpBuffer(Buffer) | i, j 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 _CLKMODE = XTAL1 + PLL16X
_XINFREQ = 5_000_000 _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 (??) VGA_BASE = 16 ' VGA Video pins 16-23 (??)
KBD_BASE = 14 ' PS/2 Keyboard pins 14-15 (DATA, CLK) KBD_BASE = 14 ' PS/2 Keyboard pins 14-15 (DATA, CLK)
SD_BASE = 24 ' SD Card pins 24-27 (DO, CLK, DI, CS) 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_ATTR1 = %00110000_00000000 ' Status area screen attribute (first line)
STAT_ATTR = %01110000_00000000 ' Status area screen attribute 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 TRMST_ACTMASK = (TRMST_KBDACT | TRMST_DSPACT) ' bit mask for kbd or dsp active
OBJ OBJ
'dsp : "VGA_1024" ' VGA Terminal Driver 'dsp : "VGA_1024" ' VGA Terminal Driver
dsp : "AnsiTerm" ' VGA Terminal Driver dsp : "AnsiTerm" ' VGA Terminal Driver
kbd : "Keyboard" ' PS/2 Keyboard Driver kbd : "Keyboard" ' PS/2 Keyboard Driver
sdc : "safe_spi" ' SD Card Driver sdc : "safe_spi" ' SD Card Driver
spk : "E555_SPKEngine" ' Speaker Driver
dbg : "Parallax Serial Terminal Null" ' Serial Port Driver (debug output) dbg : "Parallax Serial Terminal Null" ' Serial Port Driver (debug output)
VAR VAR
@ -122,7 +119,6 @@ PUB main
dsp.cls dsp.cls
MsgNewLine MsgNewLine
TimerCount := SLEEP
dsp.vidOn dsp.vidOn
statRows := (dsp.statInfo >> 8) & $FF statRows := (dsp.statInfo >> 8) & $FF
@ -168,14 +164,15 @@ PUB main
MsgStr(string(" OK")) MsgStr(string(" OK"))
MsgNewLine 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...")) MsgStr(string("Starting PortIO cog..."))
Result := cognew(@PortIO, 0) + 1 Result := cognew(@PortIO, 0) + 1
@ -186,9 +183,7 @@ PUB main
MsgStr(string(" OK")) MsgStr(string(" OK"))
MsgNewLine MsgNewLine
spk.speakerFrequency(1000, SPK_BASE)
waitcnt((clkfreq >> 4) + cnt)
spk.speakerFrequency(-1, SPK_BASE)
dsp.beep
MsgStr(string("PropIO Ready!")) MsgStr(string("PropIO Ready!"))
MsgNewLine MsgNewLine
@ -323,9 +318,10 @@ PRI Timer
TimerCount-- TimerCount--
PRI Activity PRI Activity
if (TimerCount == 0)
dsp.vidOn
TimerCount := SLEEP
if (SLEEP > 0)
if (TimerCount == 0)
dsp.vidOn
TimerCount := SLEEP
{ {
PRI DumpBuffer(Buffer) | i, j 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 '' Stop VGA driver - frees two COGs
repeat i from 0 to 1 repeat i from 0 to 1
if cog[i]
cogstop(cog[i]~ - 1)
if cog[i]
cogstop(cog[i]~ - 1)
CON 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 Source directory. They are not used or required for building ROM
firmware. Their purpose is described below: 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 BuildImages: RomWBW has the ability to create floppy disk and hard
disk images for use on systems running the RomWBW disk images for use on systems running the RomWBW

Loading…
Cancel
Save