|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC3600/RC7000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC3600/RC7000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 11264 (0x2c00) Types: TextFile Names: »P4PÆ7«
└─⟦92491b7d7⟧ Bits:30001772 UDVIKLING AF CALLRUTINER ETC NR 2 └─⟦this⟧ └─⟦ee9e554ad⟧ Bits:30001809 SG0107 Floppy └─⟦this⟧
!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»