Related Articles: Program Printout: Beethoven
Developer(s): Stephane Crainic
Date: 1983
Type: Program
Platform(s): TS 1000
Source Code
1 REM \7B\3D\20\FD\C9\06\E0\5E\AF\BB\28\0C\DB\FE\CD\82\40\D3\FF\CD\82\40\18\05\0E\05\0D\20\FD\10\E8\C9\21\B7\40\CD\87\40\23\7E\FE\FF\20\F7\C9\20\20 2 REM \B8\B8\00\B8\00\A5\A5\00\B8\B8\00\8B\8B\00\94\94\94\94\00\00\B8\B8\00\B8\00\A5\A5\00\B8\B8\00\8B\8B\00\94\94\94\94\00\B8\B8\00\B8\00\60\60\60\73\73\73\00\8B\8B\8B\00\94\94\00\A5\A5\A5\00\6B\6B\00\6B\73\73\00\94\94\00\83\83\00\94\94\94\FF\83\00\83\83\6B\6B\9C\9C\83\83\94\94\C3\C3\00\7A\83\00\83\83\6B\6B\9C\9C\83\83\94\94\7A\7A\00\7A\83\94\A5\B8\B8\C3\C3\B8\B8\FF\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B\1B 10 LET A$="... " 20 LET A$=A$+"FFF" 25 LET O=16567 30 FOR I=1 TO LEN A$-1 STEP 2 40 POKE O,(CODE A$(I)-28)*16+CODE A$(I+1)-28 50 LET O=O+1 60 NEXT I 70 FAST 80 LET K=USR 16546 99 STOP 100 SAVE "BEETHOVE%N" 110 PRINT "********************************************BEETHOVEN*******************************************" 120 PRINT ,,"PROGRAMME CREATED BY S. CRAINIC FOR THE SINCLAIR ZX81 +16K" 130 PRINT ,,"EACH SOUND CORRESPONDS TO AN HE-XADECIMAL VALUE. IN ORDER TO OB-TAIN THE DESIRED MELODY,YOU MUSTENTER SUCCESSIVELY IN LINE 10 (LET A$=""... ..."") THE HEXADECI-MAL CODE OF EACH SOUND IN THEIR ORDER IN THE MELODY." 140 PRINT " THE SOUNDS HAVE EQUAL LENGTHS. A LONGER DURATION OF A GIVEN SOUND COULD BE OBTAINED BY ENTE-RING MANY TIMES SUCCESSIVELY THECODE CORRESPONDING TO THE SAME SOUND. INTERVALS ARE OBTAINED BYENTERING THE ""00"" VALUE." 145 PRINT AT 21,0;"HIT A KEY TO CONT." 150 IF INKEY$="" THEN GOTO 150 155 CLS 160 PRINT " NOTE 1ST SCALE 2ND SCALE--------------------------------" 165 DIM B$(2,24) 170 LET B$(1)="F0E5D8CFC3B8ADA59C948BA3" 175 LET B$(2)="7A736B67605A56514B484440" 180 LET C$="C C+;D-D D+;E-E F F+;G-G G+;A-A A+;B-B " 190 FOR I=1 TO 12 200 PRINT C$(I*5-4 TO I*5);TAB 11;B$(1,I*2-1 TO I*2);TAB 24;B$(2,I*2-1 TO I*2) 210 NEXT I 220 PRINT ,,"AS EXAMPLES, SOME MELODIES WERE CODED IN LINES 1000... IF YOU WANT TO ""PLAY"" ONE OF THEM, EN- TER %R%U%N% %1%0%0%0, OR 1010... %>%M%A%K%E% %T%H%E% %T%O%N%E% %O%F% %Y%O%U%R% %T%V% %S%E%T% % % %L%O%U%D%E%R% AND% %N%E%W%L%I%N%E%." 230 PRINT AT 21,0;" HIT A KEY TO CONT " 240 IF INKEY$="" THEN GOTO 240 245 CLS 247 PRINT "EXCUSE ME, I""M WORKING..." 248 FOR I=1 TO 30 249 NEXT I 250 FAST 255 RUN 9990 1000 REM %H%A%P%P%Y% %B%I%R%T%H%D%A%Y 1005 LET A$="B8B800B800A5A500B8B8008B8B00949494940000B8B800B800A5A500B8B8008B8B009494949400B8B800B800606060737373008B8B8B00949400A5A5A5006B6B006B737300949400838300949494" 1009 GOTO 20 1010 REM %4%0%T%H% %S%Y%M%P%H%O%N%Y 1011 LET A$="B8C300C3C300B8C300C3C300B8C300C3C37A7A7A007A8394940094A5B8B800B8C3D8D800D8D8D800C3D800D8D8C3D800D8D800C3D800D8D88383830083949C9C009CB8C3C300C3D8F0F000F0F0007A830083836B6B9C9C83839494C3C3007A830083836B6B9C9C838394947A7A007A8394A5B8B8C3C3B8B8" 1019 GOTO 20 9989 STOP 9990 LET A$="7B3D20FDC906E05EAFBB280CDBFECD8240D3FFCD824018050E050D20FD10E8C921B740CD8740237EFEFF20F7C9" 9991 LET O=16514 9992 FOR I=1 TO LEN A$-1 STEP 2 9993 POKE O,(CODE A$(I)-28)*16+CODE A$(I+1)-28 9994 LET O=O+1 9996 NEXT I 9997 SLOW 9998 CLS