Code Monkey home page Code Monkey logo

temu-vsb's Introduction

              ───────────────── ╓─╥─╖ ╓──╖ ╥─╥─╖ ╖  ╓ ─────────────────────
              ─────────────────   ║   ╟──╜ ║ ║ ║ ║  ║ ─────────────────────
              ─────────────────   ╨   ╙──╜ ╜ ╨ ╙ ╙──╨ ─────────────────────

              ┌───────────────────────────────────────────────────────────┐
              │  An ultimate TANDY, PCjr & PS/1 sound chip emulator for   │
              │  PC-Speaker & Covox; also Disney Sound Source emulator.   │
              └─────────────────────╒══════════════╕──────────────────────┘
                                    │ Version 3.03 │
                      ┌─────────────╘══════════════╛─────────────┐
                      │ (C)opyleft 1992-1993 by FRIENDS software │
                      └──────────────────────────────────────────┘


                      ── ▄██▄   ▄██▄  ▄███████▄  ▄████████▄ ───
                   ───── ████   ████ ████▀ ▀████ ████   ████ ─────
                ──────── ████   ████ ▀█████▄▄    █████████▀ ─────────
             ─────────── ▀███▄ ▄███▀    ▀▀█████▄ ████▀▀▀███▄ ───────────
          ─────────────── ▀███████▀  ████▄ ▄████ ████▄▄▄████ ──────────────
       ──────────────────── ▀███▀     ▀███████▀  ▀████████▀ ──────────────────
    ══════════════════════╕ VIRTUAL ════ SOUND ════ BLASTER ╒════════════════════
                          │       SoundBlaster emulator     │
                          │      for Covox & PC-Speaker     │
                          └─────────────────────────────────┘
                    (C)opyright 1993,1994,1995 by FRIENDS software


English translation:
════════════════════

TEMU emulator sound synthesizer Tandy 1000 computer (PC-compatible). This is a
simple three-voice FM-channel synthesizer with noise, found in many
home computers of the time (MSX, Dendy etc).

VSB is a Virtual SoundBlaster - emulator of the digital audio SoundBlaster card.
It works in most DOS games with digital sound.

temu303.arj, vsb103.arj - the first version of emulators, work only in pure DOS
without an extended memory manager (such as QEMM386).

The archive src.zip contains the source code and binary distributions of
TEMU & VSB. The later version of the VSB can work both with and without QEMM. In
fact, both the QEMM- and non-QEMM-versions of VSB are combined in a single
executable that runs one of the two, depending on the environment.


оригинальный русский текст:
═══════════════════════════

TEMU это эмулятор звукового синтезатора компьютера Tandy 1000 (PC-совместимого).
Это простой трёхголосый FM-синтезатор с шумовым каналом, подобный встречался у многих
домашних компьютеров того времени (MSX, Dendy и т.п).

VSB это Virtual SoundBlaster - эмулятор цифровой части звуковой карты SoundBlaster.
Работает в большинстве DOS игр с цифровым звуком.

temu303.arj, vsb103.arj - первые версии эмуляторов, работают только в чистом DOS без
менеджеров расширенной памяти (типа QEMM386).

В архиве src.zip находятся исходные тексты и бинарные дистрибутивы более поздних версий
TEMU & VSB. Более поздняя версия VSB умеет работать как без QEMM, так и с ним. По сути,
это две разные программы в одном, в зависимости от окружения запускается одна из двух.

temu-vsb's People

Contributors

volkertb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

temu-vsb's Issues

Translate/port assembly code dialect from TASM to FASM

The source code for TEMU and VSB is written in x86 assembly language, specifically in a dialect that targets Borland's (now Embarcadero's) Turbo Assembler (TASM). Since TASM is (still) proprietary software, there is currently no way to build TEMU and VSM from source using completely Free (with a capital F) and Open Source tools.

There are several open source x86 assemblers available that are capable of building MS-DOS executables. Of these, FASM ("Flat Assembler") seems the most promising alternative so far. It provides a mature and fairly user-friendly IDE as well as an active community at https://board.flatassembler.net/.

Unfortunately, porting assembly code from one assembler dialect to another is not trivial. I've already taken a few attempts, but it looks like I'll need some help from said community to accomplish this. It seems like a fun and educational challenge, though. 😄

But any help is welcome!

Figure out and document the build and test instructions

Although the ultimate goal is to port the code to an open source assembler dialect such as FASM (see #1), a first step would be to figure out and document how to build the artifacts (temu.com and vsb.com) using the original toolchain, as well as how to build the tests, which are written in Turbo Pascal.

Embarcadero currently offers versions of Borland C and Turbo Pascal for free legal download for people who register on-line on their site. I have had some success in assembling and linking the sources, although the resulting COM executables do not appear to have the same exact checksum as the COM files that were included in the ZIP archive that contained the sources.

NOTE: Apparently, one of the included Pascal source files, mvsb.pas, compiles into a tool that makes up part of the build chain. This specific tool is responsible for combining the QEMM-specific version of VSB and the clean DOS version of VSB into a single unified executable (COM?) file.

The exact versions and hashes of the proprietary utilities that were apparently used for assembling and linking the Assembly sources:

name version size date SHA-256 what it does OSS alternative
exe2bin.exe ? 27232 1994-07-11 31f0dc09a03874f674127693f546d401bda8f885e9fc1c0720c005a209f847ac Converts single-segment EXEs to COMs Yes, bundled with FreeDOS
tasm.exe 3.2i 214097 1995-12-29 9159877479b2e6001b7d566b269675b3b67501e4bdc910d6857d673f1f0ed545 Assembles assembly code to object code none that are fully compatible
tlib.exe ? 34646 1994-11-10 f91295a413331d6a0e7478c431a8de2b12ec57d1fb321e55cde4e555c9990dac OS/2 utility??? OS/2 utility???
tlink.exe 3.01 143329 1994-11-10 b23826239ac2e89f49aef927f24d0a85dc3c0ea940557f066c0383db49c4363a links object code to executable binaries possibly, requires further research

Make binaries compatible with FreeDOS

It would be nice if the Virtual Sound Blaster could be compatible with the JEMM386 memory manager that comes with FreeDOS.
Right now the program simply returns that you need EMM386 or QEMM386 for it to run.

Make the Pascal (test and build) sources work with Free Pascal or GNU Pascal

The x86 assembly source code files of VSB are accompanied with some Pascal sources, for both testing and building VSB:

  • sbemu/mvsb.pas -> the source of a build tool that combines the QEMM-specific and clean DOS variants of VSB into a unified executable for convenience.
  • sbemu/sbdma.pas -> tests the correct emulation of Sound Blaster DMA playback functionality
  • sbemu/sbcode.pas -> tests the correct emulation of an undocumented encryption feature in Sound Blaster hardware

Most likely, these are Turbo Pascal sources. It is important to get these test and build tools to succesfully compile and build as well. Hopefully these sources will require no to little modifications to compile and build with open source alternatives, such as Free Pascal, GNU Pascal, or other open source Pascal implementations listed at https://www.thefreecountry.com/compilers/pascal.shtml.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.