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

⟦192cba688⟧ TextFile

    Length: 13312 (0x3400)
    Types: TextFile
    Names: »P4PÆ8«

Derivation

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

TextFile

 0001 UCA01 DOMUS MACRO ASSEMBLER REV 02.00
01              ; CALLRUTINE FINDTEGN PL. P-H. HANS RUNE SVEND MF.  
02              ; 10.09.81 16.40.00 
03              ; DER ER INDLAGT STANDARDRUTINER FRA CAASM, OG ALT DETTE TILHØRER
04              ; ACSII-FILENS SIDE 1 --- SÅLEDES AT FINDTEGN & AFSLUTNING LIGGER PÅ SIDE 2
05              ; IØVRIGT ER FILEN RETTET SØNDAG 20.9.81 AF PL
06              ; ENDV. HAR JEG INDLAGT GET FRA MMTX4 MED RETTELSER (BEM MORTEN MARQUARD)
07              ; JUSTERET VIDERE SØNDAG (DET VAR JO D.20.9.81) KL 22
08              ; ENDV JUSTERET I FINDTEGN 21.9.81:  SÅ DER IKKE 'SNYDES' MED AT HENTE PARAMETRE
09              ; 23.9.81 ÆNDRINGER I FINDTEGN: 3 FEJL RETTETLDA@1,1,2 ISTF 2,1,2 
10              ; - INC0,0 ISTF2,2
11              ; SAMT TILFØJET LDA2,USTK,3 FØR JMPLOP1 * DERUDOVER SPM OM 2 STK MOVL
12              ; SOM BIBEHOLDES (KAN SÅ ÆNDRES TIL JMP1,1)
13              ; IØVRIGT ER GET KONSTATERET MISFORSTÅET IDET MAN JO SKAL HENTE DATA
14              ; -IKKE FRA PIO-ZONEN MEN FRA MULTIPLEXER-VIA BUFFERNE (SE TRYKT MANUAL)
 0003 UCA01

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