../images/terug.gif

File-headers

Hieronder een paar hex-dumps van de verschillende file-headers die in de loop van de tijd gangbaar zijn geworden voor de Atom.

Atom Standaard executable formaat

00000000 00 3c 							Load address = 0x3c00 
00000002 00 3c 							Exec address = 0x3c00 
00000004 00 00 00 00 00 00 00 00 00 00 00 00			Reserved???
00000010 ec b1 8c 30 80 b0 b0 60 20 a0 20 60			Payload
0000001c 20 60 a0 60 70 79 70 9d 6b b8 7d 1f 6c 0d

Structures

atom_file_exec = // 
{
	UINT16	addr_to_load;	//
	UINT16	addr_to_exec;	//
	BYTE	filename[13];	//

	BYTE	payload[size];	// Executable 6502 code
}

Atom Standard BASIC text format

Dit is een eenvoudig file dat de Basic listing bevat zonder header.

00000000 0d 							CR
00000001 00 0a							Line number 10
00000003 20 50 52 4f 47 52 41 4d 20 44 52 55 50 50 45 4c 0d	" PROGRAM DRUPPEL" CR
00000014 00 14							Line number 20
00000016 20 44 49 4d 20 52 55 28 31 30 29 0d			" DIM RR(10)" CR
00000022 00 1e							Line number 30
00000024 20 0d							" " CR
00000026 00 28							Line number 40 
00000028 20 52 45 4d 20 41 54 4f fd 41 54 49 53 43 48 45	" REM ATOMATISCHE"
00000038 20 52 41 4d 5a 41 41 44 2d 0d				"RAMZAAD" CR
00000042 00 32							Line number 50

Structures

atom_basic_line = 
{
	UINT8	line_num_hi;	// MSB first! for speed of BASIC
	UINT8	line_num_lo;	//
	BYTE	line_text[];	// 
	BYTE	terminator_cr;	// always CR
}
atom_basic_program = 
{
	atom_basic_line[];	// just an array of lines
}

NB er een beperkte regellengte, overschrijding daarvan laat de Atom vastlopen.


Atom-in-PC

De header die gebruikt wordt door Atom-in-PC van Roland Leurs.

00000000 00 29 							Load address = 0x2900 
00000002 af af 							Exec address = 0xafaf
00000004 00 00 00 00 00 00 00 00 00 00 00 00 00			Reserved ????
00000010 0d 							CR
00000011 00 0a							Line number 10
00000013 20 50 52 4f 47 52 41 4d 20 44 52 55 50 50 45 4c 0d	" PROGRAM DRUPPEL" CR
00000024 00 14							Line number 20
00000026 20 44 49 4d 20 52 55 28 31 30 29 0d			" DIM RR(10)" CR
00000032 00 1e							Line number 30
00000034 20 0d							" " CR
00000036 00 28							Line number 40 
00000038 20 52 45 4d 20 41 54 4f fd 41 54 49 53 43 48 45	" REM ATOMATISCHE"
00000048 20 52 41 4d 5a 41 41 44 2d 0d				"RAMZAAD" CR
00000052 00 32							Line number 50

Structures

atom_file_roland = // 
{
	UINT16	addr_to_load;	//
	UINT16	addr_to_exec;	//
	BYTE	filename[13];	//

	BYTE	payload[size];	// e.g. BASIC program text
}

Atom Emulator

De header die gebruikt wordt door Atom Emulator Wouter Ras

00000000 44 52 55 50 50 45 4c 00 00 00 00 00 00 00 00 00 	"DRUPPEL" plus nine zeros
00000010 00 29 							Load address = 0x2900
00000012 86 ce 							Exec address = 0xce86
00000014 f1 0e 							Size = 0x0ef1
00000016 0d 							CR
00000017 00 0a							Line number 10
00000019 20 50 52 4f 47 52 41 4d 20 44 52 55 50 50 45 4c 0d	" PROGRAM DRUPPEL" CR
0000002a 00 14							Line number 20
0000002c 20 44 49 4d 20 52 55 28 31 30 29 0d			" DIM RR(10)" CR
00000038 00 1e							Line number 30
0000003a 20 0d							" " CR
0000003c 00 28							Line number 40 
0000003e 20 52 45 4d 20 41 54 4f fd 41 54 49 53 43 48 45	" REM ATOMATISCHE"
0000004e 20 52 41 4d 5a 41 41 44 2d 0d				"RAMZAAD" CR
00000059 00 32							Line number 50

Structures

atom_file_wouter = // 
{
	BYTE	filename_c[16];	// NULL terminated, C style
	UINT16	addr_to_load;	//
	UINT16	addr_to_exec;	//
	UINT16	size;		//

	BYTE	payload[size];	// e.g. BASIC program text
}

Wouter Ras's emulator plaatste de filename aan het begin gevolgd door een aantal spaties en het load- en exec-adres en programma grootte