home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!mcsun!news.funet.fi!hydra!klaava!cc.helsinki.fi!msmakela
- From: msmakela@cc.helsinki.fi
- Newsgroups: comp.sys.cbm
- Subject: Utilize your Commodore 64
- Message-ID: <1992Nov22.000747.1@cc.helsinki.fi>
- Date: 21 Nov 92 22:07:47 GMT
- Sender: news@klaava.Helsinki.FI (Uutis Ankka)
- Organization: University of Helsinki
- Lines: 138
-
- GamePreProcessor - Commodore 64 utility program
-
- A brief introduction
-
- GamePreProcessor turns your C64 into a game computer. You may play a game in
- another computer and store the joystick movements simultaneously. The control
- sequence may be repeated afterwards.
-
- The cable
-
- You need a cable between the two computers. One end goes to the C-64 user port
- and the other to the another computer's or game console's Atari-style control
- port. The pins to be connected are following:
-
- User port Joystick connector
- C 1
- D 2
- E 3
- F 4
- H 6
- A 8
-
- Operation
-
- Storing a movement sequence is started by pressing C. The game is plaid with a
- joystick connected to the control port #2. The amount of free memory, the
- time elapsed from the latest movement and the joystick position are shown on
- the screen.
-
- With a joystick in port 1 (or with the keys ConTRoL, left-arrow, 1, 2 and
- space) you may control the auto-playing features. If you push fire, the
- autofire switches on. While keeping the fire button down, you can change
- the fire button down time by turning left or right, and the up time by turning
- up or down. The autofire switches off when you push fire on the main joystick.
- There are also up-down and left-right vibrations, which come in handy in
- sports games. By turning left or right on the feature joystick the left-right
- vibration switches on and its rate may be changed. The vibration may be stopped
- by turning left or right on the main joystick. The same goes for the up-down
- vibration. The two vibrations may be combined to form a rotating vibration,
- north, northeast, east, southeast, south, southwest, west, northwest and so on,
- which is required in the Summer Games cycling.
-
- The storing mode is ended upon memory shortage or by punching Restore.
- The sequence may be saved by pressing S. The filename, which has a suffix
- of ",;", is changed by pressing N, using DELete and writing keys and RETURN.
- With L you may load the sequence. These operations go to the last active
- device before program startup, usually the disk drive. If you insist to use
- cassette, poke 1 to $BA by ordering POKE 186,1 before running.
-
- By pressing M and using DELete, number keys and RETURN you may change the
- movement counter in order to start repeating a sequence from the middle or to
- destroy the end or the whole of old sequence before appending new. The
- repetition of existing sequence starts with R and ends as the sequence ends
- or by pressing RESTORE.
-
- You can also change the sampling rate by pressing F. You can change the divisor
- of the high clock frequency of the Commodore 64 (in PAL models 985 248 Hz, in
- NTSC models approximately 1,02 MHz). It may be between 13 568 and 65 529
- (65 529 instead of 65 535 or 65 536 to shorten the program. The low limit could
- be lowered in NTSC systems.), which results in a sampling frequency of 15,0 Hz
- up to 72,6 Hz. The optimal frequency may be50 Hz in PAL models, which
- corresponds divisor $4CC7 = 19 655, and 60 Hz in NTSC models, which corresponds
- approximately a divisor of 1,02 MHz / 60 Hz = 17000. An interesting but useless
- effect is recording with a low sampling rate and increasing the speed before
- repeating.
- The recording eats memory even if you don't touch the joystick. This is
- shown on the top of the screen (accurately for PAL systems), and it is smaller
- at higher sampling frequencies. If you play BASIC-games, you may want to lower
- the frequency to save memory.
- With the highest sampling rate the memory is consumed in 5 minutes
- and 37 seconds in PAL model, when vibrations are running at full speed.
-
- Patching
-
- If you just want to use the program as a joystick booster (autofire and
- sports game oscillator) and do not want the game to stop as the memory gets
- filled, poke 173 (LDA) instead of 141 (STA) in the address, which is followed
- by the bytes 64 ($40) and 5. (I don't have the program available just now.)
- The new version may be saved on a different name.
-
- Have fun with this program. I had enough fun when writing it with a machine
- language monitor and keeping correcting absolute memory references when moving
- the code to gain more space. (Real men don't use Assembler.)
-
- The program follows in UUencoded form.
-
- begin 644 GamePreProcessor
- M 0@>",<'GC(P.# BC9$='1T=34%22T\@34%+14Q! >*4!*?@)!H4!H ",
- M&M",#]R, ]R(C +<C /=J7^-#=R-#=VI@8T-W*T-W*T-W:E^C10#J>J-%0.I
- MT8T8 ZD,C1D#6""!_Z( CB#0CB'0H(",D0*(C(H"K9\.G0#8G0#9G0#:G0#;
- MRM#QJ:F%^ZD.A?R@ K'[JHBQ^S SJ!BE^VD"A?N0 ^;\&"#P_Z(#H #F^] "
- MYORQ^_#8I-/FTY'1R2#PZ+V>#I'SRA#BZ/#?HBBI0,J=* 2=D 6=@ :=^ ;0
- M\:GIC5($C: $J=^-4P2-I02I7XW(!(T:!:EIC<T$C1L%J>&->@2-\@2I88U[
- M!(WS!*(#O:(.G:$$O:8.G<D$RA#QH &B Y3WE/O*$/FI (V9$*DUC9H0J9N%
- MK(6NJ1"%K86OJ0"1KH6=B*D?D:Z% B"2"B#$"ZD!IKJH(+K_H!#*T :I$**)
- MT 2I$J*'(+W_J0 @&@P@Y/_)3= BH@:@#R!%# HF%;#T:9N%K*45:1"%K:6N
- MQ:REK^6MD."PU\E&T!:B$J 8($4,C9D0CIH0X#60[R#$"S"]R5+P'\E#T#2D
- MK(2NI*V$KZD J,B1KHBM -PI'Y&N()(*J4I)6DBI 87#A<0@M IH(!H,J4]-
- M0 7P@-#WR4S0(JD (-7_""#$"RBPF*6NZ0&%KH6LI:_I (6OA:T@M HXL(+)
- M4] >J9F%%*D0A16EKFD!A:ZJI:]I (6OJ*D4(-C_&)#(R4[0UZ(-RKV)$,F@
- M\/CHJ52=<@:*2"#D__#[F&BJJ2"=<@:IH)V)$, 4T 3*$ 'HP WPS, @D-?
- M8+#3F* 'V8P.\,N($/C@#;#$G8D0*3^=<@;HT+FB!(T!W4I(H &P <BYG@Z\
- M@A"94-B94=B9>-B9>=AHRA#CJ0"@ YD(W(@0^ABB!* G(/#_.*D Y:ZHJ=#E
- MKTJJF&J@!2"%"Z(".+6LZ9NHBDBUK>D02DB8:D@8H!/*, *@)Z(&(/#_:*AH
- MJIB@!2"%"VC0U:F IOV@=B!N"ZF IOZ@GB!N"ZE ION@92!N"ZD@IOR@C2!N
- M"QBB J 6(/#_K0O<JBE_Z1'P XHI?^@0!1CX:1+8(%P+K0K<(%P+K0G<(%P+
- MR*T(W! ,2$I*2DK((&@+:"D/"3"1T<A@)0+0#*("O7\0D=&(RA#W8(33BJ(
- MH .$%: *()P+2)@),*33D='&TVC&%=#L8(RU"X842*(1H 8:"I()A3*\!&8
- M*J@(..D*L 0HD.Q(J&BPYVBF%& 8HA*@'"#P_ZV9$*Z:$(T$W(X%W*"1C [<
- MH 4@A0NB!* ;&"#P_ZV:$$JJK9D0:J#Q()P+H#P@G M(F* "((4+:,;3H (@
- MA0N@#+F)$"D_F7(&B!#U8*A*2JIXO88.C10#O8<.C14#6*+ZN6<0C4 %N6@0
- MC4$%N6D0G6X$R.C0]F 8(/#_I-.B (84AA6B!+'1*0_P%4@8I11]E Z%%*45
- M?9D.A15HZ0#0Z\C*$.&I5)'1F$@@Y/_P^ZIHJ*D@D=&*J, -T 6E%*858, 4
- MT!>B!*73:0.HB+'1R)'1B,K0]JDPD='0G\ PD)O .K"7I13)F:45Z1FPC9A(
- MI-.B!,BQT8B1T<C*T/9HD='0UTBI3XU !6A &*7$Z0"%Q) _T$.EPRG@T#V@
- M ;&LA<2(L:Q%PRD?JK&LA<.EK,6NI:WEKY 'J4^-0 70#:D"9:R%K) "YJV*
- M\ VEPR"2"M )I</I'X7#(-D*3'[JH "M -R%PPH*"@H(R<!J*&HISZHI#,D,
- MBI ""2 )'R4"A0(0(+&N*1#P!L;YT!#P!,;ZT JF_8;YIOZ&^DD0">\EPX7#
- MI0(*$!JI##&NR0R0 BGXQO?0!J;[AO=)# GS)<.%PZ4"*2#P&JD#,:[) Y "
- M*?[&^- &IOR&^$D#"?PEPX7#&,B8<:Z1KHBQKI $:1^1KD7#*1_0 I U"*6O
- MR="0!ZE/C4 %T ZI F6LA:R%KI $YJWFKZ7#*1^1KIC(D:XHL >EPR"2"M (
- M(+X*T ,@*@NM =RH10(I'_!XI0(IX(4"F"D?!0*% BD?21_P9:( R1"0*P8"
- M.&8"I/[)%- #B/ )R1C0 \CP H3^I/W)$M #B/ \R1'0 \CP-83]T#')!) 0
- MZ.BD^\D(T /(T .(\ *$^RD#\ [HI/Q*D /(T .(\ *$_(KP"$IJ:FH% H4"
- M(-D*3'[J,>K9#"T-(R1 .BHL/3\!"F3H$ ,G"PP/ 6)L>V+B?'[B *
- M#QD3% D#"R %#14, 10/$B Q(@ S8T( @/#04@ P\-$!44!1(3 <"# $4
- M!1,4( T/%@4-!0X4.B @.B @)R @(B @ 0</ <$% D-!2 O( T/%@4-!0X4
- M.B @)P >! 82!04Z <& P\5#A0%$CH ' 83% \2!00Z <(! 4# 10(# \.
- M(!@Z !$)&3H & @!%10/!@D2!2 5$#H (0D$#CH L,("T@# \!!" *#QD3
- M% D#"R -#Q8%#04.%" 3!1$5!0X#!0 #1,@+2 3 18%( H/&1,4"0,+( T/
- M%@4-!0X4(!,%$14%#@,% /#B M( ,( 0X'!2 &"0P%( X!#04@!A(/#0
- M$08@+2 #" $.!P4@$@4##Q($"0X'( 82!1$5!0X#&2 &$@\- 02.3@U,C0X
- M(!(% P\2! D.!Q,@+P >$A,% P\.!!, !0#("T@ P\.% D.%04@$@4##Q($
- M"0X' 6$B M(!(%$ 4!%" *#QD3% D#"R -#Q8%#04.%" 3!1$5!0X#!0
- M& T@+2 -#P0)!AD@#0\6!0T%#A0@ P\5#A0%$@ ""0D."10 _T]03'H3% \0
- J:DUJ3A , 1E524I+$@4#( \&!E)44*("0#I415-4(%)53J"@H*"@H*R[
-
- end
-