DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC3600/RC7000

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

See our Wiki for more about RegneCentralen RC3600/RC7000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦9f6892af3⟧ TextFile

    Length: 11264 (0x2c00)
    Types: TextFile
    Names: »P4PÆ7«

Derivation

└─⟦92491b7d7⟧ Bits:30001772 UDVIKLING AF CALLRUTINER ETC NR 2
    └─ ⟦this⟧ »/P4PÆ7« 
└─⟦ee9e554ad⟧ Bits:30001809 SG0107 Floppy
    └─ ⟦this⟧ »/P4PÆ7« 

TextFile

!0005 UCA01
01              ;       CALL"FINDTEGN",S$,TXT$,START,FUNDET 
02              
03 00247'000004 FINDT:   4 
04 00250'000003          STRING 
05 00251'000003          STRING 
06 00252'000000          REAL 
07 00253'100000          REAL+REFER 
08                              ; PDTA          S$ PDA
09                              ;               TXT$ PDA
10                              ;               STARTINDEX PDA (REAL)
11                              ;               FUNDETINDEX PDA (REAL+REFERENCE)
12                              ; S$ PDA        ADR I DATASEGM
13                              ;               NO BYTES
14                              ;               SEGM NO
15                              ; TXT$ PDA      ADR I DATASEGM
16                              ;               NO BYTES
17                              ;               SEGM NO (=1)
18                              ; START PDA     1.WORD IN FLOATING REPR
19                              ;               2.WORD
20                              ; FUNDET PDA    ADR I DATASEGM
21              
22                              ; US00          INDEX
23                              ; US01          S$(1) TEXT DER SKAL FINDES
24                              ; US02          BYTEADR FOR TXT$(INDEX) I DATASEGMENTET
25              
26 00254'027000          LDA @ 1,0,2     ;HENT S$ WORD ADR. 
27 00255'125100          MOVL 1,1        ;BYTE ADR. 
28 00256'030040          LDA 2,CUR 
29 00257'020120          LDA 0,80 
30 00260'007100          A.GBYTE 
31 00261'041471          STA 0,U.S01,3   ;FØRSTE CHR. AF S$ 
32 00262'031467          LDA 2,U.STK,3
33 00263'031002         LDA 2,2,2
34 00264'021000         LDA 0,+0,2      ;HENT START INDEKS 
35 00265'025001          LDA 1,+1,2 
36                       BCALL FIX 
37 00266'035515         LDA    3   U.S21,3
38 00267'007400         JSR@       +0,3
39 00270'101004          MOV 0,0,SZR 
40 00271'000430          JMP ERUD1       ;NEGATIV 
41 00272'121000          MOV 1,0 
42 00273'045470          STA 1,U.S00,3   
43 00274'031467          LDA 2,U.STK,3 
44 00275'033001         LDA @ 2,1,2
45 00276'125100          MOVL 1,1        ;TXT$ (1) BYTE ADR. 
46 00277'107000          ADD 0,1         ;TXT$(INDEKS) BYTE ADR. I AC1 
47                              ; PL 20.9.81 RETTELSER:
48 00300'045472         STA 1,U.S02,3   ; US02=BYTEADR FOR TXT$(INDEX) I DATASEGM
49               
50                      ; FLG RUTINE FORUDSÆTTER
51                      ; AC0   AC1     AC2     AC3
52                      ; ü     TXT$(I) PDTA    USER
53                      ;       BY-ADR
54              LOP1:
55 00301'031001         LDA 2,1,2       ; ER INDEX<=LEN(TXT$) ? ELLERS JMP EJF
56 00302'021001         LDA 0,1,2
57 00303'031470         LDA 2,U.S00,3   ; EX:
58 00304'151400         INC 2,2         ; C=0  AC2=0110 COMPL-> 1001
59 00305'142033         ADCZ # 2,0,SNC  ; AC0=LEN(TXT$)+1    =  0111  => C=1
60 00306'000431         JMP EJF
«ff»
 0006 UCA01
01 00307'030040          LDA 2,CUR      ;FLYTTET AF PL 
02                              ; PL RETT. SLUT
03 00310'020120          LDA 0,80 
04 00311'007100          A.GBYTE         ;HENT BYTE TXT$(INDEKS) 
05 00312'025471          LDA 1,U.S01,3   ; HENT S$ 
06 00313'106405          SUB 0,1,SNR     ;ENS? 
07 00314'000407          JMP FUNDT 
08 00315'011470          ISZ U.S00,3     ;FORØG INDEKS 
09 00316'011472          ISZ U.S02,3     ;FORØG BYTE ADR. 
10 00317'025472         LDA 1,U.S02,3   ; PL TILFØJELSE SØNDAG 17.9.81
11 00320'000761          JMP LOP1 
12                
13 00321'006244 ERUD1:   ERROR   ;INDEKSFEJL 
14 00322'000037          31 
15                        
16 00323'025470 FUNDT:  LDA 1,U.S00,3            ;FUNDET 
17 00324'102400          SUB 0,0        ; STED=INDEKS 
18              NNN:      BCALL FLOAT 
19 00325'035515         LDA    3   U.S21,3
20 00326'007401         JSR@       +1,3
21 00327'035467          LDA 3,U.STK,3 
22 00330'037403          LDA @ 3,3,3 
23 00331'054404          STA 3,WADRS
24 00332'030040          LDA 2,CUR 
25 00333'007106          A.PDOUBLE 
26 00334'000001          1 
27 00335'000000 WADRS:   0 
28 00336'002242          RET1 
29               
30               EJF:   ; ADC 1,1 FJERNET PL SØNDAG
31 00337'102000          ADC 0,0
32 00340'126000          ADC 1,1        ;IKKE FUNDET STED=-1 
33 00341'000764          JMP NNN 
34              
35              
36              ; FØLGENDE ER HENTET FRA MMTX4:11 OG RETTET AF PL SØNDAG
37              
38               
39                      ; Program head MM-110981 
40                      ; Følgende call kan benyttes: 
41                      ; CALL"GET",T$,A 
42                      ; T$ = streng dimentioneret > A 
43                      ; A = Antallet af tegn, der skal inputtes i T$. 
44              
45                      ; Ved call indeholder accumulatorerne følgende værdier 
46                      ; AC2 = UDA+U.STK = PDTA 
47                      ; AC3 = UDA 
48                      ; 
49                      ; Adresse              Lagerindhold 
50                      ; =======              ============ 
51                      ; USER (page 0)        UDA 
52                      ; UDA+PIO              Adr. af prim. I/O zone 
53                      ; UDA + U.S00          User dataarealler 
54                      ; UDA + U.S20          - 
55                      ; UDA + U.S21          Subrutine tabel  
56                      ; UDA + U.STK      PDTA 
57                      ; PDTA             0   T$ PDA 
58                      ;                  1   A PDA 
59                      ; PDA T$           2   Adr. af 1. byte. 
60                      ;                  3   Max ant. byte 
«ff»
 0007 UCA01
01                      ;                  4   Current ant. byte 
02                      ; PDA A            5   1. word 
03                      ;                  6   2. word 
04 00342'000000         0               ;  
05 00343'000002 GET00: 2        ; To variable 
06 00344'100003         STRING+REFERENCE        ; T$ 
07 00345'000000         REAL            ; og A 
08 00346'021005         LDA 0,+5,2      ; AC0 = 1. WORD AF A 
09 00347'025006         LDA 1,+6,2      ; AC1 = 2. WORD AF A 
10                      BCALL FIX       ; Hental => Kommatal 
11 00350'035515         LDA    3   U.S21,3
12 00351'007400         JSR@       +0,3
13 00352'101014         MOV # 0,0,SZR 
14 00353'000441         JMP ERR31       ; Index fejl 
15 00354'045471         STA 1,U.S01,3   ; U.S01 = Antal chr, der skal inputtes. 
16              
17                              ; US00 = 
18                              ; US01 = ANTAL CHR DER SKAL INDPUTTES
19                              ; US02 = BYTEADR AF 1. BYTE I T$
20                              ; US03 = MAX ANTAL CHR I T$ (T$ SKAL VED KALD VÆRE <>"" !
21                              ;   REM PL SØNDAG - ER DET MENINGEN??????
22              
23 00355'031467         LDA 2,U.STK,3   ; AC2=PDTA 
24 00356'025002         LDA 1,+2,2      ; AC1= WORDADR AF 1. BYTE I T$
25 00357'125100         MOVL 1,1        ; PL RETTELSE SØNDAG T$(INDEX) BYTEADR
26                              ; OG HVEM ER DEN TÅBE DER HAR FJERNET ASS CODED SUBR MANUALEN
27                              ; FRA NR 46, SÅ MAN KAN KONTROLLERE OM PDA W1 IKKE INDEH W-ADR !!!
28 00360'045472         STA 1,U.S02,3   ; U.S02 = Adr. af 1. byte       LDA 2,U.STK,3  
29 00361'025003         LDA 1,+3,2      ; AC1=Max ant. chr. 
30 00362'044073         STA 1,U.S03     ; U.S03=AC1 
31 00363'020071         LDA 0,U.S01     ; AC0=U.S01 
32 00364'106522         SUBZL 0,1,SZC   ; AC0 > AC1 ? 
33 00365'000427         JMP ERR31       ; JA => Index fejl. 
34 00366'030040 GET13:  LDA 2,CUR       ; AC2=CUR 
35 00367'034017         LDA 3,USER      ; AC3=USER 
36 00370'021442         LDA 0,PIO,3     ; Adr. af primære I/O zone (term.). 
37 00371'007115         F.ICHAR         ; Hent en carakter 
38 00372'000424         JMP ERRUD       ; Hvis fejl. Skriv den ud. 
39 00373'020054         LDA 0,44        ; AC0=31 
40 00374'152520         SUBZL 2,2       ; AC2=1 
41 00375'142400         SUB 2,0         ; AC0=31 
42              ;               FLG BET. RETTET PL SØND:SUB # 1,0,SNR   ; CHR > 31 (>='space') 
43 00376'122032         ADCZ # 1,0,SZC  ; PL RETTELSE SØNDAG ILL TILFÆLDE 4 BIT
44                                      ;       C=0 AC1=0110 (HENTET BYTE FRA ICHAR) OG AC0=1100 
45                                      ;  AC1 COMPL   =1001
46                                      ;  AC0 EX      =1100 (AC0>=AC1)
47                                      ;  SUM         =0101 OG OVERFLOW=> C=1 OG DER SKIPPES IKKE
48                                      ;   DVS SKIP HVIS AC1<=AC0 DVS HVIS AC1<=31 (KORREKT?)
49 00377'000767         JMP GET13       ; Nej !! Går tilbage til 'GET13' 
50 00400'121000         MOV 1,0         ; AC0 = AC1 
51 00401'025472         LDA 1,U.S02,3 
52 00402'030040         LDA 2,CUR 
53 00403'007104         A.PBYTE         ; Put chr ud i T$. 
54 00404'000001         1               ; Hvordan ud!! 
55 00405'025472         LDA 1,U.S02,3   ; GEM AC1 i U.S02 
56 00406'125400         INC 1,1         ; AC1=AC1+1 
57 00407'045472         STA 1,U.S02,3   ; GEM AC1 UD I 'U.S02' 
58 00410'031471         LDA 2,U.S01,3   ; AC2=U.S01 
59 00411'122415         SUB # 1,0,SNR   ; Input færdigt!! 
60 00412'000754         JMP GET13       ; Nej 
«ff»
 0008 UCA01
01 00413'002242         RET1            ; Ja 
02 00414'006244 ERR31:  ERROR 
03 00415'000037         31              ; Indexfejl (returner til BASIC) !! 
04 00416'050402 ERRUD:  STA 2,+2,1 
05 00417'006244         ERROR    
06 00420'000000         0               ; Evt. BCALL IOERR 
07               
08              
09                      PRDE2           ; PROGRAM SLUT 
10              
11              PP10:                   ; PROCESSDESCRIPTOR:
12 00421'000000         0               ; NEXT
13 00422'000000         0               ; PREV
14 00423'000000         0               ; CHAIN
15 00424'000025         PP15-PP10       ; SIZE
16 00425'052503         .TXT    .UCALL. ; NAME
17       040514 
18       046000 
19 00430'000430'        .+0             ; FIRST EVENT
20 00431'000430'        .-1             ; LAST EVENT
21 00432'000000         0               ; BUFFE
22 00433'000000'        PP00            ; PROGRAM
23 00434'000000         0               ; STATE
24 00435'000000         0               ; TIMER
25 00436'000001         1               ; PRIORITY
26 00437'000007'        PP05            ; BREAK
27 00440'000421'        PP10            ; AC0
28 00441'000000         0               ; AC1
29 00442'000421'        PP10            ; AC2
30 00443'000000         0               ; AC3
31 00444'000016"        PP05*2          ; PSW
32 00445'000000         0               ; SAVE
33              
34              PP15:                   ;
35                              .END    PP10
0000 SOURCE LINES IN ERROR
«ff»
«nul»