home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!usc!elroy.jpl.nasa.gov!decwrl!concert!lester.appstate.edu!pembvax1.pembroke.edu!rennie
- From: rennie@pembvax1.pembroke.edu
- Newsgroups: vmsnet.sources.games
- Subject: Star Trek - Part [06/18]
- Date: 7 Apr 93 10:48:26 EDT
- Organization: Pembroke State University
- Lines: 525
- Message-ID: <1993Apr7.104826.1@pembvax1.pembroke.edu>
- NNTP-Posting-Host: papa.pembroke.edu
- Xref: uunet vmsnet.sources.games:648
-
- -+-+-+-+-+-+-+-+ START OF PART 6 -+-+-+-+-+-+-+-+
- X 20 CALL CRAM(42HHIS DESPERATE ATTEMPT TO RESCUE YOU . . . )
- X IF(RANF(0) .GT. 0.5) GO TO 30`20
- X CALL CRAMDMP(6HFAILS. )`20
- X 25 CALL FINISH(II)
- X`09RETURN
- X 30 CALL CRAMDMP(9HSUCCEEDS!) `20
- X IF(IMINE .EQ. 0) GO TO 45`20
- X IMINE=0`20
- X CALL CRAM(24HTHE CRYSTALS MINED WERE )
- X IF(RANF(0) .GT. 0.25) GO TO 40
- X CALL CRAMDMP(5HLOST.) `20
- X`09GO TO 45
- X 40 CALL CRAMDMP(6HSAVED.)
- X`09ICRYSTL=1
- X 45 IF(IGRAB.NE.0) RETURN`20
- XC--------CHECK TO SEE IF CAPTAIN IN SHUTTLE CRAFT`20
- X IF(ICRAFT.NE.0) CALL FINISH(17)`20
- X IF(ALLDONE.NE.0) RETURN`20
- XC--------INFORM CAPTAIN OF ATTEMPT TO REACH SAFETY
- X CALL SKIP(1)
- X IF(JUSTIN .EQ. 0) GO TO 50
- X 47 CALL REDALRT
- X CALL CRAM(7H***THE )
- X CALL CRAMSHP
- X CALL CRAMDMP(37H HAS STOPPED IN A QUADRANT CONTAINING)
- X CALL PROUT(15H A SUPERNOVA.,2)
- X CALL SKIP(1)
- X 50 CALL CRAM(49H***EMERGENCY AUTOMATIC OVERRIDE ATTEMPTS TO HURL )`20
- X CALL CRAMSHP
- X CALL CREND
- X CALL PROUT(23HSAFELY OUT OF QUADRANT.,23)
- X STARCH(QUADX,QUADY)=1`20
- XC--------TRY TO USE WARP ENGINES
- X IF(DAMAGE(6) .EQ. 0) GO TO 100
- X CALL SKIP(1)
- X CALL PROUT(21HWARP ENGINES DAMAGED.,21)
- X CALL FINISH(8)
- X RETURN
- X 100 WARPFAC=6.0+2.0*RANF(0)`20
- X WFACSQ=WARPFAC*WARPFAC
- X CALL CRAM(19HWARP FACTOR SET TO )`20
- X CALL CRAMF(WARPFAC,0,1)`20
- X CALL CREND
- X POWER=0.75*ENERGY`20
- X DISTMAX=POWER/(WARPFAC*WARPFAC*WARPFAC*(SHLDUP+1))
- X DISTREQ=1.4142+2.0*RANF(0)
- X DIST=AMIN1(DISTMAX,DISTREQ)`20
- X TIME=10.0*DIST/WFACSQ`20
- X DIREC=12.0*RANF(0)
- X JUSTIN=0
- X INORBIT=0`20
- X CALL WARPX
- X IF(ALLDONE.NE.0) RETURN`20
- X IF(JUSTIN.NE.0) GO TO 200 `20
- X CALL SKIP(1)
- X`09CALL CRAM('***')
- X`09CALL CRAMSHP
- X`09CALL CRAMDMP(' FAILS TO LEAVE QUADRANT.')
- X CALL FINISH(8)
- X RETURN
- XC--------REPEAT OVERRIDE IF SHIP JUMPED FROM ONE SUPERNOVA TO ANOTHER`20
- X 200 IF(GALAXY(QUADX,QUADY) .EQ. 1000) GO TO 47
- X IF(REMKL .EQ. 0) CALL FINISH(1)`20
- X RETURN
- X END`20
- $ CALL UNPACK TRAUTOVER.FOR;1 2064069836
- $ create 'f'
- X`09SUBROUTINE CANTA
- XC
- XC`0923-OCT-79 (NEW ROUTINE)
- XC`09CANCELS TYPEAHEAD AT THE TERMINAL
- XC
- X`09CALL SYS$ASSIGN('TT',ICHAN,,)
- X`09CALL SYS$QIOW(,%VAL(ICHAN),%VAL('0831'X),,,,
- X`091`09`09DUMMY,%VAL(0),,,,)
- X`09CALL SYS$DASSGN(%VAL(ICHAN))
- X`09RETURN
- X`09END
- $ CALL UNPACK TRCANTA.FOR;1 1397624925
- $ create 'f'
- X SUBROUTINE CHART
- X`09INCLUDE 'TREKCOM/NOLIST'
- X CALL PROUT(31HSTAR CHART FOR THE KNOWN GALAXY,31)
- X CALL SKIP(1)
- X CALL PROUT(42H 1 2 3 4 5 6 7 8,42)`20
- X CALL PROUT(44H ----------------------------------------,44)`20
- X CALL PROUT(3H :,3)`20
- X DO 50 I=1,8`20
- X CALL CRAMI(I,1)`20
- X CALL CRAM(2H :)`20
- X DO 40 J=1,8`20
- X IF(STARCH(I,J)) 10,20,30
- X 10 CALL CRAM(5H .1.)
- X GO TO 40
- X 20 CALL CRAM(5H ...)
- X GO TO 40
- X 30 IF(STARCH(I,J) .GT. 999) GO TO 35`20
- X CALL CRAMI(GALAXY(I,J),5)`20
- X GO TO 40
- X 35 CALL CRAMI(STARCH(I,J)-1000,5)
- X 40 CONTINUE
- X CALL CREND
- X CALL PROUT(3H :,3)`20
- X 50 CONTINUE
- X CALL SKIP(1)
- X CALL CRAMSHP
- X CALL CRAM(16H IS CURRENTLY IN)
- X CALL CRAMLOC(1,QUADX,QUADY)`20
- X CALL CREND
- X RETURN
- X END`20
- $ CALL UNPACK TRCHART.FOR;1 1645241146
- $ create 'f'
- X SUBROUTINE CHOOSE(FROZEN)`20
- XC
- XC`0925-APR-79
- XC`09USE THE SYSTEM SERVICE SYS$GETTIM FOR THE RANDOM NUMBER SEED.
- XC`09THIS GREATLY REDUCES DEPENDENCE OF THE SEED ON TIME OF DAY.
- XC
- X`09INCLUDE 'TREKCOM/NOLIST'
- X`09COMMON/SCANBF/KEY,AITEM
- X`09INTEGER*4 ISEED(2)
- X LOGICAL FROZEN
- X`09LOGICAL CROP
- X`09REAL*8`09AITEM,REGULAR,TOURNAMENT,FROZN,SHORT,MEDIUM,LONG
- X`091 ,NOVICE,FAIR,GOOD,EMERITUS,EXPERT,RHBLANK
- X`09EQUIVALENCE (AITEM,TNUMBER)
- X`09DATA REGULAR,TOURNAMENT,FROZN/7HREGULAR,8HTOURNAME,6HFROZEN/
- X`09DATA SHORT,MEDIUM,LONG/5HSHORT,6HMEDIUM,4HLONG/
- X`09DATA NOVICE,FAIR,GOOD,EXPERT/6HNOVICE,4HFAIR,4HGOOD,6HEXPERT/
- X`09DATA EMERITUS,RHBLANK/8HEMERITUS,1H /
- X TNUMBER = 0.
- X PASSWD = RHBLANK
- X`09ALLDONE=0
- X`09GAMEWON=0
- X`09CALL SYS$GETTIM(ISEED)
- X`09CALL RANSET(ISEED(1))
- X`09IPHWHO=0
- X5 FROZEN = .FALSE.
- XC--------ASK FOR PARAMETERS OF GAME, PREFERABLY ALL ON ONE LINE`20
- X CALL PROMPT(`20
- X +54HWOULD YOU LIKE A REGULAR, TOURNAMENT, OR FROZEN GAME? ,54)
- X CALL SCAN`20
- X`09IF(CROP(AITEM,REGULAR)) GO TO 9
- X`09IF(CROP(AITEM,TOURNAMENT)) GO TO 100
- X`09IF(CROP(AITEM,FROZN)) GO TO 200
- X GO TO 5`20
- X 9 SKILL=0
- X`09LENGTH=0
- X 10 CALL SCAN`20
- X IF(KEY .NE. IHALPHA) GO TO 20`20
- XC--------CHECK FOR DIFFERENT KINDS OF GAMES`20
- X KSTUF(5)=0 `20
- X`09IF(CROP(AITEM,SHORT)) LENGTH=1
- X`09IF(CROP(AITEM,MEDIUM)) LENGTH=2
- X`09IF(CROP(AITEM,LONG)) LENGTH=4
- X`09IF(CROP(AITEM,NOVICE)) SKILL=1
- X`09IF(CROP(AITEM,FAIR)) SKILL=2
- X`09IF(CROP(AITEM,GOOD)) SKILL=3
- X`09IF(CROP(AITEM,EXPERT)) SKILL=4
- X`09IF(CROP(AITEM,EMERITUS)) SKILL=5
- X`09IF(SKILL.EQ.4) KSTUF(5)=1
- X`09IF(SKILL.EQ.5) KSTUF(5)=2
- X IF(LENGTH*SKILL .EQ. 0) GO TO 10`20
- X`09GO TO 30
- X 20 IF(LENGTH .NE. 0) GO TO 25
- X CALL PROMPT(45HWOULD YOU LIKE A SHORT, MEDIUM OR LONG GAME? ,45)`20
- X GO TO 10
- X 25 IF(SKILL .NE. 0) GO TO 30`20
- X CALL PROMPT(48HARE YOU NOVICE, FAIR, GOOD, EXPERT OR EMERITUS? `20
- X`091 ,48)
- X GO TO 10
- XC--------READ IN SECRET PASSWORD
- X 30 CALL SCAN`20
- X`09PASSWD=AITEM
- X IF(KEY .NE. IHEOL) GO TO 40`20
- X CALL PROMPT(33HPLEASE TYPE IN A SECRET PASSWORD:,33)
- X GO TO 30
- X40 CONTINUE `20
- XC--------USE PARAMETERS TO GENERATE INITIAL VALUES OF THINGS
- X DAMFAC=0.50*SKILL`20
- X REMBASE=3.0*RANF(0)+2.0
- X INPLAN=5. +6.*RANF(0)`20
- X NROMREM=(2.+RANF(0))*SKILL
- X NSCREM=SKILL/3
- X REMTIME=7.0*LENGTH`20
- X`09INTIME=REMTIME
- X RATE=(SKILL-2.0*RANF(0)+1.0)*SKILL*0.1 + 0.15`20
- X REMKL=2.0*RATE*INTIME`20
- X`09INKLING=REMKL
- X INCOM=SKILL+0.0625*INKLING*RANF(0)
- X INCOM=MIN0(10,INCOM)`20
- X`09REMCOM=INCOM
- X REMRES=(INKLING+4* INCOM )*INTIME
- X`09INRESOR=REMRES
- X`09IF(INKLING.GT.50) REMBASE=REMBASE+1
- X`09INBASE=REMBASE
- X RETURN
- XC--------PROCESS A TOURNAMENT REQUEST`20
- X 100 CALL SCAN
- X CALL RANSET(ABS(TNUMBER)) `20
- X THINGX=-1`20
- XC--------GO BACK FOR ANYTHING LEFT OUT
- X IF (KEY.NE.IHEOL) GO TO 9`20
- X CALL PROMPT(37HTYPE IN NAME OR NUMBER OF TOURNAMENT: ,37)`20
- X GO TO 100`20
- XC--------PROCESS A REQUEST FOR A FROZEN GAME
- X 200 CALL THAW`20
- XC--------MAKE SURE WE GOT A GAME OUT OF THAW
- X IF(PASSWD.EQ.0.D0) GO TO 5`20
- X FROZEN = .TRUE.`20
- XC--------DESTROY ANY "THINGS" IN FROZEN GAME.`20
- X THINGX=0`20
- X`09THINGY=0
- X DO 210 I=1,10`20
- X DO 210 J=1,10`20
- X 210 IF(QUAD(I,J) .EQ. IHQUEST) QUAD(I,J)=IHDOT
- XC--------RESET PLAQUE STATUS
- X ICITE=0`20
- X RETURN
- X END`20
- $ CALL UNPACK TRCHOOSE.FOR;1 946352103
- $ create 'f'
- X SUBROUTINE CRAM(M)
- X`09COMMON/PRLUN/LUN
- X BYTE M(1)
- XC--------<M> IS AN ARRAY CONTAINING CHARACTERS LJZF. BYTES ARE PUT
- XC--------INTO THE OUTPUT BUFFER UP TO THE FIRST 00B BYTE.
- X BYTE LINE(120)
- X DATA LINE/120*0/,ICH/1/
- X`09K=80
- X`09GO TO 11
- XC*
- X`09ENTRY CRAMS(M,IK)
- XC*
- X`09K=IK
- X11 IDUMP=0
- X5 ICHX=0
- XC--------GET THE NEXT CHARACTER OF <M>
- X10`09ICHX=ICHX+1
- X`09IF (ICHX.GT.K) GOTO 21
- X`09KHAR=M(ICHX)
- XC--------PUT IT IN BUFFER
- X IF(KHAR .EQ. 0) GO TO 21
- X`09LINE(ICH)=KHAR
- X ICH=ICH+1
- X`09IF(ICH.GT.120) GOTO 25`20
- X`09IF((ICH.GT.72).AND.(LUN.EQ.1)) GOTO 25
- X GO TO 10
- XC*
- X ENTRY CRENDNO`20
- XC--------DUMP BUFFER AND SUPPRESS LINE FEED
- X`09CALL PROMPT (LINE,ICH)
- X`09GOTO 27
- XC*
- X ENTRY CRAMDMP (M)
- XC--------INSERT FINAL ENTRY AND DUMP BUFFER
- X`09K=80
- X`09GO TO 22
- XC*
- X`09ENTRY CRMDPS(M,IK)
- X`09K=IK
- X22 IDUMP=1
- X GO TO 5
- X21`09IF(IDUMP.EQ. 0) RETURN`20
- X ENTRY CREND
- XC--------DUMP BUFFER AND GO TO NEW LINE`20
- X 25 CALL PROUT(LINE,ICH)
- X27 DO 30 L=1,ICH`20
- X 30 LINE(L)=0
- X ICH=1
- X RETURN
- X END`20
- X SUBROUTINE CRAMF(XX,W,D)
- X`09BYTE CF(10),CS(10)
- X`09INTEGER*4 I
- X INTEGER W,D
- X NEG=0
- X`09DO 5 N=1,10
- X5`09CF(N)=0
- X X=XX
- X IF(X .GE. 0) GO TO 10
- X X=-XX
- X NEG=1
- X 10 N=0`20
- X IF(D .EQ. 0) GO TO 30
- XC--------CONVERT FRACTIONAL PART TO ASCII
- X I=X*10**D+.5
- X DO 20 N=1,D
- X J=MOD(I,10)
- X`09CF(N)=1H0+J
- X 20 I=I/10
- XC--------INSERT DECIMAL POINT`20
- X N=D+1
- X`09CF(N)=1H.
- XC--------CONVERT INTEGRAL PART TO ASCII
- X 30 J=MOD(I,10)
- X N=N+1
- X`09CF(N)=1H0+J
- X I=I/10
- X IF(I .NE. 0) GO TO 30
- XC--------INSERT MINUS SIGN IF NEEDED
- X IF(NEG .EQ. 0) GO TO 40`20
- X N=N+1
- X`09CF(N)=1H-
- XC--------PAD WITH BLANKS TO TOTAL OF <W> CHARACTERS
- X 40 IF(N .GE. W .OR. N .GE. 9) GO TO 43
- X N=N+1
- X`09CF(N)=1H`20
- X GO TO 40
- X43`09DO 45 I=1,N
- X45`09CS(I)=CF(N-I+1)
- X`09CS(N+1)=0
- X 50 CALL CRAM(CS)`20
- X RETURN
- X END`20
- X SUBROUTINE CRAMI(II,W)
- X`09BYTE CI(10),CS(10)
- X INTEGER W
- X I=II
- X NEG=0
- X IF(I .GE. 0) GO TO 10
- X I=-II
- X NEG=1
- XC--------CONVERT THE NUMBER ITSELF TO ASCII
- X10`09DO 15 N=1,10
- X15`09CI(N)=0
- X N=0`20
- X 20 J=MOD(I,10)
- X N=N+1
- X`09CI(N)=1H0+J
- X I=I/10
- X IF(I .NE. 0) GO TO 20
- XC--------INSERT MINUS SIGN IF NEEDED
- X 30 IF(NEG .EQ. 0) GO TO 40`20
- X N=N+1
- X`09CI(N)=1H-
- XC--------PAD WITH BLANKS TO TOTAL OF <W> CHARACTERS
- X 40 IF(N .GE. W .OR. N .GE. 9) GO TO 43
- X N=N+1
- X`09CI(N)=1H`20
- X GO TO 40
- X43`09DO 45 I=1,N
- X45`09CS(I)=CI(N-I+1)
- X`09CS(N+1)=0
- X`09CALL CRAM(CS)`20
- X RETURN
- X END`20
- $ CALL UNPACK TRCRAM.FOR;1 1862929249
- $ create 'f'
- X SUBROUTINE CRAMEN(II)`20
- X`09ENTRY CRAMENA(II)
- X`09INCLUDE 'TREKCOM/NOLIST'
- X`09LOGICAL*1 II
- X IF(II .EQ. IHR) GO TO 10
- X IF(II .EQ. IHK) GO TO 20
- X IF(II .EQ. IHC) GO TO 30
- X IF(II .EQ. IHS) GO TO 40
- X IF(II .EQ. IHSTAR) GO TO 50`20
- X IF(II .EQ. IHP) GO TO 60
- X IF(II .EQ. IHB) GO TO 70
- X IF(II .EQ. '@') GO TO 80
- X IF(II .EQ. IHT) GO TO 85
- X IF(II-2) 90,100,110`20
- X 10 CALL CRAM(7HROMULAN)`20
- X`09RETURN
- X 20 CALL CRAM(7HKLINGON)`20
- X`09RETURN
- X 30 CALL CRAM(9HCOMMANDER)`20
- X`09RETURN
- X 40 CALL CRAM(15HSUPER-COMMANDER)
- X`09RETURN
- X 50 CALL CRAM(4HSTAR)
- X`09RETURN
- X 60 CALL CRAM(6HPLANET)
- X`09RETURN
- X 70 CALL CRAM(8HSTARBASE)
- X`09RETURN
- X 80 CALL CRAM(10HBLACK HOLE)`20
- X`09RETURN
- X85 CALL CRAM(7HTHOLIAN) `20
- X`09RETURN
- X 90 CALL CRAM(1HM)`20
- X`09RETURN
- X 100 CALL CRAM(1HN)`20
- X`09RETURN
- X 110 CALL CRAM(1HO)`20
- X`09RETURN
- X END`20
- $ CALL UNPACK TRCRAMEN.FOR;1 909534196
- $ create 'f'
- X SUBROUTINE CRAMLOC(KEY,IX,IY)`20
- X IF(KEY .EQ. 1) CALL CRAM(9H QUADRANT)`20
- X IF(KEY .EQ. 2) CALL CRAM(7H SECTOR)`20
- X CALL CRAM(1H )
- X CALL CRAMI(IX,0)
- X CALL CRAM(3H - )
- X CALL CRAMI(IY,0)
- X RETURN
- X END`20
- $ CALL UNPACK TRCRAMLOC.FOR;1 1579835490
- $ create 'f'
- X SUBROUTINE CRAMSHP
- X`09INCLUDE 'TREKCOM/NOLIST'
- X`09BYTE ISHIP,ESC,BELLS(16)
- X EQUIVALENCE(CRACKS(1),HIT),(CRACKS(5),IESC) ,(SHIP,ISHIP)
- X`09EQUIVALENCE (IESC,ESC)
- X`09DATA BELLS/7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7/
- X IF(ISHIP .EQ. IHE) CALL CRAM(10HENTERPRISE)
- X IF(SHIP .EQ. IHF) CALL CRAM(13HFAERIE QUEENE)`20
- X RETURN
- XC*`20
- X ENTRY CRAM3AS`20
- XC*`20
- X CALL CRAM(3H***)
- X RETURN
- XC*`20
- X ENTRY STARS`20
- XC*`20
- X CALL PROUT(`20
- X + 54H******************************************************,54)`20
- X RETURN
- XC*`20
- X ENTRY REDALRT`20
- XC*`20
- XC-------RING THE BELL BEFORE THE RED ALERT `20
- X`09CALL PROUT(BELLS,16)
- X CALL PROUT(25H***RED ALERT! RED ALERT!,25)
- X RETURN
- XC*`20
- X ENTRY BEGPARD`20
- XC*`20
- X CALL PROUT(27H BEG YOUR PARDON, CAPTAIN? ,27)
- X RETURN
- XC*`20
- X ENTRY MANORA
- XC*`20
- X CALL PROMPT(26HMANUAL OR AUTOMATIC? ,26)
- X RETURN
- XC*`20
- X ENTRY CASULTY`20
- XC*`20
- X ICAS=HIT*RANF(0)*0.015
- X IF(ICAS .LT. 2) RETURN
- X CASUAL=CASUAL+ICAS
- X CALL CRAM(42HMC COY: "SICKBAY TO BRIDGE. WE JUST HAD )
- X CALL CRAMI(ICAS,0)
- X CALL CRAMDMP(13H CASUALTIES.")
- X RETURN
- XC*`20
- X ENTRY RESETD
- XC*`20
- X CALL NEWCOND
- X IF(NENHERE .EQ. 0) RETURN`20
- X DO 10 L=1,NENHERE`20
- X 10 KDIST(L)=SQRT( FLOAT((SECTX-KX(L))**2 +(SECTY-KY(L))**2))`20
- X RETURN
- XC*`20
- X ENTRY LEAVE`20
- XC*`20
- X`09KX(IESC)=KX(NENHERE)
- X`09KY(IESC)=KY(NENHERE)
- X KDIST(IESC)=KDIST(NENHERE)
- X KPOWER(IESC)=KPOWER(NENHERE)
- X KLHERE=KLHERE-1`20
- X NENHERE=NENHERE-1`20
- X IF(CONDIT .NE. IHDOCKD )CALL NEWCOND
- X RETURN
- XC*`20
- X ENTRY SOS`20
- XC*`20
- XC-------- IESC PASSES WHICH KIND OF COMMANDER IS ATTACKING
- X`09IF(ESC .EQ. IHS) GO TO 20
- X`09ICSOS=0
- X`09IF(DAMAGE(9) .GT. 0) RETURN`20
- X`09ICSOS=1
- X`09IX=BATX`20
- X`09IY=BATY
- X`09DDAY=FUTURE(5)
- X`09GO TO 30
- X 20`09ISSOS=0
- X`09IF(DAMAGE(9) .GT. 0) RETURN`20
- X`09ISSOS=1
- X`09IX=ISX`20
- X`09IY=ISY
- X`09DDAY=FUTURE(7)
- X 30`09CALL SKIP(1)
- X CALL CRAM(37HLT. UHURA: "CAPTAIN, THE STARBASE IN)`20
- X CALL CRAMLOC(1,IX,IY)`20
- X CALL CREND
- X CALL CRAM(22H REPORTS IT IS UNDER )
- X`09CALL CRAMEN(ESC)
- X`09CALL CRAMDMP(8H ATTACK.)
- X CALL CRAM(32H IT CAN SURVIVE UNTIL STARDATE )
- X`09CALL CRAMF(DDAY ,0,1)
- X`09CALL CRAMDMP(3H .")
- X IF(RESTING .EQ. 0) RETURN`20
- X CALL SKIP(1)
- X CALL PROMPT(55HMR. SPOCK: CAPTAIN, SHALL WE CANCEL THE REST PERIOD
- X`091? ,55)
- X IF(JA(DUMMY)) RESTING=0`20
- X RETURN `20
- X END`20
- $ CALL UNPACK TRCRAMSHP.FOR;1 625813761
- $ create 'f'
- X`09SUBROUTINE CRAMSP(NUM,STRING)
- XC
- XC`093-MAY-79 (NEW ROUTINE)
- XC`09CRAM SINGULAR OR PLURAL
- XC`09CRAMSP CRAMS THE INTEGER NUMBER 'NUM', FOLLOWED BY THE ASCII STRING
- XC`09'STRING', FOLLOWED BY AN 'S' IF NUM .NE. 1.
- XC
- X`09BYTE STRING(80),SEND(10),PEND(10)
- XC
- X`09CALL CRAMI(NUM,0)
- X`09CALL CRAM(' ')
- X`09CALL CRAM(STRING)
- X`09IF(NUM.NE.1)CALL CRAM('S')
- X`09RETURN
- XC
- X`09ENTRY CRAMSPI(NUM,STRING,SEND,PEND)
- XC
- XC`09CRAM SINGULAR OR PLURAL IRREGULAR
- +-+-+-+-+-+-+-+- END OF PART 6 +-+-+-+-+-+-+-+-
-