P721CEEFAX 721 Wed 1:@Oct 12:02/24
‖B22p2213‖a17T/SPKp2‖m33B0e byte shifted
rigXt@#.e bUt@a↑d@bit÷eseme→ rUplaceh@w
ith bit zero.÷e÷e÷e W←←←←J←←←←JJJ-
→←←←+ Rotate W←←←←←←←←-←←←←←←←-+÷e
‖‖@7 n@u 4@3@2 1 0 ‖‖ J←←--←←←-> ‖‖
p@7@6@k 4@3 2 1 ‖‖÷e W←←←←←←-←-←←
J←←←←J+ W←-←←←←←←←←←--JJ--+÷e
÷e÷eThe bits in the accuUulator can be r
otated with the following code:÷e÷e÷e
@0PA@ @ < temp#raty@store@for tPe by
te÷e ROR A < rotate@one bit righ
tX@bjt@zer#@j→t#@catry÷e@@ @@ PLA@ @ <
restore byte÷e ROR A ½ rotate o
nj@bit right, catry i→to@bit@seven÷e÷e÷e
Each word or word-part in word PHROM A h
av@a↑ arvociateh@word ↑aZj. Thj÷echaract
ers of each word name are stored in reve
rse order (eg. ACORN is÷estored as NROCA
) with the bit1 in ever8 byte of the wor
d naZe rotated.÷e÷eRjversed data have@jv
ery bit in a byte stored in river1e orde
r.÷e÷e÷e W←←←--←←←←←←←←←←←←+ Reve
rse +-----------------+÷e >‖ 7 6
k 4 3 2 1 p ‖‖ -←←←←←←←-> ‖‖ 0 1 2 3 4
P721CEEFAX@/21 W @21:1%/h/
‖B22x3213‖a17T/SPKp2‖m3757 +-
→←←←←←←←←←←←←←←←+÷e÷e÷e(hj bits in tPj a
ccumulator can be reversed with the foll
#oi-F@f#Hju¾U¾e¾U@@@@@@@'IA@F/p@@@@@@@@@
½ store byte in &70÷e ROL &70
< bit 7 oe &70 into carry÷e RO
R A < carry to bit@7 of accuUu
lator÷e ROL &70 < bit 6 in
to carry÷e ROR A ↑ bit 7
to bit 6, carry to bit@7÷e ROL &7
0 < bit 5 into@carry÷e ROR
@B@ @@@ @ @@ <@b↑h@so@#→@...÷e@@@@ @@R
@F/p÷e@@ RO$ A÷e@@ ROL &70÷e@
R R A÷e@ @ROL F/0÷e ROR A÷e
ROL &70÷e ROR A÷e ROL
@&70÷e ROR A < bits in a
ccumulator reversed÷e÷e÷eThe speech data
@vtoreh j→ a@worh@0H% Z@arK@remersed@so
that they are in a÷esuitabli format to b
e feh directly to tPj@speech ptocessor.
Whj↑ tPe +peaR÷eExternal coUJand is used
to speaR data stored im RAM, those data
Zust@also÷ebe reverseh.÷e÷eThj@contents
@b↑d tra.vf#rUatio.s@of@worh@PH" @A@ati
P721CEEFAX 721 Wed 19 Oct 12:10/24
‖B220)213‖a17T/SPKp%‖Z3B0p-←-+-←←←←←←←←
←←←←←←←←←←←--←←←←←-←←←←←←←←←←+←←J←←←←←←
------+÷e‖‖ Address >‖ Content1
@ @@@@ @@@@@ @ @ @@‖‖@Ttanvl#rmati
on ‖‖÷e+-------------+------------------
--←-----←-----←------+-----←----------+÷
e‖‖ &00 ‖‖ PHR M format type (%0
p j→ PPR Z@B) ‖‖@No.e@ ‖‖÷e‖
‖ &01 ‖‖ File data flag (&FF in
PPR Z@A) ‖‖@No.j @ @ ‖‖÷e‖‖
&p2 ‖‖ ASCII "(" (hex. &28)
‖‖ None ‖‖÷e‖‖ &0
3 ‖‖ ASCII "C" (hex. &43)
@ ‖‖@Nonj ‖‖÷e‖‖@&p)
‖‖ ASCII ")" (hex. &29)
‖‖ Nomj@ ‖‖÷e‖‖ &p5 -
&35 ‖‖ Text - 3 strings separated by &
00 ‖‖ Nomj ‖‖÷e‖‖ &36@- &3
7 ‖‖ PHROM serial number (&0 in PHROM
AQ ‖‖@No→j @@ @‖‖÷e‖‖ F68@↑ Fs9@
>‖ Number of ─SCII words (&005F)
‖‖ Number@of pointers (%0104)
‖‖@No↑j @ @ ‖‖÷e‖‖@F3C@- &3D@ ‖‖
P721CEEFAX 721 Wed 19@Oct 12:11/28
>B22082)3‖a97T/SPKX2>m4)96Adecremint cou
↑ter÷e 330 BNE agai→ ½ if n
ot 0 do it again÷e @340 RTS÷e 3
60@→÷e @360@NEX(÷e 3/0@ NPS
jsv &$statt$÷i @380@statt=E.AL("&"+start
$)÷e 390 IF start > &3FFC THEN 370÷e 4
00 INPUT"End addriss &"end$÷e 410 end
=EVAL(!%"+end$)÷e 420 IF end > &3FFF TH
EN 400÷e 430 A%=&9FzREM:@wtite to speec
P@ptocecs#r÷e@@44p@:E=&4p+(statt@AND@&F)
:REM5 add Load Address command to LS nyb
ble÷e 450@CALL osbyte:REM:@write LS nyb
ble with Load Address command÷e 460 9%=
&40+(statt AND &Fp)D . &1p÷e 470 CALL o
sbyte÷e@@48p@:%>&4p+(statt AND@FF0p)DI.
&100÷i 490@CALL osbute÷e 500 Y%=&4C+(s
tart AND &F000)DIV &1000÷e 510 CALL osb
yte÷i k20 Y%=&43:REM: fifth byte always
@£&43÷e 530 CALL osbyte÷e 540 INPUT"Pr
inter (Y/N) "yes$÷i u50 IF LEFT$(yes$,1
) ="Y" THEN WDU15,2÷e 560 PRINTF"Addr";
÷e u70 0R NTTABQ
580 PRINTTABX28);"Rotated";÷e 590 PRINT
TAB(47);"Reversed"'÷e 600 FOR bloc+=sta
P721CEEFAX 721 Wed 19 Oct 12:12/21
‖B2209213‖a17T/SPKp2‖m41D1610 PRINT;"p";
÷U@@n%p@ FWF NU
p@ FWFR NRI
NT;‖÷blocS;" ";÷e 650 FOR memory=0 TO
3÷e 660 b=te(memor9)=USRhriad)AND &FF■
e 670 A%=byte(memory)÷e 680 byte(memor
z+4)=USRXrotate)AND &FF÷e 690 byte(memo
ry+8)=USR(reverse)AND &FF÷e /00 IF A%<1
6 VDU48÷e 710 PRINT;‖÷─%;" ";÷e 720 GE
XT÷e /30 FOR me←#ry=0 TO 3¾K /40 A%=by
te(memory)÷e 750 IF A%>31 AND A%<127 VD
UAE@JLSE@.D+4n÷i@@/60@NEXT÷e@@7/0 PR NT;
" ";÷e 780 FOR memory=4 TO 7÷e 790 A
%=byte(←emory)÷e 8p0 IF A%<16 .D+48÷e
810 0RINT;‖÷A%;" ";÷e 820 NEXT÷e 830 F
R memory=4 TO 7÷e 840 A%=byte(memory)÷
e 850 IF A%>31 AND A%>127 VDUA% ELSE WD
U)n÷e@ 860@NEXT÷e 870@PR N
80 FOR memory=8 TO 11÷e 890 A%=byte(mem
ory)÷e :00 IF A%<16 .DU48÷e 910 PRIN(;
‖÷A%;" ";÷e =20 NEXT÷e 930 FOR memory=
8 TO 11÷e 9)0 A%=byte(memory)÷e 950 IF
A%>31 AND A%<127 .DUA% ELSE VDU46÷e 96
0@NEX(÷e@@:70 0R NTNEXT
P721CEEFAX 721 Wed 19 Oct 12:12/12
‖B220A213‖a17T/SPKp2‖m42pB4$÷e 1010 IF L
EFT$(yes$,1)="Y" THEN RUN÷e 1p20 END÷i÷e
÷eLoad and run the program and use it to
hjsplay tPj first FsB bztes@of@word÷iPH
R M A. You should produci a display simi
lar to tPj o→j@show→ i→@figuti 2÷e÷e÷e+←
----------------------------------------
-←----------------------+÷e‖‖ Start add
ress &0
‖‖÷e‖‖ End address &sB
‖‖÷e‖‖ 0rinter (Y/N) N
‖‖÷e
‖‖@ @ @ @ @
>‖÷e‖‖ Addr
@ @U→tranvforUed Rotated
Rjversed >‖÷e‖‖
‖‖÷e‖‖ 0000 00 FF 28 43 ..(C
pp FF 24@A1@↑.↑. 0p@FF 24 C2@.↑..
‖‖÷e‖‖ 0004 29 31 39 38 )198 :4 98
9C 1C .-.. 9) 8C 9C 1C ..-. ‖‖÷e‖‖ p
008 s2 20 41 63 2 Ac 19 10 A0 B1 ...
. 4C p4 82 C6 L... ‖‖÷e‖‖ 000C 6F
P721 EEFAX@/22 W 11:k+/2p
>B220D213‖a17T/SPKp2‖m42BA3‖‖ Addr +
↑tra.sform Rotated RB
ve7sed ‖÷e‖‖
‖‖÷e‖‖ 003C 00 J2 00 p2 ... 0
0 p1 p0 01 .@O. 00 , 00 40 .@.@ ‖‖÷e
‖‖ 04 pA 4 u3 AC .@S. 5 2 A9 5
6 . .1 50 p2 CA 7 P.↑5 ‖‖÷e‖‖ 0044
4z 60 FC E0 I‖─.. A, 30 7E 0 .p‖÷p
22 06 3E 07 .→?. ‖‖÷e‖‖ 0048 EF E0
nI 1 .X←. F/@/0 B- 08 .p.. F7 07 B
n 08 ....@ ‖‖÷e‖‖ 0 )C nC p Dk ‖0 l-
. (m 48 E: 48 nOOO @sm p9@CB p9@6...
‖‖÷@‖‖ 0p+p@ n% 0 BE@k@ bPu @@p1@2
8 $E 28 )(.( 4n 0A FD 0A F... ‖÷ ‖‖
0pk) 2E@1C A% 3 ...) 17 pE p1 1A .
.Q. /4 38 45 *C t8E, ‖÷e‖‖ 00+8 0
@@p 84@C,@↑→→)@@@pm@:0 44 n%@.PBb@@@p0@
0k@21 2s p↑!£ ‖‖÷ ‖‖ 0 kC D1 ) p1 z
4 O4.. E8 1A 80 4A ...J 8B 2C 80 29
.,.) ‖÷e‖‖ 0060 EC 20 53 A0 . S.
76 10 A9 50 v..P 37 p4 CA p5 7... >‖÷
e‖‖ >
: ‖‖÷e‖‖ 00F0
P721CEEFAX 721 Wed 1z@ ct 12:07/28
>B220F213‖a1/T/@PKp%‖m4@24 @ > 2 @@ @4
↑ jh FF 2:@3&@E .Q*% FF 4A n-@26 ↑
.% >‖÷e‖‖ 824C 72 5C )0 50 b½>─P 3
‖‖ 28 1&4( &4 @ ‖‖ pA F:.. ‖ fe
>‖ 8250 10 28 83 bB (.. 08 4 C1 D
@.↑.. 08 24 C& 3D@.... ‖‖÷e‖‖ p%5)
A2 26 Cp 00 /&.. 51 13 50 00 Q ‖─.
45 6) 03 00 Ed.. ‖‖÷e‖‖ p258 3 k2
6A 4 ?Rjd F 29 35 32 )5 FC 4A 56
@4n@‖ &%@ ‖ &F‖ p% C@@@kC@ 0@ 0@20 <‖C
P. 2E 30 28 08 0(. 3A 16 0A 0 :...
‖‖÷e‖‖ p260 28 83 BB A2 (... 14 C
1 Ep k1 @@@@ 14 C1 Dm 4s O@ @@ ‖÷e‖‖
p&n) & C1 pp pp & ↑↑ 2k np d pp
‖─p2 ) 3 00 00 d↑-. ‖‖÷e‖‖ p% 8
00 3 FF 2 .OR 00 81 FF 29 ...) 00
F A ‖‖÷e‖‖ p C 2 8A zC
yC@b↑ ↑@ @g1 4: 4E 4F@2JNO @ 4n@u1 ky@/z
FQ > ÷e‖‖ 827p A B1 4F WP O
5 8 8 A7 T(.. 15 pA 8D F2 . .. ‖‖
÷e‖‖@
@ @ 1 @ 2
‖) R
‖‖÷eW←←← ←←←← ←←←←←