CBM softwarez - let's solve the soft-rom mystery.

classic Classic list List threaded Threaded
16 messages Options
Reply | Threaded
Open this post in threaded view
|

CBM softwarez - let's solve the soft-rom mystery.

Tonguç Endem
I recently found many images of old floppies of Commodore collector George Page.
These floppies were part of a huge commodore collection bought by Bo Zimmerman of zimmers.net from George Page on 2002. Here is an image of the floppies.



On 2013, scenebase.org were able to make images of only 3 boxes of floppies. As you can see there are a lot more. The interesting part is that the contents of these images are not properly indexed and they do not show up on search engines. However, each of the 3 sets contain a txt file (in a 7zipped file) showing contents of all files in the imaged floppies. Oh, and the best part is that since the collection contains many C64 floppies, they are listed as a C64 collection but actually, they contain some really cool PET/CBM floppies too. Basically they are hiding in plain sight :-) You can find information about this 3 set collection here.

Anyways, here is one floppy I'm really interested in. (there are many like this)



When you load the menu program (it's a soft-rom loader as well) this is what it shows:



Below is a list of the software on this disk and the progress I achieved with soft-rom load on vice.
  • McTerm v1.21b [cmp] - vice soft rom load ok
  • VisiCalc v1.76A Expanded for CBM 8096 - vice soft rom load but freeze
  • Power (C compiler) by Brad Templeton - vice soft rom load ok
  • Jinsam v8.0 - vice soft rom load ok (needs Jinsam Core Disk)
  • Workdcheck - vice soft rom load ok (needs Wordcheck Disk)
  • WordPro 4+ (Text Processor [TP4B] modded Sept 17, 1982 by Stephen Hicks) - vice soft rom load ok
  • WordPro 5+ (by Steve Punter) - vice soft rom load ok
  • Paics Toolkit - vice soft rom load ok (some info about it here)

The thing I'm trying to figure out is how this soft-rom copy protection circumvention works on real hardware.
As far as I can understand this involves a small hack with switches connected to somewhere in CBMs with 96KB memory controlling expanded memory bank switching and somehow setting memory at $9000-$9FFF and/or $A000-$AFFF to be read-write or read-only.

Here is an example of how I was able to load WordPro 5+ on vice without adding the necessary ROM binary file from VICE->Cartridge->Attach ROM.

From the soft-rom loader menu, when I select 's' to load WordPro, this is what I get:


so from VICE->Machine settings -> Memory and I/O settings -> I set 8296 memory $9xxx as RAM


Now I guess the program sees that $9xxx is writable but it wants $Axxx to be writable and it shows the following:


So I've set only $Axxx as RAM (I've realized it actually doesn't care about $9000 in WordPro's case.)


Now the program detects $Axxx being writable and it starts to load ROM data to memory.


In this case for WordPro loader, it doesn't ask for anything else (like setting memory back to read-only) and directly continues to load WordPro.


And finally the program is running :-)


Success!! :-) Now the problem is how do we do this on the real hardware ???

As far as I can understand there is a 'front switch' and a 'back switch' for setting $9xxx or $Axxx to 'R/W' or 'Read-Only'.
Also, I'm not sure how the bank switching will be done on a real CBM. Is there an additional switch for that as well or could that be done programmatically on a real CBM?
There is one more trick. For some reason the loader program expects print peek(634) to give 0 however, on my 8096 and on vice I always get 255 so I have to do a poke634,0 before running the menu loader program. I really don't know the significance of this.

I'm hoping maybe someone who has a CBM 8x96 with this mod could let us know how it's done on a real machine.

Here is that floppy image i've been talking about for your enjoyment.
SOFT_ROM_MASTER-01.g64 (Sorry I haven't converted it to d64 yet, I'm still in the process of fixing my 8050.)

Finally, here is a combined index of all 3 sets of Page-Zimmerman collection available at scenebase.org as of now.
index_of_page-zimmerman_collection_sets_1-2-3_from_scenebase.txt

Sorry for the long post but I believe this will be interesting for all CBM 8xxx owners and even 4xxx owners since the collection have software for 40 column devices too.
For example, if you have an 8032 you can burn one of those ROM files to an AT28C16.
Or, on VICE you can simply load the ROM binary as an option ROM from cartridge setting.

Thanks.

Sent from the cbm-hackers mailing list archive at Nabble.com.
Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Rhialto
On Sun 04 Mar 2018 at 10:35:19 -0700, Tonguç Endem wrote:
> The thing I'm trying to figure out is how this soft-rom copy protection
> circumvention works on real hardware.
> As far as I can understand this involves a small hack with switches
> connected to somewhere in CBMs with 96KB memory controlling expanded memory
> bank switching and somehow setting memory at $9000-$9FFF and/or $A000-$AFFF
> to be read-write or read-only.

I noticed a "soft rom inst" (instructions, usually) on disk sb160499.g64.

Unfortunately it doesn't add much to the understanding we have already.

Personally I think BAID (Basic Aid) is more useful than the PAICS
toolkit, and it's free too. It can scroll your basic programs in both
directions (up and down) which was magic the first time I saw it :-)

Oh, there are lots of .nib files included; unfortunately I can't read
them with c1451 (from VICE). What else can I use?

;soft rom inst ==0401==
   10 poke59468,14:q$=chr$(34):d$=chr$(1):open4,4,7:print#4:close4
   15 open6,4,6:print#6,chr$(48):close6
   20 open4,4:print#4:print#4
   30 print#4,d$;"         Soft Rom Instructions."
   40 print#4,d$;"         {CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}{CBM-U}":print#4
   50 print#4,d$;"   Load :
   60 print#4,d$;"      Set soft rom switch to ";q$;"WRITE.";q$
   70 print#4,d$;"      Load the rom program using
   80 print#4,d$;"         BASIC, or the machine
   85 print#4,d$;"         language monitor.
   90 print#4,d$;"      Set soft rom switch to ";q$;"READ.";q$:print#4:print#4
  100 print#4,d$;"   Change memory using the machine
  105 print#4,d$;"      language monitor :
  110 print#4,d$;"      Set soft rom switch to ";q$;"R/W.";q$
  120 print#4,d$;"      Enter ";q$;"SYS1024";q$;" to run the
  130 print#4,d$;"         machine language monitor.
  140 print#4,d$;"      Make your changes according to
  150 print#4,d$;"         the monitor instructions in
  155 print#4,d$;"         the ";q$;"PET{$a0}USERS{$a0}MANUAL.";q$
  160 print#4,d$;"      Set soft rom switch to ";q$;"READ.";q$:print#4:print#4
  200 print#4,d$;"   Change memory using BASIC :
  210 print#4,d$;"      Set soft rom switch to ";q$;"WRITE.";q$
  220 print#4,d$;"      Make your changes using
  225 print#4,d$;"         the ";q$;"POKE";q$;" statement.
  230 print#4,d$;"      Set soft rom switch to ";q$;"READ.";q$:print#4:print#4
  250 close4:end

-Olaf.
--
___ Olaf 'Rhialto' Seibert  -- Wayland: Those who don't understand X
\X/ rhialto/at/falu.nl      -- are condemned to reinvent it. Poorly.

signature.asc (465 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Ethan Dicks
Funny you should post this today.  I just grabbed a copy of this disk for mcterm to put on an 8032 (I was going to program a 2716).  It did get me thinking of making my own soft-ROM-like add-on to sit across the expansion ROM space, an SRAM and a write-protect switch... 

I don't have an 8096, but I do have a NIB CBM 64K board I've thought about installing, so I'm interested in this thread.

-ethan

Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Christian Dirks
In reply to this post by Tonguç Endem
Hi there,
the Soft-ROM is no mystery at all.
It is just a SRAM with a write protect switch.
I had two of them (at $9xxx and $Axxx) in my 8032 back in the days.
The ones I had were built in little boxes, filled with epoxy or so.
When one of them died some years ago, Nils was so kind do create new ones.

Description (in german):
http://petsd.net/softrom.php

Schematics:
http://petsd.net/SoftROM_schematic_0.2.4.pdf


--
Christian Dirks
[hidden email]
Vorster Str. 66
47918 Tönsivorst

2. Stellv. Vorsitzender
Verein zum Erhalt klassischer Computer e.V.
http://www.classic-computing.de/


signature.asc (851 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Bo Zimmerman
In reply to this post by Tonguç Endem
By the way, there are still hundreds -> thousands of un-imaged George
Page disks still remaining. Over the past 15 years I have made near
constant attempts to work on and get help on this.  At one point I even
offered to pay local individuals an outrageous rate per disk to do this,
with myself providing all the hardware needed.  Other times I've had
arrangements with various nearby-ish folks to ship them small lots of
disks for imaging.  All such attempts have soon ended the same way: in
failure.  My theory is that disk imaging in a soul-sucking mindless
activity that no one, once they are exposed to it, wants to do, ever.

I do continue the project on my own, slowly, whenever my own soul feels
fortified to handle a batch.  And I'm always on the lookout for someone
local-ish who, for love or for money, will help me with this God-Damned
task.

That said, I *did* jump on top of a box of PET/CBM disks that were
marked obviously as such.  I didn't think about those images until I
read this message chain.  Here is a link to a zip of this particular set
of disks.  I hope you find all you might be hoping for.  If anyone wants
to help sort them for the ftp site, you would be a hero, but I'll live
either way.

http://coffeemud.net:8080/tmp/PETDisks.zip  (about 7mb of d64s, d80s, etc..)

- Bo




       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Steve Gray
In reply to this post by Christian Dirks
Is this board available for purchase somewhere?

Steve


From: Christian Dirks <[hidden email]>
To: [hidden email]
Sent: Sunday, March 4, 2018 5:14 PM
Subject: Re: CBM softwarez - let's solve the soft-rom mystery.

Hi there,
the Soft-ROM is no mystery at all.
It is just a SRAM with a write protect switch.
I had two of them (at $9xxx and $Axxx) in my 8032 back in the days.
The ones I had were built in little boxes, filled with epoxy or so.
When one of them died some years ago, Nils was so kind do create new ones.

Description (in german):
http://petsd.net/softrom.php

Schematics:
http://petsd.net/SoftROM_schematic_0.2.4.pdf


--
Christian Dirks
[hidden email]
Vorster Str. 66
47918 Tönsivorst

2. Stellv. Vorsitzender
Verein zum Erhalt klassischer Computer e.V.
http://www.classic-computing.de/



Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Tonguç Endem
This post was updated on .
In reply to this post by Bo Zimmerman
Wow, everything is coming together now, it's awesome.

Christian Dirks wrote
It is just a SRAM with a write protect switch.
I had two of them (at $9xxx and $Axxx) in my 8032 back in the days.
Christian, thank you so much for this information.
I will build one as soon as possible :-)
Do you know the significance of poking address 634 as I've explained in my example?
If I understood correctly, Nils' site mentions that controlling write protect should be possible with a poke.
I'm thinking maybe that's what this program is trying to do so you wouldn't even have to set the switches manually?
There has to be a way to connect the write protect status and it's control to address 634.


Bo Zimmerman wrote
I didn't think about those images until I read this message chain. 
Here is a link to a zip of this particular set of disks. 
I hope you find all you might be hoping for. 
If anyone wants to help sort them for the ftp site, you would be a hero, but I'll live either way.
Bo, thank you so much for sharing, well everything :-) and for the images in this post.
I've already started working on them.
I'll prepare directory listings in txt and in png in similar format to what scenebase used and post them here.
I don't think I will rename your images and I'll keep the names you've given though.

This is so exciting :-) Thanks everyone.
Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

AndyG
In reply to this post by Steve Gray
Steve

Bit jet lagged (so hope read this right) but Greenwich instruments used to do this sort of thing. I think they still do A 2716 variant but don’t think they supply a 4K version anymore.


Andy

On 4 Mar 2018, at 19:05, Steve Gray <[hidden email]> wrote:

Is this board available for purchase somewhere?

Steve


From: Christian Dirks <[hidden email]>
To: [hidden email]
Sent: Sunday, March 4, 2018 5:14 PM
Subject: Re: CBM softwarez - let's solve the soft-rom mystery.

Hi there,
the Soft-ROM is no mystery at all.
It is just a SRAM with a write protect switch.
I had two of them (at $9xxx and $Axxx) in my 8032 back in the days.
The ones I had were built in little boxes, filled with epoxy or so.
When one of them died some years ago, Nils was so kind do create new ones.

Description (in german):
http://petsd.net/softrom.php

Schematics:
http://petsd.net/SoftROM_schematic_0.2.4.pdf


--
Christian Dirks
[hidden email]
Vorster Str. 66
47918 Tönsivorst

2. Stellv. Vorsitzender
Verein zum Erhalt klassischer Computer e.V.
http://www.classic-computing.de/



Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Nils Eilers
In reply to this post by Tonguç Endem
On Sun, 4 Mar 2018 17:14:34 -0700 (MST)
Tonguc Endem <[hidden email]> wrote:

> Do you know the significance of poking address 634 as I've explained in my
> example?
> If I understood correctly, Nils' site mentions that controlling write
> protect should be possible with a poke.
> I'm thinking maybe that's what this program is trying to do so you wouldn't
> even have to set the switches manually?
> There has to be a way to connect the write protect status and it's control
> to address 634.

Address 634 is located somewhere in RAM, in the BASIC program area. This doesn't sound like a universal address to be used with all sorts of software.

With my SoftROM hardware, a write protection can get enabled if and only if a 28C64 EEPROM chip is used. It doesn't work with a 6226 or 48Z08 RAM chip, these require manual switches.
The 28C64 EEPROM is (un)locked with a special sequence of accesses, have a look at the datasheet for details:

http://ww1.microchip.com/downloads/en/DeviceDoc/doc0270.pdf#G1054916



On Mon, 5 Mar 2018 00:05:33 +0000 (UTC)
Steve Gray <[hidden email]> wrote:

> Is this board available for purchase somewhere?
I've still got a whole bunch of unpopulated boards here, for 0,99 € each. Just drop me a line to [hidden email] and let me know how many boards you'd like and the postal address.

BTW: I also got some surplus boards of my Shrinked SuperPET prototype board for 3 € per pcb. It upgrades a 8032 board to a SuperPET and is based on a CPLD.

Nils


--
Nils Eilers <[hidden email]>, http://petsd.net
PGP Fingerprint: D174 DD43 1F72 CAEC 9741 771C ABC3 CA50 C90B E483

       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Ethan Dicks
On Mon, Mar 5, 2018 at 9:14 AM, Nils Eilers <[hidden email]> wrote:
>> Do you know the significance of poking address 634 as I've explained in my
>> example?
>
> Address 634 is located somewhere in RAM, in the BASIC program area. This doesn't sound like a universal address to be used with all sorts of software.

634 ($027A) is the first byte in Tape Buffer #1.  Perhaps it's being
used as a flag?

> With my SoftROM hardware, a write protection can get enabled if and only if a 28C64 EEPROM chip is used.

Handy I just ran across a couple 28C64s in my stack of ICs.  I also
happen to have several X2864s.  Lots.

-ethan

       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Tonguç Endem
In reply to this post by Bo Zimmerman
Bo Zimmerman wrote
If anyone wants to help sort them for the ftp site, you would be a hero, but I'll live either way.
Hi Bo,

I've indexed contents of all images to a txt file together with separate png and txt files for each image.
Here is the index file.
If you give me a login, I'll upload it to your ftp site. It became a 13MB zip file.

Thanks.

Sent from the cbm-hackers mailing list archive at Nabble.com.
Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Tonguç Endem
In reply to this post by Rhialto
Rhialto wrote
210 print#4,d$;" Set soft rom switch to ";q$;"WRITE.";q$
220 print#4,d$;" Make your changes using
225 print#4,d$;" the ";q$;"POKE";q$;" statement.
230 print#4,d$;" Set soft rom switch to ";q$;"READ.";q$:print#4:print#4
I wonder what that poke statement is...

Also here is the basic loader program in a txt file.
I'm hoping someone would make sense of the poke 634 mystery.
Also, you'll see in the program that it does a POKE 623,13:POKE 624,13:POKE 625,13 at line 121. why?
does a POKE 634,15 before loading the rom, why?


Sent from the cbm-hackers mailing list archive at Nabble.com.
Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Rhialto
On Tue 06 Mar 2018 at 07:33:12 -0700, Tonguç Endem wrote:

> Rhialto wrote
> >   210 print#4,d$;"      Set soft rom switch to ";q$;"WRITE.";q$
> >   220 print#4,d$;"      Make your changes using
> >   225 print#4,d$;"         the ";q$;"POKE";q$;" statement.
> >   230 print#4,d$;"      Set soft rom switch to
> > ";q$;"READ.";q$:print#4:print#4
>
> I wonder what that poke statement is...
>
> Also here is the basic loader program in a txt file.
> <http://cbm-hackers.2304266.n4.nabble.com/file/t374815/Loader.txt>  
(you're mailing through a gateway that puts attachments in a separate
URL. To make sure the text remains for the future in archives, I'm just
pasting it below)

> I'm hoping someone would make sense of the poke 634 mystery.
> Also, you'll see in the program that it does a POKE 623,13:POKE 624,13:POKE
> 625,13 at line 121. why?

I haven't tried to study the program in detail, but 623 is where the
keyboard buffer starts, and 158 is the number of type-ahead keys in it.
A common trick to chain-load other programs (or sometimes for
self-modifying programs) is to print some BASIC commands to the screen,
put the cursor at the start of them, and stuff a number of RETURN key
hits in the buffer. That's exactly what it looks like here. Three times
13 for return.

By the looks of line 120, it prints (with appropriate spacing in between
for READY. and LOADING etc)

new
dL"something"
run

When the same program is expected to run again, it needs to know this,
so that it can continue where it left off. The stuff on line 1 seems to
do something like that. It increments 634 and if a certain particular
value is there, 16, it goes to line 100.

> and does a POKE 634,15 before loading the rom, why?

After the LOAD on line 90, the program runs again, and if 634 gets to be
16 (which it will), the condition on line 1 triggers.


1 POKE 634,PEEK (634)+ 1:IF PEEK (634)= 16 GOTO 100
5 n= 36:DIM m1$(n),m$(n),m(n),n$(n):d= 8
10 FOR i= 1TO 40:a1$= a1$+ "{A6}{A6}":a2$= a2$+ "{A3}{A3}":NEXT :e$= "{5B}-end-{5D}
20 PRINT "{text}{home}{home}{clr}"a1$a2$"{bell}{home}"TAB( 35)"{rvs}M E N U{home}{down}{down}{topleft}
30 x= 1
35 RESTORE :PRINT "{clr}":IF x= 1 GOTO 50
40 FOR i= 1TO x- 1:FOR j= 1TO n:READ a$,aa$,a,a1$:IF a$< > e$THEN NEXT
45 NEXT i
50 l$= "asbtcudvewfxgyhzi0j1k2l3m4n5o6p7q8r9
60 FOR i= 1TO n/ 2STEP 2
61 READ m1$(i),m$(i),m(i),n$(i),m1$(i+ 1),m$(i+ 1),m(i+ 1),n$(i+ 1)
62 m1$= CHR$ (- 10* (m(i)= 0)+ 32):m2$= CHR$ (- 10* (m(i+ 1)= 0)+ 32)
63 IF m1$(i)= e$GOTO 70
64 IF m1$(i+ 1)= e$THEN PRINT "      "m1$"{rvs}"MID$ (l$,i,1)"{rvsoff} "m1$(i):GOTO 70
65 PRINT "      "m1$"{rvs}"MID$ (l$,i,1)"{rvsoff} "m1$(i)TAB( 46)m2$"{rvs}"MID$ (l$,i+ 1,1)"{rvsoff} "m1$(i+ 1)
66 NEXT
70 CLOSE 1:GET a$:IF a$= ""GOTO 70
71 IF a$= "{CR}"GOTO 30
72 IF a$= "{ESC}"THEN SYS 64790
73 IF a$= "{5F}"THEN 10000
75 FOR i= 1TO n:IF a$< > MID$ (l$,i,1)THEN NEXT :GOTO 70
80 IF m(i)< > 0THEN x= m(i):GOTO 35
81 d$= n$(i):di= 0:d$= n$(i)+ CHR$ (0):IF LEFT$ (d$,1)= "$"THEN d$= MID$ (d$,2):di= 1
82 IF m$(i)= ""GOTO 106
83 x$= LEFT$ (m$(i),1):m$= MID$ (m$(i),2):PRINT "{clr}{down}{down}{down}":GOSUB 20000
85 IF LEFT$ (d$,1)< > "*"THEN PRINT "{down}{down}{right}Loading the "d$" Rom...
90 POKE 634,15:LOAD m$,d
100 IF ASC (RIGHT$ (d$,2))< > 58GOTO 105
101 PRINT "Flip front switch to READ.
102 pq= x+ 4095:y= PEEK (pq):POKE pq,1:m= PEEK (pq):POKE pq,y:IF m= 1GOTO 102
105 IF ASC (d$)= 42THEN PRINT "{home}{home}{clr}{down}{down}{down}sys"MID$ (d$,2)"{home}":POKE 158,1:POKE 623,13:NEW
106 IF diTHEN 120
110 PRINT "{clr}{down}{down}{right}{right}===> Insert the "d$" Disk in drive 0 and hit a key.
111 PRINT TAB( 18)w$
115 WAIT 158,1:PRINT "{home}{home}{clr}":POKE 623,131:NEW
120 PRINT "{home}{home}{clr}{down}{down}{down}new{down}{down}{down}dL"CHR$ (34)d$CHR$ (34):PRINT "{down}{down}{down}{down}run{home}":POKE 158,3
121 POKE 623,13:POKE 624,13:POKE 625,13:END
1000 DATA "McTerm v1.21b {5B}cmp{5D}","9mcterm     {5B}rom{5D}",,"$mcterm
1005 DATA "Wordpro",,2,
1010 DATA "Jinsam 8.0","ajinsam     {5B}rom{5D}",,"Jinsam Core
1020 DATA "Visicalc","9visicalc   {5B}rom{5D}",,"$vc{5F}starter*:
1025 DATA "Power","9power      {5B}rom{5D}",,"*36864:
1030 DATA "Toolkit","ajinsam     {5B}rom{5D}",,*40960
1035 DATA "Word Check","9wordcheck  {5B}rom{5D}",,"Wordcheck
1999 DATA {5B}-end-{5D},-,-,
2000 DATA "Wordpro 4+",,,"$wpro 4+
2005 DATA "Wordpro 5+","awp5+       {5B}rom{5D}",,"$wpro 5+
2999 DATA {5B}-end-{5D},-,-,
9000 zz= FRE (0):z$= " ":POKE 59468,14:IF z2= 0THEN z2= 254
9005 PRINT "{rvs} {rvsoff}{left}";
9010 GET z1$:IF z1$= ""GOTO 9010
9020 z3= ti+ z4:zb= LEN (z$):z= ASC (z1$):IF z= 13THEN PRINT " ":GOTO 9060
9021 IF z= 34THEN PRINT CHR$ (34)"{delete}";
9030 IF z= 20AND zb> 1THEN z$= LEFT$ (z$,zb- 1):PRINT "{delete}";
9050 IF z< > 18AND z< > 20AND (zOR 128)> 159THEN z$= z$+ CHR$ (z):PRINT CHR$ (z);:IF zb+ 1> z2GOTO 9060
9055 GOTO 9005
9060 z$= MID$ (z$,2):z= VAL (z$):RETURN
10000 PRINT "{clr}{down}{down}{down}{down}Do you wish to:     {rvs}A{rvsoff} Soft change address
10005 PRINT TAB( 20)"{rvs}B{rvsoff} Send device change address
10010 PRINT TAB( 15)"{rvs}Return{rvsoff} Return to menu
10011 WAIT 158,1:GET a$:IF a$< > "a"AND a$< > "b"AND a$< > CHR$ (13)GOTO 10011
10012 IF a$= CHR$ (13)GOTO 30
10015 IF a$= "b"GOTO 10100
10020 PRINT "{clr}{down}{down}{down}{down}Current Address:"d:PRINT "New address  ";
10025 INPUT "{right}{right}{right}{right}10{left}{left}{left}{left}";d:GOTO 30
10100 PRINT "{clr}{down}{down}{down}Change Device Adress:
10101 n= 1:GOSUB 10250:INPUT "old device";do
10110 IF do< 8OR do> 15THEN n= 1:PRINT "{up}{up}":GOTO 10100
10150 GOSUB 10250:INPUT "new device";dn
10160 IF dn< 8OR dn> 15THEN n= 1:PRINT "{up}{up}{up}":GOTO 10100
10210 OPEN 15,do,15,"m-w"+ CHR$ (12)+ CHR$ (0)+ CHR$ (2)+ CHR$ (dn+ 32)+ CHR$ (dn+ 64)
10220 CLOSE 15:GOTO 30
10250 FOR i= 0TO 7:x= ASC (MID$ ("{delete}{delete} :8 {left}{left}{delete}{delete} :10{left}{left}",n+ i))
10255 POKE 623+ i,x:NEXT :POKE 158,8:n= n+ 8:RETURN
20000 POKE 40960,0:POKE 36864,0:IF (PEEK (40960)AND PEEK (36864))= 0GOTO 20080
20070 PRINT "{up}Flip Front switch to 'R/W'":GOTO 20000
20080 c$= "{up}                            ":PRINT c$
20090 x= VAL (x$)* - 455.1+ 40960
20100 POKE x,0:IF PEEK (x)= 0GOTO 20120
20110 PRINT "{up}Flip back switch to $"x$"000":GOTO 20100
20120 PRINT c$:RETURN
63000 DATA {5B}-end-{5D},-,,{5B}-end-{5D},-,
63999 DATA {5B}-end-{5D},-,-,


-Olaf.
--
___ Olaf 'Rhialto' Seibert  -- Wayland: Those who don't understand X
\X/ rhialto/at/falu.nl      -- are condemned to reinvent it. Poorly.

signature.asc (465 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Tonguç Endem
In reply to this post by Bo Zimmerman
Here is the indexed collection Bo Zimmerman provided earlier.
Page-Zimmerman PETDisks (March 2018, CBM-Hackers).zip

also here is the index file again.
_index.txt



Sent from the cbm-hackers mailing list archive at Nabble.com.
Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

MiaM
Den Tue, 6 Mar 2018 11:00:00 -0700 (MST) skrev Tonguç Endem
<[hidden email]>:
> Here is the indexed collection Bo Zimmerman provided earlier.
> Page-Zimmerman PETDisks (March 2018, CBM-Hackers).zip
> <https://drive.google.com/file/d/1Vc4pUmBWQodExbejd1zvlh6EhWF28I7k/view?usp=sharing>  

Nice!

Maybe I'm Captain Obvious now, but the ATARIROMS disk seems to contain
copys of cartridges for Atari 2600/VCS. Someone probably used their
PET (or some other CBM machine) to copy Atari cartridge roms  :)


--
(\_/) Copy the bunny to your mails to help
(O.o) him achieve world domination.
(> <) Come join the dark side.
/_|_\ We have cookies.

       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: CBM softwarez - let's solve the soft-rom mystery.

Mike Naberezny
In reply to this post by Christian Dirks
On 3/4/18 2:14 PM, Christian Dirks wrote:
> the Soft-ROM is no mystery at all.
> It is just a SRAM with a write protect switch.
> I had two of them (at $9xxx and $Axxx) in my 8032 back in the days.

There was an actual product called "Soft ROM" that was made by BMB
Compuscience.  It's a small board with SRAM that plugs into the $9000 or $A000
socket and has a write protect switch.  I have some photos of it here:

http://mikenaberezny.com/hardware/pet-cbm/bmb-softrom/

Some mentions may be referring to this board.  That being said, I agree and
think "soft ROM" was in common use to describe any SRAM-as-ROM setup.

Regards,
Mike

--
Mike Naberezny ([hidden email]) http://6502.org


       Message was sent through the cbm-hackers mailing list