Language Simple Instruction Machine Programming Language in English
(No the same as SIMPLE on the site.)
Date: | 07/01/06 |
Author: | Barry Hitchings |
URL: | n/a |
Comments: | 2 |
Info: | n/a |
Score: | (3.00 in 79 votes) |
[::PROGRAM:99 Bottles of beer [::IO: SID::KYB SOD::TTY SED::NUL SSD::NUL ] [::VARS: A EQL @1 ; set message pointer B EQL @3 ; set message pointer C EQL 99 ; assign variable C D EQL 1 ; assign variable D E EQL 0 ; assign variable E ] C FOR 1 ; for C 99 to 1 D FOR 2 ; for D 1 to 2 RMP A ; reset message pointer PRT C ; print C CHR SP ; write ' ' WRT A ; write [CR]'Bottle' C TEQ 1 ; is C = 1 SIT ; skip instruction if true CHR As ; write 's' WRT A ; write ' of beer on the wall' D TEQ 2 ; is D = 2 < ; instruction block start IIT ; if true CHR A, ; write ',' CHR SP ; write ' ' HLT ; halt instruction block IIF ; if false CHR A. ; write '.' HLT ; halt instruction block > ; instruction block end LOP ; repeat D loop WRT A ; write [CR]'Take one down and pass it around, ' E EQL C ; E = C E SUB 1 ; E - 1 E TEQ 0 ; is E = 0 < ; instruction block start IIT ; if true WRT B ; write 'No ' HLT ; halt instruction block IIF ; if false PRT E ; print E CHR SP ; write ' ' HLT ; halt instruction block > ; instruction block end WRT A ; write 'more bottle' E TEQ 1 ; is E = 1 SIT ; skip instruction if true CHR As ; write 's' WRT A ; write ' of beer on the wall.' LOP ; repeat C Loop A MAD 1 ; A = Message pointer @2 WRT A ; Write 'Go to the shops....' END ; End program {::DATA:Message Data @1:T $$JBottle$$X of beer on the wall$$X$$JTake one down and pass it around, $$X more bottle$$X of beer on the wall.$$M @2:T $$JNo more bottles of beer on the wall. No more bottles of beer.$$JGo to the shop and buy some more, 99 Bottles of beer on the wall.$$J$$M @3:T No $$M $$@ }
Download Source | Write Comment
Download Source | Write Comment
Add Comment
Please provide a value for the fields Name,
Comment and Security Code.
This is a gravatar-friendly website.
E-mail addresses will never be shown.
Enter your e-mail address to use your gravatar.
Please don't post large portions of code here! Use the form to submit new examples or updates instead!
Comments
Barry Hitchings said on 07/13/06 00:02:25
Oops made a mistake...
RMP A ; reset message pointer
PRT C ; print C
CHR SP ; write ' '
WRT A ; write [CR]'Bottle'
C TEQ 1 ; is C = 1
should be
RMP A ; reset message pointer
CHR CR ; write [CR]
PRT C ; print C
CHR SP ; write ' '
WRT A ; write 'Bottle'
C TEQ 1 ; is C = 1
and
@1:T
$$JBottle$$X of beer on the wall$$X$$JTake one down and pass it around, $$X more bottle$$X of beer
on the wall.$$M
should be
@1:T
Bottle$$X of beer on the wall$$X$$JTake one down and pass it around, $$X more bottle$$X of beer
on the wall.$$M
Now it will print correctly... Domo...
Gareth Ollard said on 10/05/06 18:32:17
Yo Baz, Get In Contact Dude!
g.ollard@ntlworld.com