AS macroassembler

Original: http://john.ccac.rwth-aachen.de:8000/as/beginning.html


Hvordan det hele begyndt ..

Sikkert anmeldelser nogle af jer allerede tænkt at skrive egne programmeringsværktøjer måske bare en lille konverter, eller en fuldstændig blæst miljøet, fordi De værktøjer, du bruger i øjeblikket simpelthen suge. Et sådant projekt kan se gorgeous og impractible for en enkelt person med begrænset programmeringserfaring, er det muligt at bestille – Gør det skridt for skridt, og forventer ikke ting, der udvikler den måde, du troede i starten. Her er historien hvordan AS cam til eksistens, en sekvens af tilfældigheder og falske forventninger:

For et par år siden, den tyske computer magasin mc’ (qui nr nederdel eksisterer) offentliggjorde et element om et projekt kaldet Udløbet PcPar68000. Ideen til at bygge Var en parallel computer fra billige, let kan indhentes komponenter. De enkelte CPU boards bestod af en MC68000 CPU, 64 Kbytes RAM og en flok TTL logik. Ingen venner, ingen ASICs, bare standard komponenter. Den enkelte CPU’er Om ikke-have en ROM Deres RAM kortlagt Var i computerens adresse plads, så pc’en kunne skrive programmet i den 68000 RAM s og derefter tage den ud af reset tilstand. Hver CPU Var der separat bord, paralleliteten var begrænset af antallet af gratis ISA slots du havde på din PC.

Den samlede pris for komponenterne Var om DEM100, primært drevet af processoren og de to 32Kx8 SRAM Dengang De gjorde op omkring to tredjedele af de samlede omkostninger! Siden mit første boulot var kun at eksperimentere med 68K arkitektur, Selv jeg reddede omkostninger for PCB ved at pakke min første CPU bord. Det eneste, jeg virkelig Købt fra mc Var samle en simpel, ikke-flytbar samle uden makroer. Det prissat mig om DEM50, og jeg troede, at dette er en rimelig pris

Indtil jeg begyndte at arbejde med de ting! Den samlede Havde nogle alvorlige fejl (f.eks ikke Afsløring nogle fejlagtige konstruktioner, er det simpelthen genereret junk ou ved brev) fremstillet at arbejde med det mere og mere vanskeligt, på et tidspunkt besluttede jeg at se hvor svært at skrive en egen ville være.

Det oprindelige mål var bare at skrive et samle som var i overensstemmelse med en fra mc. Jeg begyndte at skrive en formel parser, qui forekom mig at være den sværeste del. Igen et par år siden, jeg havde skrevet allerede år 8048 samlet på min Apple] [kører under CP / M At man manglede en formel parser blev dvs. argumenter instruktioner begrænset til én konstant symboler Enten guld. Når parseren Var op og afprøvet, er det næste skridt var udformningen af symbol bordet. Jeg ting binært træ som det grundlæggende datastruktur, da jeg var allerede helt fortrolig med pointere og dynamiske datastrukturer, og du-have Enhver Om ikke tilslører 64K grænser, der ville have resulteret i at bruge noget som en tabel (glem ikke, at det tidspunkt blev pc brugerens valg af operativsystemer begrænset til MS-DOS og min hurtigste PC på det tidspunkt var en PC / XT med 8MHz var Kommerciel Unix’er fra flere leverandører, sigter kun forfærdelige priser) ..

Når grundlæggende var grim (ingeniører tendens til at vælge en bottom-up ), jeg skrev en linje parser, et par linjer kode til output resultaterne i den rigtige filformat (Heldigvis blev den oprindelige samling output størrelse Dokumenterede ), og begyndte at marchere gennem 68000 instruktion sæt. Den parser for 68k s adresse udtryk viste sig at være lidt svært, mål ellers var det bare et spørgsmål om rettidig omhu. At finde den rigtige huskeregel var bare en kæmpe stige af OpPart IF = ‘…’ og derefter, qui maj SCCM og dum brute force ved første blik, sigter det kan være ganske effektiv, hvis du lægger den hyppigste instruktioner først. Teknisk Dette bruges stadig i en masse af AS kode generatorer, og jeg er lige begyndt et par måneder siden for at fjerne dette Til fordel for hash tabeller.

Resultatet var en simpel 68.000 cross samle der gjorde alt det originale samle Om gjorde, bare uden de irriterende bugs:) Jeg var glad, og den første milepæl blev gjort. Så hvad nu?

Den første udvidelse udvide Var den understøttede instruktionssæt. Dengang jeg havde planer om at bygge nye CPU boards med en 68020 FPU og år (min hånd på PcPar68000 gennemførelsen Var at beregne Mandelbrot sæt;-)), kom dette mål aldrig på virkeligheden på grund af prisen på CPU / FPU på det tidspunkt. Udvidelserne i Mine samle DOG Om ikke koste mig noget, og jeg gjorde dem i forventning at jeg ville brug for dem en dag. Selvfølgelig var forsamlingen nødvendig funktion til at blokere mig fra Tilfældigvis hjælp 68020 instrukser var 68.000, og det er, hvordan CPU’en erklæring så lyset!

Anmeldelser Den anden udvidelse jeg lavede til de forsamlede Blev makro instruktioner. Det viste sig at være en vanskelig opgave at fodre de udvidede linjer fra den makro processor tilbage til parser, og tidlige brugere af AS kan huske, at som det var helt betyder om indlejrede makro udsagn

Dette var det første kapitel af historien AS og AS (qui blev opkaldt ASM68 dengang) opholdt ligesom dette i to år. Om gjorde alt, hvad jeg havde brug for det, og jeg turde ikke aflevere det ud til andre. Faktisk er den eneste person –Andre der nogensinde fik en kopi af ASM68 Var Zschocke Bernhard, der havde brug for noget at genbruge hans DTACK-board JORDET Efter at han skiftede fra en Apple] [til en pc.

Tilfældigvis er det den person, Sami Hvem udløste den proces, lavet af AS ASM68. Et eller andet sted i 1991/1992, var det tid for mig som studerende for elektromekanik RWTH Aachen at tage en af de praktiske kurser (du brug for dem på vej til et eksamensbevis), og jeg ting kører i mikroprocessor kontrol. Den blev ledet af Bernhard Zschocke, og løbet mål til at styre en robot Var arm med en CP / M-system. Mine resultater i dette løb var ganske god, og Bernhard og jeg est devenu venner over tid.

I efteråret 1992 blev endelig tid til at smide de gamle CP / M (når var sidste gang, du har set en 8 tommer floppy?) Og miljøet at erstatte med noget mere imode. Udviklingen platform var nu ATs, og målet var en 80.535baserede mikrocontroller bord. Selvfølgelig du aussi år behov for at samle dette bæst. Intet problem? Tja Z80-maskiner, havde vi brugt M80 fra Microsoft. Dette var en virksomhed helt samlet, med det resultat at studerende, der ønskede at gøre øvelser derhjemme Deres havde enten at købe en eller arbejde med en (ulovlig) kopi. Dette shoulds ændre sig med den nye platform! Bernhard vidste Intels samlet af –Andre varer projekter, var dette formål handel aussi race, og web-baserede søgninger ikke var tilgængelige på det tidspunkt. Der Var Another elev af Bernhard (kender ikke hans navn) der har solgt selfmade 8051 samle kollega, han skal frigøre en speciel lukket for shareware versioner til de studerende. Dette Bernhard mindet om, at han fik en ounce samlet af mig, kan du ikke skrive det til at generere 8051 kode?Ahem

Et af mine problemer er størst At jeg ikke kan sige nej, jeg befandt mig i slutningen af 1992, har til opgave at antireumatiske ASM68 8051 for målet platform. Hurtigt indså jeg, at det ville Dybest set tilstrækkeligt til at udveksle noget med parseren 68.000 Det forstår 8051 kode. Goal hvorfor smide det ud, når jeg kan allerede skifte Entre 68K forskellige mål? Blot tilføje en anden gren! Over julen 1992 den første version 1.30 af AS (Jeg fortsatte med at bruge den version nummerering fra ASM68) blev foretaget, med 68xxx, 6502, 8048, og 8051 som Målplatforme. Virkelig Var den nye vejledning (jeg havde ikke gidet witing en manual til ASM68, da jeg var den eneste bruger) og et sæt af værktøjer til at konvertere Forsamlingens output til binære og HEX-filer. Den Z80 fulgte kort senere. De studerende på løbet var mine første betatestere, og de var en kilde til fejlrapporter og ideer til år, indtil Bernhard forlod RWTH Aachen.

Da AS er gratis, ikke kun Studerende tog den hjem øvelser til at gøre deres, de gav det til aussi deres ven, qui udvidet »brugerne«. Selvfølgelig havde de forskellige anvendelser for AS og brought i –Andre varer ideer. Det er, hvordan AS begyndte at vokse og det vokser Indtil i dag!

Og hvad med PcPar68000? Nå, den 19 tommer rack med CPU boards stadig: har et sæde af ære på mit skrivebord derhjemme, mål, jeg har ikke slået det i årevis Jeg ville sandsynligvis brug for et par dage at få den i gang igen. Jeg samlet en smule information og billeder var separat qui side er her.