diff --git a/doc/antic.htm b/doc/antic.htm deleted file mode 100644 index dbef5b0..0000000 --- a/doc/antic.htm +++ /dev/null @@ -1,105 +0,0 @@ - -
--
-
Address | Read register | Write register |
^40 | unused | DMACTL |
^41 | unused | CHRCTL |
^42 | unused | DLPTRL |
^43 | unused | DLPTRH |
^44 | unused | HSCROL |
^45 | unused | VSCROL |
^46 | unused | unused |
^47 | unused | PMBASE |
^48 | unused | unused |
^49 | unused | CHBASE |
^4A | unused | WSYNC |
^4B | VCOUNT | unused |
^4C | LPENH | unused |
^4D | LPENV | unused |
^4E | unused | NMIEN |
^4F | NMIST | unused |
-
-
-
-CHRCTL
-- Characters control
-
-DLPTRL DLPTRH
-- Display List pointer
-
-DMACTL
-- DMA control
-
-HSCROL
-- Horizontal scroll
-
-LPENH
-- Light pen horizontal position
-
-LPENV
-- Light pen vertical position
-
-NMIEN
-- NMI enable
-
-NMIST
-- NMI status
-
-PMBASE
-- Player/missile base
-
-VCOUNT
-- Vertical count
-
-VSCROL
-- Vertial scroll
-
-WSYNC
-- Wait for synchronization
-
-
-
\ No newline at end of file
diff --git a/doc/atari.gif b/doc/atari.gif
deleted file mode 100644
index d542d80..0000000
Binary files a/doc/atari.gif and /dev/null differ
diff --git a/doc/cpubugs.asx b/doc/cpubugs.asx
deleted file mode 100644
index d78fe8d..0000000
--- a/doc/cpubugs.asx
+++ /dev/null
@@ -1,99 +0,0 @@
-* This program detects 6502 bugs.
-* Please read text after program first.
-
-icmd equ $342
-ibuf equ $344
-ilen equ $348
-ciomain equ $e456
-
- org $8000
- dta h(*) Buggy jump fetches this byte...
- lda #$ff ... and jumps to this location
- jmp cont
-
-start lda #11 Clear screen
- ldx
+ Back
+
+
\ No newline at end of file
diff --git a/doc/faq.htm b/doc/faq.htm
new file mode 100644
index 0000000..11ae52f
--- /dev/null
+++ b/doc/faq.htm
@@ -0,0 +1,27 @@
+
+ I want to run xasm on my Amiga / Atari ST / Mac / ... Why xasm, not X-ASM as in previous versions? Why final edition? What about supporting other 6502-based machines, other processors (65816 etc.) ? Back
+
+
\ No newline at end of file
diff --git a/doc/gr0.htm b/doc/gr0.htm
deleted file mode 100644
index f732074..0000000
--- a/doc/gr0.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-COLPF0 COLPF1 COLPF2 COLPF3
-- Colors of player field
-
-COLPM0 COLPM1 COLPM2 COLPM3
-- Colors of players and missiles
-
-CONSOL
-- Consol keys
-
-GRAFM
-- Graphics of missiles
-
-GRAFP0 GRAFP1 GRAFP2 GRAFP3
-- Graphics of players
-
-GTIACTL
-- GTIA control
-
-HITCLR
-- Clear collision registers
-
-HPOSM0 HPOSM1 HPOSM2 HPOSM3
-- Horizontal positions of missiles
-
-HPOSP0 HPOSP1 HPOSP2 HPOSP3
-- Horizontal positions of players
-
-KOLM0P KOLM1P KOLM2P KOLM3P
-- Collisions of missiles with players
-
-KOLM0PF KOLM1PF KOLM2PF KOLM3PF
-- Collisions of missiles with playfield
-
-KOLP0P KOLP1P KOLP2P KOLP3P
-- Collisions of players with players
-
-KOLP0PF KOLP1PF KOLP2PF KOLP3PF
-- Collisions of players with playfield
-
-PAL
-- PAL system flag
-
-PMCTL
-- Player/Missile Control
-
-SIZEM
-- Sizes of missiles
-
-SIZEP0 SIZEP1 SIZEP2 SIZEP3
-- Sizes of players
-
-Manuals of utilities:
-
-
-Atari XL/XE documentation (under construction):
-
-
-Visit X-ASM Homepage:
-http://www.6502.org/users/fox/xasm
-
-All programs and documentation are freeware. Copyright (c) 1998-2000 Taquart.
+
+ this package contains following utilities (click program name for documentation):
+
+ other documents:
+
+xasm home page:
+http://xasm.atari.org
+
+ Permission is granted to anyone to use this software and its documentation
+for any purpose, including commercial applications, and redistribute it
+freely in its original form. The author makes no representations about
+the suitability of this software for any purpose. It is provided "as is"
+without express or implied warranty.
+
-
-
-
-
-
-PORTA
-- Port B
-
-PACTL
-- Port A Control
-
-PBCTL
-- Port B Control
-
-
-
\ No newline at end of file
diff --git a/doc/pokey.htm b/doc/pokey.htm
deleted file mode 100644
index 1e09ec0..0000000
--- a/doc/pokey.htm
+++ /dev/null
@@ -1,164 +0,0 @@
-
-
-
-
-
-
-
-AUDCTL
-- Audio control
-
-AUDF1 AUDF2 AUDF3 AUDF4
-- Audio frequency
-
-IRQEN
-- IRQ enable
-
-IRQST
-- IRQ status
-
-KBCODE
-- Keyboard code
-
-POT0 POT1 POT2 POT3
-- Potentiometrs
-
-POTGO
-- Potentiometr goes
-
-POTST
-- Potentiometrs status
-
-RANDOM
-- Random
-
-SERIN
-- Serial input
-
-SEROUT
-- Serial output
-
-SKCTL
-- Serial and keyboard control
-
-SKSTAT
-- Serial and keyboard status
-
-SKSTRES
-- SKSTAT reset
-
-STIMER
-- Start timers
-
-
-
\ No newline at end of file
diff --git a/doc/xasm.htm b/doc/xasm.htm
index 41d22cd..98ff82d 100644
--- a/doc/xasm.htm
+++ b/doc/xasm.htm
@@ -1,14 +1,14 @@
-
+
+
+
-If there was no error, variables point at last issued warning.
+If there was no error, variables point to the last issued warning.
If no warning occured, they are removed from the environment.
+Note: NCE is an old editor for DOS. To learn about integration with
+modern text editors for Windows read this.
+
-
+If no filename given, listing is written to source.lst
+(where source is the name of the source file (without extension).
-
+Note: Much more powerful for this purpose is GNU make utility.
+In DOS and Windows you may use its DJGPP port (available from
+http://www.delorie.com/djgpp).
+
+
+
+
+
-
+
+
+
If source is incorrect, X-Asm stops on first encountered error.
+There can't be any space within a field, except for strings and comments.
There are following types of fields:
+succesfully taking operands, X-Asm discards the remaining part of line.
+However, general purpose text editors may highlight
+the comments only if a special delimiter is used, and for that reason,
+the semicolon is recommended to start a comment.
+Labels can't be redefined.
-Single instruction always consists of 3 letters. It can be:
+Single instruction always consists of 3 letters. It may be:
-Operators are similar to used in C language, but their priorities are different
-than in C.
-Compare and logical operators assume that zero is false and non-zero is true.
+Note that although the operators are similar to these used in C, C++ and Java,
+their priorities are different than in these languages.
+Compare and logical operators assume that zero is false and a non-zero is true.
They return 1 for true.
While calculating expression, signed 32-bit arithmetic is used. When range of 32 bits
is exceeded, 'Arithmetic overflow' error is generated.
@@ -401,23 +462,30 @@ Examples:
here equ *
-
You may enter many expressions in parentheses and combine different types
of data in single line, separating things with commas.
+representing a quarter of sine with amplitude of 1000.
@@ -494,8 +562,8 @@ Example:
+They are not unofficial instructions, so they work on typical 6502.
+loads 5 (0+5) to accumulator, because unary operator >
+has higher priority than the binary plus.
-In absolute addressing modes, X-Asm examines expression and uses zero-page
-addressing mode if it supposes it is possible. You may override it with
+In absolute addressing modes, X-Asm examines the expression and uses zero-page
+addressing mode if it supposes it's possible. You may override it with
a: and z: prefixes.
Examples:
@@ -687,8 +768,8 @@ Examples:
There are also pseudo addressing modes, which are similar to
pseudo-commands. You may use them just like standard addressing modes
-in all 6502 commands and pseudo-commands excluding
-MWA, MWX and MWY only:
+in all 6502 commands and pseudo-commands, except for
+MWA, MWX and MWY:
+Keep in mind that the assembler must know all the values in the second
+pass.
Example:
Back
\ No newline at end of file
diff --git a/doc/xboot.htm b/doc/xboot.htm
index 588fa79..7117eff 100644
--- a/doc/xboot.htm
+++ b/doc/xboot.htm
@@ -1,25 +1,29 @@
+Syntax for invoking X-BOOT is following:
XBOOT [/p] obxfiles [atrpath][atrfile]
Parameters in brackets are optional.
If file name extension is omitted, the default .OBX or .ATR is added.
If no atrpath is given, disk images are written by default in
the directory where executables are.
If file name contains spaces, you should enclose it in quotation marks.
-/p switch (or equivalent -p) forces writing 'professional loader',
-which allows you to load code/data under ROM and disables ROM and interrupts
-while starting program. By default, standard loader is used, which can load any
-Atari executable not demanding DOS nor any special loader.
-Both loaders disable Atari Basic, so you needn't hold OPTION key while
-booting.
+/p switch (or equivalent -p) forces writing 'professional
+loader', which allows you to load code/data intro the RAM under ROM and starts
+the program with disabled ROM and interrupts. By default, standard loader is
+used, which can load any Atari executable not demanding DOS nor any special
+loader.
+Both loaders disable Atari Basic, so you don't need to hold the OPTION key
+while booting.
Below are some examples:
-X-BOOT does not write executable in ATR as Atari file.
+X-BOOT does not store the executable file in ATR as an Atari file.
You can't read it from an Atari DOS nor extract it somehow or other.
You can only run it by booting.
-For more details, read sources of loaders:
+For more details, read source files of the loaders:
Back
\ No newline at end of file
diff --git a/doc/xhead.htm b/doc/xhead.htm
index 6cc855f..b5a4252 100644
--- a/doc/xhead.htm
+++ b/doc/xhead.htm
@@ -1,18 +1,22 @@
+Important note: X-HEAD is an extremely simple tool. Jindrich Kubec
+wrote a tool with similar purpose, but much more features (disassembly
+in different formats, including X-Assembler), called ChkExe.
+You can find it on
+http://jindroush.atari.org.
+Simply run X-HEAD with executable filename. No options are supported.
X-HEAD will read the file and display its headers in following format:
+and xxxx is the execution (init or run) address.
The summary includes:
-All displayed numbers are hexadecimal, of course.
-You can redirect output to a file, for example:
- Back
\ No newline at end of file
diff --git a/doc/xload.htm b/doc/xload.htm
index 8f2c4ba..64f3395 100644
--- a/doc/xload.htm
+++ b/doc/xload.htm
@@ -1,24 +1,29 @@
+
-However, it is experimental version. I'm not sure if it will work
+This tool may be used to load an Atari executable file, stored on the PC,
+into a real Atari computer, via the SIO2PC interface.
+Only data input and data output lines are used, so X-LOAD should work
+with all types of the interface.
+It is experimental version. I'm not sure if it will work
with every hardware. I've noticed it is not stable and sometimes
transmission can hang or distortions in loaded data may appear.
The reason is that there is no error-checking, while transmission is
fast (57.6 kbits/sec).
+You should pass as the parameters the executable file name and optionally
+the options:
+
+
-While loading, you can watch on your PC memory locations, which program
-loads to.
-After program was loaded and run, X-LOAD terminates. You may exit it
-earlier at any time by pressing ESC key.
+While loading, PC prints memory locations, which the program loads into.
+After the program is loaded and run, X-LOAD terminates. You may exit it
+earlier at any time by pressing the ESC key.
+So you don't need to touch your Atari to run your program on it.
While booting, X-LOAD accepts two commands for disk drive 1:
-Transmission protocol is very simple: Atari sends a byte to inform that
+After the Atari receives and runs the loader, the transmission runs at 57600
+bits/sec.
+The transmission protocol is very simple: Atari sends a byte to inform that
it is ready for receiving data. Then PC sends a 3-byte header and a block
-of data. First two bytes of header are high and low byte of address
-of last block byte minus $ff. Third byte equals low byte of
-($100-block_length). Then come block data, which are loaded directly
-into their memory location.
-For more details, view sources of loaders:
+of data. First two bytes of the header are the high and the low byte of the
+address of the last byte in the block minus $ff. Third byte equals low byte
+of ($100-block_length). Then come block data, which are loaded directly
+into their memory locations.
+For more details, view source files of the loaders:
Back
\ No newline at end of file
diff --git a/file_id.diz b/file_id.diz
new file mode 100644
index 0000000..61ebc5c
--- /dev/null
+++ b/file_id.diz
@@ -0,0 +1,5 @@
+ --== xasm 2.4 final edition ==--
+interactive visual development environment
+ only for 8-bit Atari programming gurus
+
+ requirements: 386 + DOS or Windows
diff --git a/gr0.asm b/gr0.asm
deleted file mode 100644
index 340637a..0000000
--- a/gr0.asm
+++ /dev/null
@@ -1,357 +0,0 @@
- IDEAL
- P386
- MODEL TINY
- CODESEG
- ORG 100h
- include 'fox.mak'
-smartio = 1
-
-start:
- db 2048 dup(0) ;compack
-
-o_a = 1
-o_b = 2
-o_c = 4
-o_d = 8
-o_f = 10h
-o_i = 20h
-o_l = 40h
-o_n = 80h
-o_x = 100h
-
-MACRO topt _op
- testflag dx, _op
- ENDM
-
- mov si, 81h
- mov bx, 0ff00h ;bh=attr mask, bl=attr set
- xor dx, dx ;dx=options
-
-gsw1: lodsb
- cmp al, ' '
- je gsw1
- cmp al, 9
- je gsw1
- cmp al, 0dh
- je gswx
- cmp al, '/'
- je gsw2
- cmp al, '-'
- je gsw2
-usage: mov dx, offset usgtxt
-panic: print
- int 20h
-
- smartdisk
-
-rdpage: mov cx, 100h
- fread
- cmp ax, cx
- jb _derr
- ret
-
-rdnum: lodsb
- cmp al, ':'
- jne usage
- lodsw
- sub ax, '00'
- cmp al, 10
- jae usage
- cmp ah, 10
- jae rdnum1
- xchg al, ah
- aad ;al:=10*ah+al
- cmp al, 15
- ja usage
- ret
-rdnum1: dec si
- ret
-
-gsw2: lodsb
- and al, 0dfh
- mov di, offset swilet
- mov cx, 9
- repne scasb
- jne usage
- bts dx, cx
- jc usage
- cmp al, 'B'
- je sw_b
- cmp al, 'C'
- je sw_c
- cmp al, 'F'
- je sw_f
- jmp gsw1
-
-sw_b: call rdnum
- shl al, 4
- and bh, 0fh
- or bl, al
- jmp gsw1
-
-sw_c: call rdnum
- and bh, 0f0h
- or bl, al
- jmp gsw1
-
-sw_f: cmp [byte si], ':'
- jne usage
- mov di, offset fname-1
-swf1: movsb
- cmp [byte si], ' '
- je swf2
- cmp [byte si], 9
- je swf2
- cmp [byte si], 0dh
- jne swf1
-swf2: pusha
- mov bx, di
- mov cx, di
- sub cx, offset fname
- je short jusage
-adex1: dec bx
- cmp [byte bx], '.'
- je adexn
- cmp [byte bx], '\'
- loopne adex1
-adex2: mov eax, 'TNF.'
- stosd
-adexn: mov [byte di], 0
-
- fopen fname
- mov dx, offset font+100h ;digits
- call rdpage
- mov dx, offset font+200h ;letters
- call rdpage
- mov dx, offset font ;controls
- call rdpage
- mov dx, offset font+300h ;low letters
- call rdpage
- fclose
- popa
- jmp gsw1
-
-gswx: test dx, dx
- jz jusage
-
- topt o_a ;obsluz opcje a
- jz atrok
- setflag dx, o_n+o_l
- topt o_b
- jnz anob
- and bx, 0f0fh
- or bl, 10h
-anob: topt o_c
- jnz anoc
- and bx, 0f0f0h
- or bl, 7
-anoc: topt o_d+o_f+o_x
- jnz atrok
- setflag dx, o_x
-atrok:
-
- mov ax, dx ;sprawdz opcje fontu
- and ax, o_d+o_f+o_x
- jz nofnt
- bsf cx, ax ;dozwolona max 1 z opcji d,f,x
- btr ax, cx
- test ax, ax
- jz fntok
-jusage: jmp usage
-nofnt: topt o_l ;jezeli l i zadna z d,f,x, to ustaw d
- jz fntok
- setflag dx, o_d
-fntok: topt o_i
- jz noinv0
- topt o_f+o_x ;i tylko razem z f lub x
- jz jusage
-noinv0:
-
- push bx
-
-; inicjuj tryb tekstowy
- topt o_n
- jz noini
- push dx
- mov ax, 3
- int 10h
- pop dx
-noini:
-
-; wczytaj font domyslny
- topt o_d+o_f+o_x
- jz nodef
- mov ax, 1112h
- topt o_l
- jnz def50
- mov al, 14h
-def50: push dx
- xor bl, bl
- int 10h
- pop dx
-nodef:
-
-; wczytaj font uzytkownika
- topt o_f+o_x
- jz nocust
-
-; ustaw odpowiedni font
- mov cx, 128
- topt o_i
- jz noinv
-; inwertuj znaki 0-127 na 128-255
- mov si, offset font
- mov di, offset ifont
- mov cx, 1024
-mkinv: lodsb
- not al
- stosb
- loop mkinv
- mov cx, 256
-noinv: mov bp, offset font
- mov bx, 800h
- topt o_l
- jnz nodbl
-; rob font o podwojonej wysokosci
- mov si, offset font
- mov di, offset dfont
- push cx
- mov cx, 2048
-mkdbl: lodsb
- mov ah, al
- stosw
- loop mkdbl
- pop cx
- mov bp, offset dfont
- mov bh, 16
-nodbl: push dx
- xor dx, dx
- mov ax, 1110h
- int 10h
- pop dx
-nocust:
-
-; jezeli przelaczylismy 50->25 to skorygowac polozenie kursora
- topt o_l
- jnz nococu
- topt o_d+o_f+o_x
- jz nococu
- xor bh, bh
- mov ah, 3
- int 10h ;wez pozycje kursora
- sub dh, 25
- jb nococu
- xor bh, bh
- mov ah, 2
- int 10h ;ustaw kursor
- mov ax, 0b800h ;przesuwa dolna polowke ekranu do gory
- mov ds, ax
- mov es, ax
- mov si, 2*80*25
- xor di, di
- mov cx, si
- rep movsb
- mov ax, [di] ;czysci dolna polowke
- mov al, ' '
- mov cx, 80*25
- rep stosw
- push cs
- pop ds
- push cs
- pop ds
-
-nococu:
-; ustaw kolory
- pop bx
- cmp bh, 0ffh
- je nocol
- push 0b800h
- pop es
- xor di, di
- mov cx, 80*50
-cls: inc di
- and [es:di], bh
- or [es:di], bl
- inc di
- loop cls
-nocol: ret
-
-swilet db 'XNLIFDCBA'
-usgtxt db 'GR0 version 1.1 by Fox/Taquart',eol
- db 'Customizes DOS screen.',eol
- db 'Available options:',eol
- db '/a Set Atari scheme = /b:1 /c:7 /n /l /x',eol
- db '/b:nn Set background color 0-15',eol
- db '/c:nn Set foreground color 0-15',eol
- db '/d Set default PC font',eol
- db '/f:fname Set external Atari font',eol
- db '/i Set characters 128-255 to inverse',eol
- db '/l Select 50 lines font',eol
- db '/n Initialize text mode (clears screen)',eol
- db '/x Set Atari built-in font',eot
- smarterr
-
-font db 0,54,127,127,62,28,8,0,24,24,24,31,31,24,24,24,3
- db 3,3,3,3,3,3,3,24,24,24,248,248,0,0,0,24,24,24
- db 248,248,24,24,24,0,0,0,248,248,24,24,24,3,7,14,28,56
- db 112,224,192,192,224,112,56,28,14,7,3,1,3,7,15,31,63,127
- db 255,0,0,0,0,15,15,15,15,128,192,224,240,248,252,254,255,15
- db 15,15,15,0,0,0,0,240,240,240,240,0,0,0,0,255,255,0
- db 0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,240
- db 240,240,240,0,28,28,119,119,8,28,0,0,0,0,31,31,24,24
- db 24,0,0,0,255,255,0,0,0,24,24,24,255,255,24,24,24,0
- db 0,60,126,126,126,60,0,0,0,0,0,255,255,255,255,192,192,192
- db 192,192,192,192,192,0,0,0,255,255,24,24,24,24,24,24,255,255
- db 0,0,0,240,240,240,240,240,240,240,240,24,24,24,31,31,0,0
- db 0,120,96,120,96,126,24,30,0,0,24,60,126,24,24,24,0,0
- db 24,24,24,126,60,24,0,0,24,48,126,48,24,0,0,0,24,12
- db 126,12,24,0,0,0,0,0,0,0,0,0,0,0,24,24,24,24
- db 0,24,0,0,102,102,102,0,0,0,0,0,102,255,102,102,255,102
- db 0,24,62,96,60,6,124,24,0,0,102,108,24,48,102,70,0,28
- db 54,28,56,111,102,59,0,0,24,24,24,0,0,0,0,0,14,28
- db 24,24,28,14,0,0,112,56,24,24,56,112,0,0,102,60,255,60
- db 102,0,0,0,24,24,126,24,24,0,0,0,0,0,0,0,24,24
- db 48,0,0,0,126,0,0,0,0,0,0,0,0,0,24,24,0,0
- db 6,12,24,48,96,64,0,0,60,102,110,118,102,60,0,0,24,56
- db 24,24,24,126,0,0,60,102,12,24,48,126,0,0,126,12,24,12
- db 102,60,0,0,12,28,60,108,126,12,0,0,126,96,124,6,102,60
- db 0,0,60,96,124,102,102,60,0,0,126,6,12,24,48,48,0,0
- db 60,102,60,102,102,60,0,0,60,102,62,6,12,56,0,0,0,24
- db 24,0,24,24,0,0,0,24,24,0,24,24,48,6,12,24,48,24
- db 12,6,0,0,0,126,0,0,126,0,0,96,48,24,12,24,48,96
- db 0,0,60,102,12,24,0,24,0,0,60,102,110,110,96,62,0,0
- db 24,60,102,102,126,102,0,0,124,102,124,102,102,124,0,0,60,102
- db 96,96,102,60,0,0,120,108,102,102,108,120,0,0,126,96,124,96
- db 96,126,0,0,126,96,124,96,96,96,0,0,62,96,96,110,102,62
- db 0,0,102,102,126,102,102,102,0,0,126,24,24,24,24,126,0,0
- db 6,6,6,6,102,60,0,0,102,108,120,120,108,102,0,0,96,96
- db 96,96,96,126,0,0,99,119,127,107,99,99,0,0,102,118,126,126
- db 110,102,0,0,60,102,102,102,102,60,0,0,124,102,102,124,96,96
- db 0,0,60,102,102,102,108,54,0,0,124,102,102,124,108,102,0,0
- db 60,96,60,6,6,60,0,0,126,24,24,24,24,24,0,0,102,102
- db 102,102,102,126,0,0,102,102,102,102,60,24,0,0,99,99,107,127
- db 119,99,0,0,102,102,60,60,102,102,0,0,102,102,60,24,24,24
- db 0,0,126,12,24,48,96,126,0,0,30,24,24,24,24,30,0,0
- db 64,96,48,24,12,6,0,0,120,24,24,24,24,120,0,0,8,28
- db 54,99,0,0,0,0,0,0,0,0,0,255,0,0,24,60,126,126
- db 60,24,0,0,0,60,6,62,102,62,0,0,96,96,124,102,102,124
- db 0,0,0,60,96,96,96,60,0,0,6,6,62,102,102,62,0,0
- db 0,60,102,126,96,60,0,0,14,24,62,24,24,24,0,0,0,62
- db 102,102,62,6,124,0,96,96,124,102,102,102,0,0,24,0,56,24
- db 24,60,0,0,6,0,6,6,6,6,60,0,96,96,108,120,108,102
- db 0,0,56,24,24,24,24,60,0,0,0,102,127,127,107,99,0,0
- db 0,124,102,102,102,102,0,0,0,60,102,102,102,60,0,0,0,124
- db 102,102,124,96,96,0,0,62,102,102,62,6,6,0,0,124,102,96
- db 96,96,0,0,0,62,96,60,6,124,0,0,24,126,24,24,24,14
- db 0,0,0,102,102,102,102,62,0,0,0,102,102,102,60,24,0,0
- db 0,99,107,127,62,54,0,0,0,102,60,24,60,102,0,0,0,102
- db 102,102,62,12,120,0,0,126,12,24,48,126,0,0,24,60,126,126
- db 24,60,0,24,24,24,24,24,24,24,24,0,126,120,124,110,102,6
- db 0,8,24,56,120,56,24,8,0,16,24,28,30,28,24,16,0
-fname:
-ifont db 1024 dup(?)
-
-dfont db 4096 dup(?)
-
- ENDS
- END start
\ No newline at end of file
diff --git a/syntax/X-Assembler.cgsyn b/syntax/X-Assembler.cgsyn
new file mode 100644
index 0000000..e40df19
--- /dev/null
+++ b/syntax/X-Assembler.cgsyn
@@ -0,0 +1,56 @@
+# X-Assembler syntax for Code-Genie 3.0 (www.code-genie.com)
+# written by Piotr Fusik
+
+
+Features of the assembler:
+
+Last modified: 22/05/02
+
\ No newline at end of file
-bit 0 - display characters 128-255 as spaces
-bit 1 - display characters 128-255 as inverse
-bit 2 - display all characters upside down
-bits 1,0 - width of screen
-00 - screen off
-01 - narrow screen - 256 pixels
-10 - normal screen - 320 pixels
-11 - wide screen - 384 pixels
-bits 3,2 - DMA for Players/Missiles
-00 - no DMA for P/MG
-01 - DMA for missiles
-10 - DMA for players and missiles
-11 - DMA for players and missiles
-bit 4 - P/MG resolution
-0 - 120 lines
-1 - 240 lines
-bit 5 - DMA for Display List
-bits 7-6 - unused
-bits 5-0 - unused
-bit 6 - enable VBLKI
-bit 7 - enable DLI
-bits 5-0 - unused
-bit 6 - VBLKI occured
-bit 7 - DLI occured
-High byte of P/MG data
-Contains number of scanline divided by 2.
-Any value written to this register stops CPU until right border of normal screen is reached.How to configure a text editor for convenient use of X-Assembler
+This document describes, how to setup a text editor to:
+
+
+Of course these features are not available in Windows Notepad, so you must
+pick another text editor. Fortunately there are many general-purpose text
+editors for Windows. I'll fucus on three:
+
+
+All of these have similar features. EditPlus is very good, unfortunately it is
+shareware (you have to pay $30). The other editors are freeware. Personally
+I prefer Code-Genie, which offers unique feature of editing binary files.Highlighting X-Assembler mnemonics
+In the syntax subdirectory you'll find X-Assembler syntax definitions for all
+these editors.
+
+
+
+
+near other DefaultSyntax lines.
+Single-keystroke assembly
+
+
+
+
+near other AddUserTool lines (if xasm.exe is not on your
+PATH, then you must type full path to it).
+Placing the cursor where an assembly error occured
+This works same for all these three editors: just double-click the line
+with the error message.
+Frequently Asked Questions
+What is xasm?
+xasm is a set of a few tools for developing software for 8-bit Atari
+computers using a PC computer. It is mainly for people who are familiar
+with Quick Assembler, which runs directly on Atari.
+
+Unfortunately xasm is written in x86 assembly language, so it is
+not portable.
+
+It's easier to pronounce. ;-)
+
+Because I don't plan adding any new features. xasm is already a very
+sophisticated tool, much more powerful than Quick Assembler.
+Of course, it does not mean there won't be any new releases.
+Very likely there will be bug fixes.
+
+xasm is not a universal 6502 cross-assembler. If you need a portable
+cross-assembler (and maybe even an excellent C compiler), then visit
+www.cc65.org.
+GR0 version 1.1
-by Fox/Taquart
-INTRODUCTION
-GR0 is a simple tool that can change colors and font of DOS screen.
-It can setup it to look similar to Atari text mode.
-CHANGES
-Version 1.1
-
-
-
-
-USAGE
-You can run GR0 without any parameters to see available options. They are:
-
-
-In Windows, font changes only in full-screen mode. Colors and number of lines change
-also in a window.
-
-
\ No newline at end of file
diff --git a/doc/gtia.htm b/doc/gtia.htm
deleted file mode 100644
index 96d64e4..0000000
--- a/doc/gtia.htm
+++ /dev/null
@@ -1,511 +0,0 @@
-
-
-GTIA Documentation
-by Fox/Taquart
-Registers
-
-
-
- Address Read register Write register
- Address Read register Write register
-
- ^00 KOLM0PF HPOSP0
-^10 TRIG0 GRAFP3
-
- ^01 KOLM1PF HPOSP1
-^11 TRIG1 GRAFPM
-
- ^02 KOLM2PF HPOSP2
-^12 unused COLPM0
-
- ^03 KOLM3PF HPOSP3
-^13 TRIG3 COLPM1
-
- ^04 KOLP0PF HPOSM0
-^14 PAL COLPM2
-
- ^05 KOLP1PF HPOSM1
-^15 unused COLPM3
-
- ^06 KOLP2PF HPOSM2
-^16 unused COLPF0
-
- ^07 KOLP3PF HPOSM3
-^17 unused COLPF1
-
- ^08 KOLM0P SIZEP0
-^18 unused COLPF2
-
- ^09 KOLM1P SIZEP1
-^19 unused COLPF3
-
- ^0A KOLM2P SIZEP2
-^1A unused COLBAK
-
- ^0B KOLM3P SIZEP3
-^1B unused GTIACTL
-
- ^0C KOLP0P SIZEM
-^1C unused VDELAY
-
- ^0D KOLP1P GRAFP0
-^1D unused PMCNTL
-
- ^0E KOLP2P GRAFP1
-^1E unused HITCLR
-
-
-^0F KOLP3P GRAFP2
-^1F CONSOL CONSOL
-Colors
-
-
- 0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-A
-B
-C
-D
-E
-F
-0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 6
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- A
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- B
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- D
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- E
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- F
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Description
-
-bit 0 - unused
-bits 3-1 - luminace
-bits 7-4 - hue
-bit 0 - unused
-bits 3-1 - luminace
-bits 7-4 - hue
-bit 0 - unused
-bits 3-1 - luminace
-bits 7-4 - hue
-This is the only read/write register in GTIA.
-Value written is negated on read. Bits 0-2 are ANDed
-with state of consol keys. Reset bit means key pressed.
-bit 0 - START key
-bit 1 - SELECT key
-bit 2 - OPTION key
-bit 3 - click sound
-bits 4-7 - unused (=0)
-bits 1,0 - graphics of missile 0
-bits 3,2 - graphics of missile 1
-bits 5,4 - graphics of missile 2
-bits 7,6 - graphics of missile 3
-bits 3-0 - priorities of players and missiles
-0001 - P0, P1, P2, P3, PF0, PF1, PF2, PF3, BAK
-0010 - P0, P1, PF0, PF1, PF2, PF3, P2, P3, BAK
-0100 - PF0, PF1, PF2, PF3, P0, P1, P2, P3, BAK
-1000 - PF0, PF1, P0, P1, P2, P3, PF2, PF3, BAK
-Players/missiles and playfields are mentioned from highest to lowest priority.
-Other combinations of bits 3-0 cause strange side effects.
-bit 4 - set all missiles color to COLPF3
-bit 5 - enable ORing colors P0 with P1 and P2 with P3 on common areas
-bits 7,6 - GTIA extra graphics mode
-00 - off
-01 - 16 luminaces
-10 - 9 colors
-11 - 16 hues
-Any value written to this register causes collision registers to be reset.
-bit 0 - collision with player 0
-bit 1 - collision with player 1
-bit 2 - collision with player 2
-bit 3 - collision with player 3
-bits 4-7 - unused (=0)
-bit 0 - collision with playfield 0
-bit 1 - collision with playfield 1
-bit 2 - collision with playfield 2
-bit 3 - collision with playfield 3
-bits 4-7 - unused (=0)
-bit 0 - collision with player 0
-bit 1 - collision with player 1
-bit 2 - collision with player 2
-bit 3 - collision with player 3
-bits 4-7 - unused (=0)
-bit 0 - collision with playfield 0
-bit 1 - collision with playfield 1
-bit 2 - collision with playfield 2
-bit 3 - collision with playfield 3
-bits 4-7 - unused (=0)
-bit 0 - unused
-bits 1-3 - 000 if TV system is PAL. Else it is NTSC
-bits 4-7 - unused (=0)
-bit 0 - get missiles data from ANTIC
-bit 1 - get players data from ANTIC
-bit 2 - lock triggers when pressed
-bits 3-7 - unused
-Two bits set size of each missile:
-00 - single size
-01 - double size
-10 - single size
-11 - quad size
-bits 1,0 - size of missile 0
-bits 3,2 - size of missile 1
-bits 5,4 - size of missile 2
-bits 7,6 - size of missile 3
-bits 1,0 - size of player (see SIZEM)
-bits 2-7 - unused
\ No newline at end of file
diff --git a/doc/pia.htm b/doc/pia.htm
deleted file mode 100644
index 1d0e99c..0000000
--- a/doc/pia.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
X-ASM Package version 2.3
-by Fox/Taquart
-
-
-
-X-Assembler 6502 cross-assembler
-X-BOOT Atari executable -> disk image converter
-X-HEAD Simple Atari executable analyzer
-X-LOAD SIO2PC interface Atari executable loader
-GR0 DOS screen adjuster
-
-
-
-GTIA GTIA chip documentation
-POKEY POKEY chip documentation
-PIA PIA chip documentation
-ANTIC ANTIC chip documentation CPUBUGS.ASX 6502 bugs detector source
-
-
+
+xasm 2.4 final edition
+Copyright (c) 1998-2002 by Piotr Fusik
+
+
+
+Name
+Description
+
+6502 cross-assembler
+X-BOOT
+Converts Atari executables to disk images
+X-HEAD
+Prints headers of an Atari executable file
+X-LOAD
+Loads an executable file to an Atari computer via the SIO2PC interface
+PIA Documentation
-by Fox/Taquart
-Registers
-
-
-
- Address Read/Write register
-^30 PORTA
-^31 PORTB
-^32 PACTL
-^33 PBCTL
-Description
-
-A bit is RESET on an event
-bit 0 - joystick 0 up
-bit 1 - joystick 0 down
-bit 2 - joystick 0 left / paddle 0 button
-bit 3 - joystick 0 right / paddle 1 button
-bit 4 - joystick 1 up
-bit 5 - joystick 1 down
-bit 6 - joystick 1 left / paddle 0 button
-bit 7 - joystick 1 right / paddle 1 button
-Controls memory.
-bit 0 - $c000-$cfff and $d800-$ffff:
-0 - RAM
-1 - OS ROM
-bit 1 - $a000-$bfff:
-0 - BASIC ROM
-1 - RAM
-bits 6-2 - extended memory control
-bit 7 - $5800-$5fff:
-0 - SELF TEST ROM
-1 - RAM
-bits 1-0 - interrupts control (?) = 00
-bit 2 - PORTA control
-0 - input/output configuration
-1 - data register
-bit 3 - cassette motor
-0 - on
-1 - off
-bits 7-4 - interrupts status (?) = 0011
-bits 1-0 - interrupts control (?) = 00
-bit 2 - PORTB control
-0 - input/output configuration
-1 - data register
-bit 3 - serial devices command line
-0 - on
-1 - off
-bits 7-4 - interrupts status (?) = 0011POKEY Documentation
-by Fox/Taquart
-Registers
-
-
-
- Address Read register Write register
-^20 POT0 AUDF1
-^21 POT1 AUDC1
-^22 POT2 AUDF2
-^23 POT3 AUDC2
-^24 unused AUDF3
-^25 unused AUDC3
-^26 unused AUDF4
-^27 unused AUDC4
-^28 POTST AUDCTL
-^29 KBCODE STIMER
-^2A RANDOM SKSTRES
-^2B unused POTGO
-^2C unused unused
-^2D SERIN SEROUT
-^2E IRQST IRQEN
-^2F SKSTAT SKCTL
-Description
-
-bits 3-0 - volume control
-bit 4 - channel control
-0 - synthetize sound
-1 - constant level
-bits 7-5 - sound distortion
-000 - with 5-bit and 17-bit registers
-001 - with 5-bit register
-010 - with 5-bit and 4-bit registers
-011 - with 5-bit register
-100 - with 17-bit register
-101 - clear sound
-110 - with 4-bit register
-111 - clear sound
-bit 0 - base clock for all channels
-0 - 64 kHz
-1 - 15 kHz
-bit 1 - channel 2 filter controlled by channel 4
-bit 2 - channel 1 filter controlled by channel 3
-bit 3 - join counters 3 and 4 into 16-bit channel
-bit 4 - join counters 1 and 2 into 16-bit channel
-bit 5 - base clock for channel 3
-0 - according to bit 0
-1 - 1.77 MHz (PAL), 1.79 MHz (NTSC)
-bit 6 - base clock for channel 1
-0 - according to bit 0
-1 - 1.77 MHz (PAL), 1.79 MHz (NTSC)
-bit 7 - distortion register
-0 - 17-bit
-1 - 9-bit
-1 - enable
-bit 0 - timer 1
-bit 1 - timer 2
-bit 2 - timer 4
-bit 3 - end of transmission
-bit 4 - serial output
-bit 5 - serial input
-bit 6 - keyboard
-bit 7 - BREAK key
-0 - requested
-bit 0 - timer 1
-bit 1 - timer 2
-bit 2 - timer 4
-bit 3 - end of transmission
-bit 4 - serial output
-bit 5 - serial input
-bit 6 - keyboard
-bit 7 - BREAK key
-Position of potentiometr in range 0-224
-Any value written to this registers starts measurement of potentiometrs
-0 means POTx contains proper value
-1 means POTx is being measured
-bit 0 - POT0
-bit 1 - POT1
-bit 2 - POT2
-bit 3 - POT3
-bits 7-4 - not used
-Received byte
-A byte to be send
-bits 1,0 - POKEY control
-00 - reset POKEY
-11 - normal state
-bit 2 - speed of A/D conversion
-bit 3 - two-tone transmission
-bits 6-4 - transmission speed control
-bit 7 - force SPACE signal
-bit 0 - unused (=0)
-bit 1 - transmission
-0 - in progress
-bit 2 - keyboard status
-0 - a key pressed
-bit 3 - SHIFT key status
-0 - pressed
-bit 4 - serial input line state
-bit 5 - keyboard buffer overflow
-bit 6 - serial input buffer overflow
-bit 7 - Framing Error occured
-Any value written to this register resets SKSTAT error flags
-Any value written to this register resets all countersX-Assembler version 2.3
-by Fox/TaquartX-Assembler version 2.4
TABLE OF CONTENTS
INTRODUCTION
-The X-Assembler is a cross-assembler generating code for the 6502 processor.
+The X-Assembler is a cross-assembler, which generates code for the 6502 processor.
It has been designed to be easy to use for Quick Assembler programmers,
therefore its syntax is an extension of QA's one.
Changes
+Version 2.4
+
+
Version 2.3
System requirements
Source code requirements
@@ -116,7 +138,7 @@ assembling only if source newer than object option
Although different EOLs are supported,
CR/LF is recommended because it is standard for text files on PC.
By default lines skipped due to false condition are not listed.
+label should be a valid label name.
+value may be any expression (it may use forward references
+to labels defined in the source file).
+You may use several /d options to define many labels
+from the command line.
With this option, X-Asm sets two environment variables:
ERRFILE and ERRLINE.
They may be used in a batch file to locate error and set editor's
-insertion point on it. For example, in my batch file I use such a construction:
+insertion point on it. For example, you may create following batch file:
XASM %1 /e
IF NOT ERRORLEVEL 1 GOTO ok
NCE +%ERRLINE% %ERRFILE%
+:ok
NCE stands for Norton Classic Editor.
+This option is useful for the Code-Genie editor (see
+here), which can jump to the error location
+only if full path is given.
+Prevents X-Asm from printing "X-Assembler 2.4 by Fox/Taquart"
+and the summary (how many lines assembled and bytes written).
+Good if you are building a project from many source files and don't want
+tons of messages.
+
+Using tabs makes listing file shorter.
Tab stops are assumed to be every 8 characters.
+If no filename given, the table is written at the end of listing
+or to source.tab.
+A warning message will be issued for each label, which value is never
+used.Exit codes
@@ -182,22 +239,22 @@ Meaning of exit codes returned by X-Asm:
1 = warning(s) only
0 = no errors, no warnings
Listing structure
-Line of listing includes:
+A line of listing contains:
+
Listed are also generated headers. A xxxx-yyyy> in place of origin
-represents generated header: $xxxx is the first and $yyyy
-is the last byte of the block.
+counter represents generated header: $xxxx is the first and
+$yyyy is the last byte of the block.
A FFFF> represents two $ff bytes written as a header prefix.
A plus sign placed after hex numbers stands for more bytes written to object
in this line, not listed through lack of space.
-Label table structure
-Line of label table includes:
+A line of label table contains:
n - label defined but not used elsewhere
@@ -214,7 +271,7 @@ reference and thus you can't make forward references to that label)
Source code is line-oriented. Every line of source consists of fields.
Same sequence of characters used in different fields has completely different meaning.
Fields are separated with one or more blank characters.
-There can't be any space within a field excluding strings and comments.
Label field
This field is optional. It must start at first character in line, without
any blank characters before. The purpose of using label field is to define a label.
Label is a symbol representing an integer of range -$ffff..$ffff.
-Name of a label can contain letters, digits and underscores (_).
+Name of a label may contain letters, digits and underscores (_).
Digit can not be label's first character.
-Name of a label can be as long as you want and all the characters
+Name of a label may be as long as you want and all the characters
are meaningful. In Quick Assembler only 6 leading characters were recognized
and some sources may not compile under X-Asm for this reason.
Defining a label without using EQU makes it equal to current value
of the origin counter.
-Label can't be redefined.Repeat count
-Repeating means assembling single line several times as if
+Repeating means here assembling single line several times as if
there were several identical lines. Note it is not just duplicating
-bytes written to object.
+bytes written to the object file.
Repeat count, which can be any valid expression, has to be preceded
with a colon.
Examples:
@@ -263,7 +323,7 @@ Examples:
In the latter example each DTA has different operand value.
If repeat count equals zero, remaining part of line is not assembled.
-This allows conditional assembly on single line to be more compact.
+This allows compact single-line conditional assembly.
Instruction field
If this is the first field in a line, the line must start with at least
@@ -280,11 +340,11 @@ Example:
Note that
lda:tax $80
is correct, because $80 is a comment for TAX.Operand field
@@ -306,13 +366,13 @@ for 6502 indirect addressing.
Numbers
Numbers are 32-bit signed integers, in the range of -$7fffffff..$7fffffff.
-A number can be:
+A number may be:
-12345 $abcd %10100101
-'a' or "a"
+* * ^31 {lda #0}
You can skip the operand, if the addressing mode is fixed.
Examples:
@@ -354,6 +414,7 @@ Examples:
<< Arithmetic shift left >> Arithmetic shift right
+= Equal == Equal (same as =) <> Not equal != Not equal (same as <>)
@@ -379,14 +440,14 @@ Examples:< Less than
+ - ~ < > (unary) * / % & << >> (binary)
- + - | ^ (binary)
+ = <> != < > <= >= (binary) = == <> != < > <= >= (binary) ! (unary) && (binary) last || (binary)
+
You can turn any of these on or off.
-Default (if no OPT specified) is opt l+h+.
+Default (if no OPT specified) is opt h+l+o+.
Examples:
opt l- listing off
opt h- headers off
- opt l+h- listing on, headers off
+ opt l+o- listing on, object file off
-
-
Examples:
@@ -442,18 +510,18 @@ before ORG directive is executed).
-You may also define a sinus table. Syntax is:
+You may also define a sine lookup table. Syntax is:
sin(centre,amp,size,first,last)
where:
-
Example: dta a(sin(0,1000,256,0,63)) defines table of 64 words
-representing a quarter of sinus with amplitude of 1000.
Real numbers are written in 6-byte Atari Floating-Point format. You can't
combine reals with operators, as you can integers.
+
You may specify range of inserted file. Syntax is following:
ins 'file'[,offset[,length]]
@@ -510,7 +578,7 @@ Examples:
run addr
@@ -520,7 +588,7 @@ is equivalent to:
Examples:
run start
- run program
+ run main
+ELI - else if
ELS - else
EIF - end if
Example:
noscr equ 1
+widescr equ 1
ift noscr
lda #0
+ eli widescr
+ lda #$23
els
lda #$22
eif
@@ -554,8 +627,10 @@ Example:
Above example can be rewritten using line repeating feature:
noscr equ 1
+widescr equ 1
:noscr lda #0
-:!noscr lda #$22
+:!noscr&&widescr lda #$23
+:!noscr&&!widescr lda #$22
sta $22f
@@ -563,7 +638,7 @@ Above example can be rewritten using line repeating feature:
Pseudo-commands
Pseudo-commands are built-in macros.
-They are not illegal instructions and work on typical 6502.
@@ -662,16 +743,16 @@ the accumulator addressing mode, which should be marked with a
There are two extra immediate addressing modes:
< and >,
-which use low/high byte of word rather than byte value.
+which use low/high byte of 16-bit word constant.
They are for Quick Assembler compatibility.
You can use traditional #< and #>.
Note
+In the above example word-size variable $80 is incremented by 40.
Nor conditional repeat nor skip pseudo-commands require operand,
thus they can be paired with any other command.
Example:
@@ -616,7 +691,7 @@ Example:
+
Example:
inw dest
is equivalent to:
@@ -632,17 +707,18 @@ and substitutes two commands:
mvy source dest = ldy source : sty dest
+
You can't use indirect nor pseudo addressing mode with MW*.
Destination must be absolute address (optionally indexed).
-When source is also absolute, a MW* SOURCE DEST will be:
+When source is also absolute, a mw* source dest will be:
mv* source dest
mv* source+1 dest+1
-When source is an immediate, a MW* #IMMED DEST will be:
+When source is an immediate, a mw* #immed dest will be:
mv* <immed dest
mv* >immed dest+1
@@ -651,6 +727,11 @@ is not forward-referenced, X-Asm uses optimization:
mv* <immed dest
st* dest+1
+If possible, MWX and MWY use increment/decrement
+commands. E.g. mwx #1 dest is assembled as:
+ mvx #1 dest
+ dex
+ stx dest+1
cmd a,x+ = cmd a,x : inx
cmd a,x- = cmd a,x : dex
cmd a,y+ = cmd a,y : iny
@@ -704,7 +785,7 @@ in all 6502 commands and pseudo-commands excluding
FAQ
-
+label equ 1 +2
A: X-Asm treats space as operand terminator. Remaining part of line
@@ -743,7 +824,8 @@ one equ 1
A: X-Asm reads source twice (in pass 1 and pass 2)
from the beginning until the end.
This allows forward references, but not too complex.
-Keep in mind that assembler should know all the values in second pass.two equ one+one This value is known in 2nd pass only
one equ 1 This value is known as early as in 1st pass
@@ -762,6 +844,7 @@ When you were assembling for the first time, both errors might exist,
but X-Asm stopped on the first one.
X-BOOT version 5.0
-by Fox/Taquart
INTRODUCTION
-This tool converts Atari executable file (.OBX) to Atari disk image (.ATR),
-which can be used in an emulator. For loading executable into real Atari
-you need no .ATR, try using X-LOAD.
+This tool converts Atari executable files to disk images (ATR).
+Since its first version, X-BOOT lost significance, because now you
+can load an executable directly to Atari (e.g. using
+X-LOAD), and the emulators (e.g.
+Atari800Win PLus).
+However, X-BOOT may still be useful, especially when using
+professional loader.
CHANGES
Version 5.0
@@ -28,7 +32,7 @@ and obxfile atrpath can be used
USAGE
-This is syntax for running X-BOOT:
DETAILS
Produced ATR is single density and as short as possible.
Loader occupies one boot sector.
Loaders are so simple that they even do not detect end of file. Instead,
-they are modified when end of file is reached. Disk image contains one
-additional block, which doesn't belong to executable file, but changes
-loader to run program instead of initializing.
+they are modified when end of file is reached. The disk image contains one
+additional block, which doesn't belong to the executable file, but alters
+the loader to run the program instead of initializing.
+X-HEAD version 1.1
-by Fox/Taquart
INTRODUCTION
-This tool prints headers of Atari executable.
-You can examine which memory locations file loads into.
-X-HEAD also shows init and run addresses.
+This tool prints headers of an Atari executable file.
+It shows, into which memory areas the file loads,
+and what are init and run addresses.CHANGES
Version 1.1
@@ -25,18 +29,17 @@ X-HEAD also shows init and run addresses.
USAGE
-Simply run X-HEAD with executable filename. No options are supported yet. bbbb-eeee xxxx
where bbbb is the begin, eeee - the end of the block,
-and xxxx is the execution address (init or run vector).
xxxx bytes - length of file, including headers
xxxx blocks - number of headers
xxxx inits - number of init blocks (02e2-02e3)
xxxx modules - number of FFFF headers (one at the beginning is required)XHEAD TEST >TEST.HDR
+All displayed numbers are hexadecimal, of course.
+
X-LOAD version 1.0
-by Fox/TaquartX-LOAD version 1.1
INTRODUCTION
-This tool can be used for loading executable files from PC into real
-Atari computer via SIO2PC interface. Only input and output lines are
-used, so that X-LOAD should work with all types of interface.CHANGES
+Version 1.1
+
+
Version 1.0
USAGE
-You run X-LOAD from DOS prompt with executable filename and optional
-options:
After you run X-LOAD, you only have to boot your Atari and the program
will be loaded and run.
DETAILS
-First X-LOAD sends a byte to Atari and then waits until Atari is booted.
-That byte can be used to detect from Atari, that PC is ready for transmission.
+First, X-LOAD sends a byte to Atari and then waits until the Atari is booted.
+The byte can be used to detect from Atari, that PC is ready for transmission.
When you are testing your program, you may code periodic checking
if a byte was received, and performing cold reset in that case.
-So that you needn't touch your Atari to run program on it.
-
-After Atari receives and runs its loader, the transmission runs at 57600
-bits/sec. You can not hear any transmission sound, because the frequency
-is too high for a human.
+
+
+
+
+
+
+xasm is a set of a few tools for developing software for Atari 8-bit computers
+on a PC with MS-DOS or Windows.
+
+
+