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 @@ - - -ANTIC Documentation - - -
-

ANTIC Documentation

-by Fox/Taquart

-


-

-

Registers

- - - - - - - - - - - - - - - - - - -
 Address  Read register  Write register 
^40unusedDMACTL
^41unusedCHRCTL
^42unusedDLPTRL
^43unusedDLPTRH
^44unusedHSCROL
^45unusedVSCROL
^46unusedunused
^47unusedPMBASE
^48unusedunused
^49unusedCHBASE
^4AunusedWSYNC
^4BVCOUNTunused
^4CLPENHunused
^4DLPENVunused
^4EunusedNMIEN
^4FNMISTunused
-

-


-

-

Description

-
- -CHBASE -- Characters base
-Contains high byte of character set in text modes.

- -CHRCTL -- Characters control
-bit 0 - display characters 128-255 as spaces
-bit 1 - display characters 128-255 as inverse
-bit 2 - display all characters upside down

- -DLPTRL DLPTRH -- Display List pointer

- -DMACTL -- DMA control
-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

- -HSCROL -- Horizontal scroll

- -LPENH -- Light pen horizontal position

- -LPENV -- Light pen vertical position

- -NMIEN -- NMI enable
-bits 5-0 - unused
-bit 6 - enable VBLKI
-bit 7 - enable DLI

- -NMIST -- NMI status
-bits 5-0 - unused
-bit 6 - VBLKI occured
-bit 7 - DLI occured

- -PMBASE -- Player/missile base
-High byte of P/MG data

- -VCOUNT -- Vertical count
-Contains number of scanline divided by 2.

- -VSCROL -- Vertial scroll

- -WSYNC -- Wait for synchronization
-Any value written to this register stops CPU until right border of normal screen is reached.

- - - \ 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 0: X=* ibuf+1 - sty ilen - mvx #0 ilen+1 Channel 0, length<256 - jmp ciomain - -clstxt dta b(125) Clear screen control code -adctxt dta c'ADC' -brktxt dta c'BRK' -jmptxt dta c'JMP' -bugtxt dta c' bug detected!',b($9b) -nobtxt dta c' bug NOT detected.',b($9b) - - ert *>start|$ff Program should fit on one page - org *|$ff -jmpptr dta a(jmp1) - -jmp1 lda #0 JMP bug not detected - jmp cont - - run start - end - -The program above detects 3 bugs: -- 'ADC bug' -Flags N,V,Z are not properly set after ADC or SBC in decimal mode. -You can't rely on these flags after BCD operation. -- 'BRK bug' -If an interrupt occurs on a BRK, it is executed with BRK-like values on stack. -This means a BRK is simply passed-by if a NMI occurs. -Beware of using BRK with other interrupts. -- 'JMP bug' - JMP ($xxff) fetches address from $xxff and $xx00. -X-Asm warns you of using such a jump. - -All these bugs are supposedly fixed in CMOS chips. diff --git a/doc/editors.htm b/doc/editors.htm new file mode 100644 index 0000000..51fbf2e --- /dev/null +++ b/doc/editors.htm @@ -0,0 +1,66 @@ + + +Configuring editors for X-Assembler + + +

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. + +

Single-keystroke assembly

+ +

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. +


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 @@ + + +xasm FAQ + + +

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. +

I want to run xasm on my Amiga / Atari ST / Mac / ...
+Unfortunately xasm is written in x86 assembly language, so it is +not portable. +

Why xasm, not X-ASM as in previous versions?
+It's easier to pronounce. ;-) +

Why final edition?
+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. +

What about supporting other 6502-based machines, other processors (65816 etc.) ?
+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. +


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 @@ - - -GR0 1.1 Manual - - -

-

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: -
-
/a -
Set Atari scheme. It is equivalent to options /b:1 /c:7 /n /l /x

-

/b:nn -
Set background color nn, where nn is decimal number of range 0-15

-

/c:nn -
Set foreground (letters) color nn, where nn is decimal number of range 0-15

-

/d -
Set default PC font. Resets all characters.

-

/f:fname -
Set external Atari font. Reads characters 0-127 from standard Atari font file -(8*8*128). In 25 lines mode, font is resized. Default extension .FNT will be added -to filename, if none given.

-

/i -
Set characters 128-255 to inverse of 0-127. -/i can only be used with /a, /f or /x.

-

/l -
Select 50 lines font. Without this option, 25 lines font is selected.

-

/n -
Initialize text mode. Clears screen and restores default font and colors.

-

/x -
Set Atari built-in font. Sets characters 0-127 to standard Atari font. -It looks better with /l option.

-

-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 - - -
-

GTIA Documentation

-by Fox/Taquart

-


-

-

Registers

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Address  Read register  Write register  Address  Read register  Write register 
^00KOLM0PFHPOSP0^10TRIG0GRAFP3
^01KOLM1PFHPOSP1^11TRIG1GRAFPM
^02KOLM2PFHPOSP2^12unusedCOLPM0
^03KOLM3PFHPOSP3^13TRIG3COLPM1
^04KOLP0PFHPOSM0^14PALCOLPM2
^05KOLP1PFHPOSM1^15unusedCOLPM3
^06KOLP2PFHPOSM2^16unusedCOLPF0
^07KOLP3PFHPOSM3^17unusedCOLPF1
^08KOLM0PSIZEP0^18unusedCOLPF2
^09KOLM1PSIZEP1^19unusedCOLPF3
^0AKOLM2PSIZEP2^1AunusedCOLBAK
^0BKOLM3PSIZEP3^1BunusedGTIACTL
^0CKOLP0PSIZEM^1CunusedVDELAY
^0DKOLP1PGRAFP0^1DunusedPMCNTL
^0EKOLP2PGRAFP1^1EunusedHITCLR
^0FKOLP3PGRAFP2^1FCONSOLCONSOL
-


-

Colors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
0123456789ABCDEF
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
-


-

Description

-
- -COLBAK -- Color of background
-bit 0 - unused
-bits 3-1 - luminace
-bits 7-4 - hue

- -COLPF0 COLPF1 COLPF2 COLPF3 -- Colors of player field
-bit 0 - unused
-bits 3-1 - luminace
-bits 7-4 - hue

- -COLPM0 COLPM1 COLPM2 COLPM3 -- Colors of players and missiles
-bit 0 - unused
-bits 3-1 - luminace
-bits 7-4 - hue

- -CONSOL -- Consol keys
-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)

- -GRAFM -- Graphics of missiles
-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

- -GRAFP0 GRAFP1 GRAFP2 GRAFP3 -- Graphics of players

- -GTIACTL -- GTIA control
-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

- -HITCLR -- Clear collision registers
-Any value written to this register causes collision registers to be reset.

- -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
-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)

- -KOLM0PF KOLM1PF KOLM2PF KOLM3PF -- Collisions of missiles with playfield
-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)

- -KOLP0P KOLP1P KOLP2P KOLP3P -- Collisions of players with players
-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)

- -KOLP0PF KOLP1PF KOLP2PF KOLP3PF -- Collisions of players with playfield
-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)

- -PAL -- PAL system flag
-bit 0 - unused
-bits 1-3 - 000 if TV system is PAL. Else it is NTSC
-bits 4-7 - unused (=0)

- -PMCTL -- Player/Missile Control
-bit 0 - get missiles data from ANTIC
-bit 1 - get players data from ANTIC
-bit 2 - lock triggers when pressed
-bits 3-7 - unused

- -SIZEM -- Sizes of missiles
-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

- -SIZEP0 SIZEP1 SIZEP2 SIZEP3 -- Sizes of players
-bits 1,0 - size of player (see
SIZEM)
-bits 2-7 - unused

- -TRIG0 TRIG1 TRIG3 -- Triggers
-TRIG0 and TRIG1 contain trigger status of two joysticks. -TRIG3 contains presence of cartridge.
-bit 0 - reset if trigger pressed
-bits 1-7 - unused (=0)

- -VDELAY -- Vertical delay of players and missiles
-Causes players and missiles to be displayed one scanline lower. -Works only in two-line resolution.
-bit 0 - delay missile 0
-bit 1 - delay missile 1
-bit 2 - delay missile 2
-bit 3 - delay missile 3
-bit 4 - delay player 0
-bit 5 - delay player 1
-bit 6 - delay player 2
-bit 7 - delay player 3

- - - \ No newline at end of file diff --git a/doc/index.htm b/doc/index.htm index 8fa1044..8dde32b 100644 --- a/doc/index.htm +++ b/doc/index.htm @@ -1,39 +1,46 @@ -X-ASM 2.3 Package Documentation +xasm 2.4 final edition - + +
-

X-ASM Package version 2.3

-by Fox/Taquart

-


-

-Manuals of utilities:

- - - - - - -
X-Assembler6502 cross-assembler
X-BOOTAtari executable -> disk image converter
X-HEADSimple Atari executable analyzer
X-LOADSIO2PC interface Atari executable loader
GR0DOS screen adjuster
-

-


-

-Atari XL/XE documentation (under construction):

- - - - - -
GTIAGTIA chip documentation
POKEYPOKEY chip documentation
PIAPIA chip documentation
ANTICANTIC chip documentation
CPUBUGS.ASX6502 bugs detector source -
-

-


-

-Visit X-ASM Homepage: -http://www.6502.org/users/fox/xasm -

-All programs and documentation are freeware. Copyright (c) 1998-2000 Taquart. +intel outside - 6502 processor +
+

xasm 2.4 final edition

+Copyright (c) 1998-2002 by Piotr Fusik
+

+


+

this package contains following utilities (click program name for documentation): +

+ + + + + + + + + + + +
NameDescription
X-Assembler6502 cross-assembler
X-BOOTConverts Atari executables to disk images
X-HEADPrints headers of an Atari executable file
X-LOADLoads an executable file to an Atari computer via the SIO2PC interface
+

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. +

\ 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 @@ - - -PIA Documentation - - -

-

PIA Documentation

-by
Fox/Taquart

-


-

-

Registers

- - - - - - -
 Address  Read/Write register 
^30PORTA
^31PORTB
^32PACTL
^33PBCTL
-

-


-

-

Description

-
- -PORTA -- Port A
-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

- -PORTA -- Port B
-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

- -PACTL -- Port A Control
-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

- -PBCTL -- Port B Control
-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 (?) = 0011

- - - \ 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 @@ - - -POKEY Documentation - - -

-

POKEY Documentation

-by
Fox/Taquart

-


-

-

Registers

- - - - - - - - - - - - - - - - - - -
 Address  Read register  Write register 
^20POT0AUDF1
^21POT1AUDC1
^22POT2AUDF2
^23POT3AUDC2
^24unusedAUDF3
^25unusedAUDC3
^26unusedAUDF4
^27unusedAUDC4
^28POTSTAUDCTL
^29KBCODESTIMER
^2ARANDOMSKSTRES
^2BunusedPOTGO
^2Cunusedunused
^2DSERINSEROUT
^2EIRQSTIRQEN
^2FSKSTATSKCTL
-

-


-

-

Description

-
- -AUDC1 AUDC2 AUDC3 AUDC4 -- Audio control
-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

- -AUDCTL -- Audio control
-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

- -AUDF1 AUDF2 AUDF3 AUDF4 -- Audio frequency

- -IRQEN -- IRQ enable
-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

- -IRQST -- IRQ status
-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

- -KBCODE -- Keyboard code

- -POT0 POT1 POT2 POT3 -- Potentiometrs
-Position of potentiometr in range 0-224

- -POTGO -- Potentiometr goes
-Any value written to this registers starts measurement of potentiometrs

- -POTST -- Potentiometrs status
-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

- -RANDOM -- Random

- -SERIN -- Serial input
-Received byte

- -SEROUT -- Serial output
-A byte to be send

- -SKCTL -- Serial and keyboard control
-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

- -SKSTAT -- Serial and keyboard status
-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

- -SKSTRES -- SKSTAT reset
-Any value written to this register resets SKSTAT error flags

- -STIMER -- Start timers
-Any value written to this register resets all counters

- - - \ 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 @@ -X-Assembler 2.3 Manual +X-Assembler 2.4

-

X-Assembler version 2.3

-by
Fox/Taquart

+

X-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

@@ -139,40 +161,75 @@ Following options are supported:
/c
Enable listing false conditionals.
By default lines skipped due to false condition are not listed.

+ +

/d:label=value +
Define a label.
+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.

/e
Enable setting environment variables pointing to the error location.
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.

-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. +

/i
Disable listing included source. Only main source file will be listed.

-

/l[:fname] +
/l[:filename]
Enable generating listing. -If no fname given, listing is written to source.lst.

+If no filename given, listing is written to source.lst +(where source is the name of the source file (without extension).

/n -
Check source and object modification times and assemble only +
Check source and object file modification time and assemble only if source is newer than object file. X-Asm does NOT check included nor inserted files but only main source, so be careful with this option.

-

/o:fname -
Specify object name. Default is source.obx.

+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).

+

/o:filename +
Specify object file name. Default is source.obx. +You may use the null device (/o:nul) to generate no object file.

+ +

/p +
Print fully qualified file names in listing and error messages.
+This option is useful for the Code-Genie editor (see +
here), which can jump to the error location +only if full path is given.

+ +

/q +
Suppress info messages.
+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.

/s -
Disable converting spaces to tabs in listing. -Using tabs makes listing file shorter.
+
Disable converting spaces to tabs in listing.
+Using tabs makes listing file shorter. Tab stops are assumed to be every 8 characters.

-

/t[:fname] -
List label table. -If no fname given, table is written at the end of listing or to -source.tab.

+

/t[:filename] +
List label table.
+If no filename given, the table is written at the end of listing +or to source.tab.

+ +

/u +
Warn of unused labels.
+A warning message will be issued for each label, which value is never +used.

If source is incorrect, X-Asm stops on first encountered error.

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:

Label table structure

-Line of label table includes: +A line of label table contains:
@@ -43,19 +47,20 @@ and obxfile atrpath can be used

USAGE

-This is syntax for running X-BOOT:

+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:

XBOOT -p test @@ -76,17 +81,18 @@ to current directory on current drive using professional loader.

DETAILS

Produced ATR is single density and as short as possible. Loader occupies one boot sector.

-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:

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. +


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 @@ -X-HEAD 1.1 Manual +X-HEAD 1.1

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.

+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.

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.

    +Simply run X-HEAD with executable filename. No options are supported.

    X-HEAD will read the file and display its headers in following format:

     bbbb-eeee xxxx
    where bbbb is the begin, eeee - the end of the block, -and xxxx is the execution address (init or run vector).

    +and xxxx is the execution (init or run) address.

    The summary includes:
    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)

    -All displayed numbers are hexadecimal, of course.

    -You can redirect output to a file, for example: -

    XHEAD TEST >TEST.HDR
    +All displayed numbers are hexadecimal, of course.
    +


    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 @@ -X-LOAD 1.0 Manual +X-LOAD 1.1

    -

    X-LOAD version 1.0

    -by Fox/Taquart

    +

    X-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.

    -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).

    CHANGES

    +

    Version 1.1

    +
      +
    • files with no explicit run address are started from the beginning +of the first block +

    Version 1.0

    • first release @@ -26,47 +31,45 @@ fast (57.6 kbits/sec).


      USAGE

      -You run X-LOAD from DOS prompt with executable filename and optional -options:

      +You should pass as the parameters the executable file name and optionally +the options:

      /1 - /4 -
      Specify COM port number, which interface is attached to. -Default is COM2.

      +

      Serial port number. Default is 2.

      /p -
      Force using '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 or any special loader.

      +

      Force using 'professional loader', which allows you to load code/data +into the RAM under ROM ($c000-$ffff) and starts the program with disabled +ROM and interrupts. By default, standard loader is used, which can load +any Atari executable not demanding DOS or any special loader.

      After you run X-LOAD, you only have to boot your Atari and the program will be loaded and run.

      -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.


      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.

      +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:

        -
      • 'S' - read status. Used for checking presence of disk drive. -
      • 'R' - read sector (only first). Used for reading boot program. +
      • 'S' - read status. Used by the Atari OS to check presence +of a disk drive. +
      • 'R' - read sector (only first). Used to transfer the loader.
      -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.

      -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:

      • Standard: XLOADSTD.ASX
      • Professional: XLOADPRO.ASX @@ -74,8 +77,9 @@ For more details, view sources of loaders: You may have noticed that X-LOAD is somehow similar to X-BOOT, which also has two loaders. The main difference is that X-BOOT loaders use system routines to get sectors at regular speed of 19200 bits/sec. -They use sector buffer and require some low memory locations not to be changed -because of operating system. In this respect X-LOAD loaders are better, because -allow loading into whole memory except for loader code. +They use sector buffer and require some low memory locations not to be altered +because of Atari operating system. In this respect X-LOAD loaders are better, +because they allow loading into whole memory except for the loader code. +


        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 + +CaseInsensitive true + +FgColor #000000 + +BlockStart comment1 *\s +BlockEnd comment1 \n +Format comment1 b +FgColor comment1 #009300 + +BlockStart comment2 ; +BlockEnd comment2 \n +FgColor comment2 #009300 + +BlockStart comment3 |\s +BlockEnd comment3 \n +FgColor comment3 #009300 + +BlockStart string1 ' +BlockEnd string1 \n +BlockEnd string1 ' +BlockNotEnd string1 '' +FgColor string1 #800080 + +BlockStart string2 " +BlockEnd string2 \n +BlockEnd string2 " +BlockNotEnd string2 "" +FgColor string2 #800080 + +KeywordGroup keywords + adc add and asl bcc bcs beq bit + bmi bne bpl brk bvc bvs clc cld + cli clv cmp cpx cpy dec dex dey + dta eif eli els end eor equ ert + icl ift inc ini ins inw inx iny + jcc jcs jeq jmi jmp jne jpl jsr + jvc jvs lda ldx ldy lsr mva mvx + mvy mwa mwx mwy nop opt ora org + pha php pla plp rcc rcs req rmi + rne rol ror rpl rti rts run rvc + rvs sbc scc scs sec sed sei seq + smi sne spl sta stx sty sub svc + svs tax tay tsx txa txs tya +FgColor keywords #0000ff + +Nest comment1 +Nest comment2 +Nest comment3 +Nest string1 +Nest string2 +Nest keywords + +# eof diff --git a/syntax/X-Assembler.chl b/syntax/X-Assembler.chl new file mode 100644 index 0000000..36760bd --- /dev/null +++ b/syntax/X-Assembler.chl @@ -0,0 +1,55 @@ +// X-Assembler highlighter for ConTEXT v0.97.1 (www.fixedsys.com/context) +// written by Piotr Fusik + +Language: X-Assembler +Filter: X-Assembler files (*.asx)|*.asx +HelpFile: + +CaseSensitive: 0 + +LineComment: ; +BlockCommentBeg: +BlockCommentEnd: + +IdentifierBegChars: a..z A..Z _ +IdentifierChars: a..z A..Z _ 0..9 + +NumConstBegChars: 0..9 +NumConstChars: 0..9 abcdefABCDEF + +EscapeChar: + +KeyWords1: adc add and asl bcc bcs beq bit + bmi bne bpl brk bvc bvs clc cld + cli clv cmp cpx cpy dec dex dey + dta eif eli els end eor equ ert + icl ift inc ini ins inw inx iny + jcc jcs jeq jmi jmp jne jpl jsr + jvc jvs lda ldx ldy lsr mva mvx + mvy mwa mwx mwy nop opt ora org + pha php pla plp rcc rcs req rmi + rne rol ror rpl rti rts run rvc + rvs sbc scc scs sec sed sei seq + smi sne spl sta stx sty sub svc + svs tax tay tsx txa txs tya + +StringBegChar: ' +StringEndChar: ' +MultilineStrings: 0 + +UsePreprocessor: 0 + +CurrLineHighlighted: 0 + +SpaceCol: clWindowText clWindow +Keyword1Col: clBlue clWindow +Keyword2Col: clBlue clWindow +Keyword3Col: clBlue clWindow +IdentifierCol: clWindowText clWindow +CommentCol: clGreen clWindow +NumberCol: clWindowText clWindow +StringCol: clPurple clWindow +SymbolCol: clWindowText clWindow +PreprocessorCol: clWindowText clWindow +SelectionCol: clWhite clNavy +CurrentLineCol: clBlack clYellow diff --git a/syntax/xasm.stx b/syntax/xasm.stx new file mode 100644 index 0000000..78d29e7 --- /dev/null +++ b/syntax/xasm.stx @@ -0,0 +1,133 @@ +#TITLE=X-Assembler +; X-Assembler syntax file for EditPlus 2.11 (www.editplus.com) +; written by Piotr Fusik + +#DELIMITER=+-*/%&|^!~=<>()[]{},:"# +#QUOTATION1=' +#QUOTATION2=" +#CONTINUE_QUOTE=n +#LINECOMMENT=; +#LINECOMMENT2=^!* +#COMMENTON= +#COMMENTOFF= +#COMMENTON2= +#COMMENTOFF2= +#ESCAPE= +#CASE=n +#PREFIX1= +#PREFIX2= +#PREFIX3= +#PREFIX4= +#PREFIX5= +#SUFFIX1= +#SUFFIX2= +#SUFFIX3= +#SUFFIX4= +#SUFFIX5= + +#KEYWORD=Keywords + +adc +add +and +asl +bcc +bcs +beq +bit +bmi +bne +bpl +brk +bvc +bvs +clc +cld +cli +clv +cmp +cpx +cpy +dec +dex +dey +dta +eif +eli +els +end +eor +equ +ert +icl +ift +inc +ini +ins +inw +inx +iny +jcc +jcs +jeq +jmi +jmp +jne +jpl +jsr +jvc +jvs +lda +ldx +ldy +lsr +mva +mvx +mvy +mwa +mwx +mwy +nop +opt +ora +org +pha +php +pla +plp +rcc +rcs +req +rmi +rne +rol +ror +rpl +rti +rts +run +rvc +rvs +sbc +scc +scs +sec +sed +sei +seq +smi +sne +spl +sta +stx +sty +sub +svc +svs +tax +tay +tsx +txa +txs +tya +# diff --git a/www/cgenie.gif b/www/cgenie.gif new file mode 100644 index 0000000..3760799 Binary files /dev/null and b/www/cgenie.gif differ diff --git a/www/gbak.gif b/www/gbak.gif new file mode 100644 index 0000000..219d6fa Binary files /dev/null and b/www/gbak.gif differ diff --git a/www/green64.gif b/www/green64.gif new file mode 100644 index 0000000..16d5530 Binary files /dev/null and b/www/green64.gif differ diff --git a/www/index.html b/www/index.html new file mode 100644 index 0000000..c9fe8ed --- /dev/null +++ b/www/index.html @@ -0,0 +1,42 @@ + + +xasm home page + + + + + + + +
        +  xasm home page

        + + + +
        Some 6502 code in Code-Genie +xasm is a set of a few tools for developing software for Atari 8-bit computers +on a PC with MS-DOS or Windows.

        +

        +


        +Features of the assembler: +

          +
        • backward compatibility with Quick Assembler +
        • pseudo instructions (add, sub, inw, mva etc.) +
        • pseudo addressing modes (e.g. indexing with autoincrementation) +
        • two instructions with same operand may be written in single line +
        • full set of arithmetic and logical operators +
        • 6502 opcodes may be used in expressions +
        • conditional assembly +
        • sine table generator +
        • Atari floating-point numbers +
        • Atari executable and raw output formats +
        +
        +


        +Last modified: 22/05/02 + \ No newline at end of file