home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 04 / review / sievelog.dec < prev    next >
Encoding:
Text File  |  1991-01-05  |  7.4 KB  |  189 lines

  1. Modula-2 OBJ File Decoder Rel. 3.30  Dec 89
  2. ----------------------------------------------
  3. decoding   : D:sievelog.OBJ
  4. output file: sievelog.DEC
  5.  
  6. Module Name        : SIEVEFIT
  7.  
  8. Library Import List: M2RTS
  9.                      M2LIB
  10.                      M2USER
  11.                      
  12.  
  13. Objects Import List: InOut
  14.                      FileSystem
  15.                      RTSMain
  16.                      
  17.  
  18. Logical Names      : 
  19.                      CODE
  20.                      FAR_DATA
  21.                      SIEVEFITTED_DATA
  22.                      SIEVEFITTED_TEXT
  23.                      MODULE_TABLE_DATA
  24.                      FAR_BSS
  25.                      INIT_FLAG_DATA
  26.                      DGROUP
  27.                      CONST
  28.                      
  29.  
  30. DATA        Segment: SIEVEFITTED_DATA
  31.             Length : 8194
  32.  
  33. 0000  flag__SieveFitted           DUP     8191
  34. 1FFF  ch__SieveFitted             DUP        1
  35. 2000  count__SieveFitted          DUP        2
  36.  
  37.  
  38. CODE        Segment: SIEVEFITTED_TEXT
  39.             Length : 298
  40.  
  41.   0000  00 00 48 69 74 20 61 20   DB    '..Hit a '
  42.   0008  6B 65 79 20 74 6F 20 73   DB    'key to s'
  43.   0010  74 61 72 74 20 32 30 30   DB    'tart 200'
  44.   0018  30 20 49 54 45 52 41 54   DB    '0 ITERAT'
  45.   0020  49 4F 4E 53 00            DB    'IONS.'
  46.  
  47.   0025                            ; PROCEDURE S__SieveTest__SieveFitted
  48.  
  49.   0025  ; *** line #18            ; BEGIN
  50.   0025                            
  51.   0025  55                        PUSH  BP
  52.   0026  8B EC                     MOV   BP,SP
  53.   0028  83 EC 08                  SUB   SP, 08
  54.  
  55.   002B  ; *** line #19            ; FOR i := 1 TO ITER DO
  56.   002B  8D 5E F8                  LEA   BX,[BP-0008]
  57.   002E  36 C7 07 01 00            MOV   SS:[BX],0001
  58.   0033  36 FF 0F                  DEC   SS:[BX]
  59.   0036  36 FF 07                  INC   SS:[BX]
  60.  
  61.   0039  ; *** line #20            ; count := 0;
  62.   0039  B9 00 00                  MOV   CX,SEG SIEVEFITTED_DATA
  63.   003C  8E D9                     MOV   DS,CX
  64.   003E  C7 06 00 00 00 00         MOV   [count__SieveFitted],0000
  65.  
  66.   0044  ; *** line #21            ; FOR j := 0 TO SIZE DO
  67.   0044  8D 76 FA                  LEA   SI,[BP-0006]
  68.   0047  36 C7 04 00 00            MOV   SS:[SI],0000
  69.   004C  36 FF 0C                  DEC   SS:[SI]
  70.   004F  36 FF 04                  INC   SS:[SI]
  71.  
  72.   0052  ; *** line #22            ; flag[j] := TRUE;
  73.   0052  8B 7E FA                  MOV   DI,[BP-0006]
  74.   0055  B9 00 00                  MOV   CX,SEG SIEVEFITTED_DATA
  75.   0058  8E D9                     MOV   DS,CX
  76.   005A  C6 85 00 00 01            MOV   [DI+flag__SieveFitted],01
  77.   005F  36 81 3C FE 1F            CMP   SS:[SI], 1FFE
  78.   0064  72 E9                     JB    004F
  79.  
  80.   0066  ; *** line #23            ; END;
  81.   0066  ; *** line #24            ; FOR j := 0 TO SIZE DO
  82.   0066  8D 76 FA                  LEA   SI,[BP-0006]
  83.   0069  36 C7 04 00 00            MOV   SS:[SI],0000
  84.   006E  36 FF 0C                  DEC   SS:[SI]
  85.   0071  36 FF 04                  INC   SS:[SI]
  86.  
  87.   0074  ; *** line #25            ; IF flag[j] THEN
  88.   0074  8B 7E FA                  MOV   DI,[BP-0006]
  89.   0077  B9 00 00                  MOV   CX,SEG SIEVEFITTED_DATA
  90.   007A  8E D9                     MOV   DS,CX
  91.   007C  82 BD 00 00 00            CMP   [DI+flag__SieveFitted], 00
  92.   0081  74 36                     JE    00B9
  93.  
  94.   0083  ; *** line #26            ; prime := j+j+3;
  95.   0083  03 7E FA                  ADD   DI,[BP-0006]
  96.   0086  83 C7 03                  ADD   DI, 03
  97.   0089  89 7E FE                  MOV   [BP-0002],DI
  98.  
  99.   008C  ; *** line #27            ; k := j+prime;
  100.   008C  8B 46 FA                  MOV   AX,[BP-0006]
  101.   008F  03 C7                     ADD   AX,DI
  102.   0091  89 46 FC                  MOV   [BP-0004],AX
  103.  
  104.   0094  ; *** line #28            ; WHILE k <= SIZE DO
  105.   0094  81 7E FC FE 1F            CMP   [BP-0004], 1FFE
  106.   0099  77 15                     JNBE  00B0
  107.  
  108.   009B  ; *** line #29            ; flag[k] := FALSE;
  109.   009B  8B 7E FC                  MOV   DI,[BP-0004]
  110.   009E  B9 00 00                  MOV   CX,SEG SIEVEFITTED_DATA
  111.   00A1  8E D9                     MOV   DS,CX
  112.   00A3  C6 85 00 00 00            MOV   [DI+flag__SieveFitted],00
  113.  
  114.   00A8  ; *** line #30            ; INC(k,prime);
  115.   00A8  8B 46 FE                  MOV   AX,[BP-0002]
  116.   00AB  01 46 FC                  ADD   [BP-0004],AX
  117.   00AE  EB E4                     JMP   0094
  118.  
  119.   00B0  ; *** line #31            ; END;
  120.   00B0  ; *** line #32            ; INC(count);
  121.   00B0  B9 00 00                  MOV   CX,SEG SIEVEFITTED_DATA
  122.   00B3  8E D9                     MOV   DS,CX
  123.   00B5  FF 06 00 00               INC   [count__SieveFitted]
  124.   00B9  36 81 3C FE 1F            CMP   SS:[SI], 1FFE
  125.   00BE  72 B1                     JB    0071
  126.   00C0  36 81 3F D0 07            CMP   SS:[BX], 07D0
  127.   00C5  73 03                     JNB   00CA
  128.   00C7  E9 6C FF                  JMP   0036
  129.  
  130.   00CA  ; *** line #33            ; END;
  131.   00CA  ; *** line #34            ; END;
  132.   00CA  ; *** line #35            ; END;
  133.   00CA  ; *** line #36            ; END SieveTest;
  134.   00CA  89 EC                     MOV   SP,BP
  135.   00CC  5D                        POP   BP
  136.   00CD  C3                        RET   
  137.  
  138.   00CE                            ; PROCEDURE $BODY__SieveFitted
  139.  
  140.   00CE  ; *** line #38            ; BEGIN
  141.   00CE  55                        PUSH  BP
  142.   00CF  8B EC                     MOV   BP,SP
  143.  
  144.   00D1  ; *** line #39            ; WriteString("Hit a key to start 2000 ITERATIONS");
  145.   00D1  B8 21 00                  MOV   AX,0021
  146.   00D4  50                        PUSH  AX
  147.   00D5  BB 00 00                  MOV   BX,0002
  148.   00D8  0E                        PUSH  CS
  149.   00D9  53                        PUSH  BX
  150.   00DA  9A 00 00 00 00            CALLF L__WriteString__InOut
  151.  
  152.   00DF  ; *** line #40            ; Read(ch);  WriteLn;
  153.   00DF  B9 00 00                  MOV   CX,SEG SIEVEFITTED_DATA
  154.   00E2  8E D9                     MOV   DS,CX
  155.   00E4  BB 00 00                  MOV   BX,ch__SieveFitted
  156.   00E7  1E                        PUSH  DS
  157.   00E8  53                        PUSH  BX
  158.   00E9  9A 00 00 00 00            CALLF L__Read__InOut
  159.   00EE  9A 00 00 00 00            CALLF L__WriteLn__InOut
  160.  
  161.   00F3  ; *** line #41            ; SieveTest;
  162.   00F3  E8 00 00                  CALLS S__SieveTest__SieveFitted
  163.  
  164.   00F6  ; *** line #42            ; Write(7C); WriteCard(count,5);
  165.   00F6  B0 07                     MOV   AL,07
  166.   00F8  50                        PUSH  AX
  167.   00F9  9A 00 00 00 00            CALLF L__Write__InOut
  168.   00FE  B9 00 00                  MOV   CX,SEG SIEVEFITTED_DATA
  169.   0101  8E D9                     MOV   DS,CX
  170.   0103  FF 36 00 00               PUSH  [count__SieveFitted]
  171.   0107  B8 05 00                  MOV   AX,0005
  172.   010A  50                        PUSH  AX
  173.   010B  9A 00 00 00 00            CALLF L__WriteCard__InOut
  174.  
  175.   0110  ; *** line #43            ; END SieveFitted.
  176.   0110  89 EC                     MOV   SP,BP
  177.   0112  5D                        POP   BP
  178.   0113  CB                        RET   
  179.  
  180.  
  181.   0114                            ; PROCEDURE StartModula
  182.   0114  55                        PUSH  BP
  183.   0115  8B EC                     MOV   BP,SP
  184.   0117  9A 00 00 00 00            CALLF $INIT__RTSMain
  185.   011C  9A 00 00 00 00            CALLF $INIT__InOut
  186.   0121  9A 00 00 00 00            CALLF $INIT__FileSystem
  187.   0126  5D                        POP   BP
  188.   0127  E9 00 00                  JMP   $BODY__SieveFitted
  189.