IO1SPACE LBR<OSGAMES1DOC=VOSPONG BAS)TRON3 BAS tFRUN COM~bO1SPACE OBJ{O1SPACE FQR)O1SPACE DOC ѳW:HOÄfxØú6[zC÷x!i H8É>[5íã y 7~:  Ø!! !V! , 2&8V þlh#G w\É!N! ×` Y +=k!!ËÑ.U="8â9ñ9::2:G:2ʞ>ž!~P!} !~ w"̀!}~Gw!x2w#6#œ6ͷ!T]DM͎PY!͎PY͈{bk̀!w͌!DM̀:!=BK͎*YP :_/2>!{րG>&'.$'o))))|E 5yƀ!}r#s#6#R#wqDM̀!Î#XQ""""(UUU@fffg P Cy0a# i1G i1Gi1GQ%b5ft"1CUS`QCR!qPYÈͭ*h~+~!$$*$s#rͭ^#V*F#~#^~^W+^#NÃ2!.ڗ!4 ڗ!: ڗ y2!R ̀PY!'͎ PY!͈{!T]̀!͌`ì:!:=BK͎:+w#^3#QwV333'"CGyts9 vRDuF9hHtaSC(bW*~#ʺ*DM**͈*i*+~ʣ*!͎!*t*! *+~*^1AY'pycpycbS_6+z##2T&&&&&:Tƀw33 );;BѰ:T<2TJxͭ+++6#6#6#N#F#^#V#"*z~*+* #}|43"BLANK COMMON" overlaps program, execution aborted !"|!*|}^#V#"^#Vs#r1*͎ zW{_ {_>G{x, *~GTS:xSoRsw!c^!i:*^w/wW*͎ "*͎ BK*1*+~#ʲ*͎ ù͎ "*:&*ͭ~*͎ z’{ʒڒ+^#V1!?s !,?s ,?+,?><?><75 1)1G=xVwWͥ"uG{ڧxtw3!6W*͎ *ڣʩi*^oÜ# x‘cÜW 1ic*^W*͎ !?+|zɯ>2 W**DM* c^###"Wͥ"uʶq:#F hG:6>26x!""!r ̀!~62#~ҕցڬ  G w#x ( ) 'Q FW GW DW EW Tv Iv Lv Z Av Kv X /Q , " 2 2 2 ! " w #6 #O Z "J *## > Z : O* : r =2 £ ~ = 0ҰÚ >2+#r 2 x2 ʰy2 " : : G: O: * #: <2 Ұ: <2 * r#s#w#w#" 2 r : < " * +~ +5~G> +^+V2 r ####~5 +w+^+V####" : =2 >Í ++^+V& ++" * #: =2 r #Í 2 #ͤ .°x2 #ͤ H: G: Í 2 #ͤ : Í 2 #:  )) =DM~ց< ҉<=O ~w# <6#<!c^W*͎ {21*1!?s G: 1gxg:>^#V|v^#V""!"h"*##"*##"!""ͭ*++h~*##"ͭy!z!z!z2!m2c*^!)mi!>m2!Mm2!\m22!nm22*~ʄ>G*~>?:3G~23x:226>25!44ʕ͈!2~'w+4í!4~+ w+ !2'w+4?:323Ô͈?!2y'w+&O!3~w+y'w+?C!/_# ~Xj!4~wxG~=ږÙ24++!3w+w+®! w+ ·q+K'w+ #~# !'+#6 !-56 +'O'wy!':/Gz!2Y!45zPz<'w>+ c~#6!44~w:4Õ~ʘGڟâƀ2 ͩ:3+2 . 7!2>'w+~?w! ! a} ! 5¾|" #-2!͙: 2 ! J /00ʂ_zW26:5:6ʖư7~'w+œ43+~+ ¯26GVwz# !.xҿ~w# GVwz+ !2x~w+ !O#!& 94 NO MORE DIREC>2x~#"܏=2|*"l*^:=2**t^[>9>Ê2Wu*^*BK͈BK̀*DM* >!>2"W*͎ *+~*͎ #͎ *+~*͎ #͎ *x~# ͭ|*~c3i*^>21*͹<ª!Ϳ!Ϳ*83s *83ʖ6#6>6:>ʸ*83„:>¿*# p#6Ïa{*=3":32<32@32A3%3CON:LST:!9! 9!9!9! 9!; 9!5! 5!5!;>2W"Uͭy*DM***w6:X‰>2>2:͔PYÎ{̀~+PY͎`iØ!}~# ½2!~wxG!x~w+ GVwz+ ++ց# G:x^1^1~+ b**DM `iG#£x‰£ £# ˜͹ʶ#~Ҷ+~*͎ z§{ҧ!3!3 3~***^#VW*͎ {2*͎ {"/W**^ͭ>23~N#^#K ?Ï 2W{i>]23ͭ~2#W"V:3zzzO "~#"XO "/2ZGOz.*X"##"X:3y! "!*V##"V""*|:Z<2Z*"**"" yŸ:Z.!9T]O ^#V#""":Z=2Z!>::<>ʡ2*͜"o!^}|!$^BK ҳW!4 w +‹s>ڞ>G!4~ +«!4w+¹!&~ +#O -!46+6!O^1AY&1AY&Wr!!$h^#V:=2*"!͜Wͥʶʧw31*83!!!!!!!!!!!! ! ! ! !!!!!!!! !!*|$$$X!"1x2B3!wa"o*##"x!O L*z"b{"d923ͮ*[!5*"!ͮ͜*|=& xu> m23!*"+2+2+2!<2+28>2+"{"43=*|¿!??"""*k/3{!~#OoyƐ'@'g*** Dump for above routine, ID: 1234567890 *** Runtime error: , called from H Pgm is executing line ???? in routine ?????? INT RANGCONVERT ARG CNT COM GOTOOVERFLOWDIV ZEROSQRT NEGLOG NEG CALL PSHCALL POPCHAIN FLILL UNITUNIT OPNDSK FULLUNIT CLOCON BIN LINE LENFORMAT I/O ERR ILL CHARI/O LISTASN GOTOCONTRL/CINPT ERRFILE OPRSEEK ERR"##î"!9"r>2r>2r!9">2:G>2:> :::<x2>2 !~2#N#F#^#V#. -  >>>>2s 4(>4@2>42=շ>C~_S>_@]>_+2h~>nw:>~+~+~+~+~g    |•|˜~Ҹ q#@wCopyright (C) 1980, 1981, 1982, 1983Ian Kettleborough V3.0 (MOD 0)4 ;########### A4 LST COPY A5 ;########### 91FRUN PRNing .COM file @?w#žɯï>2W**^*~+~!c^BKf !` ͈2:!x i`r  !l !T]{̀!; ͌!À9A5BvpB`R&A4bSbRpycu%Pu^PY!u~ˆ! ^"L!+~›#~ҽ <@2vp^:}+!2 3!x !!!͎̀!! :v*L!͈PY͎K!À6WeG `f Ee6P S!>2u!3T]~#b!+6 3w#)1B3~!*U:STOP !>S!PAUSE !3{!"BACKSPACE" not implemented !!!!*"+2+2+<2+2+2"x2!!"+"+"+"+ͭ:!,"|"!*͎ z­{ҭ2!@"*ͥ2+z2h)#")*^#V#"z]":@32@3Â"zr"$"^#V!#|}"@! x2+ 1ʮ")1ʀG: xʮ"®")1G:"ʀ:"$*Ny2+O2"#"!" ^#V###$"&J#$$$$**-#0#.*+:+q#"+<ʭ2+G:+x2+N##$##.#*.#Æ"<0G.# A#:+g#*~#a#O#T#"Æ"*~#n#":+}3Æ""$$*$"$^##$z$~#2"O ~2!"*##":2#^#V#h͎ *Ϳ":=2#*|$+!$2"Æ"*2+~#_!*^#V":$!#$##$_~#K$:+<2+:+=2+:+q$$$$$^$$"+!9"*Æ"*$"$##$"$$"$ $"Æ""Æ"$"+Ñ$$$"+Æ"*$"^#V#:++:+("+~+"+-% 60#!%+U% >0~ G%>0~ >%#7%~2+#~2+:+ҋ%:+>I w%>Ey2 :+?)Î%a *++= G%:+>I%:+%ր%_y%O2 x6#F%>EI%&*+~%&ր%%y%&O!+# ~5%&+4~: &60%!+~0%&"+!+~"&wI*F'2'G'!^%:+Q&x2+_!*"+:+B&/<=B&E#B&x=E#T:+y&F#Æ" .#^%xҰW $#Æ"x ڤ&&a !&+= & .#)2":8':+'a ;'/)':+-:+%326/'':+-2+/'')^%PY:+gy6#x6#6#6#E#|"""{ *+~'S$#É'$#{?#E#*+~ʘ'ր+ҡ'-/<#d͹' ͹'0O#Æ"/ һ'#:+`(:+Wx6#=6#6#_:+ր2+ڈ(ʍ(G{6#E#:+"*+:+ E(W$#": O(:+W>Wy?(z.(5(Q$#($#W: ?#($#?#": ?#(x6#6#E#""}("-(}E#(/<2+:+Wx6#6#6#E#:+"""y(:+y(:+?#Wy W*+($#?#($#: G†" .#Æ":+2) )Æ":!F):+G:!.).)E#:!G*!*w#8)"!)!*T]:+:+O g)6 :h)g)#6 >*)!)~ # ++6 0ʞ)-ʚ)1¢)6 ++++~ڮ)# :+))2));1)^1) ¯)~w!*"+2+2+2+)*+)*+G*+| *xG|xʹ1~_)*+^ց6##Æ"c*^%* ~#'v*u*" #&Œ*~'ʰ&ʋ*#O#f*<$?$<$R$Z$K$e$ COPY STOP COPY BACKSP COPY IO1 COPY IO2 COPY IO3 COPY CIO COPY SEEK COPY CHAIN COPY LOAD COPY SETIO COPY RESET COPY PEEK COPY POKE COPY CHAR COPY PUT COPY STARTA COPY DATE COPY STARTB  COPY LOAD COPY SETIO C COPY PEA&X&/A'Lf&T7&']*K&&/)'c*T;&X&/<,AU,L,X,T+,Kw,2T,:+ڟ-e-"+:T,2S,a *+2T,+= ,x2+!*_"+,!+:S,/I,6~6-,xҰ.w#`,>ʆ"6 #=m,x2+ Ұ/0 ڜ, _z{ڭ,Owð,w#Š,Æ".¸,,!cxʰ^. ,,Æ"T,F³ʆ".,!i^,x2+F/,³:+<³~-+:+w:0WG3-:+>I3->FIW-EH-DH-z}zچ"~ʆ"wÆ"z}~}Æ">2+> 20F/,}- ³:+ڒ-:0³~}~ʆ"+:+wÆ""-:+1) °-:>)Æ"!*>2. s#=-:!-*!:!G~#-"!.:+'.ʹ1) . .w# x .í)1\.F.>!^1> a.-ʖ.ʖ.a. {..>)G: xo.^1 > ^1> G '. .w#:.=ʭ2.'.:.'.<2.+6 : (.>^1> ^1>^1(."+2+!"+>2+:+-:+.<2+*+~#"+:+ҭ2+>2+:0 .>,:+2+7/.:+:/ 3/>020>,z*/ /!0 w# M/2+!0"0!_/200/+ʴ/-ʴ/.ʠ/D00E00G:00x,/:+0ó!0~ڳ6/_z³+>2+>_G!0>0w//_{/{20z Я0Wx*0wWx*0w#\//:0?͉0!0^x!0>@w0W0+Q0-J0ó>200ҳ]00!f0/0{00DM)) )O c0Gz}{}:0ʖ0͚0ƀ20:0_?G:0ʼ0$>@ʷ0}h0/<}/<>@0xEø0x}----------- F15BUF DS B*"1###"41###"1###"1 }2 1: 1 : :1H1: 1?1O1G: œ1x €1 ͓1:1p1Ä1O͓1y 121!14¬1X: 1j1XO*83 6#1:<3P2:A31*:3:?3+2*83 4>2A3b2:@32@322*83 5ѷL2*=3:@3A2@3~#":3@2:+P2>Y2*:3+":3>2<3>7:@3Gx2@322¿*:3w#>2A3:@32@3:?32:@32@322¿:62*832*=36*83 5:@3A2@3*=3":3*=3*83>2::3G:=33%3"63!83 -383*63 w#-3!3"u3!3~ŷ^3*u33w3*u3 "u36#6#M3:@3G@§3xʼ3x—3:3ü3>2™3í3xʼ322¿*83ɀ4<;@4<<d4=<4==4>=4>>4?>123456789FOR123456789FOR123456789FOR123456789FOR123456789FOR123456789FOR123456789FOR1ͥ"6ʶb2: 156*!6͈!666!6̀6*!6 !6͎ *83! s#r#62!2¹56#6#6!6͎ *=3":3>262A326%3ü5*66>7ü5>75 6*!6͈66!6͈͎ z¹5{*83 $6*83w#6#6#6*83ʮ566!6̀66!6 ͎ *83 s22¹5*83 56*!6͈6!6̀6* ͎ *=3":3Ü5W*͎ {^1!9"U:11B3!4s >27272x86G:*x43*=3":32<32@32A31!OB"4>J2447>2+1Y71ڻ7goY71Y71ڻ7W_1ڻ7w#zH7!7w32+:x8>2"22!"""+">2r! i"o!/"!": 07:²7:eCÜ=87w3>y8344 3{!>8773{!You are using the wrong version of "FRUN" to execute this program You must re-compile this program before you can execute it FORMAT ERROR IN RUNTIME FILE: FILE DOES NOT EXIST, FILE: FRUN not FDRUN, file: 1!4s *͎ {8>27272x8689G:x 9*x43*=3":32<32@32A31!HE"4>X244>1ښ9:C9w9ʠ9w9w9w9ogGw9w#g9C9͋9G͋9ښ910 ژ9w3>ɯW*͎ {2 W 9*3)1 _Change diskettes, hit any key when ready W*͎ "::*W*͎ "/:*͎ {2W*͎ ~*W*͎ {^1!9"U:1;0: 222222q2ğÃ:\!4$-3>2x86Nevada Fortran #. (10MAY83) MfTPUSfTSTPfTSUBfTXORfTDMPgETSPeRSETeRCLRBITfdN,TASNfTAGODIM IDIM ATAN2fTENCfTDECfTTONfTTOFOUTfRETT!bINIT$fTEMD\,'fTDMD*LOPEN-INP0LOAD3SETIO6RESET9PEEK3!OM"f\\=!":2: *3Write error creating .COM file, abortted Creating .COM file ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; CALL READ READ THE SECTOR ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;MVI C,20 ;READ ;CALL BDOS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OP D POP B ORA A CNZ CKEOF LHLD SLBA LDA SLBF MOV C,A RET CKEOF EQU $ LHLD SFFF ;FCB FOR ERROR MESSAGE CPI 1 JNZ DMR STA SBEOF SKIPR LHLD SLBA LDA SLBF MOV C,A LDA SPAD MAS d@MAIN @$@FFFFͅFFͅFFͅ GGͅGGͅ)G!Gͅ9G1GͅIGAGͅ)GQGͅaGYGͅqGiGͅdd@GyGͅGGͅaGGͅGGͅGGͅGFͅGGͅGGͅGFͅGFEAGͣG@@(18X,'SPACE BATTd@LE 1.39')ͣG ͣG ͣG@A(9X,')Copyright 1983 by Stephen J. Cebula')ͣG ͣd,AG1AbA(8X,'for Osborne I with Nevada Fortran 3.0(')ͣG ͣGuAÑA(19X,'+++++++++++++++)'dA)ͣG ͣG Press <,> to move left, <.> to move rightͣGA B(10X,'Hit spacebar todA fire, ESC to quit.(')ͣG ͣG ͣG)BLB(15X,'HIT TO CONTINUE')=HBFdXBHGͻGFFpBsBsBLBEAGͻIFFHGHͅHFͯ)H!HåB͑!H1HGB?!H1GÚB?FFͅdBG9H;AHFFBͯGIHB͑IHQHGBͩIHYHF?FYGBͅHF?GYGͩGGF?FYGͩaHGFd C?FYGdFGqHFF͂yHFFͅFF͂FGFUFFͅFGHGFuCͅGG?GGͩGGdCF?FGͩaHGF?F!GͻG9HFCD?FYG͸HFFͅFFHFFC?FFÿBͻGFdCFͩGGFͻFFFFFFͩaHGFͻFFFFFF(D:DͅGF?FFøBHHFRDͅdLDGHDͯGHgD͑HaHG{DͩHGF?FF\DFGͯGHÖD͑HaHGDͩHGF?FYGËDFGdDͩGHFͅFH:D?FYGͅGFͩGFFͅFFͻIFFÁBͻG9HFDnFGFFEnFHdEGH@HͻGHF.EÿB=FBFFGͻGFF|EͅG9H͸GFFͅFF?FFEiGͻIFdxEFÿBBFFGͻGFFEnFBFFGͻyGFFE?FYG͸GFFͅFFHFFEͅHFdE?FFBFFGͻGFF1F?FYGͩGFFͅFFHFF)FͅHF?FFBFFGaGd@FFFBFFGHFF͋FFFkFEiGÿBHHHͣGGame OverHHGͣGPlayer #1FEQGͣG FFFFF F F FFIF FGBG GG(G G G(G )G0G08G 9G@GHG IGPG&XGYG`G aGhG2pG qGxGG GGDG GGFGGG GG'GGGGd0G GGaVG"GGcvGGPHH HHHH$ H(H)H0Hd'8Hd) @H AHHHPHQHXH0`HaVphH pHqHxH%HPHHHaaPHHaY0H HHPHHHdHHd0Hd@H HIIPC HͅIIIIwIIIoIoIwIwIIIL%IIwIIIoIoIwIwIBIEIEIͩIIwIEwIͩIIwIEwIvIwI~IIIIIdII'IIyI1IaI2*J,JSCORE IH.J6Jͣ.JI*J,J'J('SCOREOI:',I5,3X,' Space Battle 1.39 ',2X,'SHOTS:',I5,'T',Z)1J3J5J=J#@ >J0 jJ0vk@O1SPACE.FOR_ o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^2`8_2*1wab.*ZSwH@V#6fuGA' ;N&ҝ]iF|i-`w[Ά-#y~! \yb{9tDZ@ (.0#,O~.r<1Q-PͱjfͷofhLonjFB>rFd&4Ӵ1ion FKS; Dcd'<*lmh4F!JoVATlV:* FY>axcFs3 K X/AfG'P^, F0~f]y%# nj i#W3Af Afnj 3502 P FKS; *">'k4S>z;r:E MFd <2qs2,0L.#Lľ?Ԍ ϋܨlfTf"MU7a clPm237s- 3s3Wb2ȍʦ5r\y46˾^˵0z4ʗkܞa|Z~ݶf[FEnTU6x\3*c3oƦzo; nmXpx u u uy֌ 3s3Wb2ȍʦkFx `-T˾پ_z[3\a-#"7*Be Ծr|A[L+G=uz2ȍʦ׌=HcS}4[B[좐7Pt{]ﯷ5#2\a-#"7*r|Q3*f"MU^UnBErAxɓ FKS;4ts"~(@i 9FQ'FQ b߇ȓ*ONfJ\ŋ*ONYhbQ\Gx( +P ?zC`[%`$4UF=w!QyH0*D?JC2cBUq6& Fr @ľ@l59(%#HxisLB.#ø1~l/cF"}̽񠚣Sh\^^bA1 3>IU&f4/pxϪjQ^J% /=%P6kF"}̽ˋ9qr%d&Ƀby〲]2c$ /MUb]a$1D{'UяS2cT+'d&b;*~7n~jFYqrY-kl/2q@>UwkFY>s\^0W*ay=#s\3FT% Am F}s浪1q׌ 3>IUI˚d&b;*~7nf /15#2gլbY\g< 21D{'U훣'd{|@9~2gվţi\^k+0<cTo|kF珞0^/A21a$4UF}8Gí{DH3 |VUV}lmo6~W֭h}>q]\=a^2|2b2cTo|kF٣g.T˚K%sX6cF_E{'U89ՌKs%&O#ȷ"}\*?.5#ȷp7C F珞^//D{'U훣' =x//֌#ᥩJ0MP7F6#,NS)ޡ#LľAx Uiژf=zø\2Z?/jV}lQ0W*a3^^^21*1w@Ono[O FY>LW-5̕JAz􌇗FTr FKS; UNcdմK|@_0 3>ղ׌_ /MUbQG_![ bń`!L5< 5#,UÀV}laT3%#s\3F}"O`$4UF}Aßƍ "H0Y%Eu,kca^\  ML(A1N7i>5#s>:y\ľAx UiژfyJ.#HxisEjn! E`J\ŋYhj5̕JA}􌇗F?Ur FKS;`j_9QD=Gw#;:l-] FY>UneV}l᫙aT}s浪}sT3|{|@m>h}_0W*au5#ȯ*g ߊ1N7i>5#ȷ*g#ᥩJ0(#:h #;" E`J\ŋYh S\[>IUɩfvx|V>} sF_8|gU%[>IU&fV%d*q/fY}4-cqrB\ŋYh}ӢaT}SOüfV%d`$4UTr ÓrF >/Aff}tS[F}sQMAff{e10Օdfn [-#l0ޜdKFd6<ރMH0^QGn2 yDUؐ`Qj5f0 p;#2goZ,z7h}bYc"ajѴ_z7hM.k,yX$#Lľ jF}S=5#Lľnޭ5#Lľ㚑`-yX$ 3\2 L( [*NƤ5#Hxis\FwgF6pAgu4#2q6&e$Af"}EU6uH0>/r)54mLʨ\By46vB}6E7[ƍ8N랣l/pӶ/Fy.kFdPa0TrH0*1www qZl$Q#H+1l܈9޸y5| 9.'}b$7#n0] *+N]1 -F!wpMF>9ܔ0]`ڧM╇O @z\Ad #q<)Ǜ.ux>vv68ֆGƮ0ug(F8BQr\gع@C[ݎpuy[#ِ3lhW (Oz[ tQmq1F+'p VA{刊Q tU8 GT |H`g)v6Dw<ňc 76AH0;WF\1&#>Y<@}u]tdO#@ľj $+"1m;`r^0Dj ґ-c il7裂㆑ b jL`ӻF6pn:]l93B^9xrSH0R{R  Fuy\C"@wh:Fn18ֆGH.Ыf$Nфۖp]/1 #؅v qVa`Ch qb8-#H0@n8t4 ?{İq#Ӻ a ;BwOn vbgCcUD?V=q ?C]1q< "[H3oaq 0Ffy2*b|߮zʟ#̇Ow8+tgy4NJ:EbdS^֮4t؄)tӆ #Waʃ=q,Ƹpqa=^n2 y #iQ-r J 78:{7/ 0!g$ n:;!GT:ھE7 tNyNbƒQrF2&OnVHG0!Ǩ.ZFqڶu7b^y/o;p6u#;'0??Ԍ ϋܨlfTf"MU7a clPm237s- 3s3Wb2ȍʦ5r\y46˾^˵0z4ʗk Documentation for O1 Space Battle 1.39 +++ Stephen Cebula (author) 2349 Packard Avenue Huntingdon Valley, PA 19006 ++ member of the Philadelphia Area Computer Society ++ 26 September 1985 The library file, O1SPACE.LBR, contains the necessary files to run the O1SPACE game. The runtime utility is included to run the .OBJ game file (Note: Ellis Computing authorizes the FRUN.COM file to be distributed to third party users). The files in the library include: FRUN.COM needed to run the .OBJ file; if you include a .C after the FRUN command and the filename, a .COM file will be created (enter: FRUN O1SPACE.C ) O1SPACE.FQR is the squeezed Nevada FORTRAN (TM) source listing for the game itself. O1SPACE.OBJ is the .OBJ file created by the Nevada Fortran compiler; it can only be run with the FRUN.COM program. Do not rename this file to a .COM file. It will not run without the FRUN runtime module. To make this a .COM file, enter: FRUN O1SPACE.C to tag on the runtime module to this file. Comment: Nevada Fortran is a trademark of Ellis Computing. This game was created using version 3.0; also, O1SPACE 1.39 is a public domain program NOT to be sold or published in any form without permission of the author (Stephen Cebula). domain program NOT to be sold or published in any form without permission of the author (Stephe Documentation for OSGAMES1.LBR by Stephen J. Cebula (12/27/85) OSGAMES1.LBR is a collection of programs written and assembled by Stephen J. Cebula for the public domain. The files are intended for non-commercial use and may NOT be sold or published in any form without permission of the author. OSGAMES1.LBR is dedicated, but not limited, to the following organizations who have helped me in getting the most out of CP/M 80 in a 16 bit world: Philadelphia Area Computer Society (PACS) First Osborne Group (FOG) But that is enough with the formalities! Here is a little info on the files themselves. O1SPACE.LBR - an arcade game for the Osborne originally written in Nevada Fortran. It includes source and documentation. TRON3.BAS - my personal favorite...It is a fast action arcade game which really tests the old reflexes!! OSPONG.BAS - I can not take full credit for this one. It is based on PONG.BAS which appeared in Microcomputing magazine. I am very sorry that I forgot the author's name. He deserves most of the credit. ...and that' s it for now. These compose the files in OSGAMES1.LBR which may be extracted with any good LU utility. COMMENTS If you find these programs enjoyable and/or have suggestions to improve them, just contact me at the following address: Mr. Stephen Cebula 2349 Packard Avenue Huntingdon Valley, PA 19006 or leave me a message on one of the following bulletin boards: Allentown RCP/M 215-398-3937 SIG/M's board CTS RCP/M 215-947-3615 300/1200 baud only System-2 TBBS 215-825-3205 Xerox BBS 215-666-5381 300/1200 baud only RATIONALE These files can be adapted to other machines pro- vided you have a good understanding of your systems memory. I POKEd the graphics directly into the Osborne to increase speed and to eliminate the "phantom" cursor which appeared in the cursor addressing approach. Please report any updates to these files. I'd like to see what other people found to be lacking. So the next set, OSGAMES2.LBR, will be perfect ?!?! Anyway, see ya later and enjoy the games... people found to be lacking. So the next set, OSGAMES2.LBR, will be perfect ?!?! Anyway, see ya later 10 REM ** OSPONG.BAS is an Osborne-specific adaptation 15 REM ** of the game PONG.BAS which appeared in an old 20 REM ** issue of the now defunct magazine, Microcomputing. 25 REM ** The author is unknown to this revisor because the original 30 REM ** name was not added to the listing. However, it was dated 35 REM ** dated August 29, 1984 for the sake of documentation... 40 REM ** 45 REM ** OSPONG.BAS was modified by Stephen J. Cebula for the Osborne I. 50 REM ** It is for non-commercial use only and may not be sold or published 55 REM ** in any form without permission of the original author and revisor. 60 REM ** 65 WIDTH 80 70 DEFINT A-Z 75 ESC$=CHR$(27) 80 CLR$=CHR$(26) 85 ECP$= ESC$+"=" 90 DEF FN PC$(R,C)=ECP$+CHR$(31+R)+CHR$(31+C) 95 GOSUB 415 100 GOSUB 355 105 PRINT CLR$; 110 GOSUB 300 115 PRINT ESC$+"S"+" "; 120 TIME=0 125 LC=3:RC=49:RA=1:LA=1:RO=10:CO=10:BC=26:BR=12:LR=12:RR=12 130 RANDOMIZE PEEK(11) 135 BD=RND(1):IF BD>.5 THEN BD=2 ELSE BD=-2 140 POKE (61439!+LC)+(128*LR-128),22: POKE(61439!+RC)+(128*RR-128),22 145 POKE (61439!+LC)+(128*(LR+LA)-128),32: POKE (61439!+RC)+(128*(RR+RA)-128),32 150 RO=BR:CO=BC 155 A$=INKEY$:IF A$=ESC$ THEN 260 160 IF A$="" THEN 190 165 IF A$="Z" THEN IF LR<22 THEN LR=LR+1:LA=-1 170 IF A$="A" THEN IF LR>2 THEN LR=LR-1:LA=1 175 IF A$="M" THEN IF RR<22 THEN RR=RR+1:RA=-1 180 IF A$="L" THEN IF RR>2 THEN RR=RR-1:RA=1 185 TIME=TIME+1:IF INT(TIME/4)*4 <> TIME THEN 140 190 BC=BC+BD:BR=BR+BV:IF BR<=2 OR BR>=22 THEN IF BV=1 THEN BV=-1 ELSE BV=1 195 POKE (61439!+BC)+(128*BR-128),13 200 POKE (61439!+CO)+(128*RO-128),32 205 IF LR=BR AND BC=4 THEN BD=2:GOTO 240 210 IF RR=BR AND BC=48 THEN BD=-2:GOTO 240 215 IF BC<=2 AND BR<>LR THEN RS=RS+1 220 IF BC>=50 AND BR<>RR THEN LS=LS+1 225 IF BC<>2 AND BC<>50 THEN 140 230 IF RS>=15 OR LS>=15 THEN 260 235 PRINT CLR$;:GOTO 110 240 RANDOMIZE PEEK(11):BV=RND(1) 245 IF BV<.45 THEN BV=-1 250 IF BV>.55 THEN BV=1 ELSE BV=0 255 GOTO 140 260 PRINT CLR$;FN PC$(12,19);"<<< GAME OVER >>>"; 265 RX=LEN(P2$)+5 270 IF RS>=15 THEN PRINT FN PC$(14,26-RX/2);P2$;" WINS" 275 LX=LEN(P1$)+5 280 IF LS>=15 THEN PRINT FN PC$(14,26-RX/2);P1$;" WINS" 285 X$=STR$(LS)+" "+STR$(RS): X=LEN(X$) 290 PRINT FN PC$(16,26-X/2);LS;" TO ";RS 295 PRINT:END 300 FOR I=1 TO 52 305 POKE (61439!+I),22 310 POKE (61439!+I)+(128*23-128),22 315 NEXT I 320 FOR I=1 TO 23 325 POKE (61440!)+(128*I-128),22 330 POKE (61491!)+(128*I-128),22 335 NEXT I 340 FOR Y=1 TO 100:NEXT Y 345 PRINT FN PC$(1,8);P1$;" ";LS;FN PC$(1,40);P2$;" ";RS; 350 RETURN 355 PRINT CLR$; 360 ' 365 PRINT FN PC$(6,24);"Pong";FN PC$(8,25);"by";FN PC$(8,20);"Stephen Cebula"; 370 PRINT 375 PRINT FN PC$(17,2);"ENTER THE NAME OF PLAYER ONE (LEFT SIDE) "; 380 INPUT P1$ 385 IF LEN(P1$)<3 THEN 375 390 ' 395 PRINT FN PC$(19,2);: INPUT "ENTER THE NAME OF PLAYER TWO (RIGHT SIDE) ";P2$ 400 IF LEN(P2$)<3 THEN 395 405 RETURN 410 ' 415 PRINT CLR$;TAB(21);ESC$;"l";"PONG RULES";ESC$;"m" 420 PRINT:PRINT 425 PRINT" PLAYER ONE: press A to move paddle up" 430 PRINT" press Z to move paddle down" 435 PRINT 440 PRINT" PLAYER TWO: press L to move paddle up" 445 PRINT" press M to move paddle down" 450 PRINT 455 PRINT ESC$+")":PRINT" NOTE: make sure that the CAPS LOCK key is down" 460 PRINT" before playing the game.":PRINT ESC$+"(":PRINT 465 PRINT " PRESS TO BEGIN :"; 470 DUM$=INPUT$(1): IF DUM$<>CHR$(13) THEN 470 475 RETURN C$+"(":PRINT 465 PRINT " PRESS TO BEGIN :"; 470 DUM$=INPUT$(1): I10 REM *** TRON.BAS version 3.0 15 REM *** Copyright (c) 1985 by Stephen J. Cebula 20 REM *** 25 REM *** Note: This program is not to be sold or published in 30 REM *** any form without permission of the author. It have be 35 REM *** distributed free of charge for the public domain. 40 REM *** 45 REM *** 50 DEFINT A-Z 55 PRINT CHR$(26) : REM *** Clearscreen on Osborne terminal 60 PRINT TAB(15);"<<< TRON 3.0 >>>" 65 PRINT TAB(22);"by" 70 PRINT TAB(15);"Stephen J. Cebula" 75 PRINT 80 PRINT" The object of this game is to make as many" 85 PRINT" turns as possible without hitting the outer" 90 PRINT" boundaries or crossing one of your own lines." 95 PRINT 100 PRINT" Hit the spacebar to make your turn.":PRINT 105 PRINT" Good luck." 110 PRINT:PRINT:PRINT 115 PRINT TAB(15);"HIT ANY KEY TO BEGIN" 120 A$=INPUT$(1) 125 PRINT CHR$(26) 130 X=1 : T=0 135 Y=1 140 PRINT CHR$(27);"=; "; : REM *** Home cursor at 0,0 145 POKE (61439!+X)+(128*Y-128),22: REM *** Poke graphics into memory 150 'RIGHT 155 X=X+1 160 IF X>52 THEN 295 165 IF PEEK((61439!+X)+(128*Y-128))=22 THEN 295 170 POKE (61439!+X)+(128*Y-128),22 175 IF INKEY$=CHR$(32) THEN T=T+1: GOTO 190 180 GOTO 155 185 'DOWN 190 Y=Y+1 195 IF Y>24 THEN 295 200 IF PEEK((61439!+X)+(128*Y-128))=22 THEN 295 205 POKE (61439!+X)+(128*Y-128),22 210 IF INKEY$=CHR$(32) THEN T=T+1: GOTO 225 215 GOTO 190 220 'LEFT 225 X=X-1 230 IF X<1 THEN 295 235 IF PEEK((61439!+X)+(128*Y-128))=22 THEN 295 240 POKE (61439!+X)+(128*Y-128),22 245 IF INKEY$=CHR$(32) THEN T=T+1: GOTO 260 250 GOTO 225 255 'UP 260 Y=Y-1 265 IF Y<1 THEN 295 270 IF PEEK((61439!+X)+(128*Y-128))=22 THEN 295 275 POKE (61439!+X)+(128*Y-128),22 280 IF INKEY$=CHR$(32) THEN T=T+1: GOTO 155 285 GOTO 260 290 'END OF GAME 295 PRINT CHR$(30); 300 PRINT CHR$(&H1B);CHR$(&H54) 305 GOSUB 345 310 IF T=1 THEN T$="turn." ELSE T$="turns." 315 PRINT "You made";T;"successful ";T$; 320 PRINT CHR$(&H1B);CHR$(&H54) 325 PRINT STRING$(52,32) 330 PRINT"Another try? es or o :";CHR$(&H1B);CHR$(&H54); 335 SS$=INPUT$(1): IF SS$="Y" OR SS$="y" THEN 55 340 IF SS$="N" OR SS$="n" THEN END ELSE 335 345 'TYPE OF GAME PLAYED 350 IF T<10 THEN G$="Fair":GOTO 365 355 IF T<19 THEN G$="Good": GOTO 365 360 G$="Excellent" 365 PRINT G$;" game! Play again sometime !!!"; 370 PRINT CHR$(&H1B);CHR$(&H54) 375 RETURN ": GOTO 365 360 G$="Excellent" 365 PRINT G$;" game!