Motorola EXORset

Fra DDHFwiki
Spring til navigation Spring til søgning
EXORset 30

EXORset 30 var designet af Motorola i 1979 til at være et system til software- og hardwareudvikling. Den blev hovedsageligt brugt til at udvikle og teste programmer og I/O, analoge interfacekort osv., beregnet til at styre industrielle processer. Den er bygget på 6809 CPUen med 32 KB RAM, to diskettestationer og en 9-tommers skærm. Maskinen kommer med operativsystemet XDOS, som er udviklet specifikt til denne computer.

Eksemplaret i samlingen har serienr. G00300 og blev doneret med manualer, XDOS operativsystem, Pascal compiler og BASIC-M af Søværnets Teknikskole.

EXORset 100

EXORset 100 efterfølger EXORset 30 og 33, som den hovedsageligt adskiller sig fra ved størrelsen på skærmen, der er øget fra 9 til 12 tommer, og større disklagringskapacitet.

EDIT programmet

Eftersom EXORset 30 var tænkt som et udviklingssystem er det medfølgende edit-program designet udelukkende til dette formål. Det er en linje-orienteret editor, som bruger linje-numre til at navigere i dokumentet. Man starter programmet ved at skrive 'EDIT'. Alle indtastninger, der starter med et nummer er tekst i dokumentet. Resten bliver fortolket som en kommando. Man kan lade programmet indsætte numrene selv med NUMBER kommandoen:

? NUMBER
00010                        Den grimme ælling
00020                                         -- Et mellemrum er indtastet
00030 Der var så dejligt ude på landet; det var sommer, kornet stod gult,
00040 havren grøn, høet var rejst i stakke nede i de grønne enge, og der
00050 gik storken på sine lange, røde ben og snakkede ægyptisk, for det
00060 sprog havde han lært af sin moder.
00070                                       -- Tom linje stopper sekvensen
? CHANGE 50/ægypt/egypt/           -- Erstat 'ægypt' med 'egypt' i linje 50

Man lægger linjer ind ved at skrive et nummer mellem de to linjer før og efter hvor man vil have den nye linje. Hvis der ikke er ubrugte numre, kan man skrive RESEQUENCE. Det omnummererer alle linjer med spring på 10.

Hvis man har arbejdet på et Pascal programmet eller noget dokumentation skal man skrive RESEQUENCE N for at fjerne linjenumrene inden man gemmer teksten med SAVE.

BASIC-M

Den medfølgende BASIC-M er både en fortolker og en oversætter. Det gør det muligt at lægge et BASIC program i en PROM. I forhold til Dartmouth BASIC er den blevet udvidet med kommandoer, som gør det nemt at kontrollere I/O enheder. Det et muligt at reagere på CPUens tre hardware interrupt typer: NMI (Non-Maskable Interrupt), IRQ (Interrupt Request), FIRQ (Fast Interrupt Request). BASIC udtrykket er: ON NMI/IRQ/FIRQ THEN ...

Man kan erklære BYTE og INTEGER variable, samt specificere hvad adressen skal være. Bruges typisk til at lægge adressen på en enhed i en variabel.

Der er mulighed for at kalde rutiner skrevet i assembler med CALL sætningen.

Bruger-definerede funktioner er blevet udvidet til også at understøtte procedurer. Den generelle form for en bruger-defineret funktion er DEF funkt(arg1, arg2) = udtryk.. En funktion skal være erklæret på en enkelt linje. En procedure starter på samme måde, men uden lighedstegn:

150 DEF proc(arg1, arg2)
160 FOR I = 1 TO arg1
170 FOR J = 1 TO arg2
180 M(I,J) = 0
190 NEXT J
200 NEXT I
210 RETURN

Proceduren afsluttes med RETURN. Der er ikke lokale variable undtagen dem der er angivet som argumenter.

Endelig er der også en instruktion til at checke for ændringer, som ikke genererer en interrupt. Dvs. polling. Hvis man skriver WHEN udtryk THEN ... vil udtrykket blive testet for hver eneste BASIC sætning der bliver udført frem over. Det kan for eksempel bruges af en printer til at melde den er klar til næste tegn ved at sætte en bit på en bestemt addresse. WHEN instruktionen vil typisk halvere hastigheden af programmet.

Pascal

Der fulgte to Pascal compilere med maskinen.

Motorola Pascal Compiler 1.00

Denne består af flere programmer:

  1. PAS09.CM - Pascal compiler phase I
  2. PAS092.CM - Pascal compiler phase II
  3. PAS09LB.RO - Pascal runtime library
  4. RLOAD.CM - Linking Loader

Proceduren for at oversætte et program er ret kompleks, primært på grund af linkeren:

=PAS09 TEST.SA:1,TEST.PC:1,#LP;L (source Pascal program called TEST.SA is in drive 1)
 MOTOROLA PASCAL COMPILER PHASE ONE 1.10
 COPYRIGHT BY MOTOROLA 1980
 **** NO ERROR(S) DETECTED IN COMPILATION ****
=PAS092 TEST.PC:1,TEST.RO:1 (remove compiler phase I diskette from drive 0 and replace with diskette containing PAS092.CM)
  M6809 PASCAL COMPILER PHASE TWO 1.00
  CODE GENERATOR PRODUCED 010D BYTES OF CODE
  NO ERRORS DETECTED
=RLOAD (remove compiler phase II diskette XDOS LINKING LOADER REV 03.00 from drive 0 and replace with diskette containing RLOAD.CM and PAS09LB.RO)
  COPYRIGHT BY MOTOROLA 1977
?IF=TEMP
?DEF: PLOW=$2000
?DEF: DLOW=$9000 (see the M6809 Pascal compiler User's Guide for an explanation of user defined external symbols)
?DEF: DHIGH=$BFFF
?DEF: SIZE=0
?STRP= PLOW
?STRD= DLOW
?LOAD=TEST:1
?LIB=PAS09LB (Pascal runtime library PAS09LB.RO in drive 0)
?OBJA=TEST.CM:1
?MO=#LP
?MAPF
?EXIT

OmegaSoft Pascal Compiler 2.13

Programmet PC er Pascal compileren. LB er Librarian.

Se også