Код:
SPEED - SPEED program MACRO V05.06R Monday 18-May-20 Page 11
3
4 000000 MODULE NAME=<SPEED>, REL=<SP>, VER=<01>, COMM=<SPEED program>
000000 .PSECT $CODE$, I, RO
000000 .PSECT $ASCII, D, RO
000000 .PSECT $PDATA, D, RO
000000 .PSECT $IDATA, D, RW
000000 .PSECT .99997, D, RW
000000 .PSECT .99998, D, RW
000000 .PSECT .99999, D, RW
.SAVE
000000 .PSECT .99998, D, RW
000000 .RESTORE
5
6 000000 FROM SYSMAC IMPORT .EXIT
;
; импорт из модуля <SYSMAC>
;
.MCALL .EXIT
7
8 001750 BLK.SZ =: 1000.
9
10 000000 $CODE
000000 .PSECT $CODE$, I, RO
11
12 000000 PROCEDURE START
000000 .PSECT $CODE$, I, RO
000000 START:
13 000000 BEGIN
000000 .PSECT $CODE$, I, RO
14 000000 LET TCURR := #0
000000 005067 000354' CLR TCURR
15
16 000004 LET TMAX := #4
000004 012767 000004 000356' MOV #4, TMAX
17
18 000012 LET R5 := @#V.TR10
000012 013705 000010 MOV @#V.TR10, R5
19
20 000016 LET @#V.TR10 := #CHKEIS
000016 012737 000336' 000010 MOV #CHKEIS, @#V.TR10
21 000024 LET R0 := R0 / R0
000024 071000 DIV R0, R0
22
23 000026 LET @#V.TR10 := R5
000026 010537 000010 MOV R5, @#V.TR10
24
25 000032 106427 000200 MTPS #PR4
26
27 000036 LET SV100 := @#V.LTC,
000036 013767 000100 000362' MOV @#V.LTC, SV100
28 000044 LET SV102 := @#V.LTC+2
000044 013767 000102 000364' MOV @#V.LTC+2, SV102
29
30 000052 $SSHOW #MSPEED
000052 012701 000004' MOV #MSPEED, R1
31
32 000062 $GOTO PREP
SPEED - SPEED program MACRO V05.06R Monday 18-May-20 Page 11-1
33 000062 END START
34
35 000062 PROCEDURE PREP
000062 .PSECT $CODE$, I, RO
000062 PREP:
36 000062 BEGIN
000062 .PSECT $CODE$, I, RO
37
38 000062 LET R0 := TCURR + R0
000062 016700 000354' MOV TCURR, R0
000066 060000 ADD R0, R0
39
40 000070 LET R1 := R0
000070 010001 MOV R0, R1
41
42 000072 LET R0 := R0 + #CMDTBL
000072 062700 000370' ADD #CMDTBL, R0
43 000076 LET @#TCMD := (R0)
000076 011037 000360' MOV (R0), @#TCMD
44
45 000102 LET R1 := R1 + #CPTBLE
000102 062701 000340' ADD #CPTBLE, R1
46 000106 LET R1 := (R1)
000106 011101 MOV (R1), R1
47
48 000110 LET R2 := #3000
000110 012702 003000 MOV #3000, R2
49
50 000114 LET L02106 := R2
000114 010267 000352' MOV R2, L02106
51 000120 LET L02104 := R2
000120 010267 000350' MOV R2, L02104
52
53 000124 LET L02106 := L02106 + #BLK.SZ*2
000124 062767 003720 000352' ADD #BLK.SZ*2, L02106
54
55 000132 REPEAT
000132 1001$:
56
57 000132 LET (R2)+ := TCMD
000132 016722 000360' MOV TCMD, (R2)+
58
59 000136 UNTIL L02106 EQ R2
000136 026702 000352' CMP L02106, R2
000142 001373 BNE 1001$
000144 1002$:
60
61 000144 LET (R2) := CRET
000144 016712 000366' MOV CRET, (R2)
62
63 000150 LET R2 := #100.
000150 012702 000144 MOV #100., R2
64 000154 LET R3 := #0
000154 005003 CLR R3
65
66 000156 $SSHOW
67
(дальше вырезано)
А такое будет доступно. А редактор в варианте листинга, когда вызов макроса в листинг не выводится, а сгенерённые команды - да - куда будет переходить на ошибку?