Sudan Academy of Sciences ( SAS) Atomic Energy Council Design and building of home made 8051 Microcontroller Emulator By Abdclmoncim Elobeid Hussein iVI .Sc. in Electronics Engineering University of Khartoum ( 2002) A Thesis Submitted to the Sudan Academy of Sciences In Fulfillment of the Requirements for Doctor of Philosophy Degree Ph.D. in Electronics Engineering Supervisor Dr.Abd Elrasol Gabar Elzobaidi September 2009
151
Embed
Design and building of home made 8051 Microcontroller Emulator
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Sudan Academy of Sciences ( SAS) Atomic Energy Council
Design and building of home made 8051 Microcontroller Emulator
B y Abdc lmonc im Elobeid Hussein
iVI .Sc . in E l e c t r o n i c s E n g i n e e r i n g U n i v e r s i t y o f K h a r t o u m ( 2002)
A Thesis Submitted to the Sudan Academy of Sciences In Fulfi l lment of the Requirements for Doctor of Phi losophy
Degree Ph.D. in Electronics Engineering
Supervisor Dr.Abd Elrasol Gabar Elzobaidi
September 2009
Sudan Academy of Sciences (SAS)
Examinat ion commit tee
External examiner
Internal examiner
Supervisor
Name
Dr. Sid Ahmed Ibrahim
Dr. P'arouk Idris l labbani
Dr. Abdelrasoul Gabar Hlzobaidi
Dedication
ll'or wfwm tfwy tfiougfit we are of their concern
^ L & J all uu iao uu ^ i « J & J l (J i c -llLa t - L u 5 ^ j r t i <Vi I t ^ * i m l <—L^Jl IJA
4 . Ij&lM \ »J*-»lL) 3 j ^ J t j j U L a ^ »_L>Ua]|j ac-LiU , A . O \ J j j L i l l
S b V I j l nr.J j j — VAJ ^ 1 J J ^ U I S b V ^ J J ^ ^ I J>\jd\ j C j L ^ a j j J ]
. L p j . 1 .As*-* ialJLi j I ^J IJJ ILU 3JJJJ v b b y j ISjAi^a
^ j j S j J l ^ a J L x J l S ^ a . j (j^ia ^. l .^ l .nl <_U*Jl IJtA J.Je»S JJjjjfUVI J » l j - i H
^ j J n-> j i j j j c S j L c - C l l l j % a j j j l Lai . d l j j l-t")!! (jiaxJ £ -a ( -^*-LJ l
j _ c V JJ o > — % ojSI-l l) d i b A j j^aJ l C J l A a a J t d i a l V i n a ) 4 .aS'i j»£jkloll
< L « A J ^ J j La S o l e ^ iViiii,all j j - a l i j j J LSIj-aj <<• « j i > i a t i C_>jxl-tll j L j - a . £<e ( J ^ l j a i l
. ^ j l a J l S j S l i l l
J - . j l l l <• i u ? i « l l «_1 axubJl ^ J c <4_al.lklu>l j£-aJ 1 >ji>i<i\l L_]jiJ-»ti ^ J c ^ A j l a ^ ^ a U j j ^ 1
J — j l ( J }* «JJ J « J «, i j i n a i l <-_) a ml ->It ^ i f i . J L i ^ l j j V i « i H I j j <_JJ|JA!I £ - » U J J J | £ < *
a > A i _ J ajoibJl AjLuol Aft J u l (Jj^»"n I—l3tj<a)l ^ _aiJ >*ll.1> j -llialt
. 1%"ujall <jj.il UalLaj I 111 mi l_lSl JAJ I g aUjlil ( J a A U
j j « J Ull 4JSJJ.H j £ l j i l l 4 jk - a j > A i ' j l j C i l f l j j l l (jlfi .hjtaj>\t
^ a ) j — j l^lwv 4J&yajf 4JJ a j j i l V I » J j l aJ AJSJJ J ^ ' j ^ ^ - ^ J A ^ a l _ ) j ( j j _ ^ i a j j»>-%1niolt
S ^ l _ J i L ^ a i U a A^jJA ijfrV^S V J L ^ W ^ J jLaj ft^c l i l i i S . J ^ a i OXJ LJlSfc ^ J i L I
J__JS j j f j l . ^ i a i l ^ a U j J l i j a j J l S j S l i l l A j L p 3 AJIJJ AJJ^J ( _ l l k u IJA l - lS>a . l i l l i j jc-ajuU
k l l l l - S o 3 _ j j b j ^-1 a—li < i i j J ^ J V I J J ^ k i l l J J I J x ^ J «JUb ^ _ > J l S j S l i l l S j 4 . U a . 4 l a a . J J
.(JjJ-llI ^ V i a l l J > ? . a ^ i—lSljaJl ^ a l j j j J l j l LaJUa l ^ - \ j j n j$-»J
Jl > j i J j l ^ ci«x]l IJUb j l i t JJ aiaSlI A jLaC Col ^ I r a t i j»Al g j i j u l l < L * j « 1 j n « «
^—Sc. ( d l l — i M a j j i i l ^ j - a l «VI ji-iwil gtJl i i^ <Uja-aJl j j j u ^ l l l 4 i>.ili<i,llj J j l a J l ji»xj
^uukll t ^ r i . t i l t i $ . l j a . V I t j L u i V 4 j i i l l t j i i j a J l nJjjMSlI < £ j A j i ) l (£A ^ . I - ^ I M I / i l l ^ a l i j J
^ — ^ I j V I J - a «J J a v i l "ajJ j£l ia^li^J Lk J L > J | jS aj ^yjil <• « j i h a t i l_l j»»il->ll ^ a (J^a\jjl)j
. j i J J j»J j J a ^ J l j * i j S «jl i^-full t ' l l i-s ajj (jLt t->'inall ^ a U j j A-a^-ail
3—uibvlt ^. a J ual jSll J uiLuull frLu-all ^,\^*iiaj l i l j - a i l ^ U J J J ^ ^ W J£^3>-^
d—^yik ^—US J ? »>-» i j l J i « y V i J (jJka. j l a ^ v m a l l (j^i ^ ' ' J ' ^ o t i
j a (—J—UaJ j 4 j A . j l i J l S j S l J l l ^ -3 <Uxa^J ^JJ A ^ l u u J l ^ - a l j j j .<Sk^aUjJ ^^JLaLalll
. j b i . J ^ I S ^joi . -Vill IJA j l j l IJ I ^ r j i J l 3 ; J i . . } l l J j j l j < a J ^ a x j t 'tj ' i i . i ( j l ^AajUiball
L_I j uilaJl ^ l c ,\t Villi J J j'»•!».i J J j i a j I J l L i j b k j l jirsll a ^ j n l l t"i\jJoft
^ S S j — j i % i l ^ j j j l l ( a a (.\ S J J J S I ( J i -a l jp ( J ^ * i l-Ub C_lSlj-all g t - a l j j j (JA1*J ^»JJ <_kuia-ajl
5 C : \oloctronicsVrojoctsWOBOCOtAAl 89(.°S2\cUl«i 2 7 - 1 1 •jnue.llvi § . C ! \ « l « c t r o n l c s \ | > r o J « « s \ D T H E R M O \ A T 8 ? S 5 2 \ H O . « i m o . U v 2
7 C ! \ « 1 « « r o n i c s \ p i o i « c t s \ R O B O C O t l R l \ T . i c ' . i c i i < o n U o l \ A T O ? S S 2 \ e o n U o l l * f . U v 2
8 - C i \ « l « c t r o n i c s \ p r o j e c t s \ R o b o c o n R l _ b « a \ A T 0 9 S 5 2 \ s l a v « . U v 2
2 3 5 I r . c r . . a e r . i - H 7 l t : e r r c r > . ? : syrrrAX S ? * C R S v S l r c o r . . a « r . f : e r r o r ^ 2 : S T ? ~ . ^ T : F - . * I ' . * A 7 " ; : , s : r . e r . . a s B H « ' H i : w a r r . i r .e A 4 i ; : : i s s : : : 3 'E::B- 3rATE : - !s: :r T a r g e s n o t c r e a s e d
<_|} \> f \Bui ld / .Command A F»ri« l?»" /
I ieiiif (>. I ) Ituikliiu*. p ioccss
JaJxl l
If after correcting errors and rebuilding the targets, the 'output window' shows that there
is 0 error, then the user is ready to test the performance of his code. In keil, like in most
development environment, this step is called Debugging, and has this icon: 'Si.
6.4.3 Debugging the project
After clicking on the debug icon, the user will notice that some part of the
user interface will change, some new icons will appear, like the run icon circled in
Figure 6.15 below:
83
j n r w n t e s t - „ } i V i s f o n 3 - [ C : \ D o c u i n e n t s a n d S ^ n g s t a t H f u l m o n e i m X D e s k b ^ f
I ' i^iMV 6.15 l ) c h i i i : s . ' . i n < . " . p m c i "
The user can click on the 'Run' icon and the execution of the program will start. In this
example, the user can see the behavior of the pin 0 or port one as shown in Figure 6.15
above, by clicking on 'peripherals. I/O ports. Port 1'. The user can always stop the
execution of the program by clicking on the stop button ( O ) and he can simulate a
reset by clicking on the 'reset' button rJ t . He can also control the execution of the
program using the following icons: ^ ^ ^ which al lows the user to follow the
execution step by step. Then, when he is finished with the debugging, he can always
return to the programming interface by clicking again on the debug button (@L).
84
Chapter Seven
Results and Discussion
The source program was built using uvision development tool and then tested
(Figure 7.1 and Figure 7.2 below) [7].
QZE9D0SI
- S_I T*IM I
CI
"B j tt tU »» ^ . Build t«cget 'Tarftct 1' nssembllug moitl. *>•»... U n k i n g . . . FtOflCMx 3i*»t dat«-8.0 Kd«t(.-0 cod<!*30." •123" • 0 Krrorto), (I tKtrnlneto) •
ASM ASSIGN BrRthMonble IttenhRimltle •< I ' I - 1 . K WNM X(<MIW»MMI X risdkililM VII « f
Figure 7.2 Testing the project
85
All features of the program that do not require external RAM were tested using the
simulator and found perfect; for example:
Help command of the program when tested showed the result in Figure 7.3.
,= U ART. 01 -8 0 5 1 M i c r o p r o c e s s o r M o n i t o r i n g L e a r n i n g » B o a r d
A D D R : 8 0 0 0 s m o n » H e l p
S t a n d a r d C o m m a n d s ? - T h i s h e l p l i s t H - L i s t p r o g r a m s R - R u n p r o g r a m L - D o w n l o a d U - U p l o a d N - N e w l o c a t i o n J - J u m p t o m e m o r y l o c a t i o n H - H e x d u m p e x t e r n a l m e m o r y I - H e x d u m p i n t e r n a l m e m o r y E - E d i t i n g e x t e r n a l r a m C - C l e a r m e m o r y
U s e r I n s t a l l e d C o m m a n d s
ADDR: 8 0 0 0 £ m o n » ADDR: 8 0 0 0 « r o o n »
•
V
Figure 7.3 Running of the Help command of the program
Internal memory display in which the program displays the contents of the internal 256
RAM area showed the result in Figure 7.4 [7J.
•• UAUt #1 .. , A D D R : 0 0 0 5 £ m o n » H e x d u m p i n t e r n a l m e m o r y
Terminal b a s e d Monitor program s o u r c e code
I n i t i a l i z a t i o n p a r a m e t e r s a n d . I n t e r r u p t V e c t o r s
T h e s e t w o p a r a m e t e r s c o n t r o l w h e r e MOM2 w i l l b e a s s e m b l e d , a n d w h e r e i t : w i l l a t t e m p t t o LJMP a t t h e i n t e r r u p t v e c t o r l o c a t i o n s .
b a s e e q u 0 x 0 0 0 0 ; a d d r e s s l o c a t i o n f o r MON2 v e c t o r e q u 0 x 2 0 0 0 / a d d r e s s l o c a t i o n t o LJt-H' i n t e r r u p t , v e c t o r ; :
/ T h e s e t h r e e p a r a m e t e r s t e l l MON2 w h e r e t h e u s e r ' s m e m o r y i s i n s t a l l e d . ;"emem" d e f i n e t h e s p a c e t h a t w i l l b e s e a r c h e d f o i p r o g r a m b e n d e r s , u s e r ; commands , s t a r t - u p p r o g r a m s .
pgm e q u 0 x 2 0 0 0 bmem e q u 0 x 1 0 0 0
• emem e q u O x F F F F
'bmem" a n d i n s t a l l e d
/ d e f a u l t : a d d r e s s l o c a l i o n t o r t h e u s e r p t . o q r a m ; t h e b e g i n n i n g o f e x t e r n a l m e m o r y ; e n d o f e x t e r n a l m e m o r y
;To s e t t h e b a u d r a t e , u s e t h i s f o r m u l a o r s e t ; = 2 5 6 - ( c r y s t a l / ( 1 2 * 16 * b a u d - r a t e ) ) . ;Most e m u l a t i o n p r o q r a m s i n t r o d u c e i n t e n t i o n a l
t o 0 t.oi a u l . o d e t e c t i o n b a u d c o n s t
d<> 1 .!\ wh'Mi S ' M i d i n q n s c i i . d a t a , ;which y o u w o u l d w.mL t o t u r n o i l (<>i d o w n l o a d i n g l a i ' . i " » p i o g i a m s i n t o RAM. ; f l a s l i ROM, t h e max imum s p e e d i s s e t b y t h e t i m e it t,\i:>-:; t o p r o g r a m o . - fh . • l o c a t i o n .
Ko r
b a u d _ c o n s t b a u d _ c o n s t b a u d _ c o n s t b a u d _ c o n s t b a u d _ c o n s t l i n e d e l c i y
e q u e q u e q u e q u e q n e q u
0 2 5 5 2 5 3 2 5 2 2 4 3 6
/ f l a g f o r a u t o m a t i c b a u d r a t e d e t e c t i o n ( w h e n 0) ; 5 7 6 0 0 b a u d - r a t e w i t h 1 1 . 0 5 0 2 Mllr. , 1 9 2 0 0 b a u d - r a t e w i t h 1 1 . 0 5 9 2 MHz , - 1 9 2 0 0 b a u d - r a t e w i t h 1 4 . 7 4 5 6 MHz ;480f t b a u d - r a t e w i t h 12 MHz ; N o . o f c h a r t i m e s t o p a u s e r i m i n g u p l o a d s
; These a r e f l a s h ROM p a r a m e t e r s . I f " h a s f l a s h ' , ' f e a t u r e s a r e t u r n e d o f f , o t h e r w i s e " b f l a s h " anr /memory r a n g e w h i c h i s f l a s h ROM. ; " e r a s e _ p i n " a l l o w s y o u t o s p e c i f y t h e b i t a d d r e s s .•will t e l l MON. t o e r a s e t h e f l a s h ROM c h i p w h e n i t ;you d o w n l o a d p r o g r a m s w i t h t h e " s t a r t - u p " b o n d e r s ; in t h e f l a s h ROM c r a s h e s .
i s s e t t o z e r o , a l l f l a s h rem " o f l a s h " s h o u l d s p e c i f y ' b e
f o r a p i n w h i c h ( i f h " Id l ow) s t a r t s u p . T h i s i s u s e f u l i i
o n t.bem a n d I h e c o d e y o u ' v e pui
h a s _ f l a s h b f l a s h e f l a s h e r a s e _ p i n e r a s e p i n
o q u e q u e q u e q u e q u
0 / f l a s h i n s t a l l e d f l a g ( w h e n no t . Z>MO) 0 x 8 0 0 0 / f i r s t , m e m o r y l o c a t i o n o l F l a s h R O M OxFFFF / l a s t m e m o r y l o c a t i o n of. F l a s h R<>K
0 ; 0 0 - d i s a b l e e r a s e p i n f e a l u i . o 0 x B 5 ; B 5 = p i n 1 5 , P 3 . 5 (Tl.) ( e r a s e p i n a d d r e s s )
/ S p e c i a l f l a s h ROM p r o g r a m m i n g a d d r e s s e s w e r e met. b y b a s e a d d r e s s a d d e d t o f l a s h ;memory r e g i s t e r a d d r e s s e s . T h i s i s d o n e f o r f l a s h ROM e n a b l i n g , w r i t i n g a n d / e r a s i n g .
f l a s h _ b a s e e q u b f l a s h / f l a s h s t a r t - 0 x 8 0 0 0
f l a s h _ e n l _ _ a d d r e q u 0 x 5 5 5 5 + f l a s h b a s e / s e n d d a t a t o a d d r . f o r f l a s h e n a b l e f l a s h _ e n l a d d r e q u 0 x 5 9 5 A + f l a s h b a s e / d i f f e r e n t , f l a s h v e r s i o n f l a s h _ e n . l _ d a t a e q u OxAA
f l a s h _ e n 2 _ a d d r e q u 0x2AAA + f l a s h _ b a s e / s e n d d a t a t o a d d r . f o r f l a s h e n a b l e f l a s h _ e n 2 _ a d d r e q u 0 x 2 6 A 5 + f l a s h _ b a s e / d i f f e r e n t f l a s h v e r s i o n
94
/. I a s h o n 2 da i a qu f'.xf.:.
C l a s h wr a d d r o q u ()xr>i>5!> ' I l.eish b a s e ;N<MI'I l r Lash wr a d d r o q u 0x5<-*5A + f l a s h b a s e / d i f f e r e n t f l a s h w> d a t a , OxAO
•> a d d r . Cm i . l a s h v e r s i o n
! a:;h wr i t<
CJ a s h o r I a d d r o q u 0x!°-> i f l a s h b a s e / s«=nd d a t a t . o a d d r . f o r C l a s h e r a s u r e f l a s h e r l a d d r e q u Ox.'^'vA » f l a s h b a s e ; d i f f e r e n t f l a s h v e r s i o n f l a s h _ e r l _ d a t a e q u 0 x 8 0
f l a s h _ e r 2 _ a d d r e q u 0 x 5 5 5 b t f l a s h b a s e ; s e n d dat .a t o a d d r . f o r C l a s h e r a s u c f l a s h _ e r 2 a d d r e q u 0 x 5 9 5 A t f l a s h b a s e / d i f f e r e n t l l a s h v e r s i o n f l a s h e r 2 d a t a e q u 0 x 1 0
;Koy do f i n i . l i on: . - f o j MOM. i h e l p k e y o q u / h e l p .••croon
• d i r k e y Oqll •M' ; d i I o i -1 n r y
r u n k e y oqu ' R' ; r u n p r o q r a m d n t d k e y e q u • IV / d o w n l o a d u p l d k e y e q u • u * ; u p l o a d n l o c k e y e q u 1 M' / n e w memory l o c . i t i • >ii jump . k e y o q u ' J ' / j u m p 1 " memory lo<vi» i o n <.lurap k e y e q u * i r ; h e x <lump m e m o t y in tra k e y o q u ' i • ; h e x dump i n t e r n a l ; ; emoty
e d i t k e y e q u ' E ' / e d i t memory c lrm__key e q n ' C ; c l e a r m e m o i y e r f r _ k e y e q u ' Z ' / e r a s » f 1 a s h r om
;Tiniing p a r a m e t e r s f o r s o m e f l a i l ROMs. ; p g m w a i t e q u J 0 ; 2 2 . 1 1 8 4 MH:-. c r y s t a l a s s u m e d ( d e l a y ? M.
p g m w a i t e q u 19 ;1.1 . 0 5 9 2 MHz v e r w a i t e q u 5
; e r w a i t l e q u '10 ; f o u r t y de lay . - - 0 2 2 . 1 1 K 4 MH:-. e r w a i t l e q u 2 0 ; t w e n t y d e l a y s f o r 1. I.0T>"2 MH?.
; e r w a i t 2 e q n 22 9 ; o a c h d e l a y . ' > m s (J22 . 1 11'< 4M11 /.
/These s y m b o l s c o n f i g u r e MON i n t e r n a l monuuy u s a g e . psw i n i t e q u 0 ; v a l u e l o r psw ( w h i c h r e u b a n k t o u s e ) d n l d _ p a r m e q u 0 x 1 0 ; b l o c k o f 1 <*> b y t e s f o r d o w n l o a d s t a c k e q u 0 x 3 0 / l o c a t i o n o f t h e s t a c k b a u d s a v e e q u 0 x 7 8 r s a v e l o c a t i o n f o r baud-'*on.-*t warm b o o t , (4 b y t e s )
;The f o l l o w i n g map s o m e MOM s u b r o u t i n e s o r g l j m p
o r g l j m p
r 6 r 7 t o d p t r : mov mov r e t
o r g
b a s e p o w e r o n
b a s e I 3 vect .orH 3
d p i , r 6 d p h , r7
b a s e i 11 v e c t o r - i - l ]
; s t a r t from b a n e ; j u m p t o p o w e r on r e s e t : v e c t o r
. * * * * * * * * * * * * * * • * * * • * * * * * * * * . / s t a r t , from b a s e t ' ; jump t o e::t i n t o v e c t o r
/ s t a r t I 'ram b a s e i 27 / j u m p ti> t i m e r ! v e c t o r
.*****•**•** + ****+*••*•*•»< ***** . / c a l l con!: t o o u t p u t ; e h a r a e i o i / j u m p t o d i s p l a y a s p a c e / no o p e t a I i * h i
/ s t a r t front b a s e i 4 3 / jump t o timer;*, vec t . ru (fcor>.>)
.lump T a b l e Lot F't out am'.-. "nbroiit . i t i e s f a l l s
/Never c h a n g e t h i s l i n e ! ! O t h e t pt.ogt. ims d e p e n d on t h o s e l o c a t i o n s t o a c c e s s mon / f u n c t i o n s .
org base- i 4 6 ; st a r t a jmp p h o x 1 /*-:!•:; ( o o t 4< ajmp c o u l ; 3 0 a jmp c.i.n / 32 a jmp p h e x / 3 4 a j m p p h e x 1 6 ; 3 6 ajmp p s t r ;3ft a jmp g h o x ;3A a j m p g h e x 1 6 ; 3C ajmp e s c /4F, a jmp u p p e r ; 4 0 l j m p a u t o b a u d ; 4 2
pcs tr_h: I j m p p e s t r ; 4 5 • a j m p n e w l i.ne / 4 0
l j m p l e n s t r / 4A I j m p p i n 1811 / 4 n l j m p p i n t s / 50 I j m p p i n t : lt'iu ; 5 3 l j m p cmar 1. wi ; 5 0 l j m p prgm ; 5 9 l j m p e r a l l ;5C l j m p f i n d / 5 F
cin_f i l t e r _ h : l j m p c i n _ f t I t e r ; 6 2 ajmp a s c 2 h e x ; 6 5 l j m p e r b l o c k ; 6 7
; c i n r e c e i v e - a o h a 1 n o t e r from t h e s e r i a l por<
c i n : j n b c l r mov r e t
r i , «.:in r i
. a , s b u f
; .1 o o p i l r o c t t i v o i n t e r r u p t f l a g n o t s e t ; c l e a r r e c e i v e i n t e r r u p t f l a g ; p u t s e r i a l b u f f e r i n t o A ; r e t u r n
; d s p a c e s e n d s d o u b l e s p a c e s t o t h e s e r i a l b u f f e r
d s p a c e : aca.l I. s p a r e s p a c e : mov a , I! ' ' c o u t : _ j n b t i , c o u t
c l r t i mov s b u f , a r e t
; c a l l . d o u b l e s p a r e t r a n s m i t ii .n ;put s p a r e i nt o A ; d i s p l a y i t / c l e a r t r a n s m i t i n t e r r u p t ;put. A i n t o s e r i a l b u t t e r t o s e n d
; r e t urn
n e w l i n e Z d i s p l a y s two e m p t y . l i n o s , by s e n d i n g <:\K and I.F t o t h e c o u t f u n c t i o n .
• 1 i A I PER I. u s i nq
n e w l i n e . 2 : a c a l l
n e w l i n e : p u s h mov a c a . l 1 mov a c a l 1 p o p r e t
n o w ! i tie a c c a , # 1 3 c o u t a , # 1 0 c o u t a c c
; p r i n t two now l i n e s ; d i s p l a y new l i no ; s a v e A ( t o p r i n t o n e n e w l i t i v ) ; p u t c a r r i a g e r e t u r n i n t o A / d i s p l a y it; ; p u f l i n o f o o d i n t o A / d i s p l a y i f ; r e s t o r e A ; r e t urn
ghex g e t s 2 d i g i t h e x number from s e r i a l p o r t . (' - s e t .if. KSC p r e s s e d , c l e a r e d o t h e r w i s e , p s w . 5 ~ s e t i f r e t u r n p r e s s e d w i t h o u t , i n p u t , c l e a r o t h e r w i s e .
ghex: ghex8: ghex 8 c :
ghex8 j :
c l r p s w . L> / c l e a r u s e r d e f i n e d f l a q
a c a l l c i n f i i t e r h / u e t f i t s t d i g i • (msb) a c a l l u p p e r / c o n v e r t . t o u p p e r c a s e c j n e a , #27 , g h e . x 8 f / jump i T. n o t e s c a p e c h a r s e t b c / c l e a r c a r L Y f l a q
c l r a / c l e a r A r e t /RET urn c j n e a , # 1 3 , g h e x S h / j u m p i f n o t a c a r r i a g e r o t n i n s e t b p s w . !'i / s e t THE u s o t 1 ie 1 i n e t 1 1 ! a q c l r c / c l e a r c c l r • a / c 1 e a t A r e t / ROT 1.11 11 mov r 2 , a /move ch . u tmsb) i nt •• 1 2 aca . l I a s c 2 b e X ; c o n v e r ! a s c i i t o h e x t o c h e c k
qhex i - ' c / j ump i ! n e t h e x x c h a , I:2 /EXCHAIKI .i h e x c h a r (msb) and c h a r a c a l l c o u t / d i s p l a y c h a r (msb)
a c a l ! c i n _ l i 1 tot . h / u e r s e c •nd d i t | i •• (isl-)) a c a l l u p p e T: / c o n v e r t TO u p p e r c a s e c j n e a , # 2 7 , g h e x S k / j u m p i1 NOT e s c a p e c h a r s j m p a h e x B d / j uinp i f e s c a p e c j n e a , # 1 3 , ghexi im / j ump i. f n o t a c a r r i a g e r e t u r n
mov a , r2 / p u t HEX (msb) i n t o A c l r c / c l e a r c r e t / r o t u 1 ! i
<>7
ghex8iri: c j n e a , # 8 , g h e x 8 p ; jump i f n o t a b a c k s p a c e g h e x S n : a c a 11 c o u t / i f b a c k s p a c e , d i s p l a y i.t a n d
s j m p g h e x 8 c ; j u m p b a c k g h e x 8 p : c j n e a , 921, g h e x B q ; j u m p i f n o t a n e g a t i v e a e k n o w 1 e d g e
s j m p g h e x 8 n ; j u m p i f n e g a t i v e a c k n o w l e d g e g h e x 8 q : mov r 3 , a ; m o v e c h a r ( I s b ) i n t o r '<
a c a l 1 a s c 2 h e x / c o n v e r t a s c . i l t o h « x t o c h e c k j o g h e x 8 j / j u m p i f c a r r y (non h e x o n a r ) x c i i a , r 3 / e x c h a n g e h e x c h a r ( I s b ) a n d c h a r ( I s b i a c a 1 1. c o u t / d i s p l a y c h a r M s t o mov a , r 2 / m o v e h e x c h a r (msb! i n t o A s w a p a / s w a p A ( e x h a n g o t h e n i b b l e s ) o r l a , r 3 / o r A vi i V i i h e x c h a r t I s b ) c l r c / c l e a r c r e t / r e t u r n
g h e x l 6 g e t s 4 d i g i t , h e x number f rom s e r i a l p o r t . (' - s e t i f ESC p r e s s e d , c l e a r e d o t h e r w i s e , p s w . 5 — s e t i f r e t u r n p r e s s e d w i t h o u t i n p u t , c l e a r o t h e r w i s e .
g h e x 1 6 : • mov i -2 , # 0 / c l e a r r l
mov i :3 , 110 / c l e a r r? mov r 4 , #4 / n u m b e r o f d i g i t s l o f t . c l r p s w . 5 / u s e r d e f i n e d f l a g b i t
g h e x 1 6 c : a c a l i c i n f i l t e r h / s e r i a l i n p u t a c a l 1 u p p e r / c h a n g e i n p u t c h a r t o u p p e r c a s e c j n e a , i f27 , g h e x l 6 d / j u m p i f i n p u t , i s not. a n e s c a p e s e t b c / h a n d l e e s c k e y c l r a / c l e a r A mov d p h , a / c l e a r dph mov d p i , a / c l e a r d p i
• r e t / r e t u r n g h e x l 6 d : c j n e • a , If8, g h e x l f i f / j u m p i f t h e i n p u t not a b a c k s p a c e
s jir.p g h e x 1 6 k / j u m p d o w n , s i n c e b a c k s p a c e g h e x l 6 f : c j n e a , # 1 2 7 , gh.ex.16q / j u m p i f i t 127 g h e x l 6 k : c j n e r 4 , # 4 , g h e x l 6 e / j u m p i t s o m e d t q i t s e n t e r e d
s j m p g h e x 1 6 c / j u m p i f n o d i g i t , e n t e r e d g h e x l 6 e : a c a l l c o u t / d i s p l a y i n p u t
a c a l l g h e x l 6 y / d i v i d e b y 16 i n c r 4 / i n c r e m e n t r4 s j m p g h e x l 6 c / j u m p t o g e t . a n o t h e r d i g i t
g h e x l 6 g : c j n e a , # 1 3 , g h e x l 6 i / j u m p i f n o t c a r r i a g e r e t u r n k e y mov d p h , r 3 / m o v e r 3 t o d p h mov d p i , r 2 / m o v e r 2 t o d p i c j n e r 4 , » 4 , g h e x l C h / j u m p i f s o m e d i g i t s e n t e r e d c l r a / c 1 e a i A raov d p h , a / c l e a r dph mov d p i , a / c l e a r d p i s e t b p s w . 5 / s e t g e n e r a l p u r p o s e j t i t e r r u p t
g h e x l 6 h : c l r c / c l e a r c r e t / r e t u r n
g h e , x l 6 i :mov r 5 , a / k e e p a s c i i v a l u e o f t h e d i g i t a c a . 1 1 a s c 2 h e x / c o n v e r t t o h e x j c g h e x l 6 c / j u m p i f n o t h e x x c h a , r 5 / p r e p a r e a s c i i d i g i t : t o d i s p l a y l e a 11 c o u t / d i s p l a y d i g i t i n r 5 mov a , r 5 / r e t u r n h e x d i g i t f o r f u t t h e r p r o c e s p u s h a c c / s a v e t h e d i g i t f r o m d e s t r u c t i o n a c a l l g h e x l 6 x / m u l t i p l y b y 16 p o p a c c / r e s t o r e t h e d i g i t ( 1 s t b y t e )
a d d a , t;2 ; a d d d i g i t . a !' t e i mu .11 i p ! i c a t i o n mov • r 2 , a ; s t o r e new v a l u e j u r2 c l r a / c l e a r A acldc a , r 3 / a d j u s t t h e ( 2 n d b y t e ) mov r 3 , a / s t o r e r.3 c l j n z v l , g h e x l 6 c / j u m p i f r'1 n o t z e t . - . , t i b r i n g t h e n e x t . c l r c / c l e a r o mov d p i , r 2 / p u t . r 2 i n t h e p o i n t e r ( 1 o w e r b y t e ) mov d p h , r 3 / p u t t 3 i n 1 h e p<> i n! «"r ( h i g h e r b y t e t re!:. / 1 oi u i n
/ g h e x l 6 x taul t i p l i e s r 3 - r 2 c o n t e n t by Id ( s h i f t l e f t b y 4 ) .
ghexlfc .x: mov a , r 3 / l o a d r 3 i n t o A s w a p a / s w a p A ( t o p r o c e s s l o w e r n i b b l e ) a n l , # 1 1 1 1 . 0 0 0 0 b / m a s k out ( u n w a n t e d n i b b l e a f t e r s w a p p i n g ) mov v 3 , •i / p u t i t b a c k i n f o r mov a , r 2 / l o a d r2 i n t o A f o r p r o c e s s i n g s w a p c ! / s w a p A f o r f u r t h e r froce^Ping a n l a , # 0 0 0 0 1 1 1 1 b / m a s k h i g h e r n i b b l e o r l a , i 3 / a n l A w i t h R3 mov ' r 3 , a / s v e r e s u l t i n t o t 3 mov a , r 2 / . l o a d A w i t h r 2 s w a p a / s w a p A f o r f u r t ho t p i o e o s s i n g a n l a , HI I . 1 1 0 0 0 0 b / m a s k out l o w e r n i b )} e mov r 2 , a / s a v e A i n t o i 2 r e t / r e t u r n
/ g h e x l C y d i v i d e s r 3 - t : 2 c o n t e n t b y 16 ( s h i f t r i g h t b y 4 ) .
g h e x l 6 y : mov a , r 2 / l o a d r 2 i n t o A s w a p a / s w a p A ( t o p r o c e s s h i g h e r n i b b l e ) a n l a , tfOOOOllllb / m a s k out. ( u n w a n t e d n i b b l e a f t e r s w a p p i n g ) mov r 2 , a / p u t . i t . b a c k i n t o r 2 mov a , r 3 / . l o a d r 3 i n t o A f o r p r o c e s s i n g s w a p a / s w a p A f o r f u r t h e r p r o c e s s i n g a n l a , # 1 1 1 1 0 0 0 0 b / m a s k l o w e r n i b b l e o r l a , r 2 / a n d A w i t h R2 mov r 2 , a / s v e r e s u l t i n t o r 2 mov a , r 3 / l o a d A w i t h r 3 s w a p • a / s w a p A f o r f u r t h e r p r o c e s s i n g a n l a , # 0 0 0 0 1 1 1 1 b / m a s k o u t h i g h e r n i b b l e mov r-3, a / s a v e A i n t o r 3 r e t / r e t u r n
a s c 2 h e x c o n v e r t A S C I I c h a r a c t e r i n A t o i t s equ. iva. lent- . IIKX. I f A c o n t e n t i s n o t v a l i d h e x v a l u e ( n o t i n t h e r a n g e 0 , 1 , 2 , 9 , A, F) c a r r y i s s e t (C = .1 ) .
a s c 2 h e x : a d d j n c a d d j c a d d c l r r e t
hex_ m a y b e : a d d
a , # 2 0 8 / a d d t o e x e c l . u d o d i g i t s w i t h a s c i i l o w e r t h a n z e r o h e x _ n o t . / j u m p i f n o c . a i r y , d i g i t l o w e r a , # 2 4 6 / a d d t o e x e c l u d e d i g i t s w i t h a s e i . i h i g h e r t h a n n i n e h e x j u a y b o / jump i f e a t . r y , d i g i t may b o A, H, 0 , I), K or F a , # 1 0 / a d d t o c a n c e l 2 4 6 add.il . i o n c / c l e a r c
/ t o t u t n
a , # 2 4 9 / a d d t o e x e e l u d o d i g i t s w i t h a s c i i l o w e r t h a n A
j n c h e x n o t / j u m p i f n o c a r r y , d i g i t l o w e r a d d a , # 2 5 0 ; a d d t o e x e c l u d e d i g i t s w i t h a s o i i h i g h e r thar j c h e x n o t ; j u m p i f c a r r y , d i g i t i s n o t A , B, C, D, E n o r a d d a , # 1 6 ; a d d t o c a n c e l l a s t a d d i t i o n s c l r c ; c l e a r c. r e t ; r e t u r n
h e x _ n o t : s e t b c ; s e t c r e t ; r e t u r n
; p h e x c h a n g e s t h e 8 - b i t s v a l u e in A i n t o t w o n i b b l e s (1 - I d s ) . Then c h a ; n i b b l e t o i t ' s A S C I I , a n d s e n d s h i g h e r n i b b l e t h e n t h e 1 o w e r n i b b l e t ; p o r t u s i n g e o u t f u n c t i o n .
p h e x : p u s h •rl CO ; s a v o A b e c a u s e we h a n d l e n i b b l e - ( h i g h ! s w a p a ; s w a p t h e n i b l e s a n l a , # 1 5 ;mask out l o w e r n i b b l e a d d a , #24C / a d d t i . c h e c k whet h o i h e x h i <ihe i ' h in •> j n c p h e x b ; jump t o a d d 5 8 , i l ri"l h i iter I li a d d a , #7 ; i f h i g h e r t h e r e f o r e d i d i t i s A , B, c , b ,
phex b : a d d a , # 5 8 ; a d d 58 t o a d i u s t it t o a s o i i
a c a . l 1 e c u t ; o u t p u t A c o n t e n t p o p a c t : ; i o s t o r e A t o r 2 n d n i b b l e { 1 o w e r u i b b 1 e )
p h e x l : p u s h a c c ; s a v e A a n l a , # 1 5 ;mask o u t h i g h e r n i b b l e a d d a , # 2 4 6 / a d d l o c h e c k whet h e t h".-: h i g h o i t nan '.' j n c p h o x c ; jump t ( i a d d '•(!, i f n o t h i g o r t h a d d a , #7 / i f h i g h e r t h e r e f o r e d i g i t i s A , B, C, 1),
p h e x _ c : a d d a , # 5 8 ; a d d 58 t o a d j u s t , i t t o a s o i i a c a l . 1 c o u t ; o u t p u t A c o n t e n t p o p • a c c / r e s t o r e A r e t ; r e t u r n
;o s e. | ,:h t h e s(>r i a !
o r
o i K
p h e x l 6 c h a n g e s t h e 1 6 - b i t s v a l u e i n t h e d p t t i n t o tw>> s < ~ b i t s v a l u e s in dph a n d d p i . U s i n g p h e x H i t s e n d s t.he 4 H E X d i g i t in A e f ' M l" in i t o t h e s e r i a l p o r t .
p h e x l 6 : p u s h mov a c a l l mov a c a l l p o p r e t
a c c a , d p h p h e x a , d p 1 p h e x a c c
; s a v e A ; l o a d h i g h e r p o i n t e r e o n t o u t ; e a . l l 8 b i t o u t p u t f u n c t i o n ; l o a d l o w e r p o i n t e r c o n t e n t ; c a l l 8 b i t o u t p u t f u n c t i o n / r e s t o r e A
; r e t u r n
n i l
o A
; p s t r p r i n t s ( s e n d s t o t h e s e r i a l p o r t ) m u l t i p l e c o n s e c u t i v e s t r i n g s w i t h o u t / n e e d i n g t o r e l o a d d p t r ( w h i c h t a k e s 3 b y t e s o f c o d e ! ) . . . ' t h i s i s u s e f u l , f o r / i n s e r t i n g n u m b e r s o r s p a c e s b e t w e e n s t r i n g s .
p s t r : p u s h a c c / s a v e A p s t r l : c l r a / c l e a r A t o u s e i n t h e p o i n t e r
m o v e a , @ a + d p t r / g e t a d d r . c o n t e n t i n c d p t r / p o i n t , t o n e x t a d d r . j z p s t r 2 / j u m p i f i t i s z e r o mov c , a c c . 7 / s t o r e b i t 7 i n c a r r y ( e n d f l a g ) a n l a , # 0 x 7 F / m a s k b i t : 7 o f A c o n t e n t . a c a l l c o u t / d i s p l a y c h a r a c t e r j c p s t r 2 / j u m p t o t h e e n d i f c a r r y s e t s jmp p s t r l / o t h e r w i s e , jump t o b e g i n i n q
p s t r 2 : p o p acc / r e s t o r e A r e t / r e f u i ri
1 0 0
/ u p p e r C o n v e r t s t h e a s c i i c o d e in A c c t <• ' i p p e t c - i s - - , i f i ! j s l o w e r e a s * .
u p p e r : c j n e a , # 9 7 , u p p e r 2 / i ump i f <;har i s (a )
u p p e r 2 . : j c u p p e r 4 / j ump i f c h a r l o w e r t h a n ( a ) c j n e a , # 1 2 3 , u p p e r 3 / j ump i f c h a r i s (r.!
u p p e r 3 : j n c u p p e r 4 / j ump i f c h a r h i g h e r t h a n ( z ) a d d a , # 2 2 4 / c o n v e r t t o u p p e r c a s e b y a d d i n g
u p p e r 4 : r e t / r e t u r n
l e n s t r r e t u r n s t h e l e n g t h o f t h e s t r i n g i n rO. The s r i n q m e n t i o n e d s i a t t s a t t h " d p t r c o n t e n t l o c a t i o n . The s t r i n g e n d i s e i t h e r (.) ot. b i t . 7 s o t .
l e n s t r : mov rO, # 0 / r e t u r n s l e n g t h of a s t r i n g 1 n p u s h a c c / s a v e A t o u s e t h e ac.-um lat . >r
l e n s t r l : c l r a / c l e a r A m o v e a , 0 a + d p t r / l o a d A w i t h a d d r . c o n t e n t j z l e n s t r 2 / i s i t e n d o f s t r i n g mov c , a c c . 7 / l o a d c a r r y w i t h a c c ; . 7 ( e n d f 1 i n c rO / i n c r e m e n t c o u n t e r J c l e n s t r 2 / j u m p t o e n d i f c a r r y SP-' i n c d p t r ; i n c r e m e n t p o i n t e r s j m p l e n s t r l / l o o p b a c k
l e n s t r 2 • p o p a c c / r e s t ' o r e A r e t / r e t u r n
e s c C h e c k s t o s e e i f <ESC> i s w a i t i n g on s e r i a l p o r t , ' . ' - c l e a t i f n o '.KSC>, C=s<?t i f <ESC> p r e s s e d . T h e n b u f f e r i s f l u s h e d .
esc: p u s h a c c / s a v e A t o u s e t h e a c e u m l a t o r c l r c / c l e a r c j n b r i , e s c 2 / j u m p i f r e c e i v e i n t e r r u p t i s n o t s e t mov a , s b u f / . l o a d A w i t h s e r i a l b u f f e r c o n t e n t s c j n e a , # 2 7 , e s c l / j u m p i f s e r i a l b u f f e r c o n t e n t s i s n o t a n e s c s e t b c / i f s e r i a l b u f f e r c o n t a i n e s c . S e t c a r r y f l a g c l r r i / c l e a r r e c e i v e i n t e r r u p t p o p a c c / r e s t o r e A r e t • / r e t u r n
The Menu a n d M o n i t o r U s e r Commands
/menu f i r s t p r i n t s out . t h e prompt. 1 , t h e n it p r o m p t s a n o l b e t m e s s a g e a s k i n g f o r / i n p u t a n d i t w a i t s t h e r e . When t h e u s e r e n t e r h i s r e s p o n s e i t l o o k s f o r s i m i l a r / e x t e r n a l c o m m a n d s i n t h e e x t e r n a l , m e m o r y . When i t i s s u c c e s s f u l i t e x e c u t e s / c o r r e s p o n d i n g r o u t i n e . When f i n i s h e d i t r e t u r n s . I f i t d i d n ' t f i n d i n t h e / e x t e r n a l m e m o r y i t c o m e s a n d l o o k s f o r i t . i n t h e i n t e r n a l c o m m a n d . I f s u c c e s s f u l / i t w i l l jump t o i t a n d e x e c u t e i t . When n o t s u c c e s s f u l i t r e t u r n s b a c k t o t h e / b e g i n i n g o f t h e menu t o r e p e a t t h e p r o c e s s . The d e l a i l s oJ menu e x p l a n a t i o n i s / embedded w i t h i n t h e t e x t , menu:
mov d p t r , • p r o m p t I / p o i n t t o p r o m p t 1 m e s s a g e a c a l 1 p c s t r _ h / d i s p l a y m e s s a g e mov a , r7 / m o v e r7 t o A f o r o u t p u t : a c a l l p h e x / c a l l p h e x S t o o u t p u t a b y t e mov a , r 6 / m o v e r 6 t o A f o r o u t p u t a c a l l p h e x / c a l l p h e x B t o o u t p u t a b y t e / m o v • d p t r , # p r o m p t 2 / p o i n t t o prompt 2 m e s s a g e a c a l l p s t r / d i s p l a y m e s s a g e
101
/Now t h e p r o m p t is p a s t a n d some: i n p u t i s e x p e c t e d .
meruit):
aca . l i. c i n f i l t e r h c j n e a , # ' : ' , meuuO a c a l l dr\ l .d_now s j m p menu a c a l l u p p e r
/ g e t t h e i n p u t c h a r a c t e r / j u m p t o menuO, i f no t : ; o t h e r w i s e down I o a d ; j u m p t o menu / • c h a n g e A c o n t e n t t o u p p e r c a s e
; P u s h r e t u r n a d d r e s s o n t o s t a c k t o e n a b l e j u m p i n g t o t h e p r o g r a m . mov b , # ( m e n u & 2 5 5 ) ; l o a d r e t u r n a d d r e s s l o w b y t e p u s h b ; p u s h t h e r e t u r n a d d r e s s mov b , if (menu >> 8) ;J .oad r e t u r n a d d r e s s h i g h b y t e p u s h b / p u s h t h e r e t u r n a d d r e s s
; l o o k t h r o u g h memory f o r a p r o g r a m / w i t h t h e p r e s s e d u s e r command.
h e a d e r t h a t , i s u s e r i n s t a l l e d command, t o m a t e !
menux:' mov b , a ;now s e a r c h f.<.>r e x t o i n a l c o m m a n d s . . mov d p t r , ft bittern ; l o a d dptr. w i t h bmem
m e n u x l : : a c a l l f i n d ; f i n d h e a d e r o f f i l e s j n c m e n u x e n d ; j u m p , s i n c e a l l commands s e a r c h e d mov d p i , #4 / p o i n t t o f i g u r e out i t s t y p e c l r a / c l e a r A m o v e a , @ a + d p t r / . l o a d i t s t y p e c j n e a , # 2 5 4 , m e n u x 2 ; j u m p i f n o t e x t command (FK) i n c d p i / • i n c r e m e n t t o f i n d s p e c i f i e r c l r a ; c l e a r A m o v e a , d a + d p t r ; m o v e s p e c i f i e r i n t o A c j n e a , to, m e n u x 2 ; j u m p i f s p e c i f i e r a n d B n o t e q u a l a c a l l s p a c e / d i s p l a y s p a c e mov ' d p i , # 3 2 ; p o i n t t o h e a d e r name a c a l l p s t r / d i s p l a y i t a c a l l n e w l i n e / d i s p l a y new l i n e mov d p i , # 6 4 / p o i n t t o h e a d e r c l r a / c l e a r A jmp @ a + d p t r / j u m p t o i t !
menux2: i n c d p h / i n c rente n t dph mov a , d p h / m o v e dph Co A f o r e o m p a r i s i o n c j n e a , # ( ( e m e m U ) >> 8) 1 2 5 5 , m e n u x ] / j u m p b a c k i f not
m e n u x e n d : mov a , b / m o v e c h a r i n B t o A
; S i n c e n o u s e r i n s t a l l e d command w a s f o u n d , u s e t h e b u i l t . i n o n e s . m e n u l a : m e n u l b : c j n e a , # h e l p _ k e y , m e n u l c
mov d p t r , # h e l p cmd2 / p o i n t t o m e s s a g e a c a 1.1 p e s t r h z d i s p l a y i t a jmp h e l p / j u m p t.o s u b r o u t i n e
m e n u l c : c j n e a , # d i r _ k e y , m e n u l d mov d p t r , # d i r _ c m d
• a c a l l p e s t r h a j m p d i r
m e n u l d : c j n e a , # r u n _ k e y , m e n u l e mov d p t r , # r un_ cmd / p o i n t t o m e s s a g e a c a .1.1 p e s t r h / d i s p l a y i t a j m p r u n / j u m p t o s u b r o u t i n e
m e n u l e : c j n e a , # d n l d _ k e y , m e n u l f mov d p t r , # d n l d _ cmd a c a l l p e s t r h a j m p d n l d
menuIf : c j n e a , # u p l d _ k e y , m e n u l g
T i d
menulg:
mov a c a l l a j m p c j n e
d p t r , p e s t r u p I d a , # n l o c
# u p l d cmd h
k e y , m e n u l h
102
mov d p t r , # n l o c cmd ; p o i n t t o m e s s a g e a c a l l p c s t r h ; d i s p l a y i t a j m p n l o c ; j u m p t o s u b r o u t i n e
m e n u l h : c j n e a , Hjump k e y , m e n n l . i mov d p t r , I t j u m p c m d a c a l l p c s t r h a j m p j unip
m e n u l j . : c j n e a , t d u m p k e y , m e n u l i mov d p t r , ttdump emd a c a l l p c s t r h a j m p dump
m e n u l j : c j n e a , H e d i L _ k e y , m e n u l k mov d p t r , # e d i t cmd ; p o i n t t o m e s s a g e a c a l l p c s t r h ; d i s p l a y i * a j m p e d i t ; j ump I. o s u b t o u t i n e
m e n u l k : c j n e . a , i f c l r i n j t e y , m e n u l 1 mov d p t r , # c l r m _ c m d a c a l l p c s t r h a j m p c l r m
m e n u 1 1 : c j n e a , # e r f r k e y , m e n u l m mov a , # h a s _ f l a s h j z menu e n d mov d p t r , # e r f r cmd ; p o i n t t o m e s s a g e a c a l 1 p c s t r _ h / d i s p l a y i ' a j m p e r f r ; j u m p t o s u b r o u t i n e
m e n u l m : c j n e a , # i n t m k e y , m e n u I n mov d p t r , # i n t m _ c m d a c a l l p c s t r _ h l j m p i n t m
m e n u I n : / I n v a l i d i n p u t , n o c o m m a n d s t o r u n . . . . , So n e w l i n e wi 1.1 j u s t r e t u r n t o m e n u . m e n u _ e n d :
a j m p n e w l i n e
d n l d r o u t i n e d o w n l o a d h e x f i l e s f r o m t h e s e r i a l p o r t . . Hex f i l e i s a number o f d a t a r e c o r d s t e r m i n a t e d b y CR a n d h F . A d a t a r e c o r d e x a m p l e i s a s f o l l o w s : -
: x x y y y y O O a a b b c c d d e e mmZZ w h e r e : S t a r t o f r e c o r d
x x N o . o r d a t c i b y t e ( t w o h e x d i g i t s ) y y y y S t a r t i n g a d d r e s s o f t h e r e c o r d (-1 h e x d i g i t s ) 0 0 R e c o r d t y o e N o . f o r h e x f i l e a a b b c c d c i e e . . . . mm Ilex d a t a ( t w o h e x d i g i t , n u m b e r s . , e q u a l x x ) ZE C h e c k s u m v a l u e o f a l l d a t a r e c o r d d i g i t s
The d o w n l o a d f u n c t i o n r e c e i v e s f r o m t h e s e r i a l p o t t i n t h i s f o r m , i n t e r p e t t s a n d s a v e i t . The p r o c e d u r e e x p l a n a t i o n i s e m b e d d e d i n t h e t e x t . A l s o a number m e s s a g e s a r e e x p l a i n e d a s f o l l o w s : d n l d s l = " B e g i n s e n d i n g I n t e l HEX f o r m a t f i l e <ESC> t o a b o r t " d n l d s 2 = " D o w n l o a d a b o r t e d " d n l d s 3 = " D o w n l o a d c o m p l e t e d " 16 b y t e p a r a m e t e r t a b l e : ( e i g h t 16 b i t v a l u e s )
* 0 = l i n e s r e c e i v e d * 1 = b y t e s r e c e i v e d * 2 b y t e s w r i t t e n * 3 = b y t e s u n a b l e t o w r i t e ** 4 = i n c o r r e c t c h e c k s u m s * 5 = u n e x p e c t e d b e g i n o f l i n e * 6 u n e x p e c t e d h e x d i g i t s ( w h i l e w a i t i n g f o r b o ! ) * 7 u n e x p e c t e d n o n - h e x d i g i t s ( i n m i d d l e o f a l i n e )
d n l d :
103
mov d p t r , ttdnldsl / p o i n t t o m e s s a g e t o d i s p l a y
a c a l l p e s t r _ h a c a l l d n . l d _ i n . i t
;Lo.ok f o r b e g i n l n g o f l i n e m a r k e r d n l d l :
d n l d 2 :
; C h e c k d n l d 2 b
a c a l . I t c i n c j n e ' a , # 2 7 , d n l d 2 s j m p d n . l d _ e s c c j n e a , # ' : ' , d n l d 2 b s j m p d n l d 2 d
t o s e e i f i t ' s a h e x d i q i t ,
r " b e g i n s e n d i n g f i l e c a l l i n i f i a l i s a t i o n i . t
; g e t i n a c h a r a c t e r ; j u m p i f n o t e s c a p e / j u m p s i n c e e s c a p e ; j u m p i f n o t : ; j u m p s i n c e ( : } t o e e r r o r i f i t i s .
ESC • >'i low
t o a b o r t '
•nt. i n u e b e l '
a c a l l j c mov a c a l l s j m p
a s c 2 h e x d n l d l r l , # 6 d n l d _ i n c dnlc l ' l
; E n t r y p o i n t f o r m a i n menu d e t e c t i n g d n l d n o w :
d n l d 2 d
; c o n v e r t a s c i i t o h e x ; i f c a r r y s e t ( n o t h e x ) jump b a c k / s p e c i f y t h e c o u n t e r Cor u n e x p e c t e d h e x / i n c r e m e n t c o u n t e r / j u m p b a c k
" c h a r a c t e r .
d n l d 3 :
d n l d 4 : d n l d 5 :
mov a , # , A ' ; m o v e c h a r a c t e r t o A a c a l l c o u t ; d i s p l a y c h a r a c t e r a c a l l d n l d i n i t ; c a ] l i n i t i a l i z a t i o n b e l o w
: mov r l , # 0 / s p e c i f y c o u n t e r f o r Mo. o f t r i a l s a c a l 1 d n l d i n c ; i n c r e m e n t . c o u n t e r
t a k i n g i n t h e r e c o r d l i n e o f d a t a ;mov a , # ' . ' ; m o v e ( . ) i n t o A ; a c a l l ' c o u t ; d i s p l a y c h a r a c f e i mov r 4 , # 0 ; i:4 w i l l c o u n t up c h e c k s u m a c a l l d n l d g h e x / g e t h e x c h a r a c t e r ( N o . o f d a t a b y t e s ) mov rO, a / m o v e N o . <>f d a t a b y t e s t o rQ mov a , V .' ; m o v e ( . ) i n t o A a c a l ] c o u t / d i s p l a y ' . ' e h u r a e t o t a c a l ] d n l d g h e x ; q e t h e x c h a r a c t e r ( s t a r t i n g adck . msb) mov dp i t , a / H i g h b y t e o f l o a d a d d r e s s a c a l l d n l d g h e x ; g e t h e x c h a r a c t e r ( s t . a r t i n f a d d r . ] s b ) mov d p i , a ; l . o w b y t . e o f . l oad a d d i e s s aca . l 1 d n l d g h e x ; g e t : h e x c h a r a c t e r ( r e c o r d t y p e . . h e x e t c ) c j n e a , # 1 , d n l d 4 / j u m p i f r e c o r d t y p e n o t 1 i . e . ( h e x t y p e ) s j m p d n l d e n d / j u m p i f r e c o r d t y p e i s ] ( n o n h e x t y p e ) j n z d n l d u n k n o w n ; j u m p i f r e c o r d t y p e i s n o t z e r o mov a , rO ;mov i n t o N o . o f d a t a b y t e s A j z d n l d g e t c k s u m ; j n m p a f t e r l a s t : d a t a w a s w r i t t e n a c a l 1 d n l d g h e x / G e t d a t a b y t e mov r 2 , a ; m o v e d a t a b y t e t o r:2 mov r l , # 1 / s p e c i f y c o u n t e r b y t e s r e c e i v e d a c a l l d n l d i n c ; i n c r e m e n t e o u n t e r mov , a , r2 ; l o a d A w i t h d a t a b y t e l c a l l s m a r t wr ; w r i t e b y t e , c = l i f an e r r o r w r i t i n g c l r a ; c l e a r A a d d c a , #2 ,-add 2 t o c a r r y ( 2 ~ w r i t t e n , 3 " not . w r i t t e n ) mov r l , a / s p e c i f y c o u n t e r t y p e ( w r i t f e n o r n o t w r i t t e n ) a c a l l d n l d i n c / i n c r e m e n t c o u n t e r i n c d p t r / i n c r e m e n t d p t r ( p o i n t t o t h e n e x t l o c a t i o n ) d j n z r O , d n l d S / j u m p b a c k t o w r i t e t h e r e s t .
t c k s n m : a c a l l d n l d g h e x / g e t h e x a n d a d d c h e c k s u m t o i 1 c o n t e n I mov a , r 4 / m o v e c h e c k s u m v a l u e t o A j z d n l d l / j u m p i f n o t z e r o , t o r e c o r d c h e e k sum e r r o r
d n l d _ s u m e r r : mov a c a l l s j m p
/ s p e c i f y c o u n t e r t y p e / i n c r e m e n t c o u n t e r / j u m p t o b e c i i n i n g
; I l a n d l e u n k n o w n . l i n e t y p e . d n l d _ u n k n o w n :
mov a , i 0 / m o v e N o . of ' . lata hyt '•• A j z dri) d g e t o k s u m / s k i p d a t a i f s i z e i s r:ot*>
d n l d _ u k n 2 : a c a l ) d n l d _ g h e x / c o n s u m e a l l o f unknown d a t a d j n z r O , d n l d _ u k n 2 ; d e c r e m e n t a n d jump i f d a t a not . f i n i s h e r s j m p d n l d _ g e t _ c k s u m ; j u m p t o g e t c h e c k s u m
/ H a n d l e s t h e p r o p e r e n d - o f - d o w n l o a d m a r k e r . d n l d _ e n d :
a , rO ' d n l d e n d 3
mov j z
d n l d _ e n d _ 2 : a c a l l d j n z
d n l d _ e n d _ 3 : a c a l 1 mov
• j n z a c a l .1 mov a c a l l
m o v e N o . o f d a t a b y t e s t o A s h o u l d u s u a l l y b e z e r o
d n l d _ g h e x rO, d n l d u k n 2
r c o n s u m e a l l o f u s e l e s s d a t a d e c r e m e n t a n d jump i f d a t a no T FLLLJ S I I ' M I
TO FLNO E R I O R
; g o t t h e l a s t c h e c k s u m /•move c h e c k s u m value? t o A ; j u m p i f n o t z e r o ; c a 1.1 d e l a y ; p o i n t t o m e s s a g e , - d i s p l y " d o w n l o a d t h a t may h a v e b e e n
; jump i f r e c e i v e in / • i n p u t c h a r a c t e r ; j n m p t o summary
wont. o k . on t h e o r n i p i
e n d not
o f t h e SO|;
d n l d _ g h e x a , r<l d n l d _ s u m e r r d n l d _ d l y d p t r , # d n l d s 3 p c s t . r _ h
/•Consume a n y CR o r LF c h a r a c t e r j n b r i , d n l d _ s u m a c a l l c i n s j m p dn . ld sum
/ •Handle e s c r e c e i v e d i n t h e d o w n l o a d s t i e n m . d n l c l _ e s c :
a c a l l d n l d d l y / c a l l d e l a y mov d p t r , # d n l d s 2 / p o i n t t o s t r i n g a c a l l , p c s t r h / d i s p l a y " d o w n l o a d s j m p d n l d _ s u m / jump t o summary
. A * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * » * * * * 1 * * * * * * * . / / /A s h o r t d e l a y s i n c e m o s t t e r m i n a l e m u l a t i o n p r o g r a m s w o n ' t b e r e a d y / a n y t h i n g i m m e d i a t e l y a f t e r t h e y ' v e t r a n s m i t t e d a t i l e . . . T h e f o l l o w i r / e s t i m a t e d a s r o u g h l y 1 2 8 k c y c l e s , a p p o x 0 . 1 s e c d n l d _ d l y :
/ l o a d rO w i t h z e r o / l o a d r l w i t h z e r o / d e c r e m e n t r l , l o o p i f n o t z e r o i n the. / j u m p b a c k i f n o t z e r o / r e t u r n
/ C o u n t e r i n c r e m e n t i n g , p a r a m e t e r s p e c i f i e d b y r l . ! l " t e , v a l u e s i n A c e a n d Rl a r e / d e s t r o y e d . d n l d _ i n c :
mov a n l r l a d d mov i n c mov j n z i n c i n c
d n l d i n 2 : r e t
a , r 1 a , ttOOOOOlllb a a , # d n l d _ p a r m r l , a @rl a , @rl d n l d i n 2 r l @rl
/ r l s p e c i f r e s p a r a m e t e r t o i n c l e m e n t / a n d j u s t i n c a s e / r o t a t e t o r e s e r v e t w o l o c a t i o n s ( I s b , msb) / d e f i n e a d d r e s s o f l s b t o i n c r e m e n t / n o w r l p o i n t s t o l s b / i n c r e m e n t l s b / m o v e t o c h e c k I s b / j u m p i f n o t z e r o / o t h e r w i s e p o i n t t o n e x t l o c a t i o n (msb) / i n c r e m e n t msb / r e t u r n
; G e t p a r a m e t e r ; a n d i n c t o n e x t o n e ( @ r l ) , c a r r y c l e a r iI p a t a m e t ; b i t v a l u e r e t u r n e d I n d p t r . d n l d _ g p :
s e t b c ; s e t . c a r r y Cor nun r.er •> parm mov d p i , @rl ;put: w h a t a t a d d r . a s d p i i n c r l / p o i n t t o t h e n e x t mov d p i ) , t?rl / p u t what a t a d d r . a s Iph
• i n c r l ; p o i n t t o t h e n e x t mov a , d p i / m o v e t o c h e c k i f d p ! i s z e r o j n z d n l d g p 2 / jump i f d p i i s it"! .:<. t ! • mov a , dph / m o v e t o c h e e k i f dph i s z » r o j n z d n l d g p 2 / j u m p i f dph i s not r e r o c l r c / c l e a r c
d n l d g p 2 : r e t . **< * * * * * * * * * * * * * *
/ r e t u r n f i r * * * * * * * .
1 f,
u p p e r c a s e d n l d g h 3
d n l d g h S f r e c o r d i >e.q i ti o f
1 i l i e s 1 i na
a new 1i n o !
/ A s p e c i a l v e r s i o n o f g h e x j u s t l o r t h e d o w n l o a d . D o e s n o t l o o k f o r c a r r i a g e / r e t u r n o r b a c k s p a c e . H a n d l e s ESC k e y b y p o p i n g t h e r e t u r n a d d r e s s a n d t h e n j u m p s / t o t h e e s c . k e y h a n d l i n g . T h i s g h e x d o e s n ' t e c h o c h a r a c t e r s , a n d i f it. s e e s ' : ' , / i t p o p s t h e r e t u r n a n d j u m p s t o an e r r o r h a n d l e r f o r ' : ' i n t h e m i d d l e o f a / l i n e . N o n - h e x d i g i t s a l s o jump t o e r r o r h a n d l e r s , d e p e n d i n g o n w h i c h d i g i t . d n l d _ g h e x : d n l d g h l : a c a l l
a c a l l c j n e
d n l d g h 2 : p o p p o p s j m p
d n l d g h 3 : c j n e d n l d g h 4 : m o v
a c a l . 1 p o p P O P a j m p
d n l d g h 5 : a c a l l j n c mov a c a l l s j m p
d n l d g h 6 : m o v d n l d g h 7 : a c a l l
a c a l l c j n e s j m p
d n l d g h 8 : c j n e s j m p
d n l d g h 9 : a c a l l j n c mov
' a c a l l s j m p
d n l d g h A : x c h s w a p o r l mov a d d •mov mov r e t
c m u p p e r a , # 2 7 , a c c a c c d n l d _ e s c a , # " ' : ' , r l , # 5 d n l . d _ . i n c a c e a c c d n l d 3 a s c 2 h e x d n l d g h 6 r l , #7 d n l d _ i n c d n l d g h l r 2 , a c i n u p p e r a , # 2 7 , d n l d g h 2 a , I " : * , d n l d g h 4 a s c 2 h e x d n l d g h A . r l , #7 d n l d _ i n c d n l d g h 7 a , r 2 a a , r 2 r 2 , a a , r 4 r 4 , a a , r 2
d n l d g h 8
d n l d g h 9
/ i n p u t 1 s t d i g i t / c o n v e r t c h a r t o / j u m p i f n o t e s c . / e l s e p o p 2 n d p u s h e d / p o p t h e I s t p u s h e d / j u m p t o e s c a p e / j u m p i f n o t ( : } b o u i u i tig > / s p e c i f y c o u n t e r Cor wi o n q / i n c r e m e n t c o u n t e t / p o p 2 n d p u s h e d ; p o p 1 s t p u s l i ed / j u m p t o b e g i n ! n g ( w e ' r e o n
/ c a l l a s c 2 h e x / j u m p i f h e x / s p e c i f y c o u n t e r f o r n o n e h e x / i n c r e m e n t c o u n t e r / j u m p b a c k t o b e g r u i n g / k e e p f i r s t d i g i t i n r 2 / i n p u t 2 n d d i g i t / c o n v e r t t o u p p e r c a s e
n o t e s c . e s c . n o t :
/ j ump / j ump / j u m p / j ump
i f i f i f i f
: c o n v e r t : j ump i f
t o h e x n o t h e x
/ s p e c i f y c o u n t e r f o r n o n e h e x / i n c r e m e n t c o u n t e L / j u m p b a c k / e x c h a n g e 1 s t a n d 2 n d d i g i t s / s w a p 1 s t d i g i t / o r 1 s t a n d 2 n d d i g i t s / s t o r e r e s u l t i n r 2 / a d d new number t o p r e v i o u s c h e c k s u m / s t o r e r e s u l t i n t o r4 / m o v e nev; number t o A / r e t u r n
. * * / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * . / d n l d s 4 = / d n ' l d s 5 =
' S u m m a r y : " ' l i n e s r e c e i v e d '
106
/ d n i d s d a - " b y t e : - r e c e i v e d " / d n . l d s 6 b ~ " b y t e s w r . i t - t . e n " ; P r i n t , o u t d o w n l o a d s u m m a r y , d n i d sum:
mov a , r 6 ; m o v e p o i n t e r low b y t e i n t o A p u s h a c c ; p u s h i t mov a , rl ; m o v e p o i n t e r h i g h b y t e i n t o A p u s h a c e ; p u s h i t mov ' d p t r , K d n l d s l ; p o i n t 1o m e s s a g e a c a l l p c s t r h / d i s p l a y i t mov r l , U d n l d p a r m ; m o v e d o w n l o a d p a r a m e t e r v a l u e i n r 1 mov t . 6 , # d n l . d s 5 (, 2 5 5 ; m o v e " l i n e i e o e i v e . 1 " low b y t e i n ! (>
mov r 7 , fldnldsS » ; move " l i n e r e c e i v e d " h i g h b y t e i n 1
a c a l 1 d n l d iO ; c a 1 1 d o w n l o a d i t e m d i s p l a y m<>v i t > , l ldnl .dsGa h ,'. •:.'> ; tin i v o " b y t e | e e e j v e < | " low b y l e i i i ! 1.
mo v r'l, fldnldsfia -• >i ; mov" " b y t e t e . i v e < l " h i g h b y t e in r a c a l J d n l d _ i 0 / e a I .1 11.>wn 1 o n . 1 i Ve in d i s p 1 • i y mov r 6 , i f d n l d s C b S ;;.'.;> / m o v e " b y t e wt . i t t e n " l o w b y t e i n t i.
mov r 7 , # d n l d s 6 b >• o ; m o v e " b y t e w i i l t e n " h i g h b y t e i n i 7 a c a l l d n l d _ i ( ) ; c a l l d o w n l o a d i t e m d i s p l a y
t d n l d _ e r r : ; n o w p r i n t o u t e r r o r summary mov r 2 , # 5 ; m a k e r ? a s a c o u n t e r
d n l d e r 2 : a c a l l d n l d _ g p ; g e t p a r a m e t e r s j c d n l d e r 3 ; j u m p i f a n y e r r o r s d j n z r 2 , d n . l d e r 2 / d e c r e m e n t a n d jump t.o s e e o t h e r p a i a m e t e r
/No e r r o r s , s o we p r i n t t h e n i c e m e s s a g e mov d p t r , # d n l d s l 3 ; p o i n t , t.o m e s s a g e a c a l l , p c s t r _ h / d i s p l a y i t "No e r r o r s d e t e c t e d " s j m p d l n d _ s u m _ d o n e / j u m p t o summary d o n e
/ T h e r e w e r e e r r o r s , s o now we p r i n t t h e m . d n l d e r 3 :
mov d p t r , # d n l d s 7 / p o i n t t o m e s s a g e a c a l l p c s t r _ h / d i s p l a y i t " E r r o r s : "
l e t ' s n o t b e n a s t y . . . o n l y p r i n t i f n e c e s s a r y / B u t mov mov mov a c a l l
mov mov a c a l l
mov mov a c a l .1. mov mov a c a l l
mov mov a c a l l
r l , # ( d n l d p a n n i 6) r 6 , # d n l d s 8 & 2 5 5 r 7 , ttdnldsS » i! d n l d _ i t e m r 6 , # d n l d s 9 S 2 5 5 r 7 , # d n l d s 9 » ft d n l d _ i t e m r 6 , # d n l d s l O & 2 5 5 r 7 , ( f d n l d s l O » 8 d n l d _ i t e m r 6 , # d n l d s l l & 2 5 5 r 7 , # d n l d s l l » 8 d n l d _ i t e m r 6 , # d n l d s l 2 & 2 5 5
' r 7 , # d n l d s l 2 » 8 d n l d _ i t e m
* * * * * * * * * * 4 * * * * * H * t * »
m o v e " b y t e s u n a b l e t o w r i t e " l o w b y t e i n r<.> m o v e " b y t e s u n a b l e t o w r i t e " h i g h b y t e in r7 c a l l d o w n l o a d i t e m d i s p l a y m o v e " i n c o r r e c t , c h e c k s u m s " l o w b y t e i n r 6 move " i n c o r r e c t c h e c k s u m s " h i g h b y t e i n r7 c a l l d o w n l o a d i t e m d i s p l a y move " u n e x p e c t e d b e g i n o f f i l e " l ow b y t e i n rC wove " u n e x p e c t e d b e g i n o f f . i l*»" h i g h b y t e j n r7 o n 1 I down 1 oa-1 i t e m < I i s p 1 a y m o v e " u n e x p e c t e d h e x d i g i t s " l ow b y t e i n r 6 move " u n e x p e c t e d h e x d i g i t s " h i g h b y t e i n r7 c a l l d o w n l o a d i t e m d i s p l a y m o v e " u n e x p e c t e d i ion h e x d i g i t s " l o w b y t e i n rt . m o v e " u n e x p e c t e d n o n h e x d i g i t s " h i g h b y t e i n r7 c a l l d o w n l o a d i t e m d i s p l a y
1 * * * * 4 • * • * * * * * * * * * .
d l n d _ s u m _ d o n e : p o p a c c mov r 7 , a p o p a c e
" mov r 6 , a a j m p n e w l l n e
/ p o p p u s h e s a n d p u t i n r 7 a n d r 6 / m o v e A t o r 7 / p o p t o A / m o v e A t o r 6 / d i s p l a y n e w l i n e a n d r e t u r n t o menu
. * * * * * * * * * * * * * * * * * * * * * * . * * * * * * * * * * * * * * * * * * * * * * • * * * * * * . d n l d _ i t e m :
a c a l l d n l d g p / g e t p a r a m e t e r s ( e r t o t c o n d i t i o n s /
j n c d n l d i:< d n l d _ i 2 : a c a l l s p a c e
l c a l l p i n l l G u a c a l l r 6 r ' / t o d p t r a c a l l p e s t r h
dnld _ i 3 : r e t . * * fr *• A A- * * . * • * *
dnld 10: a c a l l d n l d g p sjmp d n l d 12
. * A * A- * * A A A A A- * * A
/ I n i t i a l i z e a i l d n l d p a r a m e t e r s t o z e r o . d n l d _ i n i t :
mov rO, t d n l d parm dnldO: mov PrO, !I0
i n c rO c j n e 1.0, I)dnld parm I 16, dnldl) ; 1 oop l o c l e a t ; r e t / t o t i u n
/jump i f e r r o r s / d i s p l a y s p a c e / p r i n t v a l u e /make p o i n t e r t o t h e m e s s a u o / d i s p l a y t h e m e s s a g e / r e t u r n A * * * * * A A * * A * * A * A A . A i * A i * * » A » i »
/ n o n - e r r o r condi f.i.ons /jump t o r2
/ l o a d r I w i t h oarm b a s e ; e 1 OH I i i / go ! ••• t h e i i">:i
11 I
d d t .
/dnlds '7: / d n l d s S : / d n l d s 9 : / d n l d s l O : / d n l d s l l : , - d n l d s l 2 : / d n l d s l 3 :
K t r o r s : " b y t e s u n a b l e l o w r i t e " i n c o r r e c t checksums" u n e x p e c t e d b e g i n o f l i n e " u n e x p e c t e d h e x d i g i t s " u n e x p e c t e d n o n - h e x d i g i t s "
'No e r r o r s d e t e c t e d "
/jump r o u t i n e a s k s for I he a d d r e s s t o which il w i l l lump. II e s c a p e [ C ~ I I was / p r e s s e d , t h e program i s a b o r t e d . Tt NO a d d r e s s was e n t e r e d ( v o i d i n p u t , psw.!f>-/ t h e program l e t u r n s t o where i t w a s . When h i i a d d r e s i s e n t e r e d t h e program mak / s t a c k o f 6 b y ! e l e n g t h and jump t o i h e s p e c i f i e d a d d r e s s , jump:
mov d p t r , HP romp T (1 / l o a d p o i n t e r w i t h m e s s a a e a d d r . aea .1.1 pos t r H / d i s p l a y t h e m e s s a g e a c a 11 r6r7 tx» ip tr / t o p r e p a r e d a t a in dpt I FOR n e x t 1 unc i ion a c a l l phex1b / d i s p l a y a d d r e s s c o n t e n t mov d p t r , #prompt4 / l o a d p o i n t e r w i t h m e s s a g e add . a c a l l • p e s t r _ h / d i s p l a y t h e m e s s a g e a c a l 1 g h e x 1 6 / g e t hex v a l u e (dptr v a l u e ) j b psw.!», j ump3 /jump i f f l a g sol j n c jump2 /jump i f c a r r y not. set. ajmp a b o r t 2 / o t h e r w i s e abort
juirtp2: a c a l l DPT I T ..T-l.RV / s a v e dpf i •••line IN I a n d I /
jump3 :. a c a l 1 new Li ne / outpu I: a .1 i no mov d p t ) , '1 runs 1 / t o a d po in t ET w i t h m e s s a g e ictrir . a c a l I p c s t i . II / d i s p l a y THE mes sage aca 1.1 r6r7t o d p t r / r e s t o r e p o i n t e r
/Jump t o u s e r c o d e I'dpur: ( t h i s u s e d by run command a l s o ) j u m p d o i t :
c l r a / c l e a r A mov psw, a /move A t o psw mov b , a /move A t o B mov rO, #7 /move 7 t o r 1) ( l o a d c o u n t o i )
j d i t c l r :mov @r0, a / c l e a r . 7 a d d r e s s e s d j n z rO, j d i t c l r / l o o p t o c l e a r mov s p , #8 / s t a r t w/ sp**7, l i k e a r e a l r e s e t push a c c / u n l i k e a r e a l r e s e t , push 0000 push a c c / i n c a s e t h e y end w i t h a RF'.T jmp @a+dptr /jump t o t h e a d d r e s s
108
; clMttij.
/ t h e a ; r 6 - r 7 dump :
dumpl
d u m p 2 :
d i s p l a y s
s o i i. o q n
K> l i n e s o f I (j a d d r e s s 1< i v a l . e n t o f a d d r e s s c o n t e n t
i o n .in ii'-:-: T!v-- s i n i l i n
it anal a d d !
!•••:.! i d e i ! s s i:- ! h e
d i s p ! . - , e n l o u t
dump 3 :
dump 3 b
dump4 :
dump5:
mov a c a J 1. a c a . I ! a c a l l m o v
a e a l I t n o v
a c a l i. o l r
m o V i :
I n c a c a 1.1. a c a l l •rl j t r . :
a c a l i mov a c a ! L c l r m o v e i n e aril c j n o c l r a d d j c c l r a d d a c a l l d in: : a c a l l a c a l l a c a l l a c a l l j c d j n z a j m p
' r 2 , # 1 6 n o w l ino> ' r(»r7l odpfcr p h e x l ( > a , » ' : ' e o u t s p r 3 , #lf> r b i :7 l ' . . i lp l i a a , H a l d p l . i . dpt . r p h e x s p a c e r 3 , dump? d s p a c e r 3 , # 1 6 c 6i:7 t o d p t . i a a , @ a i c l p t r d p t i
, a , # 0 1 1 1 1 1 1 l b n , # 1 2 7 , dtinip31> n a , # 2 2 4 duiop4 a a , # 3 2 c o u t r.5, d n m p 3 n o w l i n e l i n e d l y d p t r t o r f > r 7 e s c dump 5 r 2 , d u n i p l n o w l i n o
; N o . o f ! i n e s i*> • or i ul / d i s p l a y new I i t ie / t o p r e p a i " d a i a i n dp i r !•>• n e v i !un>:! i"i; / d i s p l a y a d d r . l o c a t i o n i o 'lump i n / m o v e : t o A / d i s p l a y : / r 3 N o . o f h y f e s t o p i i n t / t o p i e p a i o dp i i I . a u< -xl t i m e t i o n / c l e a t A / r e a d .uk i i i ' s r . • • o i l o i l / i n o i o n i o n ! dp i i / d i s p l a y e a c h b y t e i n he:-: / d i s p l a y s p a c e / . l o o p I f>t n e x t ' b y t e . / d i s p l a y d o u b l e s p a c e z r 3 N o . o f b y t e s t o d i s p l a y h e x a n d n o n - l i e s / m a k e t h e p o i n t e r a t t a i n / c l e a r A / r e a d a g a i n / p o i n t t o n e x t . / a v o i d u n p r i n t a b l e c h a r a c t e r s • 127 / c h e c k i !.' i s no t | 21 / i f .127 d e l e t e e h a t a e l / a d d t.o s c r e e n c o n t r o l e h a r a e t e t s / c a r r y m e a n s n o e o n l i o ) c h a t a c t ••! / a v o i d c o n t r o l e h n r a e l " r s / a d d i t i o n t o c o m p e n s a t e f o r X24 a d d i t i o n ; d i s p I a y c h a i a c t o t / l o o p a g a i n t o d i s p l a y n e x t c l i a i a c l e i / d i s p l a y a new l i n e / d e l a y / s a v e d p t r i n r 6 a n d i.7 / c a l l e s c a p e / j u m p i f e s c w a s p r e s s e d / l o o p b a c k u p t o p r i n t n e x t , l i n e / j u m p t o n e w l i i i e t o r e t u r n t o m e n u
/ e d i t r o u t i n e e d i t s e x t e r n a l , ra in . I t d i s p l a y s a l u o s s a c i " at . t l i e s t a r t t o lc-t l i r e / u s e r e n t e r t h e a d d r e s s l o c a t i o n h e w a n t s t.o e d i t . T h e n It. d i s p l a y s t h e a d d r e s s / b e s i d e i t ' s c o n t e n t a n d a s k t h e u s e r t o e n t e r t h e n e w v a l u e . When h e x c h a r a c t e r ; / a r e e n t e r e d t h e r o u t i n e m o d i f y t h e s p e c i f i e d l o c a t i o n a n d m o v e t o t h e n e x t / a d d r e s s . I f n o n h e x c h a r a c t e r s e n t e r e d t h e r o u t i n e d i s p l a y s a m e s s a g e .
e d i t :
e d i t l :
m o v d p t r , tfodit.sl / l o a d d p t r w i t h m e s s a g e a d d r , a c a l l p c s t r _h / d i s p l a y m e s s a g e a c a l 1 r 6 r / t o d p t r / t o p r e p a r e d a t a i n dpt . i t o r n e x t. f u n c t i o n a c a l l . p h e x l 6 / d i s p l a y l o c a t i o n p o i n t e d t o b y d p t r mov a , # ' : ' / m o v e : t o A a c a l 1. C O I l l . S p / d i s p l a y : mov a , 8 • ( • / m o v e ( t o A a c a l l c o u t / d i s p l a y ' ( ' a c a l l d p t r tor<>r7 / s a v e d p t t i u r<> • u id 1.7 c l r a / c l e a r A m o v e a , @ a + d p t r / r e a d dpt: i a d d i . Cent enl . a n d
1 0 9
e d i t 2 :
a c a l ] p h e x d.i s p ! ,<y mov d p t r , # p r o m p t 1 o l o a d dpt i v; i • h :!!«•"• s : a c a ] 1 p e s t . r h d i s p l a y m o ; : . - ' i .<• ;•••!
a c a l 1 g h e x ,.|ol now h'•:: •• a 1 'i<• j b p s w . 5 , e d i ! 2 jump 1 '• p . ; . ' '• • j c e d i 12 a 1 • i ' m i l • i t • i • r v a c a l . ] i fit 71 o d p t i 1 oa 1 1 smar 1 wr: wr i t " ' ••••! i a c a l 1 n e w ! i n o . ,ut p ip .) i|' ' ' a c a l l r 6 t . ' 7 t o d p t i . 1 , . r : ! . ,, , . , | p : , , , , ; > . i n o d p t r p o i n t t • •)!•• !!•:•:' a c a 1. 1 dpi. r I or in 7 r . a • dpt t is: t '. u>' a j m p e d i t . 1 l o o p 1 ..•,(•!•. mov . dpi: r , ( fed] 1 s 2 l o a d d p i , ' i; a j mp p e s t i. h d i S| • 1 a y ! i " " : : : ' ! !•
; d i r r o u t i n e maps t h e d i s p l a y !• ; i n t h e memory t o t h e d i s p l a y , it s / s e a r c h i n g f o r h e a d e r s . .11 d i s p 1 a y s ; f i n d s . I t c o n t i n u e s d o i n g t h i s for d i r :
mov d p t r , ttprompl '* a c a l 1 p e s ft h mov t 0 , 112 1
d i r O a : a c a l 1 space? d j n z rO, d i r O a ;mov d p t r , II p r o m p t 9b a c a l l p e s t r h mov d p h , tt(bmem > - 8)
d i r l : a c a i 1 f i n d j <-• d i r 2
d i r e n d : a jmp n e w ] i n e d i r 2 :
a c a l I d s p a e e mov d p i , in 2 a c a ] 1 p s t r mov d p i , 1(32 a c a . l 1 1 e n s t r mov
] , -a , # 3 3
c i. j. s u b b a , rO mov rC), a mov a , # • '
d i r 3 : aca . l 1. c o u t d j n z r O , d i r 3 mov d p i , # 0 a c a l l p h e x l 6 mov rO, # 6 mov a , # ' •
d i r 4 : a c a ] 1 c o u I d j n z rO, d i r 4 mov d p i , «4 c l r a m o v e • a , l ? a + d p t r mov L-2, d p h
d i r 5 : c j n e a , # 2 5 4 , d i r . M . mov d p t r , # l y p e l s j m p d i r 7
d i r 5 b : c j n e a , # 2 5 3 , d i r ' . c d i r 5 b b : mov dpt. r , I l t y p e 4
1 •-•••'!•! : • : ' • ! , ! • :
s b y d i s p l a y in
; p o : „ , i r - s s / ; d i s p l a y :'">ss v ; ! • - • ' ) t <• • = • a =
/'•lit put 1 S p V / I c . p b:<<-'-. i t i ,M"'' i nt • ••• / d.i s p 1 .ay rv •:=." c / l o a d dph w i t h / f i n d ho a !-.. / pii'.ip i I ho. . . | c i
r d i s p ' iy ,• / p o j nt ' • • 1 r d i s p l a y it / p o i n t : ! in 1 ! : b - , l ;,
tbt I n
; | . . = , . | s p a - - i r p / d i s p l a y s p a - - o / l o o p t o d i s p l a y / p o i n t t o h e a d o t / d i s p l a y t h e h'>.-/ ! e a I c o u n t ° i / 1o;vl ' o d i s p l , \ / d i s p l i y s p a c -/ 1 Oi >p (• t i !!•/'•.•< ; p o i n\ '. • • \ i i'.t s • / c J ' v u : A / l o a d i t s t y p o / s a v e t h i s , / jump i t <:••'. !• t / p o i n t ! .. ..;:> . . . / inrip t o I ; . •• p.-/ jui-ip i ! ti' ' H t / r •' : ;'• '• • • .•• • . i ' '
I 10
s jmp d i r ? ; jump t o i j 7 1 u-! ok a i r 5c:: c j n e ' a , 9 3 : . , d i r l . d ; j u m p i f no t 2 "Mi
mov d p t r , # t : y p o 2 / p o i n t t o o r d i n a l y p i o q i n n 1
s jmp d i r 7 ; jump t o ,i j t / i..<» 1, ,w C i i r 5 d : e j n e a , I l 2 i ' i , d i r . ' j e ; j u m p i f not
s j m p dLr:r>l.i. ; jituip t o d i i M>b d i r b e : d i r 6 : mov dpt . r , II t y p e 5 / p o i n t ' t o ? ? ? d i r V : • a e a l i p e s t r li / p r i n t , o u t t h e t y p e
mov d p i ) , r.2 / ( j o b a r k a n d f i n d t h e n e x t one a c a l ! n e w l i i . e / d i s p l a y n e w l i n o mov a , # ( e m e m ">> 8 ) / . l o a d e n d m e m o r y hin.l i b y t o c j n e a , d p h , d i rH / d i d we j u s t d i s p l a y t h e l a s t "M a j m p d i i. e n d / j u m p t o d i r e n d
d i r 8 : i n c d p h " / I n c r e m e n t , d p h mov a , dpi i / m o v e d p h 1 " A w i t h emem h i g h b y ! c j n e a , !l ( (omomH.) 8 ) ft 2 5 5 , cl.irl. / j u m p i t n e t e q u a l a j m p d i r . e n d / j u m p t o d.i r e n d
/ t y p e l = E x t Command z t y p e 4 = S t a r t u p ; t y p e 2 = P r o g r a m • / t y p e 5 = ? ? ?
/ r u n s u b r o u t i n e s e a r c h e s f i l e h e a d e r s . When i t . f i n d a l . ' i i r i -proqram, i t p r i n t s i t s / n a m e o n t h e s c r e e n i n a f o r m a t e d l a y o u t . When i t i s f i n i s h e d , i t . a s k s f o r t h e / c h o i c e t o b e e n t e r e d a m o n g t h e l i s t . I f e s c . i s e n t e r e d t h e p r o g r a m r e t u r n / c o n t r o l t o t h e m e n u , o t h e r w i s e t h e i n p u t i s m a t c h e d w i t h i n s o m e r a n g e s t o c h e c k / i t ' s c o m p l i a n c e w i t h c h o i c e l i s t . When i t i s o k a y t h e h e a d e r s w e r e s e a r c h e d f o r / t h e r u n - p r o g r a m s i n s e q u e n c e . When t h e s e a r c h i s s u c c e s s f u l , t h e f u n c t i o n w i l l / p a s s / b y t e r u n :
run?.:
r u n 2 b :
t h e a d d r e s s t o a n o t h e r l e n g t h a n d j u m p t o t h e
s u b r o u t i n e (at . t h e e n d ) , s p e c i f i e d a d d r e s s .
w h i c h w i l l m a k e a s t a c k of n
r u n 3 :
a c a l 1 n e w l i n o 2 / d i s p l a y a .1 i n o mov r:2, «2V> / f i r s t , p r 1 nl t h e m e n u , e o u n l i t e m : ; mov d p t t , IIbmem / l o a d menioi y b e q i n i n q d e c d p h / d e c r e m e n t d p h i n c d p h / i n c r e m e n t d p h inov a , d p h / m o v e d p h t o A t o c o m p a r e w i t h emein h i g h b y t c j n e a , # ( (emem-i I ) ' s > 8) & 2 5 r i , i u n 2 b / d i d w i e a c h t h e e n d s j m p , r i i n 3 / j u m p i f we r e a c h e d e n d a c a l l f i n d / f i n d h e a d e r j n c r u n 3 / h a v e we f o u n d thorn a l l ? mov d p 1 , If '1 / p o i n t t o f i g u r e out i t s t y p o c l r a / c l e a r A m o v e a , O a t d p t v / l o a d i t s t y p e o r l a , HOOOOOOllb / c h e c k s p e c i f i e i |>y o r l a n d e p l c p l a / c o m p l e m e n t A
j z r u n 2 / i f z e r o , t h i s o n e d o e s n ' t r u n . . . f i n d n e x t . a c a l l d s p a c e / d i s p l a y d o u b l e s p a c e i n c r 2 / i n c r e a s e H o . o f s u c c e s s f u l h e a d e r s mov a , # ' A ' / . l o a d c l i a r . a c t . e r t o b e u s e d a s 1 i n e - m i m b o r o a d d a , r 2 / c h a n g e l i n e - c h a r a c t or s a c a l . 1 c o u t . s p / d i s p l a y J i n e - e h a r a o ! o i a n d s p a ' : " a c a l l d a s h s p / d i s p l a y d a s h a n d s p a c e mov
d p i , 1 3 2
/ p o i n t t o h e a d e r n a m e a c a l l p s t r / d i s p l a y i t a c a l l n e w l i n e / d i s p l a y new l i n e a j m p r u n 2 / b a c k t o c o n t i n u e f i n d j o b c j n e r 2 , # 2 5 5 , r u n 4 / a r e t h e r e a n y m o r e t o r u n ? Jump i f y e s
mov d p ! t , (pr<•nipt'•> / p o i n t I n »!•'.-sa-!•' >• i . o O i i . i t h e • a jmp p e s t 1 It / d i s p l a y i l till IV > Ipt i , llpr empt. ', ; a s k 1 l i e 1 > i q q u e s t i.. n ! a o a l 1 pc.-:;tr h / d i s p l a y it mov a , I ' A ' / l o a d A c h a r a d e ! a s ( . - . t o t . | t a n q e i
a c a 1J c o u t / d l a p 1 a y i t a c a i J d a s l i / d i s p l a y d a s h mov a , # ' A ' / l o a d A t o a d d t o ,2, a s ( e n d o f
r a n q o ) acid a , r.'/. / a d d r 2 a c a l 1 C O I l t . / d i s p l a y a d d i t i o n r e s u l t mov d p t r , If p r o m p t ' I / p o i n t t .o m e s s a g e r » . | a d i n q t h e c l i O j C O
a e a l l p e s t r It / d i s p t a y i 1
a c a l 1 c i n t i l t . e t h , - q e t i n p u t --hat a c t . o t
c i n o a , 1127, r u n l a a / jump i t n o t • F. : "c • a j m p n e w l i n o / w h e n e s c jump a n d f t i i n i ' • • menu mov r 3 , a / s a v e c h a t a e t o r i n i ' mov a , #31 / l o a d A w i t It 3 1 c l r c ; o . l .ea i , -at r y l o t I e s l s u b b a , i 2 / s u b t t a e i Me .-.(' i | .>a..lot r. ( s - a o i e 1 <: 1 1 c . i i t y 1
mov a , r 3 / m o v e e h a i a c t o r i n f o A a g a i n j c run'I a / jump i f h e a d e r s m o i e t h a n 3." a c a 11 u p p e r / c h a n g e c h a r a c t e r t o u p p o i c a s e a c a l . 1 e o u t / d i s p l a y e h n r a o t e i mov r 3 , a
/ s a v e i n rI a g a i n a c a . l .1 n e w ! i n " / d i s p l a y new | i h p
t o s e e i f i t ' s u n d e r 32 , i f s o c o n v e r t t o u p p e r c a s e . mov a , t-3 / l o a d e h a i a o t o i i n f o A a d d a , !! (2!iCi - ' A ' ) / c o n v e r t c h a t i n t o a N o . s l a r t i n q f i ' o m ".(it•• j n c r u n 4 / j u m p b a c k , i f n o c a r r y ( t y p e d l.<-• s s t h a n ' A ' ) m o v • r 3 , a / l o a d 1.3 w i t h t h e N o . t y p e d mov a , i;2 / l o a d A w i t h N o . o f h e a d e r s c l r c / c l e a r c a r r y t o r I e s l s u b b a , r 3 / s u b t r a c t 1 l i e N o . t y p e d f i n m N o . o f h e a d e r ; ! j c r u n 4 / j u m p 1J c a t t y ( M o . t y p e d m o r e t h a n max t a n g o ) i n c t .3 / i n c r e m e n t - N o . t y p e d mov d p t r , II b mem / l o a d bmem 1 o 1 i n d t h e h e a d e i d e c d p h / d e c r e m e n t ( o i a d j u s t m e n t i n c d p h / j n c r e m o n t . d p h m o v a , d p h / m o v e dpli t o A t o c o m p a r e i t w i t h emem h i g h b y t e c j n e a , # ( ( emend 1 ) > •> 8 ) & 25)5 , r u u 5 b / jump i f n o t r e . a e h t h e e n d s j m p r u n 8 / e l s e j u m p t o e n d a c a l 1 f i n d / f i n d h e a d e r j n c r u n B / S h o u l d n ' t e v e r d o t h i s j u m p ! mov d p i , #4 / p o i n t , t o f . i q u r e o u t i t s t y p e c l r a / c l e a r . A m o v e a , @a-»dptr / l o a d i t s t y p e o r l a , # 0 0 0 0 0 0 1 l b / c h e c k s p e c i f i e r b y o r 1 a n d cp.l. c p l a / c o m p l e m e n t A j z run! i / i f z e r o , t h i . s o n e d o e s n ' t " r u n . . . f i n d n o y t d j n z r .3 , run.') / c o u n t t i l we f i n d t h e o n e t h e y v; •ml a n a 11 n e w l i n e / d i s p l a y new 1 i n o m o v d p i , # 6 4 / p o i n t t .o h e a d e r a j m p j u m p doi.(• / j u m p 1 " p r o c e s s ( i n t h e i t imp- f ui > • •t i o n )
r e t / r e t u r n
/ h e l p r o u t i n e : s e n v o k e d f r o m t h e m e n u . I t d i s p l a y s h e l p t e x t a n d j u m p u> lie.lpX t o / g i v e ' i n f o r m a t i o n a b o u t t h e h e l p . h e l p :
mov d p t r , # l i e l p i t x t . / p o i n t t o m e s s a q e a c a l l p c s t r : h / d i s p l a y i t
112
h e l p .
h e l p 3 :
h e l p 3 a :
h e l p 4 :
mov r 4 , l l h o l p k e y ; 1 o . i d • -i w i i ii Hi • • p k - y
mov d p t r , K i i e l p omd ; pi > • lit 1 o l l i e ; j ) j , J . . | e a c a l l h e 1 p 2 ; c. 11 1 l ie ] p. ; rmiu ui i w mov r 4 , # d i L k e y / m o v d p t r , Kd'ir cmd a c a l 1 h e l p 2 mov r 4 , l i n n k e y ; m o v d p t r , 11 r u n cmd a c a l .1 I.e.l.p2 mov r:4, H d n l d k e y / l o a d 1.4 w i t h h e l p I f y ; mov d p f r , II d o I d cmd ; p e i n t t e m e s s a g e a o a 11 l i e 1 p 2 ; c a 1 1 l i e ] p / s u b t mi l i»»* • inov r-1, II u p Id k e y ; mov d p t r , Hupl<l <:iud a c a .1.1 h e l p 2 niov r 4 , l l n l o e k e y / m o v d p t r , l l n l o c cni'l a c a . l 1 , h e l p 2 mov r-l , f j i i inp k e y ; 1 o a d i 4 w i 1 h h e 1 p k e y ; m o v d p f r , 1! iump emd ; p o i.nl t o llie;;.<:.|r.|,'. a c a l l h o l p 2 ; e a l l help..' ' s u l u o u t i n n mov t :4 , Bdunip k e y ; mov dpt . r , M u m p ctnd a c a 1.1 h e l p 2 mov r 4 . Hi nt in k e y ; m o v • Ipt r , I! i n 1 in cim! a c a l l h e ! p 2 mov r 4 , fiedlt k e y ; t o a d i 4 w i t h h e l p k e y ; mov d p t r , l i ed i t ci'.id ; p o i nl t n m e s s a g e a c a . 1 1 h e l p 2 ; c a l l I i e l p 2 s u b r o u t i n e I I I O V r 4 , # e . ! t : m _ k o y ; m o v d p t r , Hc l r in cmd a c a . l 1 h e l P 2 I I I O V a , A l ia s H a s h
j z h e l p s k e r i m mov r 4 , l l e i . f r key / l o a d r 4 v/i t h h e l p lie-. ; m o v d p t r , l l e r f r cmd / p o i n t t o m e s s a g e a c a l 1 i ie . l .p2 / c a l l l i e l . p 2 s u l . r o u t , i !)•
e r f m : m o v d p t r , l l h e l p 2 t . x t . / p o i n t t o h e l p 2 t x t a c a l l p e s t r h ,'tl i s p l a y m e s s a g e mov d p t r , llbroem j n u i v o tmietn 1 o dp i t ! • . s e „ , , : h a c a l 1 f i n d / f i rut h e a d e i j n c h e l p 4 / j iimp i ! n e h e a ' !• •! I • •und
niov d p i , #4 / p o i nt' t <> 1 i g u r o out i t s t y p e c l r a ; c 1 o a t A
m o v e a , @ a + d p t r / l o a d i t s t y p e c j n e a , II2•SI, h e l p 3 a / j u m p i f l i e l KK ( e x t command i
a c a l l d s p a e e / d i s p l a y d o u b l e s p a c e i n c d p ] / i n c r e m e n t ' , d p i c l r a / c l e a r A m o v e a , @a t-dpt.r / m o v e s p e c i f i e r i n t o A a c a l l c o u t . / d i sp.l a y S ) >ee i t i e r a c a l i d a s h s p / d i s p l a y d a s h a n d s p a c e m o v d p i , # 3 2 / p o i n t t o h e a d e r n a m e a c a 1 1 p s t r / d i s p l a y i t a c a l l n e w l i n e / d i s p l a y a n e w l i n o i n c d p h / i n c r e m e n t d p h
raov • a , d p h / m o v e d p h t o A t o ceinpa.t e i t . wi f h eraem h i g h c j n e a , # ( (emend-1) » 8 ) « 2 5 ' j , h e J p 3 / jump I f n o t r e a c h t h e e n d
; he.! p 2 p r i n t ••••• ;1 n d p t i ) i n . h e l p ? :
a c a l 1 mov a c a l 1 a c a l l a c a 1.1 a j m p
i j s t a n . la i d I i n o s o f !K • p o t a t o command a b o v e .
' P .
d s p a o o a , r 4 c o u t d a s h s p p c s t r h n e w l i n e
; d i s p l a y d< 'ul • I e s p a c e / l o a d A w i t h h e l p k e y / d i s p l a y h e l p k e y / d i s p l a y d a s h a n d s p a c e / d i s p l a y m e s s a g e p o i n t ' - " i n d p / d i s p l a y new l i n e a n d r » t u r n t o
• r ak I e p
u p l d - r o u t i n e u p l o a d s h e x f i l e s t o t h e s e r i a l p o r t . Hoy. f i l e i s a n u m b e r •< r e c o r d s t e r m i n a t e d b y CR a n d I..F. A d a t a r e c o r d e x a m p l e i s a s t o l i o w s : -
: x x y y y y O O a n b b c c . d d e e liimZ!'. w h e r e : S t a r t o f r e c o r d
x x N o . o f d a t a b y t e ( t w o h e x d i g i t s ) y y y y S t a r t i n g a d d r e s s o f t h e l e c ' U ' l (4 h e x d i g i t s ) 0 0 R e c o r d t y o e [ j o . f o r h e x f i l e a n b b c e d d o e . . . . m m [ lex d a t a ( t w o h e x d i q . i l n u m b e r s . , e q u a l x x ) 7,'L C h e c k s u m v a l u e o f a l l d a t a r e c o r d d i g i t s
F i r s t l y u p l d g e t s t h e b e g i n n i n g a d d r e s s i n r 3 / r 2 ( r 2 " l s b ) , m i d t h e f i n a l
•t d a t a
i n r 5 / r 4 ( r 4 - l s b ) , a n d p r i n t s t h e m out . f r o m t h e s p e e d T i e d a d d r e s s , p r o c e s s i t a b o v e f o r m .
b e s i d e some m e s s a g e s . a n d s e n d s i I r. t h e
T h e n i t r e a d s • • r i a l p o t t i n
:ldr e s s d a t a t h *
a c a 1 1 mov a c a l l mov a c a 11 mov a c a 11 / m o v a e a i 1 mov a c a l 1. mov a c a l l a c a l 1
. -Need t o a d j u : : mov mov i n c mov mov mov a c a l l a c a l l c j n e a j m p
u p l d 2 e : a c a . l . l mov mov
u p l d . 3 : c l r mov s u b b mov mov s u b b
g e t mem d p t r , H u p l d s p c s t r h a , r:3~' p h e x a , r 2 phox
d p t . r , p e s I. r
p in
Sup I d s - !
a , r ' l p h e x n e w l i no e n d l o c a t i o n
d p h , t-5 d p i , r-1 d p t r r 4 , d p i t . S , d p h d p t . r , I Iprompt7 p c s t r h e i n • i , 1127, u p l d . V a b o r t i t new 1 1 n e d p i , i 2
d p h , i 3
a , rA a , d p i r?. , a a , r 5 a , dph
!in I i m i a. I d i . )
. b y l e t o t b y t r- t o A
dpi-,
/ g e t command l o c a l i o i ir; / p o i n t t o m e s s a g e ( . ' d a r t i n g a d i / d i s p l a y i t / m o v e h i g h s t a r l i n g a d d r . . b y t e / d i s p l a y l : / m o v e l o w s t a r t i n g a d d i . b y l • / d i s p I a y i t / p o i n t t o m e s s a g e / • l i s p I a y i l / m o v e h i g h e n d i n g ad- i i / d i sp.l a y i t / m o v e low ' - n d i n g , idd i . / d i . sp I a y i ! / d i s p l a y new l i n e
b y I... / m a k e dpi .r . Move rS t o / m o v e r ' l t o d p i / i n c r e m e n t d p t i / s a v e d p t r . . , m o v e d p i t o r-'l / m o v e d p h t o r 5 / p o i n t t o m e s s a g e / d i s p l a y i t . / i n p u t a n y r e s p o n s e / j u m p i l 11-'l e s c a p e / j u m p t o a l ' o i t a n d u M u r n t / o u t p u t new I i n e / m a k e d p t . i . , m o v e i A t.o / m o v e r < t o d p h / c l e a r c
/ m o v e t o A " e n d i n g a d d r . / s u b t r a c t , " s t a r t i n g a d d i / m o v e r e s t t o r 2 / m o v e t o A " e n d i n n a d d r . / s u b t r a c t , " e n d i n g a d d r .
jr.". U p i . P l ; i:itn}• i ! • . . " . < . 1 • • i i , ' in -n i. • i,•••::' i 1 .
mov a , t. / ; m o v e i e w e i 1 >y i . o i l 1 | . . .-. A
i "• l i p i d ' / ; jump i ' i l l • l<>iie a til
i, f i l l 1001)01. ; b e c a i i s i . • d a ! .i man i pu
t i l e d i n 11> I >yt.e p a c k a t f . j n z u p . i d 4 ; i 1 >.. 16 l e f t , t h e n d o n e x t 16 s j m p l i p i d * . / o t h e r w i s e j u s t j i n i
s l i i t off IIIOV r.z, m<> / l o a d r 2 w i t h t h e No. . o f d a t a 1 •• u p l o a d
lUOV a , # • : '
/ b o u i n t h e I i tie a c a I : >> 11 / d i s p l a y ( : )
inov a , rZ / l o a d A w i t h N o . o i d a t a t o u p l o a
i«i • l e a l 1 P h e x
/ d i s p l a y N o . o f d-it a
! . y l . e s f • > u p l o a d a c a l l p h e x 1 f. / d i s p 1 a y m e m o i y 1 o c a t i o n mov a , d p h / m a k e e h o e k s s u m , inov.
• h i ' i h e i i«ld> . b y l '• t •• -\ a d d a , d p i / a d d l o w e r a d f i i . b y l • -a d d a , i 2
/ a d d N o . . . ! d i l a 1 e . l p l o . , . 1
111' IV 1 i , .1 / s l u r e . .||< •. -(:•-! mi i n 1
>
c l r a / c l e a r A a c a l 1 1 >: / d i s p l a y 0 ( 1 (.-...).• I',.
i i c . i I yp. : e.l r a / c l e a r A m o v e a , Wa • • Ipl i
/ pul a d Ii e s s 1 • i. m i i oi . o. ,.., • j |,! a c a l l p h e x / d i s p l a y e a c h b y t e acid a , r 3 / u p d a t e c h e c s u m
111' IV i.3, a
/ s a v e c h e c k s u m i n r 3 i n c d p t r : / p o i n t " t o nex t : a d d r . d j n z r 2 , u p l d O / d e c ; emeu l . a n d j u m p : s i . n c e inoi •.• ; . , •I .es n e e d i n mov a , r 3 / p r e p a r e c h e c k s u m I'm o u t put o p ] a ; c o m p i emenl ' c h e c k s ' i i n Inc. a / i n e r e m e n l c o m p l e m e n t { o l i o ' s • • mil • ' 1 en ieni ) a c a l l p h e x / d i s p L a y c h e c k s u m a c a l l t i e w l i r i o / d i s p l a y new l i n o a c a l l l i n e d l y
/ d e l a y s o m e t i m e a c a l l e s c
/ c h e c k to s e e if e:.;c. i p e i s p e n . f i n
j n c u p l d 3 / . i f n o e s c p r e s s e d d.
• i;e>:t ro i 'o i ' i
1 1 i l i e s j m p a b o x 1 i i
/ jump lr . db.it i i I )i< a e i s e s c a p e mov a , / m o v e ( : ) t o A ( i . e e o i d 1 i.ne s t a r ' . i a e a l .1 c e n t : / d i s p l a y ( : 1 c l r a / c l e a r A a c a l l p h e x / d i s p l a y z e r o s a c a l l p h e x * it it a c a l l p h e x i it i i i n c . o ; i n c r e i n e n l A a c a l 1. p h e x / d i s p l a y .1 m o v a , »2W.>
/ . l o a d A wi th I T a c a 1 1 p h e x / d i s p l a y KP" a imp n e w 1 i ii"Z
/ d i s p l a y new i i n e . m d r e t u r n to s
l y d e l a y s b e t w e e n 1 i n e w h i l e u p 1 o.i'i i i i . j , s o !
he !0.-ejy.!Hcf ho.sl c , n b<
u p l d R :
/ ( i . e . m o s t w i n d o w s s o l ' t w a r o ) . I d t i c d e l a y v a l u e
; i n i t i a l i z a t . i e n .
l i n e d l y :
i s d e t e r m i n e d b y o q u d u r i t m
mov a , r i l / m o v e r fi e m i t o n !
! o A f ei : - I ' - ' i i i ' i p u s h a e c ; s a v e i i ) e.>nl . 'iii inov i 0 , 1! 1 m o d e l a y ' 2 / . l o a d rO w i t h d e l a y 1 a c t o i i. i :•'!
d 2 : i i i o v a , UiO / g e t b a u d r a t e c i • l i s t d 3 : i n c
n o p n o p
• a / i n c r e m e n t thO / n o o p e r a t i o n * / . i i
j n z l i n e d ' / j u m p b a c k i | A n< • . - .o io d j n z rO, T i n e & , : / . . l e c i e inenf a n d j u m p b a c k i f d e l a y p o p a c c / p o p A t o r e s t o r e rO
; g e t mem s u l i c o n t i i i e g « l . s I h o b e g i n a n d e n d i o c o i o n s l o t .: ) <-v; c o m m a n d s . | t ; E S C o r iin i n p u t 'ni l " i '> ( i , i.l p e p s i t ' s »wn l o t m i» a n d ' • • ' l i e M"ii';. . • r o u t i n e i s c a l l e d b y e.i rm r o u t i n e a n d i : o i l ; : ! , - v i i i i un ••! i o n s < m i d i n o i I." / f o r e n t e r i n g i d d r o s s o . ge t . mem:
a c a ! .1 n o w ] i.iie>' ; d i s p 1 . iy I wo 1 i ip>s till u/ • I p i . r , S b e g s t i ; p o i n l t o " a s k i n g s l a t ! j nq a d . l t . m e s s a g e " a .-a 1 i p c s t r ii ; d i s p l a y m e s s a g e a o a J .1. g t i e x 11. / e n t e r t h e s l a i i i n g a d d i j c p o p i l ; •jtmip i l c a r r y s o l (K.';.'.'. i s p . e s s e . ! )
p s w . '>, o o p i I ; jump i t 11 a g s e t (i -R. w i 1 h hi 1 ! i g u I e • -n t e i. e-1', p u s h , ip l ,
; s a v e s t a i 1. i 1 a d d i . p u s l i d p i ; s a v e , i p | a c a 11. new.l i r i o ; d i s p 1 a y now 1 i n o mov c i p t r , Dot id s t r ; p o i n t t o " a s k i n g e n d i n g addi . . m e s s a g e " a c a 1.1 p c s t r h ; d i s p 1. a y mo s s a g e a c a l . 1 q h e x l 6 / e n t e r t h e e n d i n g a d d i .
111. IV r!>, d p h / t r a n s f e r e n d i n g a d d r . t • r S a n d i 'i mov r l , d p i /1 r a n s t o r d p i t '> v l p o p a c c / p o p t o i e s l •>i o s 1.art i net a d d i . ( l ow b y t e ) i n !•'•' mov 12, a /move. ! o r>'
POP a c e /pop . t o r o s l o i o s i i r r i n g a d d t . ( h i g h by t e ) i u i mov r.<, a / m o v e |. o i l
j c p o p i t. / j u m p i •' c a r i y s e t (h'.:~-C i s p | . - S S e . . i )
j b p s w . 5 , p o p i t / j u m p i f f l a g s e t (CR wi . •hour f i g u r e e n t e r e d ) a j m p n e w .11 n e / d i s p l . y new l i n o a n d r e t i r n t o s t a c k p o i n t e r p o p a c c / p o p s t o c a n c e l pit.'-lis p o p a c c .
t : a e a . l 1 n e w 1 i t to / d i s | i 1 a y new I i n.> mov d p t r , i l a b o i t / p o i n t t o a b o r t , m e s s a g e a j m p p c s t . r It / d i s p l a y i t -
c l r m s u b r o u t i ; a n d t h e c l e a r , a l l t h e r a n g e a d d r e s s .
c l r m :
ie. c l e a r s a m e m o r y n i c e i s c a r r i e d b y
s t a r t i n g f r o m t h e
a r e a . T h e r a n g e i s o b t a i n e d b y g e t iu-mi; s u b r o i l , i n o t h e s m a i l : wr s u b r o u t i n e . T h e s u b r o u t i n e w i l l s c a n i o w o t a d d r e s s a m i g o i n g u p w a r d I i I I t h e e n d
c l r m 2 :
c l r m 3 :
clrm<l:
a c a l 1 g e t mem / g e t s t a r t : a n d e n d a d d r e s s e s mov • d p t . r , I n u r e / p o i n t t o m e s s a g e a s k i n g d e l e t e . . Y o r e l s e a c a l i p c s t r h / d i s p l a y i t a c a l l c i n _ f i l t e r _ h / e n t e r Y o r e l s e a c a l l u p p e r / c h a n g e c h a r a c t e r i.o u p p e r c a s e c j n e a , f t ' Y ' , a b o r t i t / j u m p i l n o t Y t o a b o r t a c a l l n e w l i n e ? . / . i f Y d i s p l a y n e w l i n e mov d p h , r 3 / p o i n t t o a d d r . , m o v e s t a r t i n g a d d r . h i g h t o dpi i m o v d p 1 , r 2 / m o v e s t . a r t i n g a d d i . l o w b y t e t o d p i c l r a / c l e a r A l c a l l s m a r t wr / a c t u a l c l e a r i n g m o v a , r 5 / m o v e e n d i n g a d d r . h i g h b y t e t.o A c j n e a , d p h , c l r m l / j u m p b a c k i f d p h not: e q u a l t o e n d i n g h i g h b y t e mov a , r4 / m o v e e n d i n g a d d r . l o w b y t e t o A c j n e a , d p ) , c l r m ' l / j u m p h a c k if: not. e g t i . i l l o e n d i n g l o w b y ! " r e t ; r e t u r n i n c d p t r / i n c r e m e n t d p i i s j m p c l n i l ! / too)., b a c k
; n i o e subi .o i . i t i no p i • >ni|'i t o t h e u s e r l o e i , t<; i i | , , . new 1 • •<• i L i . a i . 1! n • .1' !' i I ' • s a vi • / e n t e r o d o r F .P c w a s p i e s s c d i l l e s u b r o u t i n e i s a b o r t e d .
n l o c : mov d p t r , 11 r t e m p i 6 / p o i n t t o d i s p l a y m o s s a - v a o a i I p e s t i . Ii / d i s p l a y i t . a on 11 g h e x l '"• / e n t e r h e x a I'll . j c abort..:.; / j u m p t o a b o r t i f <:''•. p i . - s s o d w i t h ' . l i t 1! j b p s w . 5 , a b o r t ; ' / j u m p t o a b o r t i f KSC i s p r e s s e d a c a l l d p t r t o i ( - . r 7 / c h a n g e dp i r r e t u r n e d b y g h e x If. t< r t.. H1..I t / a j m p r i e w l i n o / / d i s p l a y new l i n e a n d r e t u r n l... menu
/ e r f r s u b r o u t i n e p r o m p t - s t o t h e u s e r i n f o r m a t i o n a b o u t e r a s i n g s o m e I t e a I f t h e / u s e r e n t e r e d >Y' , o i . 1 i • l a s e . s 1 l a s h a n d i o i a , a n d - l i p i a y s lues.- 'ag.- a l i o il •• u s u r e • ; a b o u r e r r o r . 1 t. u s e s e rn 1 1 f o r e r a s u r e . e r f r :
a o a i .1 n o w ! i ne>' / d i sp.l a y t wo 1 i n e s i n . ' V d p t ) , if e i J: r cind / p o i n t t o d i s p l a y i n . - s s . g e a c a 1.1 p e s t r Ii ; d i sp.l a y 1 f mov a , # \ ' / p r e p a r e t o d i s p l a y ' , ' a c a l 1 c o u t s p / d i s p l a y a n d s p a c e mov d p t r , ' ilr u r e / p o i n t I . , d i s p l a y m e s s a g e a c a l i
p e s t t h / d i s p l a y it
a c a l 1 c i n f i l l e r ! . / g e l . i n p u t V o j " i s . - -a e a l 1 u p p e r / c o n v e r t t o u p p e r c a s e O j n o • i , « ' Y \ , i b c i l. i I / jump i t not Y t o a b o r < a e a i l ni'-wl j ne>' / d i s p l a y donbl<> nev.' l i n e s 1 o a 1 1 e r a 1 1 / e r a s e . i l l ( f l a s h a n d I><H\) mov d p t r , Ifoi f r . .k / p o i n t t o d i s p l a y m e s s a g e - p i e O t f l . eiK.i / j u m p i ! e i . ' i l l s u e . -edo» 1 ( I ' - f l ) mov dpt . i , l ie i f r er .r / p o i n t t o d i s p l a y m e s s a g e i f M i l e d (i; 1)
e r f r e n d : a j m p p e s t 1 11 / d i s p i n y iI
; i n t in d i s p l a y s t h e c e n t .111 o | I 'tt i n t e r n a l u d d t e - : s 1 • "-.it i o n s . . ' ! o i u • r, i ••• • it-..-
/ d i s p l a y i n V ! l u e s , e a :h o n e s h o w i n g 1 i> l o c a l i o n c . n l e n i . | l c n i . i o • -.:il I in
/ d i s p l a y i n t w . . l o o p s o ie l e i . I i l ies . an. 1 ' h- • •. •! IH - U 1 "i I i am' •.
i n t in: a n a l 1 new I i n e /d.i s p 1 a y new 1 i n o mov i t ) , 110 / l o a d r . e r o i n i l l (1 n i t i a 1. i r e c o u n t "i- l
i n t m ? : a c a l 1 n e w l i n e / d i s p l a y now 1 i l i e c j n e i :0 , #0xft t't, i n I'nit
/ j u m p i f c o u n t e r o o u t e u i i s not. 12 H a imp n e w ! i n e / o t h e r w i s e d i s p l a y n e w l i n e a n d r e t u r n t o menu
i n t m ' i : mov a , ri) / m o v e c o u n t e r c e n t c u t t o A a c a . l I p h e x / d i s p l a y e o u n t . e : c o n t e n t ( o n c e e a - -h H-. t iiii.--) mov a , # ' : • / m o v e ' : ' t o A l o d i s p l a y a c n l l c o u t / d i s p l a y 1 : '
i n tan4 : a c a . l 1. s p a c e / d i s p l a y s p a c e mov a , (•!) ti / m o v e c o n l ou t o f a d - l r . i n ' - o u u i e r t i • A a c a 1 1 p h e x / d i s p l a y addr. . c o n t e n t i n e rO / i i i c r e i n e n t c o u n t o r mov a , rO / m o v e c o u n t o r a m i n i l t o A an.l • a , 80000.1 1.111. / m a s k A w i t h I S ( o r g a n i z e e v e r y 1<. i n • • no 1 i n e j n z i n tin A / j u m p if: l i n e n o t f i n i s h e d s j m p i u t m ? / jump f o r a new 1 i n o
Memory Managmenl S u b r o u t i n e s
/ f l a s h w a i t r o u t i n e p o l l s t h e f l a s h com w a i t l o o p i n g u n t i l t h e I l a s h r u m - i s / S t a b l e . DPTK m u s t b e i n i t i a l i z e d w i t h I h'- a d d r e s s t " r e a d .
; s a v o B l o q i s t o r 11< t o q i s t o i i s u s e d ' .
; e l e a i A
/ m o v e w h a t i t d p ' : t - • A
;iimvf> A < - " n t o r . l !.<> l< ( o r ' • ! i ' " " ! ; i , U i i ; i n c i o m e n I !
/ c l e a t A ; m o v o w l i r t l - a l . d p t t i-> A W A I I !
; c c i i i [ M i r - p i m p P a r i : i ! A ' H i d )• n .J o q n .
; w h o n s i a b l e p o p w h i t i s p u s h e d
; to I. u 111
; f l a s h e n r o i U i n o s o n d s t h e f l a s h e n a b l e c o d e s f o r w i i I i i i ' i .
f l a s h e n : mov d o t r , 8 f l a s h o n 1 a d d r / l o a d d p t r wi I h f l a s h o n ' a d d i mov a , II f l a s h , o n l d a t a / . l o a d A w i t h f l a s h o n l d a t a m o v x fctdptr, a / m o v e o n l d a t a t o o;t i a d d i m o v d p f r , II f l a s h e n ? a d d r / l e a d dpt . r w i t h f l a s h on.- a d d i mov a , # f l a s h . . en? , d a t a / l o a d A w i i h M a s h <<\\/ d a t a m o v x ' fldpt l. , a / n o v o o n ? d a ' a t o o n ? a d d i r e t / i e t u r n
/ p r g m r o u t i n e • / r i t e s A r c . i n t o f l a s h memoi y at. !>!TR. '' ' S s o l I : o i i o ; o c o n i s . / c l e a r i f . i t w o r k e d . T h e r o u t i n e u s e s f l a s h en r o u t i n " , i t c a l l s a l s o f l a s h wai / r o u t i n e a f t e r w r i t i n g d a t a . T h e r o u t i n e t h e n chock. - : 1 h o d a t a w r i t t e n l e s e t . . a / r e s e t C f l a g .
p r q m : x c h a , lO / e x c h a n q e d a t i t . o wi t i e w i t h r (I p u s h ;i<-< • / s a v e A p u s h d p i / s a v e d p i p u s h d p h / s a v e d p h a c a 1 1 f l a s h en / d o f i r s t s t e p , e n a b l e w i i f i n q mov d p t r , il f l a s h wr a d d r / l o a d dpt.t w i t h f l a s h wi a d d r mov a , II! l a s h wr d a t a / l o a d A f l a s h wr d a I a m o v x P d p t r , a / . s e n d 1 l a s h wi i l " eommand p o p d p h / i e s t o r e d p h p o p d p i / 1 e s t e t •• d p i mov a , rU / m o v e d a t a t o w t i t e i n ' o a m o v x (•'opta , a / w r i t e 1 h o • la I a a c a l 1 f f a s h w . ! ! ; w.i i t mil . i i i t ' s d< 'tie c l r a / e i e a t A f a l o s t m o v e a , f a r d p t r / i e a d i 1 b a c k e l r <•: / c l e a r C ( a s t l a q l x t 1 a , i l l ;>:•'! A a n d ri)
)~ prgmoti i 1 /'•limp i ! d a t a i s wt i l t e n i .:• -1 ••>) s e t b c ;w!f n i t - •! s e t o : : > • ; ' ' ( i s II iq)
p r q m e n d : p o p a c e ; l e s t o . . - . A x c h a , 1U / • - x c h a n q e d a t a !•> w r i t e <••• i t h r'. ;
t . e t / i e t n r n
/ e r a l l e r a s e s a l l t h e f l a s h rom a n d r e t u r n '.:-] i t t a t l u r e , O n i l o l . . i t c a ! ! .< / e r b l o c k f o r I d o c k e r a s u r e . T h e n i f s c a n s a l l I h e f l a s h a r e a i f t h e y a r e n o t / c o m p l e t e l y d e l e t e d ( d e l e t i o n ••• F'FI t o s i g n a l e i i o r . When d e l e t i o n i s o k a y c---u / o t h e r w i s e c=-.l ( e r r o r ) .
e r a l 1 : mov mov a c a l l mov
e r a l l ? : c l r
d p i r , III i a s h o r ? a. Idi a , ft! l a s h o r ? d a t a o r h l o c k d p t r ' , d b f l a s h a
/ p o i nl t . • I 1 i s I k - i a c M i .
; r e a d a d d r . c o n t e n t / u s e o r b . l o e k t.o s e n d e r a s e a l l . / p o i n t t o b a c k f l a s h -vllr. / e l e a t A
1 1 8
m o v e •-'!51
JNV. IN . IW 'V
c j n o mov c j n o c i r. r e t
u a l J nr i : : pot b cot
i , i't.i t ' lpta-i
o r a l . I --11 •lot. I l , I! i ( o i . l a s l l i I ) >. .15b)
d p i , e i . a . l l , ' a , S ( ( ( o f i - i s h t t 1 ••'- ti} . i , • lp! i , e r..i 1.1..:
;r<-. id l.-i'-t: I l a s h I:K m o r y ; o- -inj •! .-•I:I<-.|. i i . | , | ; c h e c k i I • i ' y. : . - i j I y e i aso.;i ; i ii'-i , |pt ; ; i i i u 7 i - Id k I--woi .-,ddi . |-,. A / l u m p l - i o i : | - b i t M-.I !. i fi i ::l i. •• i
''•'S; / n i ' v e i d k l . i ' i i i . o . iddt . 'i o A / j u m p o a c k i l i l l not f i n i s h ' - . i ; i - J i v i i <•'., (1 i n o » ot u r n ;
; r o t nt n
; .•••>• t >', ( f a I s o r " t u t n j ; i e i 1111!
e r b l o c k i s c a l l a b l e C i m p l e m e n t e d .
e r b i o c k :
i a . s e c-.-mmaii!.!. 1! i s c u l l e d b y o i u l i , a n d i s i n l ' - n d ' - d t . c a l l a b l e f r o m t h e P l a s h m e m o r y <:o t h a t c u s t o m b l o c k ni,,<••<. c o . | r . c a n ),,-.
u s e s f l a s h o n s u b r o n l i n c .
p u s h • ' i C C ; s a v e A c c p u s h d p ] / s a v e d p i p u s h dpi) ; s a v e d p h a e a l 1 f l a s h o n / s e n d ( l a s h ' - t i a l d o . -Out ! mov d p t r , II f I a s h ••u.l a d d r ; p o i n t : t o f l a s h b l k mov a , ft !.I.1.-I1 '.,. ; d a t a ; I I 1 O V H f l a s h e r a s e d i t a m o v x 9dpt r , a / s e n d " i : ; i ; « ! e n a b l e a e a 1 ! t l a s h o n ;s<--nd 1 l a s h e n a b l e s k u l l p o p d p h , - | e : ; ( o | e d p h , d p i a n d A o o
p o p ' d p ] ; r e s t . 01 0 d p i p o p a c e ; t>.--.-il;i>i e A m o v x G d p t . r , a ; s e n d e r a s e command a j m p f i a s l p w.-i i 1 ; jump t o w a i t a n d l o i u i . n 1
/ f i n d s e a r c h e s f o r h e a d e r i n t h e e x t e r n a l memory i d e n t i f i e d b y t h e s e q u e n c e / A 5 , E 5 , E O , A 5 . T h e m e m o r y r a n g e s e a r c h e d i s d e f i n e d b y bmem a n d e m e m . T h e i n p u t / D P T R ' p o i n t i n g t o t h e s t a r t , o f s e a r c h a d d r e s s , ( o n ! y Mob u s e d ) . Output : i s DPTK / l o c a t i o n o f n e x t m o d u l e , c - t ; » | j « h e a d e r f o u n d , >' - c l e . o i f RI-< m o r e h e a d e r s
f i n d :
f i n d 3 :
m o v d p i , fid / p o i n t , t o h e a d e i c l r a / c l e a t A m o v e a , P a - t d p t r / p o i n t , t o 1 s t s p e c i f i e r c j n e a , # 0 x A 5 , f j n d 3 / j u m p i f I s t s p e c i f i e r n o t egu.-I i A'; i n c d p t t : / i n c r e m e n t d p t r c l r a / c l e a r A m o v e a , O a - t d p t r / p o i n t , t o 2 n d s p e c i f i e r . c j n e a , #0xliV->, J i n d < / j u m p i f 2 n d s p e c . i 1 i.oi n o t e q u a ! Kl-i n c d p t r / i n c r e m e n t d p t r c l r • a / c l e a r A m o v e a , W a + d p t r / p o i n t t o 3 r d s p e c i f i e r c j n e a , OOxKO, C i n d 3 / j u m p i f ' r d s p e c . i l r . e e n o r e q u a 1 Kti i n c d p t r / i n c r e m e n t d p t r c l r a / c l e a t : A m o v e a , l - l a ldpf i . / p o i n t t o 4 t h s p e c i f i e r c j n e a , IIOxAS, f in . ;13 / j u m p i f 4 t i i s p o o i f i e - , n o ! o q u a ; A'. mov d p i , *(> / f o u n d o n e h o r n I s e t b ,~ / s e t (' ( f o u n d f b i g s t a t u s } r e t . / r e t 11 • 11
m- IV a , li (emem :•'- 01 / l o a d A w i t h w i n h i (ill a d d i . b y l •> ( f o i e n d c h e c k ) c j n e a , d p h , f i n d ' ! / c o m p a r e a n d jump, i l not. c. g u a l (n- .1 t l ie e n d ; c l r c / c l e a r C ( t h e e n d f l a g s t a t u s )
; r e t u r n ; k e e p o n s e a r c h i n g ; j u m p h»i' - k t o c o n t i n u e s o a r c h i n q
; s m a r t wr r o u t i n e t e s t s t h e p i e s e n c o n f f l a s h I i r s t . II. i n I l a s h w a s f o u n d i ' wi i!< ; t o i h e o r d i n a r y PAM. When a I l a s h w a s f o u n d it c h e c k s t h e a d d r e s s t o b o w r i t t e n ; t o , i s i t i n t h e f l a s h r a n q o o r o u t . When i t . i s i n s i d e i t u s e s prqm s u b j o i n i n • - f / w r i t e i t ' s c o n t e n t s , o t h e r w i s e it w r i t e s i t ' s c o n t e n t i n t h e notrtrt l 1'AM / W r i t i n g t o l - ' i a s h ROM or o r d i n a r y PAM w i l l b e i n d i c a t e d . C n y b i t w i l l i n d i c a t e / s u c c e s s f u l l y w r i t t e n (<. ' - ( ) ) , 0 1 nor w i i f l e n ((' I ) .
smat t w r : p u s h ac< ; s t o i o A p u s h b ; s l o i e l<
mov i>, a ; in- i v o d a l a t o wr i I e i n l . • H ; Do w e h a v e a t l a s h | . « ;
mov a , Uh.-is f l a s h / l . l ' . y e 1 . • c l i o c l ; , i s • l n q e f l a s h : '
j ' ' wr t am ; i i.im) • i ! t i e | | , , s . l i ( h a s f b a c h • , - o t o i
; T h e r e i s a i s h r o m , b u t i s I h i ; 0 ' l d t . e s s i n i t : mov d p h ; m o v e d p h I n A t o < i i e c k , i s i 1 1 h e e n d ? c i n e a , it ( o f l a s h -••-• » ) , i s f 1 3 ; jump i I not e q u a 1 t o f I a s i l e n . 1 i, b l h ! ,y s j m p wr .1 l a s h ; i nmg i f i ! i ••• t l ; o ••ud
i c f l 3 : j n c wr ram ; iump i i dpt . i s • • f l a s h h i q h b y t e c j n e a , 8 ( b f l a s h ••» i s i i '1; 'pimp i I. n o l e q u a i ! o | l a s h b o q . i i r h i g h i s imp w i f l a s h ; jump 1 I i 1 i t h e b o - j i n
i s f l - l : j n c w 1 f l a s h ; iimip i ( d p h i s < b f l a s h h i g h b y t e ; s j m p w r t am
wr r a m : I t l O V a , b ;mov>• . la 1 a 1 o w r i t o i i i I-. b a c k ! o A l U O V X fldpf.r, a ; w r i t '.- t h e v a J n o t o m e m o r y c i r a ; c 1 e a r A m o v e a , '. i d p f r ; 1 e.-,. 1 i t 1 ,.•)(-1 | i . ,n i e . ' - d o m e m o r y
c l r c / c l e a r <\ s u b b 1/ h ; s u b l t a d i . o c h o c k i s i. i w r i f t ' . ' i i
j n :>i:it, tro!: m o v x a t (•'dptr ; r e a d i t b a c k f rom i d a l a m e m o r y c l r e ; c l e a t <: s u b ) ' a , b ; sul.M r a c t t o c h o c k 1 s i I w r i t t e n a q a i n
J * s m w r o k ; lump i f s u c c e s s f u l s m w r b a d : s e t b c / s e t . (.', n o ! s u e . c o s s f u 1
s j m p s m w r x i I ; inmp t o 1 e s t o l e ;> lid 1 e 1 11 t i l
s m w r o k : c l r e / • d e a r C, s u c c e s s f u l l y w r i t t e n s m w r x i t . : p o p b / t e s t e r " !<
p o p ••to ; r e s l o i e A r e t / I o l . in 1,
wr f l a s h : mov a , b / m o v e d a t a 1 o wi i f e i ; i H b a c k 1 o A l e a 1 1 p r q m / w r i f e s A i tit o f 1 a s h iiioiii"iy a t d p t . i p o p b ; 1 e s l o i e I' p o p a e c ; r e s t o r " A r e t ; r e t u i tt
P o w e r - O n I n i t i a l i z a t i o n cod"-
/ p o w e r o n m a k e t h e h a r d w a r e t o b o i n i t i a l i z e d b y I l ie f o l l o w i n g r o u t i n e . D e s c r i p t i o n / o f p o w e r o n r o u t i n e i s e m b e d d e d i n t h e t e x t .
i n t r _ r e t u r n : r e t i
p o w e r o n : c l r mov
a r e , a
/ r e t u r n f r o m i n t e r ! u p t
/ c l e a r A / r e s e t i n t e r n i p t e n a b l e t o g . i s t e i
ir.ov i p , a ; i e s » l . i n ' o i r n p t p r i o r i t y l e q i s i o i moy p s w , l ipsw i n i . l ; i n.i I i a I. i y.e p i o g : im s t i f . u s w u i d
/ C l e a r a n y i n t e r r u p t s t a t u s , j u s t .in c a s e t h e i i rp i put " P i m p 0" i n s v i e t h e i i ; i n t e r r u p t s e r v i c e c o d e .
a c a 1.1 i n f t r o t m n ; c l e a r p t n b a b l e iril e i r i . p l ( c a l l aca. l . 1. int'.r t e t u r n ; c l e a r a g a i n ( e a 1 1 v d d s u b r o u t i l l " ] cp.l i / c o m p l e m e n t A t o r e s e t a 1 i. p. .rt s. inov pf>, a ; i " s e t p o r t 0 ( a l l p o i l s b b i n 1 mov P i . a ; r e s e t p o i t 1 mov p 2 , a ; I e s e i . n o i I / l l lOV P b a ; I e s e t p o r t <
• niov s p , i i s t a e k ; ! o a d s i a c t . p , , i n i. • • i w i t h s i a . •!: i f-11
B e t o r e vie s t a i 1 d o i iki a n y 1 / ' > , a s h e : i. . | e l ,i y i:: r o g u i i m j s o l ha t V e s t n a I
/ h a r d w a r e w h i c h may b e i n " r e s e t m o d e " c a n i n i t i a l i z e . T h . i s i s I y p •. -a I I y -i f •• ol / w h e n a P2C.r>!> . - h i p i s u s e , ) a n d i t s i e s e l l i n e i s d r i v e n I r.-in t h o K - i ' i . . ; - . . | c i i < / u s e d f o r t h e s n v i . B e c a u s e t h e 02'.:',!.. r e s e t p i n s w i t c h e s t i .,m . - e r . . i , • ,
/ h i g h e r v o l t a g e t h a n t h e >.<.').r> i., a n y H 2 C ' . 1 . c h i p s w o u l d s i i.! i b e i n t e s . - > t mo.jo > j . / n o w . . . r s t _ d l y :
mov r l , # 2 0 0 / a p p r o : : lOOOOn c y c l e -
r d l y 2 : mov r 2 , # 2 4 9 / bOO c y c l e s d j n z r 2 , r d l y 2 / d e c r e m e n t a n d jump b a c k if" t.2 i s not z e r o d j n z r l , l .d . lyi! / d e c r e m e n t , a n d jump b - v k i t r l i s not. z e i o
/ C h e c k f o r t h e • E r a s e - o n - s t . a r t u p s i g n a l a n d e r a s e f l a s h KOM i f i t ' s t h e r e . mov j z mov j z mov
c h k e r a s e : . mov
mov c h k e r a s l :
d j n z j c d j n z l e a l 1
a , D l ia s f l a s h / L o a d M a s t , i n s t a l l a t i o n f l a g i n t . A s k i p e r a s e lump i f h a s f l a s h i s z e r o ( f l a s h n o t i n s t a l l e d ) a , H e r a s o _ p i n / o t h e r w i s e m o v e o i e a s e p i n s t . s l u s i n t o A s k i p e r a s e / j u m p i f e i a s e p i n i s z e r o ( e r a s " p i n n o ' e n a b l e ' r O , # 2 5 0 / l o a d 2"SO I n t o rO, t o c h e c k 2 5 0 t i m e s , t o b e s u r
c , e t a s o p i n / m o v e r i w p i n s t a t u s i n t . . A r l , 11200" / l o a d r l w i l i i 2 0 0 ( d e l a y t i m e )
r l , c h k e r a s l / d o e r e m e t i l r I , l o o p i n s a m e I i n " , i t i t s not z e s k i p e r a s e jump t o s k i p e r a s e i f e i a s c - p i n i s h i g h
0 , .-hi-, o i a s e / d e c r e m e n t r ' l a n d jump l a c ) ; ; f u o i ::•- >. •!i a.I 1 • le.l e t e a l l f l a s h
/ R u n a n y u s e r i u i t i a 1. i z a t i o n p r o g r a m s i n e x t e r n a l m e m o r y . s k i p _ e r a s e :
tnov b , H2-19 / l o a d P w i t h 24'> ( s i a r t u p c o d e ) a c a . l l s t . c o d e / d o s t a r t up c o d e
/ I n i t i a l i z e t h e s e r i a l p o r t , a u t o b a n I d e t . e e » i l n e c e ^ p . - n y . a c a l l a u t o b a u d / s e t u p t h e s o t i n I p o t t / m o v a , t .h l / l o a d I im<• • i h i g h b y t e i n t . - A / l c a l l p h e x / d i s p l a y l i m e r l t i i g l i b y t e
/ R u n t h e s t a r t . - - u p p i o g i a m s In e x t e r n a l m e m o r y . mov a c a ] i
b , ! ! 2 V s t e o d e
/ l o a d A w i t h 2r>''. ( s i a r ! u p / c a l l s t a r I up c o d e
o r - | . I I . p 1 : • • I J. .-I!'l
/ N o w p r i n t out. wo. le .eme m e s s a c i o sve 1 c o m e :
mov w e l c m ? ! : l e a l
r u , # 2 4 new.I. i n e i 0 , we 1. cm2 r-0, # l a
a , ;!• '
d-jn:: mov mov
w e l c m 4 : l c a l l c o u t d j n z r O , weLoro4 mov l e a .11
mov
d p t r , 1' L o g o n ) p o s t r d p t r , S l o g o t i 2
/ l o a d i n w i t h X4 (l-|... o i . l i n e s t o d i s p l a y e d ) / d i s p l a y new l i n e / d e c r e m e n t rO a n d jump b a c k t o d.i s p l a y n e x t l i n t / l o a d 1 0 w i t h I r> ( D o . of: s p a c e s t o b e d i s p l a y e d ) / m o v e s p a c e I o b e d i s p l y e d / d i s p l a y s p a c e / d e c r e m e n t . rO a n d lump b a c k t o d i s p l a y n<\--;. spa*, / p o i n t t o l o g o n ! m e s s a g e / d i s p l a y i t / p o i . n l t o I o g o u 2 m e s s a g e
l e a l 1. p e s f c r / d i s p l a y i i l e a l 1 d ir . / . . - .al l d i : o o t , , i y i d i s i d y s I f f f i l e s a n d ••.:<••.•• mov rO, 8 (pgm *. 2'..a) / l o a d i. << w i t h pgm I • >w b y t e mov rl, 8 (pgm >> H) / l o a d r 7 w i t h pgm h i g h b y t e l j m p menu / r e t u r n I o m e n u
/ s t e o d e r o u t . i n . - i s i n v o k e d a u t o m a t i c a l l y d u r i n g pow"! ' . .n a t t h " s t a r ! . '."his r .ui : : / w i l l . Look f'oi s l . a i l . u p s p e c i f i e r ( 2 4 1 ) .,m<<ng t i l " i i " a o ' > i s . When i i i s s u c c e s s ' : i , i / s a v e i 1 : s r e t u r n l o c a t i o n arid 'pimp l:r.> t h a t s t a r ! u p s u b , o u t i n o . When i l n o n i u s i! / c o n t i n u e s s o . n c h i . i i g t o r o t h e r s a n d r l o e s ' h e s a m e u n t ' i l a l l s t a r t u p r o u t i n e s a ? e / f i n i s h e d . At. t l i i s m o m e n t t h e f . u o f . i o n w i l l i f h u i ; h a c k "o p o w - a o n r o u t i n e .
s t c o d e : mov d p i t , !ll'.iiiem / J o a r l hmeiii l u ;••-a i ••!•. i nq s t . i i ' u p t o i t r i n " s
s t c i ' d r v ' : J c a i. 1 l in .I / I i nd h ' -adot ••! M i e s j n c s l c d o ' . ' . / j u m p , s i n e a.l i o. .:,,m.i!i. i s so.-, i h o d a n d no lr-on-mov d p i , l!'l / p o i n t t o ( b r u t e o n l i t s t y p e c l . r a / c l e a t A m o v e a , H a l d p t r / l o a d i t s t y p o C j l l " i , p , S I cod""' / j l.llll| '. '• I V| •'• I I " 1 l: - I t . 'h ' .S .••tarlllj !' ' . ' I •-• p u s h b / s t o i o t h e I yp>-p u s h d p h / s i . ' i . . t t i g h hyt •> , q : y p e a d d i . mov a , II ( s t r o d e . - ! 4 /:5!>) / m o v e s t o o d " •! a d d ! . l o w b y t e f.o A p u s h a c c / s t : " i o s t o o d " . * a d d r . l o w b y t e mov a , II ( s t o o d e S •• 8) / m o » o st..co.lo.< a d d r . h i g h b y t e t o A p u s h a o o / s t o : e . s t r o d e * a d . ' h . h i g h b y t e , mov d p i , I11>1 / p . i i i ! t o s t a t t u p h e a d o i c l r a / c l « . ' i i A imp t l a l d p t i . / j u m p t o t h e s l a t t u p c o d e
s t c o d e a : p o p d p h / h o p e f u l l y i t ' l l r e t u i n t o h e r e , r e s t o r e d p h p o p b / r e s t o r e b
s t c o d e 4 : i n c d p h / i n c r e m e n t d p h t o t a n o t h e r s e a r . . : h mov , i , d p h /iiii-'Ve d p h t o b e c o m p a r e d c j n o a , Il ( (oiiiem I I ) •• K) *, s t e e d " . : / iiimp back, i ! " m l not i " a c h e d
s t c o d e 5 : r e t / n o w u " " x c c i i l 'al a l l
a u t o b a u d r o u t i n e i s i n v o k e d a u t o m a t i c a l l y d i n i n g p o w e i e n o t h e s i a r t vi i",- > !.• f o l l o w i n g . i i n o i s •:•••>i o c t o d .
egi.i b a u d c o n s t , 0 / f l a g f o r a u t o m a t i c b a u d i a t e d e t e c t i o n
To d o a u t o m a t i c b a u d r a t e d e f e c t i o n , m e a s u r e m e n t , a n d s o t t i n g . It. i s a s s u m e d t h a i t h e u s e r w i l l p r e s s t h e c a r i ' i . i a e r e t u r n , w h i c h w i l l c a u s e t h " b e l o w b i t I M I n u n t o a p p e a r o n p o r t H p i n 0 ("K ~ a s c i i c o d e o f d e c i m a l I"'. (OlMi) ,
0 1 ii I 1 0 0 0 0 1 1 I I I
/ s t a r t b i t i- ^ — I s b m s b — i i s t o p b i t / T o s e t t h e b a u d i . a t e , t h e f o l l o w i n g t o i m u l i i s a p p l i e d i n " a t e n l a I. i o n . / b a u d _ _ c o n s t - 2 S 6 - ( c r y s t a l / ( l : - *• 1 i> ' b a n d - r a l e ) ) .
/ T i m e r 81 i s s t a r t e d i n 1 6 b i t m o d e a t t h e t r a n s i t i o n b e t w e e n t h e s t a r t b i t . a n d / t h e LSB a n d s t o p i t b e t w e e n t h e MBS a n d s t o p b i t . T h i t w i l l g i v e a p p r o x t h e / n u m b e r o f c p u c y c l e s f o r 8 b i t s . D i v i d e b y 8 f o r o n e b i t a n d b y 1 6 s i n c e t h e / b u i l t - i n UART t a k e s 1 6 t i m e r o v e r f l o w s f o r e a c h b i t . A f t e r d i v i s i o n t h e t e s u i l / h a s t o b e i n v e r t e d s i n c e t i m e r 81 c o u n t s u p . Of c o u r s e , t i m e r III g e t s u s e d i n 8-; b i t a u t o r e l o a d m o d e f o r g e n e r a t i n g t h e b u i l t - i n t l A R T ' s b a u d r a t e .
a u t o b a u d : • mov a , H b a i i d _ c o n s t / l o a d s u p p l i e d b a u d r a n c o n s t a n t
.nit o e u d jmp a , ban.'! S . i v f ' I b a u d s a v e * ; - ! , b a u d r a v f t l , b a u d s a v o + O , a , b a u d s a v e i a , b a u d s a v e i a , b . .u . i
j i t 7. mov x i .1 :<r! xi: J o j n e c j t ie c i n e
a u t o e n d _ j i T i p : a j m p a i d o e n d
; w a i t f o r i n a c t i v i t y a u t o b f :
inov p e o n , mov s o o n , mov t m o . i , c l r mov t o o n , mov ! 1 0 , mov t .hO, mov t i l , mov t i l l ,
s a v e i-0
IIOxRO If Ox.12 II 0 x 1 1
mov a u t o b l b t m o v a u t o b l e : j n b
d j i iK • d j nr.
110 I 0 1 0 1 0 1b f i l l 0 0 1 1 0 0 b # 0 0 0 1 1 1 0 . 1 1 . ;:, a u i o b i I., a u t o b l
au!:...'i.d
; i iintf • TO a n t . . en- ! ; I o a d b a u d "n.l n -; x o i b a u d s , o /OI , ; x o r b a u d s » v c a i a: ; x o r b a u d s a v e . a ai
imp I't <M: a n d
pi •
a • i T p r .
; M a k e s u r e t h e r e i s n o a c t i s ; t h e c a r r i a g e r e t u r n .
ITT, II . ' 0 0 r . l , N O p 1. (l , a n t o l l ! r l , a n t o b f o r i ) , a n t o b i b
iu:i.p lump i IIIP.I - i
jump l 1
p.:..n h a I'.
• i ' • II •i 1P!I MD •
•and s ' •and s .
s f b a u d ( d o u b i I •••it -b.ii... I, V I ai a o f b>li
•I!
'.i BIT
; coiif. j g m ; c o n f i<iu i '• >n b / c o n f i g u r e I i n t e r s / c l e a r A / i e s e t I* iMOT*0 a n d I i m e i l •:••»»! i • / c l e a r t i m e t 0 l e w b y t e / c l e a r t i m e r O h i g h b y t e / c l e a r I i n u I L 1 low hyi_'-/ c l e a r t l iner 1 h i g h b y t e
i t y o n t h e l i n e h e f o i e we a c t u a l l y f . eg i n 'o,-.l: i n g
/ l o a d H I w i t h , 0 0 l o r d e l a y f a c t - u i / l o a d r I w i t h '.fi I n d e l a y I a c t m ^ / jump i I p i n p <. 0 i s • • n-i / d e c r e m e n t d e l a y l a o t o . , : a n d i, . , ,p i ! ne t :•••. r e / d e c r e m e n t d e l a y l a i d a 1 a m i I OOI • i t n e t :-.ero
/ L o o k f o r t h e b i t s o j t b o c a n b i n e r e l n t n . W a i t f . a s l a i t l o t - i n I HE I j I s ! | / u n t i l ! i t i s l e w , . g a i n . T h e n . h e c k i l a LEV; n-..:- t i m - . s , i n o 'L I ' - I l i n e s , t ••> v.i /SUIE WE DELL'! I : b c | . ' '•(, s o m e l io i .SE. a u t o b ; ' :
j b p . i . t i , j b p f . ! > , j b P - ' . O , j b p M . 0 , j b p . < . 0 ,
a u t o b 2 b : j n b p .? - .0 , / H e r e c o u n t e r L w i l l s t a r t I Lmlng t h e UK d u r a ' i o n d m i n g i t s FT b i t s s h o w n abo / A f t e r b i t f i m e r O i s s k a r l -od t . o o . When t h e s t o p b i t c - m e s ( a f t e r b i l '/) t h / t i m e r s a r e s t o p p e d .
s e t b t r l / now w e ' r e t i m i n't i t. a u t o b 2 c : j b t f l , a u t o b l . / c h e c k 1 o r t inieoi i i wh i 1 o wa.i.t i ng
j b r . 2 . . O , a u l . o b 2 e / w a i t f o r bi! . . * 1 t o b e g i n a u t o b 2 d : j b t N , a u i o b i / c h o c k l o r r i i i i ' - o n t w h i 1 e wa i I i n g
j n b p - < . n . a u i o l v d / w a i t f o r b i t !I2 1 O b e g i n a u t o b 2 e : j b t ; i , a n 1 o b 1 / c h e c k l o i 1 i i i ieout wh i 1 e v.'.i i i i ng
) 1 ' p t . O , an te ) - : . ' . . / w a i l l o r b i l II-1 l • • b e g i n ? e t:.b i I ('1 / s i a r t 1 i II; i ng I a s t '1 b i l s
a u t o b 2 1 : j f . I N , n i l OBI / ' - h e c k l o t 1 i me. >u! whi 1e wa i i i n g j n b P b i t , a u i o l v ' f / wa.i t f • -r s t o p b i 1 t o b e g i n c l r tr I / s t o p 1. i mei 1. c l r t r O / s t o p t i m e t 0 j b f f 1 , a n l o b i / c h e c k f o i I' i in. .out o l i o ):n.r,< i lino
/ C o m p u t e t h e b a u d r a t e b a s e d o n t i m e r ! . T h i s i s . l o n e b y d i v i d i n g t h e i imnr v: / b y b y 1 6 a n d t h e n b y H b e c a u s e t i m e t i s i n f a s t b a u i ( d o u b l e d ; m o d e . ' ' ' h e l i v / i s d o n e b y c a n o e . ! 1. i rig t i m e r ! low b y t e e x c e p t t h e mos t s i g n i f.i ••anl b i t w h i c h / s h i f t e d t o f i n . o i l h i g h b y t e a s l e a s t s i g n i f i c a n t b y t e .
a u i o b a n f o b / nut o b : a n l ol>2 a lit ob i : a u t o b / b
/.LOOP I ! P I N P T .
/ w a i t f i . i b i t 110
ILGH
i : ,oV '., t '• [ / m o v e I i l l ' " l ! b >w !<••/><• i •> A
M t : i / r o t a t e A b o ' I w i l d c a r t - ,
m o v 1», a r-in'JVfi A , o n l o u t i . - i
n . o v a , I . h i / m o v e I - i i I d i ' l d I •• V' • - ' A.
r l e a / r o t a t e A I " I I w i l ' n e a t i y
" j o a u t o h ! / o i r o r i f t i m e t ! • o 'V .Y: '
/ A f t e r d i v i s i o n b y 1 (> a n d b y l < , w o h a v i « i l i « i - l c b y i . S . ' I 'd i :•
/ a d d i n g b i t . " ' w n i o h i s e q u i v a l e n t t o b i t . <n o l t ! i h . •; • ! • • , . • ! . • • •.
i n o v o , b . 7 ; p n t b i t . 7 i n '.'
a d d - o # 0 ; a d d 7 .or<i w i t h e a r l y
c :pl . i / c o m p l e m e n t A I " in 1 !•.•'• ; i i i " o a I. i v ' •
i n o .. ; a d d I ! • < m . i k o i ' • • q a i i . | . . ( ..'SO
j z a u l . o b l / j u m p i l b a u d r a t e !.>•••• f a s t
a ) a o : : i ma I " O i
>.i s n b t i a. . : ! i >-i A)
/AL'l.oi we q e l I d o r i n • a g o r e t a i l . , k" n""d i'•• rr.a 1: • • s u r e I h ' o " i o n ' t a n y " c r a p " ; l ; ) l O s e r i a l M i l " , a s ! h e r e i s i n t h e o a . s e w e t " we q e l l h " i n i !•'>: K ( a n d o o n o l ' l ' ; t h e w r u n g b a u d r a t " ) , l t n t o r l i . m a t e . l y 1 ho s i m p l e a p p i o a e h o ! i u s i l o o k i n g a l I I K ; L i n e d o r . s i l e n c e d o e s n ' t w o i k , b e c a u s e wo h a v I - , . . • - • •ep ' I |t< • e a s e whet > • ' Id-• / u s e r ' s t o r m i n a I e m u i a i i o n i s e o n i i g m o d !•• s e n d . l i n o to,. . .] . n i o , i o a i r b v i < / r e t u r n . T h e b"-st t h i n q s o d o i s l i s . ; H i " n a i l a n d .b-.,k s o - - i l i t i o . -o i v e s / a n y t h i n g . If. n o t h i n g r e c e i v e d , t h e r e i s an e i t o r .
11i I q : i :r."i i ; i .| i i i ! i c i n | i
s o n ! r o i
I A- •; I -R
/ m o v e a u t o t o t i m e r I h i.qh b y t e ('•• / m o v e IK t o t i m e t I l ow b y t e ( i , . g • / a n t o r e l o a d m o d e of ' i.m"r I / s e t r e r o i v o e n a b l e o f s e r i a l p, , i i ; s e . f t i m e ) | o o n l i o i b i t Is. s i a i r / m o v e t . i m o r i h i q h b y i . - i . . A / oompio i i i e t A a n d / i n c r e m e n t I o mat ." it- p o s . i t v /P.IOV l imoi \1 h i g h b y r e t.o j | - is g o j / m o v e f'F t o rO a s d e l a y fa.-.i. •: / / d o c r e m e n t f a t " m, I a n d jump i l n o t / d e c r e m e n t f a c i e i / ! a n d jump i f u 1
/ j u m p i l . r oc". i >.'" jii l . a i ntii i s n o t / I f we g o t h e r o , t h e r e w a s sent" s t u f f /if l e t t h e c a i i i a g " rot u r n , / a n d s e e i f i t w a s I l i e l i n o f e e d .
c l r r.i / c l e a r r e c e i . v i i t t o i t n p ! i<> t e c - ; v e m o r e a , s b u i . / . l o a d r e c i . p l c l i a i . a c l . o t i n t o A a , 11011 I. id l i b / m a s k t h e h i g h e r i d I a , !!.?4("> / a d d 24.'-. I.o c h o c k i s i ! a l i n e J o e d (1.0 • OA!!) a u t . o b 4 / j u m p i f z e r o ( o k , l i n o f o o d c h a r a c t e r ) a , # 5 / a d d 5 ( 0 1 0 1 B ) a u t o b ' 1 / j u m p i t z e r o , p e r h a p s we m i s s e d s t a r t b i t
a n t o b ! ) : mov t h i , a mov t i l , « 2 V . mov f i n o d , ,10:: 2'! s e t b t o n s e t b 1 r i inov a , tli'i e p l •-, i n e 3 mov • r l , a
a u t o b 3 b :mov r O , it 2 •".!., a u t o b 3 c : d j n z rO, a i i t o l > U.
d j n z r i , a m o b . i l
j rib I i , a n ! o! . ,4 I
mov a n l a d d j z a d d i z
a u t o b l _ j m p : l j m p outobi / o t h e r w i s e j u m p a n d r e t u r n t.o s t a c k f o p
/ C o m p u t e t h e b a u d r a t e b a s e d o n t i m e r O . T h i s i s d o n " b y d i v i d i n g t h e t imor!) , ; ; i . l
/ b y b y 1 6 a n d t h e n b y 8 a: a u t o b 4 :
mov a , f l u
r l c . a mov r h , a mov i , !hi i r 1 e mov r 1 , a
j c a u t . o b ! jnip / m a k e a m u l t i p l i c a t i o n of.
•ihown i n t i r a e r l a b o v e .
/ m o v e I. iinorO low b y t e ! <.• A / r o t a t e A l o l . t w i t h c a n y / m o v e A c o n t e n t t o i 0 / m o v e I. i me rO h i g h b y t e I n A / r e l a t e A l o l l w i t h o n ! i y / m o v e A c o n l e n i t o i 0 .•••o. r o r i I" I imot 0 <?7C7
b y s h i f t i n g l ' : - t l , b o - s m s o t i inert) i s s t a r t e d t o c o n n / j u s t b e f o r e t h e 2 n d n i b b l e o f t h e r c . - o i p t "H. T d o i e l o i . " i I i s m e a s u r e m e n t h a s / b e m u l t i p l i e d b y 2 .
mov a , rf) / m o v e r U u> A r l e a / l o l . a t e A l o f t w i t h c a n y
1 H O V 1., .i / m o v e A o o n i e m t , , !•. mov • i , r i / m o v e r l t o A r l o • i / r o t a ! e A i ••• tt w i t h - i t y
/ A f t e r l i v i . i i o n I >y i i. a n d b y i*, a n d m u l t i p l i e . i t b>n i y / v.-. ~ na t o i i V i fie 1 / T h i s i .<> a p r . :'. imai '••..) •y a d d . r.'i b i t . . 7 w l - . i o I I > S e<|,i j ! e n ! o i 1 i . e . f ' . ' I I •••
/ r o t n t i >n. mov . : , )... / / p u t I.; i I . 7 i n a d d r - 1 , HO / a d d /..-it o v i t h >• 1 1 r y •j 7. l l l l i li' i imp / j u m p i 1 -.-.<• • r o , e i i >>r i f bat! -i : •- e l . - l . -M 1 o p l i / o o m p 1 e m e l A t o m a k e • l i eq it i •• < l o t s u b ' ! ... • i .no . 1 / a d d 1 1 <•• m a k e i | e . | i i . I 1 1 o t t- - A)
/ C h e e k •iga i a: 1 t i t:ier 1 v.-i I ' . l e .
O'jlie . 1 , O i l , . m l , . ! d imp iutitp ; t ' w. *• I i in'. i I ' . d i n g s •-! 1 " 1 1 " / A c : li.-i t l i l ••• i i in • . 1 1 : h i . - | . . i n ! . • l l l t oo t ld
mov b a n d .'• a V e t '•, • i J i t O I e I j , e | M ' 1 . 1 1 l l . - ( . , j • ,<• X I W . I 1 III
mov b a u d .• a v e I , a , / t mov h a n d r a v e i- 1 , a / 1 I * t • ' 1 mov b a u d s a v e 1 0 , a / I 1 t 1 t / 1 t x r l • b a u d s a v e i 2 , # 0 J . 0 l 0 l 0 1 b / x o r b a n d .< i - ive i •;. a n d '.Ml x r l b a u d r a v e i-J., # 1 1 0 0 1 1 0 0 b / x o i b a u d : ta v e I 1 a n d < :ai x r l b a u d s a v e + 0 , # 0 0 0 1 1 1 0 1 b / s " t b a n d : V I V O 1 0 a n . 1 .1 I jII
mov t h i , ' •- / m o v e 1 h e i " l i i . n l h i - • ! o ! ,1 mov t :i i , / m o v e t h e r e l o a d v a I : i > > ! . o I i "1
mov t m o d , ilOx.H / n e t I i m e t ill t o r « b i t l i l t 1 o a d mov p e o n . 9 0 x 8 0 / c o n f i qu r e d o u b l e b a n 1 r a t e b i l l it — i n ua i 1
mov s o o n , ( f O x f i / / i : o n f i qu i e . tor i a 1 p o i 1 • :• >r. t o l s e t b t r l / s t a r t t h e b a u d r a t e . i me r r o t / t e t u i n
Pat . - Mi 1 1 f i p 1 i . -a I i h i ant 1 11 i '.' i a i . o t i
/ p i n t t l t i p r i m s I h e u n s i q n o d !i b i l va 1 l ie i I A-:.- i n ba n o i n 'I'll i .-: i s '• 1 1 1 i I -1 I / d i . v i d i n g t ln> nu iubo ' >y 1 OO a n d d i : ipl a y i n | t h e q u e l e nl ( I n l l - l l . •dl 1. d i q i ! ! , ! / d i v i n g t h e r ein.i i n d e r b y it) a n d d i s p l a y i n g t h e q u e l e 1 1 1 . ' ! < •I l l II • i i q i 1 , a n d 1-
d i s p l a y i n g t h e r e m a i n d e r ( u n i t s d i g i t ) ,
p i a t t i u : p u s h p u s h s imp
•T ' . i*
p i n ! tlb ,- -.1 o | .
/ 1 1 i m p
-. i q n e d H Id | v-l ! l i e i n A'-f in l-l.-f i n . T | , ; : • I - ! / P r i n t - . s t h e .« / m i n u s s i g n . II t h e ntimbnt is- n e q . i t i v e , : h o mi t ins s i g n i •: i i s p i . i y . - i d . n o t h e / . i s c o m p l e m e n t e d a n d i n c r e m e n t e d ( t w o ' s o .nip I emonl ! . In H i " i " s l pa t t I h<- f. / i s s i m i l a r t o p i . i i t D u .
p i nl: H: p u s h i. / S t o l o it
p u s h a e e / s t o r e A j n b a e o . .', D i m (tb / j 11111)1 i l t h e s i q u b i t . i s not s e t
mov a , I ! ' - ' ' / o t h e r w i s e m o v e ( - ) t o A l e a 1.1 < :ou 1 / d i s p l a y ( - ) s i g n p o p a o c / r e t r i e v e A p u s h a e r / s t o r e A c p 1 a / c o m p l e m e n t A a d d a , 1! 1 / a d d I t o m a k e t h e I r u e v a l u e mov b , HI 0 0 .-move 100 t o B d i v a b / d i v i d e A b y 1 0 0 (J i n d 1 0 0 t h l i q i s e t b ' t o
p i n t H e ; jump, i f A g in >i e n i i s - l i e o i r f t )
a d d a , 1 f t " ; a d d M l ' ! e A ( m o k e a s , ' i i ,"| ' l I "a 1 o n ; ;
1 e a 1.1 c o n ! / d i s p l a y A p in t .b i . : : muv a , b ; m o v " i ema i in !" i i n I*, i , A
I t lOV b , HI ( i ; i l l ' > v e 1 ,1 t o \\
d i. v a b ; d i v i d e )\ | , y I (i j i i t :d I ' l l " - 1 (H ii d i a i t ;•
j r i b t i l , p i n t H d ; j >"• . p i n t « p ; i
p i n f H d : a d d a , I ' d ' ; a d d \ ' i ' ! o A ( m a k e a .s , id i e.-p.i i v ; i 1 e n l j
1 o a 1 J • : . .HI 1 / d i s p l a y A p i n t , t i e : mov • i , b ; Hi' a ' " 1' I •> A
a d d 11 : : i 1 !
a , » " ! • ; a. i d ' n ' . . . i\ ( m a , : s ,
•. | i i , i , •• • '••
: i i " o i l i '•' l 1 , ' T , I '
p o p ' ' ! | O • ' , ; 1 . ' S i o | ' • .-'.
. p o p 1. ; i >•s ! o : o i ;
; I .' • 1 n i 11
/ p i n t . l(<u p i - i n I s 1 i ) b i l u n s i g n e d i n t e g . >i i n l . i t ' l 'K, u s i n g b a s e I n . I'll" 1 u n c i i o n u s e / p i n t x l C> t u n e l i n n t o d i v i d e t i l " nuiubet b y I l l O U l l t o d i . g . i a y M i l l ' ! ' . i l h d i u . i 1 , a n d b y
; 1.000 t o d i s p S a y lOf l f l th d i g i t , a n d b y 10(1 I . . d i s p l a y I t l t l l h d i ' l i : . T h e n i 1 u s e s d
; t o d i v i .do b y 1 !> t o d i s p l a y 1 01 1/ d i < | i 1 . L i s t 1 y i I d i s p l a y s o n e i 1
i isi g i. f .
p i n t l 6 u : p in . l i a c o ; s i o i e A r . i o v a , , .0 / m o v e i 0 t o A
p u s h a c e / s t o r e A c l r p s w . S / c l e a r p s w . ' i inov r2, d p d / m o v e |ow«->r b y ! " t o 1 •< • p i i n t e d !•<• v','. mov 1 . 3 , d p i . / m o v e l i i g h e r b y l •"• t o : o p r i n t e d t o ) • /
p i n t 1.6a :mov r . 4 , # l < i / m o v e l O l i O O e g i i i',• i ' . n < I n H a n d i
mov r'.>, i ) " > i t i i it
a o a i I p i i d .1 (•:; / d i v i d e b y H l M i ' i ! 1 •• I 1 !:• ! i ' . ) . ) . " . ' l ! .|; . ) i g j •
j z p i n t . 1 t ; b ; j u m p i 1 i " s n 1 1 i s , . e i o
a d d a , l ! ' u ' /••|. Id M O i o A (m.!'.-•• .. • • • i i e g u i V a l e n l 1
1 o a 1 i . : . . u l / d i s p l a y A
• s o t . b p s w . . ' . ; s o t 1 I a c s i n e e I i i .-1 d i g i I : s ' • i i s p 1 a y .
p i n t 1 6 b : m o v 1-1 , i ; ' t / m o v e 1 1100 o q i t i " a I o n ! 1 o i 4 a n d i '•
mov i-'., If 3 i l l i l it
a o a 1.1 p i nl: l ( e : / . l i v i d e b y i 0(111 ! o M i i d K H H H h d i g i '
j n z p i n t 1.6o / j u m p ' 1 ! r ' * n • ! i ; :
j nb e s w . ; . ' , ; • : : : • > • • • ! ; '• •;;:•[ • .1 '. : • . - . } • • i '. • • • • • , : > •• • ••••'• ! - e -
p i n t l 6 o : a d d a , S ' 0 ' / a d d M i ' : o A ( m a k e a : tc i i e g g i v a l e n t !
i c a 1 ! c o a t : / d i s p l a y s e t b p s w . 5 / s e t f l a g s i n c e t h e r e i s d i s p l a y
p i n t l 6 d : m o v r 4 , 8 1 0 0 / m o v e 1 0 0 e q u i v a l e n t t '•> r ' l i n d r'j mov i : 5 , 8 0 l i t it i i
a c a l l p i n t l f i x / d i v i d e b y 1 0 0 t o f i n d 1 1 001 1: d i g i 1 j n z p i n t . I do / jump i f : o s n ! . j i s no: . j n b • p s w . 5 , pin1.1.61" / j 1111111 i f z e r o i s I s t d i g i t t o d i s p l a y
p i n t 1 6 e : a d d a , 8 ' 0 ' / a d d M " t o A ( m a k e a s c Li. e g u i v a l e n t ) l ca .1 .1 C H i t / d i s p l a y A s e t b p s w . r> / 1 1 ;ig s i n e e | h e r e i s d i s p 1 a y
p i n t l G f : m o v a , t / m o v e l o w e i b y l " t o A m o v i - 3 , b / s a v H i n t ' l
mov b , 8 1 0 / l o a d H w i t h 1 0 . d i v a b / d i v i d e A b y P t o i i n d t h o 1 0 t h d i.g i.!.
j n z p i . n t . 1 6 g / j u m p .1 f r e s i t 1 ! i s not 7 o r o
j n b p s w . 5 , p i n t i & h / o t h e r w i s e , jump i t n o p r e v i o u s d i s p l a y p i n t l 6 g : a d d a , # ' 0 ' / a d d M . ) ' t o A ( m a k e a s c. i . i e q u i v a l e n t )
p i n t i <<h :inov a , b /ME.'O f ! ' , , , P. • -p-i T • ' h. • .. u.--4 II . 1 i a I ' mov It, r.< ; i e s t ••> E •-. 1 I -m • ••V id i , if ' f ' / a d d '1! ' ' • • N IFL. • !:• • a s - • I ; R • in I v. >:.>!. I P- . i ) ; • •out / d i s p l a y -\
• . . . | • .-. J •./, . I I I O V T: I , .-i / r e s t . . ) . , i (; p o p • i "C r e t / r e t u r n
, •— -/ p.i r i t i f . x d i . v b i c s i x - i i b y i •!- i '. r i i id l e a v e s roma i n d e i i n r .'• T A a n d ;*.*•.! • i: I I.: qu. -I S • ; . i n a c e . T h e •. l i v i s i ' I U I r: o a r : b •<! b y s t q i i " n> i a 1 s a l it i i • -n .
p i n t 1 fix :mov r(! , « 0 ; c l e a r rU p i n t J t iy : i n o I c ; i nc . i ' - I ' ient : LI a t 1 OI o-i.-l, il i .i--i INN { JII. •: '• • -n < i
C l i ; . : 1ea I •: < • I ! s u b l 1 • ICL i l ie I . ' t ...or 1 i-/i . • IUO'/ •, T 2 ; m o v o s u b ! r a c t h c n d 1. » > i !>yi II• t o A s u b b a , ! •! ; s u i t ! r a c t . S'LL.L 1 a.'t e . | , , « ' . ) I : T >TII A raov r X , a / m o v e rcan;T . i LIT lo i I N >.;• mov a , r 3 / m o v e s u b ! r a c r h e n d h i g h e r i-. .;! o I . . A s u b b a , I / s u h t r i o t . .subl i a c t EI HI OHO; ! I • :m A mov i 3 , a / m o v e ietna i IKI'S TO r t j n c p i n f 1 Cy / jump b a c k i I ... • • a • : Y d e c ILL / d e c r e m e n t T ('• ( CI HTPJIISS ' i o n LOT- EYN| s u b t . r a c t i' mov a , rX / m o v e rema i i tdet o . w e : i.• y 1 e I •o A a d d a , r'l / a d d s u b t . i a d o r .I.I m e i b y t • • • . o A t o unpens . i t I..inJ
• m o v 1 2 , a / m o v e l e s n l t t o r-' ' ! i n a l r< •ma i ink- r) mov a , 1.3 / m o v e i ema i n d e i l i i g l i e r by t< t .-. A add< •. a , rf> / a d d su l •! I a c t e r h i g h e r b y l e t o A !' o j t :pensa f I o n 1
mov r 3 , a / m o v e r e s u l t t o r ! ( I i.na i I ' •TILL i ;I> It- ! > inov a , rO / p u t q u o ! ! e n t I l i t ) A r e t / r e t u r n
H u l t . I - I . i y l e f r e q u e n c e a n d ComoI OSSO.J b t f . a f t ,•<•< • s e i s e
; o i n f i 1 f o r 1 <• I.il:n l o t inn 1 t i - b y > E s o q u . ' i i e . o s t o r u p , d>>wn, IO • i t , I iq l . I , paq . -UP, / p a g o d o w n , a s >..-o! i a s o r d i n a r y e s c a p e a n d •II d ' na r y • 'Irn ac.L a s . '.'. ><i. a i •' i equ.i. t < ; f o a r r i v e s o motif, i u 1 ! Y , ' . ' ' l i e t w i s e t h e cli. a i a d t-i s a r e I | . . ; , l i a s o i d i n a : y u s e i ; ko'ys l ' . i . okes . C : I li M l 1 ' ! 1 EL 111 li.-: a s i UC| b • by l •• -.;l"-i: i 1 S. t HO I'M I It i -1 -.'/! • • '-.-.' MJ E . • s e q u e n c e , a s .-TIN >wn l i " i " . ; i el. ui n v a 1 lit k e y e s c a p e SEQIH-L • •••••
II C-K) u p 1 n '•!< 1 i H> ( M S d o w n i i ' ''I'- -I." Xi ( ' I I ) i i q h l i ft !;P .) !
8 C H ) l e i t. i f '-.B <bl 2 a (~Y) p a n e u p 1.1'. ')!'• !'• /'!•'.
p a g e , l o W | : IB Ml Ut .'K . e q u esc c'n i, , 2 7 c i n f i l t e r :
j n b : i , t i n t ! / jiinij • i 1 | .-<••> i VE i n ' • • I i apt. i s n o ' s o ! l e a f 1 • • i n / i npu i ! 11mi s e t i - i f p o r t • VILLI' a , lies-.• c h a r , c i n f e n d ; jump i t . i I. i s nc • t IBii c h a r a c t o r .
; I f e s c w a s a l i f . v l y i n s b u f , ins . ! i f ) i i o t e I T , l o a v o i d p e u d i t i t i e s c a p e . c i n f 1 : i c a i ! c i n / i n p n l f t ..MTI n o r i <-i t p o r t
c j n e a , 6 e s c c h a r , e i n f c u d / j u m p i f it- i s not. 1 Bh c h a r a c t e r c i n f 2 : a c a ! . 1 c.I n f wa.i t / w i i t I'm A o h a r< i d OT l r a n s m i I. 1 ime
j t - L i , O i ! 1 f'T / j u m p i 1 r e c e i v e i nt e r r u p t i s s e t mov - i , »•••«••• . 'bar / m o v e e s c c h a r ' . • A r o t / a n o r d i n a I Y e s c
/ ' I f we g e t h o t e , i t ' s a I'.mit m ! cod . . - , s i n - •<•• a c l r o a ..-I • • r IS E i •„ . , ! - h o i I I -.- -.I : ; r e c e i v i n g a n t'.SC e h a t . a o . t . e : . c i n f 4 :
.1 c a l l c j near, a 1 ! j n b I o n 1.1 e j u < -
m- •'/ r o t . i - j n e
Km > V
r e t 0 jn< :
iu< <« r o t
i n . -m< >v 1 o i . o j n o s j m p o j n e s j m p s j m p
• t, H. ' I. ' , o i n ! ••• itisi.iiii, o l n f w a i l r i , d i n l i l t .•>• • i i i '
a , N ' A ' , c i u t : . ! .
•i nl !..!
i , i i ' i i , ! i l o
i , !l ? !
- 1 , » ' I :
a , "•!•, <•! n t ' . I e i n f f i . 1 , IK'x'H,, dill!"'...! o.i.n!.!.' d i n i e o n s u m o
;Whon we g e t . b o r e , w e ' v e q m i h-/ m o r e ine .om. i in i b y t e i . . c h o c k . . . e i n f « :
f i o :
o i i i f w a i f r.i , e i n f I e s t a 1.1
o i n
; i n p u t i i "id S O T i a ! p o t I / j u m p i f A ••• l i ' . - i i i ! s n o ; / w a i t l e i "i «'. i i t i i r l . ' M , l i a n s m i ' I : im • / j u m p i f i o c o i ' - > > i n t e r r p l n-.t s - ' O / i n p u l ' i on, •:<•> • i a i p . • r I / c h o c ! if n o t b p k e y / i 1 A, b . a d ! i ird< A". / i ••' n ' n
/ • -lie. •!: '• I in . , i iv.-ii is
; i I A , ! • ..id ! '' i n t o / I " l l l l l ;
/ 1 ' h o . : ! . i I no t i i. | h I Key / i I A, I • - i d • ! i I I I o ' V e
; I " I in ii / o l i o e l : i l n o ! ) • • ! : h - y / i ! A, l e a d H i n l " A.-.-/ I o I I ; | 11
/ • • I . e . k i ! no t •• -|Mp t o y b o d i s c . V I o
/ i i l i » | •
; e l i o e . K ; ! n o t l.'qbp k e y J r d e i i a r a e l . / i'liup
/ u n k n o w n K:t' 'ape s e q u e n c e
l o t p . - i . | o n p / p - i ! ; . ' " . i . . ) W N , b u t ( h e r o ' s . • •!!•••
• t u r n
a , i!0::7P;, a c e
• i n f ii'.-tp
I ! o
p t i s n a e a l i. j n b t e a I f c j n e p o p a d d
c i n l e n d : t o i c i n ' r e s t a r t :
p o p s jir.p
e i n l _ _ n o t p < ) : P'--P
/ U n r e c o g n i z e d e s c a p e ? . . . o a t . u p e v e r y t h i n g t h a t ' s l o l l , c o m i n g i n q u i c k l y , ! h e n / b e g i n l o o k i n o • i g a i n . c i n f c o n s u m e :
a c a ! 1 e t u i w a i t . / w a i t t o r s o m e iiv . .motn j n b r i , e.i u _ f i . l f o r / j u m p t o b e g i n i n o i i i i n o ; ; e l l c a l l c i n / i n p u t f r o m s e r i a l p o r t , c j n e a , H e s o c h a r , c i n f _ c o n s u i i i e / loot . , l i e r e i ! n o t l ! ib i l i a r a c ' e i s j m p c i n f ? . / i f . i t i s l u m p b a . - k
/ T h i s t h i n g w a i t s f o r a c h a r a c t e r t o b o r e c e i v e d f o r a p p t o x A c h a r a c t e r t r a n s m i t / t i m e p e r i o d s , i t r e t u r n s i m m e d a t e l y o r a f t . e i ( h e >~nf. i i e w a i t t i m e . I t d o e s no t / r e m o v e t h e c h a r a c t e r f r o m t h e b u f f e r , s o r i s h o u l d b e c h e e k e d t o s e e i f s o m e l . h i no / a c t u a l l y d i d s h o w u p w h i l e i t w a s w a i t i n g .
/ s i o i o A c o n t e n t ( . t ' - ' h o r ' } i ' - h ) I't
/ w a i l f " i s o m e n i o m e n i
/ e h o d i ' . ' I ' l l ' i l . l I •!< ! e |. p r e s e n c e
/ i i t p u l i i < .in • •• i n ! p . i i i
/ i •); .! i n •! e r s I I - ! I ' . i l i j - ( > | | " | p t l
/ 1 e s t o i o A / .!• i d { t ' . h • • I '•'•!!! I • • . , ' I i ' I . - 1 i > •! ;
; : e l i , i 11
/ l C S F o r e A
/ j l l l l l j • l o i . e g ! |i i 11'.!
/ I " S i e l ' - A
. e q u c i n f _ w a i t :
m o v p u s h mov
c i n f w 2 : inov c i n f w 3 : j b
i n c j n z d j n z
o h a t : _ d e ) a y , •!
a , r 2 a c e 1.-2, l l c h a r d ' - l a y ' a , t h i s r i , c i n f w l a • : I N f H , '
r ? , c i n f w ?
/ I l o . s-l e h . t ; rmi t I l i l i e s w.-i i ! i n g
m o v e r2 t o A t o s a v " i f s a v e i ? v a I n o l o a d 1 2 w i l l . !i t i m e s e h o i d e l a y -l o a d A w i t h t i m e i ( l h i q h b y t e jump i f i " C " i V " i n l o r t t ip! i s s o ! i t i c r o m e n I A j uinp i '•' A i s n o t ::• -r. •
d e c ! o m e n ! I ? jump i f i t i s i k - 1
; p e s t :t p r i n t s i. a. • e ' . m p i e s s e , i s i I i l i ' I S . A d i d i o n a i y o | \ v ; o : d s i s ; p a c k »<1 b i n i i y i o i n.a: . Wlisn p o s l i l i n o , s a h y f " i I i . 1 i n o w i '• >.: 1 i i ' •
; i. V. p r i n t s i h e v i . l . i ! i .Mil 1 h e 1 i e i - : " i i ' i r y . A 1 (••! b y l o s i i a v s p e c i a I I .
; e v e r y ! i i i n g e l s ;••> p r i nl s . i s i ! i 1 W P I o a n o r . 1 i n. i i y I i i . . i ' i . ; S p e e i a
0
.1. . . K i e s
•••• EtJI. i)i .•J'i'iUNo 1 .< --' e-R/f..!'' 14 = (JR/I.K >, Kill' oi- STi-.III.: 3 1 NEXT ; : A i ' I TA I , ( n e x t w o r d c o d e s i i o i i l i I h < c a p i 1 a I i :•'.• " ••}
p c s ' t r : p u s h niov
n e e a , rO
; s a v e i. e ; m o v e i u
1 i s I. o 1
1 . , l , o • • , a .••• i p u s h a o o ; s . f o i " . a
inov a , i. !. ; in . ' V o • 1 t o b e tl o . e - 1 p u s h a c e / . ' . - t o r e 1
mov a , i:4 ; : : i o v e i 4 1, o b e s ! o r o d p u s h a e o ; s | o j . o r •i
s e t b p s w . i ; s o l u s " i d e f i t j - ' d : l . v i ; ! • a - . b
s e l h p s w . ! . u s e i d " l i n e d t l . i u • , p : i
p c s t r l : e l r a ;• i . o a . l A l o i I u - x i i l i s ! • • ! : . : 1 i o n
1,1. ' V ( • a . P a l d p t ( ; I o.i ' 1 w l i . i l a! a d . it . i i n : d p t t ; i n c r e m e n t
)y-l b
p O S 1 !."/ a c c . 7 , d e e r - n i p
; •'lump i !: ; iump i 1
. - e i o (KMP i . f !•: i ;:<•,) h i 1 .' s e |
a n 1 a , IfOx.'P / m a s k h i !• •' p e s I r s i : o j n -
i e a 1,! s o l b
s j m p
a , !!1 • , p . - S f J
:i ' --w i i n o
p s w . i
p e s ! i 1
; j u r n ; • i 1 / d i s p l a y ; s . ' ' i ' M '
; ;, u:np h a -
l . o ' . ' ' '• • ! . e
i i no . 1. i , !• -1 - a ' ! a . |
• i.
p o . s t r s ? : e ; in . - a . M l , p o s t 1 s < ; j u m p i1 t : o l a n i l .•:• •(>•. a e , a ; | • i,l t p s w . . ' . J i ' l ' V I I c. i p i 1 i o ! i ; i I . ' . e l e • I :.. | s i m p p e s t 1 1 ; > inn! - ! >a-:!:
p e s t >:•• i : e j n o 1, 1) 1 4 , ( . C S t I S ' l ; j u m p i I ! . • . ' ei: i ! ! - • • i t o - | . . ••!,;.•
b - . i 1 1 n o w l i t : " / l i s p ! ,y n < ! : i i "
s j mi" p o s t . : ? . ; ' . . i m p ' ' ••nd p e s t r s - l
< : l i :
1 I p s w . i
• o i l !
; . • i • •, n i •
:-r>r-\ ! iv - • a . ! i n o • ' In t a - • ' . • • - ' i .'i-i
• - h a i .!• •! . I
p e s t . . / I : s imp p o s l , i ; iump •• o ! o n i n ' i i ' !
p e s t . . / I : p e - b ; i o l I i " V •• A mnv r -1, ,-i ; . e « l o r e J •'! p o p • >::• • ; r o t r i " v e A mov • if ; r e s t «'l e I !
P ' P •MS- ; • . - f r i !•••. > A mov i. 0 , a ; r e s ! o r e 1 >!
pop- a c c ; !.'•• t J . iev---. A r e t ; i o t u i . l i
; d c o m p a c t u a l l y t a k e s c a r e o i p r i n t i n g a w o r d l i o n , s h e d i c t i o n a r y at d p i , ) p o s i t / . i n p a c k e d w o r d s t a b l e . T h i s f u n c t i o n s c a n s t h e d i c t i o n a r y s e q u e n t i a l l y t i l ! i t / r e a c h e s t h e p a r t i c u l a r w o r d n u m b e r . T h e n i t r e a d s t h e n i b b l e s c o d e d i n t h e / d i c t i o n a r y l o c a t i o n a n d t r a n s l a t e . " t h e m u s i n g s o m e l a b ! e s . T h e n l i i e t r a n s l a t e d ; c o d e i s p r i n t e d o u t . T h e n i b b l e s a r e m a n a g e d b y i 4 . i. 4 e i ( n o . - d n i b b l e i s •...... ; r 4 = 2 5 5 i f n e x t n i b b l e i s h i g h . It u s e ; <|el no;-:l n i b b l e I u n c i i o n t o id >i-..-. / d i c t i o n a r y .
l e a l I sp , . . . : . -d e c b m p l : c i r p.-:;/ . 1.
p u s h • d p i P U S H d p l i M O V d p c i , l l w o . d s m o v vA, !!<• m o v a , T : >
l r. d o o m r ? / H e r o w>. mu.'.:!. s e e k p a s 1 o i l ! . ; s u p p o s e d i o f i i n ! . .
m o > ' I ! , o d c o m p 2 : a c t i f •!•>•: M e X t t i i b b i
.in 7 • (<-. (ii.i •',
/ W h e n w e g e l : H e t o , a w o v . t h a -; to I ; h e o o r . r e . - t o n e .
d i n ? i l , .-tcon-ix:
/Mow W O ' C O p o i ] n o t o • !,.:• .:••
d c o m p 3 : a c a 1 1 . . ;oi , , c x ! u.i b i d j z d<-omp o n d c j n e a , ! ! ! ' • , dco .up . i
/ T h e c i t a r a . ; l i s K I T E o!.: • i . o
• : n : . i i :
J m :
m o v e a , a.'.'pc S j R I P d c o m p . r . . d b "h rw-. iyb/:v!;g i z "
/ T h e c h a r a c t <• i i s o n e o 1. i H E
d c o m p i : i n c m o v e a , s , I p e
s j m p deomp.'-. . d ! . " e ! .i i. tt i s o 1 uiitp. 1
/ D e c i d e . i f .id s h o u l d h e t i p p e t t
d c o m p S : mov c P . - W . r m o v a c . - . b , c set b p s w . . ' . c j n e t O , # 2 0 , . .Icomp c l r a c e . ! .
d c o m p S : c j n e r O , 1112, d o o m p ' c l r a c e . . 5
d c o m p 7 : l e a l I c o - . \ t s j m p d c o i n p 3
d c o m p e n d : P O P d p h p o p d p i a j m p p c s t . r 1
; pimi • i i o t i ; . . ,.; J i, t s i . • •• I F M i s ! d / d i s p b . , y s p e c / c i e i ! l l - . - . i !>..! i o a . i i t i - ; • -ha r A T S o . / s t o r e dpd / S T " ! e d p h
/ l o a d d p t t w i t h w o l d s - i d o l . / i n i 1 i a l i z e n i b b l e s p e c i I i .er w i t . h a n / b o d wot • i fl->. i n t o A / 11nut • i I W ' u d Mo . i s ::o , .
'. i - I s . i t . t h e ; . t l . | . . t h a t •.••i|i. • i e l . i . ; h" • i r -
/ I O . | . i . I w i l l ! w- ! • I '/' . ; j u i i i j • • i . • :• • I [•-.•::i n I i>i i •. / I. >. .p i ! i • l e i . t ! ! ! " l I S t | - a - a i i'i' W a • ! . n .
•i B. O ( ; ; ( , ! I ! W M I Mo. I S
* t - • Il I V e • • I" * • . • p I I I ] 1 I T O I L I
/ i umi • i f i d.-n I i I i •• i i:
•.•• i s I • • . I ; L ' . - I O : I I \ • e i ! •• I s .
/ i c i a p i •:> -let. t , . n i b b l e l I a s r s p e c i f i e r ; / i i s o oitiont t h e i d . - n i i f j o t p o i n t t o s l w o i . - l . . i ; i i v i . l . :ha i a c t ... i f i . >m I lit: •!•-.•'.!. t a b l e / 'pimp
.; : i i , - | ' ( 1 ! l" l i ! I h o b i e t ! I. i i i • a i t . p.-.. i i : ' r o a d o h a l a c t o r f i . . m f h " i r - v i t a i . b i imio
• : a : a c t •
Hi. i v e • ' . i j . . i I , 1 1 ! " l l ( . | I b i o !.<. ' '
m o v e . - a p i a l f l a g t •.. A c c . . 5 ( m a k e s m a l l oi . o a p r . a i ! s o l . e i p . i l a . l f l a g t s m a l l I e f i e >. s fo> n e x t . ; j u m p i f wo i d N o . i s not: 2 0 ( 2 0 i s s p e c i a l , w o r d ! c l e a i A c e . ! , ( m a k e le t -1 o r c a p i t a l ) j u m p i.i w o r d N o . i s n o ! . 1 2 ( 1 2 . i s s p e c i a l w o s d )
c l e a r A. -c.. S (in :i k e I et-1 <\r t v . p i t a I.) ci t s p i i y i •)>• i r : C t . • • !
/ j u m p b a c k
/ r e s t o r e dpi-, / r e s t o i o d p ! / j u m p l a c k t o c a l l i n g ( m i c t i o n
130
;.|r.i n j b! . i ' ; n i b b l e s p e . - ; I ••.
a e ! . n e x t u i b i '•<• e l r raovc c i n e
IliOV -ill I r e l .
g m i 2 : inov .i n c s w a p a n ! r e t .
• l i u r n o l s p o . - i I i . • i u i > l-i t e d p i i -ih.i sw i r e
; ; ; T h . i s w o r d s :
i s t :he
•:•, H-l i d p i ! ! \ , " u , on:. . . ' r 4 , i lXV,
HOOOOi I J il>
r-'i, Ip.i d p i i . l a , ii 0000 1 m i ,
; c ! e , c A ;<V\ S p e c i l i . e y f. .
; jump ; i ;i i 1.1. i • • I .-• •' o r • ; s w i i r h n i b b l e . •. |-T
,-ni-isk . . in i i i . i l i u i b b b -; t o ! in n A a s i > i.•••i! : i i • 1 •
; s w i . l - c ! i n i l . l . l e ! , . p o ; i i i e r o n i o i i ! d p i i I . . i" • ••-.! I • -; ...::c!i i i h | O 1; i t ; t • . M i d : • - w i . • i -i -
/ m a s k o u t h i i j l i n i b b l e ; ; e l i l; li a s i d< i:' i ! i o i
Hot • I -.11." I • I d a ! ! s b l . in. I :C I : n !:
I.i o r i ( i n n i o f 1 2 8 w . . n l : i u s e d b y p ' - s l
OxH.2, Ox 0 0 , OxSH, 0 x 2 0>: h 6 , '••;-s:r;, - ' r s i o , d b Ox-M , O x P . i , OxBO, OxBI , II.V.1H, Ox'.i- , n.xr'i!, Ox 1 : dr. 0 x 7 F , OxAO, Ox 1 ;">, 0 x 7 F , OX I'.', o;-; ''••-.! d , li;.; ;-s
d b Ox-'-A, 0 x 5 0 , Oxfoi , 0x0 i , Ox!'-!- , O.xBA, OxOC, Ox F . l b Ox'36 , 0 x 0 1 , i ' .x i ib, (»x '.F, Or." 1'., •• • >•;•;, 0x01 •, o :-;. •-•
d b 0 x 5 F , Oxl 2 , 0 x 0 7 , 0 x 7 1 , Os/ 'K, o x ' . n , •x,' • • ! : • : • ! '
d b 0 x 3 1 ? , 0 x 6 2 , 0 x ! . 8 , 0 x 2 0, Ox 1 I- , Ox Ox Ox t: d b 0 x 2 4 , 0 x 4 0 , i ! x B ! l , 0 x 4 o , OxFi , e x ' . 1 , , •':;-:•.; '
d b 0 x 3 4 , OxOB, OxCA, 0 x « 9 , 0 x 0 3 , f :•.'.•>!, 0;<A1, flvUI'l
d b 0 x 5 8 , 0 x 8 0 , 0 x 0 4 , Oxl-! i . 0 x 0 2 , OxS.5, o x . 6 0 , 0 x 2 ^ d b O x ' U , OxFO, 0 x « 2 , 0 x 7 3 , Ox 1 F, Ox i 0, 0x7 F , 0 x 1 / d b 0 x 5 4 , 0 x 9 3 , 0 x 1 0 , 0 x 4 4 , 0 x 4 H, 0 x 0 7 , Ox 01 , 0 x 2 ' . d b 0 x 5 6 , 0 x 4 F , O x b O , OxKO, Oxl. 1, 0 x 7 2 , OxKO, Ox.1-:!: d b • 0 x 3 B , 0 x O 5 , OxFO, Ox.l Ox i f , Ox 5 6 , 0 x 3 0 , Ox.'-F d b 0 x 4 8 , 0 x 0 2 , 0 x 5 K , OxAii , Ox;- 0, 0 x 1 F , 0 x 0 1 , Ox 7 0
d b 0 x 3 0 , 0 x 0 5 , Oy.60, Ox,- ' . , 0x4 i , o x A 1, • : ••• Ox.."" d b 0 x 0 5 , 0 x 6 F , 0 x 0 1 , 0 x 3 F , 0 x 2 h , Oxl 1- , o x <o, I'X.O •' d b OxHK, Ox l b , 0.x FO, Ox'. >., OxFO, -'X-l / , a x i s ' d b 0 x 2 0 , Ox.l F, 0 x 2 \ , Ox <o, 0 x o 3 , 0 x 7 A, 0 x 0 i , t iyl . i i
d b 0 x 2 f , OxFO, Oxl-'n, 0x0 ' . , Oxe'F, Ox" : , Oxl A, (IX'iO d b l !x ' ' ! l , O.-I'O, o.xic , Oy.u ! , '•.•-•A ; , • ixOO, OX o d b Ox I F, Ox!) 1 , 0:<4O, 0 x 2 '., 0.-.0 ! , Ox '• , OxO'- , •sx.i •; d b OxO | , 0x7 A , 0x0 1 . Ox I 7 , •Or.'- I , 0 I, OX '•!), 11::;'/. d b 0 x O 8 , OxBC, 0 x 2 4, Ox u , , '•'•.•:•'•>, ey.BO, OxF '•, Oxi •• d b 0 x 6 0 , 0 x 2 5 , 0 x 4 ! , o . - . r . , ' I S l ' ' l , •2---.sK, OX'Xb, Ox I •> d b Sv i 2, ;>x.u;, OxO: , Ox 1 F . - is - i , e x l b , iixO l , 0;: i .1
d b Ox-lb , 0 x 7 6, 0 x 1 2 , Ox 0-1, OxAU, 0 :<27 , Ov'H), Ox'- . . d b Oxl.i 1 , 0 x 2 if, 0 x A 8 , Oxt' 1 - , OxFO, OxAA, 0 x 2 6 , 0 x 2 0 d b Ox :")!•', Oxl 0 , OxFO, 0 x F 3 , 0 x 6 1 , Oxi- F., Oxo i , 0 x 4 1 d b 0 x 7 3, 0x0 I , 0 x 2 7 , O x C i , 0 x 0 0 , 0 x 8 4 , Ox'U: , Ox.is.
d b O x o 1 , U>;07, 0 x 7 0 , o.".!.'., o.x-; !!••;! '1 ( u x 7 0 . o x ! I' d b 0 x A 8 , 0 x 0 9 , OxOO, o x / . ; , O x o , ! , 0X1 7 , o x 4 ,-t, Oxi- K d b 0 x 0 1 , O x C l , 0 x 8 4 , o x o r - , 0 x 1 5 , 0>;7 F , 0 x 0 2 , 0X.8B. d b . Ox ! 4 , 0 x 3 0 , 0 x 8 F , 0 x 6 ! , Ox V I , OXi.fc , Ox p i , OxF. ' d b Oxl 1 , 0 x 0 9 , Oy.1 0, 0 x 6 0 , 0 x 0 2 , 0 x 3 F , Or.o 1 , 0x0 ' .
d b Ox 7A, o x 4 J , Ox DO, Ox OA, OxOC, Ox i b . i i •.; 2. •':•, ox'- . -d b 0 x 0 7 , 0 x F 2 , Oxl 1 , O x i 7, 0X2 0, 0x4 I , O x b B , Ox '•'• d b 0 x 0 9 , 0 x F 7 , 0 x 7 5 , 0x1 3, OxOB, O.xA.', 0xl'<2, 0 x 4 u
d b 0 x 0 2 , o x . ' . F , 0 x 6 4 , 0 x 1 2 , i lxAO, OxOO, o x ; : •>, •i.xF. : d b 0 x 9 F , OxCO, 0 x 1 4 , 0 x 7 7 , O x / 0 , Oxl i , 0 x 4 0 , 0x7' I
d b 0 x 2 1 , OxC-.u, 0 x 6 8 , 0 x 2 5 , 0 x 4 | , OxKO , 0 x 6 ? ,
d b o x b ' . O x n o , 0 x 2 1 , O x b 1 , 0 x 6 . ! , OX . 'H; , 0:;!<O, d b • le-.O'. , O x l , , 0 x 7 3 , 0 x 3 0 , . . . . . . * , Oxi'd , t ix i .K, d b 0x110 , O x l . , 0 x 4 3 , OxKO, 0x5; . - , Ox. 'F , OxKO, d b 0 x 1 4 , OxDO, 0 x 2 3 , 0 x 0 3 , Ox KB, 0 x 3 ! , O x K 5 , d b 0 x 3 0 , 0 x 9 9 , O x K o , 0 x 0 3 , 0 x 3 F , 0::i,/t , '....•.•- , d b 0 x 6 0 , 0 x 2 3 , 0 x 4 . 1 , 0 x 2 K, 0 x F 3 , 0 x 0 1 , 0 x 5 6 , d b 0 x 9 3 , 0 x 0 9 , O x F E , 0 x 1 1 , Ox. K, Ox ? <> , OxISA, d b 0 x 7 5 , 0 x 4 2 , OxEA, 0 x 6 2 , 0 x 5 ! 5 , Ox AO , O x K 5 , d b 0 x 5 . 3 , Ox-11:', O x H I , OxCO, 0 x A 3 , OxO'l . u.-'4 2 . d b OxI - 'V, 0 x 1 2 , i i x t ) 4 , O x t - 2 , f x ! H, ox . 3 0 , o x K'',, d b 0 x 1 . 7 , 0 x 6 5 , ( 5 : 0 0 , O x ! ' . , Ox 1 5 , Ox - 0 , Oy/H?, d b O x ? , , 0 x 1 4 , O x 4 K , O x 1 ! , e x ' •(!, Ox (el , l
; S'F'R l o g o n 1: d b "Wo loom.;-" , 1 ?>!, l 4 « , ".! v ? • ! , b y ' , < ! , l o g o n 2 : d b 5 1 t • ' O O , 1 4 > t , "2 . IH.c , " , M » , ' ? . K'.i ••" , 1 '••!
d b I 4 y , " ? .tin!?" , ! MI), ? 1 3 , ! 1 l , " . " , ! a b o r t : d b •' " , ' 1 , 1 '"•«, i i , 1 CO, " ! " , 1 p r o m p t I : d b 1 4 H , " 2 I,--.:: " , o p r o m p t 2 : d b " •" , ICO ; m n s ! !• ! b - : a t o . o i o m p l : p r o m p t s : d b 1 3 4 , 2 0 2 , ! <(
p r o m p t 4 : d b " ) , " , ! 4<3, ! 4 0 , l ? H , ? 0 0 , " , ii p r o m p t 5 : d b . 31 , ! 5 i , . 1 3 0 , .1 0 5 , 1 ">., i 6 0 , 1 > i ti it
i i
d b i i d , , " JUMP" , 1 2 « , 1 3 4 , 1 i d . . . . . ,
, ' ft. 0 , 13 , ! 1 p r o m p t 6 : d b 1 3 , i 3 , 3 1 , 1 3 5 , 1 3 1 , 1 2 ' b " ; " , 0
p r o m p t " / : d b 31 , ? ? ? ! , ? f , 1 , " h e y : " , ( ) p r o m p t ! ' : d b .1 3 , 1 3 , 3 1 , 1 3 6 , ! 2 » , 1. 11 , i ? i i
p r o m p t s : d b 1 ' • , ! . < , 3 i , M (!, -:i,:"" '., e pron.pt ."-lb: d b i i , 1 2 . , 5 2 , 5 : , - i , , e i , 1 I ; inn p r o m p t 1 0 : d b ") " , . U , 1 3 C - , » , >7- ' , " : " b e g s t r : d b " F i r s t " , 3 ! , i 2 ' b " : " , 0 e n d s t r : d b " L a s t . " , 3 1 , 1 2 0 , ": " , 3 2 / t l
s u r e : d b 31 , 1 P 5 , I f . ! , " s u r e ?",("• e d i t s l : d b 1 3 , 1 3 , H , 1 5 ' - , 1 5 4 , b i n , " , " , ! 4 0 , 1 2 0 , . ' n o , l i e d i t s ? : d b " • • , 3 3 , 1 3 6 , l.'3 b " , " , ! 4 ? , ! ? ' , , : • • ! / , 1 ! 1 d n l d s i : d b
d b 1 3 , 1 3 , 3 1 , 15 " , " , ! 4 - * , .! 4 0
'"«, " a s . - i i , i l o o , l •;,
! « , ! 5<i, ! 4
d n b l s ? : d b ! 3 , 3 1 , 1 3><, 1 6 0 , " e d " , ! ;:, I 4
d n l d s 3 : d b 1 3 , 3 ! , 1 3 8 , 1 5 3 , " d " , 1 3 , 14 d n l d s 4 : d b " S u m m e r y : " , 1.4 d n l d s 5 : d b " " , 1 0 8 , " s " , 1 4 5 , " d " , 1 4 d n l d s 6 a : d b " " , ! 3 9 , 1 4 5 , " d " , 1 4 d n l d s C b : d b " " , I3<>, " w r i t t e n " , 14 d n l d s ' 7 : d b ' 3 1 , 1 ! . ! - , " : " , 1 4 d n l d s 8 : d b " " , 1 3 9 , " e n a b l e " , . ! . ? - ! , " i n i t •>" d n l d s 9 : d b 3 2 , 3 2 , " b a d " , 2 4 5 , " s " , ) 4 d n l d s 1 0 : d b " " , 1 1 3 , 1 5 0 , 1 5 0 , 1 5 0 , 14 d n l d s l l : d b " " , i 3 3 , 1 3 2 , 1 5 7 , 14 d n l d s 1 2 : d b " " , I 3 3 , " n o n " , I 3 2 , 1 5 / , i •! d n l d s 1 3 : d b 3 . 1 , 1:> 1 , 1 5 5 , " d e f e c t e d " , 1 3 , 14 r u n s l r d b . 1 3 , 1 3 4 , " n i n g " , 1 .30, " : " , 1 1 4 t i p l d s 3 : d b 1 3 , ! 3 , " . ' - e n d i n g " , 31 , 1 . 5 / , ! 3 ? , ! 3 7 , 1 7 2 , 3 2 , 3 2 , i l i p i d s 4 : d b " " , 1 2 f t , 3 2 , 3 2 , 0 I I I U S ! i -1. l e i - u p b i s h e l p ! t . x t : d b . 1 3 , 1 3 , " S t a n • l a r d " , . 31 , 1 5 0 " s " 1 <i , i t h e l p 2 t x t : d b 3 1 , 2 1 . 3 , 3 1 , 2 4 4 , "eci", .*•! , 1 . O •" S . " • • , , 1 4 t y p e l : d b 3 1 , 1 5 4 , 1 . 5 3 , 0 t y p e 2 : d b 3 1 , 1 3 0 , 0 t y p e 4 : d b 3 .1 , 1 4 3 , 3 1 , 2 2 6 , 3 1 , 1 7 0 , 0 t y p e 5 : d b " ? ? ? " , 0 h e l p _ _ c m d 2 : d b 3 1 , 2 1 5 , 0 h e l p _ c m d : d b 3 1 , 1 . 4 2 , 2 1 . 5 , 2 0 9 , 0 1 h o s e 11 <. ii'd s t . i .
d n . l d Up I d siloe jump cmd: . d b *'! 136, 128, 1 J I , 1 2 " , 0 dump cmd : . d b 3 1 ! 3 2 , 2 1 9 , 1 5 4 , 131 , o
int ir . cmd : . d b 3 1 132, 2 1 9 , 1 9 2 , 1 3 1 , 0 e d i t cmd: . d b u i ;•>(>, 1 5 4 , 1 4 6 , 0 clrra_ cir.d: . d b .'•] :.',3'/, .131,0 e r f r_ cmd: . d o .>•} 20 5 , 1 5 3 , 1 4 4 , 0 e r f r_ "ok: . d b 3.1 i 5 3 , 1 4 4 , 2 0 3 , ' • ! • , 1 3 , e r f r e r r : . d b u 1 3 3 , 155 , 13 , 1 4