QUAD: Difference between revisions
(65 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== NEWS! == | |||
I have ended my support for this project. | |||
* probably worth mentioning that REX software is not bug free wrt QUAD. I will continue to try and solve the problem but the issue is that QUAD does not always power up in bank zero. This puts some challenges in for REX that I am still sorting out. The QUAD utilities below work though. | |||
* QUAD is now supported in REX Manager! M100 users with QUAD installed will have 4 fully independent banks to use, each with their own assigned option ROM and backup RAM image. | |||
* Oct 14, 2015: I have decided to port this to support T102; a new layout is on it's way and if all goes well I will be able to offer RAM BANKS for T102! UPDATE: T102 can't work with QUAD - ABANDONED! | |||
* April 11, 2015: QUAD V4 was fine. That's my last board update unless something changes. Still working on REX support for QUAD. | |||
* I have started to work on an update to REX Release 4.9 that can make use of QUAD...stay tuned. My goal is to support 4 different option roms and ram images associated with each RAM bank. Also, I placed a board order for QUAD V4. This will probably be the last board design. It is equivalent to QUAD V3 but slightly easier to build. | |||
* March 4, 2015: Well my V3 boards arrived today. All appears fine with them. I built one up and verified that it adds about 3mA of current draw. Seems like it is ready to roll! | |||
* When my latest boards arrive, I will verify the current consumptions, and complete the testing. | |||
'''Test results: Feb 13''' | |||
One question that was worth exploring: How much current is needed to overdrive RAMRST? | |||
This question arises because the technique used to disable the internal ram is to | |||
pull RAMRST high using a diode to +5V. | |||
'''ANSWER''' I measured the current to be 1.8 mA in my M100. | |||
So, this all comes together now. QUAD draws about 3mA of current, and 1.8mA of that is | |||
associated with disabling the internal RAM. | |||
* Feb. 13, 2015: To pick up all the board changes, I've sent a new artwork to the board shop. It will take about a month to get to a point where, if all goes well, QUAD can be released. Thanks for your patience! | |||
'''Test results: Feb 12''' | |||
after some fiddling, and 5 barnacles, I have a pretty good result. | |||
Basic M100 for reference, power supply current = 56.2mA | |||
same M100 with QUAD installed = 59.2 mA | |||
The standby current is still < 1uA. | |||
So that's better than my other 2 ram expansions by quite a bit. | |||
M100 with 32k PG designs = 63 mA | |||
M100 with 64k PG designs = 86 mA | |||
This is in beta still; not quite ready to release. I have some software testing to do, | |||
and a couple more hardware things to look at.. | |||
Also, while QUAD is compatible with REX, I have not implemented support for it yet in REXMGR. TBD. | |||
* February 8 2015 - Some good progress made; all functions appear to be working well. | |||
* did some power measurements. QUAD increased the current consumption of the M100 by ~20 mA. It would be nicer if it was less of an impact as this would decrease battery life by ~30%. So, I'm going to investigate where the current is going and if it can be reduced. | |||
== Supported Models == | == Supported Models == | ||
* Model 100 only | * Model 100 only | ||
== Features == | == Features == | ||
Line 7: | Line 60: | ||
* provides 4 banks of 32kB SRAM | * provides 4 banks of 32kB SRAM | ||
* fully compatible with REX - enables mult-bank operation of REX on M100 | * fully compatible with REX - enables mult-bank operation of REX on M100 (requires new REX software) | ||
* plugs directly into the system bus with no additional modifications (takes over the socket - replaces any other system bus device) | * plugs directly into the system bus with no additional modifications (takes over the socket - replaces any other system bus device) | ||
* this module REPLACES the internal memory - the internal RAM becomes unused/disabled (any plugged 8kB RAM modules can be pulled out and redeployed) | * this module REPLACES the internal memory - the internal RAM becomes unused/disabled (any plugged 8kB RAM modules can be pulled out and redeployed) | ||
* uses the internal NiCd RAM backup battery for reliable operation | * uses the internal NiCd RAM backup battery for reliable operation | ||
* simple software for manual bank switching | * simple software for manual bank switching | ||
* OR - use 0QUAD | * OR - use 0QUAD - a menu enhancement for M100 (see description below) | ||
Line 26: | Line 75: | ||
* use the simple program to bank switch manually | * use the simple program to bank switch manually | ||
* use | * use 0QUAD software - OQUAD integrates a number of features into the M100 MENU | ||
* use with REX (don't use | * use with REX (don't use OQUAD when REX is installed! NOT COMPATIBLE!!!) | ||
=== TIPS === | |||
Power cycling the M100 will always reset QUAD to bank 1. | |||
Line 33: | Line 86: | ||
[[Image:QUAD2.jpg]] | [[Image:QUAD2.jpg]] | ||
Line 58: | Line 113: | ||
[[Image:QUAD3.jpg]] | [[Image:QUAD3.jpg]] | ||
=== Power Consumption === | |||
Adding QUAD to your M100 adds 2-3 mA of current consumption. This is mostly attributed to the current needed to overdrive the A* buffered signal, which allows the external RAM module to function. | |||
The SRAM on QUAD is backed up by the internal NiCd. Removing QUAD will erase all memory contents, so don't do that unless you are ok with losing the contents. | |||
The SRAM consumes < 1uA of current typically from the NiCd, and so will have a small and mostly negligible effect on backup time. However I have not tested this. | |||
== Software for Using the Extra Banks == | == Software for Using the Extra Banks == | ||
You will need some software to make the extra banks accessible. You have 3 options, all of which are exclusive of | You will need some software to make the extra banks accessible. You have 3 options, all of which are exclusive of each other. | ||
1. Use the simple bank switching program below. | 1. Use the simple bank switching program below. | ||
2. Use | 2. Use QUAD.BA | ||
3. Use in conjunction with REX | 3. Use in conjunction with REX | ||
== Simple Bank Switching Program == | |||
=== Simple Bank Switching Program === | |||
The following program can be quickly typed into BASIC and run. It allows manual bank switching. In each bank, you could save this program and call it BANK1.BA, BANK2.BA etc. (the number relating to bank number), so that you know what bank you are in. Kudos to Ken Pettit for helping me figure this one out! | The following program can be quickly typed into BASIC and run. It allows manual bank switching. In each bank, you could save this program and call it BANK1.BA, BANK2.BA etc. (the number relating to bank number), so that you know what bank you are in. Kudos to Ken Pettit for helping me figure this one out! | ||
Line 76: | Line 144: | ||
40 CALLB,X-1,30481 | 40 CALLB,X-1,30481 | ||
== | .. translated ... the program created at location B | ||
B F9 SPHL ; load stack pointer with 30481 | |||
B+1 C3 76F1H JMP 76F1H | |||
76F1H F1 80H OUT 80H ; set the bank number | |||
C9 RET ; return to location at 30481, which is 00 00 (same as RST0) | |||
=== 0QUAD : Advanced MENU add-on for QUAD === | |||
0QUAD is a software program closely based on the PG Designs 0MENU software. I am grateful that some clever people figured out how to do this in the past, and I'm happy to have been able to revive the code and modify it for use with QUAD. | |||
0QUAD provides some interesting features: | 0QUAD provides some interesting features: | ||
Line 84: | Line 159: | ||
* integrates tightly with MENU | * integrates tightly with MENU | ||
* adds function keys to row 8 of MENU - Bank selection, + File commands NAME and KILL | * adds function keys to row 8 of MENU - Bank selection, + File commands NAME and KILL | ||
* when | * when OQUAD is installed and running in each of the 4 banks, OQUAD also enables bank to bank file COPY. | ||
<table border="1"> | <table border="1"> | ||
<tr><td>Status</td><td>Revision</td><td>Description</td><td>File</td><td>Submitter / Date</td></tr> | <tr><td>Status</td><td>Revision</td><td>Description</td><td>File</td><td>Submitter / Date</td></tr> | ||
<tr><td>Beta</td><td>13</td><td>Initial beta release of | <tr><td>Beta</td><td>26</td><td>no known bugs</td><td>[[Media:0QUAD_rev_26.zip|OQUAD_rev_26]]</td><td>[[User:Sadolph|Sadolph]] ([[User talk:Sadolph|talk]]) 12:56, 8 February 2015 (PST)</td></tr> | ||
<tr><td>Beta</td><td>22</td><td>some bug fixes in place</td><td>[[Media:0QUAD_22.zip|OQUAD_rev_22]]</td><td>[[User:Sadolph|Sadolph]] ([[User talk:Sadolph|talk]]) 08:26, 8 February 2015 (PST)</td></tr> | |||
<tr><td>Beta</td><td>13</td><td>Initial beta release of 0QUAD</td><td>[[Media:0QUAD.zip|OQUAD]]</td><td>[[User:Sadolph|Sadolph]] ([[User talk:Sadolph|talk]]) 19:11, 7 February 2015 (PST)</td></tr> | |||
</table> | </table> | ||
=== Installing 0QUAD Software=== | |||
0QUAD should be installed in each of the 4 banks of QUAD. | |||
0QUAD starts life named as QUAD.BA. | |||
IMPORTANT: QUAD.BA is the original file name. After installation, this program is transformed into 0QUAD. | IMPORTANT: QUAD.BA is the original file name. After installation, this program is transformed into 0QUAD. | ||
0QUAD is an invisible .BA program without an extension and when installed it is hidden from view. | 0QUAD is an invisible .BA program without an extension and when installed it is hidden from view. | ||
Use INVISO.BA after QUAD.BA is installed to make | Use INVISO.BA after QUAD.BA is installed to make 0QUAD visible. | ||
INVISO.BA can transform invisible | INVISO.BA can transform invisible 0QUAD to visible QUADv.BA. | ||
INVISO.BA can transform visible QUADv.BA to invisible 0QUAD. | INVISO.BA can transform visible QUADv.BA to invisible 0QUAD. | ||
Line 113: | Line 188: | ||
Power on M100 with QUAD freshly installed. Do a cold restart to ensure RAM is clean. | Power on M100 with QUAD freshly installed. Do a cold restart to ensure RAM is clean. | ||
IMPORTANT: sometimes QUAD does not power up in bank 0. To ensure you are in bank 0 at this point, | |||
go into BASIC and issue the command | |||
OUT128,0 | |||
Do not power cycle the computer, but hit RESET if you must. | |||
'''Step 2''' | '''Step 2''' | ||
Line 121: | Line 201: | ||
QUAD.BA configures itself, deletes unneeded program lines, renames itself 0QUAD, hides itself, and moves itself to be the lowest .BA program in RAM. All these steps are critical for 0QUAD to work correctly. | QUAD.BA configures itself, deletes unneeded program lines, renames itself 0QUAD, hides itself, and moves itself to be the lowest .BA program in RAM. All these steps are critical for 0QUAD to work correctly. | ||
At this point, | At this point, 0QUAD installation is not complete. | ||
'''Step 3''' | '''Step 3''' | ||
At MENU, type < | At MENU, type <0QUAD> <ENTER>. This starts and runs the hidden program 0QUAD. | ||
Line 139: | Line 219: | ||
Repeat the installation of QUAD.BA in each of those banks. | Repeat the installation of QUAD.BA in each of those banks. | ||
To enable bank to bank file COPY, you must have | To enable bank to bank file COPY, you must have 0QUAD fully installed in both the source and target banks. | ||
=== Deinstalling 0QUAD Software=== | |||
To remove 0QUAD please follow these steps. You will need the program INVISO.DO. | |||
IMPORTANT: be sure to EXIT from 0QUAD or QUADv before you delete it! | |||
From any bank that has 0QUAD installed and operating- | |||
'''Step 1''' | |||
Press <F8> to EXIT 0QUAD. | |||
'''Step 2''' | |||
Load INVISO.DO and run it in BASIC. When prompted, type <V> <ENTER>. | |||
This will transform the hidden program 0QUAD into QUADV.BA. | |||
NOTE: at this point, you could run QUADV.BA and use INVISO.DO to hide the program again. | |||
'''Step 3''' | |||
In BASIC, you can now delete QUADV.BA. | |||
0QUAD/QUADV.BA are now removed from the bank. Repeat in each bank as needed. | |||
== OQUAD | === OQUAD Source Code === | ||
The following files are ZIP files containing the source code for QUAD by Revision. | The following files are ZIP files containing the source code for QUAD by Revision. | ||
Line 170: | Line 277: | ||
<tr><td>Status</td><td>Model(s)</td><td>Description</td><td>Impact</td><td>Work Around</td><td>User/ Date</td></tr> | <tr><td>Status</td><td>Model(s)</td><td>Description</td><td>Impact</td><td>Work Around</td><td>User/ Date</td></tr> | ||
</table> | </table> | ||
Line 176: | Line 284: | ||
<table border="1"> | <table border="1"> | ||
<tr><td> | <tr><td>Version</td><td>Filename</td></tr> | ||
</table> | </table> | ||
Line 182: | Line 291: | ||
== QUAD Schematic == | |||
The latest version of schematic is here. This is the V4 PCB. It has a known bug - the flip flops don't always come up "00" as was intended. | |||
<table border="1"> | |||
<tr><td>Version</td><td>Filename</td></tr> | |||
<tr><td>V4</td><td>[[Media:QUAD_schemactic.png|QUADv4]]</td></tr> | |||
</table> |
Latest revision as of 02:08, 24 November 2018
NEWS!
I have ended my support for this project.
- probably worth mentioning that REX software is not bug free wrt QUAD. I will continue to try and solve the problem but the issue is that QUAD does not always power up in bank zero. This puts some challenges in for REX that I am still sorting out. The QUAD utilities below work though.
- QUAD is now supported in REX Manager! M100 users with QUAD installed will have 4 fully independent banks to use, each with their own assigned option ROM and backup RAM image.
- Oct 14, 2015: I have decided to port this to support T102; a new layout is on it's way and if all goes well I will be able to offer RAM BANKS for T102! UPDATE: T102 can't work with QUAD - ABANDONED!
- April 11, 2015: QUAD V4 was fine. That's my last board update unless something changes. Still working on REX support for QUAD.
- I have started to work on an update to REX Release 4.9 that can make use of QUAD...stay tuned. My goal is to support 4 different option roms and ram images associated with each RAM bank. Also, I placed a board order for QUAD V4. This will probably be the last board design. It is equivalent to QUAD V3 but slightly easier to build.
- March 4, 2015: Well my V3 boards arrived today. All appears fine with them. I built one up and verified that it adds about 3mA of current draw. Seems like it is ready to roll!
- When my latest boards arrive, I will verify the current consumptions, and complete the testing.
Test results: Feb 13 One question that was worth exploring: How much current is needed to overdrive RAMRST? This question arises because the technique used to disable the internal ram is to pull RAMRST high using a diode to +5V. ANSWER I measured the current to be 1.8 mA in my M100. So, this all comes together now. QUAD draws about 3mA of current, and 1.8mA of that is associated with disabling the internal RAM.
- Feb. 13, 2015: To pick up all the board changes, I've sent a new artwork to the board shop. It will take about a month to get to a point where, if all goes well, QUAD can be released. Thanks for your patience!
Test results: Feb 12 after some fiddling, and 5 barnacles, I have a pretty good result. Basic M100 for reference, power supply current = 56.2mA same M100 with QUAD installed = 59.2 mA The standby current is still < 1uA. So that's better than my other 2 ram expansions by quite a bit. M100 with 32k PG designs = 63 mA M100 with 64k PG designs = 86 mA
This is in beta still; not quite ready to release. I have some software testing to do, and a couple more hardware things to look at.. Also, while QUAD is compatible with REX, I have not implemented support for it yet in REXMGR. TBD.
- February 8 2015 - Some good progress made; all functions appear to be working well.
- did some power measurements. QUAD increased the current consumption of the M100 by ~20 mA. It would be nicer if it was less of an impact as this would decrease battery life by ~30%. So, I'm going to investigate where the current is going and if it can be reduced.
Supported Models
- Model 100 only
Features
QUAD is a hardware add-on for the Model 100 that provides the user with 4 banks of 32kB, similar to the multiple banks in a T200 or PC-8201.
- provides 4 banks of 32kB SRAM
- fully compatible with REX - enables mult-bank operation of REX on M100 (requires new REX software)
- plugs directly into the system bus with no additional modifications (takes over the socket - replaces any other system bus device)
- this module REPLACES the internal memory - the internal RAM becomes unused/disabled (any plugged 8kB RAM modules can be pulled out and redeployed)
- uses the internal NiCd RAM backup battery for reliable operation
- simple software for manual bank switching
- OR - use 0QUAD - a menu enhancement for M100 (see description below)
Overview
It is pretty simple really - just plug it in, and begin using it.
- use the simple program to bank switch manually
- use 0QUAD software - OQUAD integrates a number of features into the M100 MENU
- use with REX (don't use OQUAD when REX is installed! NOT COMPATIBLE!!!)
TIPS
Power cycling the M100 will always reset QUAD to bank 1.
Hardware Installation
Installation of the hardware is a piece of cake.
Step 1
Flip over the M100. Open up the System Bus hatch. Being careful to have the right orientation, insert QUAD into the System Bus. The arrow points to the Option ROM Socket.
Step 2
Replace the cover. Flip the M100 back over.
Done!
QUAD installed in an M100 -
Power Consumption
Adding QUAD to your M100 adds 2-3 mA of current consumption. This is mostly attributed to the current needed to overdrive the A* buffered signal, which allows the external RAM module to function.
The SRAM on QUAD is backed up by the internal NiCd. Removing QUAD will erase all memory contents, so don't do that unless you are ok with losing the contents.
The SRAM consumes < 1uA of current typically from the NiCd, and so will have a small and mostly negligible effect on backup time. However I have not tested this.
Software for Using the Extra Banks
You will need some software to make the extra banks accessible. You have 3 options, all of which are exclusive of each other.
1. Use the simple bank switching program below. 2. Use QUAD.BA 3. Use in conjunction with REX
Simple Bank Switching Program
The following program can be quickly typed into BASIC and run. It allows manual bank switching. In each bank, you could save this program and call it BANK1.BA, BANK2.BA etc. (the number relating to bank number), so that you know what bank you are in. Kudos to Ken Pettit for helping me figure this one out!
10 INPUT"INPUT BANK ";X:IFX<1ORX>4THEN 10 20 A#=0:B=VARPTR(A#) 30 POKEB,249:POKEB+1,195:POKEB+2,241:POKEB+3,118 40 CALLB,X-1,30481
.. translated ... the program created at location B B F9 SPHL ; load stack pointer with 30481 B+1 C3 76F1H JMP 76F1H
76F1H F1 80H OUT 80H ; set the bank number C9 RET ; return to location at 30481, which is 00 00 (same as RST0)
0QUAD : Advanced MENU add-on for QUAD
0QUAD is a software program closely based on the PG Designs 0MENU software. I am grateful that some clever people figured out how to do this in the past, and I'm happy to have been able to revive the code and modify it for use with QUAD.
0QUAD provides some interesting features:
- integrates tightly with MENU
- adds function keys to row 8 of MENU - Bank selection, + File commands NAME and KILL
- when OQUAD is installed and running in each of the 4 banks, OQUAD also enables bank to bank file COPY.
Status | Revision | Description | File | Submitter / Date |
Beta | 26 | no known bugs | OQUAD_rev_26 | Sadolph (talk) 12:56, 8 February 2015 (PST) |
Beta | 22 | some bug fixes in place | OQUAD_rev_22 | Sadolph (talk) 08:26, 8 February 2015 (PST) |
Beta | 13 | Initial beta release of 0QUAD | OQUAD | Sadolph (talk) 19:11, 7 February 2015 (PST) |
Installing 0QUAD Software
0QUAD should be installed in each of the 4 banks of QUAD.
0QUAD starts life named as QUAD.BA.
IMPORTANT: QUAD.BA is the original file name. After installation, this program is transformed into 0QUAD. 0QUAD is an invisible .BA program without an extension and when installed it is hidden from view.
Use INVISO.BA after QUAD.BA is installed to make 0QUAD visible. INVISO.BA can transform invisible 0QUAD to visible QUADv.BA. INVISO.BA can transform visible QUADv.BA to invisible 0QUAD.
INVISO.BA and QUAD.BA are contained in the ZIP file above.
Step 1
Power on M100 with QUAD freshly installed. Do a cold restart to ensure RAM is clean.
IMPORTANT: sometimes QUAD does not power up in bank 0. To ensure you are in bank 0 at this point, go into BASIC and issue the command OUT128,0 Do not power cycle the computer, but hit RESET if you must.
Step 2
Load QUAD.BA into laptop. Cursor over to QUAD.BA and press ENTER to run the program. As you are now in Bank 1, when queried by QUAD.BA, input <1> <ENTER> when prompted.
QUAD.BA configures itself, deletes unneeded program lines, renames itself 0QUAD, hides itself, and moves itself to be the lowest .BA program in RAM. All these steps are critical for 0QUAD to work correctly.
At this point, 0QUAD installation is not complete.
Step 3
At MENU, type <0QUAD> <ENTER>. This starts and runs the hidden program 0QUAD.
You should now see a number of changes to MENU
- bank number shown in top right corner - file size/free ram indicator in top line - FNKEY commands on line 8
Using 0QUAD, you can now select any of banks 2, 3 or 4. Repeat the installation of QUAD.BA in each of those banks.
To enable bank to bank file COPY, you must have 0QUAD fully installed in both the source and target banks.
Deinstalling 0QUAD Software
To remove 0QUAD please follow these steps. You will need the program INVISO.DO.
IMPORTANT: be sure to EXIT from 0QUAD or QUADv before you delete it!
From any bank that has 0QUAD installed and operating-
Step 1
Press <F8> to EXIT 0QUAD.
Step 2
Load INVISO.DO and run it in BASIC. When prompted, type <V> <ENTER>. This will transform the hidden program 0QUAD into QUADV.BA.
NOTE: at this point, you could run QUADV.BA and use INVISO.DO to hide the program again.
Step 3
In BASIC, you can now delete QUADV.BA.
0QUAD/QUADV.BA are now removed from the bank. Repeat in each bank as needed.
OQUAD Source Code
The following files are ZIP files containing the source code for QUAD by Revision.
Status | Source Files | Revision | Submitter / Date |
Beta | OQUAD_source | 13 | Sadolph (talk) 19:17, 7 February 2015 (PST) |
Memory Testing Software for use with QUAD
The following program can be used to test the memory in each bank. Load the following program into BASIC and run.
Status | Release | Model | Description | File | Revision | Submitter / Date |
QUAD Trouble Reports
Status | Model(s) | Description | Impact | Work Around | User/ Date |
QUAD Enhancement Requests
Version | Filename |
QUAD Schematic
The latest version of schematic is here. This is the V4 PCB. It has a known bug - the flip flops don't always come up "00" as was intended.
Version | Filename |
V4 | QUADv4 |