Gemstone/S64 3.6.3 and Jade

So, a new December version of Gemstone has been published … and nice to see, that Jade 2.4.14 is working with this version.

Posted in Smalltalk | Tagged , , | Leave a comment

PUM – what is it ?

PUM is a PoorUserModelling Tool, its totally not mainstream, is written in VASmalltalk and adapts no UML or stuff like this.

Over the last 6 years it was my back tool to produce/”design” several Gemstone/S applications/Projects/products.

PUM produces a domain (persistency) object hierarchy and an API (non persistent) object hierarchy. It produces lots of code and I would now say, that its working model is a remote procedure call programming model based on the POST http request. It is NOT RESTful, no.

Its works very close together with the Sencha ExtJS commercial Javascript library and produces Sencha ExtJS code, Topaz/Smalltalk code, python code, Java code and C# code.

With the last posting regarding OpenAPI, lots of other other languages can be used to talk to PUMs application running under Gemstone/S.

Posted in Smalltalk | Tagged , , , , | Leave a comment

PUM, Gemstone/S and OpenAPI, Part 2

Yes, this all looks promising.

In the last posting I mentioned how to validate the own OpenAPI specs to be sure, that nothing pretty bad is happening.

The next point is documentation and first there is a public application Swagger-UI, which can be used to present your API to others. I changed PUM to allow to enter additional operational information about the API (license, contact, etc). The good thing about Swagger-UI is, that within the download is a full static application: put it under your /var/www/html, edit a file with the URL to your openapi.json and then it works.

The bad point about Swagger-UI is, that the items are shown as they are written out into the json file … and normally you can not guarantee, how the attributes are written into your json file … so I had to change the converter NOT to use a standard dictionary, but an order preserving dictionary (and therefore introduce a new NeoJSONWriter subclass to manage that. And why there is not search function ? Well, its open source and its a good start.

The commercial providers are of course a better solution, but they cost pretty much money. I talked about APITree in the last posting – but they seem to have an upload limit of about 1MB for the specification file … and yes, with one of our products I reach 880 KByte and 1.2 MB (pretty print).

Then I looked for source code generators for different languages and here OpenAPI Generator is a good start for lots of languages – but of course, nothing is available for Smalltalk.

Posted in Smalltalk | Tagged , , , , , | Leave a comment

PUM, Gemstone/S and OpenAPI

When I started this development around 2014 I looked around the available API specification structures and found swagger.

So, when writing the Topaz source code creator for PUM I decided those days, that the meta information of the defined API should be modelled in a way the swagger people did it. Due to this, packages were written like PUMApplicationRuntimeSupport, which includes JSONSchema support, SwaggerSupport and so on.

I actually did not do any stuff with it – and I did not follow swagger for some years (the specification of swagger in those days were not very clear and there were misinterpretation how some attributes have to be filled).

So, even today all the API information are available in the database and I had a look at them on sunday and I was aware, that I am not far away from creating an OpenAPI specification file.

Today I managed to make it work. Adding a converter class in JSONSchema to write out an “openapi.json” file, did a vaildation of the specification via swagger-cli command line tool and upload the specification to APITree and voila, the documentation was available for me.

So, more on this later

Posted in Smalltalk | Tagged , , , , , | Leave a comment

Bundestagswahl vorbei …

So, der Event ist vorbei. Nach monatelanger Vorbereitung ist auch diese Wahlberichterstattung vorbei – und die Berichterstattung war erfolgreich.

Sencha ExtJS war dabei, Gemstone/S war wieder dabei – diesmal alles noch etwas größer und es ging glatt über die Bühne.

Neben der Bundestagswahl fanden Landtagswahlen in Berlin und Mecklenburg-Vorpommern statt.

Drei Portale für den BR24, für SWR-BW und SWR-RP, für die die Gemstone/S Datenbank die Datenverwaltung und Ausspielung gemacht hat. Das beinhaltet die Ansteuerung der Grafikerstellung und Zulieferung an die UI der Portale.

Neben den Portalen wurde die Dienste auch beim NDR, dem RBB, dem WDR, dem HR und dem SR eingesetzt. Hunderte von Journalisten griffen auf Ihre – dem Senderlayout angepassten – Grafiken zu und schmückten so ihre Artikel und Postings.

Einige Sender nutzten unsere Software zur eigenen Ergebniseingabe, um mit unseren Tools die zügige Berichterstattung im Fernsehen zu ermöglichen.

Hier das Portal des SWR-BW

Oder das Ergebnisportal von BR24

Hinter den Kulissen gab es diverse UIs, mit denen die Datenbank gesteuert wurde – alle mit Sencha ExtJS geschrieben, alle mittels einer API gesteuert. Dazu kommen noch Servertasks in Python, die ebenfalls über die API mit der Datenbank kommuniziert.

Die Modelle wurden in PUM definiert und Quelltexte in Javascript, Python und Smalltalk generiert.

Ein toller Abend, der technisch gesehen ein voller Erfolg war.

Posted in Smalltalk | Leave a comment

Sharp MZ80B, Boot-ROM Card, final revision

Well, never say final … but here is my feature, final revision:

This version adds a system supervisor IC for managing RESET signal, adds a battery buffered RAM etc

Posted in Smalltalk | Tagged , , , | Leave a comment

Sharp MZ80B – Boot-Disc, RAM/ROM-Disc, YM2149 Sound

After cleaning these old computers, I decided to create a first card for those systems – hoping, that they might work:

Sharp MZ80B, Boot-Disc, RAM/ROM-Disc, Sound


a) The YM2149 is located at 0x60/0x61 and is feeded by the 4 MHz system clock (therefore a AY8910 will not work)
a.1) One port of the YM2149 is feeding LEDs
a.2) One port of the YM2149 is used for switches (for own software )

b) The right part is the MZ80B Boot-ROM Disc, which contains a 32KByte ROM. Press “/” during IPL-RESET and then the software will be loaded from the ROM and started (proof of concept was here Disc BASIC 6510 with Monitor 1510)

c) The left part is a copy of the MZ1R18 RAM file card, it did not work at the beginning, because I used the original port addresses of the MZ800 and well I was not aware, that the Z80PIO A of the “B” is already there located. So I changed the address to 0x6A, 0x6B’to make them work. In addition to this one has 8 pages of 64K RAM and 8 pages of 64K ROM. (the pages can be selected at 0x6C).

So, the general idea is to have a selection program in the Boot-ROM disc and from there I can select up to 16 programs located in ROM (or however it is located within this ROM).

Posted in Sharp MZ80B, Vintage Computer | Tagged , , , , , | Leave a comment

Sharp MZ80B, Starting old computer and capacitor exploded :-(

Pretty bad … today I started my old Sharp MZ80B (Z80, 64 KByte) 2 times and suddenly with a crash the system stops working.

The power system stopped working:

So I took the time to open it and clean it up.

Here the motherboard – in complete:

Sharp MZ80B – motherboard

Putting the stuff together again:

Sharp MZ80B, Motherboard and Extension box

And the keyboard – all in all a very heavy machine (ca 15 kg) – the power subsystem is missing and of course the build-in screen/Tape recorder.

Posted in Sharp MZ80B, Vintage Computer | Tagged , , , , | Leave a comment

Solar Eclipse 10.06.2021

Here a picture of the solar eclipse seen at 12:00 near Hamburg:

Via Handy/Eyepiece (20mm) and ASTF 200 filter with a Newton 200mm/1200mm
Posted in Astronomy | Tagged , , | Leave a comment

MiniITX-Z180 under Testing

So, base tests are running and most of the PCB is working. The only part not tested yet is the I2C subcomponent.

Z180 – all parts are now on the board

The DualPorted RAM is working … but the SD-Card connector has the wrong connections … mirrored.

Z180 board with old MSKZIO-bus cards inserted

So, the board is pretty good working, Watchdog system has been tested – so now software can be developed and ported to this board.

The cards inserted are holding the MIVAC card and a RAMDAC for VGA output.

This is only a prototype – actually some future plans include the replacement of the YM2149 with a YM2203 (sound). The WLAN part and the SD-Card will be moved to another PCB.

Below this board I want to add another PCB for AD-conversion chips, I2C subsystem just for measurement equipment and driver control.

Posted in Vintage Computer | Tagged , | Leave a comment