0e2d2619e4 | ||
---|---|---|
000.trackdisk | ||
001.simple_image | ||
002.sprite_display | ||
003.music | ||
004.copper_bars | ||
005.copper_vert | ||
006.simple_blit | ||
007.masked_blit | ||
008.shift_blit | ||
009.anim_blit | ||
010.blit_speed | ||
011.ehb_mode | ||
012.ham_mode | ||
013.dithered_ham | ||
014.lace_mode | ||
015.sliced_ham | ||
016.copper_fun | ||
017.dual_playfield | ||
assets | ||
doc | ||
examples | ||
include | ||
shared | ||
tools | ||
.gitignore | ||
Makefile | ||
README.md |
README.md
(re)Learning how to program an Amiga after a 20 year break
introduction
This repo contains example programs I have written as I re-learn how to program an amiga. The programs are written in assembler and directly access the hardware. The target is an Amiga 500 (my long lost friend). Currently I do not own an amiga, so I can only test using UAE, so it's possible they will not work on the real hardware.
Don't use this as an amiga programming guide. I don't do things the "correct" way. There are heaps of great guides out there if you want to do things the right way.
documentation
Most of the sites I have used during the learning process:
- 68000 instructions
- vasm documentation
- vlink documentation (PDF)
- amiga registers
- amiga hardware reference manual
- amiga rkm devices manual
- coppershade.org downloads
- copper timing details
- coding forum
- coding forum
examples
Each example tries to introduce only one new concept, often building on the previous examples.
See each example's README.md for a limited description as well as a clickable link to run the example in your browser using my hacked version of Scripted Amiga Emulator
cross development environment
These examples are developed on a mac using cahirwpz's AmigaOS cross compiler for Linux / MacOSX / Windows.
https://github.com/cahirwpz/amigaos-cross-toolchain
The support tools I have developed have additional requirements which you may not have on your system.
For a dump of what I did to install them see installing the cross development environment
building
Build all examples by running make
at the top level directory.
Each example will have an ADF file in it's bin
directory. These files can be loaded directly as DF0: on FS-UAE or Scripted Amiga Emulator using the AROS ROM.
Individual examples can be built by entering the directory and running make:
# cd 001.simple_image
# make
tools
The following cross development tools have been developed to support the examples:
- imagecon # create amiga compatible raw image data from true color images
- resize # resize images ready for imagecon
- makeadf # make ADF disk image
Each tool has a test to check if any changes you have made have broken basic functionality:
# cd tools/imagecon
# make test
______ ___ _____ _____ ___________
| ___ \/ _ \ / ___/ ___| ___| _ \
| |_/ / /_\ \\ `--.\ `--.| |__ | | | |
| __/| _ | `--. \`--. \ __|| | | |
| | | | | |/\__/ /\__/ / |___| |/ /
\_| \_| |_/\____/\____/\____/|___/
#
or test all by running make test
at the top level
license
Some of the code I have included in this repository is copyright by various authors and provided under various licenses. Copyright notices are preseved where possible.
Some of the tools use GPL licensed libraries which would mean they could only be distributed under the conditions of the respective version of the GPL.
All code without a copyright notice is probably in the public domain.