среда, 9 февраля 2022 г. в 19:02:30 UTC+3,
ogd...@gmail.com:
Mark
The error is in the compiler.
When compiling with the listing option, there is a string that is different from the listing generated by the correct compiler. I used the library from the compiler kit with an error.
FORTRAN-80 Ver. 3.4 Copyright 1978, 79, 80 (C) By Microsoft
BYTES: 36777
Created: 19-Feb-85 ;Created: 10-Dec-81
1 C234567 ;1 C234567
2 DIMENSION K(2) ;2 DIMENSION K(2)
3 DO 10 I=1,2 ;3 DO 10 I=1,2
***** 0000' LD BC,$$L ;***** 0000' LXI B,$$L
***** 0003' JP $INIT ;***** 0003' JMP $INIT
4 K(I)=I ;4 K(I)=I
***** 0006' LD HL,0001 ;***** 0006' LXI H,0001
***** 0009' LD (I),HL ;***** 0009' SHLD I
5 10 CONTINUE ;5 10 CONTINUE
***** 000C' LD HL,(I) ;***** 000C' LHLD I
***** 000F' ADD HL,HL ;***** 000F' DAD H
***** 0010' LD DE,K ;***** 0010' LXI D,K-0002 <== ERROR
***** 0013' ADD HL,DE ;***** 0013' DAD D
***** 0014' LD (T:000000),HL ;***** 0014' SHLD T:000000
***** 0017' LD HL,(I) ;***** 0017' LHLD I
***** 001A' EX DE,HL ;***** 001A' XCHG
***** 001B' LD HL,(T:000000) ;***** 001B' LHLD T:000000
***** 001E' LD (HL),E ;***** 001E' MOV M,E
***** 001F' INC HL ;***** 001F' INX H
***** 0020' LD (HL),D ;***** 0020' MOV M,D
6 WRITE(1,100) K(1),K(2) ;6 WRITE(1,100) K(1),K(2)
***** 0021' LD HL,(I) ;***** 0021' LHLD I
***** 0024' INC HL ;***** 0024' INX H
***** 0025' LD A,02 ;***** 0025' MVI A,02
***** 0027' SUB L ;***** 0027' SUB L
***** 0028' LD A,00 ;***** 0028' MVI A,00
***** 002A' SBC H ;***** 002A' SBB H
***** 002B' JP P,0009' ;***** 002B' JP 0009'
***** 002E' LD DE,100L ;***** 002E' LXI D,100L
***** 0031' LD HL,[01 00 00 00] ;***** 0031' LXI H,[01 00 00 00]
***** 0034' CALL $W2 ;***** 0034' CALL $W2
7 100 FORMAT(1X,2I3) ;7 100 FORMAT(1X,2I3)
***** 0037' LD DE,K ;***** 0037' LXI D,K
***** 003A' LD HL,[01 00 00 00] ;***** 003A' LXI H,[01 00 00 00]
***** 003D' LD A,02 ;***** 003D' MVI A,02
***** 003F' CALL $I0 ;***** 003F' CALL $I0
***** 0042' LD DE,K+0002 ;***** 0042' LXI D,K+0002
***** 0045' LD HL,[01 00 00 00] ;***** 0045' LXI H,[01 00 00 00]
***** 0048' LD A,02 ;***** 0048' MVI A,02
***** 004A' CALL $I0 ;***** 004A' CALL $I0
***** 004D' CALL $ND ;***** 004D' CALL $ND
8 END ;8 END
***** 0050' CALL $EX ;***** 0050' CALL $EX
***** 0053' 01 00 00 00 ;***** 0053' 01 00 00 00
Program Unit Length=0057 (87)
Bytes
Data Area Length=0011 (17) Bytes
Andrey