RosettaCodeData/Task/Hello-world-Line-printer/EDSAC-order-code/hello-world-line-printer.edsac

62 lines
1.3 KiB
Plaintext

[ Hello world
===========
A program for the EDSAC
Can be used to print any character string:
the string (including necessary *F and #F
characters) should be stored in sequential
memory addresses beginning at @+17.
The last character of the string should be
marked with a 1 in the least significant
bit. This can be coded by using D in place
of F, e.g. AD would be an 'A' as the last
character
Works with Initial Orders 2 ]
T56K
GK
[ 0 ] O17@ [ Print character ]
[ 1 ] H17@ [ AND character with 1: ]
C15@ [ if the result is 1, we ]
S15@ [ have reached the end ]
E13@ [ of the string ]
T14@ [ Modify the orders in ]
A@ [ addresses @+0 and @+1 ]
A16@ [ to point to the next ]
T@ [ character ]
A1@
A16@
T1@
E@
[ 13 ] ZF
[ 14 ] PF
[ 15 ] PD
[ 16 ] P1F [ NB Least significant bit
is not part of address,
so add 2 not 1 ]
[ 17 ] *F [ Letter shift ]
HF
EF
LF
LF
OF
!F [ Blank ]
WF
OF
RF
LF
DF
@F [ Carriage return ]
&D [ Line feed + 1 ]
EZPF