|
|
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 - metrics - download
Length: 11264 (0x2c00)
Types: TextFile
Names: »MMKAL«
└─⟦cb4367ef8⟧ Bits:30001782 SG0002 Floppy
└─⟦this⟧ »/MMKAL«
«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»