|
|
DataMuseum.dkPresents historical artifacts from the history of: Bogika Butler |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Bogika Butler Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 22912 (0x5980)
Types: TextFile
Names: »LNKDOK2.RNO«
└─⟦6661ddda9⟧ Bits:30009789/_.ft.Ibm2.50007339.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »LNKDOK2.RNO«
$#venstre240
$#højre1680
$#indryk120
$#linieafstand10
$#h/f-venstre216
$#h/f-højre1704
$#h/f-linieafstand10
$#hoved-højde60
$#fod-højde80
$#lige-margen0
$#sidenummer9
$#hovedav METANIC Aps.
$#hovedam
$#hovedah 1986.04.16
$#hovedbv LGJ
$#hovedbm LINK
$#hovedbh
$#hovedcv V1.0
$#hovedcm
$#hovedch Side #
$#hoveddm ______________________________________________________________
$#formatter
^U6. Afprøvning.^u
I dette afsnit omtales afprøvningen af linkeren. I af^-snit 6.1 redegøres
principielt for den anvendte metode, som bygger på Søren Lauesens
"Debugging Techniques". I afsnit 6.2 beskrives de hjælpemidler, som er
benyttet for at gen^-nemføre afprøvningen, og dette afsnit er således en
slags indirekte brugsanvisning i gentagelse af afprøvningen. ^-^-Hjælpemidler
og ideer må i øvrigt kunne genbruges i andre sammenhænge. Afsnit 6.3
handler om, hvordan værktøj^-erne er anvendt på det aktuelle program
LINK. Her opregnes hvilket indhold, de enkelte kategorier har fået.
^U6.1. Metode.^u
Afprøvningen af linkeren er foregået efter en metode, der nærmest er en
kombination af Lauesens interne og eks^-terne test. Egentlig er afprøvningen
overvejende ekstern, men da langt hovedparten af de interne spidsfindigheder
af^-spejler spidsfindigheder i objektfilformatet, er de testtil^-fælde,
som Lauesen betegner som interne, i vid udstrækning dækket, selvom
de ikke er identificeret som sådanne.
Ved afprøvningen benyttes ingen kunstige programom^-givelser, og alle
programdele ekserceres på deres endelige plads ved brug af kunstige
testdata.
Afprøvningen af linkeren dokumenteres ved statusmed^-delelser på
"standard-output" (CON:) og ved testudskrifter, som
skrives i en pladelagerfil, der senere kan inspice^-res. På forskellige
punkter i programteksten er der indføjet ^-^-rutiner, som danner
disse testudskifter, og hver udskrift er identificeret, således at
det klart fremgår, fra hvilket programpunkt den stammer. Rutinerne er
udformet således, at man ved simpel redigering af kildeteksten kan gøre dem
alle til kommentarer (og vice versa). Dette omtales nærmere i afsnit 6.2.1.
Da nogle dele af programteksten udføres væsentligt of^-tere end andre
er det hensigtsmæssigt, at kunne undertrykke testudskrifter fra disse uden
derved at fjerne alle testud^-skrifter. Testudskriftsrutinerne er derfor inddelt i
katego^-rier, som kan aktiveres enkeltvis.
^KResumerende^k gælder altså følgende: Ved redigering af kildeteksten
kan man vælge at medtage alle eller ingen test^-udskriftsrutiner i det
oversatte objektmodul. Medtages de alle, kan man for hver programudførelse
vælge at aktivere vilkårlige testudskriftkategorier.
^U6.2. Automatiseret afprøvning.^u
Som omtalt er afprøvningen baseret på testudskrifter. Disse
frembringes af en række testrutiner, som igen benytter en række standard
testfaciliteter, hvis brug forklares ved kommentarer i deres kildetekst, hvor
nærmere oplysninger kan søges. Kildeteksten findes i bilag 3.
Testudskriftsrutinerne kan kun
benyttes, hvis de indgår i det oversatte modul, og i afsnit 6.2.1 forklares
hvorledes de kan medtages resp. udelukkes.
I afsnit 6.2.2. beskrives hvorledes afprøvningens en^-kelte sessioner,
der er samlet i grupper, kan afvikles ^-^-bundtvis under styresystemet CP/M.
Desuden omtales de nød^-vendige hjælpeprogrammer.
Lauesensk afprøvning be^-nytter kunstige testdata, som for det
foreliggende program består af objektkodefiler og kommandoer til linkeren.
Kom^-mandoerne volder ikke vanskelig^-heder, men objektkodefiler kan ikke
umiddelbart dannes med et almindeligt tekstredi^-geringsprogram (eng: editor).
I af^-snit 6.2.3 omtales speci^-alprogrammellet til sådan testdata^-generering.
^U6.2.1. Global aktivering af testrutiner.^u
Testudskriftsrutinerne er omgivet af Pascalkommentarer. Disse
er udformet således, at testudskriftrutinerne ved ^-^-simple
editeringsoperationer kan gøres til en del af en kom^-mentar eller en del
af den egentlige programtekst. Ved
hjælp af sådanne kommentarer kan samtlige testudskriftrutiner ^-^-enten
medtages i det oversatte program eller udelades af dette (med
et tilsvarende reduceret krav til indre lager) uden at kildeteksten
ændres væsentligt.
Når testudskriftsrutinen skal medtages henholdsvis ude^-lades
skal kommentarparenteserne have følgende form:
$#kopier
Medtages Udelades
------------------------------------------------------------
kildetekst kildetekst
(*#B#*) (*#B#
testudskriftsrutine testudskriftsrutine
(*#E#*) #E#*)
kildetekst kildetekst
$#formatter
^U6.2.2. Bundtvis afprøvning.^u
Afprøvningen udføres i en række sessioner, som hver svarer til netop en
programudførelse, og som hver afprøver en lille del af programmet. Dette
er nødvendigt for at kunne afprøve alle programmets fejlreaktioner, da
mange fejlsitua^-tioner bringer programmet til standsning. Sessionerne er
samlet i grupper, og disse grupper af sessioner kan udføres bundtvis.
Hver afprøvningsgruppe styres af
en kommandofil, som fortolkes af et passende nytteprogram. Under
^-^-styresystemet CP/M benyttes således programmet SUBMIT.
Aktivering af de enkelte kategorier af testudskrifter foretages
af standardproceduren testinit, som i LINK-pro^-grammet benyttes i
batch-versionen, hvis kildetekst findes i filen prtstbt.pas. Denne
version af testinit læser de oplys^-ninger, den har fornødent, i en fil
med navnet in.tst. Disse oplysninger er navnet på filen, som testudskrifterne
skal skrives i, identifikation af afprøvningssessionen og de ak^-tive
testkategorier. Indholdet i in.tst skal følgelig ændres mellem hver
session, og dette gøres med programmet PREPTST, som forbereder (eng:
prepares) den kommende afprøvningsses^-sion. Preptst aktiveres af kommandofilen
for afprøvnings^-gruppen, og læser sine argumenter på fortsættelsen af den
linie, som aktiveringskommandoen står på, hvorpå disse i passende format
skrives i in.tst.
Foruden preptst, som initialiserer testudskriftsme^-kanismen i
programmet under afprøvning, benyttes almindelige nytteprogrammer til
at oprette og slette filer samt vise katalogindhold, således at
forudsætningerne for hver session tilvejebringes og resultaterne
dokumenteres. Specielt kan programmet DUMP være til nytte
under afprøvningen.
DUMP kan udskrive en vilkårlig CP/M-fil
på skærm eller skriver som et formatteret "dump". Udskriftformatet
kan ^-^-vælges som enten hexadecalt, alfabetisk eller begge dele, og
det er muligt at få udskrevet en sam^-menhængende delmængde af filens
blokke. Blokstørrelsen op^-fattes altid som 256 oktet^-ter.
Programmet aktiveres med kom^-mandoen DUMP, og dernæst angives
variantkoderne i dialog^-form.
^U6.2.3. Testdatagenerering.^u
De kunstige testdata til programmet LINK er objektkode^-filer, som
er af grundtypen FILE OF byte, hvor byte er hel^-talsintervallet 0..255
og altså fylder en oktet. Sådanne filer kan ikke dannes med et
almindeligt tekstredigerings^-program, og i stedet benyttes programmet
HEXASM (Hexadecal assembler), som på grundlag af en tekstfil med
særligt for^-mat kan danne en FILE OF byte samt en formatteret udskrift
af denne.
I bedste assembler-tradition er HEXASM linieorienteret, således
at der dannes netop en byte i uddatafilen for hver linie i inddatafilen
(undtagen kommentarlinier, som kende^-tegnes ved at liniens første 2 tegn er
blanktegn). Linierne består af to felter - et datafelt og et kommentarfelt.
Data^-feltet omfatter liniens første 2 tegn og kommentarfeltet resten af linien.
Således består datafeltet af to blanktegn i en kommentarlinie.
Datafeltet kan have et af tre formater: 2 blanktegn (kommentar), et
tocifret hexadecalt tal eller et ">"-tegn efterfulgt af et udskriveligt
ascii-tegn. I første tilfælde overspringes linien. I andet tilfælde
dannes en oktet med ordinalværdi svarende til det hexadecale tal, og
i sidste tilfælde dannes en oktet med ordinalværdi svarende til det
pågældende ascii-tegn.
I den formatterede udskrift angives oktet^-værdi (deci^-malt og
hexadecalt) og kommentarfeltet fra inddatafilen.
^U6.3. Organisation.^u
I dette afsnit beskrives de konkrete forhold, som ^-^-gælder for det aktuelle
program. Herunder redegøres i afsnit 6.3.1 for hvilke testudskriftsrutiner,
der er knyttet til de enkelte testkategorier, og i afsnit 6.3.2 for
afprøvningens opdeling i sessioner og grupper. Dernæst opregnes i
afsnit 6.3.3 hvilke for^-hold, der er afprøvet (testtilfældene).
Af^-prøvningssession^-erne omtales i afsnit 6.3.4 med angivelse af
forudsætninger og succeskriterium for hver enkelt sesson.
Aktiveringskommando og testdata for sessionerne fremgår af kommandofilen
for den gruppe, som sessionen indgår i, og kan søges der. Egentlig burde
også forudsætninger og succes^-kriterier fremgå af kommandofilerne som
kommentarer, men dette er ikke praktisabelt med den anvendte CP/M-version.
Kommandofilernes tekst findes i bilag 4.
LINK-programmet er udviklet på en BDS2001A datamat med 2 diskettedrev,
hvor A-drevet er benyttet til systemdiskette med nytteprogrammer
(f.eks. oversætter), og hvor B-drevet er benyttet til kildeteksten.
Afprøvningen er udført ved at testdisketter med testprogrammer
og nytteprogrammer til brug under afprøvningen efter tur har
erstattet den normale ^-^-systemdiskette, hvorpå LINK.COM er
kopieret til testdisket^-ten, og testkommandofilerne er udført med
"A:" selekteret.
^U6.3.1. Testkategorier.^u
Testudskriftsrutinerne er inddelt i følgende kategorier ("-" betyder,
at testkategorien ikke er benyttet):
$#kopier
0: ALLE testudskriftsrutiner aktive.
1: Filoperationer: ASG, RST, RWT, CLS.
2: " : FGi8, FGi32, FGSym.
3: " : FPi8, FPi32, FPSym.
4: BitMapoperationer: BMG2, BMG6, BMP2, BMP6.
5: -
6: OPT, FNT, MDT, SCT.
7: EIT.
8: -
9: NMT (i.e. NMTP, NMTFail, NMTG, SBTS).
10: SBT (i.e. SBTEX, SBTIM).
11: VLT.
12: -
13: Heap.
14: -
15: -
16: ALLE applikationsprocedurer.
17: Link (i.e. hovedprogrammet).
18: Setup.
19: Pass 1.
20: Pass 2.
21-31: -
$#formatter
^U6.3.2. Afprøvningsgrupper.^u
Afprøvningen er som nævnt delt i grupper af sessioner.
Der benyttes 6 grupper (gruppe 0 - 5), som fordeler sig ^-^-således
på sessioner og kommandofiler:
$#kopier
Gruppe Sessioner Fil Afprøver
-----------------------------------------------------------
0 1 - 9 TSTP0.SUB Procedure SetUp
1 10 - 18 TSTP1.SUB Procedure SetUp
2 20 - 29 TSTP2.SUB Procedure Pass1
3 30 - 36 TSTP3.SSB Procedure Pass1
4 40 - 43 TSTP4.SUB Procedure Pass2
5 50 - 56 TSTP5.SUB Procedure Pass2
$#formatter
^U6.3.3. Testtilfælde.^u
I dette afsnit opregnes de tilfælde eller forhold, som er afprøvet.
Testtilfældene er ligesom afprøvningens sessi^-oner delt i grupper,
som modsvarer programmets inddeling i hovedprocedurerne SetUp,
Pass1 og Pass2, og er løbenummere^-ret inden for hver gruppe.
^U^KGruppe 0 - 1. SetUp.^k^u
$#liste 120
$#punkt 0-1
(1)
$#
Ingen kommando.
$#punkt 0-2
(2)
$#
Ingen variantkoder, 1 eksisterende fil.
$#punkt 0-3
(3)
$#
Ingen variantkoder, 2 eksisterende filer.
$#punkt 0-4
(4)
$#
Ingen variantkoder, 3 eksisterende filer.
$#punkt 0-5
(5)
$#
Ingen variantkoder, 1 eksisterende fil og 1 ikke-eksi^-sterende fil.
$#punkt 0-6
(6)
$#
(LINK /M <fil>) Logfil og uddatafil dannes korrekt med navne svarende
til den eksisterende inddatafil.
$#punkt 0-7
(7)
$#
(LINK /M <fil>) Korrekt fejlmelding af allerede eksi^-sterende logfil.
$#punkt 0-8
(8)
$#
(LINK /O <fil>) Uddatafil dannes korrekt med navn ^-^-svarende
til den eksisterende inddatafil.
$#punkt 0-9
(9)
$#
(LINK /O <fil>) Korrekt fejlmelding af allerede eksi^-sterende uddatafil.
$#punkt 0-10
(10)
$#
(LINK /M=a/O=b <fil>) Logfil og uddatafil dannes kor^-rekt med eksplicit
angivne navne.
$#punkt 0-11
(11)
$#
(LINK /m=a/o=b <fil>) Korrekt fejlmelding af allerede eksisterende
logfil og uddatafil. Variantkoder kan også skrives med minuskler.
$#punkt 0-12
(12)
$#
(LINK /m/0) Korrekt fejlmelding af manglende inddata^-filer.
$#punkt 0-13
(11,13)
$#
Ekstreme længder på eksplicit angivne filnavne ved ^-^-variantkoder.
$#punkt 0-14
(2)
$#
Ekstreme længder på inddatafilnavne.
$#punkt 0-15
(14)
$#
Ugyldig variantkode.
$#punkt 0-16
(16)
$#
Ugyldigt filnavn.
$#punkt 0-17
(15)
$#
Blanktegn før 2. variantkode.
$#punkt 0-18
(17)
$#
2 kommaer efter hinanden i inddatafillisten.
$#punkt 0-19
(14)
$#
2 skråstreger efter hinanden i variantkodelisten.
$#punkt 0-20
(2)
$#
Tekst efter gyldig kommando.
$#punkt 0-21
(alle)
$#
Korrekt fejlmelding af kommandolinie (placering af mar^-kør: "^").
$#punkt 0-22
(alle)
$#
Kommandolinie udskrives i logfil, hvis denne dannes.
$#punkt 0-23
(alle)
$#
Uddatafiler dannes korrekt.
$#punkt 0-24
(1,2,3,4,5)
$#
Ingen variantkoder.
$#punkt 0-25
(6,7,8,9)
$#
Netop en variantkode.
$#punkt 0-26
(10,11)
$#
Flere variantkoder.
$#punkt 0-27
(6,7,8,9,10,11)
$#
Alle gyldige variantkoder.
$#punkt 0-28
(14)
$#
Ugyldig variantkode.
$#punkt 0-29
(13)
$#
Ugyldigt eksplicit filnavn i variantkodeliste.
$#punkt 0-30
(12)
$#
Kommandolinie slutter efter variantkodelisten.
$#punkt 0-31
(17)
$#
Ugyldigt inddatafilnavn.
$#punkt 0-32
(3)
$#
Filnavn uden suffix (i CP/M kaldet extension).
$#punkt 0-33
(3)
$#
Filnavn med suffix (I CP/M kaldet extension).
$#punkt 0-34
(4)
$#
Overløb i filnavnstabel.
$#punkt 0-35
(3)
$#
Filnavnstabel fyldes netop helt.
$#punkt 0-36
(18)
$#
Ugyldig separator/terminator (not in (. ',' , ' '.) )
$#punkt 0-37
(11)
$#
Eksplicit logfilnavn med suffix.
$#punkt 0-38
(10)
$#
Eksplicit logfilnavn uden suffix.
$#punkt 0-39
(10)
$#
Eksplicit uddatafilnavn med suffix.
$#punkt 0-40
(11)
$#
Eksplicit uddatafilnavn uden suffix.
$#liste 0
^U^KGruppe 2 - 3. Pass1.^u^k
$#liste 120
$#punkt 1-1
(21)
$#
Filformatfejl fejlmeldes korrekt.
$#punkt 1-2
(23)
$#
Modulformatfejl fejlmeldes korrekt.
$#punkt 1-3
(20)
$#
Tom fil fejlmeldes korrekt.
$#punkt 1-4
(22)
$#
Uventet end-of-file fejlmeldes korrekt.
$#punkt 1-5
(24)
$#
Modulnavnskonflikt fejlmeldes korrekt.
$#punkt 1-6
(25)
$#
Eksportsymbolnavnskonflikt fejlmeldes korrekt.
$#punkt 1-7
(26)
$#
Symbolnavn med længde nul fejlmeldes korrekt.
$#punkt 1-8
(24,33)
$#
Symbolnavn med netop maksimal længde håndteres korrekt.
$#punkt 1-9
(27)
$#
Symbolnavn, hvis længde overstiger maksimalgrænsen,
fejlmeldes korrekt.
$#punkt 1-10
(33)
$#
NMT fyldes netop helt.
$#punkt 1-11
(28)
$#
NMT-overløb fejlmeldes korrekt.
$#punkt 1-12
(33)
$#
MDT fyldes netop helt.
$#punkt 1-13
(29)
$#
MDT-overløb fejlmeldes korrekt.
$#punkt 1-14
(33)
$#
SCT fyldes netop helt.
$#punkt 1-15
(30)
$#
SCT-overløb fejlmeldes korrekt.
$#punkt 1-16
(33)
$#
SBT fyldes netop helt.
$#punkt 1-17
(31)
$#
SBT-overløb fejlmeldes korrekt.
$#punkt 1-18
(33)
$#
EIT fyldes netop helt.
$#punkt 1-19
(32)
$#
EIT-overløb fejlmeldes korrekt.
$#punkt 1-20
(29)
$#
Objektmodul uden sektioner håndteres korrekt.
$#punkt 1-21
(29)
$#
Objektmodul uden eksporterede symboler håndteres kor^-rekt.
$#punkt 1-22
(29)
$#
Objektmodul uden eksterne referencer håndteres korrekt.
$#punkt 1-23
(33)
$#
Eksport af både absolutte symboler og relokerbare sym^-boler
fra forskellige segmeneter håndteres korrekt.
$#punkt 1-24
(33)
$#
Import af både absolutte symboler og relokerbare sym^-boler
til forskellige segmenter håndteres korrekt.
$#punkt 1-25
(31)
$#
Overflødig eksport håndteres korrekt.
$#punkt 1-26
(32)
$#
Utilstrækkelig eksport (utilfrdsstillede referencer) håndteres og
logges korrekt.
$#punkt 1-27
(30)
$#
Objektmodul uden segment nummer 1 (men med følgende segmenter)
håndteres korrekt.
$#punkt 1-28
(26,27,28,30,31,32)
$#
Objektkodefiler med netop 1 objektmodul håndteres kor^-rekt.
$#punkt 1-29
(29)
$#
Objektkodefil med flere objektmoduler håndteres kor^-rekt.
$#punkt 1-30
(20,21,22,23,24,25,26,27,28,29,30,31,32)
$#
Netop en inddatafil håndteres korrekt.
$#punkt 1-31
(33)
$#
Flere inddatafiler håndteres korrekt.
$#punkt 1-32
(34)
$#
Korrekt håndtering og fejlmelding af flere inddatafil^-er, hvoraf #1 er
fejlbehæftet og #2 er korrekt.
$#punkt 1-33
(35)
$#
Korrekt håndtering af inddatafil med flere objektmodul^-er, hvoraf #1
er fejlbehæftet og #2 er korrekt.
$#punkt 1-34
(40)
$#
Korrekt relokering og skrivning af segmentbeskrivelser i uddatafil samt
korrekt logning.
$#punkt 1-35
(41)
$#
Korrekt håndtering af flere moduler med eksportsymboler i disjunkte
alfaintervaller.
$#punkt 1-36
(42)
$#
Korrekt håndtering af flere moduler med eksportsymboler i overlappende
alfaintervaller.
$#liste 0
^U^KGruppe 4 -5. Pass2.^k^u
$#liste 120
$#punkt 2-1
(50)
$#
Korrekt håndtering af bitmap rid.
$#punkt 2-2
(50,51)
$#
Korrekt startposition for IMG, RID og OVR.
$#punkt 2-3
(50,51)
$#
Korrekt opdatering af CurrentFileAddress.
$#punkt 2-4
(50,51,52,53,54,55)
$#
Korrekt fortolkning af importable og relocatable (alle 4 kombinationer).
$#punkt 2-5
(50)
$#
Korrekt relokering efter vilkårligt segment i eget ^-^-modul.
$#punkt 2-6
(50)
$#
Korrekt import fra vilkårligt segment i fremmed modul.
$#punkt 2-7
(50)
$#
Korrekt import af samme symbol til flere segmenter i samme modul.
$#punkt 2-8
(50)
$#
Korrekt import af samme symbol til flere adresser i samme segment.
$#punkt 2-9
(50)
$#
Korrekt håndtering af utilfredsstillede referencer.
$#punkt 2-10
(50)
$#
Korrekt relokering af eller import til sidste Quad^-ImageUnit i IMG.
$#punkt 2-11
(55)
$#
Korrekt fejlmelding af relokering af eller import til sidste 3 ImageUnits
i IMG.
$#punkt 2-12
(50,51)
$#
Korrekt kopiering (størrelse og indhold) af Crid og Covr til uddatafil.
$#punkt 2-13
(50)
$#
Skrivning af sektioner i korrekt sekvens i uddatafil.
$#punkt 2-14
(50,51,56)
$#
Korrekt opdatering af resumeinformation i uddatafilens objektmodul.
$#liste 0
^U6.3.4. Forudsætninger og succeskriterier.^u
I dette afsnit gennemgås forudsætningerne og de for^-ventede resultater
(succeskriterierne) for hver enkelt af^-prøvningssession. At en fil
forudsættes at eksistere før en session markeres ved &+, og at den
forudsættes ikke at ^-^-eksistere makeres ved &-. O markerer, at uddatafilen
skal dannes, og M markerer, at logfilen skal dannes.
For samtlige sessioner i gruppe 2,3,4 og 5 gælder, at *.out- og *.map-
filerne med sessionsnummeret som navn skal være slettet før sessionen.
$#kopier
$#blok-start
Ses-
sion Forudsætninger Resultat
-----------------------------------------------------------
01 ingen NoInputFiles.
&+ a:a2345678.obj UnExpectedEof
03 &+ a.obj, b.obj
&- a.out UnExpectedEof
04 &+ a.obj, b.obj, c.obj
&- a.out FileNameTableOverFlow
05 &+ a.obj
&- d.obj NoSuchFile
06 &+ a.obj
&- a.map, a.out M UnExpectedEof, NoInput
07 &+ a.obj, a.map
&- a.out BadLogFileName
08 &+ b.obj
&- b.out UnExpectedEof, NoInput
09 &+ b.obj
&- b.out BadTargetFileName, NoInput
$#blok-slut
$#blok-start
Ses-
sion Forudsætninger Resultat
-----------------------------------------------------------
10 &+ a.obj
&- x.map, y2345678.out M UnExpectedEof, NoInput
11 &+ a.obj
&- x2345678.map, y.out M UnExpectedEof, NoInput
12 ingen NoInputFiles
13 &+ a.obj BadFileName
14 &+ a.obj BadOption
15 &+ a.obj NoSuchFile
16 ingen NoSuchFile
17 &+ a.obj, b.obj BadFileName
18 &+ a.obj, b.obj NoSuchFile
$#blok-slut
$#blok-start
Ses-
sion Forudsætninger Resultat
-----------------------------------------------------------
20 &+ 20.obj M UnExpectedEof, NoInput
21 &+ 21.obj M BadFileFormat, NoInput
22 &+ 22.obj M UnExpectedEof
23 &+ 23.obj M BadModuleFormat, NoInput
24 &+ 24.obj DuplicateModuleName
25 &+ 25.obj M DuplicateSymbolName
26 &+ 26.obj BadSmbolName
27 &+ 27.obj BadSymbolName
28 &+ 28.obj NameTableOverFlow
29 &+ 23.obj ModuleTableOverFlow
$#blok-slut
$#blok-start
Ses-
sion Forudsætninger Resultat
-----------------------------------------------------------
30 &+ 30.obj SectionTableOverFlow
31 &+ 31.obj SymbolTableOveFlow
32 &+ 32.obj ExternalImportTableOverFlow.
Utilfredsstillede referencer
33 &+ 33a.obj, 33b.obj M ModuleTableOverFlow
34 &+ 34.obj, 33b.obj BadModuleFormat
35 &+ 35.obj BadSymbolName
36 &+ 36.obj RangeError
$#blok-slut
$#blok-start
Ses-
sion Forudsætninger Resultat
-----------------------------------------------------------
40 &+ 40.obj M Baddibit. Korrekt
lokaliseringsplan
41 &+ 41.obj OM Success. Korrekt
lokaliseringsplan
42 &+ 42.obj OM Success. Korrekt sorteret
liste af eksportsymboler
43 &+ 43.obj OM Success. Korrekt sorteret
liste af eksportsymboler
44 &+ 44.obj OM Success. Korrekt sorteret
liste af eksportsymboler og
korrekt EXI-liste
$#blok-slut
$#blok-start
Ses-
sion Forudsætninger Resultat
-----------------------------------------------------------
50 &+ 50.obj OM Success
51 &+ 51.obj OM Success. Korrekt reduktion
af OVR.
52 &+ 52.obj M Baddibit
53 &+ 53.obj M BadRelocationCode
54 &+ 54.obj M BadImportCode
55 &+ 55.obj M Baddibit
56 &+ 56.obj, 51.out OM Success. Korrekt læsning af
egne uddata. Korrekt out- og
map-fil.
$#blok-slut
$#formatter
«eof»