SSSSSSSSSS   BBBBBBBBBBB   PPPPPPPPPPP    IIIIIIIIII   VV        VV  PPPPPPPPPPP
                              SSSSSSSSSSSS  BBBBBBBBBBBB  PPPPPPPPPPPP   IIIIIIIIII   VV        VV  PPPPPPPPPPPP
                             SS        SS  BB        BB  PP        PP       II       VV        VV  PP        PP
                            SS            BB        BB  PP        PP       II       VV        VV  PP        PP
                           SSS           BB       BB   PP        PP       II       VV        VV  PP        PP
                           SSSSSSSSS    BBBBBBBBBB    PPPPPPPPPPPP       II       VV        VV  PPPPPPPPPPPP
                           SSSSSSSSS   BBBBBBBBBB    PPPPPPPPPPP        II       VV        VV  PPPPPPPPPPP
                                 SSS  BB       BB   PP                 II        VV      VV   PP
                                 SS  BB        BB  PP                 II         VV    VV    PP
                      SS        SS  BB        BB  PP                 II          VV  VV     PP
                     SSSSSSSSSSSS  BBBBBBBBBBBB  PP             IIIIIIIIII       VVVV      PP
                     SSSSSSSSSS   BBBBBBBBBBB   PP             IIIIIIIIII        VV       PP

                    JJJJJJJJJJ        444     777777777777   2222222222                                AAAAAAAAAA
                    JJJJJJJJJJ       4444     77777777777   222222222222                              AAAAAAAAAAAA
                        JJ          44 44     77      77    22        22                              AA        AA
                        JJ         44  44            77               22                              AA        AA
                        JJ        44   44           77                22                              AA        AA
                        JJ       44444444444       77                22                               AAAAAAAAAAAA
                        JJ      444444444444       77              22                                 AAAAAAAAAAAA
                        JJ             44          77            22                                   AA        AA
                  JJ    JJ             44          77          22                                     AA        AA
                  JJ    JJ             44          77        22                                       AA        AA
                  JJJJJJJJ             44          77       222222222222                              AA        AA
                   JJJJJJ              44          77       222222222222                              AA        AA
****A  START  JOB  472  SBPIVP    TEST SBPASCAL         ROOM        4.44.41 PM 20 SEP 80  PRINTER2  SYS H155  JOB  472  START  A****
 STMT NO. MESSAGE
-
    4     IEF653I SUBSTITUTION JCL - PARM='TIME=10,LINES=1000,DEBUG=0'
   20     IEF653I SUBSTITUTION JCL - PARM='TIME=10,LINES=1000,DEBUG=0'
   36     IEF653I SUBSTITUTION JCL - PARM='TIME=10,LINES=1000,DEBUG=2'
   52     IEF653I SUBSTITUTION JCL - PARM='TIME=10,LINES=1000,DEBUG=2'
   68     IEF653I SUBSTITUTION JCL - PARM='TIME=10,LINES=1000,DEBUG=2'
   84     IEF653I SUBSTITUTION JCL - PARM='TIME=10,LINES=1000,DEBUG=2'
  100     IEF653I SUBSTITUTION JCL - PARM='TIME=10,LINES=1000,DEBUG=2'
  116     IEF653I SUBSTITUTION JCL - PARM='TIME=10,LINES=1000,DEBUG=2'
  132     IEF653I SUBSTITUTION JCL - PARM='TIME=10,LINES=1000,DEBUG=2'
  148     IEF653I SUBSTITUTION JCL - PARM='TIME=10,LINES=1000,DEBUG=2'
  164     IEF653I SUBSTITUTION JCL - PARM='TIME=30,LINES=1000,DEBUG=2'
IEF236I ALLOC. FOR SBPIVP PASCAL
IEF237I 252  ALLOCATED TO STEPLIB
IEF237I 152  ALLOCATED TO SYS00008
IEF237I 252  ALLOCATED TO PASS1
IEF237I 252  ALLOCATED TO PASS2
IEF237I 252  ALLOCATED TO PASS3
IEF237I 252  ALLOCATED TO PMD
IEF237I 130  ALLOCATED TO FILE3
IEF237I 160  ALLOCATED TO SYSUT1
IEF237I 151  ALLOCATED TO SYSUT2
IEF237I 190  ALLOCATED TO SYSUT3
IEF237I 130  ALLOCATED TO SYSUT4
IEF237I 160  ALLOCATED TO SYSUT5
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
IEF142I SBPIVP PASCAL - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYSO.SBPASC.LINKLIB                          KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   UCMVSOPS                                     KEPT
IEF285I   VOL SER NOS= WORK02.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000001       DELETED
IEF285I   VOL SER NOS= WORK01.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000002       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000003       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000004       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000005       DELETED
IEF285I   VOL SER NOS= WORK01.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000006       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   JES2.JOB00472.SO0112                         SYSOUT
IEF285I   JES2.JOB00472.SI0101                         SYSIN
IEF373I STEP /PASCAL  / START 80264.1631
IEF374I STEP /PASCAL  / STOP  80264.1631 CPU    0MIN 00.10SEC SRB    0MIN 00.01SEC VIRT  1024K SYS   268K
**** JOBCARD READ 80264 16:31:32 ***************************************************************************************************
*                                          PRC-CCI  370/148 VS2 R03.8  H155  STEP STATISTICS                                       *
*  STEP NAME  PASCAL      USER CORE         1024K   TAPES USED/IO 000/000000000   START   TIME  16:31:32    TCB TIME  00:00:00.10  *
*  PGM  NAME  PASCAL      SYSTEM CORE        268K   DISKS USED/IO 006/000000106   STOP    TIME  16:31:33    SRB TIME  00:00:00.01  *
========================================================================================================================
*   COND CODE    0000     PRIVATE AREA SZ   1024K       ALLOC TIME  16:31:32      ELAPSED TIME  00:00:00      PGM LOAD  16:31:32   *
** PGNO * NR SRV UNITS * ACTIVE TIME ** PAGES IN *** PAGES OUT ** # SWAPS * PGS SWAP IN * PGS SWAP OUT * VIO PGS IN * VIO PGS OUT **
*   003            629   00:00:00.17            0             0         0             0             0             0             0  *
************************************************************************************************************************************
*  CPU $ (     0.03) + EXCP $ (     0.14) + MEMORY $ (     0.29) = TOTAL $ (     0.46)                                             *
************************************************************************************************************************************
IEF236I ALLOC. FOR SBPIVP PASCAL
IEF237I 252  ALLOCATED TO STEPLIB
IEF237I 152  ALLOCATED TO SYS00010
IEF237I 252  ALLOCATED TO PASS1
IEF237I 252  ALLOCATED TO PASS2
IEF237I 252  ALLOCATED TO PASS3
IEF237I 252  ALLOCATED TO PMD
IEF237I 130  ALLOCATED TO FILE3
IEF237I 160  ALLOCATED TO SYSUT1
IEF237I 190  ALLOCATED TO SYSUT2
IEF237I 151  ALLOCATED TO SYSUT3
IEF237I 190  ALLOCATED TO SYSUT4
IEF237I 160  ALLOCATED TO SYSUT5
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
IEF142I SBPIVP PASCAL - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYSO.SBPASC.LINKLIB                          KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   UCMVSOPS                                     KEPT
IEF285I   VOL SER NOS= WORK02.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000007       DELETED
IEF285I   VOL SER NOS= WORK01.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000008       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000009       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000010       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000011       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000012       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   JES2.JOB00472.SO0113                         SYSOUT
IEF285I   JES2.JOB00472.SI0102                         SYSIN
IEF373I STEP /PASCAL  / START 80264.1631
IEF374I STEP /PASCAL  / STOP  80264.1631 CPU    0MIN 00.10SEC SRB    0MIN 00.01SEC VIRT  1024K SYS   236K
************************************************************************************************************************************
*                                          PRC-CCI  370/148 VS2 R03.8  H155  STEP STATISTICS                                       *
*  STEP NAME  PASCAL      USER CORE         1024K   TAPES USED/IO 000/000000000   START   TIME  16:31:33    TCB TIME  00:00:00.10  *
*  PGM  NAME  PASCAL      SYSTEM CORE        236K   DISKS USED/IO 006/000000106   STOP    TIME  16:31:33    SRB TIME  00:00:00.01  *
*   COND CODE    0000     PRIVATE AREA SZ   1024K       ALLOC TIME  16:31:33      ELAPSED TIME  00:00:00      PGM LOAD  16:31:33   *
** PGNO * NR SRV UNITS * ACTIVE TIME ** PAGES IN *** PAGES OUT ** # SWAPS * PGS SWAP IN * PGS SWAP OUT * VIO PGS IN * VIO PGS OUT **
*   003            626   00:00:00.12            0             0         0             0             0             0             0  *
************************************************************************************************************************************
*  CPU $ (     0.03) + EXCP $ (     0.14) + MEMORY $ (     0.29) = TOTAL $ (     0.46)                                             *
************************************************************************************************************************************
IEF236I ALLOC. FOR SBPIVP PASCAL
========================================================================================================================
IEF237I 252  ALLOCATED TO STEPLIB
IEF237I 152  ALLOCATED TO SYS00012
IEF237I 252  ALLOCATED TO PASS1
IEF237I 252  ALLOCATED TO PASS2
IEF237I 252  ALLOCATED TO PASS3
IEF237I 252  ALLOCATED TO PMD
IEF237I 130  ALLOCATED TO FILE3
IEF237I 160  ALLOCATED TO SYSUT1
IEF237I 151  ALLOCATED TO SYSUT2
IEF237I 190  ALLOCATED TO SYSUT3
IEF237I 190  ALLOCATED TO SYSUT4
IEF237I 252  ALLOCATED TO SYSUT5
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
IEF142I SBPIVP PASCAL - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYSO.SBPASC.LINKLIB                          KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   UCMVSOPS                                     KEPT
IEF285I   VOL SER NOS= WORK02.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000013       DELETED
IEF285I   VOL SER NOS= WORK01.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000014       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000015       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000016       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000017       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000018       DELETED
IEF285I   VOL SER NOS= PUB001.
IEF285I   JES2.JOB00472.SO0114                         SYSOUT
IEF285I   JES2.JOB00472.SI0103                         SYSIN
IEF373I STEP /PASCAL  / START 80264.1631
IEF374I STEP /PASCAL  / STOP  80264.1631 CPU    0MIN 00.12SEC SRB    0MIN 00.01SEC VIRT  1024K SYS   236K
************************************************************************************************************************************
*                                          PRC-CCI  370/148 VS2 R03.8  H155  STEP STATISTICS                                       *
*  STEP NAME  PASCAL      USER CORE         1024K   TAPES USED/IO 000/000000000   START   TIME  16:31:33    TCB TIME  00:00:00.12  *
*  PGM  NAME  PASCAL      SYSTEM CORE        236K   DISKS USED/IO 006/000000088   STOP    TIME  16:31:33    SRB TIME  00:00:00.01  *
*   COND CODE    0000     PRIVATE AREA SZ   1024K       ALLOC TIME  16:31:33      ELAPSED TIME  00:00:00      PGM LOAD  16:31:33   *
** PGNO * NR SRV UNITS * ACTIVE TIME ** PAGES IN *** PAGES OUT ** # SWAPS * PGS SWAP IN * PGS SWAP OUT * VIO PGS IN * VIO PGS OUT **
*   003            549   00:00:00.15            0             0         0             0             0             0             0  *
************************************************************************************************************************************
*  CPU $ (     0.04) + EXCP $ (     0.11) + MEMORY $ (     0.35) = TOTAL $ (     0.50)                                             *
************************************************************************************************************************************
IEF236I ALLOC. FOR SBPIVP PASCAL
IEF237I 252  ALLOCATED TO STEPLIB
IEF237I 152  ALLOCATED TO SYS00014
IEF237I 252  ALLOCATED TO PASS1
IEF237I 252  ALLOCATED TO PASS2
IEF237I 252  ALLOCATED TO PASS3
IEF237I 252  ALLOCATED TO PMD
IEF237I 130  ALLOCATED TO FILE3
========================================================================================================================
IEF237I 151  ALLOCATED TO SYSUT1
IEF237I 160  ALLOCATED TO SYSUT2
IEF237I 190  ALLOCATED TO SYSUT3
IEF237I 151  ALLOCATED TO SYSUT4
IEF237I 151  ALLOCATED TO SYSUT5
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
IEF142I SBPIVP PASCAL - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYSO.SBPASC.LINKLIB                          KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   UCMVSOPS                                     KEPT
IEF285I   VOL SER NOS= WORK02.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000019       DELETED
IEF285I   VOL SER NOS= WORK01.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000020       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000021       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000022       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000023       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000024       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   JES2.JOB00472.SO0115                         SYSOUT
IEF285I   JES2.JOB00472.SI0104                         SYSIN
IEF373I STEP /PASCAL  / START 80264.1631
IEF374I STEP /PASCAL  / STOP  80264.1631 CPU    0MIN 00.10SEC SRB    0MIN 00.01SEC VIRT  1024K SYS   244K
************************************************************************************************************************************
*                                          PRC-CCI  370/148 VS2 R03.8  H155  STEP STATISTICS                                       *
*  STEP NAME  PASCAL      USER CORE         1024K   TAPES USED/IO 000/000000000   START   TIME  16:31:33    TCB TIME  00:00:00.10  *
*  PGM  NAME  PASCAL      SYSTEM CORE        244K   DISKS USED/IO 006/000000090   STOP    TIME  16:31:33    SRB TIME  00:00:00.01  *
*   COND CODE    0000     PRIVATE AREA SZ   1024K       ALLOC TIME  16:31:33      ELAPSED TIME  00:00:00      PGM LOAD  16:31:33   *
** PGNO * NR SRV UNITS * ACTIVE TIME ** PAGES IN *** PAGES OUT ** # SWAPS * PGS SWAP IN * PGS SWAP OUT * VIO PGS IN * VIO PGS OUT **
*   003            548   00:00:00.13            0             0         0             0             0             0             0  *
************************************************************************************************************************************
*  CPU $ (     0.03) + EXCP $ (     0.12) + MEMORY $ (     0.29) = TOTAL $ (     0.44)                                             *
************************************************************************************************************************************
IEF236I ALLOC. FOR SBPIVP PASCAL
IEF237I 252  ALLOCATED TO STEPLIB
IEF237I 152  ALLOCATED TO SYS00016
IEF237I 252  ALLOCATED TO PASS1
IEF237I 252  ALLOCATED TO PASS2
IEF237I 252  ALLOCATED TO PASS3
IEF237I 252  ALLOCATED TO PMD
IEF237I 130  ALLOCATED TO FILE3
IEF237I 160  ALLOCATED TO SYSUT1
IEF237I 151  ALLOCATED TO SYSUT2
IEF237I 190  ALLOCATED TO SYSUT3
IEF237I 160  ALLOCATED TO SYSUT4
IEF237I 160  ALLOCATED TO SYSUT5
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
========================================================================================================================
IEF142I SBPIVP PASCAL - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYSO.SBPASC.LINKLIB                          KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   UCMVSOPS                                     KEPT
IEF285I   VOL SER NOS= WORK02.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000025       DELETED
IEF285I   VOL SER NOS= WORK01.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000026       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000027       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000028       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000029       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000030       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   JES2.JOB00472.SO0116                         SYSOUT
IEF285I   JES2.JOB00472.SI0105                         SYSIN
IEF373I STEP /PASCAL  / START 80264.1631
IEF374I STEP /PASCAL  / STOP  80264.1631 CPU    0MIN 00.11SEC SRB    0MIN 00.01SEC VIRT  1024K SYS   244K
************************************************************************************************************************************
*                                          PRC-CCI  370/148 VS2 R03.8  H155  STEP STATISTICS                                       *
*  STEP NAME  PASCAL      USER CORE         1024K   TAPES USED/IO 000/000000000   START   TIME  16:31:33    TCB TIME  00:00:00.11  *
*  PGM  NAME  PASCAL      SYSTEM CORE        244K   DISKS USED/IO 006/000000100   STOP    TIME  16:31:33    SRB TIME  00:00:00.01  *
*   COND CODE    0000     PRIVATE AREA SZ   1024K       ALLOC TIME  16:31:33      ELAPSED TIME  00:00:00      PGM LOAD  16:31:33   *
** PGNO * NR SRV UNITS * ACTIVE TIME ** PAGES IN *** PAGES OUT ** # SWAPS * PGS SWAP IN * PGS SWAP OUT * VIO PGS IN * VIO PGS OUT **
*   003            602   00:00:00.14            0             0         0             0             0             0             0  *
************************************************************************************************************************************
*  CPU $ (     0.03) + EXCP $ (     0.13) + MEMORY $ (     0.32) = TOTAL $ (     0.48)                                             *
************************************************************************************************************************************
IEF236I ALLOC. FOR SBPIVP PASCAL
IEF237I 252  ALLOCATED TO STEPLIB
IEF237I 152  ALLOCATED TO SYS00018
IEF237I 252  ALLOCATED TO PASS1
IEF237I 252  ALLOCATED TO PASS2
IEF237I 252  ALLOCATED TO PASS3
IEF237I 252  ALLOCATED TO PMD
IEF237I 130  ALLOCATED TO FILE3
IEF237I 190  ALLOCATED TO SYSUT1
IEF237I 160  ALLOCATED TO SYSUT2
IEF237I 151  ALLOCATED TO SYSUT3
IEF237I 252  ALLOCATED TO SYSUT4
IEF237I 151  ALLOCATED TO SYSUT5
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
IEF142I SBPIVP PASCAL - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYSO.SBPASC.LINKLIB                          KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   UCMVSOPS                                     KEPT
IEF285I   VOL SER NOS= WORK02.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
========================================================================================================================
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000031       DELETED
IEF285I   VOL SER NOS= WORK01.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000032       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000033       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000034       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000035       DELETED
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000036       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   JES2.JOB00472.SO0117                         SYSOUT
IEF285I   JES2.JOB00472.SI0106                         SYSIN
IEF373I STEP /PASCAL  / START 80264.1631
IEF374I STEP /PASCAL  / STOP  80264.1631 CPU    0MIN 00.16SEC SRB    0MIN 00.01SEC VIRT  1024K SYS   248K
************************************************************************************************************************************
*                                          PRC-CCI  370/148 VS2 R03.8  H155  STEP STATISTICS                                       *
*  STEP NAME  PASCAL      USER CORE         1024K   TAPES USED/IO 000/000000000   START   TIME  16:31:33    TCB TIME  00:00:00.16  *
*  PGM  NAME  PASCAL      SYSTEM CORE        248K   DISKS USED/IO 006/000000082   STOP    TIME  16:31:34    SRB TIME  00:00:00.01  *
*   COND CODE    0000     PRIVATE AREA SZ   1024K       ALLOC TIME  16:31:33      ELAPSED TIME  00:00:00      PGM LOAD  16:31:33   *
** PGNO * NR SRV UNITS * ACTIVE TIME ** PAGES IN *** PAGES OUT ** # SWAPS * PGS SWAP IN * PGS SWAP OUT * VIO PGS IN * VIO PGS OUT **
*   003            531   00:00:00.18            0             0         0             0             0             0             0  *
************************************************************************************************************************************
*  CPU $ (     0.05) + EXCP $ (     0.11) + MEMORY $ (     0.46) = TOTAL $ (     0.62)                                             *
************************************************************************************************************************************
IEF236I ALLOC. FOR SBPIVP PASCAL
IEF237I 252  ALLOCATED TO STEPLIB
IEF237I 152  ALLOCATED TO SYS00020
IEF237I 252  ALLOCATED TO PASS1
IEF237I 252  ALLOCATED TO PASS2
IEF237I 252  ALLOCATED TO PASS3
IEF237I 252  ALLOCATED TO PMD
IEF237I 130  ALLOCATED TO FILE3
IEF237I 151  ALLOCATED TO SYSUT1
IEF237I 160  ALLOCATED TO SYSUT2
IEF237I 190  ALLOCATED TO SYSUT3
IEF237I 252  ALLOCATED TO SYSUT4
IEF237I 252  ALLOCATED TO SYSUT5
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
IEF142I SBPIVP PASCAL - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYSO.SBPASC.LINKLIB                          KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   UCMVSOPS                                     KEPT
IEF285I   VOL SER NOS= WORK02.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000037       DELETED
========================================================================================================================
IEF285I   VOL SER NOS= WORK01.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000038       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000039       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000040       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000041       DELETED
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000042       DELETED
IEF285I   VOL SER NOS= PUB001.
IEF285I   JES2.JOB00472.SO0118                         SYSOUT
IEF285I   JES2.JOB00472.SI0107                         SYSIN
IEF373I STEP /PASCAL  / START 80264.1631
IEF374I STEP /PASCAL  / STOP  80264.1631 CPU    0MIN 00.08SEC SRB    0MIN 00.01SEC VIRT  1024K SYS   252K
************************************************************************************************************************************
*                                          PRC-CCI  370/148 VS2 R03.8  H155  STEP STATISTICS                                       *
*  STEP NAME  PASCAL      USER CORE         1024K   TAPES USED/IO 000/000000000   START   TIME  16:31:34    TCB TIME  00:00:00.08  *
*  PGM  NAME  PASCAL      SYSTEM CORE        252K   DISKS USED/IO 006/000000086   STOP    TIME  16:31:34    SRB TIME  00:00:00.01  *
*   COND CODE    0000     PRIVATE AREA SZ   1024K       ALLOC TIME  16:31:34      ELAPSED TIME  00:00:00      PGM LOAD  16:31:34   *
** PGNO * NR SRV UNITS * ACTIVE TIME ** PAGES IN *** PAGES OUT ** # SWAPS * PGS SWAP IN * PGS SWAP OUT * VIO PGS IN * VIO PGS OUT **
*   003            509   00:00:00.11            0             0         0             0             0             0             0  *
************************************************************************************************************************************
*  CPU $ (     0.02) + EXCP $ (     0.11) + MEMORY $ (     0.23) = TOTAL $ (     0.36)                                             *
************************************************************************************************************************************
IEF236I ALLOC. FOR SBPIVP PASCAL
IEF237I 252  ALLOCATED TO STEPLIB
IEF237I 152  ALLOCATED TO SYS00022
IEF237I 252  ALLOCATED TO PASS1
IEF237I 252  ALLOCATED TO PASS2
IEF237I 252  ALLOCATED TO PASS3
IEF237I 252  ALLOCATED TO PMD
IEF237I 130  ALLOCATED TO FILE3
IEF237I 190  ALLOCATED TO SYSUT1
IEF237I 160  ALLOCATED TO SYSUT2
IEF237I 151  ALLOCATED TO SYSUT3
IEF237I 252  ALLOCATED TO SYSUT4
IEF237I 160  ALLOCATED TO SYSUT5
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
IEF142I SBPIVP PASCAL - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYSO.SBPASC.LINKLIB                          KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   UCMVSOPS                                     KEPT
IEF285I   VOL SER NOS= WORK02.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000043       DELETED
IEF285I   VOL SER NOS= WORK01.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000044       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000045       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000046       DELETED
IEF285I   VOL SER NOS= SMP001.
========================================================================================================================
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000047       DELETED
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000048       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   JES2.JOB00472.SO0119                         SYSOUT
IEF285I   JES2.JOB00472.SI0108                         SYSIN
IEF373I STEP /PASCAL  / START 80264.1631
IEF374I STEP /PASCAL  / STOP  80264.1631 CPU    0MIN 00.09SEC SRB    0MIN 00.01SEC VIRT  1024K SYS   252K
************************************************************************************************************************************
*                                          PRC-CCI  370/148 VS2 R03.8  H155  STEP STATISTICS                                       *
*  STEP NAME  PASCAL      USER CORE         1024K   TAPES USED/IO 000/000000000   START   TIME  16:31:34    TCB TIME  00:00:00.09  *
*  PGM  NAME  PASCAL      SYSTEM CORE        252K   DISKS USED/IO 006/000000100   STOP    TIME  16:31:34    SRB TIME  00:00:00.01  *
*   COND CODE    0000     PRIVATE AREA SZ   1024K       ALLOC TIME  16:31:34      ELAPSED TIME  00:00:00      PGM LOAD  16:31:34   *
** PGNO * NR SRV UNITS * ACTIVE TIME ** PAGES IN *** PAGES OUT ** # SWAPS * PGS SWAP IN * PGS SWAP OUT * VIO PGS IN * VIO PGS OUT **
*   003            583   00:00:00.11            0             0         0             0             0             0             0  *
************************************************************************************************************************************
*  CPU $ (     0.03) + EXCP $ (     0.13) + MEMORY $ (     0.26) = TOTAL $ (     0.42)                                             *
************************************************************************************************************************************
IEF236I ALLOC. FOR SBPIVP PASCAL
IEF237I 252  ALLOCATED TO STEPLIB
IEF237I 152  ALLOCATED TO SYS00024
IEF237I 252  ALLOCATED TO PASS1
IEF237I 252  ALLOCATED TO PASS2
IEF237I 252  ALLOCATED TO PASS3
IEF237I 252  ALLOCATED TO PMD
IEF237I 130  ALLOCATED TO FILE3
IEF237I 151  ALLOCATED TO SYSUT1
IEF237I 190  ALLOCATED TO SYSUT2
IEF237I 160  ALLOCATED TO SYSUT3
IEF237I 151  ALLOCATED TO SYSUT4
IEF237I 252  ALLOCATED TO SYSUT5
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
IEF142I SBPIVP PASCAL - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYSO.SBPASC.LINKLIB                          KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   UCMVSOPS                                     KEPT
IEF285I   VOL SER NOS= WORK02.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000049       DELETED
IEF285I   VOL SER NOS= WORK01.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000050       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000051       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000052       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000053       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000054       DELETED
IEF285I   VOL SER NOS= PUB001.
IEF285I   JES2.JOB00472.SO0120                         SYSOUT
IEF285I   JES2.JOB00472.SI0109                         SYSIN
IEF373I STEP /PASCAL  / START 80264.1631
========================================================================================================================
IEF374I STEP /PASCAL  / STOP  80264.1631 CPU    0MIN 00.13SEC SRB    0MIN 00.01SEC VIRT  1024K SYS   296K
************************************************************************************************************************************
*                                          PRC-CCI  370/148 VS2 R03.8  H155  STEP STATISTICS                                       *
*  STEP NAME  PASCAL      USER CORE         1024K   TAPES USED/IO 000/000000000   START   TIME  16:31:34    TCB TIME  00:00:00.13  *
*  PGM  NAME  PASCAL      SYSTEM CORE        296K   DISKS USED/IO 006/000000132   STOP    TIME  16:31:34    SRB TIME  00:00:00.01  *
*   COND CODE    0000     PRIVATE AREA SZ   1024K       ALLOC TIME  16:31:34      ELAPSED TIME  00:00:00      PGM LOAD  16:31:34   *
** PGNO * NR SRV UNITS * ACTIVE TIME ** PAGES IN *** PAGES OUT ** # SWAPS * PGS SWAP IN * PGS SWAP OUT * VIO PGS IN * VIO PGS OUT **
*   003            811   00:00:00.15            0             0         0             0             0             0             0  *
************************************************************************************************************************************
*  CPU $ (     0.04) + EXCP $ (     0.17) + MEMORY $ (     0.37) = TOTAL $ (     0.58)                                             *
************************************************************************************************************************************
IEF236I ALLOC. FOR SBPIVP PASCAL
IEF237I 252  ALLOCATED TO STEPLIB
IEF237I 152  ALLOCATED TO SYS00026
IEF237I 252  ALLOCATED TO PASS1
IEF237I 252  ALLOCATED TO PASS2
IEF237I 252  ALLOCATED TO PASS3
IEF237I 252  ALLOCATED TO PMD
IEF237I 130  ALLOCATED TO FILE3
IEF237I 190  ALLOCATED TO SYSUT1
IEF237I 151  ALLOCATED TO SYSUT2
IEF237I 160  ALLOCATED TO SYSUT3
IEF237I 160  ALLOCATED TO SYSUT4
IEF237I 252  ALLOCATED TO SYSUT5
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
IEF142I SBPIVP PASCAL - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYSO.SBPASC.LINKLIB                          KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   UCMVSOPS                                     KEPT
IEF285I   VOL SER NOS= WORK02.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000055       DELETED
IEF285I   VOL SER NOS= WORK01.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000056       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000057       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000058       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000059       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000060       DELETED
IEF285I   VOL SER NOS= PUB001.
IEF285I   JES2.JOB00472.SO0121                         SYSOUT
IEF285I   JES2.JOB00472.SI0110                         SYSIN
IEF373I STEP /PASCAL  / START 80264.1631
IEF374I STEP /PASCAL  / STOP  80264.1631 CPU    0MIN 00.08SEC SRB    0MIN 00.01SEC VIRT  1024K SYS   292K
************************************************************************************************************************************
*                                          PRC-CCI  370/148 VS2 R03.8  H155  STEP STATISTICS                                       *
*  STEP NAME  PASCAL      USER CORE         1024K   TAPES USED/IO 000/000000000   START   TIME  16:31:34    TCB TIME  00:00:00.08  *
*  PGM  NAME  PASCAL      SYSTEM CORE        292K   DISKS USED/IO 006/000000098   STOP    TIME  16:31:34    SRB TIME  00:00:00.01  *
*   COND CODE    0000     PRIVATE AREA SZ   1024K       ALLOC TIME  16:31:34      ELAPSED TIME  00:00:00      PGM LOAD  16:31:34   *
** PGNO * NR SRV UNITS * ACTIVE TIME ** PAGES IN *** PAGES OUT ** # SWAPS * PGS SWAP IN * PGS SWAP OUT * VIO PGS IN * VIO PGS OUT **
========================================================================================================================
*   003            567   00:00:00.10            0             0         0             0             0             0             0  *
************************************************************************************************************************************
*  CPU $ (     0.02) + EXCP $ (     0.13) + MEMORY $ (     0.23) = TOTAL $ (     0.38)                                             *
************************************************************************************************************************************
IEF236I ALLOC. FOR SBPIVP PASCAL
IEF237I 252  ALLOCATED TO STEPLIB
IEF237I 152  ALLOCATED TO SYS00028
IEF237I 252  ALLOCATED TO PASS1
IEF237I 252  ALLOCATED TO PASS2
IEF237I 252  ALLOCATED TO PASS3
IEF237I 252  ALLOCATED TO PMD
IEF237I 130  ALLOCATED TO FILE3
IEF237I 160  ALLOCATED TO SYSUT1
IEF237I 190  ALLOCATED TO SYSUT2
IEF237I 151  ALLOCATED TO SYSUT3
IEF237I 190  ALLOCATED TO SYSUT4
IEF237I 160  ALLOCATED TO SYSUT5
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN
IEF142I SBPIVP PASCAL - STEP WAS EXECUTED - COND CODE 0000
IEF285I   SYSO.SBPASC.LINKLIB                          KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   UCMVSOPS                                     KEPT
IEF285I   VOL SER NOS= WORK02.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYSO.SBPASC.OBJECT                           KEPT
IEF285I   VOL SER NOS= PUB001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000061       DELETED
IEF285I   VOL SER NOS= WORK01.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000062       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000063       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000064       DELETED
IEF285I   VOL SER NOS= SMP001.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000065       DELETED
IEF285I   VOL SER NOS= MVS901.
IEF285I   SYS80264.T163132.RA000.SBPIVP.R0000066       DELETED
IEF285I   VOL SER NOS= MVS601.
IEF285I   JES2.JOB00472.SO0122                         SYSOUT
IEF285I   JES2.JOB00472.SI0111                         SYSIN
IEF373I STEP /PASCAL  / START 80264.1631
IEF374I STEP /PASCAL  / STOP  80264.1631 CPU    0MIN 05.57SEC SRB    0MIN 00.01SEC VIRT  1024K SYS   300K
************************************************************************************************************************************
*                                          PRC-CCI  370/148 VS2 R03.8  H155  STEP STATISTICS                                       *
*  STEP NAME  PASCAL      USER CORE         1024K   TAPES USED/IO 000/000000000   START   TIME  16:31:34    TCB TIME  00:00:05.57  *
*  PGM  NAME  PASCAL      SYSTEM CORE        300K   DISKS USED/IO 006/000000192   STOP    TIME  16:31:40    SRB TIME  00:00:00.01  *
*   COND CODE    0000     PRIVATE AREA SZ   1024K       ALLOC TIME  16:31:34      ELAPSED TIME  00:00:06      PGM LOAD  16:31:34   *
** PGNO * NR SRV UNITS * ACTIVE TIME ** PAGES IN *** PAGES OUT ** # SWAPS * PGS SWAP IN * PGS SWAP OUT * VIO PGS IN * VIO PGS OUT **
*   003           4285   00:00:05.61            0             0         0             0             0             0             0  *
************************************************************************************************************************************
*  CPU $ (     2.00) + EXCP $ (     0.25) + MEMORY $ (    16.25) = TOTAL $ (    18.50)                                             *
************************************************************************************************************************************
IEF375I  JOB /SBPIVP  / START 80264.1631
IEF376I  JOB /SBPIVP  / STOP  80264.1631 CPU    0MIN 06.64SEC SRB    0MIN 00.11SEC
                                SSSSSSSSSS   BBBBBBBBBBB   PPPPPPPPPPP    IIIIIIIIII   VV        VV  PPPPPPPPPPP
                              SSSSSSSSSSSS  BBBBBBBBBBBB  PPPPPPPPPPPP   IIIIIIIIII   VV        VV  PPPPPPPPPPPP
                             SS        SS  BB        BB  PP        PP       II       VV        VV  PP        PP
                            SS            BB        BB  PP        PP       II       VV        VV  PP        PP
                           SSS           BB       BB   PP        PP       II       VV        VV  PP        PP
                           SSSSSSSSS    BBBBBBBBBB    PPPPPPPPPPPP       II       VV        VV  PPPPPPPPPPPP
                           SSSSSSSSS   BBBBBBBBBB    PPPPPPPPPPP        II       VV        VV  PPPPPPPPPPP
                                 SSS  BB       BB   PP                 II        VV      VV   PP
                                 SS  BB        BB  PP                 II         VV    VV    PP
                      SS        SS  BB        BB  PP                 II          VV  VV     PP
                     SSSSSSSSSSSS  BBBBBBBBBBBB  PP             IIIIIIIIII       VVVV      PP
                     SSSSSSSSSS   BBBBBBBBBBB   PP             IIIIIIIIII        VV       PP

                    JJJJJJJJJJ        444     777777777777   2222222222                                AAAAAAAAAA
                    JJJJJJJJJJ       4444     77777777777   222222222222                              AAAAAAAAAAAA
                        JJ          44 44     77      77    22        22                              AA        AA
                        JJ         44  44            77               22                              AA        AA
                        JJ        44   44           77                22                              AA        AA
                        JJ       44444444444       77                22                               AAAAAAAAAAAA
                        JJ      444444444444       77              22                                 AAAAAAAAAAAA
                        JJ             44          77            22                                   AA        AA
                  JJ    JJ             44          77          22                                     AA        AA
                  JJ    JJ             44          77        22                                       AA        AA
                  JJJJJJJJ             44          77       222222222222                              AA        AA
                   JJJJJJ              44          77       222222222222                              AA        AA
****A   END   JOB  472  SBPIVP    TEST SBPASCAL         ROOM        4.44.41 PM 20 SEP 80  PRINTER2  SYS H155  JOB  472   END   A****
                                SSSSSSSSSS   BBBBBBBBBBB   PPPPPPPPPPP    IIIIIIIIII   VV        VV  PPPPPPPPPPP
                              SSSSSSSSSSSS  BBBBBBBBBBBB  PPPPPPPPPPPP   IIIIIIIIII   VV        VV  PPPPPPPPPPPP
                             SS        SS  BB        BB  PP        PP       II       VV        VV  PP        PP
                            SS            BB        BB  PP        PP       II       VV        VV  PP        PP
                           SSS           BB       BB   PP        PP       II       VV        VV  PP        PP
                           SSSSSSSSS    BBBBBBBBBB    PPPPPPPPPPPP       II       VV        VV  PPPPPPPPPPPP
                           SSSSSSSSS   BBBBBBBBBB    PPPPPPPPPPP        II       VV        VV  PPPPPPPPPPP
                                 SSS  BB       BB   PP                 II        VV      VV   PP
                                 SS  BB        BB  PP                 II         VV    VV    PP
                      SS        SS  BB        BB  PP                 II          VV  VV     PP
                     SSSSSSSSSSSS  BBBBBBBBBBBB  PP             IIIIIIIIII       VVVV      PP
                     SSSSSSSSSS   BBBBBBBBBBB   PP             IIIIIIIIII        VV       PP

                    JJJJJJJJJJ        444     777777777777   2222222222                                AAAAAAAAAA
                    JJJJJJJJJJ       4444     77777777777   222222222222                              AAAAAAAAAAAA
                        JJ          44 44     77      77    22        22                              AA        AA
                        JJ         44  44            77               22                              AA        AA
                        JJ        44   44           77                22                              AA        AA
                        JJ       44444444444       77                22                               AAAAAAAAAAAA
                        JJ      444444444444       77              22                                 AAAAAAAAAAAA
                        JJ             44          77            22                                   AA        AA
                  JJ    JJ             44          77          22                                     AA        AA
                  JJ    JJ             44          77        22                                       AA        AA
                  JJJJJJJJ             44          77       222222222222                              AA        AA
                   JJJJJJ              44          77       222222222222                              AA        AA
****A  START  JOB  472  SBPIVP    TEST SBPASCAL         ROOM        4.44.41 PM 20 SEP 80  PRINTER2  SYS H155  JOB  472  START  A****
PASS ONE -- STONY BROOK PASCAL -- COMPILER VERSION OF APRIL 6, 1977.  CLOCK TIME = 2:26:39.41.
                                  RELEASE 1, UPDATE 4
TODAY IS SEPTEMBER 20, 1980.  CLOCK TIME = 16:31:34.77.
0001 |PROGRAM SOMA(OUTPUT);                                                           |
0002 |                                                                                |
0003 |                                                                                |
0004 |   (*************************************************************************   |
0005 |   *                                                                        *   |
0006 |   *               SOLUTIONS TO THE SOMA CUBE PROBLEM                       *   |
0007 |   *                                                                        *   |
0008 |   *                     A PASCAL PROGRAM                                   *   |
0009 |   *                     BY RANCE DELONG                                    *   |
0010 |   *                     MORAVIAN COLLEGE                                   *   |
0011 |   *                                                                        *   |
0012 |   *                     PUBLISHED IN ACM SIGPLAN NOTICES                   *   |
0013 |   *                     VOL. 9 NO. 10 (OCTOBER 1974)                       *   |
0014 |   *                                                                        *   |
0015 |   *************************************************************************)   |
0016 |                                                                                |
0017 |                                                                                |
0018 |                                                                                |
0019 |TYPE                                                                            |
0020 |   CUBE_SET = SET OF 1..27;                                                     |
0021 |   WHERE = (TOP, BOTTOM, RIGHT, LEFT, FRONT, BACK, NOWHERE);                    |
0022 |   PIECE_DESCRIPTION = ARRAY (.1..3.) OF WHERE;                                 |
0023 |   AXES = (TBAXIS, RLAXIS, FBAXIS);                                             |
0024 |   HASH_VALUE = 0..58;                                                          |
0025 |   PLIST_PTR = @ POSN_LIST_ELEMENT;                                             |
0026 |   WHERE_SET = SET OF WHERE;                                                    |
0027 |   PIECE_RANGE = 1..7;                                                          |
0028 |   POSN_LIST_ELEMENT = RECORD                                                   |
0029 |                          PC_POSITION : CUBE_SET;                               |
0030 |                          NEXT_POSN : PLIST_PTR                                 |
0031 |                       END;                                                     |
0032 |                                                                                |
0033 |VAR                                                                             |
0034 |   THE_CUBE : CUBE_SET;                                                         |
0035 |   PIECE : ARRAY (.1..7.) OF PIECE_DESCRIPTION;                                 |
0036 |   MAJOR_ROTATIONS : ARRAY (.0..1.) OF AXES;                                    |
0037 |   ROTATED : ARRAY (.AXES,WHERE.) OF WHERE;                                     |
0038 |   SHIFT : ARRAY (.WHERE.) OF INTEGER;                                          |
0039 |   HASH : ARRAY (.WHERE,1..2.) OF INTEGER;                                      |
0040 |   POSN_LISTHEAD, SOLUTION_PTR : ARRAY (.1..7.) OF PLIST_PTR;                   |
0041 |   THOSE_CONSIDERED : SET OF HASH_VALUE;                                        |
0042 |   P, I, SOLUTIONS : INTEGER;                                                   |
0043 |   NUMBER_USED : INTEGER;                                                       |
0044 |                                                                                |
0045 |                                                                                |
0046 |                                                                                |
0047 |FUNCTION ORD1(S:WHERE_SET) : INTEGER;                                           |
0048 |   VAR I,J : INTEGER;   W : WHERE;                                              |
0049 |   BEGIN                                                                        |
0050 |      I := 0; J := 1;                                                           |
0051 |      FOR W := TOP TO NOWHERE DO                                                |
0052 |         BEGIN                                                                  |
0053 |            IF W IN S THEN I := I + J;                                          |
0054 |            J := 2*J                                                            |
0055 |         END;                                                                   |
========================================================================================================================
0056 |      ORD1 := I                                                                 |
0057 |   END (**** ORD1 ****) ;                                                       |
0058 |                                                                                |
0059 |                                                                                |
0060 |PROCEDURE INITIALIZE;                                                           |
0061 |   BEGIN                                                                        |
0062 |      PIECE(.1,1.) := RIGHT; PIECE(.1,2.) := FRONT; PIECE(.1,3.) := NOWHERE;    |
0063 |      PIECE(.2,1.) := RIGHT; PIECE(.2,2.) := FRONT; PIECE(.2,3.) := FRONT;      |
0064 |      PIECE(.3,1.) := RIGHT; PIECE(.3,2.) := FRONT; PIECE(.3,3.) := RIGHT;      |
0065 |      PIECE(.4,1.) := RIGHT; PIECE(.4,2.) := FRONT; PIECE(.4,3.) := RIGHT;      |
0066 |      PIECE(.5,1.) := RIGHT; PIECE(.5,2.) := TOP;   PIECE(.5,3.) := FRONT;      |
0067 |      PIECE(.6,1.) := RIGHT; PIECE(.6,2.) := FRONT; PIECE(.6,3.) := TOP;        |
0068 |      PIECE(.7,1.) := RIGHT; PIECE(.7,2.) := TOP;   PIECE(.7,3.) := FRONT;      |
0069 |      MAJOR_ROTATIONS(.0.) := FBAXIS; MAJOR_ROTATIONS(.1.) := RLAXIS;           |
0070 |      ROTATED(.TBAXIS,TOP.) := TOP; ROTATED(.TBAXIS,BOTTOM.) := BOTTOM;         |
0071 |      ROTATED(.TBAXIS,RIGHT.) := BACK; ROTATED(.TBAXIS,LEFT.) := FRONT;         |
0072 |      ROTATED(.TBAXIS,FRONT.) := RIGHT; ROTATED(.TBAXIS,BACK.) := LEFT;         |
0073 |      ROTATED(.TBAXIS,NOWHERE.) := NOWHERE;                                     |
0074 |      ROTATED(.RLAXIS,TOP.) := FRONT; ROTATED(.RLAXIS,BOTTOM.) := BACK;         |
0075 |      ROTATED(.RLAXIS,RIGHT.) := RIGHT; ROTATED(.RLAXIS,LEFT.) := LEFT;         |
0076 |      ROTATED(.RLAXIS,FRONT.) := BOTTOM; ROTATED(.RLAXIS,BACK.) := TOP;         |
0077 |      ROTATED(.RLAXIS,NOWHERE.) := NOWHERE;                                     |
0078 |      ROTATED(.FBAXIS,TOP.) := LEFT; ROTATED(.FBAXIS,BOTTOM.) := RIGHT;         |
0079 |      ROTATED(.FBAXIS,RIGHT.) := TOP; ROTATED(.FBAXIS,LEFT.) := BOTTOM;         |
0080 |      ROTATED(.FBAXIS,FRONT.) := FRONT; ROTATED(.FBAXIS,BACK.) := BACK;         |
0081 |      ROTATED(.FBAXIS,NOWHERE.) := NOWHERE;                                     |
0082 |      SHIFT(.TOP.) := 9; SHIFT(.BOTTOM.) := -9; SHIFT(.RIGHT.) := 1;            |
0083 |      SHIFT(.LEFT.) := -1; SHIFT(.FRONT.) := 3; SHIFT(.BACK.) := -3;            |
0084 |      SHIFT(.NOWHERE.) := 0;                                                    |
0085 |      HASH(.TOP,1.) := 1; HASH(.TOP,2.) := 6; HASH(.BOTTOM,1.) := -1;           |
0086 |      HASH(.BOTTOM,2.) := -6; HASH(.RIGHT,1.) := 2; HASH(.RIGHT,2.) := 19;      |
0087 |      HASH(.LEFT,1.) := -2; HASH(.LEFT,2.) := -19; HASH(.FRONT,1.) := 3;        |
0088 |      HASH(.FRONT,2.) := 32; HASH(.BACK,1.) := -3; HASH(.BACK,2.) := -32;       |
0089 |      HASH(.NOWHERE,1.) := 0; HASH(.NOWHERE,2.) := 0;                           |
0090 |      THE_CUBE := (..);                                                         |
0091 |      INTFIELDSIZE := 3;                                                        |
0092 |      NUMBER_USED := 0;                                                         |
0093 |      SOLUTIONS := 0                                                            |
0094 |   END (**** INITIALIZE ****) ;                                                 |
0095 |                                                                                |
0096 |                                                                                |
0097 |PROCEDURE RECORD_SOLUTION;                                                      |
0098 |   BEGIN                                                                        |
0099 |      SOLUTIONS := SOLUTIONS + 1;                                               |
0100 |      WRITELN(' SOLUTION ', SOLUTIONS);                                         |
0101 |      IF (SOLUTIONS MOD 25) = 0 THEN                                            |
0102 |         WRITELN('* * * * ELAPSED CPU TIME =', 10*CLOCK, ' MILLISECONDS.');     |
0103 |      FOR (* PIECES *) P := 1 TO 7 DO                                           |
0104 |         BEGIN                                                                  |
0105 |            WRITE(P, '   ');                                                    |
0106 |            WITH SOLUTION_PTR(.P.)@ DO                                          |
0107 |               FOR I := 1 TO 27 DO IF I IN PC_POSITION THEN WRITE(I);           |
0108 |            WRITELN                                                             |
0109 |         END;                                                                   |
0110 |      WRITELN                                                                   |
0111 |   END (**** RECORD_SOLUTION ****) ;                                            |
0112 |                                                                                |
0113 |                                                                                |
0114 |FUNCTION ORIENTATION(PIECE:PIECE_DESCRIPTION) : HASH_VALUE;                     |
0115 |   VAR PC : SET OF WHERE;                                                       |
0116 |   BEGIN   (* SYMMETRIC ORIENTATIONS RECEIVE SAME VALUE *)                      |
========================================================================================================================
0117 |      IF P IN (.1,2,7.) THEN                                                    |
0118 |         IF ODD(ORD(PIECE(.1.))) THEN                                           |
0119 |               PC := (.PRED(PIECE(.1.)),PIECE(.2.).)                            |
0120 |            ELSE PC := (.SUCC(PIECE(.1.)),PIECE(.2.).);                         |
0121 |      CASE P OF                                                                 |
0122 |         1,2   : ORIENTATION := ORD1(PC) DIV 2                                  |
0123 |                          + 32*ORD(ORD(PIECE(.1.)) > ORD(PIECE(.3.)));          |
0124 |         3     : ORIENTATION := ABS(ABS(HASH(.PIECE(.1.),1.)                    |
0125 |                          + HASH(.PIECE(.3.),1.)) + HASH(.PIECE(.2.),2.));      |
0126 |         4,5,6 : ORIENTATION := ABS(HASH(.PIECE(.1.),1.)                        |
0127 |                          + HASH(.PIECE(.2.),2.) + HASH(.PIECE(.3.),1.));       |
0128 |         7     : ORIENTATION := ORD1(PC + (.PIECE(.3.).))                       |
0129 |      END                                                                       |
0130 |   END (**** ORIENTATION ****) ;                                                |
0131 |                                                                                |
0132 |                                                                                |
0133 |PROCEDURE ROTATE(VAR PIECE : PIECE_DESCRIPTION; AXIS : AXES);                   |
0134 |   BEGIN                                                                        |
0135 |      FOR I := 1 TO 3 DO                                                        |
0136 |         PIECE(.I.) := ROTATED(.AXIS,PIECE(.I.).)                               |
0137 |   END (**** ROTATE ****) ;                                                     |
0138 |                                                                                |
0139 |                                                                                |
0140 |PROCEDURE GENERATE_TRANSLATIONS(PIECE : PIECE_DESCRIPTION;                      |
0141 |                                ORIENTATION : HASH_VALUE);                      |
0142 |   VAR RLDISP, FBDISP, DISP, J : INTEGER;                                       |
0143 |       SIZE, PART : ARRAY (.0..3.) OF INTEGER;                                  |
0144 |       CUBICLE : 1..27;                                                         |
0145 |   BEGIN RLDISP := 1; FBDISP := 3; PART(.0.) := 1;                              |
0146 |      FOR I := 0 TO 3 DO SIZE(.I.) := 3;                                        |
0147 |      THOSE_CONSIDERED := THOSE_CONSIDERED + (.ORIENTATION.);                   |
0148 |      FOR I := 1 TO 3 DO                                                        |
0149 |         BEGIN                                                                  |
0150 |            PART(.0.) := PART(.0.) + ORD(PIECE(.I.)) MOD 2                      |
0151 |                        * (-SHIFT(.PIECE(.I.).));                               |
0152 |            SIZE(.ORD(PIECE(.I.)) DIV 2.) := SIZE(.ORD(PIECE(.I.)) DIV 2.) - 1; |
0153 |         END;                                                                   |
0154 |      IF (* PIECE *) P IN (.3,7.) THEN                                          |
0155 |         FOR I := 1 TO 3 DO                                                     |
0156 |            PART(.I.) := PART(.I DIV 2.) + SHIFT(.PIECE(.I.).)                  |
0157 |      ELSE                                                                      |
0158 |         FOR I := 1 TO 3 DO                                                     |
0159 |            PART(.I.) := PART(.I-1.) + SHIFT(.PIECE(.I.).);                     |
0160 |      FOR I := 1 TO SIZE(.0.)*SIZE(.1.)*SIZE(.2.) DO                            |
0161 |         BEGIN                                                                  |
0162 |            WITH SOLUTION_PTR(.P.)@ DO (* ADD POSITION TO LIST *)               |
0163 |               BEGIN                                                            |
0164 |                  PC_POSITION := (..);                                          |
0165 |                  FOR J := 0 TO 3 DO                                            |
0166 |                     BEGIN                                                      |
0167 |                        CUBICLE := PART(.J.);                                   |
0168 |                        PC_POSITION := PC_POSITION + (.CUBICLE.)                |
0169 |                     END;                                                       |
0170 |                  NEW(NEXT_POSN);                                               |
0171 |                  SOLUTION_PTR(.P.) := NEXT_POSN;                               |
0172 |                  NEXT_POSN@.NEXT_POSN := NIL                                   |
0173 |               END;                                                             |
0174 |            IF I MOD SIZE(.1.) = 0 THEN (* SHIFT TO NEW POSITION *)             |
0175 |               BEGIN (* FORWARD, BACKWARD OR UPWARD MOVEMENT *)                 |
0176 |                  RLDISP := -RLDISP;                                            |
0177 |                  IF I MOD (SIZE(.1.)*SIZE(.2.)) = 0 THEN                       |
========================================================================================================================
0178 |                     BEGIN                                                      |
0179 |                        FBDISP := -FBDISP;                                      |
0180 |                        DISP := 9;                                              |
0181 |                     END                                                        |
0182 |                  ELSE DISP := FBDISP                                           |
0183 |               END                                                              |
0184 |            ELSE DISP := RLDISP  (* RIGHT OR LEFT *) ;                          |
0185 |           FOR J := 0 TO 3 DO PART(.J.) := PART(.J.) + DISP                     |
0186 |         END                                                                    |
0187 |   END (**** GENERATE_TRANSLATIONS ****) ;                                      |
0188 |                                                                                |
0189 |                                                                                |
0190 |PROCEDURE GENERATE_PIECE_POSITIONS;                                             |
0191 |   VAR M, MINOR_ROTATIONS : INTEGER; THIS_ORIENTATION : HASH_VALUE;             |
0192 |   BEGIN                                                                        |
0193 |      FOR (* PIECES *) P := 1 TO 7 DO                                           |
0194 |         BEGIN                                                                  |
0195 |            THOSE_CONSIDERED := (..);                                           |
0196 |            NEW(POSN_LISTHEAD(.P.)); SOLUTION_PTR(.P.) := POSN_LISTHEAD(.P.);   |
0197 |            FOR (* MAJOR_ROTATIONS *) M := 1 TO 6 DO                            |
0198 |               BEGIN                                                            |
0199 |                  FOR MINOR_ROTATIONS := 1 TO 4 DO                              |
0200 |                     BEGIN                                                      |
0201 |                        THIS_ORIENTATION := ORIENTATION(PIECE(.P.));            |
0202 |                        IF NOT(THIS_ORIENTATION IN THOSE_CONSIDERED) THEN       |
0203 |                           GENERATE_TRANSLATIONS(PIECE(.P.),THIS_ORIENTATION)   |
0204 |                        ELSE                                                    |
0205 |                           REPEAT                                               |
0206 |                              ROTATE(PIECE(.P.),TBAXIS);                        |
0207 |                              MINOR_ROTATIONS := MINOR_ROTATIONS + 1            |
0208 |                           UNTIL MINOR_ROTATIONS > 3;                           |
0209 |                        ROTATE(PIECE(.P.),TBAXIS);                              |
0210 |                     END;                                                       |
0211 |                  ROTATE(PIECE(.P.),MAJOR_ROTATIONS(.M MOD 3 DIV 2.))           |
0212 |               END                                                              |
0213 |         END;                                                                   |
0214 |      POSN_LISTHEAD(.2.)@.NEXT_POSN@.NEXT_POSN@.NEXT_POSN := NIL                |
0215 |   END (**** GENERATE_PIECE_POSITIONS ****) ;                                   |
0216 |                                                                                |
0217 |                                                                                |
0218 |PROCEDURE GENERATE_SOLUTIONS(PC_NUM : PIECE_RANGE);                             |
0219 |   BEGIN                                                                        |
0220 |      NUMBER_USED := NUMBER_USED + 1;                                           |
0221 |      SOLUTION_PTR(.PC_NUM.) := POSN_LISTHEAD(.PC_NUM.);                        |
0222 |      WHILE SOLUTION_PTR(.PC_NUM.)@.NEXT_POSN <> NIL DO                         |
0223 |         WITH SOLUTION_PTR(.PC_NUM.)@ DO                                        |
0224 |         BEGIN                                                                  |
0225 |            IF THE_CUBE * PC_POSITION = (..) THEN                               |
0226 |               BEGIN                                                            |
0227 |                  THE_CUBE := THE_CUBE + PC_POSITION;                           |
0228 |                  IF NUMBER_USED = 7 THEN RECORD_SOLUTION                       |
0229 |                     ELSE GENERATE_SOLUTIONS(PC_NUM MOD 7 + 1);                 |
0230 |                  THE_CUBE := THE_CUBE - PC_POSITION                            |
0231 |               END;                                                             |
0232 |            SOLUTION_PTR(.PC_NUM.) := NEXT_POSN                                 |
0233 |         END;                                                                   |
0234 |      NUMBER_USED := NUMBER_USED - 1                                            |
0235 |   END (**** GENERATE_SOLUTIONS ****) ;                                         |
0236 |                                                                                |
0237 |                                                                                |
0238 |BEGIN                                                                           |
========================================================================================================================
0239 |   INITIALIZE;                                                                  |
0240 |   GENERATE_PIECE_POSITIONS;                                                    |
0241 |   GENERATE_SOLUTIONS(2)                                                        |
0242 |END (**** SOMA ****) .                                                          |
END OF PASS ONE SEPTEMBER 20, 1980.  CLOCK TIME = 16:31:34.84.
242 CARDS WERE PARSED.
NO SYNTAX ERRORS WERE DETECTED.
000.13 SECONDS (CPU) IN COMPILATION, 4792 BYTES OF CODE GENERATED.
EXECUTION OPTIONS: 30 SECONDS, 1000 LINES, DEBUG LEVEL = 2
========================================================================================================================
 SOLUTION   1
  1     9 17 18
  2     1  2  5  8
  3    19 20 21 23
  4     4  7 10 13
  5    14 15 24 27
  6     3  6 11 12
  7    16 22 25 26
 SOLUTION   2
  1     3 11 12
  2     1  2  5  8
  3    19 20 21 23
  4     4  7 10 13
  5    16 17 22 25
  6     6  9 14 15
  7    18 24 26 27
 SOLUTION   3
  1     6  9 15
  2     1  2  5  8
  3    19 20 21 23
  4     4  7 10 13
  5     3 11 12 14
  6    17 18 24 27
  7    16 22 25 26
 SOLUTION   4
  1     6  9 15
  2     1  2  5  8
  3    19 20 21 23
  4    10 13 22 25
  5     3 11 12 14
  6     4  7 16 17
  7    18 24 26 27
 SOLUTION   5
  1    11 19 20
  2     1  2  5  8
  3    21 23 24 27
  4     4  7 10 13
  5     6  9 17 18
  6     3 12 14 15
  7    16 22 25 26
 SOLUTION   6
  1     3 12 15
  2     1  2  5  8
  3    21 23 24 27
  4     4  7 10 13
  5     6  9 17 18
  6    11 14 19 20
  7    16 22 25 26
 SOLUTION   7
  1    11 19 20
  2     1  2  5  8
  3     3 12 15 21
  4     4  7 10 13
  5     6  9 17 18
  6    14 23 24 27
========================================================================================================================
  7    16 22 25 26
 SOLUTION   8
  1    23 24 27
  2     1  2  5  8
  3     3 12 15 21
  4     4  7 10 13
  5     6  9 17 18
  6    11 14 19 20
  7    16 22 25 26
 SOLUTION   9
  1    16 17 25
  2     1  2  5  8
  3     9 15 18 27
  4    21 23 24 26
  5     4  7 13 14
  6     3  6 11 12
  7    10 19 20 22
 SOLUTION  10
  1    19 20 23
  2     1  2  5  8
  3     3 11 12 21
  4     4  7 10 13
  5    16 17 22 25
  6     6  9 14 15
  7    18 24 26 27
 SOLUTION  11
  1     6  9 15
  2     1  2  5  8
  3     3 11 12 21
  4     4  7 10 13
  5    14 19 20 23
  6    17 18 24 27
  7    16 22 25 26
 SOLUTION  12
  1     6  9 15
  2     1  2  5  8
  3     3 11 12 21
  4    10 13 22 25
  5    14 19 20 23
  6     4  7 16 17
  7    18 24 26 27
 SOLUTION  13
  1    11 19 20
  2     1  2  5  8
  3     9 17 18 27
  4     4  7 10 13
  5     3  6 14 15
  6    12 21 23 24
  7    16 22 25 26
 SOLUTION  14
  1    15 21 24
  2     1  2  5  8
  3     9 17 18 27
  4     4  7 10 13
========================================================================================================================
  5    14 19 20 23
  6     3  6 11 12
  7    16 22 25 26
 SOLUTION  15
  1     9 17 18
  2     1  2  5  8
  3    15 21 24 27
  4     4  7 10 13
  5    14 19 20 23
  6     3  6 11 12
  7    16 22 25 26
 SOLUTION  16
  1    23 24 27
  2     1  2  5  8
  3    11 19 20 21
  4     4  7 10 13
  5     6  9 17 18
  6     3 12 14 15
  7    16 22 25 26
 SOLUTION  17
  1     3 12 15
  2     1  2  5  8
  3    11 19 20 21
  4     4  7 10 13
  5     6  9 17 18
  6    14 23 24 27
  7    16 22 25 26
 SOLUTION  18
  1    13 22 25
  2     2  3  6  9
  3    19 20 21 23
  4    12 14 15 17
  5     1  4 10 11
  6     5  7  8 16
  7    18 24 26 27
 SOLUTION  19
  1     4  5  7
  2     2  3  6  9
  3    19 20 21 23
  4     8 17 18 27
  5     1 10 13 14
  6    11 12 15 24
  7    16 22 25 26
 SOLUTION  20
  1    13 22 25
  2     2  3  6  9
  3    19 20 21 23
  4    12 15 24 27
  5     1  4 10 11
  6     5  7  8 16
  7    14 17 18 26
 SOLUTION  21
  1     1 10 11
  2     2  3  6  9
========================================================================================================================
  3    19 20 21 23
  4    12 15 24 27
  5     4  7 13 14
  6     5  8 17 18
  7    16 22 25 26
 SOLUTION  22
  1     1 10 11
  2     2  3  6  9
  3    19 20 21 23
  4    12 15 24 27
  5     5 14 17 18
  6     4  7  8 13
  7    16 22 25 26
 SOLUTION  23
  1    10 11 19
  2     2  3  6  9
  3     1  4  5  7
  4    20 22 23 25
  5    12 14 15 21
  6     8 13 16 17
  7    18 24 26 27
 SOLUTION  24
  1    12 15 21
  2     2  3  6  9
  3     1  4  5  7
  4    20 22 23 25
  5    10 11 14 19
  6     8 13 16 17
  7    18 24 26 27
 SOLUTION  25
* * * * ELAPSED CPU TIME =3280 MILLISECONDS.
  1    13 16 25
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    11 12 21 24
  6    14 15 23 26
  7    10 19 20 22
 SOLUTION  26
  1    14 15 23
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    11 12 21 24
  6    13 16 25 26
  7    10 19 20 22
 SOLUTION  27
  1    15 23 24
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    10 13 19 20
  6    11 12 14 21
  7    16 22 25 26
 SOLUTION  28
  1    11 14 15
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    10 13 19 20
  6    12 21 23 24
  7    16 22 25 26
 SOLUTION  29
  1    12 15 21
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    10 13 19 20
  6    11 14 23 24
  7    16 22 25 26
 SOLUTION  30
  1    11 20 21
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    12 15 23 24
  6    10 13 14 19
  7    16 22 25 26
 SOLUTION  31
  1    13 16 25
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    15 23 24 26
  6    11 12 14 21
  7    10 19 20 22
 SOLUTION  32
  1    12 15 21
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    11 20 23 24
  6    10 13 14 19
  7    16 22 25 26
 SOLUTION  33
  1    15 21 24
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    10 19 22 23
  6    13 16 25 26
  7    11 12 14 20
 SOLUTION  34
  1    11 20 21
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    10 19 22 23
  6    13 16 25 26
========================================================================================================================
  7    12 14 15 24
 SOLUTION  35
  1    11 14 15
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    10 19 22 23
  6    13 16 25 26
  7    12 20 21 24
 SOLUTION  36
  1    11 12 15
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    14 21 23 24
  6    13 16 25 26
  7    10 19 20 22
 SOLUTION  37
  1    15 21 24
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    11 12 14 23
  6    13 16 25 26
  7    10 19 20 22
 SOLUTION  38
  1    21 23 24
  2     2  3  6  9
  3     1  4  5  7
  4     8 17 18 27
  5    11 12 15 20
  6    10 13 14 19
  7    16 22 25 26
 SOLUTION  39
  1    15 18 27
  2     2  3  6  9
  3     1  4  5  7
  4     8 14 17 23
  5    11 12 21 24
  6    13 16 25 26
  7    10 19 20 22
 SOLUTION  40
  1    13 16 25
  2     2  3  6  9
  3     1  4  5  7
  4     8 14 17 23
  5    15 18 26 27
  6    10 11 19 22
  7    12 20 21 24
 SOLUTION  41
  1    15 18 27
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
========================================================================================================================
  5    13 14 23 26
  6    10 11 19 22
  7    12 20 21 24
 SOLUTION  42
  1    13 19 22
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
  5    15 18 26 27
  6    10 11 14 23
  7    12 20 21 24
 SOLUTION  43
  1    13 19 22
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
  5    15 18 26 27
  6    12 21 23 24
  7    10 11 14 20
 SOLUTION  44
  1    11 19 20
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
  5    15 18 26 27
  6    12 21 23 24
  7    10 13 14 22
 SOLUTION  45
  1    11 13 14
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
  5    15 18 26 27
  6    12 21 23 24
  7    10 19 20 22
 SOLUTION  46
  1    10 11 13
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
  5    15 18 26 27
  6    14 19 22 23
  7    12 20 21 24
 SOLUTION  47
  1    13 14 23
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
  5    15 18 26 27
  6    10 11 19 22
  7    12 20 21 24
 SOLUTION  48
  1    10 13 19
  2     2  3  6  9
========================================================================================================================
  3     1  4  5  7
  4     8 16 17 25
  5    11 14 22 23
  6    12 15 20 21
  7    18 24 26 27
 SOLUTION  49
  1    11 13 14
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
  5    10 19 22 23
  6    12 15 20 21
  7    18 24 26 27
 SOLUTION  50
* * * * ELAPSED CPU TIME =3420 MILLISECONDS.
  1    19 22 23
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
  5    12 14 15 21
  6    10 11 13 20
  7    18 24 26 27
 SOLUTION  51
  1    10 13 19
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
  5    12 14 15 21
  6    11 20 22 23
  7    18 24 26 27
 SOLUTION  52
  1    11 19 20
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
  5    12 14 15 21
  6    10 13 22 23
  7    18 24 26 27
 SOLUTION  53
  1    15 18 27
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
  5    10 11 14 19
  6    13 22 23 26
  7    12 20 21 24
 SOLUTION  54
  1    13 22 23
  2     2  3  6  9
  3     1  4  5  7
  4     8 16 17 25
  5    10 11 14 19
  6    12 15 20 21
  7    18 24 26 27
 SOLUTION  55
  1    11 20 21
  2     2  3  6  9
  3     1  4  5  7
  4    12 15 24 27
  5    10 19 22 23
  6    13 16 25 26
  7     8 14 17 18
 SOLUTION  56
  1    11 19 20
  2     2  3  6  9
  3     1  4  5  7
  4    10 13 22 25
  5    15 18 26 27
  6    12 21 23 24
  7     8 14 16 17
 SOLUTION  57
  1    10 13 19
  2     2  3  6  9
  3     1  4  5  7
  4    20 23 24 27
  5     8 15 17 18
  6    11 12 14 21
  7    16 22 25 26
 SOLUTION  58
  1    11 12 21
  2     2  3  6  9
  3     1  4  5  7
  4    20 23 24 27
  5     8 15 17 18
  6    10 13 14 19
  7    16 22 25 26
 SOLUTION  59
  1    11 20 21
  2     2  3  6  9
  3    19 22 23 25
  4    12 14 15 17
  5     7  8 13 16
  6     1  4  5 10
  7    18 24 26 27
 SOLUTION  60
  1     7  8 17
  2     2  3  6  9
  3    19 22 23 25
  4    11 13 14 16
  5    15 18 26 27
  6     1  4  5 10
  7    12 20 21 24
 SOLUTION  61
  1     7 13 16
  2     2  3  6  9
  3    19 22 23 25
  4     1 10 11 20
  5    12 14 15 21
  6     4  5  8 17
========================================================================================================================
  7    18 24 26 27
 SOLUTION  62
  1     4  5  7
  2     2  3  6  9
  3    19 22 23 25
  4     1 10 11 20
  5    12 14 15 21
  6     8 13 16 17
  7    18 24 26 27
 SOLUTION  63
  1     7  8 17
  2     2  3  6  9
  3    19 22 23 25
  4     1 10 11 20
  5    12 14 15 21
  6     4  5 13 16
  7    18 24 26 27
 SOLUTION  64
  1    15 18 27
  2     2  3  6  9
  3    19 22 23 25
  4     7 16 17 26
  5     1  4 10 11
  6     5  8 13 14
  7    12 20 21 24
 SOLUTION  65
  1     1 10 11
  2     2  3  6  9
  3    19 22 23 25
  4     7 16 17 26
  5     4  5  8 13
  6    14 15 18 27
  7    12 20 21 24
 SOLUTION  66
  1    15 18 27
  2     2  3  6  9
  3    19 22 23 25
  4     7 16 17 26
  5     4  5  8 13
  6     1 10 11 14
  7    12 20 21 24
 SOLUTION  67
  1     1 10 13
  2     2  3  6  9
  3    19 22 23 25
  4     5  8 11 14
  5    15 18 26 27
  6     4  7 16 17
  7    12 20 21 24
 SOLUTION  68
  1    17 26 27
  2     2  3  6  9
  3    19 22 23 25
  4    15 18 21 24
========================================================================================================================
  5     7  8 13 16
  6     1  4  5 10
  7    11 12 14 20
 SOLUTION  69
  1     7  8 17
  2     2  3  6  9
  3    19 22 23 25
  4     1  4 13 16
  5     5 10 11 14
  6    12 15 20 21
  7    18 24 26 27
 SOLUTION  70
  1    11 20 21
  2     2  3  6  9
  3    19 22 23 25
  4    12 15 24 27
  5     7  8 13 16
  6     1  4  5 10
  7    14 17 18 26
 SOLUTION  71
  1    12 15 21
  2     2  3  6  9
  3    19 22 23 25
  4     1  4  5  8
  5     7 14 16 17
  6    10 11 13 20
  7    18 24 26 27
 SOLUTION  72
  1    10 11 13
  2     2  3  6  9
  3    19 22 23 25
  4     1  4  5  8
  5     7 14 16 17
  6    12 15 20 21
  7    18 24 26 27
 SOLUTION  73
  1     7 16 17
  2     2  3  6  9
  3    19 22 23 25
  4     1  4  5  8
  5    12 14 15 21
  6    10 11 13 20
  7    18 24 26 27
 SOLUTION  74
  1    17 26 27
  2     2  3  6  9
  3    19 22 23 25
  4    11 14 15 18
  5     7  8 13 16
  6     1  4  5 10
  7    12 20 21 24
 SOLUTION  75
* * * * ELAPSED CPU TIME =4390 MILLISECONDS.
  1     7  8 17
========================================================================================================================
  2     2  3  6  9
  3    23 25 26 27
  4    13 16 19 22
  5     1  4 10 11
  6     5 14 15 18
  7    12 20 21 24
 SOLUTION  76
  1     1 10 11
  2     2  3  6  9
  3    23 25 26 27
  4    13 16 19 22
  5     8 15 17 18
  6     4  5  7 14
  7    12 20 21 24
 SOLUTION  77
  1     4  5  7
  2     2  3  6  9
  3    23 25 26 27
  4    13 16 19 22
  5     8 15 17 18
  6     1 10 11 14
  7    12 20 21 24
 SOLUTION  78
  1     1 10 11
  2     2  3  6  9
  3    23 25 26 27
  4    13 16 19 22
  5     4  7  8 17
  6     5 14 15 18
  7    12 20 21 24
 SOLUTION  79
  1     7  8 17
  2     2  3  6  9
  3    23 25 26 27
  4     1  4 13 16
  5    11 12 21 24
  6     5 14 15 18
  7    10 19 20 22
 SOLUTION  80
  1    15 17 18
  2     2  3  6  9
  3    23 25 26 27
  4     1  4 13 16
  5     5  7  8 14
  6    10 11 19 22
  7    12 20 21 24
 SOLUTION  81
  1     5  7  8
  2     2  3  6  9
  3    23 25 26 27
  4     1  4 13 16
  5    15 17 18 24
  6    11 12 14 21
  7    10 19 20 22
 SOLUTION  82
  1    15 17 18
  2     2  3  6  9
  3    23 25 26 27
  4     1  4  5  8
  5    11 12 21 24
  6     7 13 14 16
  7    10 19 20 22
 SOLUTION  83
  1     7 13 16
  2     2  3  6  9
  3    23 25 26 27
  4     1  4  5  8
  5    15 17 18 24
  6    11 12 14 21
  7    10 19 20 22
 SOLUTION  84
  1    11 12 21
  2     2  3  6  9
  3    23 25 26 27
  4     1  4  5  8
  5    15 17 18 24
  6     7 13 14 16
  7    10 19 20 22
 SOLUTION  85
  1     1 10 11
  2     2  3  6  9
  3    21 23 24 27
  4    17 18 25 26
  5     5 12 14 15
  6    13 19 20 22
  7     4  7  8 16
 SOLUTION  86
  1     1 10 13
  2     2  3  6  9
  3    21 23 24 27
  4    11 12 19 20
  5     8 15 17 18
  6     4  5  7 14
  7    16 22 25 26
 SOLUTION  87
  1     1 10 13
  2     2  3  6  9
  3    21 23 24 27
  4    11 12 19 20
  5     4  7  8 17
  6     5 14 15 18
  7    16 22 25 26
 SOLUTION  88
  1    11 12 15
  2     2  3  6  9
  3    21 23 24 27
  4     7  8 17 18
  5     1  4  5 14
  6    13 16 25 26
  7    10 19 20 22
 SOLUTION  89
  1     1  4  5
  2     2  3  6  9
  3    21 23 24 27
  4     7  8 17 18
  5    11 12 15 20
  6    10 13 14 19
  7    16 22 25 26
 SOLUTION  90
  1    17 26 27
  2     2  3  6  9
  3     1 10 13 19
  4    20 22 23 25
  5    11 12 21 24
  6     5 14 15 18
  7     4  7  8 16
 SOLUTION  91
  1    11 12 21
  2     2  3  6  9
  3     1 10 13 19
  4    20 22 23 25
  5     5  8 14 15
  6     4  7 16 17
  7    18 24 26 27
 SOLUTION  92
  1    11 12 21
  2     2  3  6  9
  3     1 10 13 19
  4    20 22 23 25
  5     5 14 17 18
  6    15 24 26 27
  7     4  7  8 16
 SOLUTION  93
  1    11 12 21
  2     2  3  6  9
  3     1 10 13 19
  4    20 22 23 25
  5    17 24 26 27
  6     5 14 15 18
  7     4  7  8 16
 SOLUTION  94
  1    11 12 21
  2     2  3  6  9
  3     1 10 13 19
  4    20 22 23 25
  5     4  5  7 16
  6    15 24 26 27
  7     8 14 17 18
 SOLUTION  95
  1    11 12 21
  2     2  3  6  9
  3     1 10 13 19
  4    20 22 23 25
========================================================================================================================
  5     4  5  7 16
  6     8 14 15 17
  7    18 24 26 27
 SOLUTION  96
  1    11 20 21
  2     2  3  6  9
  3     1 10 13 19
  4     8 17 18 27
  5    12 15 23 24
  6     4  5  7 14
  7    16 22 25 26
 SOLUTION  97
  1    12 15 21
  2     2  3  6  9
  3     1 10 13 19
  4     8 17 18 27
  5    11 20 23 24
  6     4  5  7 14
  7    16 22 25 26
 SOLUTION  98
  1    21 23 24
  2     2  3  6  9
  3     1 10 13 19
  4     8 17 18 27
  5    11 12 15 20
  6     4  5  7 14
  7    16 22 25 26
 SOLUTION  99
  1    12 15 21
  2     2  3  6  9
  3     1 10 13 19
  4     5 11 14 20
  5    18 23 24 27
  6    17 22 25 26
  7     4  7  8 16
 SOLUTION 100
* * * * ELAPSED CPU TIME =5050 MILLISECONDS.
  1    15 18 27
  2     2  3  6  9
  3     1 10 13 19
  4     5 11 14 20
  5     4  7  8 17
  6    12 21 23 24
  7    16 22 25 26
 SOLUTION 101
  1    12 15 21
  2     2  3  6  9
  3     1 10 13 19
  4     5 11 14 20
  5     4  7  8 17
  6    16 22 23 25
  7    18 24 26 27
 SOLUTION 102
  1     4  5  7
========================================================================================================================
  2     2  3  6  9
  3     1 10 13 19
  4     8 16 17 25
  5    11 14 22 23
  6    12 15 20 21
  7    18 24 26 27
 SOLUTION 103
  1     4  5  7
  2     2  3  6  9
  3     1 10 13 19
  4     8 16 17 25
  5    12 14 15 21
  6    11 20 22 23
  7    18 24 26 27
 SOLUTION 104
  1    22 23 25
  2     2  3  6  9
  3     1 10 13 19
  4     5  8 11 14
  5    15 18 26 27
  6     4  7 16 17
  7    12 20 21 24
 SOLUTION 105
  1    15 24 27
  2     2  3  6  9
  3     1 10 13 19
  4     7  8 17 18
  5    12 20 21 23
  6     4  5 11 14
  7    16 22 25 26
 SOLUTION 106
  1    11 12 21
  2     2  3  6  9
  3     1 10 13 19
  4    20 23 24 27
  5     8 15 17 18
  6     4  5  7 14
  7    16 22 25 26
 SOLUTION 107
  1     4  5  7
  2     2  3  6  9
  3     1 10 13 19
  4    20 23 24 27
  5     8 15 17 18
  6    11 12 14 21
  7    16 22 25 26
 SOLUTION 108
  1    11 12 21
  2     2  3  6  9
  3     1 10 13 19
  4    20 23 24 27
  5     4  7  8 17
  6     5 14 15 18
  7    16 22 25 26
 SOLUTION 109
  1    13 16 25
  2     2  3  6  9
  3     1 10 11 19
  4    22 23 26 27
  5     8 15 17 18
  6     4  5  7 14
  7    12 20 21 24
 SOLUTION 110
  1    13 16 25
  2     2  3  6  9
  3     1 10 11 19
  4    22 23 26 27
  5     4  7  8 17
  6     5 14 15 18
  7    12 20 21 24
 SOLUTION 111
  1     7 13 16
  2     2  3  6  9
  3     1 10 11 19
  4    20 22 23 25
  5    12 14 15 21
  6     4  5  8 17
------------------------------------------------------------------------------------------------------------------------------------
*** RUN ERROR, ESTIMATED LINES EXCEEDED -- NEAR LINE 108. ***
========================================================================================================================
=> TRACE OF ACTIVE BLOCKS
=> PROCEDURE BLOCK RECORD_SOLUT
  NO LOCAL SCALAR, SUBRANGE, POINTER OR STRING VARIABLES
  RECORD_SOLUT WAS CALLED NEAR LINE 228
=> PROCEDURE BLOCK GENERATE_SOL
  VALUE OF LOCAL VARIABLES:
  PC_NUM = 1 (OR UNDEFINED)
  GENERATE_SOL WAS CALLED NEAR LINE 229
=> PROCEDURE BLOCK GENERATE_SOL
  VALUE OF LOCAL VARIABLES:
  PC_NUM = 7
  GENERATE_SOL WAS CALLED NEAR LINE 229
=> PROCEDURE BLOCK GENERATE_SOL
  VALUE OF LOCAL VARIABLES:
  PC_NUM = 6
  GENERATE_SOL WAS CALLED NEAR LINE 229
=> PROCEDURE BLOCK GENERATE_SOL
  VALUE OF LOCAL VARIABLES:
  PC_NUM = 5
  GENERATE_SOL WAS CALLED NEAR LINE 229
=> PROCEDURE BLOCK GENERATE_SOL
  VALUE OF LOCAL VARIABLES:
  PC_NUM = 4
  GENERATE_SOL WAS CALLED NEAR LINE 229
. . .
=> PROGRAM BLOCK SOMA
  VALUE OF LOCAL VARIABLES:
  P = 6                           I = 27                          SOLUTIONS = 111                 NUMBER_USED = 7
=> EXECUTION FLOW SUMMARY
0001           |      PROGRAM SOMA(OUTPUT);
0019           |      TYPE
0020           |      CUBE_SET = SET OF 1..27;
0021           |      WHERE = (TOP,BOTTOM,RIGHT,LEFT,FRONT,BACK,NOWHERE);
0022           |      PIECE_DESCRIPTION = ARRAY(.1..3.) OF WHERE;
0023           |      AXES = (TBAXIS,RLAXIS,FBAXIS);
0024           |      HASH_VALUE = 0..58;
0025           |      PLIST_PTR = @POSN_LIST_ELEMENT;
0026           |      WHERE_SET = SET OF WHERE;
0027           |      PIECE_RANGE = 1..7;
0028           |      POSN_LIST_ELEMENT = RECORD
0029           |      PC_POSITION : CUBE_SET;
0030           |      NEXT_POSN : PLIST_PTR
0031           |      END;
0033           |      VAR
0034           |      THE_CUBE : CUBE_SET;
0035           |      PIECE : ARRAY(.1..7.) OF PIECE_DESCRIPTION;
0036           |      MAJOR_ROTATIONS : ARRAY(.0..1.) OF AXES;
0037           |      ROTATED : ARRAY(.AXES,WHERE.) OF WHERE;
0038           |      SHIFT : ARRAY(.WHERE.) OF INTEGER;
0039           |      HASH : ARRAY(.WHERE,1..2.) OF INTEGER;
0040           |      POSN_LISTHEAD,SOLUTION_PTR : ARRAY(.1..7.) OF PLIST_PTR;
0041           |      THOSE_CONSIDERED : SET OF HASH_VALUE;
0042           |      P,I,SOLUTIONS : INTEGER;
0043           |      NUMBER_USED : INTEGER;
0047           |      FUNCTION ORD1(S : WHERE_SET) : INTEGER;
0048           |      VAR I,J : INTEGER; W : WHERE;
0049           |      BEGIN
0050         72.--|      I := 0; J := 1;
0051              |      FOR W := TOP TO NOWHERE DO
0052           504.--|      BEGIN
0053              504.--|      IF W IN S THEN
0053                 168.--|      I := I + J;
0054                    |      J := 2*J
0055                 |      END;
0056              |      ORD1 := I
0057           |      END;
0060           |      PROCEDURE INITIALIZE;
0061           |      BEGIN
0062          1.--|      PIECE(.1,1.) := RIGHT; PIECE(.1,2.) := FRONT; PIECE(.1,3.) := NOWHERE;
0063              |      PIECE(.2,1.) := RIGHT; PIECE(.2,2.) := FRONT; PIECE(.2,3.) := FRONT;
0064              |      PIECE(.3,1.) := RIGHT; PIECE(.3,2.) := FRONT; PIECE(.3,3.) := RIGHT;
0065              |      PIECE(.4,1.) := RIGHT; PIECE(.4,2.) := FRONT; PIECE(.4,3.) := RIGHT;
0066              |      PIECE(.5,1.) := RIGHT; PIECE(.5,2.) := TOP; PIECE(.5,3.) := FRONT;
0067              |      PIECE(.6,1.) := RIGHT; PIECE(.6,2.) := FRONT; PIECE(.6,3.) := TOP;
0068              |      PIECE(.7,1.) := RIGHT; PIECE(.7,2.) := TOP; PIECE(.7,3.) := FRONT;
0069              |      MAJOR_ROTATIONS(.0.) := FBAXIS; MAJOR_ROTATIONS(.1.) := RLAXIS;
0070              |      ROTATED(.TBAXIS,TOP.) := TOP; ROTATED(.TBAXIS,BOTTOM.) := BOTTOM;
0071              |      ROTATED(.TBAXIS,RIGHT.) := BACK; ROTATED(.TBAXIS,LEFT.) := FRONT;
0072              |      ROTATED(.TBAXIS,FRONT.) := RIGHT; ROTATED(.TBAXIS,BACK.) := LEFT;
0073              |      ROTATED(.TBAXIS,NOWHERE.) := NOWHERE;
0074              |      ROTATED(.RLAXIS,TOP.) := FRONT; ROTATED(.RLAXIS,BOTTOM.) := BACK;
0075              |      ROTATED(.RLAXIS,RIGHT.) := RIGHT; ROTATED(.RLAXIS,LEFT.) := LEFT;
0076              |      ROTATED(.RLAXIS,FRONT.) := BOTTOM; ROTATED(.RLAXIS,BACK.) := TOP;
0077              |      ROTATED(.RLAXIS,NOWHERE.) := NOWHERE;
0078              |      ROTATED(.FBAXIS,TOP.) := LEFT; ROTATED(.FBAXIS,BOTTOM.) := RIGHT;
0079              |      ROTATED(.FBAXIS,RIGHT.) := TOP; ROTATED(.FBAXIS,LEFT.) := BOTTOM;
0080              |      ROTATED(.FBAXIS,FRONT.) := FRONT; ROTATED(.FBAXIS,BACK.) := BACK;
0081              |      ROTATED(.FBAXIS,NOWHERE.) := NOWHERE;
0082              |      SHIFT(.TOP.) := 9; SHIFT(.BOTTOM.) := - 9; SHIFT(.RIGHT.) := 1;
0083              |      SHIFT(.LEFT.) := - 1; SHIFT(.FRONT.) := 3; SHIFT(.BACK.) := - 3;
0084              |      SHIFT(.NOWHERE.) := 0;
0085              |      HASH(.TOP,1.) := 1; HASH(.TOP,2.) := 6; HASH(.BOTTOM,1.) := - 1;
0086              |      HASH(.BOTTOM,2.) := - 6; HASH(.RIGHT,1.) := 2; HASH(.RIGHT,2.) := 19;
0087              |      HASH(.LEFT,1.) := - 2; HASH(.LEFT,2.) := - 19; HASH(.FRONT,1.) := 3;
0088              |      HASH(.FRONT,2.) := 32; HASH(.BACK,1.) := - 3; HASH(.BACK,2.) := - 32;
0089              |      HASH(.NOWHERE,1.) := 0; HASH(.NOWHERE,2.) := 0;
0090              |      THE_CUBE := (..);
0091              |      INTFIELDSIZE := 3;
0092              |      NUMBER_USED := 0;
0093              |      SOLUTIONS := 0
0094           |      END;
0097           |      PROCEDURE RECORD_SOLUTION;
0098           |      BEGIN
0099        111.--|      SOLUTIONS := SOLUTIONS + 1;
0100              |      WRITELN(' SOLUTION ',SOLUTIONS);
0101        111.--|      IF (SOLUTIONS MOD 25) = 0 THEN
0102             4.--|      WRITELN('* * * * ELAPSED CPU TIME =',10*CLOCK,' MILLISECONDS.');
0103        111.--|      FOR P := 1 TO 7 DO
0104           776.--|      BEGIN
0105              776.--|      WRITE(P,'   ');
0106              776.--|      WITH SOLUTION_PTR(.P.)@ DO
0107                 776.--|      FOR I := 1 TO 27 DO
0107                  20952.--|      IF I IN PC_POSITION THEN
0107                      2993.--|      WRITE(I);
---- ERROR -------------------------------------------------------------------------------------------------------------------------
0108              776.--|      WRITELN
---- ERROR -------------------------------------------------------------------------------------------------------------------------
0109                 |      END;
0110        110.--|      WRITELN
0111           |      END;
0114           |      FUNCTION ORIENTATION(PIECE : PIECE_DESCRIPTION) : HASH_VALUE;
0115           |      VAR PC : SET OF WHERE;
0116           |      BEGIN
0117        168.--|      IF P IN (.1,2,7.) THEN
0118            72.--|      IF ODD(ORD(PIECE(.1.))) THEN
0119               36.--|      PC := (.PRED(PIECE(.1.)),PIECE(.2.).)
0120                 |      ELSE
0120               36.--|      PC := (.SUCC(PIECE(.1.)),PIECE(.2.).);
0121              |      CASE P OF
0122            48.--|      1,2 : ORIENTATION := ORD1(PC)DIV 2
0123                 |      + 32*ORD(ORD(PIECE(.1.)) > ORD(PIECE(.3.)));
0124            24.--|      3 : ORIENTATION := ABS(ABS(HASH(.PIECE(.1.),1.)
0125                 |      + HASH(.PIECE(.3.),1.)) + HASH(.PIECE(.2.),2.));
0126            72.--|      4,5,6 : ORIENTATION := ABS(HASH(.PIECE(.1.),1.)
0127                 |      + HASH(.PIECE(.2.),2.) + HASH(.PIECE(.3.),1.));
0128            24.--|      7 : ORIENTATION := ORD1(PC + (.PIECE(.3.).))
0129              |      END
0130           |      END;
0133           |      PROCEDURE ROTATE(VAR PIECE : PIECE_DESCRIPTION; AXIS : AXES);
0134           |      BEGIN
0135        342.--|      FOR I := 1 TO 3 DO
0136          1026.--|      PIECE(.I.) := ROTATED(.AXIS,PIECE(.I.).)
0137           |      END;
0140           |      PROCEDURE GENERATE_TRANSLATIONS(PIECE : PIECE_DESCRIPTION;
0141           |      ORIENTATION : HASH_VALUE);
0142           |      VAR RLDISP,FBDISP,DISP,J : INTEGER;
0143           |      SIZE,PART : ARRAY(.0..3.) OF INTEGER;
0144           |      CUBICLE : 1..27;
0145           |      BEGIN
0145         90.--|      RLDISP := 1; FBDISP := 3; PART(.0.) := 1;
0146              |      FOR I := 0 TO 3 DO
0146           360.--|      SIZE(.I.) := 3;
0147              |      THOSE_CONSIDERED := THOSE_CONSIDERED + (.ORIENTATION.);
0148              |      FOR I := 1 TO 3 DO
0149           270.--|      BEGIN
0150              270.--|      PART(.0.) := PART(.0.) + ORD(PIECE(.I.))MOD 2
0151                    |      *( - SHIFT(.PIECE(.I.).));
0152                    |      SIZE(.ORD(PIECE(.I.))DIV 2.) := SIZE(.ORD(PIECE(.I.))DIV 2.) - 1;
0153                 |      END;
0154              |      IF P IN (.3,7.) THEN
0155            18.--|      FOR I := 1 TO 3 DO
0156               54.--|      PART(.I.) := PART(.I DIV 2.) + SHIFT(.PIECE(.I.).)
0157              |      ELSE
0158            72.--|      FOR I := 1 TO 3 DO
0159              216.--|      PART(.I.) := PART(.I - 1.) + SHIFT(.PIECE(.I.).);
0160              |      FOR I := 1 TO SIZE(.0.)*SIZE(.1.)*SIZE(.2.) DO
0161           676.--|      BEGIN
0162              676.--|      WITH SOLUTION_PTR(.P.)@ DO
0163                 676.--|      BEGIN
0164                    676.--|      PC_POSITION := (..);
0165                          |      FOR J := 0 TO 3 DO
0166                      2704.--|      BEGIN
0167                         2704.--|      CUBICLE := PART(.J.);
0168                                |      PC_POSITION := PC_POSITION + (.CUBICLE.)
0169                             |      END;
0170                          |      NEW(NEXT_POSN);
0171                    676.--|      SOLUTION_PTR(.P.) := NEXT_POSN;
0172                          |      NEXT_POSN@.NEXT_POSN := NIL
0173                       |      END;
0174              676.--|      IF I MOD SIZE(.1.) = 0 THEN
0175                 360.--|      BEGIN
0176                    360.--|      RLDISP := - RLDISP;
0177                          |      IF I MOD(SIZE(.1.)*SIZE(.2.)) = 0 THEN
0178                       184.--|      BEGIN
0179                          184.--|      FBDISP := - FBDISP;
0180                                |      DISP := 9;
0181                             |      END
0182                          |      ELSE
0182                       176.--|      DISP := FBDISP
0183                       |      END
0184                    |      ELSE
0184                 316.--|      DISP := RLDISP;
0185                    |      FOR J := 0 TO 3 DO
0185                2704.--|      PART(.J.) := PART(.J.) + DISP
0186                 |      END
0187           |      END;
0190           |      PROCEDURE GENERATE_PIECE_POSITIONS;
0191           |      VAR M,MINOR_ROTATIONS : INTEGER; THIS_ORIENTATION : HASH_VALUE;
0192           |      BEGIN
0193          1.--|      FOR P := 1 TO 7 DO
0194             7.--|      BEGIN
0195                7.--|      THOSE_CONSIDERED := (..);
0196                    |      NEW(POSN_LISTHEAD(.P.));
========================================================================================================================
0196                7.--|      SOLUTION_PTR(.P.) := POSN_LISTHEAD(.P.);
0197                    |      FOR M := 1 TO 6 DO
0198                  42.--|      BEGIN
0199                     42.--|      FOR MINOR_ROTATIONS := 1 TO 4 DO
0200                       168.--|      BEGIN
0201                          168.--|      THIS_ORIENTATION := ORIENTATION(PIECE(.P.));
0202                                |      IF NOT(THIS_ORIENTATION IN THOSE_CONSIDERED) THEN
0203                              90.--|      GENERATE_TRANSLATIONS(PIECE(.P.),THIS_ORIENTATION)
0204                                |      ELSE
0205                              78.--|      REPEAT
0206                                132.--|      ROTATE(PIECE(.P.),TBAXIS);
0207                                132.--|      MINOR_ROTATIONS := MINOR_ROTATIONS + 1
0208                                   |      UNTIL MINOR_ROTATIONS > 3;
0209                          168.--|      ROTATE(PIECE(.P.),TBAXIS);
0210                       168.--|      END;
0211                     42.--|      ROTATE(PIECE(.P.),MAJOR_ROTATIONS(.M MOD 3 DIV 2.))
0212                       |      END
0213                 |      END;
0214          1.--|      POSN_LISTHEAD(.2.)@.NEXT_POSN@.NEXT_POSN@.NEXT_POSN := NIL
0215           |      END;
0218           |      PROCEDURE GENERATE_SOLUTIONS(PC_NUM : PIECE_RANGE);
0219           |      BEGIN
0220      28774.--|      NUMBER_USED := NUMBER_USED + 1;
0221              |      SOLUTION_PTR(.PC_NUM.) := POSN_LISTHEAD(.PC_NUM.);
0222              |      WHILE SOLUTION_PTR(.PC_NUM.)@.NEXT_POSN <> NIL DO
0223       2332159.--|      WITH SOLUTION_PTR(.PC_NUM.)@ DO
0224          2332159.--|      BEGIN
0225             2332159.--|      IF THE_CUBE*PC_POSITION = (..) THEN
0226                  28884.--|      BEGIN
0227                     28884.--|      THE_CUBE := THE_CUBE + PC_POSITION;
0228                             |      IF NUMBER_USED = 7 THEN
0228                          111.--|      RECORD_SOLUTION
0229                             |      ELSE
0229                        28773.--|      GENERATE_SOLUTIONS(PC_NUM MOD 7 + 1);
0230                     28877.--|      THE_CUBE := THE_CUBE - PC_POSITION
0231                          |      END;
0232             2332152.--|      SOLUTION_PTR(.PC_NUM.) := NEXT_POSN
0233                    |      END;
0234      28767.--|      NUMBER_USED := NUMBER_USED - 1
0235           |      END;
0238           |      BEGIN
0239          1.--|      INITIALIZE;
0240          1.--|      GENERATE_PIECE_POSITIONS;
0241          1.--|      GENERATE_SOLUTIONS(2)
0242           |      END.
005.39 SECONDS IN EXECUTION.
                                SSSSSSSSSS   BBBBBBBBBBB   PPPPPPPPPPP    IIIIIIIIII   VV        VV  PPPPPPPPPPP
                              SSSSSSSSSSSS  BBBBBBBBBBBB  PPPPPPPPPPPP   IIIIIIIIII   VV        VV  PPPPPPPPPPPP
                             SS        SS  BB        BB  PP        PP       II       VV        VV  PP        PP
                            SS            BB        BB  PP        PP       II       VV        VV  PP        PP
                           SSS           BB       BB   PP        PP       II       VV        VV  PP        PP
                           SSSSSSSSS    BBBBBBBBBB    PPPPPPPPPPPP       II       VV        VV  PPPPPPPPPPPP
                           SSSSSSSSS   BBBBBBBBBB    PPPPPPPPPPP        II       VV        VV  PPPPPPPPPPP
                                 SSS  BB       BB   PP                 II        VV      VV   PP
                                 SS  BB        BB  PP                 II         VV    VV    PP
                      SS        SS  BB        BB  PP                 II          VV  VV     PP
                     SSSSSSSSSSSS  BBBBBBBBBBBB  PP             IIIIIIIIII       VVVV      PP
                     SSSSSSSSSS   BBBBBBBBBBB   PP             IIIIIIIIII        VV       PP

                    JJJJJJJJJJ        444     777777777777   2222222222                                AAAAAAAAAA
                    JJJJJJJJJJ       4444     77777777777   222222222222                              AAAAAAAAAAAA
                        JJ          44 44     77      77    22        22                              AA        AA
                        JJ         44  44            77               22                              AA        AA
                        JJ        44   44           77                22                              AA        AA
                        JJ       44444444444       77                22                               AAAAAAAAAAAA
                        JJ      444444444444       77              22                                 AAAAAAAAAAAA
                        JJ             44          77            22                                   AA        AA
                  JJ    JJ             44          77          22                                     AA        AA
                  JJ    JJ             44          77        22                                       AA        AA
                  JJJJJJJJ             44          77       222222222222                              AA        AA
                   JJJJJJ              44          77       222222222222                              AA        AA
****A   END   JOB  472  SBPIVP    TEST SBPASCAL         ROOM        4.44.41 PM 20 SEP 80  PRINTER2  SYS H155  JOB  472   END   A****

[close window]