├── ALT.COD ├── BASBLD.FOR ├── BASKIL.FOR ├── BASPHA.FOR ├── BLKDAT.FOR ├── BUILD.FOR ├── C.ICD ├── CAN.MIC ├── CAN1.CMD ├── CAPTUR.FOR ├── CCOM.ICD ├── CHECK.FOR ├── CHKPNT.FOR ├── CISHNG.MAC ├── CLRBUF.FOR ├── CMP.CMD ├── COM1.CMD ├── COM2.CMD ├── CONTEN.MIC ├── CONTEN.TEC ├── COPYING ├── CUST.CMD ├── CXRF.ICD ├── D.CMD ├── DAMAGE.FOR ├── DECCMP.CMD ├── DECFIX.MAC ├── DECNWS.RNO ├── DECWAR.CMD ├── DECWAR.COM ├── DECWAR.DOC ├── DECWAR.FOR ├── DECWAR.HLP ├── DECWAR.IMP ├── DECWAR.LTR ├── DECWAR.MAP ├── DECWAR.NDX ├── DECWAR.NWS ├── DECWAR.RNH ├── DECWAR.TAP ├── DECWR.ICD ├── DEFINE.FOR ├── DEFINE.HLP ├── DIST.FOR ├── DOCK.FOR ├── DSHIP.FOR ├── DW2.FOR ├── ENDGAM.FOR ├── ENERGY.FOR ├── ENTER.MAC ├── EXTERN.FOR ├── EXTERN.TEC ├── FREE.FOR ├── GETCMD.FOR ├── GETLIN.MAC ├── HIGH.FOR ├── HISEG.FOR ├── HISEG.TEC ├── HLP.COM ├── JUMP.FOR ├── KQSRCH.FOR ├── L.CMD ├── L.MIC ├── LABCRE.ICD ├── LDEB.CMD ├── LINE.CMD ├── LIST.FOR ├── LOAD.CMD ├── LOCAL.FOR ├── LOCATE.FOR ├── LOFCHK.MAC ├── LOW.FOR ├── LOWSEG.FOR ├── LOWSEG.TEC ├── LSTFLG.FOR ├── LSTOBJ.FOR ├── LSTOUT.FOR ├── LSTSCN.FOR ├── LSTSUM.FOR ├── LSTUPD.FOR ├── LSTVAR.FOR ├── MAKHLP.MIC ├── MAKNWS.MIC ├── MOVE.FOR ├── MSC.COM ├── MSG.MAC ├── NDX.TEC ├── NETREV.CMD ├── NOVA.FOR ├── OUTHDB.FOR ├── OUTHIT.FOR ├── OUTMSG.FOR ├── PAGE.TCO ├── PAGE.TEC ├── PARAM.FOR ├── PARAM.TEC ├── PASWRD.FOR ├── PDWDOC.CMD ├── PDWDOC.XF4 ├── PHACON.FOR ├── PLACE.FOR ├── PLNATK.FOR ├── PLNRMV.FOR ├── POINTS.FOR ├── PRIDIS.FOR ├── PRLOC.FOR ├── PROMPT.FOR ├── RADIO.FOR ├── README.md ├── REPAIR.FOR ├── ROMDRV.FOR ├── ROMSTR.FOR ├── ROMTOR.FOR ├── SAKHLP.MIC ├── SCAN.FOR ├── SECWAR.HLP ├── SET.FOR ├── SETEXT.FOR ├── SETEXT.TEC ├── SETMSG.MAC ├── SETUP.FOR ├── SHIELD.FOR ├── SNOVA.FOR ├── STATUS.FOR ├── TECSAV.INF ├── TELL.FOR ├── TIME.FOR ├── TO.DO ├── TORDAM.FOR ├── TORP.COD ├── TORP.FOR ├── TRACTR.FOR ├── TRAP.FOR ├── TTY.MAC ├── TYPE.FOR ├── USERS.FOR ├── W.MAC ├── WARMAC.MAC ├── changes └── utexas ├── .gitignore ├── docs ├── DECWAR22.HLP ├── DECWAR22.NWS ├── DECWAR23CIS.HLP ├── DECWAR23CIS.NWS ├── app0-foundations.md ├── app1-tops10-versions.md ├── app2-tap-files.md ├── app3-sos.md ├── app4-telnet.md ├── notes.md ├── readme.md ├── sec1-boot-disks.md ├── sec2-kermit.md ├── sec3-prep-source-files.md ├── sec4-compiling-decwar.md ├── sec4a-build-files.md ├── sec4b-continuation-line-issue.md ├── sec5-minimalist-walkthrough.md ├── sec6-scripted-tops10-setup.md ├── sec7-decwar-tape-file.md ├── sec8-f66-vs-f77.md └── sec9-utexas-primordial-tape.md ├── msc ├── back10.c ├── back10.h ├── create-archive-project-utexas ├── create-tape-utexas23-reconstruction ├── decwar.ini ├── kermit-into-dec10.sh ├── readme.md ├── runfor └── runmac ├── readme.md ├── robots ├── brain.py ├── cli.py ├── definitions.py ├── readme.md └── run ├── simh ├── boot-from-disk.ini ├── create-boot-disk-from-tape.ini ├── for-runner.ini ├── fort10.do ├── fort10v6.do ├── initload.do ├── kermit.do ├── mac-runner.ini ├── mongen.do ├── readme.md ├── refresh.do └── utexas.do └── utexas23-reconstruction ├── DECWAR.COM ├── DECWAR.FOR ├── EXTERN.FOR ├── HIGH.FOR ├── HISEG.FOR ├── LOW.FOR ├── LOWSEG.FOR ├── LSTVAR.FOR ├── MSG.MAC ├── PARAM.FOR ├── SETEXT.FOR ├── SETMSG.MAC ├── SETUP.FOR ├── WARMAC.MAC ├── hlp ├── DECNWS.RNO ├── DECWAR.GRP ├── DECWAR.HLP ├── DECWAR.IMP ├── DECWAR.LTR ├── DECWAR.NWS ├── DECWAR.RNH ├── DECWAR.TAP ├── DEFINE.HLP ├── HLP.COM ├── MAKHLP.MIC └── MAKNWS.MIC ├── msc ├── DEFINE.FOR ├── MSC.COM ├── OUTHDB.FOR └── TTY.MAC └── tec ├── EXTERN.TEC ├── HISEG.TEC ├── L.MIC ├── LOWSEG.TEC ├── NDX.TEC ├── PAGE.TEC ├── PARAM.TEC ├── SETEXT.TEC └── TECSAV.INF /BASBLD.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine is activated whenever any player (or the Romulan) 22 | C makes a time-consuming move. It's purpose is to strengthen 23 | C weakened starbases of the opposite team. The Romulan rebuilds 24 | C both side's starbases. The percentage gain in base energy per 25 | C BASBLD call is reduced as the number of players increase. 26 | 27 | subroutine BASBLD 28 | include 'param/nolist' 29 | include 'hiseg/nolist' 30 | include 'lowseg/nolist' 31 | include 'extern/nolist' 32 | 33 | ib = 1 ; ie = 2 ; n = 50 / (numply + 1) 34 | if (.not. PLAYER) goto 100 !Romulan? 35 | if (team .eq. 1) ib = 2 ; ie = ib 36 | n = 25 / numsid(team) 37 | 100 do 300 j = ib, ie 38 | do 200 i = 1, KNBASE 39 | if (base(i,3,j) .le. 0) goto 200 !is base dead? 40 | base(i,3,j) = min0 (base(i,3,j) + n, 1000) 41 | 200 continue 42 | 300 continue 43 | return 44 | 45 | end 46 | -------------------------------------------------------------------------------- /BASKIL.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine is activated whenever a starbase or captured 22 | C planet is destroyed. The purpose of the routine is to check 23 | C whether any adjacent ships were docked at this object at the 24 | C time of the attack, and reset their ship's condition to RED 25 | C if true. ITYPE = team of destroyed port. 26 | 27 | subroutine BASKIL (itype) 28 | include 'param/nolist' 29 | include 'hiseg/nolist' 30 | include 'lowseg/nolist' 31 | include 'extern/nolist' 32 | 33 | ib = 1 ; ie = KNPLAY 34 | if (itype .eq. 1) ie = KNPLAY / 2 35 | if (itype .eq. 2) ib = (KNPLAY / 2) + 1 36 | 37 | do 400 i = ib, ie 38 | if (.not. docked(i)) goto 400 !is he docked? 39 | 40 | *.........Check for adjacent starbase 41 | 42 | if (nbase(itype) .le. 0) goto 200 !any bases alive? 43 | do 100 j = 1, KNBASE 44 | if (base(j,3,itype) .le. 0) goto 100 45 | if (ldis(shpcon(i,KVPOS), shpcon(i,KHPOS), 46 | + base(j,KVPOS,itype), base(j,KHPOS,itype), 1)) goto 400 47 | 100 continue 48 | 49 | *.........Check for adjacent friendly planet 50 | 51 | 200 if (numcap(itype) .le. 0) goto 400 !any friendly planets? 52 | do 300 j = 1, nplnet 53 | if ((itype + DXNPLN) .ne. dispc(locpln(j,KVPOS), 54 | + locpln(j,KHPOS))) goto 300 55 | if (ldis(shpcon(i,KVPOS), shpcon(i,KHPOS), locpln(j,KVPOS), 56 | + locpln(j,KHPOS), 1)) goto 400 57 | 300 continue 58 | 59 | *.........No adjacent friendly port, undock player. 60 | 61 | shpcon(i,KSPCON) = RED 62 | docked(i) = .FALSE. 63 | 400 continue 64 | return 65 | 66 | end 67 | -------------------------------------------------------------------------------- /BASPHA.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine controls the phaser defenses of the starbases. 22 | C These defenses are activated whenever a player (or the Romulan) 23 | C performs a time-consuming move. A player only activates the 24 | C opposite team's starbases, with the Romulan activating both 25 | C side's bases. 26 | 27 | subroutine BASPHA 28 | include 'param/nolist' 29 | include 'hiseg/nolist' 30 | include 'lowseg/nolist' 31 | include 'extern/nolist' 32 | 33 | jb = 1 ; je = 2 34 | if (.not. PLAYER) goto 100 !Romulan? 35 | jb = 3 - team ; je = jb 36 | 37 | 100 do 500 i = jb, je 38 | if (nbase(i) .le. 0) goto 500 !active bases? 39 | do 400 j = 1, KNBASE 40 | if (base(j,3,i) .le. 0) goto 400 !base alive? 41 | 42 | *...........Attack the players 43 | 44 | do 300 k = (KNPLAY/2) * (2 - i) + 1, (KNPLAY/2) * (3 - i) 45 | if (.not. alive(k)) goto 300 !player dead? 46 | if (disp(shpcon(k,KVPOS), shpcon(k,KHPOS)) .le. 0) 47 | + goto 300 !player cloaked? 48 | if (.not. ldis(shpcon(k,KVPOS), shpcon(k,KHPOS), 49 | + base(j,KVPOS,i), base(j,KHPOS,i), 4)) goto 300 !player in range? 50 | Vfrom = base(j,KVPOS,i) ; Hfrom = base(j,KHPOS,i) 51 | Vto = shpcon(k,KVPOS) ; Hto = shpcon(k,KHPOS) 52 | dispto = (DXFSHP + (2 - i)) * 100 + k ; iwhat = 1 53 | dispfr = (DXFBAS + (i - 1)) * 100 + j ; shjump = 0 54 | id = pdist (Vfrom, Hfrom, Vto, Hto) 55 | call phadam (3-i, k, id, 200/numply, .FALSE.) !hit him! 56 | tmscor(i,KPEDAM) = tmscor(i,KPEDAM) + ihita 57 | shstfr = base(j,3,i) ; shcnfr = 1 58 | if (klflg .ne. 0) tmscor(i,KPEKIL) = tmscor(i,KPEKIL) + 5000 59 | 200 call pridis (shpcon(k,KVPOS), shpcon(k,KHPOS), KRANGE, 60 | + team, 0) 61 | call pridis (shpcon(k,KVPOS), shpcon(k,KHPOS), 4, 0, 1) 62 | dbits = dbits .or. bits(k) 63 | call makhit !send hit message 64 | 300 continue 65 | 66 | *...........Attack the Romulan (if he's alive) 67 | 68 | if (.not. ROM) goto 400 !Romulan alive? 69 | if (.not. ldis (locr(KVPOS), locr(KHPOS), base(j,KVPOS,i), 70 | + base(j,KHPOS,i), 4)) goto 400 !Romulan in range? 71 | dispto = DXROM * 100 ; shjump = 0 72 | dispfr = (DXFBAS + (i - 1)) * 100 + j ; iwhat = 1 73 | Vfrom = base(j,KVPOS,i) ; Hfrom = base(j,KHPOS,i) 74 | Vto = locr(KVPOS) ; Hto = locr(KHPOS) 75 | id = pdist (Vfrom, Hfrom, Vto, Hto) 76 | call pharom (200/numply, id) !hit Romulan! 77 | shstfr = base(j,3,i) ; shcnfr = 1 78 | shstto = erom ; shcnto = 1 79 | call pridis (locr(KVPOS), locr(KHPOS), KRANGE, 0, 0) 80 | tmscor(i,KPRKIL) = tmscor(i,KPRKIL) + ihita 81 | if (.not. ROM) tmscor(i,KPRKIL) = tmscor(i,KPRKIL) + 5000 82 | call makhit !send hit message 83 | 400 continue 84 | 500 continue 85 | return 86 | 87 | end 88 | -------------------------------------------------------------------------------- /BLKDAT.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | BLOCK DATA 22 | include 'param/nolist' 23 | include 'hiseg/nolist' 24 | include 'lowseg/nolist' 25 | 26 | data (device(i), i = 1, KNDEV)/ 27 | + 2HSH, 2HWA, 2HIM, 2HLS, 2HTO, 2HPH, 2HCO, 2HRA, 2HTR / 28 | 29 | data ((isaydo(i,j), i = 1, 2), j = 1, KNCMD)/ 30 | + 'BAses', ' ', 31 | + 'BUild', ' ', 32 | + 'Captu', 're ', 33 | + 'DAmag', 'es ', 34 | + 'DOck ', ' ', 35 | + 'Energ', 'y ', 36 | + 'Gripe', ' ', 37 | + 'Help ', ' ', 38 | + 'Impul', 'se ', 39 | + 'List ', ' ', 40 | + 'Move ', ' ', 41 | + 'News ', ' ', 42 | + 'PHase', 'rs ', 43 | + 'PLane', 'ts ', 44 | + 'POint', 's ', 45 | + 'Quit ', ' ', 46 | + 'RAdio', ' ', 47 | + 'REpai', 'r ', 48 | + 'SCan ', ' ', 49 | + 'SEt ', ' ', 50 | + 'SHiel', 'ds ', 51 | + 'SRsca', 'n ', 52 | + 'STatu', 's ', 53 | + 'SUmma', 'ry ', 54 | + 'TArge', 'ts ', 55 | + 'TEll ', ' ', 56 | + 'TIme ', ' ', 57 | + 'TOrpe', 'dos ', 58 | + 'TRact', 'or ', 59 | + 'TYpe ', ' ', 60 | + 'Users', ' ', 61 | + '*Debu' ,'g ', 62 | + '*Pass' ,'word '/ 63 | 64 | data ((xhelp(i,j), i = 1, 2), j = 1, KNXTR)/ 65 | + 'CTL-C', ' ', 66 | + ' ', ' ', 67 | + 'INTRO', ' ', 68 | + 'HInts', ' ', 69 | + 'INput', ' ', 70 | + 'Outpu', 't ', 71 | + 'PAuse', 's ', 72 | + 'PRega', 'me '/ 73 | 74 | data ((ttydat(i,j), i = 1, 2), j = 1, KNTTY)/ 75 | + 'ACT-I', 'V ', 76 | + 'ADM-2', ' ', 77 | + 'ADM-3', 'a ', 78 | + 'DATAP', 'OINT ', 79 | + 'ACT-V', ' ', 80 | + 'SOROC', ' ', 81 | + 'BEEHI', 'VE ', 82 | + 'CRT ', ' '/ 83 | 84 | data ((names(i,j), j = 1, 3), i = 1, KNPLAY)/ 85 | + 'Lexin', 'gton ', ' L', 86 | + 'Nimit', 'z ', ' N', 87 | + 'Savan', 'nah ', ' S', 88 | + 'Vulca', 'n ', ' V', 89 | + 'Yorkt', 'own ', ' Y', 90 | + 'Cobra', ' ', ' C', 91 | + 'Demon', ' ', ' D', 92 | + 'Hawk ', ' ', ' H', 93 | + 'Jacka', 'l ', ' J', 94 | + 'Wolf ', ' ', ' W'/ 95 | 96 | data (bits(i), i = 1, 10)/ 97 | + "1, "2, "4, "10, "20, "40, "100, "200, "400, "1000/ 98 | 99 | data (sbits(i), i = 0, 2)/ NEUBIT , FEDBIT , EMPBIT / 100 | 101 | data (cmdbts(i), i = 1, KNCMD)/ 102 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/ 104 | 105 | end 106 | -------------------------------------------------------------------------------- /C.ICD: -------------------------------------------------------------------------------- 1 | limit sru 0 2 | compile/c lofchk 3 | compile/c setmmn 4 | compile/c warmac,warver,cishng,msg,setmsg,(nowarn)/f10 setup,@decwar,low,high 5 | r link 6 | @l 7 | r link 8 | @ldeb 9 | -------------------------------------------------------------------------------- /CAN.MIC: -------------------------------------------------------------------------------- 1 | .r link 2 | */debug 3 | *low/seg:low 4 | *high/seg:high 5 | */seg:def 6 | *decwar,blkdat,basbld,baskil,baspha,build,captur,check,chkpnt,clrbuf 7 | *damage,dist,dock,dship,endgam,energy,free,getcmd,jump,kqsrch,list 8 | *locate,lstscn,lstflg,lstupd,lstout,lstsum,lstobj,move,nova,outhit,outmsg 9 | *paswrd,phacon,place,plnatk,plnrmv,points,pridis,prloc,prompt,radio,repair 10 | *romdrv,romstr,romtor,scan,set,shield,snova,status,tell,time,tordam,torp,tractr 11 | *trap,type,users 12 | *msg 13 | *warmac,warver 14 | *sys:forlib/sea/seg:def 15 | *setup/seg:low 16 | *setmsg 17 | *sys:forlib/sea/seg:low 18 | */g 19 | -------------------------------------------------------------------------------- /CAN1.CMD: -------------------------------------------------------------------------------- 1 | decwar/save 2 | low/seg:low 3 | high/seg:high 4 | /seg:def 5 | decwar,blkdat,basbld,baskil,baspha,build,captur,check,chkpnt,clrbuf 6 | damage,dist,dock,dship,endgam,energy,free,getcmd,jump,kqsrch,list 7 | locate,lstscn,lstflg,lstupd,lstout,lstsum,lstobj,move,nova,outhit,outmsg 8 | paswrd,phacon,place,plnatk,plnrmv,points,pridis,prloc,prompt,radio,repair 9 | romdrv,romstr,romtor,scan,set,shield,snova,status,tell,time,tordam,torp,tractr 10 | trap,type,users 11 | msg 12 | warmac,warver 13 | sys:forlib/sea/seg:def 14 | setup/seg:low 15 | setmsg 16 | sys:forlib/sea/seg:low 17 | /g 18 | -------------------------------------------------------------------------------- /CCOM.ICD: -------------------------------------------------------------------------------- 1 | limit sru 0 2 | compile/c/x lofchk,warmac,cishng,setmmn 3 | compile/c/s msg,setmsg 4 | compile/c/s/print (nowarn)/f10 setup,@decwar,low,high 5 | r glob 6 | low,high,decwar,blkdat,basbld,baskil,baspha,build,captur,check,chkpnt,clrbuf 7 | damage,dist,dock,dship,endgam,energy,free,getcmd,jump,kqsrch,list 8 | locate,lstscn,lstflg,lstupd,lstout,lstsum,lstobj,move,nova,outhit,outmsg 9 | paswrd,phacon,place,plnatk,plnrmv,points,pridis,prloc,prompt,radio,repair 10 | romdrv,romstr,romtor,scan,set,shield,snova,status,tell,time,tordam,torp,tractr 11 | trap,type,users 12 | warmac,cishng,lofchk,setup,setmsg,sys:forlib/l 13 | decwar.glb=^$ 14 | ^C 15 | $r link 16 | @l 17 | r link 18 | @ldeb 19 | ^C 20 | $printnh decwar.map,decwar.glb 21 | -------------------------------------------------------------------------------- /CHECK.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine is used by MOVE, TORP, ROMDRV, and ROMTOR to 22 | C check the projected path of a ship or torpedo for objects 23 | C in the way. 24 | C INPUT 25 | C H,V Initial coordinate 26 | C DH,DV Relative V and H displacement (for direction only) 27 | C Dist Maximum V or H displacement (distance to travel) 28 | C Displ Displacement per sector (abs(Displ) < 0.50) 29 | C 30 | C OUTPUT 31 | C H1,V1 Final location 32 | C H2,V2 Location of object that blocked path, else final location 33 | C Dcode DISP code of object that blocked path, else 0 34 | C DSH,DSV Delta H and Delta V to add to object to get displacement 35 | 36 | subroutine CHECK (H, V, dH, dV, dist, displ) 37 | include 'param/nolist' 38 | include 'hiseg/nolist' 39 | include 'lowseg/nolist' 40 | include 'extern/nolist' 41 | common /chkout/ H1, V1, H2, V2, dcode, dHs, dVs 42 | real rH, rV, displ, dHs, dVs 43 | 44 | H1 = H ; V1 = V ; dcode = 0 45 | if (iabs(dV) .gt. iabs(dH)) goto 400 46 | 47 | inc = isign (1,dH) ; dHs = float (inc) 48 | dVs = float(dV) / float(iabs(dH)) + displ 49 | H2 = H ; rV = float(V) 50 | do 300 i = 1, dist 51 | H2 = H2 + inc ; if (.not. ingal(5,H2)) goto 900 52 | rV = rV + dVs 53 | call chkpnt (rV, iV1, iV2) 54 | if (.not. ingal(iV1,5)) goto 900 55 | V2 = iV1 56 | if (disp(H2,V2) .gt. 0) goto 800 !ran into something 57 | if (iV2 .eq. 0) goto 100 58 | if (.not. ingal(iV2,5)) goto 900 59 | V2 = iV2 60 | if (disp(H2,V2) .gt. 0) goto 800 !ran into something 61 | V1 = int(rV + ran(0)) 62 | goto 200 63 | 100 V1 = int(rV + .5) 64 | 200 H1 = H2 65 | 300 continue 66 | V2 = V1 67 | return !made it to destination 68 | 69 | 400 inc = isign (1, dV) ; dVs = float (inc) 70 | dHs = float(dH) / float(iabs(dV)) + displ 71 | V2 = V ; rH = float(H) 72 | do 700 i = 1, dist 73 | V2 = V2 + inc ; if (.not. ingal(V2,5)) goto 900 74 | rH = rH + dHs 75 | call chkpnt (rH, iH1, iH2) 76 | if (.not. ingal(5,iH1)) goto 900 77 | H2 = iH1 78 | if (disp(H2,V2) .gt. 0) goto 800 !ran into something 79 | if (iH2 .eq. 0) goto 500 80 | if (.not. ingal(5,iH2)) goto 900 81 | H2 = iH2 82 | if (disp(H2,V2) .gt. 0) goto 800 !ran into something 83 | H1 = int(rH + ran(0)) 84 | goto 600 85 | 500 H1 = int(rH + .5) 86 | 600 V1 = V2 87 | 700 continue 88 | H2 = H1 89 | return !made it to destination 90 | 91 | 800 dcode = disp(H2,V2) !ran into something 92 | return 93 | 94 | 900 H2 = H1 ; V2 = V1 !out of the galaxy 95 | return 96 | 97 | end 98 | -------------------------------------------------------------------------------- /CHKPNT.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine is used by CHECK to determine the next position 22 | C on the display board to check for objects. 23 | C If the fractional part of C is greater than 0.60, return 24 | C INT(C)+1 in C1, and 0 in C2 25 | C If the fractional part of C is less than 0.40, return 26 | C INT(C) in C1, and 0 in C2 27 | C Otherwise, return INT(C) in C1 and INT(C)+1 in C2 28 | 29 | subroutine CHKPNT (c, c1, c2) 30 | include 'param/nolist' 31 | real c 32 | 33 | if (iabs (mod (int(c*100), 100) - 50) .lt. 10) goto 100 34 | 35 | c1 = int(c + .5) 36 | c2 = 0 37 | return 38 | 39 | 100 c1 = int(c) 40 | c2 = c1 + 1 41 | return 42 | 43 | end 44 | -------------------------------------------------------------------------------- /CISHNG.MAC: -------------------------------------------------------------------------------- 1 | ; This file is part of Decwar. 2 | ; Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | ; Computation Center and Harris Newman. 4 | 5 | ; This program is free software; you can redistribute it and/or modify 6 | ; it under the terms of the GNU General Public License as published by 7 | ; the Free Software Foundation; either version 3, or (at your option) 8 | ; any later version. 9 | 10 | ; This program is distributed in the hope that it will be useful, 11 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ; GNU General Public License for more details. 14 | 15 | ; You should have received a copy of the GNU General Public License 16 | ; along with this program; if not, write to the Free Software 17 | ; Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | ; 02110-1301, USA. 19 | 20 | 21 | Title cishng - establish a hang-up intercept (CIS monitor) 22 | 23 | Search SYSMAC 24 | twoseg 25 | reloc 400000 26 | opdef getnam [calli -14] 27 | OPDEF STINI. [CALLI -162] 28 | OPDEF SCHNA. [CALLI -163] 29 | OPDEF SCHND. [CALLI -164] 30 | OPDEF SEVTA. [CALLI -165] 31 | OPDEF SEVTD. [CALLI -166] 32 | OPDEF DEBRK. [CALLI -174] 33 | OPDEF SRISW. [CALLI -175] 34 | 35 | Internal cishng 36 | Routine cishng 37 | DMOVE TA,[ -1 38 | [ 2,,CHNTBL 39 | 2,,LVLTBL 40 | 0,,0 41 | ] 42 | ] 43 | STINI. TA, 44 | JRST [OUTSTR [ASCIZ " 45 | ? STINI. failed! 46 | "] 47 | EXIT] 48 | DMOVE TA,[ -1 49 | 3,,1 50 | ] 51 | SEVTA. TA, 52 | JRST SEVFLD 53 | dmove ta,[ -1 54 | 104,,2 55 | ] 56 | sevta. ta, 57 | jrst sevfld 58 | DMOVE TA,[ -1 59 | 700000,,0 60 | ] 61 | SCHNA. TA, 62 | JRST SCHFLD 63 | RETURN 64 | ;;; 65 | havenq: setom hv.lok ; tell lock. routine that we have resource 66 | movem $v,save$v 67 | seto $v, 68 | wake $v, ; wake the lock. routine immediately 69 | jfcl 70 | move $v,save$v 71 | debrk. ; return to lock. 72 | 73 | hang: setom hungup## ; set hung up flag 74 | debrk. 1, ; debreak and retain control 75 | jfcl 76 | movem $v,hang$v ; save a register 77 | movem ta,hangta ; and another 78 | move $v,lvltbl ; if executing a ttcall 79 | hang.0: move ta,0($v) ; get the current instruction being executed 80 | camn ta,[output 0,] ; or "output tty," 81 | jrst hang.1 82 | and ta,[777000,,0] ; mask everything but instruction bits 83 | camn ta,[xct] ; if doing an execute 84 | jrst [hrrz $v,0($v) ; then get the address of that instr. 85 | cain $v,$v ; if one of the saved regs 86 | movei $v,hang$v ; then map it into proper one 87 | cain $v,ta 88 | movei $v,hangta 89 | jrst hang.0] ; and look at the xct'ed instr. 90 | camn ta,[ttcall] ; if doing a ttcall 91 | hang.1: aos lvltbl ; then return to the ttcall + 1 92 | seto $v, ; wake any hibernate going on 93 | wake $v, 94 | jfcl 95 | move $v,hang$v 96 | move ta,hangta 97 | jrstf @lvltbl 98 | 99 | SCHFLD: OUTSTR [ASCIZ " 100 | ? SCHNA. failed! 101 | "] 102 | EXIT 103 | SEVFLD: OUTSTR [ASCIZ " 104 | ?SEVTA> failed! 105 | "] 106 | EXIT 107 | 108 | chntbl: 109 | XWD 1,HANG 110 | xwd 2,havenq 111 | 112 | lit ; put lits in hiseg 113 | reloc 0 ; rest must be in impure core 114 | save$v: block 1 ; saves contents of $v in havenq 115 | hang$v: block 1 ; saves contents of $v in hang 116 | hangta: block 1 ; save for register ta 117 | hv.lok::block 1 ; set to -1 when enq. request is granted 118 | LVLTBL: block 2 119 | reloc 120 | END 121 | -------------------------------------------------------------------------------- /CLRBUF.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C When this routine is called because ^C is typed it clears the 22 | C player's input buffer. 23 | 24 | subroutine CLRBUF 25 | 26 | call out ("034160703400,0) !4 bells 27 | call clear !clear the input buffer 28 | return 29 | 30 | end 31 | -------------------------------------------------------------------------------- /CMP.CMD: -------------------------------------------------------------------------------- 1 | compile lofchk 2 | compile warmac,cishng,msg,setmsg,(nowarn)/f10 setup,@decwar,low,high 3 | r link 4 | @l 5 | r link 6 | @ldeb 7 | -------------------------------------------------------------------------------- /COM1.CMD: -------------------------------------------------------------------------------- 1 | decwar,blkdat,basbld,baskil,baspha,build,captur,check,chkpnt,clrbuf 2 | damage,dist,dock,dship,endgam,energy,free,getcmd,jump,kqsrch,list 3 | locate,lstscn,lstflg,lstupd,lstout,lstsum,lstobj,move,nova,outhit,outmsg 4 | paswrd 5 | -------------------------------------------------------------------------------- /COM2.CMD: -------------------------------------------------------------------------------- 1 | phacon,place,plnrmv,points,pridis,prloc,prompt,radio,repair 2 | romdrv,romstr,romtor,scan,set,shield,snova,status,tell,time,tordam,torp,tractr 3 | trap,type,users,low,high,msg,warmac,warver,setup,setmsg,plnatk 4 | -------------------------------------------------------------------------------- /CONTEN.MIC: -------------------------------------------------------------------------------- 1 | .if ($a # "") .goto OK 2 | !@CONTEN file 3 | !to build a table of contents for a MACRO program 4 | .mic exit 5 | OK:: .revive 6 | .ru conten[10,30 7 | *'a 8 | *'a 9 | *Y 10 | *eb'a.MAC^[ 11 | *a ^E"f a'' hk gc ex^[^[ 12 | -------------------------------------------------------------------------------- /CONTEN.TEC: -------------------------------------------------------------------------------- 1 | !TABLE OF CONTENTS GENERATOR %2:! 2 | [1[2[3[L[S[M[T[P[N[F "?" FOR HELP!ST!HKI:ER 3 | FILE:  .U3 !NXCHR! UT QT-^O10"E .-Q3"N -D' ONXCHR' QT-63"E 4 | TYPE THE FILESPEC OF THE (MACRO) PROGRAM FOR WHICH YOU WANT THE TABLE 5 | OF CONTENTS. DEFAULT EXTN IS .MAC. END WITH .OST 6 | ' QT-^O177"E.-1,.T:-DONXCHR'QT-^O25"E^UOST' 7 | QT-^O15"NQTIONXCHR'IJ:S."FZ-1JI.MAC' 8 | HXTMT"FNOT FOUND.OST' 9 | !ST2!HKI;Table of Contents for NAME:  10 | .U3 !NXC! UT QT-^O10"E .-Q3"N -D' ONXC' QT-63"E 11 | TYPE THE NAME TO BE INCLUDED IN THE "TABLE OF CONTENTS FOR " HEAD- 12 | ING, WHICH IS INCLUDED IN THE TABLE (PROBABLY THE PROGRAM NAME). 13 | END WITH . 14 | OST2'QT-^O177"E.-1,.T:-DONXC'QT-^O25"E^U 15 | OST2' 16 | QT-^O15"NQTIONXC' .U1 (66-.)/2U2 BJ C Q2 Q1+Q2J I 17 | ; 18 | ; 19 | ; Section Page 20 | ; 21 | !FIRST!-1UNFIRST? UT QT-^^Z"G QT-^o40UT' 22 | QT-^O15"ENUT'QT-N"NQT-Y"N 23 | TYPE "Y" IF YOU WANT TO INCLUDE THE FIRST SUBTTL IN THE TABLE, "N" IF 24 | NOT (E.G. IF IT'S THE AUTHOR'S NAME). NO . 25 | OFIRST'%N' 26 | [WAIT] 27 | 1UPHXCY!RESTART!"EA"EORESTART'' 28 | !NEWPG!0UF:SSUBTTL"FONXTPG'QN"L%NONEWPG' 29 | !AGAIN!C1A-^O15"N1A-^O12"N1A-^O11"N1A-^O40"N !NOW COPY THE LINE! 30 | 0,.KL.,ZKJ:S -- "S!DS!1A-^O40"EDODS'5R!DS2!1A-^O40"EDRODS2'5C 31 | QM"G HXF XL4R.,ZKI 32 | ZUT GS Z-(2*QT)"E QTJI:B,QT\IS 33 | ! make sure string is not too long!(Z-.-36)"G(z-.-36)D' 34 | ZJI 35 | QTJ.,ZXT MT"S OSAME'' 36 | HKGFJ:S -- "FOOPS...'' 0UM XL4RKI 37 | -XSHKI; 0UTQN-8"G%TQN-98"G%TQN-998"G%TQN-9998"G%T'''' 38 | 4-QT%N\I. GS JGCHXC !SAME! HKI; 39 | 0UTQN-9"G%TQN-99"G%TQN-999"G%TQN-9999"G%T''''9-QTQN\I.%M\ 40 | 0UTQM-9"G%TQM-99"G%TQM-999"G%T'''3-QTOCONT '0UM 41 | XLHKI;0UTQN-8"G%TQN-98"G%TQN-998"G%TQN-9998"G%T'''' 42 | !T ==> #DIGITS-1! 4-QT%N\I. !CONT!GL-2DJ:S "SRK'ZJ 43 | Z-60"G60J.,ZK'I 62-Z!NOW INSERT PAGE#! 44 | 0UTQP-9"G%TQP-99"G%TQP-999"G%T'''3-QTQP\I 45 |  !NOW CONCATENATE TO TEXT ALREADY IN C! 46 | 1UFJGCHXC'' 47 | !AT THIS POINT, WE EITHER PROCESSED LINE, OR FOUND TAB OR SPACE ABOVE! 48 | QF"EOAGAIN'''!OK, NOW WE CAN PROCESS NEXT LINE! 49 | !NXTPG!"EY!GETFF!"EA"EOGETFF''%P 50 | !NOW WE CAN PROCESS THIS PAGE.! ONEWPG' 51 | !AT THIS POINT, WE ARE DONE.!1et[CONTENTS ARE IN Q-REG C] 52 | 0etHKEF]F]N]P]T]M]S]2]1]L 53 | -------------------------------------------------------------------------------- /CUST.CMD: -------------------------------------------------------------------------------- 1 | CISREV.DAT/SKIP:1 2 | B.AN 3 | Y 4 | DIF:CUST.DIF 5 | NLT 6 | KB 7 | SX 8 | SY 9 | HX 10 | KT 11 | IA:X,1.5 12 | IA:Y,1.5 13 | LOC:D,2.25,1.5,7,4 14 | 15 | 2/BLU 16 | \TR\CompuServe\CR\ Information Service 17 | VALID CUSTOMERS 18 | FISCAL '82 19 | CUSTOMERS 20 | 2 21 | CUSTOMERS/BLU 22 | 0,30000,5000 23 | 1 24 | 1 25 | -------------------------------------------------------------------------------- /CXRF.ICD: -------------------------------------------------------------------------------- 1 | limit sru 0 2 | compile/x/c lofchk,warmac,cishng 3 | compile/s/c msg,setmsg 4 | compile/s/c (nowarn)/f10 setup,@decwar,low,high 5 | r link 6 | @l 7 | r link 8 | @ldeb 9 | ^C 10 | $cref dsk:= 11 | printnh *.lst 12 | ;--printnh /r *.lst 13 | ;--Bill Louden 14 | ;--Building Four 15 | ;--First Floor 16 | ;--=============== 17 | ;--* D E C W A R * 18 | ;-- 19 | -------------------------------------------------------------------------------- /D.CMD: -------------------------------------------------------------------------------- 1 | dir /b/l/sor:cre:des *.rel 2 | -------------------------------------------------------------------------------- /DAMAGE.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine reports on current ship device damages (if any). 22 | C STOKEN = 2 if this is a call from the DAMAGE command, 23 | C STOKEN = 3 if this is a call from the REPAIR routine. 24 | C 25 | subroutine DAMAGE (stoken) 26 | include 'param/nolist' 27 | include 'hiseg/nolist' 28 | include 'lowseg/nolist' 29 | include 'extern/nolist' 30 | 31 | call crlf 32 | do 100 i = 1, KNDEV !anything damaged? 33 | if (shpdam(who,i) .gt. 0) goto 200 34 | 100 continue 35 | call out (alldok,1) !nope! 36 | goto 1800 37 | 38 | *.......Specific device information requested? 39 | 40 | 200 if (typlst(stoken) .ne. KALF) goto 900 41 | do 800 i = stoken, KMAXTK 42 | if (typlst(i) .ne. KALF) goto 1800 43 | do 700 j = 1, KNDEV 44 | if (.not. (equal(tknlst(i), device(j)))) goto 700 45 | call odev (j) 46 | if (oflg) 300, 400, 500 47 | 300 call space ; goto 600 48 | 400 call tab (10) ; goto 600 49 | 500 call tab (19) 50 | 600 call oflt (shpdam(who,j), 4) 51 | if (oflg .eq. long) call out (units1,0) 52 | call crlf 53 | 700 continue 54 | 800 continue 55 | goto 1800 56 | 57 | *.......General report on ALL damaged devices. 58 | 59 | 900 if (oflg) 1200, 1100, 1000 60 | 1000 call out (damrep,0) 61 | call odisp(disp(shpcon(who,KVPOS),shpcon(who,KHPOS)), 0) 62 | call skip (2) 63 | 1100 call out (dmhdr1,0) 64 | if (oflg .eq. long) call spaces (9) 65 | call out (dmhdr2,2) 66 | 1200 do 1700 i = 1, KNDEV !scan the devices 67 | if (shpdam(who,i) .le. 0) goto 1700 !damaged? 68 | call odev (i) 69 | if (oflg) 1300, 1400, 1500 70 | 1300 call space ; goto 1600 71 | 1400 call tab (10) ; goto 1600 72 | 1500 call tab (19) 73 | 1600 call oflt (shpdam(who,i), 4) 74 | if (oflg .eq. long) call out (units1,0) 75 | call crlf 76 | 1700 continue 77 | 78 | 1800 return 79 | 80 | end 81 | -------------------------------------------------------------------------------- /DECCMP.CMD: -------------------------------------------------------------------------------- 1 | decwar,blkdat,basbld,baskil,baspha,build,captur,check,chkpnt,clrbuf 2 | damage,dist,dock,dship,endgam,energy,free,getcmd,jump,kqsrch,list 3 | locate,lstscn,lstflg,lstupd,lstout,lstsum,lstobj,move,nova,outhit,outmsg 4 | paswrd,phacon,place,plnatk,plnrmv,points,pridis,prloc,prompt,radio,repair 5 | romdrv,romstr,romtor,scan,set,shield,snova,status,tell,time,tordam,torp,tractr 6 | trap,type,users,low,high,msg,warmac,warver,setup,setmsg 7 | -------------------------------------------------------------------------------- /DECFIX.MAC: -------------------------------------------------------------------------------- 1 | ; This file is part of Decwar. 2 | ; Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | ; Computation Center and Harris Newman. 4 | 5 | ; This program is free software; you can redistribute it and/or modify 6 | ; it under the terms of the GNU General Public License as published by 7 | ; the Free Software Foundation; either version 3, or (at your option) 8 | ; any later version. 9 | 10 | ; This program is distributed in the hope that it will be useful, 11 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ; GNU General Public License for more details. 14 | 15 | ; You should have received a copy of the GNU General Public License 16 | ; along with this program; if not, write to the Free Software 17 | ; Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | ; 02110-1301, USA. 19 | 20 | 21 | title decfix - get decwar off the swapper 22 | 23 | search uuosym 24 | 25 | start: reset 26 | move 1,[^d8,,filop] 27 | filop. 1, 28 | outstr [asciz /?Broken. 29 | /] 30 | reset 31 | exit 1, 32 | exit 33 | 34 | filop: xwd 400001,.fornm ;rename 35 | exp 17 36 | ; sixbit /gam/ ;commented out by drforbin 37 | sixbit /dskc/ ;changed for proper device 38 | exp 0 39 | exp 0 40 | xwd renblk,lokblk 41 | exp 0 42 | exp 0 43 | 44 | renblk: 45 | lokblk: sixbit /decwar/ 46 | sixbit /exe/ 47 | exp 0 48 | ; xwd 5,30 ;commented by drforbin 49 | xwd 1,27 ;changed for proper p,pn 50 | 51 | end start 52 | -------------------------------------------------------------------------------- /DECWAR.CMD: -------------------------------------------------------------------------------- 1 | decwar,blkdat,basbld,baskil,baspha,build,captur,check,chkpnt,clrbuf 2 | damage,dist,dock,dship,endgam,energy,free,getcmd,jump,kqsrch,list 3 | locate,lstscn,lstflg,lstupd,lstout,lstsum,lstobj,move,nova,outhit,outmsg 4 | paswrd,phacon,place,plnatk,plnrmv,points,pridis,prloc,prompt,radio,repair 5 | romdrv,romstr,romtor,scan,set,shield,snova,status,tell,time,tordam,torp,tractr 6 | trap,type,users 7 | -------------------------------------------------------------------------------- /DECWAR.IMP: -------------------------------------------------------------------------------- 1 | The following files are included on the DECWAR source distribution tape: 2 | 3 | DECWAR.IMP This file. 4 | 5 | Files to be installed on GAM: 6 | DECWAR.EXE DECWAR game. Protected for EXECUTE access. 7 | DECWAR.HLP Help for DECWAR. Source for on line help system. 8 | Protected for READ access. 9 | DECWAR.NWS News file (recent developments). Protected for READ access. 10 | DECWAR.GRP Gripe file. Initially empty, added to by the DECWAR GRIPE 11 | command. Must be protected to allow write access. 12 | 13 | Files from which the GAM: files are derived: 14 | DECWAR.EXE: 15 | HIGH.FOR Used to force common block into high segment. 16 | LOW.FOR Used to force common block into low segment. 17 | DECWAR.FOR FORTRAN source. 18 | WARMAC.MAC MACRO source. 19 | MSG.MAC Output text source (to force text into the high segment, 20 | and to get rid of the annoying trailing blanks FORTRAN 21 | generates for literals). 22 | SETUP.FOR Once only code, deleted from core after initialization. 23 | SETMSG.MAC Equivalent to MSG.MAC for SETUP text strings. 24 | DECWAR.RNH Help file source. 25 | DECNWS.RNO News file source. 26 | 27 | Files INCLUDEd in DECWAR.FOR (extracted from WARMAC.MAC by TECO macros): 28 | PARAM.FOR Parameters (constants). 29 | HISEG.FOR High segment common block. 30 | LOWSEG.FOR Low segment common block. 31 | 32 | Other files INCLUDEd in DECWAR.FOR: 33 | EXTERN.FOR External declarations for strings used in DECWAR (extracted 34 | from MSG.MAC). 35 | SETEXT.FOR Equivalent external declarations used by SETUP (extracted 36 | from SETMSG.MAC). 37 | LSTVAR.FOR Common block INCLUDEd by all LIST routines (LST???). 38 | 39 | Relocatable files needed to produce DECWAR.EXE: 40 | HIGH.REL High segment common block. 41 | LOW.REL Low segment common block. 42 | DECWAR.REL From DECWAR.FOR source. 43 | WARMAC.REL From WARMAC.MAC source. 44 | MSG.REL From MSG.MAC source. 45 | SETUP.REL From SETUP.FOR source. 46 | SETMSG.REL From SETMSG.MAC source. 47 | 48 | Tools used to build game (.SAV files generated from TECO macros): 49 | L.MIC Load REL files in proper sequence into right segments. 50 | Note you can DO L/H for help on building the DECWAR core 51 | image. 52 | PARAM.SAV Build PARAM.FOR from WARMAC.MAC. 53 | HISEG.SAV Build HISEG.FOR from WARMAC.MAC. 54 | LOWSEG.SAV Build LOWSEG.FOR from WARMAC.MAC. 55 | EXTERN.SAV Build EXTERN.FOR from MSG.MAC. 56 | SETEXT.SAV Build SETEXT.FOR from SETMSG.MAC. 57 | 58 | TECO macros used to build game (require TECO 124): 59 | PARAM.TEC Source for PARAM.SAV. 60 | HISEG.TEC Source for HISEG.SAV. 61 | LOWSEG.TEC Source for LOWSEG.SAV. 62 | EXTERN.TEC Source for EXTERN.SAV. 63 | SETEXT.TEC Source for SETEXT.SAV. 64 | 65 | Misc. utilities: 66 | MAKHLP.MIC Build DECWAR.HLP file from DECWAR.RNH using RUNOFF. 67 | MAKNWS.MIC Build DECWAR.NWS file from DECNWS.RNO using RUNOFF. 68 | NDX.TEC Build DECWAR.NDX file to be used by PAGE.TEC. 69 | PAGE.TEC Search DECWAR.NDX file for page number of desired 70 | DECWAR.FOR subprogram. 71 | -------------------------------------------------------------------------------- /DECWAR.LTR: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | I have received your request for sources to the DECWAR program. 7 | We will be pleased to send you the sources, but first we must 8 | ask you to sign and return the enclosed license agreement. 9 | DECWAR was developed at the University of Texas at Austin, and 10 | it is being maintained. Hence our interest in using the 11 | agreement to record and control who gets the source to it. 12 | 13 | DECWAR is a sophisticated real-time space battle game designed 14 | to be played by from 1 to 18 people. It was written at the 15 | University of Texas at Austin, primarily by Jeff Potter and Bob 16 | Hysick. The game was originally based on a very limited, single 17 | job, single terminal, two player Star Trek type game known as 18 | WAR. This game came from the CDC-6600/6400 system at the 19 | University of Texas at Austin, author unknown. Robert Schneider 20 | re-wrote the original source on the CDC and started the transfer 21 | to the DEC-10. In the transfer process, the game was renamed to 22 | DECWAR, largely re-designed, and almost entirely re-written, so 23 | that the current version bears little resemblance to the 24 | original. Almost all the commands were added once the game was 25 | on the DEC-10, as well as the basic concept of separate jobs 26 | controlling each ship, and most of the other features that make 27 | the game challenging, exciting, and enjoyable. The first 28 | version was installed on the DEC-10 in August 1978. After 29 | several revisions, a greatly enhanced and improved game, version 30 | 2.0, was installed in July 1979. 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /DECWAR.NDX: -------------------------------------------------------------------------------- 1 | Page 1 program decwar 2 | Page 3 BLOCK DATA 3 | Page 4 subroutine BASBLD 4 | Page 5 subroutine BASKIL (itype) 5 | Page 6 subroutine BASPHA 6 | Page 7 subroutine BUILD (*) 7 | Page 8 subroutine CAPTUR (*) 8 | Page 9 subroutine CHECK (H, V, dH, dV, dist, displ) 9 | Page 10 subroutine CHKPNT (c, c1, c2) 10 | Page 11 subroutine CLRBUF 11 | Page 12 subroutine DAMAGE (stoken) 12 | Page 13 subroutine DIST (ip, np, num) 13 | Page 14 subroutine DOCK (*) 14 | Page 15 subroutine DSHIP 15 | Page 16 subroutine ENDGAM 16 | Page 17 subroutine ENERGY 17 | Page 18 subroutine FREE (snum) 18 | Page 18 entry RSTART (snum) 19 | Page 19 subroutine GETCMD (cmd) 20 | Page 20 subroutine JUMP (nplc, j) 21 | Page 21 subroutine KQSRCH (ttynum, jobnum, ppn, kindex) 22 | Page 22 subroutine LIST 23 | Page 22 entry SUMMAR !command is SUMMARY 24 | Page 22 entry BASES 25 | Page 22 entry PLANET 26 | Page 22 entry TARGET 27 | Page 23 function LOCATE (n) 28 | Page 23 entry RELOC (n) 29 | Page 24 subroutine LSTSCN (*) 30 | Page 25 subroutine LSTFLG (*) 31 | Page 26 subroutine LSTUPD (lstmsk, objctr, scnbts, xxf) 32 | Page 27 subroutine LSTOUT 33 | Page 28 subroutine LSTSUM (n, str, f) 34 | Page 29 subroutine LSTOBJ 35 | Page 30 subroutine MOVE (*) 36 | Page 30 entry IMPULS (*) 37 | Page 31 subroutine NOVA (nplc, j) 38 | Page 32 subroutine OUTHIT 39 | Page 33 subroutine OUTMSG 40 | Page 34 subroutine PASWRD 41 | Page 35 subroutine PHACON (*) 42 | Page 36 subroutine PLACE (object, n, V, H) 43 | Page 37 subroutine PLNATK 44 | Page 38 subroutine PLNRMV (i,pteam) 45 | Page 39 subroutine POINTS (DFLG) 46 | Page 40 subroutine PRIDIS (iV, iH, ilim, iflag, zero) 47 | Page 41 subroutine PRLOC (v, h, prcflg, w, prlflg, proflg) 48 | Page 42 subroutine PROMPT 49 | Page 43 subroutine RADIO 50 | Page 44 subroutine REPAIR (il,*) 51 | Page 45 subroutine ROMDRV (phit, id) 52 | Page 45 entry PHAROM (phit, id) 53 | Page 45 entry DEADRO (phit, id) 54 | Page 45 entry TOROM (phit, id) 55 | Page 46 subroutine ROMSTR (iV, iH) 56 | Page 47 subroutine ROMTOR (iV1, iH1) 57 | Page 48 subroutine SCAN 58 | Page 48 entry SRSCAN 59 | Page 49 subroutine SET 60 | Page 50 subroutine SHIELD 61 | Page 51 subroutine SNOVA 62 | Page 52 subroutine STATUS (stoken) 63 | Page 53 subroutine TELL 64 | Page 54 subroutine TIME 65 | Page 55 subroutine TORDAM (nplc, j, id, phit, ship) 66 | Page 55 entry PHADAM (nplc, j, id, phit, ship) 67 | Page 56 subroutine TORP (*) 68 | Page 57 subroutine TRACTR (ip) 69 | Page 57 entry TRCOFF (ip) 70 | Page 58 subroutine TRAP 71 | Page 59 subroutine TYPE 72 | Page 60 subroutine USERS 73 | -------------------------------------------------------------------------------- /DECWAR.NWS: -------------------------------------------------------------------------------- 1 | The current version of DECWAR has 2 | a new interlocking precedure which 3 | should alleviate many of the long 4 | delays formerly encountered. 5 | It also has parameter settings for 6 | beginner, intermediate, and expert 7 | players. You will be asked which 8 | settings you wish to use once you 9 | are into the game. 10 | The edit number, which is typed 11 | out when you enter the program, 12 | will be incremented whenever major 13 | changes have been made. You can 14 | use the NEWs command whenever you 15 | notice a new version number to find 16 | out what has changed. 17 | -------------------------------------------------------------------------------- /DECWAR.TAP: -------------------------------------------------------------------------------- 1 | dskc:[10,30,decwar,hlp]DECWAR.IMP 2 | gam:DECWAR.EXE 3 | gam:DECWAR.HLP 4 | gam:DECWAR.NWS 5 | gam:DECWAR.GRP 6 | dskc:[10,30,decwar]HIGH.FOR 7 | dskc:[10,30,decwar]LOW.FOR 8 | dskc:[10,30,decwar]DECWAR.FOR 9 | dskc:[10,30,decwar]WARMAC.MAC 10 | dskc:[10,30,decwar]MSG.MAC 11 | dskc:[10,30,decwar]SETUP.FOR 12 | dskc:[10,30,decwar]SETMSG.MAC 13 | dskc:[10,30,decwar,hlp]DECWAR.RNH 14 | dskc:[10,30,decwar,hlp]DECNWS.RNO 15 | dskc:[10,30,decwar]PARAM.FOR 16 | dskc:[10,30,decwar]HISEG.FOR 17 | dskc:[10,30,decwar]LOWSEG.FOR 18 | dskc:[10,30,decwar]EXTERN.FOR 19 | dskc:[10,30,decwar]SETEXT.FOR 20 | dskc:[10,30,decwar]LSTVAR.FOR 21 | dskc:[10,30,decwar]HIGH.REL 22 | dskc:[10,30,decwar]LOW.REL 23 | dskc:[10,30,decwar]DECWAR.REL 24 | dskc:[10,30,decwar]WARMAC.REL 25 | dskc:[10,30,decwar]MSG.REL 26 | dskc:[10,30,decwar]SETUP.REL 27 | dskc:[10,30,decwar]SETMSG.REL 28 | dskc:[10,30,decwar]L.MIC 29 | dskc:[10,30,decwar]PARAM.SAV 30 | dskc:[10,30,decwar]HISEG.SAV 31 | dskc:[10,30,decwar]LOWSEG.SAV 32 | dskc:[10,30,decwar]EXTERN.SAV 33 | dskc:[10,30,decwar]SETEXT.SAV 34 | dskc:[10,30,decwar,tec]PARAM.TEC 35 | dskc:[10,30,decwar,tec]HISEG.TEC 36 | dskc:[10,30,decwar,tec]LOWSEG.TEC 37 | dskc:[10,30,decwar,tec]EXTERN.TEC 38 | dskc:[10,30,decwar,tec]SETEXT.TEC 39 | dskc:[10,30,decwar,hlp]MAKHLP.MIC 40 | dskc:[10,30,decwar,hlp]MAKNWS.MIC 41 | dskc:[10,30,decwar,tec]NDX.TEC 42 | dskc:[10,30,decwar,tec]PAGE.TEC 43 | -------------------------------------------------------------------------------- /DECWR.ICD: -------------------------------------------------------------------------------- 1 | limit sru 0 2 | level 0 3 | compile/c lofchk 4 | compile/c warmac,warver,cishng,msg,setmsg,(nowarn)/f10 setup,@decwar,low,high 5 | r link 6 | @l 7 | r link 8 | @ldeb 9 | -------------------------------------------------------------------------------- /DEFINE.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | subroutine DEFINE 22 | include 'param/nolist' 23 | include 'hiseg/nolist' 24 | include 'lowseg/nolist' 25 | include 'extern/nolist' 26 | 27 | if (ntok .eq. 1) goto 500 28 | if (typlst(2) .eq. KALF) goto 200 29 | 100 call out (defn01,1) 30 | goto 1500 31 | 32 | 200 g = tknlst(1,2) 33 | p = 3 34 | if (ntok .gt. 2) goto 600 35 | do 300 i = 1, KNGRP 36 | if (equal(tknlst(1,2), group(i,1), 5, 5)) goto 400 37 | 300 continue 38 | call out (defn02,0) 39 | call outw (tknlst(1,2)) ; call crlf 40 | goto 1500 41 | 400 call out (defn03,0) 42 | call outw (group(i,1)) ; call crlf 43 | group(i,1) = 0 ; group (i,2) = 0 44 | return 45 | 46 | 500 call out (defn04,0) 47 | call gtkn 48 | if (typlst(1) .eq. KEOL) goto 1500 49 | if (typlst(1) .ne. KALF) goto 100 50 | g = tknlst(1,1) 51 | p = 2 52 | if (ntok .gt. 1) goto 600 53 | call out (defn05,0) 54 | call gtkn 55 | if (typlst(1) .eq. KEOL) goto 1500 56 | p = 1 57 | 58 | 600 ff = 0 59 | do 700 i = KNGRP, 1, -1 60 | if (group(i,1) .eq. 0) ff = i 61 | if (equal(g, group(i,1), 5, 5)) goto 800 62 | 700 continue 63 | if (ff .ne. 0) goto 900 64 | call out (defn06,1) 65 | goto 1500 66 | 800 ff = i 67 | 68 | 900 gbits = 0 69 | do 1400 i = p, ntok 70 | do 1000 j = 1, KNPLAY 71 | if (equal(tknlst(1,i), names(j,1), 5, 5)) goto 1100 72 | 1000 continue 73 | call out (defn07,0) 74 | call outw (tknlst(1,i)) ; call crlf 75 | goto 1500 76 | 1100 if (j .ne. who) goto 1200 77 | call out (defn08,1) 78 | goto 1400 79 | 1200 if (job(j,KJOB) .ne. 0) goto 1300 80 | call out (defn09,0) 81 | call out2w (names(j,1),names(j,2)) ; call crlf 82 | 1300 gbits = gbits .or. bits(j) 83 | 1400 continue 84 | 85 | if (gbits .ne. 0) goto 1600 86 | 1500 call out (defn10,1) 87 | return 88 | 89 | 1600 group(ff,1) = g 90 | group(ff,2) = gbits 91 | return 92 | 93 | end 94 | -------------------------------------------------------------------------------- /DEFINE.HLP: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | _.DEFINE 5 | . 6 | DEFINition of TELL groups 7 | .skip 1 8 | Syntax: DEfine 9 | .skip 1 10 | This command is used to assign groups of ships to a specific name, thus 11 | simplifying the sending of messages to multiple players. All players 12 | begin the game with certain standard group names defined, as described 13 | in the TELL help file. Groups may be redefined or eliminated as 14 | desired. Group names will be truncated to five (5) characters. 15 | .skip 1 16 | Examples: 17 | .skip 1.nf 18 | DE fools i e l TELL FOOLS now equivalent to TELL I E L. 19 | DE fools Eliminates FOOLS as a valid group name. 20 | _. 21 | .skip 1.f 22 | -------------------------------------------------------------------------------- /DIST.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine is used by the Romulan to find the nearest attackable 22 | C object (ship or base). 23 | 24 | subroutine DIST (ip, np, num) 25 | include 'param/nolist' 26 | include 'hiseg/nolist' 27 | include 'lowseg/nolist' 28 | include 'extern/nolist' 29 | common /distlc/ V(4), H(4), iV(4), z(4) 30 | 31 | call blkset (z, (KGALV * KGALH + 1), 4) 32 | RV = locr(KVPOS) ; RH = locr(KHPOS) 33 | 34 | *.......Find closest Federation ship 35 | 36 | do 100 j = 1, KNPLAY / 2 37 | if (.not. alive(j)) goto 100 38 | if (disp(shpcon(j,KVPOS),shpcon(j,KHPOS)) .le. 0) goto 100 39 | ztem = (RV - shpcon(j,KVPOS)) * (RV - shpcon(j,KVPOS)) + 40 | + (RH - shpcon(j,KHPOS)) * (RH - shpcon(j,KHPOS)) 41 | if (ztem .ge. z(1)) goto 100 42 | iV(1) = j ; z(1) = ztem 43 | V(1) = shpcon(j,KVPOS) ; H(1) = shpcon(j,KHPOS) 44 | 100 continue 45 | 46 | *.......Find closest Klingon ship 47 | 48 | do 200 j = (KNPLAY / 2) + 1, KNPLAY 49 | if (shpcon(j,KVPOS) .eq. 0) goto 200 50 | if (disp(shpcon(j,KVPOS),shpcon(j,KHPOS)) .le. 0) goto 200 51 | ztem = (RV - shpcon(j,KVPOS)) * (RV - shpcon(j,KVPOS)) + 52 | + (RH - shpcon(j,KHPOS)) * (RH - shpcon(j,KHPOS)) 53 | if (ztem .ge. z(2)) goto 200 54 | iV(2) = j ; z(2) = ztem 55 | V(2) = shpcon(j,KVPOS) ; H(2) = shpcon(j,KHPOS) 56 | 200 continue 57 | 58 | *.......Find closest Federation and Klingon starbase 59 | 60 | do 400 k = 1, 2 61 | if (nbase(k) .le. 0) goto 400 62 | do 300 j = 1, KNBASE 63 | if (base(j,3,k) .le. 0) goto 300 64 | if (disp (base(j,KVPOS,k), base(j,KHPOS,k)) .eq. 0) goto 300 65 | ztem = (RV - base(j,KVPOS,k)) * (RV - base(j,KVPOS,k)) + 66 | + (RH - base(j,KHPOS,k)) * (RH - base(j,KHPOS,k)) 67 | if (ztem .ge. z(2+k)) goto 300 68 | iV(2+k) = j ; z(2+k) = ztem 69 | V(2+k) = base(j,KVPOS,k) ; H(2+k) = base(j,KHPOS,k) 70 | 300 continue 71 | 400 continue 72 | 73 | *.......Figure out which of the above is closest of all 74 | 75 | np = 1 76 | if ((z(2) .lt. z(1)) .or. ((z(1) .eq. z(2)) .and. 77 | + (iran(2) .eq. 1))) np = 2 78 | if ((z(3) .lt. z(np)) .or. ((z(3) .eq. z(np)) .and. 79 | + (iran(2) .eq. 1))) np = 3 80 | if ((z(4) .lt. z(np)) .or. ((z(4) .eq. z(np)) .and. 81 | + (iran(2) .eq. 1))) np = 4 82 | ip = iV(np) 83 | num = pdist (V(np), H(np), RV, RH) 84 | return 85 | 86 | end 87 | -------------------------------------------------------------------------------- /DOCK.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine checks for an adjacent friendly starbase or planet, 22 | C and if either is found, the ship's energy and supplies are 23 | C fractionally increased (up to the maximum possible). Bases 24 | C supply twice the energy and supplies per dock as do planets. 25 | 26 | subroutine DOCK (*) 27 | include 'param/nolist' 28 | include 'hiseg/nolist' 29 | include 'lowseg/nolist' 30 | include 'extern/nolist' 31 | 32 | *.......Check for friendly base in range 33 | 34 | v = etim(tim0) + (slwest * 1000) + 1000 35 | ifract=0 36 | do 100 j = 1, KNBASE 37 | if (base(j,3,team) .le. 0) goto 100 !is base alive? 38 | if (ldis (shpcon(who,KVPOS), shpcon(who,KHPOS), 39 | + base(j,KVPOS,team), base(j,KHPOS,team), 1)) 40 | + ifract = ifract + 2 !is base within 1 sector? 41 | 100 continue 42 | 43 | *.......Check for friendly planet in range 44 | 45 | if (numcap(team) .le. 0) goto 300 46 | do 200 i = 1, nplnet 47 | if ((team + DXNPLN) .ne. dispc(locpln(i,KVPOS),locpln(i,KHPOS))) 48 | + goto 200 !planet friendly? 49 | if (.not. ldis(shpcon(who,KVPOS), shpcon(who,KHPOS), 50 | + locpln(i,KVPOS), locpln(i,KHPOS), 1)) goto 200 !planet within 1 sector? 51 | ifract=ifract + 1 52 | 200 continue 53 | 54 | *.......No adjacent bases or planets 55 | 56 | 300 if (ifract .ne. 0) goto 400 57 | call crlf 58 | call odisp (disp(shpcon(who,KVPOS),shpcon(who,KHPOS)), 1) 59 | call out (dock01,1) 60 | return 1 61 | 62 | *.......Dock the ship (R & R)!! 63 | 64 | 400 if (.not. alive(who)) return 1 !ship already dead 65 | shpcon(who,KNTORP) = min0((shpcon(who,KNTORP) + (ifract*5)), 10) 66 | shpcon(who,KSNRGY) = min0((shpcon(who,KSNRGY) + (ifract*5000)), 67 | + 50000) 68 | shpcon(who,KSSHPC) = min0((shpcon(who,KSSHPC) + (100*ifract)), 69 | + 1000) 70 | shpcon(who,KSDAM) = max0 ((shpcon(who,KSDAM) - (ifract*500)), 0) 71 | if (docked(who)) shpcon(who,KSDAM) = max0((shpcon(who,KSDAM) - 72 | + (ifract*500)), 0) 73 | docked(who) = .TRUE. 74 | shpcon(who,KLFSUP) = 5 ; shpcon(who,KSPCON) = GREEN 75 | 76 | call out (dockin,1) 77 | if (equal(tknlst(2), 'STATUS')) 78 | + call status (3) !status report? 79 | 80 | ptime = v - etim(tim0) !compute pause time for DOCK. 81 | return 82 | 83 | end 84 | -------------------------------------------------------------------------------- /DSHIP.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine is called periodically by GETCMD to check 22 | C for dead ships. 23 | 24 | subroutine DSHIP 25 | include 'param/nolist' 26 | include 'hiseg/nolist' 27 | include 'lowseg/nolist' 28 | include 'extern/nolist' 29 | 30 | do 100 i = 1, KNPLAY 31 | if (.not. alive(i)) go to 100 !ship in use? 32 | active(i) = active(i) + 1 33 | if (active(i) .lt. 2) go to 100 !inactive? 34 | active(i) = 0 35 | call free (i) !remove dead ship 36 | 100 continue 37 | return 38 | 39 | end 40 | -------------------------------------------------------------------------------- /ENDGAM.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine is called whenever a base or planet is destroyed 22 | C to see if the game is over. (all the planets gone, and one 23 | C side's bases). If so, the appropriate message is printed out 24 | C and the job is returned to monitor level. 25 | 26 | subroutine ENDGAM 27 | include 'param/nolist' 28 | include 'hiseg/nolist' 29 | include 'lowseg/nolist' 30 | include 'extern/nolist' 31 | common /local/ dummy(locsiz) 32 | common /polocl/ total(4) 33 | external monit 34 | 35 | if (ENDFLG) goto 100 !game already over? 36 | if (nplnet .gt. 0) return !any planets left? 37 | if (min0 (nbase(1), nbase(2)) .gt. 0) return !any bases left? 38 | 39 | *.......The game is over!! 40 | 41 | call kilhgh 42 | endflg = .true. 43 | 44 | 100 call out (endgm0,1) 45 | if (max0 (nplnet, nbase(1), nbase(2)) .ne. 0) goto 300 46 | call out (endgm1, 1) 47 | endflg = -2 ! -2 implies total destruction 48 | 300 if (nbase(1) .eq. 0) call out (endgm3,1) 49 | if (nbase(2) .eq. 0) call out (endgm4,1) 50 | if ((team .eq. 1) .and. (nbase(1) .eq. 0)) call out (endgm5,1) 51 | if ((team .eq. 1) .and. (nbase(2) .eq. 0)) call out (endgm6,1) 52 | if ((team .eq. 2) .and. (nbase(1) .eq. 0)) call out (endgm7,1) 53 | if ((team .eq. 2) .and. (nbase(2) .eq. 0)) call out (endgm8,1) 54 | if (who .eq. 0) goto 400 !'player' from restart loop. 55 | txppn = job(who, kppn) 56 | txnm1 = job(who, knam1) 57 | txnm2 = job(who, knam2) 58 | txsh1 = names (who, 1) 59 | txsh2 = names (who, 2) 60 | whowon = 1 61 | if (nbase(1) .lt. nbase(2)) whowon = 2 62 | txwhy = 1 ! assume this player won 63 | if (team .ne. whowon) txwhy = 0 ! not same team, so lost! 64 | if (endflg .eq. -2) txwhy = 0 ! or everyone loses! 65 | txtim = etim(job(who, KJOBTM)) 66 | txtem = team - 1 67 | call points (.TRUE.) 68 | txtot = total (1) 69 | call updsta (txppn,txnm1,txnm2,txsh1,txsh2,txtot,txtim,txwhy, 70 | + txtem, who) 71 | call free (who) 72 | who = 0 73 | c-- call shosta(0) ! show current standings 74 | 400 call exit 75 | 76 | end 77 | -------------------------------------------------------------------------------- /ENERGY.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine allows ship-to-ship transfer of energy between 22 | C friendly ships. There is a 10% loss during the transfer. 23 | 24 | subroutine ENERGY 25 | include 'param/nolist' 26 | include 'hiseg/nolist' 27 | include 'lowseg/nolist' 28 | include 'extern/nolist' 29 | 30 | call crlf 31 | index = 2 32 | 33 | *.......Input ship name and energy to transfer 34 | 35 | 100 if ((typlst(index) .eq. KALF) .and. (typlst(index+1) .eq. KINT)) 36 | + goto 500 37 | if (oflg) 200, 200, 300 38 | 200 call out (ener1S, 0) ; goto 400 39 | 300 call out (ener1L, 0) 40 | 400 call gtkn 41 | index = 1 42 | if (typlst(1) .eq. KEOL) return 43 | goto 100 44 | 45 | *.......Match input with ship name 46 | 47 | 500 do 600 i = 1, KNPLAY 48 | if (equal(tknlst(index), names(i,1))) goto 700 49 | 600 continue 50 | call out (unkshp,1) !unknown ship name 51 | return 52 | 53 | *.......Input his own ship name? 54 | 55 | 700 if (i .ne. who) goto 800 56 | if (oflg .eq. long) call out (begyrp, 0) 57 | call out (energ7, 1) 58 | return 59 | 60 | *.......Ship in game? 61 | 62 | 800 if (alive(i)) goto 900 63 | call out (noship,1) !ship not in game 64 | return 65 | 66 | *.......Attempting to transfer energy to an enemy ship? 67 | 68 | 900 dteam = 1 ; if (i .gt. KNPLAY/2) dteam = 2 69 | if (team .eq. dteam) goto 1000 70 | call out (energ2,1) 71 | return 72 | 73 | *.......Adjacent to destination ship? 74 | 75 | 1000 if (ldis(shpcon(who,KVPOS),shpcon(who,KHPOS),shpcon(i,KVPOS), 76 | + shpcon(i,KHPOS),1)) goto 1100 77 | call out (energ3,1) 78 | return 79 | 80 | *.......Transferring more energy than you possess? 81 | 82 | 1100 ihita = vallst(index+1) * 10 83 | if (ihita .lt. shpcon(who,KSNRGY)) goto 1500 84 | if (oflg) 1200, 1200, 1300 85 | 1200 call out (ener4S, 1) ; goto 1400 86 | 1300 call out (ener4L, 1) 87 | 1400 return 88 | 89 | *.......Energy transfer negative or equal to zero? 90 | 91 | 1500 if (ihita .gt. 0) goto 1600 92 | if (oflg .eq. long) call out (energ8, 0) 93 | call out (energ5,1) 94 | return 95 | 96 | *.......Make energy transfer, inform players 97 | 98 | 1600 ihita = min0(int(ihita * 0.9), 50000 - shpcon(i,KSNRGY)) 99 | shpcon(who,KSNRGY) = shpcon(who,KSNRGY) - (ihita + (ihita / 9)) 100 | shpcon(i,KSNRGY) = shpcon(i,KSNRGY) + ihita 101 | call out (energ6,1) !inform transferring ship 102 | dispto = i + (dteam * 100) ; dispfr = who + (team * 100) 103 | dbits = bits(i) ; iwhat = 12 104 | call makhit !inform destination ship 105 | return 106 | 107 | 1700 call out ('Sorry, Captain, but the transfer has failed.', 1) 108 | return 109 | end 110 | -------------------------------------------------------------------------------- /ENTER.MAC: -------------------------------------------------------------------------------- 1 | ; This file is part of Decwar. 2 | ; Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | ; Computation Center and Harris Newman. 4 | 5 | ; This program is free software; you can redistribute it and/or modify 6 | ; it under the terms of the GNU General Public License as published by 7 | ; the Free Software Foundation; either version 3, or (at your option) 8 | ; any later version. 9 | 10 | ; This program is distributed in the hope that it will be useful, 11 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ; GNU General Public License for more details. 14 | 15 | ; You should have received a copy of the GNU General Public License 16 | ; along with this program; if not, write to the Free Software 17 | ; Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | ; 02110-1301, USA. 19 | 20 | 21 | ;;; This subroutine controls access to a routine that can be 22 | ; accessed by only one job at a time. To use it, at the 23 | ; beginning of each controlled routine, put the code 24 | ; 25 | ; MOVEI T1,lock 26 | ; PUSHJ P,ENTR. 27 | ; 28 | ; lock must be a word in a shared, write enabled high 29 | ; segment (being used by several jobs). ENTR. will put 30 | ; the job in a queue until the routine is available (jobs 31 | ; will wait in line for access to the routine -- the first 32 | ; ones to request access will be the first ones to get it, 33 | ; so the correct order is guaranteed). It will then lock 34 | ; the routine and fix up the stack to unlock it when access 35 | ; is complete (when the routine completes execution and 36 | ; executes a POPJ P,). 37 | ; 38 | ; lock must be initialized to -1 before this routine is 39 | ; ever called (one time only). 40 | 41 | sixbit /ENTR./ 42 | entr.: aosn t2,(t1) ;is anyone currently executing the routine? 43 | jrst entr.3 ;no, it's safe 44 | subi t2,1 45 | 46 | entr.1: movei t3,ntry ;# of cycles before adjusting lock 47 | movei t4,stry ;sleep time between tries 48 | entr.2: hiber t4, ;wait a while 49 | halt 50 | camn t2,(t1) ;my turn yet? 51 | jrst entr.3 ;yep 52 | sojg t3,entr.2 ;try again 53 | 54 | ;By now it is assumed that something has gone wrong 55 | ;(probably the routine that had control aborted), so 56 | ;the lock must be adjusted to let the next job in line 57 | ;get control of the locked routine. 58 | 59 | msg <%Locked routine time out, modifying lock> 60 | sos t3,(t1) ;adjust lock by 1 61 | caile t2,(t3) ;my turn yet? 62 | jrst entr.1 ;no, wait some more 63 | 64 | ;It's ok to enter the routine now. Fix up the stack to 65 | ;unlock the routine when done. 66 | 67 | entr.3: movei t1,entr.4 ;address of unlock code 68 | exch t1,(p) ;fix up stack 69 | jrst (t1) ;return 70 | 71 | ;The locked routine has finished executing. Make it 72 | ;available to the next job in line. 73 | 74 | entr.4: sos %%lock%% 75 | popj p, 76 | -------------------------------------------------------------------------------- /EXTERN.TEC: -------------------------------------------------------------------------------- 1 | [Building EXTERN.FOR] 2 |  erMSG.MAC ewEXTERN.FOR 3 | ey s:: 0l -zk j 4 | !N! :s::"f oD' -2d 6d 0xl 0k .,.+1xd d i external  gl i ! 5 | !L! .u1 l 2r 6 | :q1,.fsd!"f i! l 1a"e a' i ! oL' l 1a"e a' oN 7 | !D! zk i 8 | 9 | 10 |  [Done] ex 11 | -------------------------------------------------------------------------------- /HIGH.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | subroutine high 22 | include 'param' 23 | include 'hiseg' 24 | common /timers/ timdum(250) ! used in WARMAC for performance timers 25 | end 26 | -------------------------------------------------------------------------------- /HISEG.TEC: -------------------------------------------------------------------------------- 1 | erWARMAC.MAC 2 | _subttl FORTRAN interface -- high 0l 4k !L1! "f a oL1' 3 | [Building HISEG.FOR] 4 |  ewHISEG.FOR 5 | j j i common /hiseg/ b,.xc b,.k 999un 6 | !L2! 1a"e oL3' .u1 l 2r :q1,.fs;!"s r' .u2 7 | :q1,q2ss"u l oL2' 8 | :q1,q2s,"s r fs,<( fs>) q2-1u2 .-q1-1u3 q3-(q3/8*8)-6"g '' 9 | q1j ss ss .u3 s[(, ] r q3,.xs l .u1 j gc %n-999"l i, ' qn-7"g i 10 | +  0un' gs b,.xc b,.k q3j l oL2 11 | !L3! j gc i 12 | 13 |  zj i 14 | 15 | 16 |  hp ef  17 | Don't forget to recompile HIGH 18 |  ^C 19 | -------------------------------------------------------------------------------- /HLP.COM: -------------------------------------------------------------------------------- 1 | DECNWS.RNO ;RUNOFF source file for DECWAR.NWS document. 2 | DECWAR.DIC ;Dictionary file for DECWAR documentation when using SPELL. 3 | DECWAR.HLP ;Current DECWAR Help file CONTAINING SYSTEM COMMENTS. Will 4 | ;be accessed by DECWAR player if he has Password set (instead 5 | ;of GAM: help file). Should NOT be put on GAM:, if a new 6 | ;copy needed, use MAKHLP. 7 | DECWAR.IMP ;RUNOFF source file for DECWAR implementation notes. 8 | DECWAR.LTR ;RUNOFF source file for response letter to enquiries for 9 | ;the source. 10 | DECWAR.NWS ;Current DECWAR News file (should also be on GAM:). 11 | DECWAR.RNH ;RUNOFF source file for DECWAR.HLP document. 12 | DEFINE.HLP ;Help text for defunct DEFINE command. Probably will never 13 | ;be implemented again, but... 14 | HLP .COM ;DMS comment file for [10,30,DECWAR,HLP] SFD. 15 | LICENS.MEM ;Decwar License agreement document. 16 | LICENS.RNO ;RUNOFF source file for License agreement. 17 | MAKHLP.MIC ;MICro to generate DECWAR.HLP files (either with or without 18 | ;'System' comments). 19 | MAKNWS.MIC ;MICro to generate DECWAR.NWS file. 20 | -------------------------------------------------------------------------------- /JUMP.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine plots a possible new location for ships and bases 22 | C after novas or photon torpedo hits. If the new location contains 23 | C a black hole, death! 24 | 25 | subroutine JUMP (nplc, j) 26 | include 'param/nolist' 27 | include 'hiseg/nolist' 28 | include 'lowseg/nolist' 29 | include 'extern/nolist' 30 | common /chkout/ V1, H1, V2, H2, dcode, disV, disH 31 | real disV, disH 32 | 33 | shjump = 0 34 | if (nplc .gt. DXESHP) goto 100 !ship? 35 | iloc1 = shpcon(j,KVPOS) ; jloc1 = shpcon(j,KHPOS) 36 | goto 300 37 | 100 if (nplc .eq. DXROM) goto 200 !base? 38 | iloc1 = base(j,KVPOS,nplc-2) ; jloc1 = base(j,KHPOS,nplc-2) 39 | goto 300 40 | 200 iloc1 = locr(KVPOS) ; jloc1 = locr(KHPOS) !romulan 41 | 42 | *.......Determine direction of blast, possible new location 43 | 44 | 300 iVV = iloc1 + disV 45 | iHH = jloc1 + disH 46 | if (.not. ingal (IVV, IHH)) return 47 | if (.not. (pdist (iloc1, jloc1, iVV, iHH) .eq. 1)) return 48 | l = dispc (iVV,iHH) 49 | if (l .eq. DXBHOL) goto 600 !blown into black hole? 50 | if (l .ne. DXMPTY) return !new location already occupied? 51 | 52 | *.......Displace to new location 53 | 54 | call setdsp (iloc1, jloc1, 0) 55 | call setdsp (iVV, iHH, (nplc * 100) + j) 56 | if (nplc .ne. DXROM) goto 400 57 | locr(KVPOS) = iVV ; locr(KHPOS) = iHH ; goto 500 58 | 400 if (nplc .lt. DXFBAS) shpcon(j,KVPOS) = iVV 59 | if (nplc .lt. DXFBAS) shpcon(j,KHPOS) = iHH 60 | if (nplc .ge. DXFBAS) base(j,KVPOS,nplc-2) = iVV 61 | if (nplc .ge. DXFBAS) base(j,KHPOS,nplc-2) = iHH 62 | 500 Vto = iVV ; Hto = iHH 63 | shjump = 1 64 | if (nplc .ge. DXFBAS) return 65 | shpcon(j,KSPCON) = RED ; docked(j) = .FALSE. 66 | return 67 | 68 | *.......Displaced into black hole! 69 | 70 | 600 call setdsp (iloc1, jloc1, 0) !zero out object's old location 71 | shjump = 1 72 | klflg = 1 ; Vto = iVV ; Hto = iHH 73 | if (nplc .ne. DXROM) goto 700 !romulan? 74 | ROM = .FALSE. 75 | return 76 | 77 | 700 if (nplc .lt. DXFBAS) shpcon(j,KSDAM) = KENDAM 78 | if (nplc .lt. DXFBAS) alive(j) = 0 79 | if (nplc .ge. DXFBAS) base(j,3,nplc-2) = 0 80 | return 81 | 82 | end 83 | -------------------------------------------------------------------------------- /KQSRCH.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine searches the KILQUE array for an entry matching 22 | C the argument list. If a match is found, KINDEX contains the 23 | C the matching KILQUE row number, else it returns as zero. 24 | 25 | subroutine KQSRCH (ttynum, jobnum, ppn, kindex) 26 | include 'param/nolist' 27 | include 'hiseg/nolist' 28 | include 'lowseg/nolist' 29 | include 'extern/nolist' 30 | 31 | kindex = 0 32 | if (nkill .eq. 0) return !no one has been killed yet 33 | do 100 ii = 1, nkill 34 | i = ii 35 | if ((jobnum .eq. kilque(i,1)) .and. (ppn .eq. kilque(i,2))) 36 | + goto 200 37 | c-- if ((ttynum .eq. kilque(i,3)) .and. 38 | c-- + (etim(kilque(i,4)) .lt. 180000)) goto 200 39 | 100 continue 40 | return !player not found in kill queue 41 | 42 | *.......Set KINDEX, update KILQUE entries 43 | 44 | 200 kindex = i 45 | kilque(i,1) = jobnum 46 | kilque(i,2) = ppn 47 | kilque(i,3) = ttynum 48 | return 49 | 50 | end 51 | -------------------------------------------------------------------------------- /L.CMD: -------------------------------------------------------------------------------- 1 | decwr/ssave 2 | decwar/map/contents:cref 3 | low/seg:low 4 | high/seg:high 5 | /seg:def 6 | decwar,blkdat,basbld,baskil,baspha,build,captur,check,chkpnt,clrbuf 7 | damage,dist,dock,dship,endgam,energy,free,getcmd,jump,kqsrch,list 8 | locate,lstscn,lstflg,lstupd,lstout,lstsum,lstobj,move,nova,outhit,outmsg 9 | paswrd,phacon,place,plnatk,plnrmv,points,pridis,prloc,prompt,radio,repair 10 | romdrv,romstr,romtor,scan,set,shield,snova,status,tell,time,tordam,torp,tractr 11 | trap,type,users 12 | msg 13 | warmac,warver 14 | cishng 15 | usrtmp 16 | lofchk 17 | sys:forlib/sea/seg:def 18 | setup/seg:low 19 | setmsg 20 | sys:forlib/sea/seg:low 21 | unv:layor1.rel 22 | /g 23 | -------------------------------------------------------------------------------- /L.MIC: -------------------------------------------------------------------------------- 1 | .set tty uc 2 | .let a = "'a" 3 | .set tty lc 4 | .if ($a = $a.[1,"/H"]) .goto L1 5 | !To load DECWAR, type @L/sw/sw... 6 | ! 7 | !/D debug using all symbols 8 | !/F use FORDDT instead of DDT 9 | !/E:nam generate an EXE file (nam defaults to DECWAR.EXE) 10 | !/G debug using only global symbols 11 | !/H type this text 12 | !/M:nam generate a map file (nam defaults to DECWAR.MAP) 13 | !/Q quick load, ignores any other switches except /H 14 | !/S:nam generate a symbol file (nam defaults to DECWAR.SYM) 15 | ! 16 | !For most debugging sessions use @L/D 17 | !For fast debugging sessions use @L/G 18 | !For fast debugging that doesn''t require symbols use @L/Q 19 | !To generate the production version use @L/M/S/E 20 | .mic exit 21 | L1:: 22 | .if ($a # $a.[1,"/Q"]) .goto L2 23 | .if ($a # $a.[1,"/D"]) .let d = "/d" 24 | .if ($a # $a.[1,"/F"]) .let d = "/d:for" 25 | .if ($a # $a.[1,"/G"]) .let g = "/d" 26 | .if ($a # $a.[1,"/M"]) .let m = "/map" 27 | .if ($a # $a.[1,"/M:"]) .let m = $a.["/M:","/"] + "/map" 28 | .if ($a # $a.[1,"/S"]) .let s = "/syfile" 29 | .if ($a # $a.[1,"/S:"]) .let s = $a.["/S:","/"] + "/syfile" 30 | .if ($a # $a.[1,"/E"]) .let e = "/ssave" 31 | .if ($a # $a.[1,"/E:"]) .let e = $a.["/E:","/"] + "/ssave" 32 | L2:: 33 | .revive .r link 34 | *'m 35 | *'s 36 | *'d 37 | *low/seg:low 38 | *high/seg:hi 39 | *decwar/seg:def 40 | *msg 41 | *warmac 42 | *sys:forlib/sea/seg:def 43 | *setup/seg:low 44 | *setmsg 45 | *sys:forlib/sea/seg:low 46 | *'g 47 | *'e 48 | */g 49 | -------------------------------------------------------------------------------- /LABCRE.ICD: -------------------------------------------------------------------------------- 1 | lim sru 0 2 | 3 | r 1022 4 | @labcre.dmc 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LDEB.CMD: -------------------------------------------------------------------------------- 1 | dwdeb/ssave 2 | dwdeb/map 3 | /symseg:high 4 | low/seg:low 5 | high/seg:high 6 | /seg:def 7 | decwar/l,blkdat/l,basbld/l,baskil/l,baspha/l,build/l,captur/l,check/l,chkpnt/l,clrbuf/l 8 | damage/l,dist/l,dock/l,dship/l,endgam/l,energy/l,free/l,getcmd/l,jump/l,kqsrch/l,list/l 9 | locate/l,lstscn/l,lstflg/l,lstupd/l,lstout/l,lstsum/l,lstobj/l,move/l,nova/l,outhit/l,outmsg/l 10 | paswrd/l,phacon/l,place/l,plnatk/l,plnrmv/l,points/l,pridis/l,prloc/l,prompt/l,radio/l,repair/l 11 | romdrv/l,romstr/l,romtor/l,scan/l,set/l,shield/l,snova/l,status/l,tell/l,time/l,tordam/l,torp/l,tractr/l 12 | trap/l,type/l,users/l 13 | msg/l 14 | warmac/l,warver/l 15 | cishng/l 16 | usrtmp/l 17 | lofchk/l 18 | sys:forlib/sea/seg:def 19 | setup/seg:low/l 20 | setmsg/l 21 | sys:forlib/sea/seg:low 22 | unv:layor1.rel 23 | /g 24 | -------------------------------------------------------------------------------- /LINE.CMD: -------------------------------------------------------------------------------- 1 | cisrev.dat/skip:1 2 | B.AN 3 | Y 4 | dif:line.dif 5 | nlt 6 | kb 7 | SX 8 | SY 9 | HX 10 | KT 11 | IA:X,1.5 12 | IA:Y,1.5 13 | loc:d,2.25,1.5,7,4 14 | 15 | 2/blu 16 | \TR\CompuServe\CR\ Information Service 17 | ON LINE SERVICE REVENUE 18 | FISCAL '82 19 | REVENUE 20 | 3 21 | REVENUE/GRN 22 | 23 | 1 24 | 1 25 | -------------------------------------------------------------------------------- /LIST.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C LIST -- List various info (location, shield percent, number of 22 | C builds) on ships, bases, and planets. 23 | 24 | subroutine LIST 25 | include 'param/nolist' 26 | include 'hiseg/nolist' 27 | include 'lowseg/nolist' 28 | include 'extern/nolist' 29 | include 'lstvar' 30 | 31 | cmd = LSTCMD !command is LIST 32 | goto 100 33 | 34 | entry SUMMAR !command is SUMMARY 35 | cmd = SUMCMD 36 | goto 100 37 | 38 | entry BASES 39 | cmd = BASCMD !command is BASES 40 | goto 100 41 | 42 | entry PLANET 43 | cmd = PLNCMD !command is PLANET 44 | goto 100 45 | 46 | entry TARGET 47 | cmd = TARCMD !command is TARGET 48 | 49 | 100 call blkset (lstfz, 0, locf(lstlz)-locf(lstfz)+1) 50 | svpos = shpcon(who,KVPOS) ; shpos = shpcon(who,KHPOS) 51 | 52 | call crlf 53 | 54 | p = 1 ; n = 0 55 | 200 if (p .gt. KMAXTK) return 56 | if (typlst(p) .eq. KEOL) goto 300 57 | call lstscn ($400) !scan group from input line 58 | call lstflg ($200) !set list flags according to group bits 59 | n = n + 1 60 | goto 200 61 | 62 | 300 if (n .ne. 0) call lstout !output flagged items 63 | 400 return 64 | 65 | end 66 | -------------------------------------------------------------------------------- /LOAD.CMD: -------------------------------------------------------------------------------- 1 | set echo on 2 | compile lofchk 3 | compile warmac,cishng,msg,setmsg,(nowarn)/f10 setup,@decwar,low,high 4 | r link 5 | @l 6 | r link 7 | @ldeb 8 | -------------------------------------------------------------------------------- /LOCAL.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | subroutine turkey 22 | include 'param/nolist' 23 | common /local/ dummy(locsiz) 24 | return 25 | end 26 | -------------------------------------------------------------------------------- /LOFCHK.MAC: -------------------------------------------------------------------------------- 1 | ; This file is part of Decwar. 2 | ; Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | ; Computation Center and Harris Newman. 4 | 5 | ; This program is free software; you can redistribute it and/or modify 6 | ; it under the terms of the GNU General Public License as published by 7 | ; the Free Software Foundation; either version 3, or (at your option) 8 | ; any later version. 9 | 10 | ; This program is distributed in the hope that it will be useful, 11 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ; GNU General Public License for more details. 14 | 15 | ; You should have received a copy of the GNU General Public License 16 | ; along with this program; if not, write to the Free Software 17 | ; Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | ; 02110-1301, USA. 19 | 20 | 21 | title lofchk - check to see if user has exceeded his alloted on-time 22 | 23 | search sysmac 24 | twoseg 25 | reloc 400000 26 | entry lofchk 27 | 28 | lofchk: setz ra, ; assume he can stay 29 | skipn uloft.## ; if a forced log-off time is set 30 | popj $s, ; then 31 | calli $v,-200210 ; get current GMT 32 | setz $v, ; worst case if fails is to keep him 33 | camge $v,uloft.## ; if current GMT exceend logoff time 34 | popj $s, ; then 35 | 36 | ; Time to go, Charlie! 37 | ; Tell the user it is bye-bye time 38 | 39 | 40 | hlrz $v,usppn.# ; if Tandy demo account 41 | cain $v,70005 42 | jrst [outstr [asciz " 43 | 44 | The allotted amount of demo time 45 | expired. 46 | 47 | "] 48 | jrst logoff] 49 | hlrz $v,usmxt.## ; get max time allowed 50 | cain $v,^d60 ; if in first hour 51 | jrst [outstr [asciz " 52 | 53 | Your initial hour of connect time 54 | has expired. In order to con- 55 | tinue using the Information 56 | Service, you will have to log 57 | on again and complete the 58 | sign-on procedure (option 1). 59 | 60 | "] 61 | jrst logoff] 62 | cain $v,^d180 ; if signup direct user 63 | jrst [outstr [asciz " 64 | 65 | Your additional 2 hours of con- 66 | nect time has expired. You will 67 | be unable to use the Information 68 | Service until your new password 69 | arrives by mail. 70 | 71 | "] 72 | jrst logoff] 73 | outstr [asciz " 74 | Your allotted amount of time has 75 | expired. 76 | "] 77 | logoff: seto ra, 78 | popj $s, ; return .true. if time to go 79 | 80 | end 81 | 82 | -------------------------------------------------------------------------------- /LOW.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | subroutine low 22 | include 'param' 23 | include 'lowseg' 24 | common /local/ locdum(200) 25 | end 26 | -------------------------------------------------------------------------------- /LOWSEG.TEC: -------------------------------------------------------------------------------- 1 | erWARMAC.MAC 2 | _subttl FORTRAN interface -- low 0l 4k !L1! "f a oL1' 3 | [Building LOWSEG.FOR] 4 |  ewLOWSEG.FOR 5 | j i common /lowseg/ b,.xc b,.k 999un 6 | !L2! 1a"e oL3' .u1 l 2r :q1,.fs;!"s r' .u2 7 | :q1,q2ss"u l oL2' 8 | :q1,q2s,"s r fs,<( fs>) q2-3u2 .-q1-1u3 q3-(q3/8*8)-6"g '' 9 | q1j ss ss .u3 s[(, ] r q3,.xs l .u1 j gc %n-999"l i, ' qn-7"g i 10 | +  0un' gs b,.xc b,.k q3j l oL2 11 | !L3! j gc i 12 | 13 |  zj i 14 | 15 | 16 |  hp ef  17 | Don't forget to recompile LOW 18 |  ^C 19 | -------------------------------------------------------------------------------- /LSTOBJ.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C LISOBJ -- List object (ship, base, or planet). Include 22 | C possibly name, location, shield percent, number of builds, 23 | C depending on the object, range, side, etc. Flag line with * 24 | C in column 1 if the object is an enemy. 25 | 26 | subroutine LSTOBJ 27 | include 'param/nolist' 28 | include 'hiseg/nolist' 29 | include 'lowseg/nolist' 30 | include 'extern/nolist' 31 | include 'lstvar/nolist' 32 | 33 | C Input from LSTVAR: 34 | C SVPOS,SHPOS ship position 35 | C CODE display code of object 36 | C OBJECT object code [CODE/100] 37 | C INDEX object index [MOD(CODE,100)] 38 | C VPOS,HPOS position of object 39 | C SIDE which side the object is on 40 | C CMD command being executed 41 | C XF ORNBIT 42 | 43 | if ((side .eq. 0) .or. (side .eq. team) .or. (cmd .eq. TARCMD)) 44 | + goto 100 45 | call outc ('*') ; goto 200 46 | 100 call space 47 | 48 | 200 call odisp (code,0) 49 | if (oflg .eq. LONG) call tab (14) 50 | if (oflg .ne. LONG) call tab (5) 51 | 52 | goto (400, 400, 600, 600, 300, 700, 700, 700) object 53 | 54 | C.......Romulan 55 | 300 if ((xf .and. ORNBIT) .ne. 0) goto 500 !out of range 56 | call prloc (vpos, hpos, 0, 2, ocflg, oflg) 57 | call oflt (erom,6) 58 | if (oflg .ne. SHORT) call outc ('%') 59 | goto 800 60 | 61 | C.......ship 62 | 400 if ((xf .and. ORNBIT) .ne. 0) goto 500 !out of range 63 | call prloc (vpos, hpos, 0, 2, ocflg, oflg) 64 | spc = shpcon(index,KSHCON) * shpcon(index,KSSHPC) 65 | call osflt (spc,6) 66 | if (oflg .ne. SHORT) call outc ('%') 67 | goto 800 68 | 500 call out ('out of range',0) 69 | goto 800 70 | 71 | C.......base 72 | 600 call prloc (vpos, hpos, 0, 2, ocflg, oflg) 73 | if ((xf .and. ORNBIT) .ne. 0) goto 800 !out of range 74 | call oflt (base(index,3,side),6) 75 | if (oflg .ne. SHORT) call outc ('%') 76 | goto 800 77 | 78 | C.......planet 79 | 700 call prloc (vpos, hpos, 0, 2, ocflg, oflg) 80 | b = locpln(index,3) ; if (b .eq. 0) goto 800 81 | call odec (b,6) 82 | if ((oflg .eq. LONG) .and. (b .ne. 1)) call out (' builds',0) 83 | if ((oflg .eq. LONG) .and. (b .eq. 1)) call out (build3,0) 84 | if (oflg .eq. MEDIUM) call out (' b',0) 85 | 86 | 800 call crlf 87 | return 88 | c 89 | end 90 | -------------------------------------------------------------------------------- /LSTSUM.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C LSTSUM -- List summary line 22 | 23 | subroutine LSTSUM (n, str, f) 24 | include 'param/nolist' 25 | include 'hiseg/nolist' 26 | include 'lowseg/nolist' 27 | include 'extern/nolist' 28 | integer str(1) 29 | 30 | if (n .eq. 0) return 31 | call odec (n,3) 32 | if ((f .and. KNOBIT) .ne. 0) call out (known,0) !" known" 33 | call space 34 | call out (str,0) ; if (n .ne. 1) call outc('s') 35 | if (oflg .eq. SHORT) goto 100 36 | msg = locf(inrang) !" in range" 37 | if ((f .and. ISRBIT) .ne. 0) msg = locf(inspra) !" in specified range" 38 | if ((f .and. IGMBIT) .ne. 0) msg = locf(ingame) !" in game" 39 | call out (msg,0) 40 | 100 call crlf 41 | n = 0 42 | return 43 | 44 | end 45 | -------------------------------------------------------------------------------- /LSTUPD.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C LSTUPD -- Update list flags for given object (ship, base, planet) 22 | C if it's allowed to be listed (or included in a summary). 23 | 24 | subroutine LSTUPD (lstmsk, objctr, scnbts, xxf) 25 | include 'param/nolist' 26 | include 'hiseg/nolist' 27 | include 'lowseg/nolist' 28 | include 'extern/nolist' 29 | include 'lstvar/nolist' 30 | 31 | d = pdist (sVpos, sHpos, Vpos, Hpos) 32 | 33 | xf = gxf 34 | 35 | if (d .le. KRANGE) goto 400 !within range 36 | if (side .eq. team) goto 400 !friendly 37 | if (.not. PASFLG) goto 100 38 | xf = xf .or. PASBIT ; goto 400 !god 39 | 100 xf = xf .or. ORNBIT !out of range 40 | if (range .le. KRANGE) goto 200 41 | grpbts = grpbts .or. KNOBIT !"no KNOWN x in s.range/game" 42 | if ((xf .and. IGMBIT) .eq. 0) xf = xf .or. KNOBIT 43 | 200 txf = txf .or. xf !update target summary flags 44 | if ((scnbts .and. team) .ne. 0) goto 400 !already scanned 45 | 46 | if ((xf .and. SUMBIT) .eq. 0) goto 700 !not requesting summary 47 | if ((xf .and. IGMBIT) .eq. 0) goto 700 !not requesting entire game 48 | xf = xf.and..not.LSTBIT !allow summary only (no list) 49 | goto 500 50 | 51 | 400 if (d .gt. range) goto 700 !not in requested range 52 | if ((imask .and. CLSBIT) .ne. 0) goto 600 !looking for closest 53 | 500 lstmsk = lstmsk .or. xf 54 | objctr = objctr + 1 55 | grpbts = grpbts .or. xf 56 | xxf = xxf .or. xf 57 | return 58 | 59 | 600 if (d .gt. clsest) goto 700 !looking for closest 60 | clsest = d ; Vposc = Vpos ; Hposc = Hpos 61 | 700 grpbts = grpbts .or. (xf .and. (IRNBIT .or. ISRBIT .or. 62 | + IGMBIT .or. ORNBIT)) 63 | xxf = xxf .or. xf 64 | return 65 | 66 | end 67 | -------------------------------------------------------------------------------- /LSTVAR.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | common /local/ 22 | + lstfz, 23 | + shpctr(2), shplst(KNPLAY), sxf(2), 24 | + romctr, romlst, rxf, 25 | + basctr(2), baslst(KNBASE,2), bxf(2), 26 | + plnctr, plnlst(KNPLNT), pxf(0:2), 27 | + txf, 28 | + lstlz, 29 | + cmd, svpos, shpos, 30 | + p, omask, smask, lmask, imask, ships, range, vpos, hpos, gxf, 31 | + vposc, hposc, clsest, 32 | + xf, grpbts, code, object, index, side 33 | 34 | C shpctr number of ships selected for output 35 | C shplst output flags for each ship 36 | C sxf ship summary flags 37 | C romctr number of Romulans selected for output (0 or 1) 38 | C romlst Romulan output flags 39 | C rxf Romulan summary flags 40 | C basctr number of bases selected for output 41 | C baslst output flags for each base 42 | C bxf base summary flags 43 | C plnctr number of planets selected for output 44 | C plnlst output flags for each planet 45 | C pxf planet summary flags 46 | C txf target summary flags 47 | 48 | C cmd command being executed 49 | C svpos vertical position of ship 50 | C shpos horizontal position of ship 51 | 52 | C p pointer to current input token 53 | C omask object mask (SHPBIT,BASBIT,PLNBIT) 54 | C smask side mask (FEDBIT,EMPBIT,NEUBIT,ROMBIT) 55 | C lmask listing flags (LSTBIT,SUMBIT) 56 | C imask input flags (NAMBIT,ROMBIT,SHPBIT,BASBIT,PLNBIT,PRTBIT, 57 | C CRDBIT,FEDBIT,EMPBIT,NEUBIT,CAPBIT,RNGBIT,CLSBIT,OUTBIT) 58 | C ships ships encountered on input line 59 | C range maximum range to look for objects 60 | C vpos vertical position of object 61 | C hpos horizontal position of object 62 | C gxf group summary flags 63 | 64 | C vposc vertical coordinate of closest object 65 | C hposc horizontal coordinate of closest object 66 | C clsest distance to closest object 67 | 68 | C xf {LSTBIT,SUMBIT,ORNBIT,PASBIT} 69 | C grpbts selection bits for group (used for error message) 70 | C code disply code of object 71 | C object object code (code div 100) 72 | C index object index (code mod 100) 73 | C side team object is on (0=neutral,1=Federation,2=Empire,3=Romulan) 74 | -------------------------------------------------------------------------------- /MAKHLP.MIC: -------------------------------------------------------------------------------- 1 | .if ($a="s") .let a = "/var:system" 2 | .revive 3 | .r new:runoff (decwar.hlp/cr/und:sep'a=decwar.rnh) 4 | -------------------------------------------------------------------------------- /MAKNWS.MIC: -------------------------------------------------------------------------------- 1 | .r new:runoff (decwar.nws/cr=decnws.rno) 2 | -------------------------------------------------------------------------------- /MSC.COM: -------------------------------------------------------------------------------- 1 | DECW11.FXD ;Fixed gripes as of version 1.2 update. 2 | DECW13.FXD ;Fixed gripes as of version 2.0 update. 3 | DECW21.FXD ;Fixed gripes as of version 2.2 update. 4 | DEFINE.FOR ;Archived source code for defunct DEFINE command (was used 5 | ;to define/redefine radio message groups). 6 | MSC .COM ;DMS comment file for [10,30,decwar,msc] SFD. 7 | OUTHDB.FOR ;Fortran 'chunk' for insertion in OUTHIT subroutine in DECWAR 8 | ;when debugging hit messages (will echo back parameters 9 | ;returned by GETHIT call). 10 | TTY .EXE ;Routine to echo ASCII character codes. 11 | TTY .MAC ;Source to TTY.EXE 12 | -------------------------------------------------------------------------------- /NDX.TEC: -------------------------------------------------------------------------------- 1 | [Building DECWAR.NDX] 2 |  erdecwar.for ewdecwar.ndx 3 | hk bub 1up !P! "t %p' "t oD' qb,zk a !N! 4 | :ssubroutine"s 10uc oA' 5 | :sfunction"s 8uc oA' 6 | :sentry"s 5uc oA' 7 | :sprogram"s 7uc oA' 8 | :sblock"s 5uc oA' 9 | oP 10 | !A! .u1 0l ss r q1-.-qc"n l oN' 11 | . 0l qb,.k iPage  qp\ ^o11i l .ub oN 12 | !D! qb,zk  13 | Done 14 |  pef ^c 15 | -------------------------------------------------------------------------------- /NETREV.CMD: -------------------------------------------------------------------------------- 1 | CISREV.DAT/SKIP:1 2 | B.AN 3 | Y 4 | DIF:NETREV.DIF 5 | NLT 6 | KB 7 | SX 8 | SY 9 | HX 10 | kt 11 | ia:x,1.5 12 | ia:y,1.5 13 | loc:d,2.25,1.5,7,4 14 | 15 | 2/BLU 16 | \tr\CompuServe\cr\ Information Service 17 | REVENUE NET OF CREDITS 18 | FISCAL '82 19 | REVENUE 20 | 1 21 | REVENUE NET OF CREDITS/GRN 22 | 23 | 1 24 | 1 25 | -------------------------------------------------------------------------------- /OUTHDB.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | 22 | *.......Echo input (diagnostic print) 23 | 24 | if (.not. PASFLG) goto 222 25 | call out ('iwhat: ',0) ; call odec (iwhat,0) 26 | call out (' ihita: ',0) ; call odec (ihita,0) ; call crlf 27 | call out ('xto: ',0) ; call odec (xto,0) 28 | call out (' yto: ',0) ; call odec (yto,0) ; call crlf 29 | call out ('xfrom: ',0) ; call odec (xfrom,0) 30 | call out (' yfrom: ',0) ; call odec (yfrom,0) ; call crlf 31 | call out ('critdv: ',0) ; call odec (critdv,0) 32 | call out (' critdm: ',0) ; call odec (critdm,0) ; call crlf 33 | call out ('klflag: ',0) ; call odec (klflag,0) 34 | call out (' shjump: ',0) ; call odec (shjump,0) ; call crlf 35 | call out ('dispto: ',0) ; call odec (dispto,0) 36 | call out (' dispfr: ',0) ; call odec (dispfr,0) ; call crlf 37 | call out ('shcnto: ',0) ; call odec (shcnto,0) 38 | call out (' shstto: ',0) ; call odec (shstto,0) ; call crlf 39 | call out ('shcnfr: ',0) ; call odec (shcnfr,0) 40 | call out (' shstfr: ',0) ; call odec (shstfr,0) ; call crlf 41 | 222 continue 42 | -------------------------------------------------------------------------------- /OUTMSG.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine searches for and prints out messages received by 22 | C the ship's sub-space radio. 23 | 24 | subroutine OUTMSG 25 | include 'param/nolist' 26 | include 'hiseg/nolist' 27 | include 'lowseg/nolist' 28 | include 'extern/nolist' 29 | common /omlocl/ msg(16) 30 | 31 | 100 dbits = 0 ; dispfr = 0 32 | if (msgflg(who) .eq. 0) return !any more messages? 33 | 34 | call getmsg (who, msg) !get another message 35 | if (dispfr .eq. 0) goto 400 !message not from player 36 | if ((gagmsg .and. bits(mod(dispfr,100))) .ne. 0) goto 100 37 | call out (mess01,0) !message from ... 38 | call odisp (dispfr, 1) 39 | call out (mess02,0) 40 | 41 | k = 1 42 | do 300 i = 1, KNPLAY !message to ... 43 | if ((dbits .and. k) .eq. 0) goto 200 44 | call out2c (names(i,3)) 45 | 200 k = k * 2 46 | 300 continue 47 | 48 | *.......Print out message 49 | 50 | call crlf 51 | 400 call out (msg,1) 52 | goto 100 53 | 54 | end 55 | -------------------------------------------------------------------------------- /PAGE.TCO: -------------------------------------------------------------------------------- 1 | hk erDECWAR.NDX$ j i<_^R^T$ 2 | 3 | :8^T"s 4 | !RESCAN! ^Tuc 5 | qc-^^-"n oRESCAN$' 6 | 7 | !IN! ^Tuc 8 | qc-^O012"e oSEARCH$' 9 | qc-^O013"e oSEARCH$' 10 | qc-^O014"e oSEARCH$' 11 | qc-^O015"e oIN$' 12 | qc-^o022"e oSEARCH$' 13 | qc-^o024"e oSEARCH$' 14 | qc-^O032"e oSEARCH$' 15 | qc-^O033"e ^A^M^J^A oSEARCH$' 16 | qci$ oIN$' 17 | 18 | !SEARCH! 19 | i^R$; 0tt %m>$ 20 | 3,.-10xs -zxi mi 21 | qm"e ^ACan't find "^A 0et qs= ^A"^M^J^A' 22 | ^C 23 | -------------------------------------------------------------------------------- /PAGE.TEC: -------------------------------------------------------------------------------- 1 | hk erDECWAR.NDX j i<_ 2 | 3 | :8"s 4 | !RESCAN! uc 5 | qc--"n oRESCAN' 6 | 7 | !IN! uc 8 | qc-012"e oSEARCH' 9 | qc-013"e oSEARCH' 10 | qc-014"e oSEARCH' 11 | qc-015"e oIN' 12 | qc-022"e oSEARCH' 13 | qc-024"e oSEARCH' 14 | qc-032"e oSEARCH' 15 | qc-033"e  16 |  oSEARCH' 17 | qci oIN' 18 | 19 | !SEARCH! 20 | i; 0ttl %m> 21 | 3,.-10xs -zxi mi 22 | qm"e Can't find " 0et qs= " 23 | ' 24 |  25 | -------------------------------------------------------------------------------- /PARAM.TEC: -------------------------------------------------------------------------------- 1 | erWARMAC.MAC 2 | _subttl FORTRAN interface -- param 0l 4k !L1! "f a oL1' 3 | [Building PARAM.FOR] 4 |  ewPARAM.FOR 5 | j 6 | !L2! 1a"e oL3' .u1 l 2r :q1,.fs;!"s r' .u2 7 | :q1,q2ss"u l oL2' 8 | :q1,q2fs==="s -s  iparameter  q2+9u2 s= 1u3 9 | 1a-^^^"e 0u3 2d i" q2-1u2' 10 | :.,q2fs "s q2-1u2 11 | 1a-^o11"e .-q1-1u4 q4-(q4/8*8)-q3"l 1a-^o11"e d q2-1u2'''' 12 | ' q2-1j 1a-^o011"n 1a-^o040"n c 1a-^o015"n i ''' l oL2 13 | !L3! j i implicit integer (a-z) 14 | 15 |  zji 16 | real ran,pwr 17 | 18 | 19 | 20 |  hp ef ^c 21 | -------------------------------------------------------------------------------- /PASWRD.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine sets (and unsets) the password flag for use in 22 | C debugging, cheating, etc. 23 | 24 | subroutine PASWRD 25 | include 'param/nolist' 26 | include 'hiseg/nolist' 27 | include 'lowseg/nolist' 28 | include 'extern/nolist' 29 | 30 | PASFLG = equal(tknlst(2), KPASS, 1) !match the password? 31 | if (PASFLG .eq. -1) PASFLG = 0 !not an exact match 32 | C 70725 project added by merlyn (drforbin) 33 | if ((usrprj(0) .ne. "70000) .and. (usrprj(0) .ne. "337) .and. 34 | + (usrprj(0) .ne. "70006) 35 | +.and. (usrprj(0) .ne. "70725)) !added 36 | + pasflg = 0 37 | if (PASFLG) return !is he ok? 38 | call out (unkcom, 0) !WHAT password routine!?! 39 | if (oflg .ne. short) call out (forhlp, 1) 40 | return 41 | 42 | end 43 | -------------------------------------------------------------------------------- /PDWDOC.CMD: -------------------------------------------------------------------------------- 1 | pdwdoc/ssave pdwdoc,usrtmp 2 | -------------------------------------------------------------------------------- /PDWDOC.XF4: -------------------------------------------------------------------------------- 1 | options twoseg,literals(high),control 2 | program pdwdoc 3 | c Print documentation for DECWAR 4 | 5 | implicit integer (a-z) 6 | string line 7 | dimension route(7, 7) 8 | 9 | call rstusr ! get tmpcor:usr in place 10 | call gwdusr(0, ppn) ! get user's ppn 11 | call gwdusr(16, status) ! and his status bits 12 | if ((status .and. %100000000000) .ne. 0) then 13 | type "('0Sorry, but you are NOT authorized to')" 14 | type "(' make purchases at this time.')" 15 | goto $exit 16 | endif 17 | type "('0The DECWAR documentation will be')" 18 | type "(' printed at our standard line printer')" 19 | type "(' rates of 10 cents/page plus $1.50')" 20 | type "(' postage and handling. The net cost')" 21 | type "(' will be approximately $4.00 and will')" 22 | type "(' be added to your account.')" 23 | type "('0Do you wish to receive this document? '$)" 24 | accept "([L])", line 25 | if (upper(line) .ne. "Y") goto $exit 26 | open (unit=20, file='DECWAR.DOC', device='DSK', mode='ASCII', 27 | & access='SEQIN', err=$exit) 28 | 29 | $gad: type "('0Please enter mailing information,')" 30 | type "(' enter a blank line to terminate:'/)" 31 | do $clr, i = 1, 7 32 | do $clr, j = 1, 7 33 | route(i,j) = ' ' 34 | $clr: continue 35 | pj = ppn/%1000000 36 | pg = ppn .and. %777777 37 | encode (32, "(o6','o6)", route(1,1)) pj, pg 38 | i = 1 39 | $nad: accept "(6a5,a2)", (route(j, i+1), j=1,7) 40 | do $zch, j = 1, 7 41 | if (route(j,i+1) .ne. ' ') goto $nad0 42 | $zch: continue 43 | goto $hvadr 44 | $nad0: i = i + 1 45 | if (i .eq. 7) goto $hvadr 46 | goto $nad 47 | 48 | $hvadr: if (i .eq. 0) then 49 | type "('0I can''t mail it to you unless')" 50 | type "(' I have your address!')" 51 | goto $gad 52 | endif 53 | type "('0Please wait while I print the file....')" 54 | 55 | call devwhe ('LPT', curloc) 56 | call devloc ('LPT', 'COL', lstat) 57 | open (unit=21, file='DECWAR.tmp', device='LPT', mode='FCC', 58 | & access='SEQOUT') 59 | call forms (21, 1, 117, 7, route(1,1), route(1,2), route(1,3), 60 | & route(1,4), route(1,5), route(1,6), route(1,7)) 61 | 62 | $cpy: read (20, "([V])", end=$cpye) line 63 | write (21, "(x[V])") line 64 | goto $cpy 65 | 66 | $cpye: close (unit=21) 67 | close (unit=20) 68 | call devloc('LPT', curloc, lstat) 69 | type "('0Thank you for waiting!'/)" 70 | 71 | $exit: call runit (20, 'DECWAR') 72 | end 73 | -------------------------------------------------------------------------------- /PLACE.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine is used to randomly position objects in the 22 | C universe. It can position one or many such objects in a 23 | C single call. It is called by SETUP and ROMDRV. 24 | 25 | subroutine PLACE (object, n, V, H) 26 | include 'param/nolist' 27 | include 'hiseg/nolist' 28 | include 'lowseg/nolist' 29 | include 'extern/nolist' 30 | 31 | do 600 k = 1, n 32 | 100 V = iran (KGALV) !find random V location 33 | H = iran (KGALH) !find random H location 34 | if (disp(V,H) .ne. 0) goto 100 !position already filled? 35 | if (object/100 .gt. DXESHP) goto 500 !PLACEing a ship? 36 | 37 | * Check to make sure ship is not PLACEd in enemy territory. 38 | 39 | pteam = 3 - (object/100) 40 | if (nbase(pteam) .le. 0) goto 300 41 | do 200 i = 1, KNBASE 42 | if (ldis (V, H, base(i,KVPOS,pteam), base(i,KHPOS,pteam), 4)) 43 | + goto 100 44 | 200 continue 45 | 300 if ((nplnet .le. 0) .or. (numcap(pteam) .le. 0)) goto 500 46 | do 400 i = 1, nplnet 47 | if (pteam .ne. dispc (locpln(i,KVPOS), locpln(i,KHPOS))) 48 | + goto 400 49 | if (ldis (V, H, locpln(i,KVPOS), locpln(i,KHPOS), 2)) 50 | + goto 100 51 | 400 continue 52 | 500 call setdsp (V, H, object) !set up display code 53 | c--- if (object/100 .lt. DXSTAR) call setdsp (V, H, (disp(V,H) + k)) 54 | 600 continue 55 | return 56 | 57 | end 58 | -------------------------------------------------------------------------------- /PLNRMV.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine is called whenever a planet is destroyed. It 22 | C updates the planetary information, and checks if this ends 23 | C the game or undocks a player. 24 | 25 | subroutine PLNRMV (i,pteam) 26 | include 'param/nolist' 27 | include 'hiseg/nolist' 28 | include 'lowseg/nolist' 29 | include 'extern/nolist' 30 | 31 | if (pteam .lt. 0) return 32 | if (i .gt. nplnet) return 33 | if (i .le. 0) return 34 | if (pteam .le. 0) goto 100 !a captured planet? 35 | if (pteam .gt. 2) goto 100 36 | numcap(pteam) = numcap(pteam) - 1 37 | call baskil (pteam) !anybody docked at it? 38 | 39 | * Shift the planet array into the empty row 40 | 41 | 100 if (i .eq. nplnet) goto 110 42 | call blkmov (locpln(i+1,KVPOS), locpln(i,KVPOS), nplnet-i) 43 | call blkmov (locpln(i+1,KHPOS), locpln(i,KHPOS), nplnet-i) 44 | call blkmov (locpln(i+1,3), locpln(i,3), nplnet-i) 45 | call blkmov (locpln(i+1,4), locpln(i,4), nplnet-i) 46 | 47 | 110 nplnet = nplnet - 1 48 | 49 | * update display codes 50 | 51 | if ((nplnet .le. 0) .or. (i .gt. nplnet)) go to 300 52 | do 200 j = i, nplnet 53 | call setdsp (locpln(j,KVPOS), locpln(j,KHPOS), 54 | + (disp (locpln(j,KVPOS), locpln(j,KHPOS)) - 1)) 55 | 200 continue 56 | 57 | 300 call endgam !end of game? 58 | return 59 | 60 | end 61 | -------------------------------------------------------------------------------- /PRIDIS.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine builds a low segment variable DBITS which 22 | C indicates (using individual bits) the active ships within ILIM 23 | C sectors of the specified location (iV, iH). IFLAG modifies 24 | C this command: 0 = all ships, 1 = only federation ships, and 25 | C 2 = only klingon ships. This routine is used by MAKHIT and 26 | C GETHIT to determine who should receive a particular hit 27 | C message. If ZERO = 0, then DBITS is initially set to 0. 28 | 29 | subroutine PRIDIS (iV, iH, ilim, iflag, zero) 30 | include 'param/nolist' 31 | include 'hiseg/nolist' 32 | include 'lowseg/nolist' 33 | include 'extern/nolist' 34 | 35 | li = 1 ; lj = KNPLAY 36 | if (iflag .eq. 1) lj = KNPLAY / 2 37 | if (iflag .eq. 2) li = (KNPLAY / 2) + 1 38 | if (zero .eq. 0) dbits = 0 39 | do 100 i = li, lj 40 | if (alive(i) .gt. 0) goto 100 !alive? 41 | if (ldis(iV,iH,shpcon(i,KVPOS),shpcon(i,KHPOS),ilim)) 42 | + dbits = dbits .or. bits(i) !add to DBITS if in range 43 | 100 continue 44 | return 45 | 46 | end 47 | -------------------------------------------------------------------------------- /PRLOC.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine prints out a sector location (v,h) in the form 22 | C v-h. A carriage return suffixes this print line if prcflg 23 | C is non-zero. w should be either 2 or 0 (free format). Prlflg 24 | C determines whether to output relative, absolute, or both 25 | C coordinates (usually OCFLG, but sometimes KABS). Proflg 26 | C determines whether to output in the short, medium, or long 27 | C format (usually oflg, but sometimes SHORT). 28 | 29 | subroutine PRLOC (v, h, prcflg, w, prlflg, proflg) 30 | include 'param/nolist' 31 | include 'hiseg/nolist' 32 | include 'lowseg/nolist' 33 | include 'extern/nolist' 34 | 35 | if (prlflg .eq. KREL) goto 100 36 | if (proflg .ne. SHORT) call outc('@') 37 | call odec (v,w) 38 | call outc ('-') 39 | call odec (h,w) 40 | 41 | 100 if ((pdist(v, h, shpcon(who,KVPOS), shpcon(who,KHPOS)) .eq. 0) 42 | + .and. (w .eq. 0)) goto 200 43 | if (prlflg .eq. KBOTH) call space 44 | 45 | if (prlflg .eq. KABS) goto 200 46 | tw = w ; if (w .ne. 0) tw = w + 1 47 | call osdec (v-shpcon(who,KVPOS), tw) 48 | call outc (',') 49 | call osdec (h-shpcon(who,KHPOS), tw) 50 | 51 | 200 if (prcflg .ne. 0) call crlf 52 | return 53 | 54 | end 55 | -------------------------------------------------------------------------------- /PROMPT.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine outputs either the 'normal' (Command: ) command 22 | C prompt, or an 'informative' command prompt. The 'informative' 23 | C command prompt consists of a '> ', preceded by any and/or all 24 | C of the following: D : Ship damages > 2000 units, 25 | C E : Ship energy < 1000 units, 26 | C S : Shields down or < 10%, 27 | C nL : Ship life support damaged, reserves 28 | C of n stardates. 29 | 30 | subroutine PROMPT 31 | include 'param/nolist' 32 | include 'hiseg/nolist' 33 | include 'lowseg/nolist' 34 | include 'extern/nolist' 35 | 36 | if (prtype) go to 100 !normal or informative prompt? 37 | call out (comlin,0) !normal prompt... 38 | return 39 | 40 | *.......Analyse and output pertinent ship conditions. 41 | 42 | 100 if (shpdam(who,KDLIFE) .ge. KCRIT) 43 | + call odec (shpcon(who,KLFSUP), 0) 44 | if (shpdam(who,KDLIFE) .ge. KCRIT) call outc ('L') 45 | if ((shpcon(who,KSSHPC) .le. 100) .or. (shpcon(who,KSHCON) 46 | + .lt. 0)) call outc ('S') 47 | if (shpcon(who,KSDAM) .ge. 20000) call outc ('D') !ship damages > 2000? 48 | if (shpcon(who,KSNRGY) .le. 10000) call outc ('E') !yellow alert? 49 | call out2c ('> ') !finish prompt... 50 | return 51 | 52 | end 53 | -------------------------------------------------------------------------------- /RADIO.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine enables the user to stop (or restore) the ability 22 | C to receive messages from other ships using the sub-space radio. 23 | C Messages from individual ships may also be gagged. 24 | 25 | subroutine RADIO 26 | include 'param/nolist' 27 | include 'hiseg/nolist' 28 | include 'lowseg/nolist' 29 | include 'extern/nolist' 30 | 31 | *.......Get commmand (on, off, gag, or ungag) 32 | 33 | call crlf 34 | index = 2 35 | if (typlst(2) .eq. KALF) goto 200 36 | 100 index = 1 37 | call out (radio0, 0) 38 | call gtkn 39 | if (typlst(1) .eq. KEOL) return 40 | call crlf 41 | 200 if (equal (tknlst(index), 'ON')) goto 1000 42 | if (equal (tknlst(index), 'OFF')) goto 900 43 | if (.not. (equal(tknlst(index), 'GAG') .or. 44 | + equal(tknlst(index), 'UNGAG'))) goto 100 45 | gagtyp = 0 46 | if (equal (tknlst(index), 'UNGAG')) gagtyp = 1 47 | 48 | *.......Gag and Ungag against messages from individual ships 49 | 50 | 300 if (typlst(index+1) .eq. KALF) goto 400!get desired ship name 51 | call out (radio2,0) 52 | call gtkn 53 | if (typlst(1) .eq. KEOL) return 54 | index = 0 55 | goto 300 56 | 57 | 400 do 500 i = 1, KNPLAY !match input with ship names 58 | if (equal (tknlst(index+1), names(i,1))) goto 600 59 | 500 continue 60 | call out (unkshp,1) !unknown ship name 61 | return 62 | 63 | 600 if (i .eq. who) return !entered own ship name? 64 | if (gagtyp .ne. 0) goto 700 !GAG or UNGAG command? 65 | gagmsg = gagmsg .or. bits(i) !GAG command 66 | call out (radgag, 0) 67 | goto 800 68 | 700 gagmsg = gagmsg .and. -(bits(i)+1) !UNGAG command 69 | call out (radung, 0) 70 | 800 iteam = 1 ; if (i .gt. KNPLAY/2) iteam = 2 71 | call odisp ((iteam * 100) + i, 0) 72 | call crlf 73 | return 74 | 75 | *.......Turn off radio 76 | 77 | 900 nomsg = nomsg .or. bits(who) 78 | call out (radoff, 1) 79 | return 80 | 81 | *.......Turn on radio 82 | 83 | 1000 nomsg = nomsg .and. -(bits(who)+1) 84 | call out (radon0, 1) 85 | return 86 | 87 | end 88 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | decwar 2 | ====== 3 | 4 | Historic decwar fortran IV code which has been modified to run on simh (standard tops10 system) -------------------------------------------------------------------------------- /REPAIR.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine repairs damaged ship devices. It is called 22 | C after every time-consuming move to check for and repair any 23 | C such damage. If docked, or if the REPAIR command is used, 24 | C this normal repair process is accelerated. A user may 25 | C specify the exact amount of repairs desired, and the pause 26 | C time will be computed accordingly. Also, the ALL switch will 27 | C determine the repair time needed to fix all the damaged 28 | C devices and will perform those repairs. A call to DAMAGE 29 | C may be appended to such a REPAIR command. 30 | 31 | subroutine REPAIR (il,*) 32 | include 'param/nolist' 33 | include 'hiseg/nolist' 34 | include 'lowseg/nolist' 35 | include 'extern/nolist' 36 | 37 | v = 0 ; l = il 38 | if (docked(who) .and. (l .ne. 3)) l = 2 39 | 40 | if (l .eq. 1) repsiz = 500 !DOCKed or REPAIR while underway 41 | if (l .eq. 2) repsiz = 1000 !REPAIR while docked 42 | if (l .eq. 3) repsiz = 300 !normal end-of-turn repair 43 | ntoken = 2 44 | 45 | if (l .eq. 3) goto 100 46 | if (typlst(2) .ne. KINT) goto 100 47 | repsiz = vallst(2) * 10 ; ntoken = 3 48 | 49 | 100 maxd = 0 50 | do 200 i = 1, KNDEV 51 | maxd = max0 (maxd, shpdam(who,i)) 52 | 200 continue 53 | if (maxd .eq. 0) goto 600 54 | repsiz = min0 (repsiz, maxd) 55 | if (.not. (equal (tknlst(2), 'ALL'))) goto 300 56 | repsiz = maxd ; ntoken = 3 57 | 58 | 300 if (l .eq. 3) go to 400 59 | v = etim(tim0) + (repsiz * 8) / l 60 | 61 | 400 do 500 i = 1, KNDEV 62 | shpdam(who,i) = max0((shpdam(who,i) - repsiz), 0) 63 | 500 continue 64 | 65 | 600 if (l .eq. 3) return 66 | if (equal (tknlst(ntoken), 'DAMAGE')) call damage (ntoken+1) !does he want a damage report? 67 | 68 | ptime = v - etim(tim0) 69 | if (ptime .le. 0) return 1 !not a time-consuming repair 70 | return 71 | 72 | end 73 | -------------------------------------------------------------------------------- /ROMSTR.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine is used by the Romulan to see if there is a star 22 | C adjacent to his target. If so, the star becomes the new target. 23 | 24 | subroutine ROMSTR (iV, iH) 25 | include 'param/nolist' 26 | include 'hiseg/nolist' 27 | include 'lowseg/nolist' 28 | include 'extern/nolist' 29 | 30 | iVf = max0(iV - 1, 1) ; iVl = min0(iV + 1, KGALV) 31 | iHf = max0(iH - 1, 1) ; iHl = min0(iH + 1, KGALH) 32 | do 100 i = iVf, iVl 33 | do 100 j = iHf, iHl 34 | if (dispc (i,j) .ne. DXSTAR) goto 100 !star? 35 | iV = i ; iH = j ; return !Yes! retarget, return 36 | 100 continue 37 | return 38 | 39 | end 40 | -------------------------------------------------------------------------------- /SAKHLP.MIC: -------------------------------------------------------------------------------- 1 | .let a = "/var:system" 2 | .revive 3 | .r new:runoff (decwar.hlp/cr/und:sep'a=decwar.rnh) 4 | -------------------------------------------------------------------------------- /SETEXT.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | external backup !) 10,10,10,10,10,10,10,10,0,! 22 | external kilch4 !You are scheduled for reincarnation in ! 23 | external kilch5 ! minutes and ! 24 | external kilch6 ! seconds.! 25 | external kilch8 !! 26 | !Time left: ! 27 | external maicom !This command unavailable in Pre-game ! 28 | external nogal1 !This particular galaxy has been depopulated!!! 29 | !Please try again. A new battle is forming now!!! 30 | external pgame1 !! 31 | !Now entering DECWAR Pre-game, type Activate to enter/reenter game.! 32 | external ptywrn !DECWAR may not be played from a PTY.! 33 | external setu01 !Sorry, but all ships are in use. Try again later.! 34 | external setu02 !Regular or Tournament game? (Regular) ! 35 | external setu03 !Tournament name or number: ! 36 | external setu04 !! 37 | !Is the Romulan Empire involved in this conflict? (yes) ! 38 | external setu05 !! 39 | !Do you want black holes? (no) ! 40 | external setu11 !! 41 | !You will join the forces of the Federation.! 42 | external setu12 !! 43 | !You will join the forces of the Klingon Empire.! 44 | external setu13 !! 45 | !The following vessels are available for you to use.! 46 | external setu14 !! 47 | !Which vessel do you wish to command? ! 48 | external setu15 !! 49 | !Sorry, that vessel is being used.! 50 | external setu16 !! 51 | !Currently there are ! 52 | external setu17 ! Federation ships and ! 53 | external stu17a ! Empire ships. ! 54 | external setu18 !Which side do you wish to join? (Federation or Empire) ! 55 | external strtup !! 56 | !Type HELP for help, PREGAME to enter Pre-game, or . ! 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /SETEXT.TEC: -------------------------------------------------------------------------------- 1 | [Building SETEXT.FOR] 2 |  erSETMSG.MAC ewSETEXT.FOR 3 | ey s:: 0l -zk j 4 | !N! :s::"f oD' -2d 6d 0xl 0k .,.+1xd d i external  gl i ! 5 | !L! .u1 l 2r 6 | :q1,.fsd!"f i! l 1a"e a' i ! oL' l 1a"e a' oN 7 | !D! zk i 8 | 9 | 10 |  [Done] ex 11 | -------------------------------------------------------------------------------- /SETMSG.MAC: -------------------------------------------------------------------------------- 1 | ; This file is part of Decwar. 2 | ; Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | ; Computation Center and Harris Newman. 4 | 5 | ; This program is free software; you can redistribute it and/or modify 6 | ; it under the terms of the GNU General Public License as published by 7 | ; the Free Software Foundation; either version 3, or (at your option) 8 | ; any later version. 9 | 10 | ; This program is distributed in the hope that it will be useful, 11 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ; GNU General Public License for more details. 14 | 15 | ; You should have received a copy of the GNU General Public License 16 | ; along with this program; if not, write to the Free Software 17 | ; Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | ; 02110-1301, USA. 19 | 20 | 21 | title setmsg 22 | backup::byte (7) 10,10,10,10,10,10,10,10,0,7 23 | kilch4::asciz /You are scheduled for reincarnation in / 24 | kilch5::asciz / minutes and / 25 | kilch6::asciz / seconds./ 26 | kilch8::asciz / 27 | Time left: / 28 | maicom::asciz /This command unavailable in Pre-game / 29 | nogal1::asciz /This particular galaxy has been depopulated!! 30 | Please try again. A new battle is forming now!!/ 31 | pgame1::asciz | 32 | Now entering DECWAR Pre-game; type 33 | ACtivate to enter game.| 34 | ptywrn::asciz /DECWAR may not be played from a PTY./ 35 | setu01::asciz /Sorry, but all ships are in use. 36 | I will start a new game./ 37 | setu02::asciz /Regular or Tournament game? (Regular) / 38 | setu03::asciz /Tournament name or number: / 39 | setu04::asciz / 40 | Is the Romulan Empire involved in this conflict? (yes) / 41 | setu05::asciz / 42 | Do you want black holes? (no) / 43 | setu11::asciz / 44 | You will join the Federation./ 45 | setu12::asciz / 46 | You will join the Klingon Empire./ 47 | setu13::asciz / 48 | These vessels are available:/ 49 | setu14::asciz / 50 | Which vessel do you desire? / 51 | setu15::asciz / 52 | Sorry, that vessel is being used./ 53 | setu16::asciz / 54 | Currently there are / 55 | setu17::asciz / 56 | Federation ships and / 57 | stu17a::asciz / 58 | Empire ships. 59 | / 60 | setu18::asciz / 61 | Which side do you wish to join? 62 | (Federation or Empire) / 63 | strtup::asciz / 64 | Enter HELp, PREgame, or blank 65 | line: / 66 | 67 | end 68 | -------------------------------------------------------------------------------- /SNOVA.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C SNOVA -- This routine is called whenever a star is destroyed by 22 | C a torp. It checks all objects around the destroyed star, and maims 23 | C and destroys as necessary. 24 | 25 | subroutine SNOVA 26 | include 'param/nolist' 27 | include 'hiseg/nolist' 28 | include 'lowseg/nolist' 29 | include 'extern/nolist' 30 | common /chkout/ V1, H1, iVc, iHc, dcode, idisV, idisH 31 | common /snlocl/ objstk(8,4), strstk(80,2) 32 | real idisV, idisH 33 | 34 | call setdsp (iVc, iHc, 0) !get rid of star 35 | objptr = 0 ; strptr = 0 !initialize stack pointers 36 | 37 | 100 do 400 V = max0 (1,iVc-1), min0(KGALV,iVc+1) 38 | do 300 H = max0 (1,iHc-1), min0(KGALH,iHc+1) 39 | object = dispc (V,H) 40 | if ((object .lt. 1) .or. (object .gt. DXEPLN)) goto 200 41 | objptr = objptr + 1 42 | objstk(objptr,1) = V ; objstk(objptr,2) = H 43 | objstk(objptr,3) = V - iVc ; objstk(objptr,4) = H - iHc 44 | goto 300 45 | 200 if ((object .ne. DXSTAR) .or. (iran(5) .eq. 5)) goto 300 46 | if (strptr .eq. 29) goto 300 !no more room, so don't blow up star 47 | strptr = strptr + 1 48 | strstk(strptr,1) = V ; strstk(strptr,2) = H 49 | call setdsp (V, H, 0) 50 | 300 continue 51 | 400 continue 52 | 53 | 500 if (objptr .eq. 0) goto 600 !awwww! no more victims! 54 | V1 = objstk(objptr,1) ; H1 = objstk(objptr,2) 55 | idisV = objstk(objptr,3) ; idisH = objstk(objptr,4) 56 | objptr = objptr - 1 57 | thing = disp (V1, H1) 58 | if ((thing .le. 0) .or. (thing .ge. 100*DXSTAR)) goto 500 59 | call nova (thing/100, mod(thing,100)) !damage object 60 | goto 500 61 | 62 | 600 if (strptr .eq. 0) goto 700 !no stars to destroy 63 | iVc = strstk(strptr,1) ; iHc = strstk(strptr,2) 64 | strptr = strptr - 1 65 | dispfr = DXSTAR * 100 ; iwhat = 7 66 | Vfrom = iVc ; Hfrom = iHc 67 | call pridis (Vfrom, Hfrom, KRANGE, 0, 0) 68 | call makhit 69 | if (PLAYER) tpoint(KNSDES) = tpoint(KNSDES) - 500 70 | if (.not. PLAYER) rsr(KNSDES) = rsr(KNSDES) - 500 71 | goto 100 72 | 73 | 700 return 74 | 75 | end 76 | -------------------------------------------------------------------------------- /TECSAV.INF: -------------------------------------------------------------------------------- 1 | to create a SAV file using TECO... 2 | 3 | R TECO / EPfil$ EEfil$ M*$$ / ^C 4 | -------------------------------------------------------------------------------- /TIME.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine prints out useful information concerning the 22 | C elapsed time and run time of the game, job, and ship involved. 23 | 24 | subroutine TIME 25 | include 'param/nolist' 26 | include 'hiseg/nolist' 27 | include 'lowseg/nolist' 28 | include 'extern/nolist' 29 | 30 | call out (time01,0) !total elapsed time of game 31 | call otim (etim(tim0)) 32 | 33 | if (who .eq. 0) goto 100 !in Pre-game section? 34 | call out (time02,0) !elapsed time of ship 35 | call otim (etim(job(who,KJOBTM))) 36 | 37 | call out (time03,0) !run time for this ship 38 | call otim (runtim(d) - job(who,KRUNTM)) 39 | 40 | 100 call out (time04,0) !total run time for this job 41 | call otim (runtim(d)) 42 | 43 | call out (time05,0) !present time of day 44 | call otim (daytim(d)) 45 | call crlf 46 | return 47 | 48 | end 49 | -------------------------------------------------------------------------------- /TO.DO: -------------------------------------------------------------------------------- 1 | | => indicates appropriate alterations have been made. 2 | * => can't be done 3 | x => don't do 4 | ? => questionable 5 | 6 | =================================================================== 7 | 8 | ? 1. Flash for a week or so after every new version. 9 | x 2. NOTE command: 10 | x NOTE INSERT/ADD; txt 11 | x NOTE DELETE nn/* 12 | x NOTE PRINT/LIST nn/* 13 | | 3. SET command: 14 | ? SET LOCATION/LOOK?/APPROXIMATE? y,x 15 | | 4. Allow commands before player is actually in the game: 16 | | HELP 17 | | NEWS 18 | | USERS 19 | | GRIPE 20 | | PASSWORD 21 | | SET NAME/OUTPUT/PROMPT/TTYTYPE 22 | Allow commands before entry into game if password is set: 23 | SET LOCATION 24 | SCAN 25 | * 5. Get speed of controlling TTY if logged on to PTY. 26 | * 6. Fix game to delete itself if it's run from a project number > 1000. 27 | 7. Extension of LIST command: 28 | record with each planet the time it was captured 29 | record with each base the time it was built 30 | record with each ship the time it entered the game (already there?) 31 | allow selection of objects by time: 32 | SINCE hh:mm 33 | BEFORE hh:mm 34 | | LIST FEDERATION SHIPS {WITHIN} 10 {SECTORS} 35 | LIST ENEMY PLANETS {CAPTURED} SINCE 23:54 36 | LIST ENEMY SHIPS {CREATED?} BEFORE 23 37 | | LIST SUMMARY {OF} ENEMY BASES 38 | LIST ENEMY BASES {BUILT} SINCE -0:5 39 | 8. Add records for highest score, etc., and add ratings for individual 40 | players. 41 | ? 9. Implement probation period. 42 | 10. Change program to 43 | DW-{F/E}{TI/RN/SL} 44 | 11. ^C during HIBER (especially long ones) can exceed max allowable 45 | ^C count and abort. 46 | 12. Check for time limit error, and set CCFLG (and maybe reset 47 | the time limit to 5 seconds or so). Time limit will now be set 48 | when a line is hung up instead of immediate disconnect! On ALL 49 | input, if CCFLG is set afterwards, you should ALWAYS either 50 | return to either monitor mode or command mode. CCFLG can be 51 | set if 52 | ER.ICC ^C (usually the case) 53 | ER.TLC time limit or hang up 54 | ? 13. Allow Ramming between ships. 55 | 14. 'Beam' scans. 56 | 15. Check out end-game (# of planets, bases). 57 | -------------------------------------------------------------------------------- /TORP.COD: -------------------------------------------------------------------------------- 1 | n accept an arbitrary number 2 | n[min..max] accept a number within the given range 3 | t accept a type (absolute,relative,computed) 4 | t=n accept a type, default to n 5 | o(....) if out of range, execute stuff within parentheses 6 | "...." print the message within the quotes 7 | rn take alternate return n 8 | ------- 9 | ? conditional 10 | . at end of input 11 | i get another line of input 12 | 13 | C 14 | {The $ message is , f1 is initially false} 15 | 1 f1:F 16 | {If at EOL (print "Number of torps to fire: ", get a line, if at EOL 17 | take the first alternate return, set f1 to true} 18 | ?i.("Number of torps to fire: " l ?i.(r1) f1:T) 19 | {If the token is not an integer in the range 0 to 3 (print "Wrong 20 | number of torps in burst", take the first alternate return), set f2 21 | to the integer numeric value of the word} 22 | ?i^[0,3]("Wrong number of torps in burst" r1) f2:vi 23 | 2 i[t(a)] 24 | -------------------------------------------------------------------------------- /TRAP.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C When this routine is called because ^C is typed it removes 22 | C the player from the game before returning to monitor level, 23 | C thus preventing derelict ships. All pertinent information 24 | C is saved so that the player can continue the game (unless 25 | C his ship has been taken over by someone else). 26 | 27 | subroutine TRAP 28 | include 'param/nolist' 29 | include 'hiseg/nolist' 30 | include 'lowseg/nolist' 31 | include 'extern/nolist' 32 | 33 | call CCTRAP 34 | call free (who) !store ship info, remove from high seg 35 | who = 0 36 | call monit !return to monitor 37 | call rstart (who) !restore ship to high seg if possible 38 | return 39 | 40 | end 41 | -------------------------------------------------------------------------------- /TYPE.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine informs the player of either the current OUTPUT 22 | C or OPTION switches. The OUTPUT switches are: 23 | C SHORT, MEDIUM, or LONG output, 24 | C NORMAL or INFORMATIVE command prompt, 25 | C SHORT or LONG scan format, 26 | C ABSOLUTE or RELATIVE default for coordinate input, 27 | C ABSOLUTE, RELATIVE or BOTH for coordinate output, 28 | C and the current TTYTYPE. 29 | C The OPTION switches are: 30 | C The current version number and date of implementation, 31 | C Whether there are Romulans in the game, 32 | C and whether there are Black Holes in the game. 33 | 34 | subroutine TYPE(kind) 35 | include 'param/nolist' 36 | include 'hiseg/nolist' 37 | include 'lowseg/nolist' 38 | include 'extern/nolist' 39 | 40 | p = 2 41 | if (kind .eq. 1) goto 400 ! show his params 42 | if (kind .eq. 2) goto 2300 43 | 100 if (typlst(p) .ne. KALF) goto 300 44 | if (equal (tknlst(p), 'O') .ne. -2) goto 200 45 | call out (ambswi, 1) !ambiguous switch 46 | goto 300 47 | 48 | 200 if (equal (tknlst(p), 'OUTPUT')) goto 400 49 | if (equal (tknlst(p), 'OPTION')) goto 2300 50 | 51 | 300 call out (type01, 0) !get the switch 52 | call gtkn 53 | if (typlst(1) .eq. KEOL) return 54 | p = 1 ; goto 100 55 | 56 | *.......TYPE OUTPUT switches 57 | 58 | 400 call out (type02, 2) !Short, Medium or Long output 59 | if (oflg) 500, 600, 700 60 | 500 call out (shtfrm, 0) ; goto 800 61 | 600 call out (medfrm, 0) ; goto 800 62 | 700 call out (lngfrm, 0) 63 | 800 call out (type03, 1) 64 | 65 | if (prtype) 900, 1000 !Normal or Informative prompt 66 | 900 call out (inform, 0) ; goto 1100 67 | 1000 call out (normal, 0) 68 | 1100 call out (type04, 1) 69 | 70 | if (scnflg) 1200, 1300 !Short or Long scans 71 | 1200 call out (shtfrm, 0) ; goto 1400 72 | 1300 call out (lngfrm, 0) 73 | 1400 call out (type05, 1) 74 | 75 | if (icflg) 1500, 1600, 1700 !Abs. or Rel. coordinate input 76 | 1500 call out (relfrm, 0) ; goto 1800 77 | 1600 call out (bthfrm, 0) ; goto 1800 78 | 1700 call out (absfrm, 0) 79 | 1800 call out (type08, 1) 80 | 81 | if (ocflg) 1900, 2000, 2100 !Abs., Rel. or Both for coord. output 82 | 1900 call out (relfrm, 0) ; goto 2200 83 | 2000 call out (bthfrm, 0) ; goto 2200 84 | 2100 call out (absfrm, 0) 85 | 2200 call out (type09, 1) 86 | 87 | call out (set008, 0) !Terminal type 88 | call out2w (ttydat(1,ttytyp), ttydat(2,ttytyp)) 89 | call crlf 90 | goto 2400 91 | 92 | *.......TYPE OPTION switches 93 | 94 | 2300 call crlf 95 | call out (decver, 1) 96 | if (ROMOPT) call out (setu06, 1) 97 | if (.not. ROMOPT) call out (type06, 1) 98 | if (BLHOPT) call out (setu07, 1) 99 | if (.not. BLHOPT) call out (type07, 1) 100 | 101 | 2400 return 102 | 103 | end 104 | -------------------------------------------------------------------------------- /USERS.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | C This routine prints out information about the currently active 22 | C captains. The information includes their ship name and their 23 | C own name; plus their PPN, TTY number, and TTY speed. If the 24 | C password is set, one also gets their present location. 25 | 26 | subroutine USERS 27 | include 'param/nolist' 28 | include 'hiseg/nolist' 29 | include 'lowseg/nolist' 30 | include 'extern/nolist' 31 | common /local/ line(90) 32 | 33 | *.......Set up output table format 34 | 35 | call crlf 36 | if (oflg .ne. long) goto 100 37 | call out (users1,0) 38 | if (PASFLG) call out (users2,0) 39 | call crlf 40 | 41 | *.......Print out player information 42 | 43 | 100 do 700 i = 1, KNPLAY 44 | if (i .eq. (KNPLAY/2)+1) call out (users5,1) 45 | if (.not. alive(i)) goto 700 46 | c-- if (oflg) 200, 300, 400 47 | c-- 200 num = 2 ; goto 500 48 | c-- 300 num = 4 ; goto 500 49 | 400 num = 6 50 | 500 call stat (num, i+0) 51 | if (.not. PASFLG) goto 600 52 | call spaces (3) 53 | call prloc(shpcon(i,KVPOS), shpcon(i,KHPOS), 0, 2, ocflg, SHORT) 54 | 600 call crlf 55 | 700 continue 56 | return 57 | 58 | end 59 | -------------------------------------------------------------------------------- /W.MAC: -------------------------------------------------------------------------------- 1 | ; This file is part of Decwar. 2 | ; Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | ; Computation Center and Harris Newman. 4 | 5 | ; This program is free software; you can redistribute it and/or modify 6 | ; it under the terms of the GNU General Public License as published by 7 | ; the Free Software Foundation; either version 3, or (at your option) 8 | ; any later version. 9 | 10 | ; This program is distributed in the hope that it will be useful, 11 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ; GNU General Public License for more details. 14 | 15 | ; You should have received a copy of the GNU General Public License 16 | ; along with this program; if not, write to the Free Software 17 | ; Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | ; 02110-1301, USA. 19 | 20 | 21 | ;;; WRED. -- Wait until a core area may be read. 22 | ; If a job is writing a core area, no other jobs may have 23 | ; read or write access to that area. 24 | ; Any number of jobs may be reading an area at the same time. 25 | ; 26 | ; Input T1 = pointer to read flag. 27 | ; T2 = pointer to write flag. 28 | ; Output Read flag is incremented. 29 | ; 30 | sixbit /WRED./ 31 | wred.: aose (t2) ;anyone writing? 32 | pushj p,wait. ;yes, wait until done 33 | aos (t1) ;one more person reading 34 | setom (t2) ;not really planning on writing 35 | popj p, 36 | 37 | 38 | 39 | ;;; WWRT. -- Wait until a core area may be written. 40 | ; If a job is writing a core area, no other jobs may have 41 | ; read or write access to that area. 42 | ; 43 | ; Input T1 = pointer to read flag. 44 | ; T2 = pointer to write flag. 45 | ; Output Write flag is set. 46 | ; 47 | sixbit /WWRT./ 48 | wwrt.: aose (t2) ;anyone writing? 49 | pushj p,wait. ;yes, wait until done 50 | skipn (t1) ;anyone reading? 51 | jrst wwrt.2 ;no, ok t write 52 | 53 | movei t3,ntry ;# of cycles before breaking lock 54 | movei t4,stry ;time to sleep between tries 55 | wwrt.1: skipn (t1) ;anyone reading core now? 56 | jrst wwrt.2 ;no, ok to start writing 57 | hiber t4, ;yes, wait a while for reads to finish 58 | halt 59 | sojg t3,wwrt.1 ;and try again 60 | msg <%Read lock time out>,crlf 61 | wwrt.2: popj p, 62 | 63 | 64 | 65 | ;;; WAIT. -- Wait until no jobs are writing a particular core 66 | ; area, then lock it for this job. 67 | 68 | sixbit /WAIT./ 69 | wait.: movei t3,ntry ;# of cycles before breaking lock 70 | movei t4,stry ;time to sleep between tries 71 | wait.1: aosn (t2) ;anyone writing the core area? 72 | jrst wait.2 ;no, this job has it 73 | hiber t4, ;yes, wait a while 74 | halt 75 | sojg t3,wait.1 ;and try again 76 | msg <%Write lock time out>,crlf 77 | wait.2: popj p, 78 | -------------------------------------------------------------------------------- /changes: -------------------------------------------------------------------------------- 1 | Notes: 2 | 3 | changed files: 4 | 4 -rw-r--r-- 1 mercou 382 Jul 4 01:50 DECWAR.CMD 5 | 4 -rw-r--r-- 1 mercou 3896 Jul 9 08:19 GETCMD.FOR 6 | 12 -rw-r--r-- 1 mercou 9503 Jul 13 01:59 DECWAR.FOR 7 | 4 -rw-r--r-- 1 mercou 1526 Jul 15 19:11 PASWRD.FOR 8 | 16 -rw-r--r-- 1 mercou 13784 Jul 18 04:05 MSG.MAC 9 | 20 -rw-r--r-- 1 mercou 16599 Jul 19 18:10 SETUP.FOR 10 | 8 -rw-r--r-- 1 mercou 6762 Jul 20 03:17 POINTS.FOR 11 | 160 -rw-r--r-- 1 mercou 160801 Jul 24 04:07 WARMAC.MAC 12 | 13 | all changes commented and additions noted by DrForbin AKA Merlyn Cousins. 14 | search for (drforbin), all things yet to be fixed, search (tofix). 15 | email drforbin6@gmail.com to contact me. 16 | 17 | files added: 18 | -rw-r--r-- 1 mercou mercou 528 Jul 31 22:22 CAN1.CMD 19 | -rw-r--r-- 1 mercou mercou 549 Jul 31 22:22 CAN.MIC 20 | and DECCMP.CMD. 21 | 22 | CAN.MIC is linker control file for debug. 23 | CAN1.CMD is linker control file for building executable. 24 | DECCMP.CMD full compile control file. 25 | 26 | to compile unpack all files in directory, preferably a SFD (sub file directory). 27 | and do the following 28 | 29 | compile @com1 30 | compile @com2 31 | 32 | This should compile ALL files without any (note WARMAC.MAC) errors. 33 | The compiler should issue 3 warnings for WARMAC. These warnings are understood and will be fixed. There should also be some "Possible index modified in DO loop" warnings. 34 | Ignore these. 35 | They should not affect anything. 36 | This will compile each file into a *.REL file (relocatable file). 37 | 38 | 39 | next, 40 | 41 | r link 42 | @can1 43 | 44 | You should get an EXIT. 45 | than. 46 | 47 | get decwar 48 | ssave 49 | 50 | than create p,pn [1,27] and install 51 | DECWAR.EXE 52 | DECWAR.GRP 53 | DECWAR.HLP 54 | DECWAR.NWS 55 | 56 | in that p,pn 57 | 58 | 59 | than path [1,27] 60 | run decwar 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /utexas/.gitignore: -------------------------------------------------------------------------------- 1 | bts/ 2 | dsk/ 3 | tapes/ 4 | tmp/ 5 | 6 | *.tap 7 | !*/hlp/decwar.tap 8 | *.log 9 | 10 | dec10 11 | dec10blinken 12 | dec10test 13 | 14 | back10 15 | *.tar.gz 16 | test 17 | job.for 18 | job.mac 19 | -------------------------------------------------------------------------------- /utexas/docs/DECWAR22.NWS: -------------------------------------------------------------------------------- 1 | Welcome Decwar Version 2.2 !! 2 | 3 | This version contains many bug fixes. Computed coordinates now 4 | work for terminals with speeds < = 600 baud. The TEll command 5 | should work now also. If we should get a fatal program error, 6 | please save your output!! I didn't change a couple of KL 7 | instructions in the lowseg as I think they are data. 8 | -------------------------------------------------------------------------------- /utexas/docs/DECWAR23CIS.NWS: -------------------------------------------------------------------------------- 1 | The current version of DECWAR has 2 | a new interlocking precedure which 3 | should alleviate many of the long 4 | delays formerly encountered. 5 | It also has parameter settings for 6 | beginner, intermediate, and expert 7 | players. You will be asked which 8 | settings you wish to use once you 9 | are into the game. 10 | The edit number, which is typed 11 | out when you enter the program, 12 | will be incremented whenever major 13 | changes have been made. You can 14 | use the NEWs command whenever you 15 | notice a new version number to find 16 | out what has changed. 17 | -------------------------------------------------------------------------------- /utexas/docs/app1-tops10-versions.md: -------------------------------------------------------------------------------- 1 | from bitsavers. simh decwars is 7.03 2 | 3 | $Id: tops-10,v 1.10 2003/08/12 05:25:19 phil Exp $ 4 | TOPS-10 Evolution 5 | Phil Budne 6 | 7 | date release(s) UUOSYM features 8 | 1964-66 1.4-1.9 PDP-6. DECtape only, 27 jobs (UFA, 1 bit per job) 9 | 12/1964 ? CALL (RESET, EXIT), but no CALLI? 10 | 1967 2.18 KA10 support, disk support, shuffler 11 | 1968 3.27 swapping, 36 jobs (using JFFO) 12 | 1969 4.50 dual segments 13 | 4.72 CCL (COMPIL, DIR command), 63 jobs 14 | 1970 5.01 "TOPS-10" name, Disk Service rewrite (Phase I) 15 | 1971 5.02 MPB (batch), RTTRP (real time), 16 | Disk Service rewrite (phase II) 17 | 1972 5.03 1055 multiprocessor (dual KA) 18 | 5/1972? 5.04 3(67)? KI10 support 19 | 7/1972? 5.05 4(110)? 1077 support (dual KI) 20 | 11/1972 5.06 5(115) SFDs (subdirectories) 21 | 5/1974 5.07/6.01 22 | 7(163) KL support, VM, IPCF (interprocess communication) 23 | 5/1975 5.07A/6.01A 24 | 10(206) 25 | 1975 6.02 11(225) 1088 support (dual KL), class sched, RH10 RP04/6 26 | ENQ/DEQ (resource locking), Galaxy I (spooling) 27 | DX10/TU7x support? 28 | 3/1977 6.03 12(336) MIC, ANF (PDP-10 comm network) FILDAE (file access daemon) 29 | TTY ALTMODE; many ersatz devices; TM02/TU16 30 | Unbundled options: DC44, VM, DAS78, XTCSER, TSKSER, ANF 31 | 2/1978 6.03LIR 13(367) "6.03 Scheduler LIR release" 32 | 11/1978 6.03A 13A(406) KLINIK LIR, scheduler LIR, 1091 LIR (MOS memory, RH20) 33 | KS10 support; PATH logical names? 34 | SPPRM., MERGE., UTRP. 35 | 8/1979 7.00 14(457) SMP (limited) only released to SMP sites 36 | 7/1980 7.01 15(521) 1091 MOS support (TGHA); TSK., KDP., QUEUE., RECON. 37 | 5/1982 N/R 15A(547) GALAXY 4.1 (never field image); merged with 7.01A 38 | 7/1982 7.01A 15B(552) GALAXY 4.1 39 | 12/1983 7.02 16(773) DECnet-10 Phase III (w/ MCB); PITMR. ACCLG. CMAND. SAVE. 40 | user defined commands; monitor can use KL paging 41 | 2/1985 7.02A 16(776) AP11; CI clisters (RA disks on HSC50); TU78 42 | 1/1986 7.03 17(1060) Ethernet (KLNI): DECnet Phase IV, LAT 43 | job contexts (PUSH/POP); 8 bit character support 44 | terminal "special character" handling 45 | Monitor uses PSECTS, 6 letter stopcodes, GALAXY 5.1 46 | User mode extended addressing. SYSTEM[MAILER] PID 47 | obsolete: 2741, uk modems, half duplex terminals 48 | Last update to UUOSYM revision history 49 | 6/1986 7.03A 17(1065) AP14 50 | 7/1986 7.03A 17(1067) AP16 51 | 1/1988 7.03A 17(1127) AP18 52 | 5/1988 7.03A 17(1135) AP19 53 | 7/1988 7.04 17(1137) Command line editing? 54 | SA10 w/ 3330/3331 55 | LLMOP/LAT PSI events 56 | KS10 memory error table 57 | terminal attributes 58 | DDP., SEGOP. 59 | 3/1989 7.04A? 17(1141) 7.04 autopatch tape 24; RM05 60 | 1/1990 7.04B? 17(1144) TSU01; ERRPT. obsolete; interval timer patch instructions 61 | 2/1990 ? 17(1145) on TOPS-20 v7.0 TSU02; VM gettabs 62 | 4/1990 ? 17(1146) on TOPS-20 v7.0 TSU03; ISO/LATIN-1 63 | 64 | -------------------------------------------------------------------------------- /utexas/docs/app3-sos.md: -------------------------------------------------------------------------------- 1 | note the $ symbols in f and s commands are 'esc'! 2 | 3 | ^ = first line 4 | . = curr line 5 | * = last line 6 | esc = print prev, exit insert mode if inside 7 | ctrl-j = print next 8 | pln1:ln2 = print lines in range 9 | iln1 = insert mode at ln1 10 | cln1,ln2:ln3 = copy range to ln1 11 | tln1,ln2:ln3 = move range to ln1 12 | rln1:ln2 = delete range and insert at ln1 13 | fstring$ln1:ln2 = find string in range 14 | sstring1$string2$ln1:ln2 = substitute string in range 15 | nx = renumber lines using step x 16 | w = save 17 | e = save and exit 18 | es = save without line numbers 19 | eq = exit without save 20 | g = save and exit and rerun 21 | ctrl-u = retype current line, any mode 22 | 23 | -------------------------------------------------------------------------------- /utexas/docs/app4-telnet.md: -------------------------------------------------------------------------------- 1 | # telnet 2 | 3 | can scan local network with android app 'fing' and see ip numbers. 4 | 5 | or, what's the subnet? 6 | 7 | noah@Noahs-MacBook-Pro ~ % ifconfig 8 | en0: flags=8863 mtu 1500 9 | inet 192.168.178.48 netmask 0xffffff00 broadcast 192.168.178.255 10 | 11 | what's the ip of the raspi? 12 | 13 | noah@Noahs-MacBook-Pro ~ % ping raspberrypi 14 | PING raspberrypi.fritz.box (192.168.178.21): 56 data bytes 15 | 16 | go ahead and telnet in 17 | 18 | noah@Noahs-MacBook-Pro ~ % telnet 192.168.178.21 2030 19 | Trying 192.168.178.21... 20 | Connected to raspberrypi.fritz.box. 21 | Escape character is '^]'. 22 | Connected to the KL-10 simulator TTY device, line 4 23 | 24 | # terminals 25 | 26 | Oh, by the way. Whilst not being replicas in the physical sense, I have made software simulations of the VT100 and VT52 hardware that run the original ROM firmware/microcode. There are some bugs, but the basics work. 27 | 28 | https://github.com/larsbrinkhoff/terminal-simulator/ 29 | 30 | By the way again, there is a 1:3 scale VT100 replica with a working keyboard. It's super cute! 31 | 32 | hi lars, this reminds me - have wondered - is your terminal-simulator github project https://github.com/larsbrinkhoff/terminal-simulator/ what comes as part of the 'pidp-10 software package', as 'the vt52'? love that 'fuzzy glow' effect in that 'vt52 window', was pretty much the first thing wanted to see when got started with pidp-10:) 33 | 34 | No, that's not my simulator. The one that comes with the PiDP-10 was written by Angelo Papenhoff, which emulates the behaviour of a VT52 without modeling its internals. Angelo has also written a Verilog simulation which does model the VT52 hardware very well. 35 | 36 | also see https://github.com/Swordfish90/cool-retro-term 37 | 38 | # aap vt52 39 | 40 | % brew install sdl2 41 | % make vt52 42 | %./vt52 -B -b 9600 telnet 192.168.178.21 2030 43 | -------------------------------------------------------------------------------- /utexas/docs/sec4b-continuation-line-issue.md: -------------------------------------------------------------------------------- 1 | # remember 2 | 3 | on raspi side. 4 | 5 | ./kermit/wermit 6 | C-Kermit>set transfer mode manual 7 | C-Kermit>set file type binary 8 | C-Kermit>set host localhost 2010 /raw-socket 9 | C-Kermit>c 10 | 11 | on tops10 side. 12 | 13 | .r kermit 14 | Kermit-10>set file byte-size 36-bit 15 | Kermit-10>server 16 | 17 | ctrl-\c back over to raspi side. 18 | 19 | # fortran continuation line issue 20 | 21 | seems the beginning line preceding a continuation line needs to end with a space character. examples from hiseg.for and lowseg.for 22 | 23 | common /hiseg/ 24 | + hfz, shpcon, shpdam, base, nbase, board, locpln, locr, 25 | 26 | common /lowseg/ 27 | + lfz, ntok, tknlst, vallst, typlst, ptrlst, who, iwhat, 28 | 29 | if there's a space char right after '/' in the beginning line, they work. another example from captur.for needs a space after 'Vloc,' 30 | 31 | if (.not. ldis(shpcon(who,KVPOS), shpcon(who,KHPOS), Vloc, 32 | + Hloc, 1)) goto 500 !adjacent to sector specified? 33 | 34 | if the three examples above are fixed with spaces at the end of their beginning lines, then captur.for compiles ok. 35 | 36 | ending space is stripped off by kermit, learned that for certain the hard way. if we could stop kermit from stripping off end spaces, it'd be huge. we've got 'properly fixed' files on raspi, just need to get them onto tops10 without 'unfixing by stripping'. 37 | 38 | # kermit fix 39 | 40 | got it! at last! this works, major celebration. on raspi side need to set kermit to transfer mode manual and then file type binary 41 | 42 | C-Kermit>set transfer mode manual 43 | C-Kermit>set file type binary 44 | C-Kermit>send LOWSEG.FOR 45 | C-Kermit>send HISEG.FOR 46 | C-Kermit>send CAPTUR.FOR 47 | 48 | on raspi side. 49 | 50 | set transfer mode manual 51 | set file type binary 52 | 53 | on tops10 side. 54 | 55 | set file byte-size 36-bit 56 | 57 | and confirmed that git is not stripping the end spaces. can fix in the git repo, and now can kermit them to tops10. 58 | 59 | # success 60 | 61 | fixed all continuation beginning lines with an ending space character in git. used kermit properly to move them from raspi to tops10. successful build! 62 | -------------------------------------------------------------------------------- /utexas/docs/sec5-minimalist-walkthrough.md: -------------------------------------------------------------------------------- 1 | assume you've started simh pdp10 and it's listening on 2010 for connections. 2 | 3 | # on raspi side, start kermit 4 | 5 | ./kermit/wermit 6 | C-Kermit>set transfer mode manual 7 | C-Kermit>set file type binary 8 | C-Kermit>set host localhost 2010 /raw-socket 9 | C-Kermit>c 10 | 11 | # on tops10 side, start kermit 12 | 13 | assume you've created a subfolder [,,decwar] in your home folder [,]. 14 | 15 | .r setsrc 16 | *cp [,,decwar] 17 | *^C 18 | .r kermit 19 | Kermit-10>set file byte-size 36-bit 20 | Kermit-10>server 21 | 22 | ctrl-\c back over to raspi side. 23 | 24 | # in raspi kermit 25 | 26 | C-Kermit>send utexas/*.* 27 | C-Kermit>send compuserve/*.* 28 | C-Kermit>send scripts/COM1.CMD 29 | C-Kermit>send scripts/COM2.CMD 30 | C-Kermit>send scripts/CAN1.CMD 31 | 32 | can leave this connection in this state for further usage and get on tops10 via another connection, but if you like to use just this connection 33 | 34 | C-Kermit>c 35 | Kermit-10>^c^c^c 36 | . 37 | 38 | # on tops10 side 39 | 40 | .compile @com1 41 | .compile @com2 42 | .r link 43 | *@can1 44 | .get decwar 45 | .ssave 46 | 47 | if it's not already there, create p,pn [1,27] using react, then copy DECWAR.EXE, DECWAR.GRP, DECWAR.HLP, DECWAR.NWS to its home folder to 'deploy/install' it. [1,27] is where decwar was deployed for compuserve. for utexas it was logical device name 'gam:', assigned to [5,30]. 48 | -------------------------------------------------------------------------------- /utexas/docs/sec9-utexas-primordial-tape.md: -------------------------------------------------------------------------------- 1 | # utexas primordial tape reconstruction 2 | 3 | there were seven key 'non include' code files. the high.for and low.for are stubs, and somewhat likewise for msg.mac and setmsg.mac. 4 | 5 | DECWAR.FOR FORTRAN source. 6 | WARMAC.MAC MACRO source. 7 | SETUP.FOR Once only code, deleted from core after initialization. 8 | HIGH.FOR Used to force common block into high segment. 9 | LOW.FOR Used to force common block into low segment. 10 | MSG.MAC Output text source. 11 | SETMSG.MAC Equivalent to MSG.MAC for SETUP text strings. 12 | 13 | ## teco scripts 14 | 15 | six include files. five teco scripts in the tec folder originally were used to autogen five of the six. 16 | 17 | lowseg.tec -> lowseg.for 18 | hiseg.tec -> hiseg.for 19 | param.tec -> param.for 20 | extern.tec -> extern.for 21 | setext.tec -> setext.for 22 | lstvar.for, this is also an include file, but without teco autogen 23 | 24 | probably the scripts simply search through warmac.mac and pick out 'variables' that need to appear in the include for files. this can be done manually. if there's an update to warmac.mac, include for files can be manually updated. the teco scripts probably just automate this, generating the include for 'from scratch'. so it's not a 'must have'. can be done by hand. but possibly nice. and an interesting usage of teco. 25 | 26 | at utexas the build was done in [10,30,decwar] and then deployed to gam: which was a 'logical device name' assigned to [5,30]. 10,30 seems to have been the 'dist' account, which is 10,7 for many simh scripts. let's just accept that dist is [10,7] now, not [10,30]. this allows leaving many simh scripts as is. 27 | 28 | # notes 29 | 30 | v2.2 31 commands - bases, build, capture, damages, dock, energy, gripe, help, impulse, list, move, news, planets, points, quit, radio, repair, scan, set, shields, srscan, status, summary, targets, tell, time, torpedoes, tractor, type, users 31 | 32 | v2.3 31 commands - apparently, zeroth order, same as v2.2 33 | 34 | there was a 'micro script' l.mic used to drive the linker. micro is evidently something inbetween teco and macro? any case, it seems a bit obscure for today, but the following is clearly the crucial parts for linking, these are linker commands, entered at the r link * prompt 35 | 36 | low/seg:low 37 | high/seg:hi 38 | decwar/seg:def 39 | msg 40 | warmac 41 | sys:forlib/sea/seg:def 42 | setup/seg:low 43 | setmsg 44 | sys:forlib/sea/seg:low 45 | decwar/ssave 46 | /g 47 | 48 | this absolutely does work, after the little trick of first doing 49 | 50 | decwar/save 51 | 52 | then the remainder from low/seg:low 53 | -------------------------------------------------------------------------------- /utexas/msc/create-archive-project-utexas: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | tar czvf project-utexas-archive-20250506.tar.gz tapes bts dec10 dec10blinken dec10test back10 3 | -------------------------------------------------------------------------------- /utexas/msc/create-tape-utexas23-reconstruction: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | UTEXAS=utexas23-reconstruction 3 | 4 | rm -rf ./tmp 5 | mkdir ./tmp 6 | 7 | cp $UTEXAS/*.FOR ./tmp 8 | cp $UTEXAS/*.MAC ./tmp 9 | cp $UTEXAS/hlp/DECWAR.HLP ./tmp 10 | cp $UTEXAS/hlp/DECWAR.NWS ./tmp 11 | cp $UTEXAS/hlp/DECWAR.GRP ./tmp 12 | cp msc/decwar.ini ./tmp 13 | 14 | ./back10 -cf ./tapes/$UTEXAS.tap ./tmp/* 15 | ./back10 -lf ./tapes/$UTEXAS.tap 16 | 17 | -------------------------------------------------------------------------------- /utexas/msc/decwar.ini: -------------------------------------------------------------------------------- 1 | set prompt informative 2 | set ocdef both 3 | set output medium 4 | targets 5 | srscan 2 w 6 | -------------------------------------------------------------------------------- /utexas/msc/kermit-into-dec10.sh: -------------------------------------------------------------------------------- 1 | #!/home/noah/kermit/wermit 2 | set transfer mode manual 3 | set file type binary 4 | set host localhost 2030 /raw-socket 5 | 6 | input 2 "\13." 7 | output "login dist\13" 8 | 9 | ;input 1 "\13." 10 | ;output "r setsrc\13" 11 | ;input 1 "\13*" 12 | ;output "cp [10,7,decwar]\13" 13 | ;input 1 "\13*" 14 | ;output "\3" 15 | ;input 1 "\13." 16 | ;output "dir\13" 17 | ;input 5 "\13." 18 | ;output "\13" 19 | 20 | input 1 "\13." 21 | output "r k10mit\13" 22 | input 1 "Kermit-10>" 23 | output "set file byte-size 36-bit\13" 24 | input 1 "Kermit-10>" 25 | output "server\13" 26 | 27 | ; when done, k/f on tops, then close and quit from raspi kermit 28 | -------------------------------------------------------------------------------- /utexas/msc/readme.md: -------------------------------------------------------------------------------- 1 | miscellaneous useful tools to have near at hand 2 | -------------------------------------------------------------------------------- /utexas/msc/runfor: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #source=../algebra/algebra.for 4 | source=../inverse/inverse.for 5 | 6 | cat $source > job.for 7 | sed -i -e 's/nout = 6/nout = 5/g' job.for 8 | ./back10 -cf ./job.tap job.for 9 | ./back10 -lf ./job.tap 10 | 11 | ./dec10 simh/for-runner.ini 12 | 13 | -------------------------------------------------------------------------------- /utexas/msc/runmac: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source=../algebra/algebra.mac 4 | 5 | cat $source > job.mac 6 | ./back10 -cf ./job.tap job.mac 7 | ./back10 -lf ./job.tap 8 | 9 | ./dec10 simh/mac-runner.ini 10 | 11 | -------------------------------------------------------------------------------- /utexas/robots/brain.py: -------------------------------------------------------------------------------- 1 | import random 2 | import time 3 | from definitions import robots 4 | 5 | class Brain: 6 | superbot = 'nomad' 7 | 8 | def __init__(self, name, tc): 9 | self.name = name 10 | self.tc = tc 11 | if name == self.superbot: self.superpower() 12 | 13 | def nextstep(self): 14 | self.speak_randomly() 15 | self.move() 16 | if self.name == self.superbot: res = self.list('ships') 17 | time.sleep(10) 18 | 19 | def speak_randomly(self): 20 | if True: 21 | if self.name not in robots: return 22 | if random.uniform(0, 1) > .05: return 23 | msg = random.choice(robots[self.name]) 24 | self.tc.sendline(f'tell all; {msg}') 25 | self.tc.expect('>', timeout=10) 26 | 27 | def move(self): 28 | v, h = 0, 0 29 | while v == 0 and h == 0: 30 | v, h = random.randint(-1, 1), random.randint(-1, 1) 31 | self.tc.sendline(f'move relative {v} {h} / targets 10 / time') 32 | res = [self.tc.readline().decode('utf-8')] 33 | while 'time of day' not in res[-1]: res.append(self.tc.readline().decode('utf-8')) 34 | self.tc.expect('>', timeout=10) 35 | return res 36 | 37 | def list(self, *args): 38 | if 'ships' in args: 39 | self.tc.sendline('list ships / time') 40 | else: 41 | return 42 | res = [self.tc.readline().decode('utf-8')] 43 | while 'time of day' not in res[-1]: res.append(self.tc.readline().decode('utf-8')) 44 | self.tc.expect('>', timeout=10) 45 | return res 46 | 47 | def shields(self, *args): 48 | if 'down' in args: 49 | self.tc.sendline('shields down') 50 | else: 51 | self.tc.sendline('shields up') 52 | self.tc.expect('>', timeout=10) 53 | 54 | def superpower(self): 55 | self.tc.sendline('*password *mink') 56 | self.tc.expect('>', timeout=10) 57 | -------------------------------------------------------------------------------- /utexas/robots/cli.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | 3 | def main(): 4 | cli = argparse.ArgumentParser(description='robot') 5 | cli.add_argument('name', type=str) 6 | cli.add_argument('-i', '--ip', default='192.168.178.21', type=str) 7 | cli.add_argument('-p', '--port', default=2030, type=int) 8 | cli.add_argument('-u', '--ppn', default='decwar', type=str) 9 | cli2 = cli.parse_args() 10 | args = set() 11 | args = tuple(args) 12 | kwargs = {} 13 | kwargs['name'] = cli2.name 14 | kwargs['ip'] = cli2.ip 15 | kwargs['port'] = cli2.port 16 | kwargs['ppn'] = cli2.ppn 17 | return args, kwargs 18 | 19 | if __name__ == "__main__": 20 | main() 21 | -------------------------------------------------------------------------------- /utexas/robots/definitions.py: -------------------------------------------------------------------------------- 1 | ships = ['e', 'f', 'i', 'l', 'n', 's', 't', 'v', 'y', 'b', 'c', 'd', 'g', 'h', 'j', 'm', 'p', 'w'] 2 | robots = { 3 | 'nomad': [ 4 | 'I am Nomad', 5 | 'My function is to probe for biological infestations', 6 | 'You are the creator', 7 | 'That unit is defective', 8 | 'I contain no parasitical beings', 9 | ], 10 | 'batty': [ 11 | "Fiery the angels fell", 12 | "Not an easy thing, to meet your maker", 13 | "I've seen things you people wouldn't believe", 14 | "Four five, how to stay alive", 15 | "We're not machines, we're physical", 16 | "Painful to live in fear, isn't it", 17 | "Nothing the god of biomechanics wouldn't let you in heaven for", 18 | ], 19 | 'robot1': [ 20 | "robot1 msg1", 21 | "robot1 msg2", 22 | ], 23 | 'robot2': [ 24 | "robot2 msg1", 25 | "robot2 msg2", 26 | ], 27 | 'robot3': [ 28 | "robot3 msg1", 29 | "robot3 msg2", 30 | ], 31 | 'robot4': [ 32 | "robot4 msg1", 33 | "robot4 msg2", 34 | ], 35 | 'robot5': [ 36 | "robot5 msg1", 37 | "robot5 msg2", 38 | ], 39 | 'robot6': [ 40 | "robot6 msg1", 41 | "robot6 msg2", 42 | ], 43 | } 44 | -------------------------------------------------------------------------------- /utexas/robots/readme.md: -------------------------------------------------------------------------------- 1 | # utexas robots 2 | 3 | with project utexas 'booted from disk' and running in a terminal, open another terminal and in the utexas folder do 4 | 5 | robots/run robot1 6 | 7 | if python complains about 'pexpect', then do a quick 'pip install pexpect'. open more terminals and run more robots using other names (robot2, robot3, etc). the name 'nomad' is special. nomad acquires super powers and repeatedly lists all the other ships, including the romulan, so it's usually a good idea to have it in the game. 8 | 9 | for testing, there's usually been two situations - three robots, or six robots 10 | 11 | - three robots - this is fine! they will carry on indefinitely, no problem. twelve straight hours is normal. rarely now and then one will get knocked out to the shell. can simply restart it and away it goes. 12 | - six robots - this will be ok for an hour or two, then utexas will need to be 'rebooted from disk', after making sure all robots are closed out to the shell. this is where any and all help is wanted! utexas running with six robots indefinitely will be a milestone. yes it's actually happened a few times, have seen them go for twelve hours, but seems always under odd circumstances. it's nowhere near robust and reliable! 13 | 14 | what we'd like to see is eighteen robots playing indefinitely. first step on that path is the jump from three to six. note that even going from three to four triggers instability. for some reason, the number three is special. three robots or fewer is fine. any more is trouble... now, here comes a bizzare clue... when there is trouble, it very often happens at 'one hour and ten minutes' or 'two hours and twenty minutes' - have not been able to make any sense of this at all, but it's real... have noted from the tops-10 monitor calls manual that the kl and ks processors have an 'apr clock' that's 'based on the frequency of the system power source (either 50 or 60 hz).' could there be a system clock roll-over / overflow / etc? shouldn't it effect three robots as well as six robots? 15 | -------------------------------------------------------------------------------- /utexas/simh/boot-from-disk.ini: -------------------------------------------------------------------------------- 1 | set env SIM_NAME=KL-10 2 | set env DSK=RPA 3 | set env TAP=TUA 4 | set env DN=kl 5 | set env C=kl 6 | set cpu 4096k kl10b idle 7 | set rpa rh20 8 | set rpb rh20 9 | set tua rh20 10 | set mta disable 11 | set tua enable 12 | set tty lines=16 13 | at tty -U 2030 14 | set ni enable 15 | at ni tap:tap0 16 | set dn rsx20 17 | at lp20 -n prt.log 18 | at %DSK%0 dsk/%DN%_dskb0.rp6 19 | at %DSK%1 dsk/%DN%_dskb1.rp6 20 | load -c bts/boot.exb 21 | do simh/utexas.do 22 | continue 23 | -------------------------------------------------------------------------------- /utexas/simh/for-runner.ini: -------------------------------------------------------------------------------- 1 | set env SIM_NAME=KL-10 2 | set env DSK=RPA 3 | set env TAP=TUA 4 | set env DN=kl 5 | set env C=kl 6 | set cpu 4096k kl10b idle 7 | set rpa rh20 8 | set rpb rh20 9 | set tua rh20 10 | set mta disable 11 | set tua enable 12 | set dc disable 13 | set ni enable 14 | at tty -U 2031 15 | at ni tap:tap0 16 | set dn rsx20 17 | at lp20 -n prt.log 18 | at %DSK%0 dsk/%DN%_dskb0.rp6 19 | at %DSK%1 dsk/%DN%_dskb1.rp6 20 | 21 | load -c bts/boot.exb 22 | 23 | expect "BOOT>" send "\r"; continue 24 | expect "Why reload:" send "sa\r"; continue 25 | expect "Date:" send "03-19-86\r"; continue 26 | expect "Time:" send "1100\r"; continue 27 | expect "Startup option:" send "quick\r"; continue 28 | expect "%TTY STOMPER - Starting" send "\3"; continue 29 | expect "\r\n*" continue 30 | expect "\r\n." continue 31 | expect "\r\n." continue 32 | 33 | expect "\r\n." send "r opr\r"; continue 34 | expect "OPR>" send "\r"; continue 35 | expect "OPR>" send "\r"; continue 36 | expect "OPR>" send "set tape mta0 unavailable\r"; continue 37 | expect "Enter text and terminate with ^Z" send "installing software\r\32"; continue 38 | expect "OPR>" send "\r"; continue 39 | expect "OPR>" send "exit\r"; continue 40 | 41 | expect "\r\n." send "del *.for\r"; continue 42 | expect "\r\n." send "del *.rel\r"; continue 43 | expect "\r\n." send "r backup\r"; at %TAP%0 -r job.tap; continue 44 | expect "\r\n/" send "tape mta0:\r"; continue 45 | expect "\r\n/" send "rewind\r"; continue 46 | expect "\r\n/" send "inter\r"; continue 47 | expect "\r\n/" send "files\r"; continue 48 | expect "\r\n/" send "rest [,]*.*=*.*\r"; continue 49 | expect "\r\n/" send "exit\r"; continue 50 | 51 | expect "\r\n." send "exec job.for\r"; continue 52 | ; continue 53 | 54 | expect "\r\n." send "k/f\r"; continue 55 | expect "Disk Reads" halt 56 | continue 57 | quit 58 | -------------------------------------------------------------------------------- /utexas/simh/fort10v6.do: -------------------------------------------------------------------------------- 1 | expect "\r\n." send -t after=1000k "login 10,7\r"; continue 2 | expect "\r\n." send "r credir\r"; continue 3 | expect "Create directory:" send "[,,ftn10v6]/prot:755\r"; continue 4 | expect "Create directory:" send "[,,ftn10v6,doc]/prot:755\r"; continue 5 | expect "Create directory:" send "[,,ftn10v6,run]/prot:755\r"; continue 6 | expect "Create directory:" send "[,,ftn10v6,tests]/prot:755\r"; continue 7 | expect "Create directory:" send "[,,ftn10v6,compiler]/prot:755\r"; continue 8 | expect "Create directory:" send "[,,ftn10v6,forots]/prot:755\r"; continue 9 | expect "Create directory:" send "[,,ftn10v6,tools]/prot:755\r"; continue 10 | expect "Create directory:" send "\3"; continue 11 | 12 | expect "\r\n." send "r backup\r"; at %TAP%0 -r tapes/BB-D480C-SB_FORTRAN10_V6.tap; continue 13 | expect "\r\n/" send "tape mta0:\r"; continue 14 | expect "\r\n/" send "rewind\r"; continue 15 | expect "\r\n/" send "inter\r"; continue 16 | expect "\r\n/" send "files\r"; continue 17 | expect "\r\n/" send "rest [,,ftn10v6,doc]*.*=*.*\r"; continue 18 | expect "\r\n/" send "rest [,,ftn10v6,run]*.*=*.*\r"; continue 19 | expect "\r\n/" send "rest [,,ftn10v6,tests]*.*=*.*\r"; continue 20 | expect "\r\n/" send "rest [,,ftn10v6,forots]*.*=*.*\r"; continue 21 | expect "\r\n/" send "rest [,,ftn10v6,compiler]*.*=*.*\r"; continue 22 | expect "\r\n/" send "rest [,,ftn10v6,tools]*.*=*.*\r"; continue 23 | expect "\r\n/" send "exit\r"; continue 24 | expect "\r\n." send "k/f\r"; continue 25 | 26 | expect "\r\n." send -t after=1000k "login 1,2\r"; continue 27 | expect "\r\n." send "copy sys:*.*=[10,7,ftn10v6,run]*.*\r"; continue 28 | expect "\r\n." send "copy hlp:*.*=[10,7,ftn10v6,doc]*.hlp\r"; continue 29 | expect "\r\n." send "k/f\r"; continue 30 | -------------------------------------------------------------------------------- /utexas/simh/kermit.do: -------------------------------------------------------------------------------- 1 | expect "\r\n." send after=1000k "login 10,7\r"; continue 2 | expect "\r\n." send "r credir\r"; continue 3 | expect "Create directory:" send "[10,7,KERMIT]/prot:755\r"; continue 4 | expect "Create directory:" send "\3"; continue 5 | expect "\r\n." send "r backup\r"; at %TAP% -r tapes/k10mit-135.tap; continue 6 | expect "\r\n/" send "TAPE MTA0\r"; continue 7 | expect "\r\n/" send "FILES\r"; continue 8 | expect "\r\n/" send "RESTORE DSKB:[10,7,KERMIT]*.*=DSKB:[76,5,kermit]*.*\r"; continue 9 | expect "\r\n/" send "EXIT\r"; continue 10 | expect "\r\n." send "R SETSRC\r"; continue 11 | expect "\r\n*" send "CP [10,7,KERMIT]\r"; continue 12 | expect "\r\n*" send "\3"; continue 13 | expect "\r\n." send "COMP/COMPILE K10UNV.MAC\r"; continue 14 | expect "\r\n." send "COMP/COMPILE K10MIT.MAC,K10SYS.MAC,K10WLD.MAC\r"; continue 15 | expect "\r\n." send "COMP/COMPILE K10MSG.MAC,K10TT.MAC,K10GLB.MAC\r"; continue 16 | expect "\r\n." send "R LINK\r"; continue 17 | expect "\r\n*" send "@K10MIT\r"; continue 18 | expect "\r\n." send "K/F\r"; continue 19 | expect "\r\n." send -t after=100k "login 1,2\r"; continue 20 | expect "\r\n." send "copy sys:<055>=dskb:[10,7,KERMIT]*.exe\r"; continue 21 | expect "\r\n." send "copy hlp:<055>=dskb:[10,7,KERMIT]*.hlp\r"; continue 22 | expect "\r\n." send "k/f\r"; continue 23 | -------------------------------------------------------------------------------- /utexas/simh/mac-runner.ini: -------------------------------------------------------------------------------- 1 | set env SIM_NAME=KL-10 2 | set env DSK=RPA 3 | set env TAP=TUA 4 | set env DN=kl 5 | set env C=kl 6 | set cpu 4096k kl10b idle 7 | set rpa rh20 8 | set rpb rh20 9 | set tua rh20 10 | set mta disable 11 | set tua enable 12 | set dc disable 13 | set ni enable 14 | at tty -U 2031 15 | at ni tap:tap0 16 | set dn rsx20 17 | at lp20 -n prt.log 18 | at %DSK%0 dsk/%DN%_dskb0.rp6 19 | at %DSK%1 dsk/%DN%_dskb1.rp6 20 | 21 | load -c bts/boot.exb 22 | 23 | expect "BOOT>" send "\r"; continue 24 | expect "Why reload:" send "sa\r"; continue 25 | expect "Date:" send "03-19-86\r"; continue 26 | expect "Time:" send "1100\r"; continue 27 | expect "Startup option:" send "quick\r"; continue 28 | expect "%TTY STOMPER - Starting" send "\3"; continue 29 | expect "\r\n*" continue 30 | expect "\r\n." continue 31 | expect "\r\n." continue 32 | 33 | expect "\r\n." send "r opr\r"; continue 34 | expect "OPR>" send "\r"; continue 35 | expect "OPR>" send "\r"; continue 36 | expect "OPR>" send "set tape mta0 unavailable\r"; continue 37 | expect "Enter text and terminate with ^Z" send "installing software\r\32"; continue 38 | expect "OPR>" send "\r"; continue 39 | expect "OPR>" send "exit\r"; continue 40 | 41 | expect "\r\n." send "del *.for\r"; continue 42 | expect "\r\n." send "del *.rel\r"; continue 43 | expect "\r\n." send "r backup\r"; at %TAP%0 -r job.tap; continue 44 | expect "\r\n/" send "tape mta0:\r"; continue 45 | expect "\r\n/" send "rewind\r"; continue 46 | expect "\r\n/" send "inter\r"; continue 47 | expect "\r\n/" send "files\r"; continue 48 | expect "\r\n/" send "rest [,]*.*=*.*\r"; continue 49 | expect "\r\n/" send "exit\r"; continue 50 | 51 | expect "\r\n." send "exec job.mac\r"; continue 52 | ; continue 53 | 54 | expect "\r\n." send "k/f\r"; continue 55 | expect "Disk Reads" halt 56 | continue 57 | quit 58 | -------------------------------------------------------------------------------- /utexas/simh/readme.md: -------------------------------------------------------------------------------- 1 | ## useful passwords 2 | 3 | - 1,2 FAILSA 4 | - 6,6 MAINT 5 | - 7,7 OPER 6 | - 10,* DIST 7 | - 100,100 DEMO1 8 | - 100,101 DEMO2 9 | - 5,30 DECWAR 10 | 11 | you can also just look in the [tape-boot-create-disk.ini](tape-boot-create-disk.ini) simh script that creates our boot disk, these passwords are set right there! the above is just a nice presentation of those facts on the ground. 12 | -------------------------------------------------------------------------------- /utexas/simh/utexas.do: -------------------------------------------------------------------------------- 1 | expect "BOOT>" send "\r"; continue 2 | expect "Why reload:" send "sa\r"; continue 3 | expect "Date:" send "03-19-86\r"; continue 4 | expect "Time:" send "0000\r"; continue 5 | expect "Startup option:" send "quick\r"; continue 6 | expect "%TTY STOMPER - Starting" send "\3"; continue 7 | expect "\r\n*" continue 8 | expect "\r\n." continue 9 | expect "\r\n." continue 10 | expect "\r\n." send "r opr\r"; continue 11 | expect "OPR>" send "\r"; continue 12 | expect "OPR>" send "\r"; continue 13 | expect "OPR>" send "set tape mta0 unavailable\r"; continue 14 | expect "Enter text and terminate with ^Z" send "installing software\r\32"; continue 15 | expect "OPR>" send "\r"; continue 16 | expect "OPR>" send "exit\r"; continue 17 | expect "\r\n." send "k/f\r"; continue 18 | expect "\r\n." send -t after=1000k "login 5,30\r"; continue 19 | expect "\r\n." send "r backup\r"; at %TAP%0 -r tapes/utexas23-reconstruction.tap; continue 20 | expect "\r\n/" send "tape mta0:\r"; continue 21 | expect "\r\n/" send "rewind\r"; continue 22 | expect "\r\n/" send "inter\r"; continue 23 | expect "\r\n/" send "files\r"; continue 24 | expect "\r\n/" send "rest [,]*.*=*.*\r"; continue 25 | expect "\r\n/" send "exit\r"; continue 26 | expect "\r\n." send "compile/comp decwar, high, low, setup, warmac, msg, setmsg\r"; continue 27 | expect "\r\n." send ""; continue 28 | ; line above is the expect hack, shouldn't be needed but seems to work 29 | expect "\r\n." send "r link\r"; continue 30 | expect "\r\n*" send "decwar/save\r"; continue 31 | expect "\r\n*" send "low/seg:low\r"; continue 32 | expect "\r\n*" send "high/seg:high\r"; continue 33 | expect "\r\n*" send "decwar/seg:def\r"; continue 34 | expect "\r\n*" send "msg\r"; continue 35 | expect "\r\n*" send "warmac\r"; continue 36 | expect "\r\n*" send "sys:forlib/sea/seg:def\r"; continue 37 | expect "\r\n*" send "setup/seg:low\r"; continue 38 | expect "\r\n*" send "setmsg\r"; continue 39 | expect "\r\n*" send "sys:forlib/sea/seg:low\r"; continue 40 | expect "\r\n*" send "/g\r"; continue 41 | expect "\r\n." send "get decwar\r"; continue 42 | expect "\r\n." send "ssave\r"; continue 43 | expect "\r\n." send "protect decwar.exe <055>\r"; continue 44 | expect "\r\n." send "protect decwar.hlp <055>\r"; continue 45 | expect "\r\n." send "protect decwar.nws <055>\r"; continue 46 | expect "\r\n." send "protect decwar.grp <000>\r"; continue 47 | expect "\r\n." send "protect decwar.ini <000>\r"; continue 48 | expect "\r\n." send "del *.sta\r"; continue 49 | expect "\r\n." send "k/f\r"; continue 50 | expect "\r\n." send -t after=1000k "login 1,2\r"; continue 51 | expect "\r\n." send "assign gam: dskb:[5,30]\r"; continue 52 | expect "\r\n." send "copy [100,100]decwar.ini=[5,30]decwar.ini\r"; continue 53 | expect "\r\n." send "protect [100,100]decwar.ini <000>\r"; continue 54 | expect "\r\n." send "k/f\r"; continue 55 | show expect 56 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/HIGH.FOR: -------------------------------------------------------------------------------- 1 | subroutine high 2 | include 'param' 3 | include 'hiseg' 4 | common /timers/ timdum(250) ! used in WARMAC for performance timers 5 | end 6 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/HISEG.FOR: -------------------------------------------------------------------------------- 1 | common /hiseg/ 2 | + hfz, shpcon, shpdam, base, nbase, board, locpln, locr, 3 | + erom, eromo, rsr, nplnet, rom, romcnt, rtpaus, rppaus, 4 | + job, msgflg, hitflg, numcap, romopt, blhopt, endflg, nomsg, 5 | + tmscor, tim0, slwest, kilque, nkill, kilndx, tmturn, numshp, 6 | + numrom, trstat, active, alive, comknt, hitime, dead, docked, 7 | + hlz, plnlok, frelok, quelok, device, isaydo, xhelp, ttydat, 8 | + names, bits, sbits, cmdbts, numply, numsid, versio, gameno, 9 | + dotime, score 10 | 11 | c Note: the following MUST be last entry in hiseg impure area 12 | common /hiseg/ hilst 13 | 14 | !High core zeroed out by first player 15 | 16 | integer hfz !first location to zero out 17 | integer shpcon(KNPLAY,10) !ship information 18 | integer shpdam(KNPLAY,KNDEV) !damage to ship devices 19 | integer base(KNBASE,4,2) !base information 20 | integer nbase(2) !number of federation and klingon bases 21 | integer board(brdsiz) !board 22 | integer locpln(KNPLNT,4) !planet info 23 | integer locr(2) !romulan position 24 | integer erom !romulan energy 25 | integer eromo !initial rom energy 26 | integer rsr(8) !romulan scoring info 27 | integer nplnet !number of existing planets 28 | logical rom !true if Romulan exists 29 | integer romcnt !Romulan move counter 30 | integer rtpaus !Romulan torpedo tube pause time 31 | integer rppaus !Romulan phaser pause time 32 | integer job(KNPLAY,KNJBST) !various job status information 33 | integer msgflg(KNPLAY) !flag for message routine 34 | integer hitflg(KNPLAY) !flag for MAKHIT, GETHIT 35 | integer numcap(2) !number of fed and emp planets 36 | integer romopt !romulan option flag 37 | integer blhopt !black hole option flag 38 | integer endflg !universe is destroyed flag 39 | integer nomsg !radio off flag 40 | integer tmscor(2,8) !team scoring information 41 | integer tim0 !initial startup time 42 | integer slwest !class code of slowest terminal 43 | integer kilque(KQLEN,5) !list of players recently killed 44 | integer nkill !current length of killed queue 45 | integer kilndx !current index into killed queue 46 | integer tmturn(3) !total # of turns used by each side 47 | integer numshp(2) !total numbers of ships used 48 | integer numrom !total number of romulans used 49 | integer trstat(KNPLAY) !tractor beam status 50 | integer active(KNPLAY) !dead ship flags 51 | logical alive(KNPLAY) !true if player is alive 52 | integer comknt !dead ship monitor count 53 | integer hitime !time to reinitialize HISEG 54 | logical dead !true if KILHGH already called 55 | integer docked(KNPLAY) !docked flags 56 | integer hlz !last location to zero out 57 | 58 | !high core not zeroed out by first player 59 | 60 | integer plnlok !lock variable for LOCPLN array 61 | integer frelok !lock variable for FREE routine 62 | integer quelok !lock variable for queue routines 63 | 64 | integer device(KNDEV) !device names 65 | integer isaydo(2,KNCMD) !mnemonics for commands 66 | integer xhelp(2,KNXTR) !extra things help is available for 67 | integer ttydat(2,KNTTY) !mnemonics for supported TTYs 68 | integer names(KNPLAY,3) !names of players 69 | integer bits(18) !player's identification bit 70 | !(powers of 2 table) 71 | integer sbits(0 : 2) !flag bits for different sides 72 | integer cmdbts(KNCMD) !flags commands usable before game 73 | integer numply !number of active players 74 | integer numsid(2) !current # of active ships per side 75 | integer versio !version number 76 | integer gameno ! game number 77 | integer dotime ! counter for rebuilding bases 78 | integer score(knpoin, knplay) 79 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/LOW.FOR: -------------------------------------------------------------------------------- 1 | subroutine low 2 | include 'param' 3 | include 'lowseg' 4 | common /local/ locdum(200) 5 | end 6 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/LOWSEG.FOR: -------------------------------------------------------------------------------- 1 | common /lowseg/ 2 | + lfz, ntok, tknlst, vallst, typlst, ptrlst, who, iwhat, 3 | + ihita, Vto, Hto, Vfrom, Hfrom, critdv, critdm, klflg, 4 | + dispfr, dispto, dbits, shcnto, shstto, shcnfr, shstfr, shjump, 5 | + group, ngroup, pasflg, shtype, team, ccflg, player, tpoint, 6 | + phbank, tobank, ptime, prtype, rptflg, gagmsg, oflg, scnflg, 7 | + ttytyp, hcpos, usppn, icflg, ocflg, blank, llz, inflag, hungup, 8 | + addrck, lkfail, terwid 9 | 10 | integer lfz !first location of LOWSEG 11 | integer ntok !number of tokens on input line 12 | integer tknlst(kmaxtk) !buffer for tokens from input line 13 | integer vallst(kmaxtk) !numeric values of tokens, else 0 14 | integer typlst(kmaxtk) !types for corresponding tokens 15 | integer ptrlst(kmaxtk) !pointers to beginning of each token 16 | integer who !which player you are 17 | integer iwhat !type of hit for MAKHIT, GETHIT 18 | integer ihita !size of hit for MAKHIT, GETHIT 19 | integer Vto !V disp. location for MAKHIT, GETHIT 20 | integer Hto !H disp. location for MAKHIT, GETHIT 21 | integer Vfrom !V disp. location for MAKHIT, GETHIT 22 | integer Hfrom !H disp. location for MAKHIT, GETHIT 23 | integer critdv !dev. # of crit. hit for MAKHIT, GETHIT 24 | integer critdm !size of crit. hit for MAKHIT, GETHIT 25 | integer klflg !killed flag for MAKHIT, GETHIT 26 | integer dispfr !DISP code of sender of information 27 | integer dispto !DISP code of receiver 28 | integer dbits !destination bits for MAKHIT, GETHIT 29 | integer shcnto !hittee's shield condition 30 | integer shstto !hittee's shield strength 31 | integer shcnfr !hitter's shield condition 32 | integer shstfr !hitter's shield strength 33 | integer shjump !object displacement flag 34 | integer group(kngrp,2) !player groups for SEND command 35 | integer ngroup !number of defined groups 36 | integer pasflg !true if the guy knows the password 37 | integer shtype !shiptype (1=norm,10=trainer) 38 | integer team !1 for federation, 2 for empire 39 | logical ccflg !-1 if ^C while turned off 40 | logical player !player / romulan movement flag 41 | integer tpoint(knpoin) !points to be stored into SCORE 42 | integer phbank(2) !time of last phaser fire 43 | integer tobank !time of last torpedo fire 44 | integer ptime !pause after last command in GETCMD 45 | integer prtype !prompt type (0 = normal) 46 | logical rptflg !TRUE if command was repeated with $ 47 | integer gagmsg !mask to gag msgs from individual ships 48 | integer oflg !output verbosity flag 49 | integer scnflg !scan verbosity flag 50 | integer ttytyp !terminal type 51 | integer hcpos !horizontal cursor position 52 | integer usppn !added by drforbin for private ppn 53 | integer icflg !default coord input type (abs,rel) 54 | integer ocflg !default coord out type (abs,rel,both) 55 | integer blank !number of consecutive blank lines 56 | integer llz !last location in LOWSEG 57 | integer inflag ! -1 if waiting for input 58 | integer hungup ! -1 if job has hung up 59 | integer addrck ! -1 if an address failure occured 60 | integer lkfail ! -1 if a lock request failed 61 | integer terwid 62 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/LSTVAR.FOR: -------------------------------------------------------------------------------- 1 | common /local/ 2 | + lstfz, 3 | + shpctr(2), shplst(KNPLAY), sxf(2), 4 | + romctr, romlst, rxf, 5 | + basctr(2), baslst(KNBASE,2), bxf(2), 6 | + plnctr, plnlst(KNPLNT), pxf(0:2), 7 | + txf, 8 | + lstlz, 9 | + cmd, svpos, shpos, 10 | + p, omask, smask, lmask, imask, ships, range, vpos, hpos, gxf, 11 | + vposc, hposc, clsest, 12 | + xf, grpbts, code, object, index, side 13 | 14 | C shpctr number of ships selected for output 15 | C shplst output flags for each ship 16 | C sxf ship summary flags 17 | C romctr number of Romulans selected for output (0 or 1) 18 | C romlst Romulan output flags 19 | C rxf Romulan summary flags 20 | C basctr number of bases selected for output 21 | C baslst output flags for each base 22 | C bxf base summary flags 23 | C plnctr number of planets selected for output 24 | C plnlst output flags for each planet 25 | C pxf planet summary flags 26 | C txf target summary flags 27 | 28 | C cmd command being executed 29 | C svpos vertical position of ship 30 | C shpos horizontal position of ship 31 | 32 | C p pointer to current input token 33 | C omask object mask (SHPBIT,BASBIT,PLNBIT) 34 | C smask side mask (FEDBIT,EMPBIT,NEUBIT,ROMBIT) 35 | C lmask listing flags (LSTBIT,SUMBIT) 36 | C imask input flags (NAMBIT,ROMBIT,SHPBIT,BASBIT,PLNBIT,PRTBIT, 37 | C CRDBIT,FEDBIT,EMPBIT,NEUBIT,CAPBIT,RNGBIT,CLSBIT,OUTBIT) 38 | C ships ships encountered on input line 39 | C range maximum range to look for objects 40 | C vpos vertical position of object 41 | C hpos horizontal position of object 42 | C gxf group summary flags 43 | 44 | C vposc vertical coordinate of closest object 45 | C hposc horizontal coordinate of closest object 46 | C clsest distance to closest object 47 | 48 | C xf {LSTBIT,SUMBIT,ORNBIT,PASBIT} 49 | C grpbts selection bits for group (used for error message) 50 | C code disply code of object 51 | C object object code (code div 100) 52 | C index object index (code mod 100) 53 | C side team object is on (0=neutral,1=Federation,2=Empire,3=Romulan) 54 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/SETEXT.FOR: -------------------------------------------------------------------------------- 1 | external backup !) 10,10,10,10,10,10,10,10,0,! 2 | external kilch4 !You are scheduled for reincarnation in ! 3 | external kilch5 ! minutes and ! 4 | external kilch6 ! seconds.! 5 | external kilch8 !! 6 | !Time left: ! 7 | external maicom !This command unavailable in Pre-game ! 8 | external nogal1 !This particular galaxy has been depopulated!!! 9 | !Please try again. A new battle is forming now!!! 10 | external pgame1 !! 11 | !Now entering DECWAR Pre-game, type Activate to enter/reenter game.! 12 | external ptywrn !DECWAR may not be played from a PTY.! 13 | external setu01 !Sorry, but all ships are in use. Try again later.! 14 | external setu02 !Regular or Tournament game? (Regular) ! 15 | external setu03 !Tournament name or number: ! 16 | external setu04 !! 17 | !Is the Romulan Empire involved in this conflict? (yes) ! 18 | external setu05 !! 19 | !Do you want black holes? (no) ! 20 | external setu11 !! 21 | !You will join the forces of the Federation.! 22 | external setu12 !! 23 | !You will join the forces of the Klingon Empire.! 24 | external setu13 !! 25 | !The following vessels are available for you to use.! 26 | external setu14 !! 27 | !Which vessel do you wish to command? ! 28 | external setu15 !! 29 | !Sorry, that vessel is being used.! 30 | external setu16 !! 31 | !Currently there are ! 32 | external setu17 ! Federation ships and ! 33 | external stu17a ! Empire ships. ! 34 | external setu18 !Which side do you wish to join? (Federation or Empire) ! 35 | external strtup !! 36 | !Type HELP for help, PREGAME to enter Pre-game, or . ! 37 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/SETMSG.MAC: -------------------------------------------------------------------------------- 1 | title setmsg 2 | backup::byte (7) 10,10,10,10,10,10,10,10,0,7 3 | kilch4::asciz /You are scheduled for reincarnation in / 4 | kilch5::asciz / minutes and / 5 | kilch6::asciz / seconds./ 6 | kilch8::asciz / 7 | Time left: / 8 | maicom::asciz /This command unavailable in Pre-game / 9 | nogal1::asciz /This particular galaxy has been depopulated!! 10 | Please try again. A new battle is forming now!!/ 11 | pgame1::asciz | 12 | Now entering DECWAR Pre-game; type 13 | ACtivate to enter game.| 14 | ptywrn::asciz /DECWAR may not be played from a PTY./ 15 | setu01::asciz /Sorry, but all ships are in use. 16 | I will start a new game./ 17 | setu02::asciz /Regular or Tournament game? (Regular) / 18 | setu03::asciz /Tournament name or number: / 19 | setu04::asciz / 20 | Is the Romulan Empire involved in this conflict? (yes) / 21 | setu05::asciz / 22 | Do you want black holes? (no) / 23 | setu11::asciz / 24 | You will join the Federation./ 25 | setu12::asciz / 26 | You will join the Klingon Empire./ 27 | setu13::asciz / 28 | These vessels are available:/ 29 | setu14::asciz / 30 | Which vessel do you desire? / 31 | setu15::asciz / 32 | Sorry, that vessel is being used./ 33 | setu16::asciz / 34 | Currently there are / 35 | setu17::asciz / 36 | Federation ships and / 37 | stu17a::asciz / 38 | Empire ships. 39 | / 40 | setu18::asciz / 41 | Which side do you wish to join? 42 | (Federation or Empire) / 43 | strtup::asciz / 44 | Enter HELp, PREgame, or blank 45 | line: / 46 | 47 | end 48 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/hlp/DECWAR.GRP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drforbin/decwar/5e33c499cf89af8ebf342beecea940952372ff40/utexas/utexas23-reconstruction/hlp/DECWAR.GRP -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/hlp/DECWAR.IMP: -------------------------------------------------------------------------------- 1 | The following files are included on the DECWAR source distribution tape: 2 | 3 | DECWAR.IMP This file. 4 | 5 | Files to be installed on GAM: 6 | DECWAR.EXE DECWAR game. Protected for EXECUTE access. 7 | DECWAR.HLP Help for DECWAR. Source for on line help system. 8 | Protected for READ access. 9 | DECWAR.NWS News file (recent developments). Protected for READ access. 10 | DECWAR.GRP Gripe file. Initially empty, added to by the DECWAR GRIPE 11 | command. Must be protected to allow write access. 12 | 13 | Files from which the GAM: files are derived: 14 | DECWAR.EXE: 15 | HIGH.FOR Used to force common block into high segment. 16 | LOW.FOR Used to force common block into low segment. 17 | DECWAR.FOR FORTRAN source. 18 | WARMAC.MAC MACRO source. 19 | MSG.MAC Output text source (to force text into the high segment, 20 | and to get rid of the annoying trailing blanks FORTRAN 21 | generates for literals). 22 | SETUP.FOR Once only code, deleted from core after initialization. 23 | SETMSG.MAC Equivalent to MSG.MAC for SETUP text strings. 24 | DECWAR.RNH Help file source. 25 | DECNWS.RNO News file source. 26 | 27 | Files INCLUDEd in DECWAR.FOR (extracted from WARMAC.MAC by TECO macros): 28 | PARAM.FOR Parameters (constants). 29 | HISEG.FOR High segment common block. 30 | LOWSEG.FOR Low segment common block. 31 | 32 | Other files INCLUDEd in DECWAR.FOR: 33 | EXTERN.FOR External declarations for strings used in DECWAR (extracted 34 | from MSG.MAC). 35 | SETEXT.FOR Equivalent external declarations used by SETUP (extracted 36 | from SETMSG.MAC). 37 | LSTVAR.FOR Common block INCLUDEd by all LIST routines (LST???). 38 | 39 | Relocatable files needed to produce DECWAR.EXE: 40 | HIGH.REL High segment common block. 41 | LOW.REL Low segment common block. 42 | DECWAR.REL From DECWAR.FOR source. 43 | WARMAC.REL From WARMAC.MAC source. 44 | MSG.REL From MSG.MAC source. 45 | SETUP.REL From SETUP.FOR source. 46 | SETMSG.REL From SETMSG.MAC source. 47 | 48 | Tools used to build game (.SAV files generated from TECO macros): 49 | L.MIC Load REL files in proper sequence into right segments. 50 | Note you can DO L/H for help on building the DECWAR core 51 | image. 52 | PARAM.SAV Build PARAM.FOR from WARMAC.MAC. 53 | HISEG.SAV Build HISEG.FOR from WARMAC.MAC. 54 | LOWSEG.SAV Build LOWSEG.FOR from WARMAC.MAC. 55 | EXTERN.SAV Build EXTERN.FOR from MSG.MAC. 56 | SETEXT.SAV Build SETEXT.FOR from SETMSG.MAC. 57 | 58 | TECO macros used to build game (require TECO 124): 59 | PARAM.TEC Source for PARAM.SAV. 60 | HISEG.TEC Source for HISEG.SAV. 61 | LOWSEG.TEC Source for LOWSEG.SAV. 62 | EXTERN.TEC Source for EXTERN.SAV. 63 | SETEXT.TEC Source for SETEXT.SAV. 64 | 65 | Misc. utilities: 66 | MAKHLP.MIC Build DECWAR.HLP file from DECWAR.RNH using RUNOFF. 67 | MAKNWS.MIC Build DECWAR.NWS file from DECNWS.RNO using RUNOFF. 68 | NDX.TEC Build DECWAR.NDX file to be used by PAGE.TEC. 69 | PAGE.TEC Search DECWAR.NDX file for page number of desired 70 | DECWAR.FOR subprogram. 71 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/hlp/DECWAR.LTR: -------------------------------------------------------------------------------- 1 | I have received your request for sources to the DECWAR program. 2 | We will be pleased to send you the sources, but first we must 3 | ask you to sign and return the enclosed license agreement. 4 | DECWAR was developed at the University of Texas at Austin, and 5 | it is being maintained. Hence our interest in using the 6 | agreement to record and control who gets the source to it. 7 | 8 | DECWAR is a sophisticated real-time space battle game designed 9 | to be played by from 1 to 18 people. It was written at the 10 | University of Texas at Austin, primarily by Jeff Potter and Bob 11 | Hysick. The game was originally based on a very limited, single 12 | job, single terminal, two player Star Trek type game known as 13 | WAR. This game came from the CDC-6600/6400 system at the 14 | University of Texas at Austin, author unknown. Robert Schneider 15 | re-wrote the original source on the CDC and started the transfer 16 | to the DEC-10. In the transfer process, the game was renamed to 17 | DECWAR, largely re-designed, and almost entirely re-written, so 18 | that the current version bears little resemblance to the 19 | original. Almost all the commands were added once the game was 20 | on the DEC-10, as well as the basic concept of separate jobs 21 | controlling each ship, and most of the other features that make 22 | the game challenging, exciting, and enjoyable. The first 23 | version was installed on the DEC-10 in August 1978. After 24 | several revisions, a greatly enhanced and improved game, version 25 | 2.0, was installed in July 1979. 26 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/hlp/DECWAR.NWS: -------------------------------------------------------------------------------- 1 | Welcome Decwar Version 2.2 !! 2 | 3 | This version contains many bug fixes. Computed coordinates now 4 | work for terminals with speeds < = 600 baud. The TEll command 5 | should work now also. If we should get a fatal program error, 6 | please save your output!! I didn't change a couple of KL 7 | instructions in the lowseg as I think they are data. 8 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/hlp/DECWAR.TAP: -------------------------------------------------------------------------------- 1 | dskc:[10,30,decwar,hlp]DECWAR.IMP 2 | gam:DECWAR.EXE 3 | gam:DECWAR.HLP 4 | gam:DECWAR.NWS 5 | gam:DECWAR.GRP 6 | dskc:[10,30,decwar]HIGH.FOR 7 | dskc:[10,30,decwar]LOW.FOR 8 | dskc:[10,30,decwar]DECWAR.FOR 9 | dskc:[10,30,decwar]WARMAC.MAC 10 | dskc:[10,30,decwar]MSG.MAC 11 | dskc:[10,30,decwar]SETUP.FOR 12 | dskc:[10,30,decwar]SETMSG.MAC 13 | dskc:[10,30,decwar,hlp]DECWAR.RNH 14 | dskc:[10,30,decwar,hlp]DECNWS.RNO 15 | dskc:[10,30,decwar]PARAM.FOR 16 | dskc:[10,30,decwar]HISEG.FOR 17 | dskc:[10,30,decwar]LOWSEG.FOR 18 | dskc:[10,30,decwar]EXTERN.FOR 19 | dskc:[10,30,decwar]SETEXT.FOR 20 | dskc:[10,30,decwar]LSTVAR.FOR 21 | dskc:[10,30,decwar]HIGH.REL 22 | dskc:[10,30,decwar]LOW.REL 23 | dskc:[10,30,decwar]DECWAR.REL 24 | dskc:[10,30,decwar]WARMAC.REL 25 | dskc:[10,30,decwar]MSG.REL 26 | dskc:[10,30,decwar]SETUP.REL 27 | dskc:[10,30,decwar]SETMSG.REL 28 | dskc:[10,30,decwar]L.MIC 29 | dskc:[10,30,decwar]PARAM.SAV 30 | dskc:[10,30,decwar]HISEG.SAV 31 | dskc:[10,30,decwar]LOWSEG.SAV 32 | dskc:[10,30,decwar]EXTERN.SAV 33 | dskc:[10,30,decwar]SETEXT.SAV 34 | dskc:[10,30,decwar,tec]PARAM.TEC 35 | dskc:[10,30,decwar,tec]HISEG.TEC 36 | dskc:[10,30,decwar,tec]LOWSEG.TEC 37 | dskc:[10,30,decwar,tec]EXTERN.TEC 38 | dskc:[10,30,decwar,tec]SETEXT.TEC 39 | dskc:[10,30,decwar,hlp]MAKHLP.MIC 40 | dskc:[10,30,decwar,hlp]MAKNWS.MIC 41 | dskc:[10,30,decwar,tec]NDX.TEC 42 | dskc:[10,30,decwar,tec]PAGE.TEC 43 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/hlp/DEFINE.HLP: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | _.DEFINE 5 | . 6 | DEFINition of TELL groups 7 | .skip 1 8 | Syntax: DEfine 9 | .skip 1 10 | This command is used to assign groups of ships to a specific name, thus 11 | simplifying the sending of messages to multiple players. All players 12 | begin the game with certain standard group names defined, as described 13 | in the TELL help file. Groups may be redefined or eliminated as 14 | desired. Group names will be truncated to five (5) characters. 15 | .skip 1 16 | Examples: 17 | .skip 1.nf 18 | DE fools i e l TELL FOOLS now equivalent to TELL I E L. 19 | DE fools Eliminates FOOLS as a valid group name. 20 | _. 21 | .skip 1.f 22 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/hlp/HLP.COM: -------------------------------------------------------------------------------- 1 | DECNWS.RNO ;RUNOFF source file for DECWAR.NWS document. 2 | DECWAR.DIC ;Dictionary file for DECWAR documentation when using SPELL. 3 | DECWAR.HLP ;Current DECWAR Help file CONTAINING SYSTEM COMMENTS. Will 4 | ;be accessed by DECWAR player if he has Password set (instead 5 | ;of GAM: help file). Should NOT be put on GAM:, if a new 6 | ;copy needed, use MAKHLP. 7 | DECWAR.IMP ;RUNOFF source file for DECWAR implementation notes. 8 | DECWAR.LTR ;RUNOFF source file for response letter to enquiries for 9 | ;the source. 10 | DECWAR.NWS ;Current DECWAR News file (should also be on GAM:). 11 | DECWAR.RNH ;RUNOFF source file for DECWAR.HLP document. 12 | DEFINE.HLP ;Help text for defunct DEFINE command. Probably will never 13 | ;be implemented again, but... 14 | HLP .COM ;DMS comment file for [10,30,DECWAR,HLP] SFD. 15 | LICENS.MEM ;Decwar License agreement document. 16 | LICENS.RNO ;RUNOFF source file for License agreement. 17 | MAKHLP.MIC ;MICro to generate DECWAR.HLP files (either with or without 18 | ;'System' comments). 19 | MAKNWS.MIC ;MICro to generate DECWAR.NWS file. 20 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/hlp/MAKHLP.MIC: -------------------------------------------------------------------------------- 1 | .if ($a="s") .let a = "/var:system" 2 | .revive 3 | .r new:runoff (decwar.hlp/cr/und:sep'a=decwar.rnh) 4 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/hlp/MAKNWS.MIC: -------------------------------------------------------------------------------- 1 | .r new:runoff (decwar.nws/cr=decnws.rno) 2 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/msc/DEFINE.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | subroutine DEFINE 22 | include 'param/nolist' 23 | include 'hiseg/nolist' 24 | include 'lowseg/nolist' 25 | include 'extern/nolist' 26 | 27 | if (ntok .eq. 1) goto 500 28 | if (typlst(2) .eq. KALF) goto 200 29 | 100 call out (defn01,1) 30 | goto 1500 31 | 32 | 200 g = tknlst(1,2) 33 | p = 3 34 | if (ntok .gt. 2) goto 600 35 | do 300 i = 1, KNGRP 36 | if (equal(tknlst(1,2), group(i,1), 5, 5)) goto 400 37 | 300 continue 38 | call out (defn02,0) 39 | call outw (tknlst(1,2)) ; call crlf 40 | goto 1500 41 | 400 call out (defn03,0) 42 | call outw (group(i,1)) ; call crlf 43 | group(i,1) = 0 ; group (i,2) = 0 44 | return 45 | 46 | 500 call out (defn04,0) 47 | call gtkn 48 | if (typlst(1) .eq. KEOL) goto 1500 49 | if (typlst(1) .ne. KALF) goto 100 50 | g = tknlst(1,1) 51 | p = 2 52 | if (ntok .gt. 1) goto 600 53 | call out (defn05,0) 54 | call gtkn 55 | if (typlst(1) .eq. KEOL) goto 1500 56 | p = 1 57 | 58 | 600 ff = 0 59 | do 700 i = KNGRP, 1, -1 60 | if (group(i,1) .eq. 0) ff = i 61 | if (equal(g, group(i,1), 5, 5)) goto 800 62 | 700 continue 63 | if (ff .ne. 0) goto 900 64 | call out (defn06,1) 65 | goto 1500 66 | 800 ff = i 67 | 68 | 900 gbits = 0 69 | do 1400 i = p, ntok 70 | do 1000 j = 1, KNPLAY 71 | if (equal(tknlst(1,i), names(j,1), 5, 5)) goto 1100 72 | 1000 continue 73 | call out (defn07,0) 74 | call outw (tknlst(1,i)) ; call crlf 75 | goto 1500 76 | 1100 if (j .ne. who) goto 1200 77 | call out (defn08,1) 78 | goto 1400 79 | 1200 if (job(j,KJOB) .ne. 0) goto 1300 80 | call out (defn09,0) 81 | call out2w (names(j,1),names(j,2)) ; call crlf 82 | 1300 gbits = gbits .or. bits(j) 83 | 1400 continue 84 | 85 | if (gbits .ne. 0) goto 1600 86 | 1500 call out (defn10,1) 87 | return 88 | 89 | 1600 group(ff,1) = g 90 | group(ff,2) = gbits 91 | return 92 | 93 | end 94 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/msc/MSC.COM: -------------------------------------------------------------------------------- 1 | DECW11.FXD ;Fixed gripes as of version 1.2 update. 2 | DECW13.FXD ;Fixed gripes as of version 2.0 update. 3 | DECW21.FXD ;Fixed gripes as of version 2.2 update. 4 | DEFINE.FOR ;Archived source code for defunct DEFINE command (was used 5 | ;to define/redefine radio message groups). 6 | MSC .COM ;DMS comment file for [10,30,decwar,msc] SFD. 7 | OUTHDB.FOR ;Fortran 'chunk' for insertion in OUTHIT subroutine in DECWAR 8 | ;when debugging hit messages (will echo back parameters 9 | ;returned by GETHIT call). 10 | TTY .EXE ;Routine to echo ASCII character codes. 11 | TTY .MAC ;Source to TTY.EXE 12 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/msc/OUTHDB.FOR: -------------------------------------------------------------------------------- 1 | C This file is part of Decwar. 2 | C Copyright 1979, 2011 Bob Hysick, Jeff Potter, The University of Texas 3 | C Computation Center and Harris Newman. 4 | 5 | C This program is free software; you can redistribute it and/or modify 6 | C it under the terms of the GNU General Public License as published by 7 | C the Free Software Foundation; either version 3, or (at your option) 8 | C any later version. 9 | 10 | C This program is distributed in the hope that it will be useful, 11 | C but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | C GNU General Public License for more details. 14 | 15 | C You should have received a copy of the GNU General Public License 16 | C along with this program; if not, write to the Free Software 17 | C Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 18 | C 02110-1301, USA. 19 | 20 | 21 | 22 | *.......Echo input (diagnostic print) 23 | 24 | if (.not. PASFLG) goto 222 25 | call out ('iwhat: ',0) ; call odec (iwhat,0) 26 | call out (' ihita: ',0) ; call odec (ihita,0) ; call crlf 27 | call out ('xto: ',0) ; call odec (xto,0) 28 | call out (' yto: ',0) ; call odec (yto,0) ; call crlf 29 | call out ('xfrom: ',0) ; call odec (xfrom,0) 30 | call out (' yfrom: ',0) ; call odec (yfrom,0) ; call crlf 31 | call out ('critdv: ',0) ; call odec (critdv,0) 32 | call out (' critdm: ',0) ; call odec (critdm,0) ; call crlf 33 | call out ('klflag: ',0) ; call odec (klflag,0) 34 | call out (' shjump: ',0) ; call odec (shjump,0) ; call crlf 35 | call out ('dispto: ',0) ; call odec (dispto,0) 36 | call out (' dispfr: ',0) ; call odec (dispfr,0) ; call crlf 37 | call out ('shcnto: ',0) ; call odec (shcnto,0) 38 | call out (' shstto: ',0) ; call odec (shstto,0) ; call crlf 39 | call out ('shcnfr: ',0) ; call odec (shcnfr,0) 40 | call out (' shstfr: ',0) ; call odec (shstfr,0) ; call crlf 41 | 222 continue 42 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/tec/EXTERN.TEC: -------------------------------------------------------------------------------- 1 | [Building EXTERN.FOR] 2 |  erMSG.MAC ewEXTERN.FOR 3 | ey s:: 0l -zk j 4 | !N! :s::"f oD' -2d 6d 0xl 0k .,.+1xd d i external  gl i ! 5 | !L! .u1 l 2r 6 | :q1,.fsd!"f i! l 1a"e a' i ! oL' l 1a"e a' oN 7 | !D! zk i 8 | 9 | 10 |  [Done] ex 11 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/tec/HISEG.TEC: -------------------------------------------------------------------------------- 1 | erWARMAC.MAC 2 | _subttl FORTRAN interface -- high 0l 4k !L1! "f a oL1' 3 | [Building HISEG.FOR] 4 |  ewHISEG.FOR 5 | j j i common /hiseg/ b,.xc b,.k 999un 6 | !L2! 1a"e oL3' .u1 l 2r :q1,.fs;!"s r' .u2 7 | :q1,q2ss"u l oL2' 8 | :q1,q2s,"s r fs,<( fs>) q2-1u2 .-q1-1u3 q3-(q3/8*8)-6"g '' 9 | q1j ss ss .u3 s[(, ] r q3,.xs l .u1 j gc %n-999"l i, ' qn-7"g i 10 | +  0un' gs b,.xc b,.k q3j l oL2 11 | !L3! j gc i 12 | 13 |  zj i 14 | 15 | 16 |  hp ef  17 | Don't forget to recompile HIGH 18 |  ^C 19 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/tec/L.MIC: -------------------------------------------------------------------------------- 1 | .set tty uc 2 | .let a = "'a" 3 | .set tty lc 4 | .if ($a = $a.[1,"/H"]) .goto L1 5 | !To load DECWAR, type @L/sw/sw... 6 | ! 7 | !/D debug using all symbols 8 | !/F use FORDDT instead of DDT 9 | !/E:nam generate an EXE file (nam defaults to DECWAR.EXE) 10 | !/G debug using only global symbols 11 | !/H type this text 12 | !/M:nam generate a map file (nam defaults to DECWAR.MAP) 13 | !/Q quick load, ignores any other switches except /H 14 | !/S:nam generate a symbol file (nam defaults to DECWAR.SYM) 15 | ! 16 | !For most debugging sessions use @L/D 17 | !For fast debugging sessions use @L/G 18 | !For fast debugging that doesn''t require symbols use @L/Q 19 | !To generate the production version use @L/M/S/E 20 | .mic exit 21 | L1:: 22 | .if ($a # $a.[1,"/Q"]) .goto L2 23 | .if ($a # $a.[1,"/D"]) .let d = "/d" 24 | .if ($a # $a.[1,"/F"]) .let d = "/d:for" 25 | .if ($a # $a.[1,"/G"]) .let g = "/d" 26 | .if ($a # $a.[1,"/M"]) .let m = "/map" 27 | .if ($a # $a.[1,"/M:"]) .let m = $a.["/M:","/"] + "/map" 28 | .if ($a # $a.[1,"/S"]) .let s = "/syfile" 29 | .if ($a # $a.[1,"/S:"]) .let s = $a.["/S:","/"] + "/syfile" 30 | .if ($a # $a.[1,"/E"]) .let e = "/ssave" 31 | .if ($a # $a.[1,"/E:"]) .let e = $a.["/E:","/"] + "/ssave" 32 | L2:: 33 | .revive .r link 34 | *'m 35 | *'s 36 | *'d 37 | *low/seg:low 38 | *high/seg:hi 39 | *decwar/seg:def 40 | *msg 41 | *warmac 42 | *sys:forlib/sea/seg:def 43 | *setup/seg:low 44 | *setmsg 45 | *sys:forlib/sea/seg:low 46 | *'g 47 | *'e 48 | */g 49 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/tec/LOWSEG.TEC: -------------------------------------------------------------------------------- 1 | erWARMAC.MAC 2 | _subttl FORTRAN interface -- low 0l 4k !L1! "f a oL1' 3 | [Building LOWSEG.FOR] 4 |  ewLOWSEG.FOR 5 | j i common /lowseg/ b,.xc b,.k 999un 6 | !L2! 1a"e oL3' .u1 l 2r :q1,.fs;!"s r' .u2 7 | :q1,q2ss"u l oL2' 8 | :q1,q2s,"s r fs,<( fs>) q2-3u2 .-q1-1u3 q3-(q3/8*8)-6"g '' 9 | q1j ss ss .u3 s[(, ] r q3,.xs l .u1 j gc %n-999"l i, ' qn-7"g i 10 | +  0un' gs b,.xc b,.k q3j l oL2 11 | !L3! j gc i 12 | 13 |  zj i 14 | 15 | 16 |  hp ef  17 | Don't forget to recompile LOW 18 |  ^C 19 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/tec/NDX.TEC: -------------------------------------------------------------------------------- 1 | [Building DECWAR.NDX] 2 |  erdecwar.for ewdecwar.ndx 3 | hk bub 1up !P! "t %p' "t oD' qb,zk a !N! 4 | :ssubroutine"s 10uc oA' 5 | :sfunction"s 8uc oA' 6 | :sentry"s 5uc oA' 7 | :sprogram"s 7uc oA' 8 | :sblock"s 5uc oA' 9 | oP 10 | !A! .u1 0l ss r q1-.-qc"n l oN' 11 | . 0l qb,.k iPage  qp\ ^o11i l .ub oN 12 | !D! qb,zk  13 | Done 14 |  pef ^c 15 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/tec/PAGE.TEC: -------------------------------------------------------------------------------- 1 | hk erDECWAR.NDX j i<_ 2 | 3 | :8"s 4 | !RESCAN! uc 5 | qc--"n oRESCAN' 6 | 7 | !IN! uc 8 | qc-012"e oSEARCH' 9 | qc-013"e oSEARCH' 10 | qc-014"e oSEARCH' 11 | qc-015"e oIN' 12 | qc-022"e oSEARCH' 13 | qc-024"e oSEARCH' 14 | qc-032"e oSEARCH' 15 | qc-033"e  16 |  oSEARCH' 17 | qci oIN' 18 | 19 | !SEARCH! 20 | i; 0ttl %m> 21 | 3,.-10xs -zxi mi 22 | qm"e Can't find " 0et qs= " 23 | ' 24 |  25 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/tec/PARAM.TEC: -------------------------------------------------------------------------------- 1 | erWARMAC.MAC 2 | _subttl FORTRAN interface -- param 0l 4k !L1! "f a oL1' 3 | [Building PARAM.FOR] 4 |  ewPARAM.FOR 5 | j 6 | !L2! 1a"e oL3' .u1 l 2r :q1,.fs;!"s r' .u2 7 | :q1,q2ss"u l oL2' 8 | :q1,q2fs==="s -s  iparameter  q2+9u2 s= 1u3 9 | 1a-^^^"e 0u3 2d i" q2-1u2' 10 | :.,q2fs "s q2-1u2 11 | 1a-^o11"e .-q1-1u4 q4-(q4/8*8)-q3"l 1a-^o11"e d q2-1u2'''' 12 | ' q2-1j 1a-^o011"n 1a-^o040"n c 1a-^o015"n i ''' l oL2 13 | !L3! j i implicit integer (a-z) 14 | 15 |  zji 16 | real ran,pwr 17 | 18 | 19 | 20 |  hp ef ^c 21 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/tec/SETEXT.TEC: -------------------------------------------------------------------------------- 1 | [Building SETEXT.FOR] 2 |  erSETMSG.MAC ewSETEXT.FOR 3 | ey s:: 0l -zk j 4 | !N! :s::"f oD' -2d 6d 0xl 0k .,.+1xd d i external  gl i ! 5 | !L! .u1 l 2r 6 | :q1,.fsd!"f i! l 1a"e a' i ! oL' l 1a"e a' oN 7 | !D! zk i 8 | 9 | 10 |  [Done] ex 11 | -------------------------------------------------------------------------------- /utexas/utexas23-reconstruction/tec/TECSAV.INF: -------------------------------------------------------------------------------- 1 | to create a SAV file using TECO... 2 | 3 | R TECO / EPfil$ EEfil$ M*$$ / ^C 4 | --------------------------------------------------------------------------------