QUAD: Difference between revisions

From Bitchin100 DocGarden
Jump to navigationJump to search
 
(49 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


  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..
 


== Features ==
== Features ==
Line 10: 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)
Line 17: Line 67:
*  OR - use 0QUAD - a menu enhancement for M100 (see description below)
*  OR - use 0QUAD - a menu enhancement for M100 (see description below)


== How to Get One ==


  Please get in touch with me on the Bitchin100 mailing list or directly at twospruces geee mail.
  Price is 45$ US + shipping.




Line 30: Line 77:
*  use 0QUAD software - OQUAD integrates a number of features into the M100 MENU
*  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!!!)
*  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 35: Line 86:


[[Image:QUAD2.jpg]]
[[Image:QUAD2.jpg]]


== Hardware Installation ==
== Hardware Installation ==
Line 61: Line 115:




=== 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 ==
Line 70: Line 132:
   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 79: 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 ===


== OQUAD : 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.
 
OQUAD 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 95: Line 164:
<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>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>
<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.
== Installing 0QUAD Software==
 
OQUAD should be installed in each of the 4 banks of QUAD.
 
OQUAD 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 OQUAD visible.
   Use INVISO.BA after QUAD.BA is installed to make 0QUAD visible.
   INVISO.BA can transform invisible OQUAD to visible QUADv.BA.
   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 120: 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 132: Line 205:
'''Step 3'''
'''Step 3'''


   At MENU, type <OQUAD> <ENTER>.  This starts and runs the hidden program OQUAD.
   At MENU, type <0QUAD> <ENTER>.  This starts and runs the hidden program 0QUAD.




Line 146: 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 OQUAD fully installed in both the source and target 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.


== OQUAD Source Code ==
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.
The following files are ZIP files containing the source code for QUAD by Revision.
Line 156: Line 256:
<tr><td>Beta</td><td>[[Media:0QUAD_source.zip|OQUAD_source]]</td><td>13</td><td>[[User:Sadolph|Sadolph]] ([[User talk:Sadolph|talk]]) 19:17, 7 February 2015 (PST)</td></tr>
<tr><td>Beta</td><td>[[Media:0QUAD_source.zip|OQUAD_source]]</td><td>13</td><td>[[User:Sadolph|Sadolph]] ([[User talk:Sadolph|talk]]) 19:17, 7 February 2015 (PST)</td></tr>
</table>
</table>


== Memory Testing Software for use with QUAD ==
== Memory Testing Software for use with QUAD ==
Line 174: 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 180: Line 284:


<table border="1">
<table border="1">
<tr><td>Status</td><td>Description</td><td>Requester / Date</td></tr>
<tr><td>Version</td><td>Filename</td></tr>
 
</table>
 
 
 
 
== 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>
</table>

Latest revision as of 03: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.


QUAD1.jpg

QUAD2.jpg



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 -

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

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.


StatusRevisionDescriptionFileSubmitter / Date
Beta26no known bugsOQUAD_rev_26Sadolph (talk) 12:56, 8 February 2015 (PST)
Beta22some bug fixes in placeOQUAD_rev_22Sadolph (talk) 08:26, 8 February 2015 (PST)
Beta13Initial beta release of 0QUADOQUADSadolph (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.

StatusSource FilesRevisionSubmitter / Date
BetaOQUAD_source13Sadolph (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.

StatusReleaseModelDescriptionFileRevisionSubmitter / Date



QUAD Trouble Reports

StatusModel(s)DescriptionImpactWork AroundUser/ Date



QUAD Enhancement Requests

VersionFilename



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.

VersionFilename
V4QUADv4