|
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: »MMKAL«
└─⟦cb4367ef8⟧ Bits:30001782 SG0002 Floppy └─⟦this⟧
«ff» 0001 UCA01 DOMUS MACRO ASSEMBLER REV 02.00 01 PRDE1 ; Program head MM-110981 02 .TITL UCA01 ; USER-CODED SUBROUTINES 78.05.01 04 .NREL 05 000012 .RDX 10 ; RADIX 10 06 000001 .TXTM 1 ; PACKED FROM LEFT TO RIGHT 07 000001 .TXTN 1 ; NO NULL-BYTES IF EVEN NUMBER OF BYTES 08 09 PP00: ; PROGRAM START 10 00000'100001 1B0+1B15 ; DESCRIPTOR 11 00001'000007' PP05 ; START 12 00002'000000 0 ; CHAIN 13 00003'000074 PP10-PP00 ; SIZE 14 00004'052503 .TXT .UCALL. ; NAME 15 040514 16 046000 17 18 PP05: ; 19 00007'006013 STOPPROCESS ; 20 00010'000777 JMP PP05 ; 21 22 ; Følgende call kan benyttes: 23 ; CALL"GET",T$,A 24 ; T$ = streng dimentioneret > A 25 ; A = Antallet af tegn, der skal inputtes i T$. 26 00011'000017' GET00 27 00012'043505 .TXT "GET<0><0><0><0><0>" 28 052000 29 000000 30 000000 31 ; Ved call indeholder accumulatorerne følgende værdier 32 ; AC0 = ? 33 ; AC1 = ? 34 ; AC2 = UDA+U.STK = PDTA 35 ; AC3 = UDA 36 ; 37 ; Adresse Lagerindhold 38 ; ======= ============ 39 ; USER (page 0) UDA 40 ; UDA+PIO Adr. af prim. I/O zone 41 ; UDA + U.S00 User dataarealler 42 ; UDA + U.S20 - 43 ; UDA + U.S21 Subrutine tabel 44 ; UDA + U.STK PDTA 45 ; PDTA 0 T$ PDA 46 ; 1 A PDA 47 ; PDA T$ 2 Adr. af 1. byte. 48 ; 3 Max ant. byte 49 ; 4 Current ant. byte 50 ; PDA A 5 1. word 51 ; 6 2. word 52 ; Subrutine tabel slut 53 00016'000000 0 ; 54 00017'000002 GET00: 2 ; To variable 55 00020'100003 STRING+REFERENCE ; T$ 56 00021'000000 REAL ; og A 57 00022'021005 LDA 0,+5,2 ; AC0 = 1. WORD AF A 58 00023'025006 LDA 1,+6,2 ; AC1 = 2. WORD AF A 59 BCALL FIX ; Hental => Kommatal 60 00024'035515 LDA 3 U.S21,3 «ff» 0002 UCA01 01 00025'007400 JSR@ +0,3 02 00026'101014 MOV # 0,0,SZR 03 00027'000440 JMP ERR31 ; Index fejl 04 00030'045471 STA 1,U.S01,3 ; U.S01 = Antal chr, der skal inputtes. 05 00031'031467 LDA 2,U.STK,3 ; AC2=PDTA 06 00032'025002 LDA 1,+2,2 ; AC1= WORDADR AF 1. BYTE I T$ 07 00033'045472 STA 1,U.S02,3 ; U.S02 = Adr. af 1. byte LDA 2,U.STK,3 08 00034'025003 LDA 1,+3,2 ; AC1=Max ant. chr. 09 00035'044073 STA 1,U.S03 ; U.S03=AC1 10 00036'020071 LDA 0,U.S01 ; AC0=U.S01 11 00037'106522 SUBZL 0,1,SZC ; AC0 > AC1 ? 12 00040'000427 JMP ERR31 ; JA => Index fejl. 13 00041'030040 GET13: LDA 2,CUR ; AC2=CUR 14 00042'034017 LDA 3,USER ; AC3=USER 15 00043'021442 LDA 0,PIO,3 ; Adr. af primære I/O zone (term.). 16 00044'007115 F.ICHAR ; Hent en carakter 17 00045'000424 JMP ERRUD ; Hvis fejl. Skriv den ud. 18 00046'020054 LDA 0,44 ; AC0=32 19 00047'152520 SUBZL 2,2 ; AC2=1 20 00050'142400 SUB 2,0 ; AC0=31 21 00051'122415 SUB # 1,0,SNR ; CHR > 31 (>='space') 22 00052'000767 JMP GET13 ; Nej !! Går tilbage til 'GET13' 23 00053'121000 MOV 1,0 ; AC0 = AC1 24 00054'025472 LDA 1,U.S02,3 25 00055'030040 LDA 2,CUR 26 00056'007104 A.PBYTE ; Put chr ud i T$. 27 00057'000001 1 ; Hvordan ud!! 28 00060'025472 LDA 1,U.S02,3 ; GEM AC1 i U.S02 29 00061'125400 INC 1,1 ; AC1=AC1+1 30 00062'045472 STA 1,U.S02,3 ; GEM AC1 UD I 'U.S02' 31 00063'031471 LDA 2,U.S01,3 ; AC2=U.S01 32 00064'122415 SUB # 1,0,SNR ; Input færdigt!! 33 00065'000754 JMP GET13 ; Nej 34 00066'002242 RET1 ; Ja 35 00067'006244 ERR31: ERROR 36 00070'000037 31 ; Indexfejl (returner til BASIC) !! 37 00071'050402 ERRUD: STA 2,+2,1 38 00072'006244 ERROR 39 00073'000000 0 ; Evt. BCALL IOERR 40 ; RET0 41 ; 42 ; 43 ; End of list:«so» MMTXT 44 PRDE2 ; PROGRAM SLUT 45 46 PP10: ; PROCESSDESCRIPTOR: 47 00074'000000 0 ; NEXT 48 00075'000000 0 ; PREV 49 00076'000000 0 ; CHAIN 50 00077'000025 PP15-PP10 ; SIZE 51 00100'052503 .TXT .UCALL. ; NAME 52 040514 53 046000 54 00103'000103' .+0 ; FIRST EVENT 55 00104'000103' .-1 ; LAST EVENT 56 00105'000000 0 ; BUFFE 57 00106'000000' PP00 ; PROGRAM 58 00107'000000 0 ; STATE 59 00110'000000 0 ; TIMER 60 00111'000001 1 ; PRIORITY «ff» 0003 UCA01 01 00112'000007' PP05 ; BREAK 02 00113'000074' PP10 ; AC0 03 00114'000000 0 ; AC1 04 00115'000074' PP10 ; AC2 05 00116'000000 0 ; AC3 06 00117'000016" PP05*2 ; PSW 07 00120'000000 0 ; SAVE 08 09 PP15: ; 10 .END PP10 0000 SOURCE LINES IN ERROR «ff» 0004 UCA01 A.PBY 007104 PS 2/26 BCALL 000000 MC 1/59 CUR 000040 PS 2/13 2/25 ERR31 000067' 2/03 2/12 2/35 ERROR 006244 PS 2/35 2/38 ERRUD 000071' 2/17 2/37 FADD 177775 1/60 2/02 FDIV 177772 1/60 2/02 FIX 177777 1/60 2/02 FLOAT 177776 1/60 2/02 FMPY 177773 1/60 2/02 FSUB 177774 1/60 2/02 F.ICH 007115 PS 2/16 GET00 000017' 1/26 1/54 GET13 000041' 2/13 2/22 2/33 IDIV 177767 1/60 2/02 IMPY 177771 1/60 2/02 IMPYA 177770 1/60 2/02 INC 101400 PS 2/29 IOERR 177766 1/60 2/02 JMP 000000 PS 1/20 2/03 2/12 2/17 2/22 2/33 JSR 004000 PS 2/01 2/02 LDA 020000 PS 1/57 1/58 1/60 2/02 2/05 2/06 2/08 2/10 2/13 2/14 2/15 2/18 2/24 2/25 2/28 2/31 MOV 101000 PS 2/02 2/23 PIO 000042 PS 2/15 PP00 000000' 1/09 1/13 2/57 PP05 000007' 1/11 1/18 1/20 3/01 3/06 PP10 000074' 1/13 2/46 2/50 3/02 3/04 3/10 PP15 000121' 2/50 3/09 PRDE1 000211 MC 1/01 PRDE2 000276 MC 2/44 REAL 000000 PS 1/56 REFER 100000 PS 1/55 RET1 002242 PS 2/34 SNR 000005 PS 2/21 2/32 STA 040000 PS 2/04 2/07 2/09 2/30 2/37 STOPP 006013 PS 1/19 STRIN 000003 PS 1/55 SUB 102400 PS 2/20 2/21 2/32 SZC 000002 PS 2/11 SZR 000004 PS 2/02 USER 000017 PS 2/14 U.S01 000071 PS 2/04 2/10 2/31 U.S02 000072 PS 2/07 2/24 2/28 2/30 U.S03 000073 PS 2/09 U.S21 000115 PS 1/60 2/02 U.STK 000067 PS 2/05 «ff» «eof»