MK68 SANDBOX Readme

SANDBOX - программа, написанная на ассемблере M68K под Сегу, для тестирования и отладки кода, экспериментов или просто изучения команд ассемблера M68K. Это целая среда с необходимыми средствами отладки - возможностью просмотра регастров, оперативной памяти. Но самое главное, при написании кода вы сможете воспользоваться дополнительными командами, для вывода текста, значений регистров и даже приостановки программы в любом месте.

Использование

Размещайте свои программы в папке Proj, все ASM-файлы в этой папке будут включены в ROM во время компиляции.

Для компиляции вызывайте build.bat. Когда РОМ успешно построится, в папке появятся файлы sandbox.bin и sandbox.lst. Запустите SANDBOX в эмуляторе, очень советую для этой цели использовать Regen, так как у него самая точная эмуляция, которая покажет все ошибки в ваших программах, которые могут произойти на реальном железе. После открытия РОМа в эмуляторе, выберите любую программу и нажмите START для запуска.

Примечания

Перед началом работы с программой, ознакомьтесь с этими примечаниями, чтобы избежать некоторых неурядиц в будущем:

Команды

OUT [string]

Выводит заданную строку в консоль.

[string] - Любой набор символов в кавычках. Длина не ограничена. К сожалению, русские буковки пока не поддерживаются.

Примеры:

	out	"I'm writing text in the console!"
	out	'Now the calculations will be done'

OUTx [data],[flags]

Выводит численное значение в консоль.

[x] - размер выводимых данных "w" (word), "b" (byte) и "l" (long). Всего получается 3 команды: outb, outw and outl.
[data] - все, что угодно, например: d0, a0, (a0), 4(a5), ($FF0000).w или просто число #$1010.
[flags] - может принимать следующие значения:

Можно также комбинировать несколько параметров операторами "+" или "|" (но мне нравится плюсик), так что, если вы хотите отобразить число в двоичной системе и убрать нули слева, можно написать: bin+trim.

Примеры:

	move.b	#$FF,d0		; move $FF to d0
	outb	d0,signed	; display it as signed number
	
	outw	#$1010		; display in default mode: unsigned hex
	
	outl	#$-1000000,dec+signed	; this will display the number as signed decimal

BREAK

Переходит на следующую строку.

CLS

Очищает консоль.

PAUSE

Прерывает программу до нажатия кнопки "С". Когда программа приостановлена, вы можете переключаться к другим вкладкам в SANDBOX'е, например "RAM" или "Registers" для просмотра состояния памяти и регистров.

Внимание: Не вызывайте эту команду из суброутин (когда вы вызвали bsr/jsr).

Примеры:

	pause			; you can pause here
	bsr.s	Subprogram
	pause			; you can pause here
	rts
	
Subprogram:
	pause			; this will cause fatal error
	rts
; -----------------------
	moveq	#5,d0
Loop:	delay	10		; Cycle, not subprogram. You can delay it here!
	dbf	d0,Loop
; -----------------------
	move.w	d0,-(sp)	; move d0 into the stack
	pause			; ERROR!!!
	move.w	(sp)+,d0	; get d0 from the stack
	pause			; correct!

DELAY [frames]

Задерживает программу на заданное количество кадров.

[frames] - количество кадров, начиная с 1. Если использовать значение 0, произойдет баг, в итоге программа задержится на $FF кадров.

Внимание: Не вызывайте эту команду из суброутин.