Code Monkey home page Code Monkey logo

dams's Introduction

README file for DAMS.

 DAMS - An integrated Editor/Assembler/debugger for the Amstrad CPC.
 Copyright (C) 1984-2015  Pascal Séguy


Background
----------
As a computer enthusiast, I wrote DAMS for my own on a 48Ko Sinclair
ZX Spectrum, I was twenty years old. The next year, in summer 1985,
I ported it on Amstrad CPC and DAMS has been marketed for this computer
by the French company Micro-Application for five years.

Then I've been working in computing science on different platforms,
with other programming languages, forgetting everything up to the Z80
instruction set, and DAMS usage itself.

In 1999 I had the opportunity to import DAMS sources from the unique
3" floppy holding them for a decade in my attic, to my hard disk,
saving them from definitive loss.

Today (March 2015), thirty years after, it appears that DAMS has not
only be an appreciated tool by the CPC's software developers, but
there is still a small community using/hacking/improving it.


Goals
-----
I wrote DAMS on a 48Ko computer with no disk, only (audio K7) tapes!
I had to keep in mind to save bytes, not only in DAMS code size, but
also in sources file to be able to edit and assemble them. The
consequence is that symbols/labels were shortened, and I wrote no
comment at all!

I've started that tricky job to comment the source code thirty years
after, and I've decided to open the project for the DAMS user's
community be able to help me to comment it, fix bugs, and maybe
improve it.


Prerequisite
------------
The project contains a helpful Makefile intended to run on an
unix like environment, with g++ and libboost-dev (I've done this
stuff on Ubuntu trusty).

For this Makefile to run, you also need iDSK
(http://sid.cpc.free.fr/iDSK.0.13-src.tgz) to generate a CPC disk image.

You need 'asciidoc' to generate the DAMS user's manual.



Getting started
---------------
Clone my DAMS repository on github. Command line:

	git clone [email protected]:pseguy/dams.git

DAMS source code is a unique text file named 'dams.dams'. There is
also a tool 'damsdecode' and a Makefile (tested on Linux) that builds
a ready to use 'DAMS dev' floppy image with a special DAMS developement
version executable capable to generate DAMS itself, and DAMS sources
file in DAMS format. To make this floppy image run:

	make dams.dsk

Then you can either write a real floppy or jump into your favorite CPC
emulator with this disk image.


Build DAMS
-----------
On your CPC or from your favorite emulator, run DAMS from the previously
generated dams.dsk floppy. Load it at #1000. Be sure the version printed
is at least:

	"DAMS 1.2-dev"

Then, at DAMS prompt, set himem to 28990:
	M 28990

Assemble with the 'generate relocation table' option:
	F128,D1.BIN

At the question "Object code address ?", answer:
	29000

During assembly, the screen is filled with garbage (actually,
the symbols table), don't mind.

Once assembled, save it:
	P2,DAMS.BIN

You've got now a new DAMS, ready to use.


Maintaining sources
-------------------
I edit DAMS sources on my Linux host, working on the 'dams.dams' file,
and I use the damsdecode tool (that I've made for this purpose) for
exporting sources on the target CPC.

To make DAMS real source files for assembly on a CPC, encode it:

		./damsdecode -e -o D1.BIN <dams.dams

This create 3 files: D1.BIN, D2.BIN, D3.BIN ('make bin' is a shortcut)
You can transfer these files on CPC for assembly.

Note: You could recreate dams.dams from the D?.BIN file:
		./damsdecode <D1.BIN >dams.dams

but beware that all comments would be lost since the encoder strip
them by default.


Contribute
----------
I've done the most important part to save the source code
of this project from oblivion.

Help would be appreciated in the following points:

o Source code comments. (I think I've done the most tricky part,
  everything else remains to do).

o Bug fix (keyboard ESC, numeric keypad, P2 after 'A0'...)

o Provide English documentation. The DAMS user's manual is to be
  translated from French (damsman-fr.adoc).

Feel free to fork DAMS on github and send me pull requests
https://help.github.com/articles/using-pull-requests/ .


License
-------
GNU GPL, See the 'LICENSE' file.


Contact
-------
Let me know what you have done or plan to do with DAMS, email
me at <[email protected]>.

dams's People

Contributors

pseguy avatar ast49152 avatar

Watchers

James Cloos avatar

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.