Background:
This page deals with the TRS-80’s Orchestra 80/85/90/90CC.
The ORCH 80/85/90/90CC was a product of Software Affair, which allowed for 4 or 5 (depending on the model) simultaneous voices of music. Bryan Eggers and Jon Bokelman were the principals of that company.
Search ORCH Database [NO DOWNLOADS ARE AVAILABLE]:
If you get a message that the table is empty, then there are no files for your criteria. To see ALL entries, you can just hit submit.
ORCH-80/85/90 Command Summary:
ORCH-80/85/90 Players, Programs, and Downloads:
Players
Orch90CD is a command line ORCH-80/85/90 player. To play a music file named ‘orchfile’, type the command: orch90cd orchfile. Instructions are in the ZIP file.
A Foobar 2000 Orchestra 80/85/90, Piano-90, and Orch-2000 plugin.
Orchestra-90/PC is a simple, no-frills program that plays original Orchestra-80/85/90 and Piano-85/90 ASCII files on a PC using a sound card. It is launched from the command line.
Player for various types of music files which you may find on the Internet. Plays ORC-90 files for Windows/Mac/Linux; although development for Windows and Linux stopped in 2008.
Hosted on http://bannister.org/software/ao.htm.
A WinAmp Orchestra 80/85/90, Piano-90, and Orch-2000 plugin. Copy the plugin DLL file from the plug-in into your \Program Files\Winamp\Plugins directory, restart WinAmp, and play your orchs.
Front end for Jon Bokelman’s ORCH-90/PC.
ORCH-85 player for the TRS-80.
ORCH-90 player for the TRS-80.
Converters
O2M is a simple, no-frills program that converts an Orchestra-90 music file to a MIDI file. O2M is executed from the command line with at least two arguments. More elaborate Midi file manipulation is beyond the scope of this program and is best performed by a full-function, Midi-file editor.
Converts ORC files into CMF (Creative Music Format), one of the earliest containers of music on the PC. Very rough and tumble.
Converts ORC files to/from ASCII.
Other Utilities
Appends ORC files together.
Copy ORC Files Between Tape/Disk/Memory.
Exactly what the topic line says.
Strip off 0A from ORCH Files.
Significant Individuals in the ORCH-80/85/90 Arena:
- Larry Alexander – Email: lonestar1@cox-internet.com
Web Site: https://www.alexandermusic.com - Jon Bokelman (ORCH-80/85/90) – Email: jb@jmlpartners.com
- Jerry Bradshaw – Email: bradshaw@fuse.net
- John Renfro Davis – Email: jrdavis@lcc.net
- Bryan Eggers (ORCH-80/85/90) – Email: vegasnews@cox.net
- Robert A. Fowkes – Email: rfowkes@worldnet.att.net
- Charles Grisamore – Email: grisamore@mindspring.com
ORCH-80/85/90/90CC Manuals: [Click to Download]
Orchestra-85 Regular Edition Manual
Year: 1981
TOSEC: Orchestra-85 Regular Edition (1981)(Jon Bokelman)
Orchestra-85 Special Composers Edition Manual
Year: 1981
TOSEC: Orchestra-85 Special Composers Edition (1981)(Jon Bokelman)
Zaps
Official Zap 1 for Orchestra-85 SCE 21-Apr-82
Required for double density operation with LDOS. ORCH85 was finding the directory, but it was not reading the correct number of records specified by LDOS.
This ZAP is not just for LDOS, but all DOS’s. It’s just that LDOS is the only DOS that allows moving the DIR to a nonstandard location.
1) Locate FRS 17 of ORCH85/CMD S.C.E. (master program).
2) MOD bytes 73 and 74.
3) Change 7E 5D to AC 53.
Official Zap 2 For PIANO-85/90 15-Aug-82
This is a mandatory zap which corrects a situation where the attacks were being reset by Part numbers, instead of continuing the decay of the previous measure.
#PIANO-85 FRS 19, BYTE A7 change 36 to 00.
#PIANO-90 FRS 19, BYTE B0 change 36 to 00.
Official Zap 3 for PIANO-85 30-Sep-82
This applies to PIANO85/CMD only!! (MASTER PROGRAM ONLY). Thanks to Ray Pelzer, we have a zap to correct the LDOS double-density DIR problem. PIANO was not reading all the DIR sectors. The zap should be applied regardless of which DOS you use.
1) FRS 20 (14 hex)
2) Bytes 7F and 80
3) change FF 60 to A1 54
4) LDOS ‘PATCH’ FORMAT:
5) PATCH PIANO85/CMD (X’6E2B’=A1 54)
Piano-85 Chain ZAP by Jimmy Lyon 70135,161
The following zap for Piano 85 will allow chaining under Newdos80 version 2.0. The zaps require that system option AT=Y and that there is a dummy character at the beginning of each line in the chain file.
This bypasses the automatic repeating. The program then uses the DOS keyboard scanning for repeating and other things. Keep a unzapped version for writing music as the program will be unusable for editing.
Frs 12, byte 45
change 0F CC E3 03 FD To:
0F CD 2B 00 FD
This allows the chaining to work.
FRS 12,13
Change 21 21 85 11 40 38 36 to:
21 00 00 11 00 00 36
Modifying ORCH-85 and PIANO-85 to Take Command File Inputs – By R. Baker
This article relates only to the Model I versions of either of these wonderful music programs. I have no information on the Model 3/4 versions, although the patches should be just as easy.
If you have a large number of ORCH or PIANO music files, you might like a way to more completely automate the playing of them. The (G)et command only plays a few pieces before you have to attend to it again. I wanted to be able to call for any number of songs, preferably with their titles stored in an text file on disk.
Since most TRS-80 DOSs now have some kind of “DO” capability, which will feed simulated keystrokes from a text file into an application program, it seemed most straightforward to make use of this. Unfortunately, the ORCH and PIANO programs do not take their keyboard input via the standard system device drivers. Instead, they call their own keyboard driver, and they won’t listen to a DO file input. To correct this the music programs must be made to call the DOS keyboard driver instead of their own. This technique works cleanly insofar as it has to, for reading and playing music files, but does not allow editing or composing etc. So don’t try to use the modified ORCH or PIANO programs for this. Use them only for playing music files under the control of the DOS.
The keyboard driver call is easily altered, as described below, by changing only two bytes in either of the programs (at 5EE1 for ORCH-85 or at 6268 for PIANO-85). This change alone will let you use text file inputs as commands. Thus you could have a DO file such as this (where ORCH4GET/CMD is the modified ORCH-85/CMD program):
ORCH4GET/CMD
G FUGUE GIGUE LONE PERGO TARREG etc..
G MERRILY NOEL ANGELS HYMN1 etc...
G ROMEO etc...
etc.
QUIT
and it would play all of the indicated songs. I was pretty happy with this, but also wanted to be able to call for some silences between the selections, to keep disk drive noises from interfering with the music. The best solution would have been to locate the code that reads and plays a file under the (G)et command, and patch in time delays there. I was unable to do this, so I considered just calling for some dummy or redundant (S)core operations for each song in my command file. This works fine but leads to very long command files, since you can only put one command on a line.
To tighten these up, I needed to make the ORCH or PIANO program recognize a substitute character for the Carriage Return (byte 0D). I enlarged upon the keyboard patch I already had, adding a filter action that would watch for “;” (byte 3B) and change it to 0D. This requires nine additional bytes of code, and the safest place I could put them is over the initial logo text. The remaining text can be modified to convey the same information still, if you like. With this filter patch in place, a command file such as this can be used:
ORCH4GET/CMD
R FUGUE;S;S;P;S;S
R GIGUE;S;S;P;S;S.
R LONE;S;S;P;S;S
QUIT
In this example, after each piece is (R)ead it is (S)cored twice to provide for a delay while the disk drives stop, and after it has (P)layed it is again (S)cored a couple of times to provide another delay before the disk drives restart.
The patches for both programs are given below. You will need the address of the keyboard driver for your DOS. To find it, boot the DOS normally and examine locations 4016H and 4017H. You can do this using DEBUG or by just PEEKing them from Disk Basic. The bytes are in the normal low-high sequence; eg. for DOSPLUS the driver is at 4DC0, and 4016H holds C0 and 4017H holds 4D. In the patches below, LL refers to the byte found in 4016H, and HH refers to that found in 4017H.
To actually make any of these changes, you should either use the “Patch” utility supplied with your DOS, or use a high-memory machine language monitor, or the DOS ‘LOAD’ and ‘DUMP’ commands, in conjunction with DEBUG. The details of doing this vary greatly with each utility, and are beyond the scope of this discussion. Also note that for DOSPLUS, at least, the DO file operations proceed from high memory, which does not appear to be affected by the ORCH or PIANO music programs. This may not be the case with DO or JCL operations under other DOSs.
ORCH-85
These are the modifications for ORCH-85 (after configuring and saving as four or five voice, fast or slow speed). The program loads from 5900 to 6CAF, with entry at 6B27.
To make it take its command inputs from a DO file, modify the keyboard driver call as follows:
5EE1: change CD 1D 62 to CD LL HH.
To additionally make ORCH-85 take “;” for a carriage return, patch as follows:
5D70: change " BOKELMAN" to CD LL HH FE 3B C0 3E 0D C9.
Then at 5EE1 change the call to: CD 70 5D.
Change the number of bytes written for the logo (reduce by nine) at the two block moves that may be used: after 6300 and after 6C91, change the 01 2C to 01 23.
PIANO-85
These are the modifications for PIANO-85 (after configuring and saving as fast or slow speed). The program loads from 5A00 to 6FA7, with entry at 6E86.
To make it take its command inputs from a DO file, modify the keyboard driver call as follows:
6268: change CD A2 65 to CD LL HH.
To additionally make PIANO-85 take “;” for a carriage return, a patch is put in the logo text at 60F7: change ” BOKELMAN” to CD LL HH FE 3B C0 3E 0D C9. Then at 6268 change the call to: CD F7 60. Finally, change the number of bytes written for the logo (reduce by nine) at the block move: after 668B change the 01 28 to 01 1F.
The above changes have been made to create: ORCH4GET/CMD, ORCH5GET/CMD, AND PIANOGET/CMD. All assume a 3.54 MHz clock, and ORCH5GET/CMD is configured for five voices. The others are for four voices.