DIAMOND 860409 (c) 1986 by ORD-GROUP 23 DIAMOND (DIAgnostic MONitor and Debugger) Inleiding Tijdens de bouw van de ORDINATOR was er al snel (na het ont- wikkelen van de CPU kaart) de behoefte aanwezig om een stuk hardware te kunnen testen. Iets later kwam daarbij de behoefte om software voor deze hardware te schrijven en deze te testen. We moesten dus een monitor schrijven die zo min mogelijk hardware- faciliteiten nodig zou hebben. Ze moest in staat zijn om de diverse hardware functies te testen en het moest mogelijk zijn om met deze monitor software te testen. Een verdere eis was dat het eenvoudig moest zijn om uit te breiden. Aangezien het te verwachten was dat we vrij veel met deze monitor zouden moeten werken moest de bediening eenvoudig, snel en toch gebruikers- vriendelijk zijn. Noodzakelijke hardware In principe heeft de ORDINATOR alleen maar de CPU-kaart nodig om te werken. Op de CPU-kaart is een kleine hoeveelheid RAM en ROM aanwezig. In deze ROM zit het basisdeel van DIAMOND. In de praktijk heb je ook nog een seriele I/O kaart nodig omdat DIAMOND anders niet met de buitenwereld kan communiceren. Expansimogelijkheden Omdat er steeds meer hardware kwam moesten de mogelijkheden van DIAMOND ook steeds worden uitgebreid. Het programma werd hoe langer hoe groter todat het niet meer in een EPROM paste. We zijn toen overgestapt op een uitbreidingssysteem. De kern van DIAMOND zit in een EPROM op de CPU kaart. Deze kern kan losstaand werken. Op de CPU-extensie kaart zitten nog twee EPROM's. Deze EPROM's bevatten een stel uitbreidingen van de kern. Bij het opstarten kijkt de kern of deze EPROM's aanwezig zijn. Als ze aanwezig zijn dan kent DIUAMOND een aantal commando's extra. Het voordeel van dit systeem is dat DIAMOND toch werkt als de CPU-extensie kaart niet aanwezig is. Dit betekent dat we met DIAMOND een fout in de CPU-extensie kaart kunnen gaan zoeken. Eenvoud van gebruik Bij de meeste monitorprogramma's moet bij een listcommando zowel het begin- als het eindadres worden opgegeven. Dit blijkt in de praktijk niet handig, daar het hoogste te printen adres bepaald wordt door het aantal regels dat op het scherm past. DIAMOND print daarom een bepaald (instelbaar) aantal regels, en bepaalt daarmee het eindadres voor het gegeven commando. Dit heeft als nadeel dat wanneer een groot geheugenblok bekeken moet worden, er erg veel commando's gegeven zouden moeten worden. Daarom heeft DIAMOND een uitgebreid defaultsysteem. Zo onthoudt DIAMOND het laatst gebruikte adres, en gebruikt dit als default bij een volgend commando. Ook onthoudt DIAMOND het laatst gebruikte listcommando (hexdump of disassembly list). DIAMOND heeft als extra commando de return toetst. Dit voert het laatste list- commando uit, met als argument het laatst gebruikte adres. Voor het bekijken van een programma op adres 1000 kunnen dus de DIAMOND 860409 (c) 1986 by ORD-GROUP 24 volgende commando's gebruikt worden: (ingetoetste letters zijn vetgedrukt: #>D 1000