Cerilica Vantage - need a Cerilikey disk!
Phil Pemberton (7989) 71 posts |
Some time ago, a colleague gifted me a decent sized box of RISC OS software. Among that pile was a copy of Cerilica Vantage (the pre-release and the final release versions) Unfortunately, while I’ve got all the updates up to 1.11 (where the notorious copy protection scheme was removed), I don’t have the “Cerilikey” key disk. Does anyone happen to have a spare, working Cerilikey disk or know of another way to make Vantage work? I was an ArtWorks user “back in the day”, but I remember being impressed at seeing Vantage at one of the Wakefield shows. It’d be lovely to see it running on one of my RISC OS machines. Cheers, |
Steve Pampling (1551) 8170 posts |
Well you could try contacting the owner of the copyright on Vantage. |
Phil Pemberton (7989) 71 posts |
I’d love to, Steve — but Cerilica hasn’t existed for many years now, and I have no contact details for any of the people involved. I’m posting here because several folks on the Stardot forums suggested that some ex-Cerilica folks hang out here and might spot this and be able to help. |
Raik (463) 2061 posts |
Have try to conract the “old” German Vantage dealer/support. Has been pension since any days but maybe I get an answer. |
Steve Pampling (1551) 8170 posts |
Sounds like someone referred you to Nemo without giving you a specific tag. Nemo is also on Twitter as @nemo20000, here depends on mood and interest. |
Phil Pemberton (7989) 71 posts |
I’ll poke him on Twitter then — cheers for the link, Steve. |
Bernard Boase (169) 208 posts |
@Nemo Are you able to help those, like me, who originally had a valid licence for Vantage, have since lost their Cerilikey and/or moved to later hardware, but still store the application which cannot be run without a key? |
Steve Pampling (1551) 8170 posts |
I don’t think he’s currently favouring these forums with his attention (for reasons that might embarrass one or two round here). |
jim lesurf (2082) 1438 posts |
IIRC Vantage was a vector drawing program. If so, I found the copy I bought unusable because it was so prone to crashing, etc. Hence I’d wonder if it was worth the effort. |
Phil Pemberton (7989) 71 posts |
Yep, it was Cerilica’s answer to Artworks. I remember seeing it demoed at Wakefield 2005 and wanted to see it running myself. I had a word with Nemo on Twitter and he seemed reluctant, given the 15 year gap since the last Vantage sale. Shame really, even if it is flaky it would have been interesting to see it going – even if only for the sake of the nostalgia value! |
Steve Pampling (1551) 8170 posts |
I can’t help wondering whether that “flaky” status might actually be down to random zero page accesses in Vantage or quite likely in one of the other P buggy items on the same system. |
Rick Murray (539) 13840 posts |
Quite possibly, yes. There are two types of page zero access. The unfortunate benign type where one does something like checking an array is non-NULL and that some part of the array is non-NULL at the same time. It’s benign because the test will ultimately fail (array = NULL), the zero page access is just an unwanted side effect of how the code was written. Sadly, it’s pathatically simple to make this mistake in C and “for speed and simplicity” there is no automatic checking for this sort of thing. You can’t even switch it on in the compiler either, you pretty much need to code defensively and check yourself that a pointer isn’t NULL before use, but how many of us actually do that? I don’t mean check-after-alloc, that’s expected. I mean if you have a function that takes/uses an array pointer, to check the pointer before use in that function. In every function like that. Just in case. And no, I don’t tend to do that unless the pointer is supplied from something outside of my control (like a SWI handler) because you can’t trust external code. I just wish C had a compiler option to engage more defensive memory accesses. I’d be willing to sacrifice speed for correctness. |
Rick Murray (539) 13840 posts |
This is, of course, when somebody points out that it was written in assembler… |
Steve Pampling (1551) 8170 posts |
Well, I suspect Nemo thinks in assembler so “quite likely” is the proper response. |
Sprow (202) 1158 posts |
The option is |
Clive Semmens (2335) 3276 posts |
Maybe you jest, but I wouldn’t be surprised. I used to, but despite documenting it, I never graduated to post-26-bit assembler & certainly don’t think in assembler any longer. BASIC perhaps… |
Steve Pampling (1551) 8170 posts |
No jest, a wry smile perhaps. I used to be pretty fluent in HP PCL4. Circa 1998 I rewrote the shell templates for letter printouts on the patient record system and somewhere round 20032/3 it was a session reading and fixing the failing printouts from the pathology system. Back in the mid-80’s my ability to write working 80 assembler without reference texts and at the pub, as evidenced by my use of split beer mats for notepaper, more than slightly annoyed my course tutor. These days I don’t think I could recall a single Z80 mnemonic.. It all seemed normal, but others thought it rather strange. |
Chris Hall (132) 3554 posts |
These days I don’t think I could recall a single Z80 mnemonic.. Although it is 40 years ago that I converted the ZEAP (Z80 Assembler Editor Package) software to generate a cross reference listing and rewrote BDOSZ to add file datestamps to CP/M in a compatible way, I have not forgotten Z80 mnemonics… Much better than 6502 which used zero page as substitute registers. There was even a predictable hardware bug depending on the shape of the clock pulse that made a LD (IX),r operate as LD (HL),r which had the effect of introducing an ?FC error during string handling in BASIC. |
Rick Murray (539) 13840 posts |
Oh, maintenance nightmare!
Oh, brilliant. :-) Hmm… “Illegal read”.
This looks correct, and rb is not null (already checked that). It’s &203584B4. Does the checking have problems with stuff outside of the application’s slot? Interesting. I can’t wrap code that causes a problem (the above) in pragmas to disable and then re-enable the memory checking, it appears that it can only be done around an entire function. There’s a possible bug, by the way…
reports Warning: R1 corrupted but possibly reused later. This code may not work correctly when memory checking is on (and, yes, the code subsequently fails). The real code is a little more complicated, but unlikely to make much sense out of context.
The story of my life… |