LearnAsm.net

Learn Assembly Programming...
With ChibiAkumas!

New Domains! Bookmark www.LearnAsm.net or www.AssemblyTutorial.com for all your Assembly programming needs!

68000 Resources

Resources related to these tutorials

68000 Cheatsheet - Commands and info
Cheatsheet for 68000 assembly development - contains 68000 commands details
DevToos - My collection of 68000 Development tools and scripts
Download these to get started with my 68000 tutorials quickly and easily.
Sources.7z - All sourcecode for my tutorials
Download this to get all the source code for my tutorials

68000 Tutorials

Basic 68000 tutorials - We'll use Notepad++ and Vasm in these tutorials.

Lesson 1 - Getting started with 68000  [68000]
Lets get started with the 68000 CPU, we'll learn how to assemble a program with VASM, we'll look at the template file we'll be using in these tutorials, We'll look at the basics of moving values into registers with MOV, jumping to subroutines with JSR... adding and subtracting with ADD and SUB and working with memory
[Documentation] [Video] [Forum]
Lesson 2 - Addressing Modes of the 68000[68000]
In this tutorial we'll look at 'addressing modes' these are how the CPU selects a source or destination address for an operation - here we'll go through each addressing mode with practical examples
[Documentation] [Video] [Forum]
Lesson 3 - Loops and Conditions  [68000]
This tutorial covers using LEA to load an effective address, we'll look at labels and defining Symbols with EQU... we'll cover JMP and BRA for jumping and Branching, Bcc condition codes like BEQ, BNE, BCS and BCC... we'll also look at loops with DBRA
Lesson 4 - Stack, Traps, and Maths! [68000]
In this tutorial we'll learn how the stack works on the 68000 CPU - we'll learn the concepts of stacks, the PUSH and POP commands, how the JSR uses the stack... using MOVEM to move multiple registers onto the stack, PEA to push an effective address onto the stack.
We'll also cover mathematical operations: NEG for negation, DIVS,DIVU for division, MULS and MULU for multiplication... we'll also cover the concepts of TRAPs for OS calls
[Documentation] [Video] [Forum]
Lesson 5 - Bits and swaps! [68000]
In this lesson we'll learn about Logical ops like AND, OR ,EOR and NOT... We'll look at how to test and change one bit of a register with BTST, BSET, BCLR and BCHG... we'll look at rotation with ROL, ROR, LSL and LSR... we'll also look at 'Scc' - set on condition.
As well as bit ops, we'll look at SWAP and EXG for swapping register values
Lesson 6 -  More Bits... Extends and Macros [68000]
This tutorial covers the Extend flag, the CCR / SR flags register, Rotating with eXtend bit with ROXR and ROXL, arithmetic  shifts with ASL and ASR... also using the extend bit for 64 bit + maths with SUBX, ADDX and NEGX... Sign extending with EXT, and doing nothing with NOP!... last but by no means least, we'll cover conditional compilation.
[Documentation] [Video]

Hello World Series

Lets look at simple Hello World examples - each with a single ASM file.

Lesson H1 - Hello World on the X68000 [X68]
Lets learn how to write 'Hello World' on the Sharp x68K - we'll cover the code itself, the format of the X File executable used by the x68...  Building an executable XFile with VASM, putting it onto a disk, and running it with an X68k emulator.
[Documentation] [Video]
Lesson H2 - Hello World on the Atari ST [AST]
In this tutorial we'll learn how to write 'Hello World' on the Atari ST, compile and link it it with VASM to make an executable TOS, and load it in our emulator via hard disk emulation
[Documentation] [Video]
Lesson H3 -  Hello World on the NeoGeo [NEO]
In this tutorial we'll learn how to write 'Hello World' on the Neo Geo, we'll use a basic template ROM file, set up our font in the FIX ROM, and show Hello world... we'll compile with VASM, and then learn how to make an XML file so our ROM will load in MAME
[Documentation] [Video]
Lesson H4 - Hello World on the Sinclair QL [SQL]
In this tutorial we'll learn how to write 'Hello World' on the Sinclair QL, we'll write Hello World, Compile it with VASM, and attach a directory of windows as a virtual drive in our emulator, we'll then write a boot program to start and run our program on the QL
[Documentation] [Video]
Lesson H5 - Hello World on the Genesis / Megadrive [GEN]
In this tutorial we'll learn how to write 'Hello World' on the Genesis, we'll learn how to build a rom file with VASM and start it with the Fusion emulator,
[Documentation] [Video]
Lesson H6 - Hello World on the Amiga [AMI]
In this tutorial we'll learn how to write 'Hello World' on the Amiga, we'll compile it with VASM, and load it with WinUAE via an folder on our hard drive, which we'll set up to emulate a hard disk
[Documentation] [Video]

Platform Specific Series
Now we know the basics, lets learn about the systems we're covering

Lesson P1 - Bitmap Functions on the X68000 [X68]
This Tutorial will teach us the basics of drawing bitmap graphics on the Sharp X68000 (x68k), we'll set up the screen and Show a bitmap and print characters to the screen from a bitmap font. also learn about VBLANK
[Documentation] [Video] [Forum]
Lesson P2 - Bitmap Functions on the Atari ST [AST]
In this lesson we'll cover the Atari ST - We'll learn how to Set up the screen, calculate screen positions and create bitmap data in the correct format for the Atari ST
[Documentation] [Video] [Forum]
Lesson P3 - Using the FIX layer to draw bitmaps on the NeoGeo [NEO]
Learn about the NeoGeo Fix Layer - designed for text - we'll learn about the pixel format of the FIX ROM, include a FIX ROM in our Mame XML, and use it to get a bitmap to the screen... we'll also cover VBlank
[Documentation] [Video] [Forum]
Lesson P4 - Bitmap Functions on the Sinclair QL [SQL]
Learn about the Sinclair QL screen modes, both 4 and 8 color - including the flashing option!... we'll turn on the screen, define our bitmap and show it... we'lll also learn how to detect Vblank.
[Documentation] [Video] [Forum]
Lesson P5 - Bitmap Functions on the Genesis [GEN]
This tutorial covers the Genesis / Megadrive... we'll learn how to set up the screen, define Mega Drive Tile patterns, then use the tilemap to show a bitmap to the screen... we'll also learn how to use vblank on the genesis
[Documentation] [Video] [Forum]
Lesson P6 - Bitmap Functions on the Amiga [AMI]
In this lesson we'll learn about the Amiga, we'll learn how to set up the copperlist, use Chip Ram to define a screen, and how the screen is made up of bitplanes... we'll use this to get our image to the screen, and learn to use Vblank to control the speed of our game.
[Documentation] [Video] [Forum]
Lesson P7 - Joystick Reading on the X68000 [X68]
Let's learn how to use Joypads on the Sharp X68000... The x68k can use MSX or Genesis type Joypads! we'll learn how to read in from joypads, and show the results to the screen
[Documentation] [Video] [Forum]
Lesson P8 - Joystick Reading on the Atari ST [AST]
Let's learn how to use Joypads on the Atari ST... we'll need to use a Bios Trap to read in from the joysticks.
[Documentation] [Video] [Forum]
Lesson P9 - Joystick Reading on the NeoGeo [NEO]
Let's learn how to use Joypads on the Neo Geo AES / MVS
[Documentation] [Video] [Forum]
Lesson P10 - Cursor reading on the Sinclair QL [SQL]
Let's learn how to read the Cursor keys of the Sinclair QL - these are also used by the joystick ports
[Documentation] [Video] [Forum]
Lesson P11 - Joystick Reading on the Genesis [GEN]
In this Lesson you'll learn how to read the Cursor keys of the Sinclair QL - these are also used by the joystick ports
[Documentation] [Video] [Forum]
Lesson P12 - Joystick Reading on the Amiga [AMI]
This tutorial teaches how to read in the Joysticks of the Amiga.
[Documentation] [Video] [Forum]
Lesson P13 - Palette definitions on the X68000  [X68]
This tutorial teaches how to define screen colors on the Sharp x68k
[Documentation] [Video]
Lesson P14 - Palette definitions on the Atari ST [AST]
Learn how to define screen colors on the Atari ST
[Documentation] [Video]
Lesson P15 -  Palette Definitions on the NeoGeo [NEO]
This Lesson teaches you how to define the screen colors on the Neo Geo AES or MVS
[Documentation] [Video]
Lesson P16 - Palette Definitions on the Genesis [GEN]
This Tutorial covers how to define the screen colors on the Megadrive / Genesis
[Documentation] [Video]
Lesson P17 - Palette Definitions on the Amiga [AMI]
This Tutorial covers how to define the screen colors on the Amiga
[Documentation] [Video]
Lesson P18 - Sound on the X68000 [X68]
Learn how to make simple sounds on the Sharp x68k
[Documentation] [Video]
Lesson P19 - Sound on the NeoGeo via FM with the YM2610 (and Genesis!)  [NEO] [GEN]
This tutorial covers the YM2610 - this relates to the Neo Geo and Mega Drive / Genesis
[Documentation] [Video]
Lesson P20 - FM Sound on the Genesis via the Z80 [Z80] [GEN]
Lets learn how we can control the Megadrive / Genesis FM chip via the Z80
[Documentation] [Video]
Lesson P21 - FM Sound on the Genesis via the 68000 [68000] [GEN]
Lets learn how we can control the Megadrive / Genesis FM chip via the 68000
[Documentation] [Video] [Forum]
Lesson P22 - Sound on the Sinclair QL [SQL]
This tutorial teaches how to make sound on the Sinclair QL
[Documentation] [Video] [Forum]

Lesson P23 - Sound on the Amiga [AMI]
This tutorial teaches how to make sound on the Amiga with digital samples
[Documentation] [Video] [Forum]
Lesson P24 - Hardware Sprites on the X68000 [X68]
This lesson covers hardware sprites on the Sharp x68k
[Documentation] [Video]
Lesson P25 - Hardware Sprites on the NeoGeo [NEO]
Learn how to use hardware sprites on the Neo Geo
[Documentation] [Video]
Lesson P26 - Making a tilemap from Hardware Sprites on the NeoGeo [NEO]
As the NeoGeo doesn't have a tilemap, we have to simulate one via sprites... This tutorial covers how to do this
[Documentation] [Video]
Lesson P27 - Hardware Sprites on the Genesis / Megadrive [GEN]
Lets look at how to use hardware sprites on the Megadrive / Genesis
[Documentation] [Video]
Lesson P28 - Hardware Sprites on the Amiga [AMI]
This tutorial teaches how to use and combine Amiga sprites for 4 or 16 color sprites on the amiga.
[Documentation] [Video]