DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦a89614ccb⟧ TextFile

    Length: 3072 (0xc00)
    Types: TextFile
    Names: »nrstringtx«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦80900d603⟧ »giprocfile« 
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
    └─⟦b2ec5d50f⟧ 
        └─⟦80900d603⟧ »giprocfile« 
            └─⟦this⟧ 

TextFile



;       nr_string_tx          * page 1   27 09 77, 11.35;  

;  nrstring
;  ********

if listing.yes
char 10 12 10

nrstring = set 1

nrstring = algol

external

integer procedure nrstring ( tp, text_ant, læst_text, text);  
____________________________________________________________

value   text_ant;  
integer text_ant, tp;  
string   læst_text, text;  

comment
Parameteren text evalueres med tp:= text_ant
step -1 until 1 (Jensens device) og der søges
en match mellem læst_text og værdierne
af text. Genkendes læst_text ikke i text er
procedurens værdi 1, ellers den tilsvarende
værdi af tp+1.
Eventuelle store bogstaver i den læste text
erstattes ved sammenligningen med små.
(bog staverne i værdierne  bør altsaa
være smaa. Paa denne maade kan egenavne i
input staves med stort eller smaat).
Der benyttes saa mange tegn af den læste
text som den aktuelle værdi af text har.
I den aktuelle version dog kun 1-6 . Er dette
ikke opfyldt afbrydes kørslen med udskriften
<:longtext:> eller <:shorttxt:> samt den
tilsvarende værdi af tp (6 tegn er
tilladt hvis det er tale om en
'text portion', ikke hvis det er en
'long text string', jft algol5 afs 3.6.3);  

begin
  long    læst, sam_text;  
  integer skift, i, tegn;  
  læst:=long læsttext;  

\f



comment nr_string_tx          * page 2   27 09 77, 11.35
0 1 2 3 4 5 6 7 8 9 ;  

  for skift:= -40 step 8 until 0 do
  begin
    comment store til små bogstaver;  
    tegn:= læst shift skift extract 8;  
    if tegn>64 and tegn<94 then
    læst:= læst shift (skift-8) shift 8 add (tegn+32)
    shift (-skift) +
    (læst shift (48+skift) shift (-48-skift));  
    if tegn=0 then skift:=0;  
  end for skift:= -40;  
  i:= 1;  

  for tp:= text_ant step -1 until 1 do
  begin
    sam_text:= long text;  
    comment evaluer text netop 1 gang pr 
    gennemløb for at undgå dublering
    af eventuelle sideeffekter;  

    if sam_text shift (-23) extract 1 = 1 then
    system(9)run_time_alarm:(tp, <:<10>longtext:>);  

    for skift:= 8, skift-8 while
    sam_text shift skift extract 8 = 0 do;  
    if skift<-40 then 
    system(9, tp, <:<10>shorttxt:>);  
    if sam_text = læst shift skift shift (-skift) then
    begin
      comment match fundet, 
      stop søgning;  
      i:= tp+1;  
      tp:= 1;  
    end if sam_text;  
  end for tp:= text_ant;  

  nrstring:= i;  

end of nrstring;  

end

if warning.yes
(mode 0.yes
message nrstring not ok
lookup nrstring)
▶EOF◀