Issue 4

Transcription

Issue 4
I
\,
Eetc,aer - Nsvernber 19gg
\,
\,
\'
4, Nurncer 4 Jc,urnai af the VIP Hc,bby Cornputer flsst1.
The VIPER was fc,unded by ARESCO, Ine, in June 1979
Vc,iurrre
.*+*{r.FJi**************"f,-**.*fi.*****{".X-****.**{.********.F.*,*****.X.f,.{.**.******
gOvgrt iggrngnt
Cc,ntents
. r, r . . . . . .. . r .t r r'. . . . . ..1. . r, . . ., . . r . . . r r . r 4. 84, 01
SEFTi^JflRE
\,
fr C.i:p-B Editgr for thg VIp,'.r.................r..rr'
ny Biil Lindiey
\,
ftOve!.t i sgmgnt
\,
APPI-ICATiBN
\,
\,
\,
\,
\,
\'
\,
\,
\:,
bt
4'gl4,Eg
. . . . . . , r . , r . . r . . r . . . . r . r . . . . r r r . r . . . r . r r . 4. 04. E5
BF.ianerfest Ref lexesl sc,ftware and hardware r.. r,. r,, . 4.8r4.
by Uda Fernisa
EDITBRIBL
Le
Tnis issue, even with en}.y twe feature articies, nevertheiess
is sc' tight for srace that this page is being used fsr the
Eiitc'riai anc Annauneernentg- There are c,niy tu+c, mcrre issues sf
VipER after this one in the iggg rnembenship year. Arrd April lst
wi.ii,Be ileFe befc,re we knc,w it. That ciate marks the end c,f the
nc,r.nrai ,twc,-year terrn cf yc,urs truiy as Director c,f VIpHCfl. Sa
aeenrding ta c,ur gernc,eratie proces$Fesr any rnember in gc,od
stancling rrrey rrclminaie anather merober as Directet^.
I tnink msst af yor-r have lfeen happy with yc'urs truiy in the
t'riiii.ng tc, serve againo but we shouicl affsrd the
-tso, anc Itmfor
r-,ppc,rtr.rnity
a cnange, shc,ul,ci yott desir^e c'ne. Sc,, Nstninatic,ng
ar"e o.3en: :f yc,r.r nrant ts ngrninate Sc.tnec'ne Gr ycunseif serrd in a
iet'uer c,r oc,stearci, Fnyc,ne whsse narne is subrrtitte€ wiil be
cc.ntaetec, tc, see if the nrrnination is aceeoieci by ihai pet^ssn,
Tne nc,rninatic,rrs wiii be pcgted in i;he next VIFER t4.ft5) anc
ra":ic'tg sent tc, rnerr"rbersr FR that the resuits of the eiection ean
be r'rinteci in VIpER 4, 146, *iasing crate far nc,ntinatians is
Deeer,r3er. EEo i9Bg.
4, i7,r4. $E
R.AM.O R,OM;
for vrP
\-il
THE l4EPlVl GIVES YOU ALMOST INSTANT
, Jusr
VP -701 TLoATT NG Por NT BAS r c
II
S}{ I TCH TO RUN, PRESS lII ON HEX
IIlyrj,I
IIC''
KEYPAD, AND PRESS
OR
oN
YOUR ASCII KEYBOARD TO SELEcT WARM
OR COLD START, UScS 5V 27L6s I
\q/
,
t,
BARE B0ARD t^trrH
\/
L,
\t/
DArA,,,$ 39,00
A&T LESS EPRoI{s,,r,,,,,$ 59,00
A&T w/ EPRoMS PRoGRAMED ylrrH
DATA PROVI DED BY YOUT. . $119 . C(J
A&T w/ RCA's VP'7C1TT , , $139 ,00
"DRTA MUST BE oN VI P cOMPATI BLE
CASSETTE I N 2K BLOCKS ,
*II&STATE
TH
8K RAtvl cAR
v
v
YOUR HIGHEST RAM ADDRESS
AND I F YOU WANT COLOR
r
\.t/
COIVIMAI\DS
v
I
D G r vE s You rvvo 4K
v
BLOCKS OF STATIC RAfl ADDRESSABLE
TO ANY 4K BLOCK IN VIP },IEMORY,
U s r s P oP ULAR 2114 RAlls ,
BARE B0AP.D w I rH DArA , $ 49 ,00
A&T LESS RAMS,,,,,,,,$ 79,0C
A&T w/ RAMS',,, r,,,, $129,00
Norr: BKRAII cARD REoUtRES APRox
600MA FRoM 5V L I NE ,
rt
+r
tt ts tt tt t* tt
r&
{r
t& +& +$
It*
$
**
*
t*
* * * ++ +T l& l$ * * *
\r/
\r/
\,
v
t$
PACKAGE SPECIAL *
* * * te +$ t$ tstt tt tf * lr tT t3 ts
v,
+&
,
2- BKRAlvi 1- l4EPlvl BARE BOARI)S
WITH DATA,, t, ,,,, r ! r r r r r I ,t , , $ 99,00
T SKRAI'{, 1- l4tPlvl
,*,',,::T]rr4e,00
AND VP -7OT BAS I C,
*
Tl
(
CAL I F
.
RES I
DENTS ADD SALES TAX
v
" 8K RAF1"
*
)**
#
*lt
ts
,
ts t+
G,
.iF
J, KP. IZEK
722
N
, |\l0RADA AVE ,
WEST COVI
llA,
CA rif
91790
**
tt tt tr te* tt tsts
* ** tt*
tr
**
ts
*
*
**
*
**
*
v
t&
* lt *
v
v
\./
\-/
\,
A CHIP-B Ed itor for t,he VI P
\,
\/
\r
\,
\,
\,
\,
\,
\,
\,
As attested by many previous artieles about CHIP-8, using
the monitor provided by the VIP is no way to enler and modify
programs or data for CHIP-8. The editor enelosed is deslgned to
solve the many drawbacks of the normal VIP monitor. This editor
includes such features as bhe following bo allow easler
modification and entry of CHIP-8 programs: 2-byte display of
address and data for easy reference to location in memory and
data; arrow pointing to 2-byte word currently being edited;
scrolling five lines of display; blinking cursor to slgnal
location of nybble under editing; and automatic timed scrolling
for easy checking of programs.
The editor, once it is typed in beginning at location
$0D00, is invoked by changing the CHIP-8 word at $01FE to $1EEE,
and entering the following sequence at $0EEE: 00 48 1D 06. Ttris
wiLl branch, upon running CHIP-8, to the editor. Ttre entries at
$OEEE are necessary to turn the display on, since the display-on
instruction of CHIP-8 has been replaced by the branch to the
editor. The editor may be saved as two blocks at location
$0D00. When bhe editor is to be calted, simply change the word
at $01FE to $1EEE. Normal CHIP-8 nay be run by rechanging this
word to lts originat $0048 word.
The format
of the display used by bhe editor is as follows:
b"
addr
addr
addr
addr
addr
\.
\,
ly
word
word
word
word
(--
word
The top bhree lines and the bottom one display the surrounding
words of the one currently under question. The rraddrr indicates
the address of bhe displayed word in the same line. The arrob,
shows which word is the one which may be modified. The arrow
thus acts as a pointer to the current word.
The
available
commands
in the editor
are:
\,
\\,
\-'
(E) Enber a CHIP-8 word at the location pointed to by the
arrobr. The first digit of bhe data word will blink;
when the first digit of bhe new word is entered, the
flashing cursor will move over and the next digit is
entered. This is repeated three more times,' unLil
four digits, one word, has been entered. The display
wi.ll scroll forward one line and the new word wilL be
displayed one line above the new word at the arrow.
v
v
(A) Address Select. The first digit in the first column of
the display will blink, just as in the trEn command;
v
digits are entered, and the display will
change to reflect the new addresses and the data
contained therein. Note lhat the address is not
limited to the first four kilobytes of RAM; any
address may be specified. The CHIP-8 interpreter may
thus be modified while running the editor, but this is
not recommended procedure as the editor is writben in
four
new
v
v
CHIP-8.
\r'
v
(B) Back One Word.
This command will scroll the
display back one word, moving the byte previously
under edlting down one line, not changing the display
line of the arrohr, but rather just, the word pointed
to. The address and data colunns will change to
reflect, this change in address.
\3
\,,
(F) Forward One Word. This command will move the word
previously editlng up one line, in the same manner as
the Back command. This occurs automatically in the
Check Mode or when the Enter Data command is used.
(C) Check Mode. This
command
will automatically scroll
\dr
Y/
v.,
the
display forward one word every few seconds; the bime
delay byle is located at $0E09, the data byte of the
VE=3C instruction. The editor will return to command
mode when any key is pressed. This mode is useful for
scanning entered programs for errors; first enter the
address, press ilC,il and look at the display, the sheet
of datai the display; the sheet; the display
clear the screen and
command will
execute the CHIP-8 program at $0200. Note that the
CHIP-8 interpreter ilself is not modified with the
changes made to it; only the initial sequence of cold
start is changed. Ttrerefore,'aII this command does is
execute a GO 0200 command
V
V
(D) Do Program. This
V
\1/
'\t
Y
\l/
v
\J
Usefu1 Subroutines
Several subroutines have been incorporated in this edltor,
and, albhough they may or may nob be of use in other programs, f
The ccrnments on
have outlined the more useful ones here.
the listing will also be of use if you. are planning on
implementing them in your programs.
13 (decimal) bytes, ?t location $0E18. Totally
relocatable. Ttre CHIP-8 I pointer polnts to the byte to be
incrementedi an inline argument is the addend. This ls a
sixteen bit add, thus one is able to add to words and not slmply
bytes. If one wishes to simply add to a byte, the argtment must
be in the upper byte of the argunent, wlth the lower byte belng
zero. Thus, to add $00FF to a byte at $0600, the followlng
ADD:
sequence may be used:
I = $0600
call ADD
; argument to add
A600
;
OE 1B
;
OOFF
UNPACK: 24 (decimal) bytes at locatlon $0E3A. Totally
relocatable. The two byte word pointed to by trItr is unpacked
into four bytes, each containing a zero in the high nybble, and
a nybble of the data. These bytes are stored in CHIP-8
variables V0, V1, V2, and V3. Thus, if the memory word at rrltr
contained $1234, and this subroutine $ras called, the variables
would be as follows:
V0
V1
V2
V3
= $01
= $QP
= $Ql
= $04
This is used for the display of the address and data bytes on
the screen. This ls one of the methods of ci.rcunventing the
lack of a CHIP-8 command to display ALL of a varlable, and not
just lhe low- order digit.
PACK: 22 (decimal) bytes at $0E52. Totally relocatable.
This subroutine does the exact opposite as the UNPACK
subroutine. The low- order nybbles of V0 through V3 are
assembled into one two- byte word at a memory location which is
determined by the setting of trI.rr
KEY: 31 (decimal) bytes at $0E68. Relocatable if branch
addresses are changed or located on any page at address $XX68.
This subroutine, in bhe manner of CHIP-8 decision instructions,
is a skip. A skip over the next instruction occurs lf no key is
being pressed on the hex keypad. Otherwise, if a key is being
pressed, the next CHIP-8 instruction is executed. This is the
subroutine used by the Check Mode for the rrbreakrr state.
\J/
V/
All of the above subroutlnes may be easlly called by CHIP-8
with a ltBraneh to I'lIStt instructlon. For'exanple, to erase the
screen lf any key is pressed' use the KEY subroutlne as follows:
0E68
;CAIJ
00E0
;ERASE
Y/
v
KET
IF
KET PRESSED
vl
v
not wish to type this program ln, and rould
prefer ,to have the progrm supplled on a cassette, send me a
cassette at the foll.owing address., along wltb a dollar for
postage and handLlng, and I will record the progril on cassette.
I an using a Sears recorder, and have found that Panasonlcrg
units do not read my tapes. Iours nay or may not- but then
again, you can always type the progr& in.....
If
anyone does
My address
is:
v
\d,
v
Willian Lindley
21 Haneoek St.
Bedford, MA 01 730
v?
VIP.MAN IS EEREI
Run through ? meze and eat all the dots before the moneters chasing
you catch upt Amazing 5l+x6l+ nesolution graphLcs, coJ.on, sound effe6ts,
and four digit sconLng make thls a ga4e wor.th gettlng. For a l+K VIP,
colon and sound boand.s optlonal-.
-VIp-l{AN- $9.95, shtpplng lnclud.ed..
i;;;' il ;;' ;' ; ;;;' ;;' ;; ;;' ;il' ;;il' ;il;;;;;' ;i;' I li! tr,rns
v,
e r.s e ?
vtiiih computer adventu:re gemes, you gg the maln chanacter ln a Jfro-FF
storryr trylng to solve puzzles. The computer degcnl.bes events and.
sumound.lngsr and you telL it whet to dot Now you oan play ad.ventune
on e l+K VIP with an ASCII keyboard. Strest qf the Enchanted. Swond
wi]l stant you out ln one of- the raos
ames
today--gd,veltures. In it you w111 ftnd yor::rse3.f ln the legbndarykingdom of Camelot, shontly after King Anthr::rrs death. ftrdtts wLen the
stony begins...
Also incLud,ed are three nmlnltr ad,ventunes, wrltten for a 4K VIP with
Tlly B-a91c. They are ElmLlar to adventunes, only the obJedtive ls to
get a high scolre based on the number of monstens kllled-and. the
tneasune gained.
-Quest of the Enchanted Sword.- $8.95, shlpping lnclud,ed..
aaaaaaraoaa
aaaaaaaaaaa
Send ondens to:
VIP Adventu:re
toaaaaa
aaaaaaaaaaraaaaaaaaaaaaa
UnLtd., 168 Pond St., ShanonrMA.e 02067
Soon to come: Advanced adventunes with high resolution, scrolli
text di splay, and. strine com ression fon dqletba descriptions I
4, fi4, iI5
v
v'
\,
\,
Ci.{ I F-g ED I Ti}il
hy Fiii Linci iey
\,
\Y
iIJf;IN:
UlDOrZr
iDE6
;BRRNC|{ ARBU|\|D DRTA
\,
ED'AE 'A'EI'TIE ; CURRENT RDDRESS }{ERE
iaDa4 rzrrzrrzrgr ; CURRENT DSTR HERE
raDrag ED4|A ;CALi FiuL
CiDftB FF'iIfl i
\-
iZinEE
f;D'AE ;
'*DEn
i;rDEC 3Furf, ; TEST
ADDRESS CI{RNCE
ini4 i
IA EDg6 i Cf;LL ftDDR
'}Dii. E i Dr3f;' ;
inil
fiil;4 SFEIF ; TEST FER FnCH-iiP
fiDi6 iDiE i
Eili8 EIiiS ;CALI.- ftDD
\,
$iriFi FFrE
.-L'F.
i
F
H,tUrL
.-t ?r' r
{,lU i -C.
\/
J
tF.,t
-g
;EsT Fgft CHECI{ SCRN
F
.rUErtf
-.F.!r.F.l4rL
;}"
crDe[i i r]96
eE'si} I CFILL CFiECFi
'ailEe
tlDE4 l ftetB ;
EDE6 SFfiD i TEST FEIR Dfi PROGRfiiri
EiDEg :. DgE
;
EDgn FTAETA ; EtftSE SEREEN
ED3E i EiAfr ; 6tr TE PRBGRR|Y'
SFfiE
fiD3E E[rfi6
rf,DEE
;
'4D34 SFEIF
ED36
ilnS-s i Drls
; CFruL
;
; TEST
;
EDSS i. D3E'
\,
i Diet6
TEST FER ENTER
i
ENT;R
FfiR
fiil3Fi EEig i Cft;L
BDSC rtlrAEE i +E
fiDS= iDfi6 ;
F
FORi^if,RD
ftDD
I;L : EID4$ IIIIAE'} ERNSE SCREEN
rlD4E EErrlrrzt
fin44 fiDEE P0 i i\T TE CiJRieENT RDDR
ifrr4E tzieit IEFiL ftDn
\,
\,
- i r'iE I
ifi$+S FFFA ; -6
i i il3e i L; NE
fiIr4
+E
fiD4t |qilr}3 ;
ilit4E tltEi8 ; CftLu gnD
IFDSU tililtiiE ; +3
*il5;: Efirzilii
frij54 tii=];fi I f,fiL; uirFfic/.
f,
\,
\,
f,Ir36 3D7[
l?l.$5$ *DifiE:
f,il5fi rit=iF
r}*5f: iil::;*
iliil5r- EITil
;
GilSuEt n; SF,.'i
.-.
F.
.
Lr{i-i
L-i:{t-L
l-Fl-
'
F.F-
t::-;
iJi\ F'Ht-ri
.
rL".-lta.
:t
f,;f,SUF il;SF,-Y
\,
4, t*4. iI6
\,
\,
DRTFI
/'A
a
| .A
{
Lfr '+r E 'tt
rA
{-IfiH
a\
6,
ta
r.*'-J
tnc
--ii{l
'.
I ..J'-i
-l-]flf,
H3$c -r-tu3
3ilflE
B T 3*
;$fis 3$fi8
E,:38 b'ErJ*
eSfiU gEfitA
EESE
GGH
{I
tu\
a
f"l3N E{l5nfl
F!3Lldrun -l-ls3
r=s
-:-1,5f,
f"lu
>:3ilc
ni_l,Y
-?-'rUtr
s3!'.! E'-15'.ln
Flf,.$c
\:n
-T-tHJ
gEGtt
?I1C&
r30e eEffl}
UISE FEOfi
trfig-H 3ir0fi
jr=ff 3H0fi
.:*ilLr b'Hgfl
Hg FUf]TI
*\'*2 BSG*
,J
t>\
rA
6\
T
-l
._,
r'1r
l-'t
-l.-.-.-l':211..'..
-l
._.
_t
d.l_.
1'Utf tt
::::Ei.J
lJ
._t
rT
r.J
ra
-_J
i[.]CS Lllff0gl
t?'308 3f,-{f}
H'i"0 3f,-fitr
3*CS tiE,fl*
r T E?
F6fir3
rtrrSHB ggf;t}
hrLlf
l,
:
-1
i
!:3\i
i
ftA\
n
EEUQ
lA
i'a"r'
\
t-
i*
flr?rH
,.t
Y-*s i fi
t..
i-r
| -t=-
-:*
i-;=r
\-!
rs
--i
i:
.__
f1:-3L.
AH-'cl$
f-il
ar
:. r.f
!qr';i-1.-
i-i
-i
i
t,=H-d
/
f iI'iC
6 l3r?t -,
/ MnLrIiH
\r.:
t?r
)
Nb!
rvtnll}.tH
i
;
aJ
:
:3fitn r/EC$
si}y. L EEO*
Egsc $gfi$
trEri
=Eflg
/ 3SfiEI
u0cB
E*Lf
6;l:
';rrt{i
*Ets'l
f;,| I _:
lq
r T.
A
1,
..L
_.
'_l
t_
ltr
-1
- t- j
\r i' *i
ti;
F:'
f.l\: -i
i{:
:
"r
{r
r?
F
HgfiB
FE'CI*
gstJ rl
t'Ffll.l
e€]{l!;h
r}filfl
r?
}.{. f,r}
'--:
,.--
'.*
i.
i'
f,l ,, fT r}
I CtrS
=3r4i.1
,;FHfl 'I L{,T!}
I
il:;f I
tT\!:i
.J
-.i'-'
{1
-.
*'l
-
3r; i
_ir-l
:
-'-'
*t ! ft it
ii'rlt;l: YC.[!]
fir:g F/fl*
b!rJ:l
\lH 3 .,-_l_t1*
lA
i-
fth\
:
r-
r^\
ccH -'I-'Si
hA
-l!li
i
!-'-.'-'
fT
H
'-j
::r
r-T
i-
'j'
--r
-:
f:Ji
H
-l €
Cl
tV i r..'i'i. ':..i7'
;: q1i.r [,a
l-l
-t
-'
J
.-
i-:rr
--".t
n--'1-
t-'
r"T
t-1
-t
L':
Ct
i]r.'t..!r'
fT
I t
b
ill
j
3'3fiiir
t'Ecf,
-J{it-l
'-i'-
Fl
r,t
\..'
U5ilrl'
F l' l.r?
It
I jlGil
f,"il :
ar r
93,;
J
t
*
.:!
l:i
r?
t-'
J
ir
\J
t7r
rl.-\
r-
) f';t
41
;\y
:
i
;\'
i
ty
NEi^i:
ty
iailf,fi
EfiiaE
iAf
fiE eE
g4EtE
EDDE
tre
EDCli
EDC6
EDCS BEI4EI
g4 i a
'aDf,n gilDE
'ADf,C gi4Ul
$DCE
8rDD0 g4g8
EDDE *DDE
IADD4 Bg4tA
;6OSUB INPUT
t
,
;
; EOSUB
)
:
7
;
BU 1 lrii.,i :
Fr!TE;
IADDC EtrZlE;
rAD[rE F4Eg
ENEU' 6EE8
BDEg FEiS
EDE4
EDEE
RETURN
DfrB5
E'E6B
CflLL KEY
i DFg
GBTO Gi
'}DEB FE.AT
fi[iEg
EDEC
Ull.)trtr
G3;
c;iEf,/.:
-
SKi PS
d
EDFE
l DEAI
EDF4 4|fifi
mDFg rrnFS
EDFB F4E9
t 6OTB
-la.
, -|.i trtr t
t
I
BLINK
FBR NUITBER DISPLRYED
I
T
ERASE iF BN
(SriBl^i TitE
fiDFf,
DRBS
EIDFC 7f;85
EIDFE
E
'AfiEE
ftDEE
NEi,\i NUMBER)
;ivlBVE RIGTIT
; R=rURl\
I
!
J
=renit turE i g
'aEilg
Ererer4 fiBEg
EEEA elr4ft
'erE8g FEiS
EE68
EEIAE fiEiEE
ErEiEr FEAT
iE
trti4
AiE i g
ArE
NO KEY
GOTB NTB
lltt-F
eLrtrE
IZ'DFE DNBS
'AEBfi
EEEC
IF
SEUIE
+tFlFt-
6E3C
T/.:
GBSUB i i\iPUT
SBSUET i NPUT
iADDft g34ti
i N3UT :
INPUT
t
inilDg S43fi
$NDg E['DE
\,
\-
;+g
; RETUti\
t
,
SErZrE
iEEC
1E$tA
;EflLL
;+g
ADD
; GBSUB
; sET T i
FILL
MER DELFTY VnLUE
TiiriER
iSTRRT
;trf;Ll KEY
; RETURN iF f,NY KEY FRESSED
(EHECH FBR
;
TIIYIER DONE)
;
;GETCI TK
; GETCI CF|ECK
4. 84,
tAS
Y/
Y/
*{+ffDil SUE|iiEUTi;u=**
*rlfrR ,lfi; riTS Til l st f,DDEND**
**iN uiNE ftREijirlE;UT i5 Enc ftDDiuED**
*DD
,-L:-
t{ltr,
r
r
I
I =n
9 i5
INC R5
fi in ii\ic
B rilS LDi\i
f,F4RN
D 5A sTR
tr. r:H Utr L
F E5 DEC
izrEE fi
43 LDR
1 74 nD[
E 5R sTR
3 i5 iNC
4 D4 SEp
.-.
**Rlq
b7
g
fl
B
,.n'
L
D
E
6ETr
:
r{H
R5
TfrDD LEi^i BYTES}
(TETURN TiiE SUM}
Vt
RR
Rfi
R5
R5
V/
(RD[r ii i Gii BYTES]
( RETURi\ TI{E SUIYI}
\3"
RR
R5
K+
FTI
'
(
YP
RETURN}
SUBR0UT i i$E'F*
I NTS TO ffDDRESS TB pUT Df,TR fiT Rft+E*'r
raEeS
RR
s r.t
FIFFI
**FUT
pO
FUT r
**
r
V/
frft
sEX
4N LDR RR
BD Pi.i i RD
4A LDrq Rn
AD PLO RD
4A LDfi Rfl
5D 5RT RD
lD :NC" RD
4R LDR Rf;
3D STR RD
D4 sEP R4
iSET
flDDRES5
TB
3A BD
i4fr
enD
34D
45R
5iR
6 rAD
754
geR
9D4
LD$I
t-p
RR
6t
.t ttU
,-iif, frn
r.lt-l
-t
PL6
PUT
*-y-^
'
End BYTE)
(RETURN}
t
f-*
\tftr
i
f;DDI?ESS
,ral
,Ur
(MtrUE
Rfl
(iYiEVE
sEp
n4
Vt/
GET
**
Yt,
Y,
,F.F
DflT*}
RS
LDN RD
STR Rf,
DEC Rfl
Up
(STBRE
LDA ND
STR RD
iNtr
v
Yt
DRTft}
(STERE
lst BYTE)
** GET SUBRBUTINE 'F*
POINTS TB RDDRESS EF DFiTf, TB
** DRTN GEES TB RA+E *{+.
IAEEF 4fl
Y,/
ist
BYTE)
End
BYTE}
(RESTORE RR}
(RETURi\i)
w
\rt
Yr
w,
4, tzl4. rtl9
Yp'
Yt
ue'
\i+tr U,\FftCi{ S,JBRELIT i,\E **
:r* r(F{ ;rG: r{TS Tfi fr*l; '-E EYTES {r.n
n* UitFftCi{Eil itfiiTf; GGES i i\; VtA: V3 **
\,
!..\
\/
Lii{Pf;f,,r{,:
trl
.alr
f-
F
a-a
t-t
D
tP
?
r|-
\,
4ill
.i
,t
\,
l:
:.
s-l
.t.
a?
\/
t-.
r-'
F
tl
-?
I
\'
EI
l-.
_t
;"r
H
?..
i.J
il
,a
r-.
3iI
d
I
**
r-'ft L, f\ I
-..
r-
t.F
Eri:.-,f:
.-.
*.
a
il
li
3
tl
F
-!4
F6
{FEiiliT
TE
FiO R6
Vi )
LDA R5 {GET ist BYTE)
sTR R6 (STERE i N V }
J.
sHR
SHft
5H'?
SnR
ilEC Rg (5T0i1t
ii R€'
ST
,_iitu RFi
nIf, tf;
i: .\f, AA
i.f;f, RE
;;'ic il6
S]-fr frE
i rr' Vtit)
GET Enci EryTE
( qf Slil,qE i?fi)
(
)
{STDRE
ffu
Rg)
S_iR
';rn rt
F.r
r
: F.l
sHR
F€, Snt
HE E'EC Ftg
5g sTR R6
D4 SAP R4
.--.
F
.F.
J..a
il
t
-
(STGRE
; N VE}
( RETURi{}
t-r-P
F.
'
'.--
;6
Ffi
SEli
j
t-D
i.{6
\t:c.
,l-L!--F
FvJ
F.
F
Hb
+6
;
VO
.-r
il8,
LD'u R6
!-r
t'i-Lt
r rF.
VFluLiE )
s;,_.
'- r'
l)-f l-
Irrr
lr r fi
Rgr
i S;L-i RE
.+.
.
.r.
-rri.a-.
.:r.l
i ittr
ttH
iGET
.l t\L
RE
F
F'E [i'{'-
,3
-.-
F-.
1. ,.
H
a-'
Fc. $-i*
F4 ffnD
.-l
F-
F
H
'-.
L
-'.
F.
.t.!
Ff
F
.i tf,
t*
.:
I
r
+
F
h!
t-.
F
-'.
-.,.rl-r
'.
,- tJH
-.t-.
rE
5n*
:
ot.
r-;
'd'*,;
la
t- il:
td.i
.:
F-
L1
'' i+
aI
t-.'
]t'-r
fr.
f'r
fl Fi
....,
?-.,
t
I
f,nlt v j.
vf;,_LjE
i
i st BYTE )
VE
Vf;*UEi
fttr,
?'
iJ'-l!I.tt'{,
rJ
:-
t-
i
l-..:.
a
il\,
LDi
rE
f
tf
r=
:.Tr--
*tF Pf;C;t SLjFRilLiT i i\iE **
F'il;
TO e ETYTES FER RESLiLTS **
'\ir5
** j i\ 3L:T FRiliq Vfi : V3 **
Rf,
,-L
5
F.r,-i
F8
Fi
RE
4f;
56
F6
F-8
FE
;6
sg
5ri
#f,
i::fi
i6
..6
i&
56
F6
ilt3n
\,
rra
..
il1
x ii.u]
Cl i i\
rt i-t
JrI-L.,
11H
.-,:a
--.
3|:.'-' Rl*
i*ijil VJ Vqi-uill
$l--n li; Errci AYTE i
{ RE5-'-: nr. tFi
i ft[Tli-ti'' i
(
4. izi4. l. til
Y/
** riEY SUEttEiiT I IiE tt*
*{' 5'{; pS I F ;'.iU ,{EY pftE$sE|t, i/4 ZE.IEED
** I F i'iEYr ;HE'r. Vf;LUE :;{ V4 **
,-rL
t
.J
I
r\iI r
-'J
rir16
g
eF,
?,F8
tt
H
rl4)
Er
ft6
PLE T6
:-
LD:
D
tr
F
7 iit
iEi
I
(fiDDR=Ss
R
1f5
J.EI
;ib
5T'1 i16
'T6
FF
triri r
F.p
e56
36e
486
-3eb-F
t:r
...1
F
.3tf
77il
9sfl
96F
,qrF.
H
i3
LIN R6
fr.
ffUT
(SET
ir.EY Sf,Ri\i
EAUNT}
\t/
I
-l
l-?
V/:
V/
.t
t-
D=C
'16
SEX R6
('\fiP)
Ye
B3
T6OTE DF}
BiUZ
(GBTB uEtrF)
i NC t?5
i i\iE R5
ir
c .t
(i\io KEY,
Si{
D=E
RE
V/
5B
f,ND
RETURN}
Yl
w
R7 TB
Ptri NT
-trt
4D7 SEP i17
5iE
iNC RE
6D4 sE,l fr4
**** END BF
iF
(sET
TO
Frl
3ee
Y/
Y/
sr,1 fr6
Bt5
cD4 sEP R4
DFg LDi
E gi
Ffr7 Pi-t i tl I
F6
s
'a
HI
I
efl7 FLil ft7
.a
it
:-&i
t-i
L
t
t-t
SEX R6
uDi
V/
DEBBUNCE
f;lrilRESsi
TDEEREiYiNT STflCi(}
(DE DEBtriJNCE sUB}
I?EST0RE STft{:;{}
{ RETiiRi\ji
Yil
Yy
(
SRUERfttYi
**t*
\*v
w
f,DVERT:SE;VIE5'
FOil SRLE: 4r( ViP with rnanuai arrc viciea rnc,citrlaic'r, $54 aius
snrpping. Vp-575 Ex,farrEion oc,ar*d, $gS pir.ts ship.oing. Vp-55iZl
Super Saunci bc,ard, $EE pius shipling. lric,dei l5 TTY t{itn Foare
motsr and case sf paperr $5O pius snipping. Raciis Shac;< pC-i
with printer, rnannais, prcgrarn boekr tgAS pius slrioping. AL.
aoove irr exeei ierrt canciit isn. Eai 3 Jerry (913-338-e6?6) aiter
SPivl Cai ifc,rnia t irne.
flnnc,uneernent
w/
hlr
.i
-
,J
'i
Vz
ll
ili
rtl
I
v
w
].
it
.'
$t
Fr,=E!*arils in this ViPE;l t"liii be avaiiaoie alsc, frc,nr VipiiC* ,Irrr
cagseu t e f c,r $9, ilil, wn i cir i ne i r-tdes :fc.st Ege, I ! ease =leyt* i rr a
cneck ( nc' easset i e neecieo ) and be FrJr'g t,r i rrc i ucig yf'Lr.r' accreSs.
il:
Y/
lr
'1,
lli
,li
I'
\a"
4.f1,4. I
rll
q,
i
Ua/
\-
v
v
v
lb/
lt'
\,
\/
v
tl,
tt
{/
{'
tt
\r
ffi
t\/
\,
\,
\,
ly
"f,t
tlttoberfest Refleres
do Perniez
A recurring featurr of a locrl elementsrg school's fund raisino
activities ir the Ottoberfeet. It has e succeeEful tendencu to3
uards imitating the otore sElient arnbiente of llunich'g colorful
crhibition of attrrctions but lacls
meng
of the circuaferential
and lese conepicuouE machines that neverthelese belong there.
Having aluags en;oged drterrnining one'i sensonotoric raflerai
roith a nechanical device that usuallg cen be found at Ohtoberfestr r decided to cnulata a Rreponse Time Test uith og cCIsfiAc
vrP microconputer. rn tha originar set-up uou fead the device a
coin and uait for a g"een ligtrt to cofie onr At thc same tine
this happans, e lerge clock hend starts moving from its center
position clockroise and pist fieldc that a"€ €pprorinratelg tflO
iec apart. hrith e largr button gou trg to stop the hand is fast
as Uou cen - it then points to sone funng renerhs about Uour
nervoug and other bodilg rgstems ;ust short of invectives.
Certainlg this cen be donc uith the VIP, end surelg uith
sufficient timing accur€cU. Thie is horo:
The basis of the timing lies uith the fact that the COSIIAC,VIP
uses the Video Displag Gontrol chip CDP 186l rrlhich sends interrupts to the nicroproccssor (the GDP l8o2l everu llbo s. This
ceuses betuern I and 4 pa.ger of RAl.l to be displaged on the
monitor bu'e routine that is providrd in the operating sgsten.
As uill be sern in the analusis belou, the tine neceesarg to
transfer brltes fron RAll to the nonitor Ecreen is just sligbtlg
smaller than l/t2o src. Thir alloue to increment E counter ;ust
before the video routine, and right after it again, giving t?e
counts P€r second. Thus 8.3 ns resolution is obtained for the
time interval betueen thc start and a rtop signal, reccived et
the I/O port or so,n€ s€nee line tha processor cen Ecan. Since
the etart signal rrlould br iseucd bg the computer its relation
to the interrupt timing can br deterrnined and accounted for
in the progranr The accurecg of determining the tine interval that ulill have clepsed uhen the stop signal is reseived (as
generated bg the plager! is thrn given bg the duration of the
displag routine refreshing the nonitor scleen. Therefore, the
tining eccurecg ie aleo 8.3 ng.
Y"J
A tuo-gagr displej foroet uer chorrn for thr dirptag of the
geor firld uhich rrrultr in r vmticrl rrrotution oi a+ lines.
This formrt rllorrlg to lncludr rnstructiong for-ttra-gane anc
rtill hrvr thr progrrn flt lnto 4 lbltrr of RAt{.
Tith 64 linrr.vmticrllg . queri-enelogour dispreg of tbe
rkprrd tinr ir obtrinrd during thc first s"coid i.rii"tr iE the
rrngr of intmrrtl ll dirplrttng l tinc rcaac;-, ti;
tinc ber,
on thr nonitol-rnd loyrlg it vmticrllg bg one linr for
each
intmrupt routinr thrt tlr vidre contritlir-iiie-iiqr";t;;-"
t/
v
1/
tn
I
!
x
;
of thr grogrrn drrign conridmetions ere drterninad
bU thr rgrtrn conrtrntr of t[r CffitfAC VIP. Thr nic?opro€esior
oprrrtrr utth . crgrtel-dmlvrd clocl frrqunncg of 1.76o,64,!t{t,
Thr rrrcution of r rtenderd lrchlnr codr inctruction tales tuo
nrchinr cgclr+ for frtch rnd rrlcutr rech conriating of I clocl
cgclrc. Durlng dtrplrg thr vldro lntmfrer irruor 128 rtreaoc
of I bgtrr mch thrt lttr in thr Z-prge nodr, configurrd into
& dirplrg linrr. Erch bgtr rtrun uttr 14 nrchinr cgcles. All
thir givrr r totel of l7?2 cgclrr for thr ditpleg iequrncc. The
intmrupt routinr ttrrlf ur.t 34 crchinr cgclrr (including the
rrturn routinr).
Thir rddr uF to 18e6 cgcllr. Thr l/60 rrc intmrupt intarval
contrinr 1,7&),64,Of6(tfB r 3668 cgclrr lrving Ifl4'Z cgclcs = ?21
mchinr codr inrtructionr for thr tining progreo.
Sincr thr dirphg routinr ir.rqulvrlrnt to l9lkfltZ lc g13 nachine
inctructionr onr hlr h?t ;urt 4 lnrtructions in er:ctlg half
tbr intmrupt intmvrl ol tllrc rrcondr rllouing to count (and
rlro lool for thr 8Tf rlgnrll rvmtl lfl30.rrconds. FouF inrtruetlonr tr] rnough to do thir rr.thr progreil lirting ehous.
Thr rrst of thr evrilrblr tinr ir for bool-lceping, enalog digptrl of rlrprrd tlar end for tlor:.drleg loopr thrt do both
thr urtttng rnd thr rrect porltlonlng of thc START signel that
thr conputer uill irsur rrletivr to thc lnt*rupt routine.
Thc tinr flon ch*t in flgurr 2 rhour thrr reletlong.
Thr orchinc lrngurgr rubroutinr GBUNT TIIIE both countg and
convlrtr thc rrrponn tinr intmvrl into rccondr for displag.
Rrgirtm RC countr oultlglrr ol thr rgstrn'unit tinr (1/l?0 s).
It lr prrnt to Ol (bU insrmrnting RC rt O41Clr' rftm thc STIF
Lutton ser chrclrd for prrnrturr prrrring. Thl prrnt rllous
for dtrphging thr pronpt (., eO, rnd for thr tinr,rprnt in the
flrrt uriting loop (olo. loc. O42b to O42Bl bcfore thr rtop button lr firrt shrclrd. In thlr rrg thr drrirrd tining .cGur€GU[
o? 8,3 nr lr nrlntrlnrd through thr rtrt-up pcriod brfore the
ttntng loopr brgln. Ttrr rtop button it chrclrd rt the end of
thr urttlng loopr (glvtng thr plrgm tn ivrptgc rdvantege of
.pp?oriortrlg 4 nr).
Thr drtrilr
4. 84.
l
t
t'-
--*-
i3
ii;
{t
I
v
i
t
i
I
v
lt'
I v
i
nb
, }ty
1
I
I
ty
\/
i
v
:
i
I \/
l
I
L/
n
)
I't'
l t,
)u'
I\,
Other'.part's of the COUNT TIt'lE subroutine roill convert the tiner
count 'urhich is in unite of lll20 s into ttdo numbers: the f irst
one becomes the elapsed time in integral seconds uhile the
second one has a value equal to the frectional tine in centisecond.E. This allours ' X. XX B, " Es displag f ormat. A rounding
routine shiftr the 8,3 ns accur€cg to an error af.+/- 4.2 mE
uhich is less than half of the last digit displaged thus nahing
the displaged timc meeningful.
,
The time conversion f irEt determines the nunber of integra.l ;
secondg in the valuc of RC bg eubtnacting 78_h uhich is l?O_d,
The remainder in RC {number, of lll20 E fractions totallipg
less than 12O) has to be divided bg 1.2 to anrive at the nunber, that represents the same tina in units of lflo,$ a. This
diviEion is done bg subtraqting L/6 of RC's value, 6ag V, from
V itself since V/1.2 = V - V/6. The division bg 6 is performed,,
using proper rounding ulith 03 (nem.loc. O47C), The result of
this conrputation is stored directlg into the CHIP-8 variable
memorg as VB for the seconds, and as V9 for the centisecond5.
,:
Another part of the eubroutine CCIUNT TIHE terminates counting
after.2 to I geconds (goftrrrare ad;ustable) if the STOP button
n€e not hit (the nuna?ical time displag on the screen Eupports
onlg ?.?? sl and - vEtg irnportent - prevente the timer bar from
being uri*ten belour the displag peges €s this uould neeult in
the Eelf-destruction of the progren.
The START and STttP buttons are connected to flag EF4 (inverted)
through the emall circuit shoun in figure 3. It conEists of'
four NAND gates that debounce the turo suitches. The O-Iine iE
f ed into one .'gate roh ich reeats the debounce c ircuits end puts
the ftag EF4(invarse) at HI0H. Another gate is used to prevent
starting the gemc roith the STOP button and vice varsa stopping
it uith the START keg (sequential interlockl. This interlocl
circuit is reset each time the timer subroutine is entered.
This interface circuit is buitt up on en experimenter's boird
(Radio Shack Cat,No. 276-154, ruhith plugs into the COSfleC-ViF,t
t/O port that alEo proviiles the supplg voltage for the trrro loupourer Schottlg ICs 74LSOO.
After pressing the PAY lteg O (could be done bg e coin-activated
suritch I ) the program ueits for the START bution to be hit. It
than enters a delig loop ruhose duration is randomlg set betueen
one and three secondE, The timing begins uhen the last uord e0
of the starting comnand READY, SET.. eO flashes on the screen.
Simuttaneouslg the tirner bar startE moving upuarde uithin the
bar frdme. Then one hits the STOP button is fast €s possible to
stop the action. Since the STOP button interloc* is rernoved es.
soon as the START'button activates the delag/timing routine,
it is possible to "stop" the timer before it hes even started.
The progrem detects, hourever, urhether STttP u,€s pressed be$ore
the GO signel appeared (and the time bar started to move) and
displags a "cheated" neesage.
Thr gln. rndr uith thr tiorr bm filling thr ber freoc up to the
valur of thr rrrponie tlnr, providing r quaci-anrtogour output
of thr tinr thr plrgm nrrdrd to rrect on thr OO rignrl uith
prcrring STOP. Thir tinr ie elso digibllg dirplrgrd on thr
3crrlnr In eddition to this, . tuo-line comnrnt ic nitten out
rrgerding thr plegrr'r rrnrsaotoric rlillr. This eoearnt ir
rrlrctrd fron rlrvrn trrte drprnding on thr O. I c intrrvsl
into uhich thr rmction tinr fellc betuccn O.OO and )rl.O0 s.
Aftr r roftrmr-controllrd dirplel pmiod of thr tim rnd
conntnt thc progr.o returnc to brgin . ncu lroa It arg alto br
rtmtrd brl prrrring lrg O. I'lhitr uelting for thr PAY lrg O
to be prrrrrd (egein) to rtert rnothrr gror it rlternrter brtusrn dirpleging thr rul* rnd thc g.CI. firld.
rntmrd into prgrt I rnd 9 bg graphicallg drcorThr rulrt.tr
poeing thr trrt into r dlrplet firld oi 64 r 64 pirrlr, r.r
l. !r figurr 4. Thrrr tuo p.gr. o.g br reperetrlg chengtd b1
lordlng thr deta froa tagr lnto thr tuo p.gor. Sinil*lg, tlrt
comnrnt trrtr' in pegrr 6 end 7, t g be adeptrd to :ng occ.rion bg rrplecing thr mnorg contrntr :ccordinglg. Thr forlet
of thr trrt roquirrr too linrr nch fivr bits high end 4 bgtrr
ridr to br grrphlcrllg fillrd uith r tit prttmn thet.pprr"t
tr chmretmr uhln dirplrlrd ulth CHIP-B'r DXYil inrtruction.
Thr detr in nroorg locrtionr O6O9 to O6OF govrrn tiir fornrt.
Thrg rhould not br chrngrd ulthout und*rtending thr rorlingr,
Thr trrtr rtert rt O6lOe llGh of thr conornts brin! 4O conrrcutivr bgtrr longr rll ln onl contiguour blocl. T[ur, thr
'chrtrd' nltl:gr ir locrtrd rt 0610 right eftrr thr etcering
detr. Thr connrnt for e rerction tim brturcn O.(Xt end O. lO s
rtrrtr et arnorg locrtion O6tOr brturrn O. 10 end O.2O r et Orb9O
end ro on. Ttr titlr of thr grc. ir ttorrd in p.gt 5 in nroorl
locrtionr O508 to O548. For drtrilr tll thr ornorrl urignnrntr
in front ol thr progren lirtlng, end llgurcr D end 6.
In itr prrernt v*rion thr progr.o runi on r 4lbgtrr oechine.
Sincr thr inrtructionrr thr hredlinrr, end connrntr are not
rsrrntlel to thr rrrponrr tier drtmainrtion ltrrl?' on. could
nodifg it to run on e 2 lbgtr nechinr rfter ad;urting the p.gc
deta end rlinineting thr cgcling brturrn g.no p.g. dirphg end
inrtruction F.gt dlrplrg. Pege t uould .tiurnr tie rolr of p.gr
D and thr 2-pagr g.CI. dlrpleg uould br fron prgli 6 and 7.
Ths progr.rf, rupportlng thr rstuel tintng progrm ir sritten in
tlrr intmprrtrtivr lengurgr CHIP-B thrt RCA nrler rvlileblr to
thc usrrr of thr VIP. Thc rtenderd vmrion her brrn nodifird
bg thr rddition of rn intmrupt routinr thrt eltous thr dirpirrl of tuo prgrr of RS{ on thr nonltor. Onr porriblr inplmrntrtion of ruch r nodiftcrtion hrr brln ruggrrtrd bg llodlr rnd'
l{lnror tn VIPER yol.1, lrrur 3' (Octobrr l?7Brr publishrd et
thr tinr bU ARESCB, Tbr GHIP-8 tntmprrtr oodifird for thir
Z-prgr intmrupt routinr hrr to br loedrd into otnoru fron
OOOO to rbout OztO - it dorr not urr rll of thr third palet
Thir prlrror houlylr' rtrtr rt O3OO ohich nrlcr ltr
rtructurr oort trenrprrnt end, rt thr ttmt tilr, provides
rprcr in pegr O2XX for indivldurl progrto rnodificationc.
4. fi4. 13
l
dr_
\/
\'
ResponEe Titne
\tr{achine:
\,
fb
COS}'|AC
Language:
druthor:
f'femorg Si z e:
ql location
VIP
(RCA ) trri
4 ltbgtes of
\'
t
RAI'f
Use
O' l,
?-Pege CHIP-B Interpreter
.
CHIP-8 Progrefi
l,lachine LanguegE Subroutines + scale/frarne data
Special Octrasion Texts
Tirelve conments to the varioug response times
617
Instructions
not used
partlg used bg CHIP-B Interpreter
D
CHIP-8 Di sp lag Pag eE
E,F
This listing dogs not contain pages 6 through L Data fron
uhich this program generates the commentsr EDd the instructions,
€re user-suppliedr EB€ above end figures 1,4, S and 6.
r4,
Note:
or
PageE
B'q
\/
p
Udo PerniEz
5
\r
th I lA
CHIP-B, ?-fege displeU version
3
4
r\/
Oame
B,
\,
ADDRESS
)
CTTDE
SYNTAX
COHT,IENTS
L'osoo
&800
VB=O0
define the
\rosCI?
13AO
CIo oSAo
0304
0306
o400
65FF
6444
F418
F$t 5
F307
EBAl
1330
3300
TI
I 30E
Gtr
74FF
3401
V4=V4+FF
SKP; V4. EO. 01
to dreur the g€me fiet,d pag€ (resumes € o3?Ol
Eelect pege I & q for dieplag: inEtructions.
set (inner loop) tinrer
set (outer Ioop) tirner
beep alert
start timer
'check if pag keg is pressed
if so exit timer loops
loop beck if time not up (inner loop')
d ecrement outer I oop c ounter
I oop bac k i f not d one ( outpr loop )
beep alert if done using counter left-over
,
\zoeoE
o30A
o30c
) tyosOE
0310
i
lr t-33li
0316
0318
'r
t. lyOAlA
.. o3lc
i
V4=TONE
HE=V5
V3=TIHE
SKPi KEY. NE, VB
eB 0330
SKP; V3. E0.
OO
OSOE
etl 030c
o320
\r0322
o404
65FF
DO HLS C 0404
V5=FF
0324
o3?'6
F51 5
TI
F507
4500
I 304
Eg?E
13?6
V5=TIt'lE
SKP; V5. NE.0O
00 0304
oseA
CI3?C
I tyosaE
n
DrI HLS C 0400
V5=FF
V4=O4
V4=TBNE
\rO3AB
t-
L \,
O
ISPLAY INSTRUCTITINS AND hIAIT FOR PAY KEY
I 30C
F41B
Lo3lE
PAY lreU:
DISPLAY
CAHE
FIELD AND I.IAIT FtrR PAY KHY
select peges E and F as displag:
set time
HE=V5
SKP; KEY. EO, VB
eCI o3e6
go back to instructions
check pag keU
loop back if not done
if
done
garne
field
v/
}IAIN
(7F,
o330
o332
o334
o336
o33B
o33A
c?7F
V?=RND
7q3lF
o33C
o33E
FqaT
3900
V9=V?+3F
DO HLS C O4OB
I=O54C
DO O3CB
TIi'lE=V9
V9=TII.IE
SKP; V?. EO. OO
o340
o342
o344
o346
0348
0344
I 33C
etr o33c
A571
eScE
DO O3C8
034C
034E
0350
035e
0354
0356
0358
035A
035C
035E
o40B
A54C
23C8
F?l5
04to
A54C
escB
A57t
23C8
ASBO
F465
8780
23Eg
I=O571
Dtr HLS
e
0410
DTT CI3EE
I=OFBE
VO: V4-1'lI
up
in ruhrout ine:
erase terts
rea I t ime d i sp lau and c ount
na
points to icretch ped for sesonds displeg
read in rtearing veriab leg
VB sontains ful I seconds
displag digit for seconds
pointr to scretch ped for thc IIIOO s displeg
V9 c onta ins c ent i sec ond s
displeg digits for centiseconds
I=O5BO
VO: V4-!,lI
V7=VB
F465
f'7qO
loop if time not
point to H eO"
umite
I=O54C
DO OSCB
I=O57 I
DO O3C8
ASBB
ROUTINE
select rendon number O r. 7F lllA 2 s dclag
ad d Gr. I s as e base de lag t ine
reget leS debounce eircuit & d i sp leg pag eE
point to "READY SET r r r I'
ulrite tert
set timer to the delag time
E3EB
V7=V?
DO O3E8
3800
Sl(P; VB. EO.
6BOA
6AOO
VB=OA
VA=OO
790,?
B9B5
V9=V?+O?
V?=V9-VB
SKP; VF. EO. Ol
FIESSACE SELECTOR
o360
036?
o364
o366
o36B
o36A
o36C
o36E
o370
a372
a374
o3-7h
o378
037A
037C
037E
t37*
sFOt
eo 0374
t37b
eo a376
7414
136A
VA=VA+14
eo 036A
6ADC
VA=DC
A60?
Fb6A
FAIE
VO: V6=i'lI
FAlE
33CA
I=O60?
t=I+VA
I=I+VA
DE
OSCA
OO
for t)=l s
prepere for i?pereting tine into lfIA s piece
initieliz: table JUnp distancE
single out a O.OO s time (STOPped before run
routine to divide bg lO begins here
if time = zero
add (halfl Junp distance for eech O. 1 e piece
entrg point for t )= l.OO E
begin of meseeges table: Fteering yeriables
point to efplicable nessege part
(overconing e veriable renge problen)
displag tnesEege (modified entrU point!)
cheslr
15'
I vogBo 6800
03Be ;;
O384
rl
t'og8a
0388
O3BA
rI
\zosgc
OSBE
O3?O
\I
I" brOSqZ
o3?4
03?6
\
), tyO3?B
O3?A
o3?c
\rOg?E
bosAo
O3A?
o3A4
\tOSA6
0SAB
O3AA
\rosAc
O3AE
, 0SBO
lzOgB?
o3E4
)
OSBA
0SBB
) ITOSBA
osBC
o3BE
) \tOgCO
OSCA
03C4
)
O3C6
6OFF
6102
Fotg
F3A7
E0A1
lxxr
EBA1
ISOO
33OO
rSBg
4100
1300
TLFF
1386
FTER-EVEHT HBUSEKEEPINO
reset the PAY keg
v8=oo
set'timer and define *eg F as progren exit leg
VCIllFFF
Vl=O?
Trt'tE=vo
V3=TII{E
displeg resulting, gama f ield for sone tinre
ehec f if progrem ex it kerl is pnessed
uherever gou heve others prolr€tl €. !. editorE
checl pag keU
bacl to begin if pa1 *eg 'preesed
SKPi KEY. NE. VO
eo orxx
SKP; KEY, NE. VB
;
e0" O30O
SKP; V3. EO. OO
e0 0388
SKPi Vl. NE. OO
e0
OSO0
VI=VI+FF
eo 0386
xxxx
(
not
used
)
TEXTS FTTR CAHE PAOES
(relocated ERASE' uras et OOEO in"1-pg\ ver s i on of CHIP-8 )
sCele
o?go ERAsE
A6?g I=O6?8
23CB DO OSCB
AAA4 I=O6A4
23C8 Dtl O3C8
A6C? I=O6C?
23CB Dtt 03Cs
A6DS I=O6DS
23CB DCI OSCS
AAE1 I=O6E1
scale numbering
vertical bars of
box
horizontal bars of bor
decimal point €nd rtsectr
23Cg
A5O0
23C8
A52F
aSCB
1320
xxxr
rxrr
xxxx
rrxr
BPTI ONAL TEXT T OCCASI ON-OR IENTED
"OKTOBER " end "REACT ION"
I=Q5OO,
DB 03CB
uFEgTr and
I=O52F
DCI OSCg
?eturn into
( not used )
eO 0320
}
trT Urff il'
game
field timing section
J
i eUosca
ti
OSCA
} L3338
o3DO
O3D?
r
) \rO3D4
03D6
O3DB
r
) hrosDA
03DC
O3DE
\
) L'o3Eo
OSEA
tu O3E4
I U03E6
i
a-)
TEXT DISFLAY
F66s vo: va=ul
BB20 VB=V2
BA1O VA=VI
670A V7=0O
DABS SHOH 5]'IIGVAVB
F61E I=I+Va
77AL V7=V7+01
?TOO SKPiV7. NE. VO
13DE OO OSDE
gA34 VA=VS+V3
13D0 00 03DO
BB44 VB=VB+V4
75FF V5=V5+FF
350CI SKP; V5. EO. OO
13CC CCI O3CC
ooEE RETuRN
SUBRTTUTINE
reed the Eteering data
:
usee diEpleg unit of Eize 5-bg-g: suits text
position pointer to nert group of bgtes
incretnent hori zontal b loc lr counter
checl egainst number of horizontal bloclrs
,
rnov€ hori zontal lg
to shou enother bloclr
verticallg
decrenent velue of vertical blocks to do
and check velue
to reset horizontallg to initial velues
if done
move
I
OSEB
F733
03EA
FOTE
I=I+VO
oSEC
OSEE
oSFO
F165
FA2?
D235
74FF
4400
VO:
V4-V4+FF
St(P; V4. Ng.
OOEE
RETURN
o3F2
o3F4
o3F6
OSFB
OSFA
oSFC
OsFE
I=LSDP (VO)
slt8t'f 5Hrev2v3
13FO
V2'"V2+O6
co oSFo
7206
rTIT
F8 08
LASEL
*
SYNTAX
PHI
D4
SEP R4
LDI
PHI
SEP R4
START
D4
o410
F8 00
0413
BC
AC
o4l4
FB
0416
04L7
0419
BD
AD
LDI
PLO
O4TA
041C
3F SO
BN4
IC
INC
o41D
F8 04
BA
FB 97
LDI
PHI RA
LDI
AA
EA
PLO RA
sEx RA
04t?
04rF
o420
o422
o4e3
REO
sEo
LDI
7B
OE
BB
OD
ItrSRT
*
PHI
FB F2
IITSRT
Blrl4
C$,NT TIHE
LDI
PLO
OF
OE
RB
SEP R4
PHI
digits
ry-
Y,
OB
and 09
digphg peferr ffi and OF
rtturn
RB
o408
o409
o40A
040c
o40D
o40F
3F
inrtruction priisr
Frturn
OE
D4
FB
o8
RE
EE
7^
COIIHENTS
EAHE FIELD
OE
bUteg
w
TPERAND
II{STRUCTITINS
LDI
*
IT DISPI.AY SUBROUT I }IE
oovt horirontallg
to rhour thr digit
(not uted )
BB
FB
C
convmt V7 uhich is the dunng
position pointe? to nert group of
read tuo bgtes (-d ig i ts l
displag the first one
drcrrnent digit counter
checl
if done uith drsircd nunbtr of
if not p?oceed to nert digit
OO
(Vll
I-LSDP
*
o404
o4t)6
o4a7
Vl=l'll
Fr2?
ADDRESS OP-CODE
0400
a4a2
o403
HIESDDE(V7)
prrp.rts for nlrt connend uh ieh
rcretg the START/STIP suitehes
tclrctE games field pigei for dispt
utit f or START, i. E. EF+ f lag
rrturn if START button prcsged
oo
RC
RC
LDI
PHI RD
RC
- tine Gountcr set to
ze?o
or
F2
suln
pointg to tine bar start locatiorP
c h sc I f or STOP pressed bef ore start t,
prr-irt tiaer to lflzo- s
RD
RD
P
RC
04
?7
RA p o inte
RA - R(X)
to t imc bar sgnb o I e o47ly
deta Pointer
lj
4. ta4, 19
\
T/
0424
\rO+23
FO
a4?'b F8 ?4
bto+28 AE
O4?,q ?E
O4?A 8E
\ro+?B 3A zq
, o4eD 3F 50
)
I bro+?F lc
)
)
STR
HTLPI LDI
PLCI RE
WAIT1 DEC RE
ELCI RE
ENZ
BN4
) bd45o
O45?
0453
\
) bro+55
o45&
\ , O45B
) Lo45e
li
J
i
o45A
o45B
o45C
o45D
) LBISF
0460
\
)
\
)
L
FB
50
OD
32 2b
BD
FF
Og
CHI
SUI.IUP
q4
T.IAITE
O0
30 24
5UHUP
OD
IdTLP
1
08
OO
oo suHUP LDI
LDI
PHI RA
LDI
FB 04
BA
FB 95
AA
Bc
PLO RA
CLB RC
73
STXD
9C
SHI
73
STXD
LDXA
72,
5CND5
SD
73
STXD
LDX
sl.fB
STXD
?5
O as counter
RC
RC
gets datum 7B-h = l?O-d for determinetion of ful t seconds
I
INC
for seconds
RA is Etill data pointer R(Xl
RA points to CIEmrloc of lo-count of
get counter velue
store in scratch ped
RD.
04
IRX
Fg
60
F4
73
0o
PLTI RD
AD
time bar position address bac k
then go bec I to uriting the tima bar
(unused fiflerl
neur
T.IVBAR
x
FB
l counter for re€ch ing upper time
limit of .*' 2 s (up to 04 is sensible)
and exit loop if erceeded
chec I time bar pointer address and
stop u,riting into p€ge uhen it points
belou, page E
else decrement time bar pointer bg B
uhich iE the metnorg Iine-to-line diEt.
chec
OT
RD
SHBI
PHI RD
BR
BI)
r
SUT.IUP
if not done
erit loops if STIIP button pressed
else count tine, then
urait (interrupt fron TV controllerl
checlr STOP button immed.after displag
if still not pressed count time
enter uait loop 2 for enother llI?CI s
PLTT RD
AE
?D
7F
WAITI
g
RE
BNZ
CHI RC
XRI
BZ
EHI RD
XR I
BZ
CLO RD
SHI
FB 01
0461 FO
ty a462 7F oo
0464 73
0465 lD
FB FF
\ro+66
0468 3A 5D
046A 72
) Lo46B
o46C
I Lo46D
ELB
?c
?D
94
INC RC
3A 37
32
g
p
RD
IDL
0430 00
BN4
50
I 04sl BF
INC RC
tc
.tt0433
]'TTLPz
LDI
0434 FB ?4
PLO RE
0436 AE
HAIT?
DEc RE
bro+s7 eE
gE
0438
; O439
) \to43B
043C
;I 043E
) bt044a
0441
i 0443
) \to443
044d
i 0448
) ; b'044q
o44A
i 044C
) i bto44D
O44F
et sgntb o I
ut i t into d i Ep IaU pege
ureiting loop part I counting III?O
I.IVBAR LDX
sD
oo
XRI
BNZ
LDXA
IRX
ADD
STXD
ounts ful I seconds
checl if done
if done ad;ust for too much subtracted
c
RD
FF
SCNDS
,i
iI/
,/
o4&E
o46F
o470
o47
1
o472
a474
o475
o47b
0478
c,47q
o47A
o47C
047E
04BO
o48 I
STR Rtr
DEC RD
CLB RD
5A
2D
8D
BD
FB
PHI
transfer seconds fron
re-initialize RD.O
RD
oo
LDI
CIO
CNT
OA
IS
FF 06
LDN RA
Stf
I
STR
5A
INC
73
FC 03
33 83
BDF
CNTIS
ADI
o3
BDF
FROAJ
round
DEC RD
2D
38 00
SKP
FROAJ
INC RA
ELO
AD
PLTI RD
O4BB
CI49?
BA
PHI
CI4BB
AA
BD
PLTT RA
RA
CLO
g
O4BD
73
STXD
04sE
?D
GHI
O4BF
73
sTXD
04?0
D4
SEP R4
04?
1
OHI
FB F?
o4?3
78
o4?4
o4?6
rx
X
YI,,
R6
RA
LDI
xx xr
ing rout ine
urhich is (I/h, of count es per l,l(R(AIYl
sub trac t to g et cent i sec ond s
and store bac t in RD
RD
F5
qh
1
Y,
(tuo fill,ers)
CIo
gD
04BC
RD,
divide bg d to get division bg 1,2 a,'
(l-Llhl: convert llI?;O s to If tOo E Yl
o6
RA
RD
1D
33
1A
gD
into
PLTI RD
AD
o483
0484
o485
o4B6
04B7
RD.0
Fq
points to CHIP-8 veriable
et cent i sss onds and
store in V?
g et sec ond s and
store in VB
ret urn
(not used )
RD
RD
V?
=12O-d: counts par integral seconds
storege f or ( L/6O) sec fronr RC
sgrnbol for the time ber
xx
-X FF
v,
ry,
v
v,
DATA STORAEE FtrR TEXTE
o4?8
o4?F
o4A4
O4AB
o4BO
o4B5
O4BA
O4BF
o4c4
o4c?
04D0
o4D5
o4DC
o4E 1
O4EB
O4ED
o,4F?
i
I
I
I
I
I
I
I
i,r".
a4F7
04FC
o? o0
00 00
01 04
30 10
00 0B 0c 06 OO
FO OO
OO
00 00 0c 06 0s
10 10 38
lC 14 08 14 SC
lC 10 lc 14 5c
10 t4 14 lC 44
lc 04 oB 10 5C
38 ?8 ?B 38 OO
01 10 o0 00 3F 0e oo
3F OO oo CIo o0
o? 10 oo oB 0s oD o0
co co co co co
04 20 2,e 0B oo 01 0s
oo 00 00 0B 0B
oo oo 00 00 00
00 a7 04 03 07
oo 77 74 44 77
xx
xx
xx
xx
steering data;
SCALE
st,
I
.B
exp lained
at
060?
d,
v
.6
.4
A
.d
CI
st. d.
horizont al bar of frarnr
Et, d,
ve?tical bar of frarae
gt. d.
po int for
decimal
space
ttsgc
tt
( unused
l
c
ent i seconds
V
lju'
\"
\,
SPECIFIC TEXT9 FOR THE OCCASION
o500
OO Og OE Oe
OA OA OE
AE c4 c4 A4 A4
o4
CIE
\,
1C
OA
EE AA AC
EE BA cc
)lu
3B 2A
BB 2A
EA T2
EE AA
),U
o5?F
o? 24
EE E8
EE g4
o54C
AA EE
8c EA
38 3?
28
AA AA
EA
a7 0B oE oe 05
cc g8 BE
E4 24 E4
03 lC 32,08
AO ACI E4
\y
St. d.
"FESTt'
24
09
"TIl*lHrt
02 05
AE
o57t
)
"
REA[)Y, ''
$
t=ET
hrf-lrll
AC
EB
EE BB EC ?8 EE
EO 40 40 49 49
oo 00 00 02 ?o
It
il
,'RESPONSE"
3A 2A AB
1? 12 ?2
EE A8 EC CB
EC AA EA AA
)
data
'IOKTOBER"
75 25 3S 25 e5
F7 54 5& 54 37
\'
)
OS rteering
(here: Oktobarfestl
01 3g 3E 0B OO 01 00
ll
rco''
EE 8A BA AA EE
DATA AND SCRATCH PAD FOR SECONDS DISPLAY
)
)
oSBO
o?
o58B
o1
oo lE 26
01 TT TI
TT
00 2& ,2& o? xx rr rx
displag control, data for subroutine
at loc. O3EB and scratch p€d for the
3-digit decirnal equivelent of sec &
c
)'L
L
.
lb
L
DATA STTIRACE FOR COT{HENTS
0600
o60E
o60?
060A
o4
o60B
32
t
lc
o60c
OB
o60D
060E
o60F
o?
0?
05
0610
\,
ent i sec ond s
(not
used)
steering data definitions
of horizontal blocks
x-coordinete initial, upper left corner of block
U-coord inate
harirontal increment
vert i ca I
nunber of vartical blocks
menorg pointer increnent
commentE (data user-Eupptied): 40 bgtes/massagEr in
rours of four bloclts, each block five bgtes high.
number
turo
YIP Hobby Computer Assn.
32 Ainsworth Avenue
East Brunswick, N. J- 08816
v
v
ffi
\/
v
v
v
Thr lntmlrcr lor thr ETART rnd ETOP buttonr
plugr into tbr I/8 port of tir VIP rnd contlrtr
ef tuo Ourd l{A[tlD cbipr ZILSOO. Thrg rrr connrctrd rr tro rrrrttrblr rritch-drtouncl circuitr,
lclr'b rnd IC2r'b. Rrrrt undm progt.o eontnol
tr bg thr O-linr rhieh lr invmtrd uith 1C26.
Tllr ETOP button ir dinbtrd bg IClc unlrrr thr
STAnt button lr prrrrrd flrrt (ICld lnvrtr
ilrr Slf rlgnrl). Thr rlgnrlr lroa thr drDouncrd Y
buttonr .r? connretrd to thr ticrop"octrtor'l
fhg tlnr
5K
EF4(
lnvrrrr) through thr grtr
Ic1
IC2c.
+ty
Y
Y
TCL
Y
v
I
Yi
*[
rc !,Lz?ll'1
:;
7q Lsoa
Oqcl Nir\rD 6&5
9r.cni-
Y
v
Y
tgr-->-'-'
Snlf
6np
1.04.?3
v
v
\r'
l