mirror of
https://github.com/pfusik/xasm.git
synced 2025-03-23 13:32:10 +00:00
xasm 2.4 release.
This commit is contained in:
parent
af437b3eaa
commit
c46bf8a027
105
doc/antic.htm
105
doc/antic.htm
@ -1,105 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>ANTIC Documentation</TITLE>
|
||||
</HEAD>
|
||||
<BODY BACKGROUND="atari.gif">
|
||||
<CENTER>
|
||||
<H1>ANTIC Documentation</H1>
|
||||
by <A HREF="mailto:pfusik@elka.pw.edu.pl">Fox/Taquart</A><P>
|
||||
<HR>
|
||||
<P>
|
||||
<H2>Registers</H2>
|
||||
<TABLE BORDER>
|
||||
<TR><TD><I> Address </I></TD><TD><I> Read register </I></TD><TD><I> Write register </I></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^40</TT></TD><TD>unused</TD><TD><A HREF="#dmactl">DMACTL</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^41</TT></TD><TD>unused</TD><TD><A HREF="#chrctl">CHRCTL</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^42</TT></TD><TD>unused</TD><TD><A HREF="#dlptr">DLPTRL</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^43</TT></TD><TD>unused</TD><TD><A HREF="#dlptr">DLPTRH</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^44</TT></TD><TD>unused</TD><TD><A HREF="#hscrol">HSCROL</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^45</TT></TD><TD>unused</TD><TD><A HREF="#vscrol">VSCROL</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^46</TT></TD><TD>unused</TD><TD>unused</TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^47</TT></TD><TD>unused</TD><TD><A HREF="#pmbase">PMBASE</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^48</TT></TD><TD>unused</TD><TD>unused</TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^49</TT></TD><TD>unused</TD><TD><A HREF="#chbase">CHBASE</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^4A</TT></TD><TD>unused</TD><TD><A HREF="#wsync">WSYNC</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^4B</TT></TD><TD><A HREF="#vcount">VCOUNT</A></TD><TD>unused</TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^4C</TT></TD><TD><A HREF="#lpenh">LPENH</A></TD><TD>unused</TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^4D</TT></TD><TD><A HREF="#lpenv">LPENV</A></TD><TD>unused</TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^4E</TT></TD><TD>unused</TD><TD><A HREF="#nmien">NMIEN</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^4F</TT></TD><TD><A HREF="#nmist">NMIST</A></TD><TD>unused</TD></TR>
|
||||
</TABLE>
|
||||
<P>
|
||||
<HR>
|
||||
<P>
|
||||
<H2>Description</H2>
|
||||
</CENTER>
|
||||
|
||||
<A NAME="chbase"><U>CHBASE</U>
|
||||
- <B>Characters base</B><BR>
|
||||
Contains high byte of character set in text modes.<P>
|
||||
|
||||
<A NAME="chrctl"><U>CHRCTL</U>
|
||||
- <B>Characters control</B><BR>
|
||||
bit 0 - display characters 128-255 as spaces<BR>
|
||||
bit 1 - display characters 128-255 as inverse<BR>
|
||||
bit 2 - display all characters upside down<P>
|
||||
|
||||
<A NAME="dlptr"><U>DLPTRL</U> <U>DLPTRH</U>
|
||||
- <B>Display List pointer</B><P>
|
||||
|
||||
<A NAME="dmactl"><U>DMACTL</U>
|
||||
- <B>DMA control</B><BR>
|
||||
bits 1,0 - width of screen<BR>
|
||||
00 - screen off<BR>
|
||||
01 - narrow screen - 256 pixels<BR>
|
||||
10 - normal screen - 320 pixels<BR>
|
||||
11 - wide screen - 384 pixels<BR>
|
||||
bits 3,2 - DMA for Players/Missiles<BR>
|
||||
00 - no DMA for P/MG<BR>
|
||||
01 - DMA for missiles<BR>
|
||||
10 - DMA for players and missiles<BR>
|
||||
11 - DMA for players and missiles<BR>
|
||||
bit 4 - P/MG resolution<BR>
|
||||
0 - 120 lines<BR>
|
||||
1 - 240 lines<BR>
|
||||
bit 5 - DMA for Display List<BR>
|
||||
bits 7-6 - unused<P>
|
||||
|
||||
<A NAME="hscrol"><U>HSCROL</U>
|
||||
- <B>Horizontal scroll</B><P>
|
||||
|
||||
<A NAME="lpenh"><U>LPENH</U>
|
||||
- <B>Light pen horizontal position</B><P>
|
||||
|
||||
<A NAME="lpenv"><U>LPENV</U>
|
||||
- <B>Light pen vertical position</B><P>
|
||||
|
||||
<A NAME="nmien"><U>NMIEN</U>
|
||||
- <B>NMI enable</B><BR>
|
||||
bits 5-0 - unused<BR>
|
||||
bit 6 - enable VBLKI<BR>
|
||||
bit 7 - enable DLI<P>
|
||||
|
||||
<A NAME="nmist"><U>NMIST</U>
|
||||
- <B>NMI status</B><BR>
|
||||
bits 5-0 - unused<BR>
|
||||
bit 6 - VBLKI occured<BR>
|
||||
bit 7 - DLI occured<P>
|
||||
|
||||
<A NAME="pmbase"><U>PMBASE</U>
|
||||
- <B>Player/missile base</B><BR>
|
||||
High byte of P/MG data<P>
|
||||
|
||||
<A NAME="vcount"><U>VCOUNT</U>
|
||||
- <B>Vertical count</B><BR>
|
||||
Contains number of scanline divided by 2.<P>
|
||||
|
||||
<A NAME="vscrol"><U>VSCROL</U>
|
||||
- <B>Vertial scroll</B><P>
|
||||
|
||||
<A NAME="wsync"><U>WSYNC</U>
|
||||
- <B>Wait for synchronization</B><BR>
|
||||
Any value written to this register stops CPU until right border of normal screen is reached.<P>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
BIN
doc/atari.gif
BIN
doc/atari.gif
Binary file not shown.
Before ![]() (image error) Size: 372 B |
@ -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 <clstxt
|
||||
ldy #1
|
||||
jsr callio
|
||||
|
||||
* Check ADC bug
|
||||
sed
|
||||
lda #$99 BCD 99+01=00
|
||||
add #1
|
||||
cld
|
||||
seq Z flag set: no bug
|
||||
lda #$ff
|
||||
ldx <adctxt
|
||||
jsr print
|
||||
|
||||
* Check BRK bug
|
||||
sei Disable IRQs
|
||||
inc ^4e Disable NMIs
|
||||
mva #$fe ^31 Disable ROM
|
||||
mwa #nmi $fffa Set my NMI vector
|
||||
mwa #irq $fffe Set my IRQ vector
|
||||
lsr ^4e Enable VBLKI
|
||||
irq brk BRK interrupt - infinite loop, so...
|
||||
nmi inc ^31 NMI always occurs on BRK
|
||||
cli
|
||||
pla:pla
|
||||
sub <irq
|
||||
seq Return adr points BRK: no bug
|
||||
lda #$ff
|
||||
ldx <brktxt
|
||||
jsr print
|
||||
|
||||
* Check JMP bug
|
||||
jmp (jmpptr) You'll receive a warning from X-Asm here!
|
||||
cont ldx <jmptxt
|
||||
jsr print
|
||||
jmp * Halt CPU
|
||||
|
||||
* Print results (A=$ff:bug or 0:no_bug, X=<cmdtxt)
|
||||
print pha Save A
|
||||
lda #11 CIO write command
|
||||
ldy #3 Print 3 letters
|
||||
jsr callio
|
||||
ldx <nobtxt
|
||||
pla Restore A
|
||||
seq A=0: X=<nobtxt
|
||||
ldx <bugtxt A<>0: X=<bugtxt
|
||||
lda #9 CIO write_to_eol command
|
||||
ldy #$ff Limit of printed characters
|
||||
|
||||
callio sta icmd Call "E:" CIO: A-cmd X-<buf Y-len
|
||||
stx ibuf
|
||||
mva >* 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.
|
66
doc/editors.htm
Normal file
66
doc/editors.htm
Normal file
@ -0,0 +1,66 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Configuring editors for X-Assembler</TITLE>
|
||||
</HEAD>
|
||||
<BODY BGCOLOR=black TEXT=white LINK="#c0c0ff" VLINK="#c040c0" ALINK="#d06060">
|
||||
<H2>How to configure a text editor for convenient use of X-Assembler</H2>
|
||||
This document describes, how to setup a text editor to:
|
||||
<UL>
|
||||
<LI> highlight X-Assembler mnemonics
|
||||
<LI> invoke the assembler with a single keystroke
|
||||
<LI> place the cursor where an assembly error occured
|
||||
</UL>
|
||||
Of course these features are not available in <I>Windows Notepad</I>, so you must
|
||||
pick another text editor. Fortunately there are many general-purpose text
|
||||
editors for Windows. I'll fucus on three:
|
||||
<UL>
|
||||
<LI> <I>EditPlus</I> (<A HREF="http://www.editplus.com">www.editplus.com</A>)
|
||||
<LI> <I>ConTEXT</I> (<A HREF="http://www.fixedsys.com/context">www.fixedsys.com/context</A>)
|
||||
<LI> <I>Code-Genie</I> (<A HREF="http://www.code-genie.com">www.code-genie.com</A>)
|
||||
</UL>
|
||||
All of these have similar features. <I>EditPlus</I> is very good, unfortunately it is
|
||||
shareware (you have to pay $30). The other editors are freeware. Personally
|
||||
I prefer <I>Code-Genie</I>, which offers unique feature of editing binary files.<P>
|
||||
<H3>Highlighting X-Assembler mnemonics</H3>
|
||||
In the <TT>syntax</TT> subdirectory you'll find X-Assembler syntax definitions for all
|
||||
these editors.
|
||||
<UL>
|
||||
<LI> Installation for <I>EditPlus</I>:
|
||||
Select <B>Tools/Preferences</B>, then <B>Files/Settings & syntax</B>,
|
||||
then <B>Add</B>. Type <B>Description</B> (<TT>X-Assembler</TT>), <B>File extensions</B>
|
||||
(<TT>asx</TT>), click <B>...</B> next to <B>Syntax file</B> and locate
|
||||
the <TT>xasm.stx</TT> file. Then click <B>Syntax colors</B> and select your
|
||||
favourite colors.
|
||||
<LI> Installation for <I>ConTEXT</I>: Just copy <TT>X-Assembler.chl</TT>
|
||||
to <TT>Highlighters</TT> subdirectory in the <I>ConTEXT</I> directory.
|
||||
<LI> Installation for <I>Code-Genie</I>:
|
||||
Copy <TT>X-Assembler.cgsyn</TT> to <TT>syn</TT> subdirectory in the <I>Code-Genie</I>
|
||||
directory. Edit <TT>cgenie.conf</TT>, you can do it by selecting
|
||||
<B>View/Settings</B>. Type:<BR>
|
||||
<NOBR><TT>DefaultSyntax x-assembler asx</TT></NOBR><BR>
|
||||
near other <TT>DefaultSyntax</TT> lines.
|
||||
</UL>
|
||||
<H3>Single-keystroke assembly</H3>
|
||||
<UL>
|
||||
<LI> <I>EditPlus</I>: Select <B>Tools/Configure User Tools</B>.
|
||||
Then click <B>Add Tool</B>, type <B>Menu text</B> (<TT>xasm</TT>), <B>command</B>
|
||||
(path to <TT>xasm.exe</TT>), <B>Argument</B> (<TT>$(FilePath)</TT>) and <B>Initial directory</B>
|
||||
(<TT>$(FileDir)</TT>). Check <B>Capture output</B>.
|
||||
<LI> <I>ConTEXT</I>: Select <B>Options/Environment Options</B>, then
|
||||
the <B>Execute Keys</B> tab. Click <B>Add</B>, type <TT>asx</TT>, click
|
||||
e.g. <B>F9</B>, locate <TT>xasm.exe</TT> by pressing the <TT>...</TT> button
|
||||
in the top-right corner. Type <B>Start in</B> (<TT>%p</TT>)
|
||||
and <B>parameters</B> (<TT>%n</TT>). Check <B>Use short DOS names</B>
|
||||
and <B>Capture console output</B>.
|
||||
Type <B>Compiler output parser rule</B> (<TT>%n (%l)</TT>).
|
||||
<LI> <I>Code-Genie</I>: Select <B>View/Settings</B>, type:<BR>
|
||||
<NOBR><TT>AddUserTool xasm xasm.exe /p\s$FP CaptureOutput $FD</TT></NOBR><BR>
|
||||
near other <TT>AddUserTool</TT> lines (if <TT>xasm.exe</TT> is not on your
|
||||
<TT>PATH</TT>, then you must type full path to it).
|
||||
</UL>
|
||||
<H3>Placing the cursor where an assembly error occured</H3>
|
||||
This works same for all these three editors: just double-click the line
|
||||
with the error message.
|
||||
<P><HR><P><A HREF="index.htm">Back</A>
|
||||
</BODY>
|
||||
</HTML>
|
27
doc/faq.htm
Normal file
27
doc/faq.htm
Normal file
@ -0,0 +1,27 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>xasm FAQ</TITLE>
|
||||
</HEAD>
|
||||
<BODY BGCOLOR=black TEXT=white LINK="#c0c0ff" VLINK="#c040c0" ALINK="#d06060">
|
||||
<H2>Frequently Asked Questions</H2>
|
||||
<B>What is xasm?</B><BR>
|
||||
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.
|
||||
<P><B>I want to run xasm on my Amiga / Atari ST / Mac / ...</B><BR>
|
||||
Unfortunately xasm is written in x86 assembly language, so it is
|
||||
not portable.
|
||||
<P><B>Why xasm, not X-ASM as in previous versions?</B><BR>
|
||||
It's easier to pronounce. ;-)
|
||||
<P><B>Why final edition?</B><BR>
|
||||
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.
|
||||
<P><B>What about supporting other 6502-based machines, other processors (65816 etc.) ?</B><BR>
|
||||
xasm is not a universal 6502 cross-assembler. If you need a portable
|
||||
cross-assembler (and maybe even an excellent C compiler), then visit
|
||||
<A HREF="http://www.cc65.org">www.cc65.org</A>.
|
||||
<P><HR><P><A HREF="index.htm">Back</A>
|
||||
</BODY>
|
||||
</HTML>
|
51
doc/gr0.htm
51
doc/gr0.htm
@ -1,51 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>GR0 1.1 Manual</TITLE>
|
||||
</HEAD>
|
||||
<BODY BACKGROUND="6502proc.gif">
|
||||
<CENTER>
|
||||
<H1>GR0 version 1.1</H1>
|
||||
by <A HREF="mailto:pfusik@elka.pw.edu.pl">Fox/Taquart</A><P>
|
||||
<HR>
|
||||
</CENTER>
|
||||
|
||||
<H2>INTRODUCTION</H2>
|
||||
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.
|
||||
<H3>CHANGES</H3>
|
||||
<H4>Version 1.1</H4>
|
||||
<UL>
|
||||
<LI> first release
|
||||
</UL>
|
||||
|
||||
<HR>
|
||||
<H2>USAGE</H2>
|
||||
You can run GR0 without any parameters to see available options. They are:
|
||||
<DL>
|
||||
<DT><TT>/a</TT>
|
||||
<DD>Set Atari scheme. It is equivalent to options <TT>/b:1 /c:7 /n /l /x</TT><P>
|
||||
<DT><TT>/b:nn</TT>
|
||||
<DD>Set background color nn, where nn is decimal number of range 0-15<P>
|
||||
<DT><TT>/c:nn</TT>
|
||||
<DD>Set foreground (letters) color nn, where nn is decimal number of range 0-15<P>
|
||||
<DT><TT>/d</TT>
|
||||
<DD>Set default PC font. Resets all characters.<P>
|
||||
<DT><TT>/f:fname</TT>
|
||||
<DD>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.<P>
|
||||
<DT><TT>/i</TT>
|
||||
<DD>Set characters 128-255 to inverse of 0-127.
|
||||
<TT>/i</TT> can only be used with <TT>/a</TT>, <TT>/f</TT> or <TT>/x</TT>.<P>
|
||||
<DT><TT>/l</TT>
|
||||
<DD>Select 50 lines font. Without this option, 25 lines font is selected.<P>
|
||||
<DT><TT>/n</TT>
|
||||
<DD>Initialize text mode. Clears screen and restores default font and colors.<P>
|
||||
<DT><TT>/x</TT>
|
||||
<DD>Set Atari built-in font. Sets characters 0-127 to standard Atari font.
|
||||
It looks better with /l option.<P>
|
||||
</DL>
|
||||
In Windows, font changes only in full-screen mode. Colors and number of lines change
|
||||
also in a window.
|
||||
</BODY>
|
||||
</HTML>
|
511
doc/gtia.htm
511
doc/gtia.htm
@ -1,511 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>GTIA Documentation</TITLE>
|
||||
</HEAD>
|
||||
<BODY BACKGROUND="atari.gif">
|
||||
<CENTER>
|
||||
<H1>GTIA Documentation</H1>
|
||||
by <A HREF="mailto:pfusik@elka.pw.edu.pl">Fox/Taquart</A><P>
|
||||
<HR>
|
||||
<P>
|
||||
<H2>Registers</H2>
|
||||
<TABLE BORDER>
|
||||
<TR>
|
||||
<TD><I> Address </I></TD><TD><I> Read register </I></TD><TD><I> Write register </I></TD>
|
||||
<TD><I> Address </I></TD><TD><I> Read register </I></TD><TD><I> Write register </I></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^00</TT></TD><TD><A HREF="#kolmxpf">KOLM0PF</A></TD><TD><A HREF="#hpospx">HPOSP0</A></TD>
|
||||
<TD ALIGN=center><TT>^10</TT></TD><TD><A HREF="#trigx">TRIG0</A></TD><TD><A HREF="#grafpx">GRAFP3</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^01</TT></TD><TD><A HREF="#kolmxpf">KOLM1PF</A></TD><TD><A HREF="#hpospx">HPOSP1</A></TD>
|
||||
<TD ALIGN=center><TT>^11</TT></TD><TD><A HREF="#trigx">TRIG1</A></TD><TD><A HREF="#grafm">GRAFPM</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^02</TT></TD><TD><A HREF="#kolmxpf">KOLM2PF</A></TD><TD><A HREF="#hpospx">HPOSP2</A></TD>
|
||||
<TD ALIGN=center><TT>^12</TT></TD><TD>unused</TD><TD><A HREF="#colpmx">COLPM0</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^03</TT></TD><TD><A HREF="#kolmxpf">KOLM3PF</A></TD><TD><A HREF="#hpospx">HPOSP3</A></TD>
|
||||
<TD ALIGN=center><TT>^13</TT></TD><TD><A HREF="#trigx">TRIG3</A></TD><TD><A HREF="#colpmx">COLPM1</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^04</TT></TD><TD><A HREF="#kolpxpf">KOLP0PF</A></TD><TD><A HREF="#hposmx">HPOSM0</A></TD>
|
||||
<TD ALIGN=center><TT>^14</TT></TD><TD><A HREF="#pal">PAL</A></TD><TD><A HREF="#colpmx">COLPM2</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^05</TT></TD><TD><A HREF="#kolpxpf">KOLP1PF</A></TD><TD><A HREF="#hposmx">HPOSM1</A></TD>
|
||||
<TD ALIGN=center><TT>^15</TT></TD><TD>unused</TD><TD><A HREF="#colpmx">COLPM3</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^06</TT></TD><TD><A HREF="#kolpxpf">KOLP2PF</A></TD><TD><A HREF="#hposmx">HPOSM2</A></TD>
|
||||
<TD ALIGN=center><TT>^16</TT></TD><TD>unused</TD><TD><A HREF="#colpfx">COLPF0</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^07</TT></TD><TD><A HREF="#kolpxpf">KOLP3PF</A></TD><TD><A HREF="#hposmx">HPOSM3</A></TD>
|
||||
<TD ALIGN=center><TT>^17</TT></TD><TD>unused</TD><TD><A HREF="#colpfx">COLPF1</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^08</TT></TD><TD><A HREF="#kolmxp">KOLM0P</A></TD><TD><A HREF="#sizepx">SIZEP0</A></TD>
|
||||
<TD ALIGN=center><TT>^18</TT></TD><TD>unused</TD><TD><A HREF="#colpfx">COLPF2</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^09</TT></TD><TD><A HREF="#kolmxp">KOLM1P</A></TD><TD><A HREF="#sizepx">SIZEP1</A></TD>
|
||||
<TD ALIGN=center><TT>^19</TT></TD><TD>unused</TD><TD><A HREF="#colpfx">COLPF3</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^0A</TT></TD><TD><A HREF="#kolmxp">KOLM2P</A></TD><TD><A HREF="#sizepx">SIZEP2</A></TD>
|
||||
<TD ALIGN=center><TT>^1A</TT></TD><TD>unused</TD><TD><A HREF="#colbak">COLBAK</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^0B</TT></TD><TD><A HREF="#kolmxp">KOLM3P</A></TD><TD><A HREF="#sizepx">SIZEP3</A></TD>
|
||||
<TD ALIGN=center><TT>^1B</TT></TD><TD>unused</TD><TD><A HREF="#gtiactl">GTIACTL</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^0C</TT></TD><TD><A HREF="#kolpxp">KOLP0P</A></TD><TD><A HREF="#sizem">SIZEM</A></TD>
|
||||
<TD ALIGN=center><TT>^1C</TT></TD><TD>unused</TD><TD><A HREF="#vdelay">VDELAY</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^0D</TT></TD><TD><A HREF="#kolpxp">KOLP1P</A></TD><TD><A HREF="#grafpx">GRAFP0</A></TD>
|
||||
<TD ALIGN=center><TT>^1D</TT></TD><TD>unused</TD><TD><A HREF="#pmcntl">PMCNTL</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^0E</TT></TD><TD><A HREF="#kolpxp">KOLP2P</A></TD><TD><A HREF="#grafpx">GRAFP1</A></TD>
|
||||
<TD ALIGN=center><TT>^1E</TT></TD><TD>unused</TD><TD><A HREF="#hitclr">HITCLR</A></TD>
|
||||
</TR><TR>
|
||||
<TD ALIGN=center><TT>^0F</TT></TD><TD><A HREF="#kolpxp">KOLP3P</A></TD><TD><A HREF="#grafpx">GRAFP2</A></TD>
|
||||
<TD ALIGN=center><TT>^1F</TT></TD><TD><A HREF="#consol">CONSOL</A></TD><TD><A HREF="#consol">CONSOL</A></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<P><HR><P>
|
||||
<H2>Colors</H2>
|
||||
<TABLE WIDTH=100%><TR><TD></TD>
|
||||
<TD WIDTH=6% ALIGN=center>0</TD>
|
||||
<TD WIDTH=6% ALIGN=center>1</TD>
|
||||
<TD WIDTH=6% ALIGN=center>2</TD>
|
||||
<TD WIDTH=6% ALIGN=center>3</TD>
|
||||
<TD WIDTH=6% ALIGN=center>4</TD>
|
||||
<TD WIDTH=6% ALIGN=center>5</TD>
|
||||
<TD WIDTH=6% ALIGN=center>6</TD>
|
||||
<TD WIDTH=6% ALIGN=center>7</TD>
|
||||
<TD WIDTH=6% ALIGN=center>8</TD>
|
||||
<TD WIDTH=6% ALIGN=center>9</TD>
|
||||
<TD WIDTH=6% ALIGN=center>A</TD>
|
||||
<TD WIDTH=6% ALIGN=center>B</TD>
|
||||
<TD WIDTH=6% ALIGN=center>C</TD>
|
||||
<TD WIDTH=6% ALIGN=center>D</TD>
|
||||
<TD WIDTH=6% ALIGN=center>E</TD>
|
||||
<TD WIDTH=6% ALIGN=center>F</TD>
|
||||
</TR><TR><TD ALIGN=center>0</TD>
|
||||
<TD BGCOLOR="#000000"></TD>
|
||||
<TD BGCOLOR="#101010"></TD>
|
||||
<TD BGCOLOR="#1C1C1C"></TD>
|
||||
<TD BGCOLOR="#2C2C2C"></TD>
|
||||
<TD BGCOLOR="#3C3C3C"></TD>
|
||||
<TD BGCOLOR="#4C4C4C"></TD>
|
||||
<TD BGCOLOR="#585858"></TD>
|
||||
<TD BGCOLOR="#686868"></TD>
|
||||
<TD BGCOLOR="#787878"></TD>
|
||||
<TD BGCOLOR="#888888"></TD>
|
||||
<TD BGCOLOR="#949494"></TD>
|
||||
<TD BGCOLOR="#A4A4A4"></TD>
|
||||
<TD BGCOLOR="#B4B4B4"></TD>
|
||||
<TD BGCOLOR="#C4C4C4"></TD>
|
||||
<TD BGCOLOR="#D0D0D0"></TD>
|
||||
<TD BGCOLOR="#E0E0E0"></TD>
|
||||
</TR><TR><TD ALIGN=center>1</TD>
|
||||
<TD BGCOLOR="#582000"></TD>
|
||||
<TD BGCOLOR="#642C08"></TD>
|
||||
<TD BGCOLOR="#6C3410"></TD>
|
||||
<TD BGCOLOR="#784018"></TD>
|
||||
<TD BGCOLOR="#804C24"></TD>
|
||||
<TD BGCOLOR="#8C582C"></TD>
|
||||
<TD BGCOLOR="#986034"></TD>
|
||||
<TD BGCOLOR="#A06C3C"></TD>
|
||||
<TD BGCOLOR="#AC7844"></TD>
|
||||
<TD BGCOLOR="#B4844C"></TD>
|
||||
<TD BGCOLOR="#C08C54"></TD>
|
||||
<TD BGCOLOR="#CC985C"></TD>
|
||||
<TD BGCOLOR="#D4A468"></TD>
|
||||
<TD BGCOLOR="#E0B070"></TD>
|
||||
<TD BGCOLOR="#E8B878"></TD>
|
||||
<TD BGCOLOR="#F4C480"></TD>
|
||||
</TR><TR><TD ALIGN=center>2</TD>
|
||||
<TD BGCOLOR="#540000"></TD>
|
||||
<TD BGCOLOR="#600C0C"></TD>
|
||||
<TD BGCOLOR="#6C1414"></TD>
|
||||
<TD BGCOLOR="#742020"></TD>
|
||||
<TD BGCOLOR="#802C2C"></TD>
|
||||
<TD BGCOLOR="#8C3434"></TD>
|
||||
<TD BGCOLOR="#984040"></TD>
|
||||
<TD BGCOLOR="#A44C4C"></TD>
|
||||
<TD BGCOLOR="#AC5454"></TD>
|
||||
<TD BGCOLOR="#B86060"></TD>
|
||||
<TD BGCOLOR="#C46C6C"></TD>
|
||||
<TD BGCOLOR="#D07474"></TD>
|
||||
<TD BGCOLOR="#DC8080"></TD>
|
||||
<TD BGCOLOR="#E48C8C"></TD>
|
||||
<TD BGCOLOR="#F09494"></TD>
|
||||
<TD BGCOLOR="#FCA0A0"></TD>
|
||||
</TR><TR><TD ALIGN=center>3</TD>
|
||||
<TD BGCOLOR="#580808"></TD>
|
||||
<TD BGCOLOR="#641414"></TD>
|
||||
<TD BGCOLOR="#6C1C1C"></TD>
|
||||
<TD BGCOLOR="#782828"></TD>
|
||||
<TD BGCOLOR="#843434"></TD>
|
||||
<TD BGCOLOR="#903C3C"></TD>
|
||||
<TD BGCOLOR="#984848"></TD>
|
||||
<TD BGCOLOR="#A45454"></TD>
|
||||
<TD BGCOLOR="#B05C5C"></TD>
|
||||
<TD BGCOLOR="#BC6868"></TD>
|
||||
<TD BGCOLOR="#C47474"></TD>
|
||||
<TD BGCOLOR="#D07C7C"></TD>
|
||||
<TD BGCOLOR="#DC8888"></TD>
|
||||
<TD BGCOLOR="#E89494"></TD>
|
||||
<TD BGCOLOR="#F09C9C"></TD>
|
||||
<TD BGCOLOR="#FCA8A8"></TD>
|
||||
</TR><TR><TD ALIGN=center>4</TD>
|
||||
<TD BGCOLOR="#600034"></TD>
|
||||
<TD BGCOLOR="#6C0C3C"></TD>
|
||||
<TD BGCOLOR="#741444"></TD>
|
||||
<TD BGCOLOR="#80204C"></TD>
|
||||
<TD BGCOLOR="#882C58"></TD>
|
||||
<TD BGCOLOR="#943460"></TD>
|
||||
<TD BGCOLOR="#A04068"></TD>
|
||||
<TD BGCOLOR="#A84C70"></TD>
|
||||
<TD BGCOLOR="#B45478"></TD>
|
||||
<TD BGCOLOR="#BC6080"></TD>
|
||||
<TD BGCOLOR="#C86C88"></TD>
|
||||
<TD BGCOLOR="#D47490"></TD>
|
||||
<TD BGCOLOR="#DC809C"></TD>
|
||||
<TD BGCOLOR="#E88CA4"></TD>
|
||||
<TD BGCOLOR="#F094AC"></TD>
|
||||
<TD BGCOLOR="#FCA0B4"></TD>
|
||||
</TR><TR><TD ALIGN=center>5</TD>
|
||||
<TD BGCOLOR="#500050"></TD>
|
||||
<TD BGCOLOR="#5C0C5C"></TD>
|
||||
<TD BGCOLOR="#681468"></TD>
|
||||
<TD BGCOLOR="#742074"></TD>
|
||||
<TD BGCOLOR="#7C2C7C"></TD>
|
||||
<TD BGCOLOR="#883488"></TD>
|
||||
<TD BGCOLOR="#944094"></TD>
|
||||
<TD BGCOLOR="#A04CA0"></TD>
|
||||
<TD BGCOLOR="#AC54AC"></TD>
|
||||
<TD BGCOLOR="#B860B8"></TD>
|
||||
<TD BGCOLOR="#C46CC4"></TD>
|
||||
<TD BGCOLOR="#D074D0"></TD>
|
||||
<TD BGCOLOR="#D880D8"></TD>
|
||||
<TD BGCOLOR="#E48CE4"></TD>
|
||||
<TD BGCOLOR="#F094F0"></TD>
|
||||
<TD BGCOLOR="#FCA0FC"></TD>
|
||||
</TR><TR><TD ALIGN=center>6</TD>
|
||||
<TD BGCOLOR="#340060"></TD>
|
||||
<TD BGCOLOR="#400C6C"></TD>
|
||||
<TD BGCOLOR="#4C1874"></TD>
|
||||
<TD BGCOLOR="#582480"></TD>
|
||||
<TD BGCOLOR="#603088"></TD>
|
||||
<TD BGCOLOR="#6C3C94"></TD>
|
||||
<TD BGCOLOR="#7848A0"></TD>
|
||||
<TD BGCOLOR="#8454A8"></TD>
|
||||
<TD BGCOLOR="#905CB4"></TD>
|
||||
<TD BGCOLOR="#9C68BC"></TD>
|
||||
<TD BGCOLOR="#A874C8"></TD>
|
||||
<TD BGCOLOR="#B480D4"></TD>
|
||||
<TD BGCOLOR="#BC8CDC"></TD>
|
||||
<TD BGCOLOR="#C898E8"></TD>
|
||||
<TD BGCOLOR="#D4A4F0"></TD>
|
||||
<TD BGCOLOR="#E0B0FC"></TD>
|
||||
</TR><TR><TD ALIGN=center>7</TD>
|
||||
<TD BGCOLOR="#000068"></TD>
|
||||
<TD BGCOLOR="#0C0C70"></TD>
|
||||
<TD BGCOLOR="#18187C"></TD>
|
||||
<TD BGCOLOR="#202884"></TD>
|
||||
<TD BGCOLOR="#2C3490"></TD>
|
||||
<TD BGCOLOR="#384098"></TD>
|
||||
<TD BGCOLOR="#444CA4"></TD>
|
||||
<TD BGCOLOR="#5058AC"></TD>
|
||||
<TD BGCOLOR="#5868B8"></TD>
|
||||
<TD BGCOLOR="#6474C0"></TD>
|
||||
<TD BGCOLOR="#7080CC"></TD>
|
||||
<TD BGCOLOR="#7C8CD4"></TD>
|
||||
<TD BGCOLOR="#8898E0"></TD>
|
||||
<TD BGCOLOR="#90A8E8"></TD>
|
||||
<TD BGCOLOR="#9CB4F4"></TD>
|
||||
<TD BGCOLOR="#A8C0FC"></TD>
|
||||
</TR><TR><TD ALIGN=center>8</TD>
|
||||
<TD BGCOLOR="#08205C"></TD>
|
||||
<TD BGCOLOR="#142C68"></TD>
|
||||
<TD BGCOLOR="#203870"></TD>
|
||||
<TD BGCOLOR="#28407C"></TD>
|
||||
<TD BGCOLOR="#344C88"></TD>
|
||||
<TD BGCOLOR="#405890"></TD>
|
||||
<TD BGCOLOR="#4C649C"></TD>
|
||||
<TD BGCOLOR="#5870A8"></TD>
|
||||
<TD BGCOLOR="#6078B0"></TD>
|
||||
<TD BGCOLOR="#6C84BC"></TD>
|
||||
<TD BGCOLOR="#7890C8"></TD>
|
||||
<TD BGCOLOR="#849CD0"></TD>
|
||||
<TD BGCOLOR="#90A8DC"></TD>
|
||||
<TD BGCOLOR="#98B0E8"></TD>
|
||||
<TD BGCOLOR="#A4BCF0"></TD>
|
||||
<TD BGCOLOR="#B0C8FC"></TD>
|
||||
</TR><TR><TD ALIGN=center>9</TD>
|
||||
<TD BGCOLOR="#083858"></TD>
|
||||
<TD BGCOLOR="#144464"></TD>
|
||||
<TD BGCOLOR="#20506C"></TD>
|
||||
<TD BGCOLOR="#2C5C78"></TD>
|
||||
<TD BGCOLOR="#386484"></TD>
|
||||
<TD BGCOLOR="#447090"></TD>
|
||||
<TD BGCOLOR="#507C98"></TD>
|
||||
<TD BGCOLOR="#5C88A4"></TD>
|
||||
<TD BGCOLOR="#6894B0"></TD>
|
||||
<TD BGCOLOR="#74A0BC"></TD>
|
||||
<TD BGCOLOR="#80ACC4"></TD>
|
||||
<TD BGCOLOR="#8CB8D0"></TD>
|
||||
<TD BGCOLOR="#98C0DC"></TD>
|
||||
<TD BGCOLOR="#A4CCE8"></TD>
|
||||
<TD BGCOLOR="#B0D8F0"></TD>
|
||||
<TD BGCOLOR="#BCE4FC"></TD>
|
||||
</TR><TR><TD ALIGN=center>A</TD>
|
||||
<TD BGCOLOR="#004828"></TD>
|
||||
<TD BGCOLOR="#0C5434"></TD>
|
||||
<TD BGCOLOR="#185C3C"></TD>
|
||||
<TD BGCOLOR="#246848"></TD>
|
||||
<TD BGCOLOR="#307450"></TD>
|
||||
<TD BGCOLOR="#3C7C5C"></TD>
|
||||
<TD BGCOLOR="#488868"></TD>
|
||||
<TD BGCOLOR="#549470"></TD>
|
||||
<TD BGCOLOR="#649C7C"></TD>
|
||||
<TD BGCOLOR="#70A884"></TD>
|
||||
<TD BGCOLOR="#7CB490"></TD>
|
||||
<TD BGCOLOR="#88BC9C"></TD>
|
||||
<TD BGCOLOR="#94C8A4"></TD>
|
||||
<TD BGCOLOR="#A0D4B0"></TD>
|
||||
<TD BGCOLOR="#ACDCB8"></TD>
|
||||
<TD BGCOLOR="#B8E8C4"></TD>
|
||||
</TR><TR><TD ALIGN=center>B</TD>
|
||||
<TD BGCOLOR="#005000"></TD>
|
||||
<TD BGCOLOR="#0C5C0C"></TD>
|
||||
<TD BGCOLOR="#186418"></TD>
|
||||
<TD BGCOLOR="#247024"></TD>
|
||||
<TD BGCOLOR="#307830"></TD>
|
||||
<TD BGCOLOR="#3C843C"></TD>
|
||||
<TD BGCOLOR="#489048"></TD>
|
||||
<TD BGCOLOR="#549854"></TD>
|
||||
<TD BGCOLOR="#5CA45C"></TD>
|
||||
<TD BGCOLOR="#68AC68"></TD>
|
||||
<TD BGCOLOR="#74B874"></TD>
|
||||
<TD BGCOLOR="#80C480"></TD>
|
||||
<TD BGCOLOR="#8CCC8C"></TD>
|
||||
<TD BGCOLOR="#98D898"></TD>
|
||||
<TD BGCOLOR="#A4E0A4"></TD>
|
||||
<TD BGCOLOR="#B0ECB0"></TD>
|
||||
</TR><TR><TD ALIGN=center>C</TD>
|
||||
<TD BGCOLOR="#1C4C00"></TD>
|
||||
<TD BGCOLOR="#285808"></TD>
|
||||
<TD BGCOLOR="#346010"></TD>
|
||||
<TD BGCOLOR="#406C18"></TD>
|
||||
<TD BGCOLOR="#487824"></TD>
|
||||
<TD BGCOLOR="#54842C"></TD>
|
||||
<TD BGCOLOR="#608C34"></TD>
|
||||
<TD BGCOLOR="#6C983C"></TD>
|
||||
<TD BGCOLOR="#78A444"></TD>
|
||||
<TD BGCOLOR="#84B04C"></TD>
|
||||
<TD BGCOLOR="#90B854"></TD>
|
||||
<TD BGCOLOR="#9CC45C"></TD>
|
||||
<TD BGCOLOR="#A4D068"></TD>
|
||||
<TD BGCOLOR="#B0DC70"></TD>
|
||||
<TD BGCOLOR="#BCE478"></TD>
|
||||
<TD BGCOLOR="#C8F080"></TD>
|
||||
</TR><TR><TD ALIGN=center>D</TD>
|
||||
<TD BGCOLOR="#384000"></TD>
|
||||
<TD BGCOLOR="#444C08"></TD>
|
||||
<TD BGCOLOR="#4C5814"></TD>
|
||||
<TD BGCOLOR="#58641C"></TD>
|
||||
<TD BGCOLOR="#647024"></TD>
|
||||
<TD BGCOLOR="#707C2C"></TD>
|
||||
<TD BGCOLOR="#788838"></TD>
|
||||
<TD BGCOLOR="#849440"></TD>
|
||||
<TD BGCOLOR="#909C48"></TD>
|
||||
<TD BGCOLOR="#9CA850"></TD>
|
||||
<TD BGCOLOR="#A4B45C"></TD>
|
||||
<TD BGCOLOR="#B0C064"></TD>
|
||||
<TD BGCOLOR="#BCCC6C"></TD>
|
||||
<TD BGCOLOR="#C8D874"></TD>
|
||||
<TD BGCOLOR="#D0E480"></TD>
|
||||
<TD BGCOLOR="#DCF088"></TD>
|
||||
</TR><TR><TD ALIGN=center>E</TD>
|
||||
<TD BGCOLOR="#502800"></TD>
|
||||
<TD BGCOLOR="#5C3408"></TD>
|
||||
<TD BGCOLOR="#64400C"></TD>
|
||||
<TD BGCOLOR="#705014"></TD>
|
||||
<TD BGCOLOR="#785C1C"></TD>
|
||||
<TD BGCOLOR="#846824"></TD>
|
||||
<TD BGCOLOR="#8C7428"></TD>
|
||||
<TD BGCOLOR="#988030"></TD>
|
||||
<TD BGCOLOR="#A09038"></TD>
|
||||
<TD BGCOLOR="#AC9C40"></TD>
|
||||
<TD BGCOLOR="#B4A844"></TD>
|
||||
<TD BGCOLOR="#C0B44C"></TD>
|
||||
<TD BGCOLOR="#C8C054"></TD>
|
||||
<TD BGCOLOR="#D4D05C"></TD>
|
||||
<TD BGCOLOR="#DCDC60"></TD>
|
||||
<TD BGCOLOR="#E8E868"></TD>
|
||||
</TR><TR><TD ALIGN=center>F</TD>
|
||||
<TD BGCOLOR="#541C00"></TD>
|
||||
<TD BGCOLOR="#602808"></TD>
|
||||
<TD BGCOLOR="#6C3014"></TD>
|
||||
<TD BGCOLOR="#743C1C"></TD>
|
||||
<TD BGCOLOR="#804828"></TD>
|
||||
<TD BGCOLOR="#8C5430"></TD>
|
||||
<TD BGCOLOR="#985C38"></TD>
|
||||
<TD BGCOLOR="#A46844"></TD>
|
||||
<TD BGCOLOR="#AC744C"></TD>
|
||||
<TD BGCOLOR="#B88058"></TD>
|
||||
<TD BGCOLOR="#C48860"></TD>
|
||||
<TD BGCOLOR="#D09468"></TD>
|
||||
<TD BGCOLOR="#DCA074"></TD>
|
||||
<TD BGCOLOR="#E4AC7C"></TD>
|
||||
<TD BGCOLOR="#F0B488"></TD>
|
||||
<TD BGCOLOR="#FCC090"></TD>
|
||||
</TR></TABLE>
|
||||
<P><HR><P>
|
||||
<H2>Description</H2>
|
||||
</CENTER>
|
||||
|
||||
<A NAME="colbak"><U>COLBAK</U>
|
||||
- <B>Color of background</B><BR>
|
||||
bit 0 - unused<BR>
|
||||
bits 3-1 - luminace<BR>
|
||||
bits 7-4 - hue<P>
|
||||
|
||||
<A NAME="colpfx"><U>COLPF0</U> <U>COLPF1</U> <U>COLPF2</U> <U>COLPF3</U>
|
||||
- <B>Colors of player field</B><BR>
|
||||
bit 0 - unused<BR>
|
||||
bits 3-1 - luminace<BR>
|
||||
bits 7-4 - hue<P>
|
||||
|
||||
<A NAME="colpmx"><U>COLPM0</U> <U>COLPM1</U> <U>COLPM2</U> <U>COLPM3</U>
|
||||
- <B>Colors of players and missiles</B><BR>
|
||||
bit 0 - unused<BR>
|
||||
bits 3-1 - luminace<BR>
|
||||
bits 7-4 - hue<P>
|
||||
|
||||
<A NAME="consol"><U>CONSOL</U>
|
||||
- <B>Consol keys</B><BR>
|
||||
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.<BR>
|
||||
bit 0 - START key<BR>
|
||||
bit 1 - SELECT key<BR>
|
||||
bit 2 - OPTION key<BR>
|
||||
bit 3 - click sound<BR>
|
||||
bits 4-7 - unused (=0)<P>
|
||||
|
||||
<A NAME="grafm"><U>GRAFM</U>
|
||||
- <B>Graphics of missiles</B><BR>
|
||||
bits 1,0 - graphics of missile 0<BR>
|
||||
bits 3,2 - graphics of missile 1<BR>
|
||||
bits 5,4 - graphics of missile 2<BR>
|
||||
bits 7,6 - graphics of missile 3<P>
|
||||
|
||||
<A NAME="grafpx"><U>GRAFP0</U> <U>GRAFP1</U> <U>GRAFP2</U> <U>GRAFP3</U>
|
||||
- <B>Graphics of players</B><P>
|
||||
|
||||
<A NAME="gtiactl"><U>GTIACTL</U>
|
||||
- <B>GTIA control</B><BR>
|
||||
bits 3-0 - priorities of players and missiles<BR>
|
||||
0001 - P0, P1, P2, P3, PF0, PF1, PF2, PF3, BAK<BR>
|
||||
0010 - P0, P1, PF0, PF1, PF2, PF3, P2, P3, BAK<BR>
|
||||
0100 - PF0, PF1, PF2, PF3, P0, P1, P2, P3, BAK<BR>
|
||||
1000 - PF0, PF1, P0, P1, P2, P3, PF2, PF3, BAK<BR>
|
||||
Players/missiles and playfields are mentioned from highest to lowest priority.<BR>
|
||||
Other combinations of bits 3-0 cause strange side effects.<BR>
|
||||
bit 4 - set all missiles color to COLPF3<BR>
|
||||
bit 5 - enable ORing colors P0 with P1 and P2 with P3 on common areas<BR>
|
||||
bits 7,6 - GTIA extra graphics mode<BR>
|
||||
00 - off<BR>
|
||||
01 - 16 luminaces<BR>
|
||||
10 - 9 colors<BR>
|
||||
11 - 16 hues<P>
|
||||
|
||||
<A NAME="hitclr"><U>HITCLR</U>
|
||||
- <B>Clear collision registers</B><BR>
|
||||
Any value written to this register causes collision registers to be reset.<P>
|
||||
|
||||
<A NAME="hposmx"><U>HPOSM0</U> <U>HPOSM1</U> <U>HPOSM2</U> <U>HPOSM3</U>
|
||||
- <B>Horizontal positions of missiles</B><P>
|
||||
|
||||
<A NAME="hpospx"><U>HPOSP0</U> <U>HPOSP1</U> <U>HPOSP2</U> <U>HPOSP3</U>
|
||||
- <B>Horizontal positions of players</B><P>
|
||||
|
||||
<A NAME="kolmxp"><U>KOLM0P</U> <U>KOLM1P</U> <U>KOLM2P</U> <U>KOLM3P</U>
|
||||
- <B>Collisions of missiles with players</B><BR>
|
||||
bit 0 - collision with player 0<BR>
|
||||
bit 1 - collision with player 1<BR>
|
||||
bit 2 - collision with player 2<BR>
|
||||
bit 3 - collision with player 3<BR>
|
||||
bits 4-7 - unused (=0)<P>
|
||||
|
||||
<A NAME="kolmxpf"><U>KOLM0PF</U> <U>KOLM1PF</U> <U>KOLM2PF</U> <U>KOLM3PF</U>
|
||||
- <B>Collisions of missiles with playfield</B><BR>
|
||||
bit 0 - collision with playfield 0<BR>
|
||||
bit 1 - collision with playfield 1<BR>
|
||||
bit 2 - collision with playfield 2<BR>
|
||||
bit 3 - collision with playfield 3<BR>
|
||||
bits 4-7 - unused (=0)<P>
|
||||
|
||||
<A NAME="kolpxp"><U>KOLP0P</U> <U>KOLP1P</U> <U>KOLP2P</U> <U>KOLP3P</U>
|
||||
- <B>Collisions of players with players</B><BR>
|
||||
bit 0 - collision with player 0<BR>
|
||||
bit 1 - collision with player 1<BR>
|
||||
bit 2 - collision with player 2<BR>
|
||||
bit 3 - collision with player 3<BR>
|
||||
bits 4-7 - unused (=0)<P>
|
||||
|
||||
<A NAME="kolpxpf"><U>KOLP0PF</U> <U>KOLP1PF</U> <U>KOLP2PF</U> <U>KOLP3PF</U>
|
||||
- <B>Collisions of players with playfield</B><BR>
|
||||
bit 0 - collision with playfield 0<BR>
|
||||
bit 1 - collision with playfield 1<BR>
|
||||
bit 2 - collision with playfield 2<BR>
|
||||
bit 3 - collision with playfield 3<BR>
|
||||
bits 4-7 - unused (=0)<P>
|
||||
|
||||
<A NAME="pal"><U>PAL</U>
|
||||
- <B>PAL system flag</B><BR>
|
||||
bit 0 - unused<BR>
|
||||
bits 1-3 - 000 if TV system is PAL. Else it is NTSC<BR>
|
||||
bits 4-7 - unused (=0)<P>
|
||||
|
||||
<A NAME="pmctl"><U>PMCTL</U>
|
||||
- <B>Player/Missile Control</B><BR>
|
||||
bit 0 - get missiles data from ANTIC<BR>
|
||||
bit 1 - get players data from ANTIC<BR>
|
||||
bit 2 - lock triggers when pressed<BR>
|
||||
bits 3-7 - unused<P>
|
||||
|
||||
<A NAME="sizem"><U>SIZEM</U>
|
||||
- <B>Sizes of missiles</B><BR>
|
||||
Two bits set size of each missile:<BR>
|
||||
00 - single size<BR>
|
||||
01 - double size<BR>
|
||||
10 - single size<BR>
|
||||
11 - quad size<BR>
|
||||
bits 1,0 - size of missile 0<BR>
|
||||
bits 3,2 - size of missile 1<BR>
|
||||
bits 5,4 - size of missile 2<BR>
|
||||
bits 7,6 - size of missile 3<P>
|
||||
|
||||
<A NAME="sizepx"><U>SIZEP0</U> <U>SIZEP1</U> <U>SIZEP2</U> <U>SIZEP3</U>
|
||||
- <B>Sizes of players</B><BR>
|
||||
bits 1,0 - size of player (see <A HREF="#sizem">SIZEM</A>)<BR>
|
||||
bits 2-7 - unused<P>
|
||||
|
||||
<A NAME="trigx"><U>TRIG0</U> <U>TRIG1</U> <U>TRIG3</U>
|
||||
- <B>Triggers</B><BR>
|
||||
TRIG0 and TRIG1 contain trigger status of two joysticks.
|
||||
TRIG3 contains presence of cartridge.<BR>
|
||||
bit 0 - reset if trigger pressed<BR>
|
||||
bits 1-7 - unused (=0)<P>
|
||||
|
||||
<A NAME="vdelay"><U>VDELAY</U>
|
||||
- <B>Vertical delay of players and missiles</B><BR>
|
||||
Causes players and missiles to be displayed one scanline lower.
|
||||
Works only in two-line resolution.<BR>
|
||||
bit 0 - delay missile 0<BR>
|
||||
bit 1 - delay missile 1<BR>
|
||||
bit 2 - delay missile 2<BR>
|
||||
bit 3 - delay missile 3<BR>
|
||||
bit 4 - delay player 0<BR>
|
||||
bit 5 - delay player 1<BR>
|
||||
bit 6 - delay player 2<BR>
|
||||
bit 7 - delay player 3<P>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,39 +1,46 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>X-ASM 2.3 Package Documentation</TITLE>
|
||||
<TITLE>xasm 2.4 final edition</TITLE>
|
||||
</HEAD>
|
||||
<BODY BACKGROUND="6502proc.gif">
|
||||
<BODY BGCOLOR=black TEXT=white LINK="#c0c0ff" VLINK="#c040c0" ALINK="#d06060">
|
||||
<TABLE ALIGN=center WIDTH=70%><TR><TD>
|
||||
<CENTER>
|
||||
<H1>X-ASM Package version 2.3</H1>
|
||||
by <A HREF="mailto:pfusik@elka.pw.edu.pl">Fox/Taquart</A><P>
|
||||
<HR>
|
||||
<P>
|
||||
Manuals of utilities:<P>
|
||||
<TABLE>
|
||||
<TR><TD><A HREF="xasm.htm">X-Assembler</A></TD><TD>6502 cross-assembler</TD></TR>
|
||||
<TR><TD><A HREF="xboot.htm">X-BOOT</A></TD><TD>Atari executable -> disk image converter</TD></TR>
|
||||
<TR><TD><A HREF="xhead.htm">X-HEAD</A></TD><TD>Simple Atari executable analyzer</TD></TR>
|
||||
<TR><TD><A HREF="xload.htm">X-LOAD</A></TD><TD>SIO2PC interface Atari executable loader</TD></TR>
|
||||
<TR><TD><A HREF="gr0.htm">GR0</A></TD><TD>DOS screen adjuster</TD></TR>
|
||||
</TABLE>
|
||||
<P>
|
||||
<HR>
|
||||
<P>
|
||||
Atari XL/XE documentation (under construction):<P>
|
||||
<TABLE>
|
||||
<TR><TD><A HREF="gtia.htm">GTIA</A></TD><TD>GTIA chip documentation</TD></TR>
|
||||
<TR><TD><A HREF="pokey.htm">POKEY</A></TD><TD>POKEY chip documentation</TD></TR>
|
||||
<TR><TD><A HREF="pia.htm">PIA</A></TD><TD>PIA chip documentation</TD></TR>
|
||||
<TR><TD><A HREF="antic.htm">ANTIC</A></TD><TD>ANTIC chip documentation</TD></TR>
|
||||
<TR><TD><A HREF="cpubugs.asx">CPUBUGS.ASX</A></TD><TD>6502 bugs detector source</TD</TR>
|
||||
</TABLE>
|
||||
<P>
|
||||
<HR>
|
||||
<P>
|
||||
Visit X-ASM Homepage:
|
||||
<A HREF="http://www.6502.org/users/fox/xasm">http://www.6502.org/users/fox/xasm</A>
|
||||
<P>
|
||||
All programs and documentation are <I>freeware</I>. Copyright (c) 1998-2000 Taquart.
|
||||
<IMG SRC="6502proc.gif" ALT="intel outside - 6502 processor">
|
||||
<BR CLEAR=all>
|
||||
<H1>xasm 2.4 final edition</H1>
|
||||
Copyright (c) 1998-2002 by <A HREF="mailto:fox@scene.pl">Piotr Fusik</A>
|
||||
</CENTER>
|
||||
<P>
|
||||
<HR>
|
||||
<P>this package contains following utilities (click program name for documentation):
|
||||
<P>
|
||||
<TABLE ALIGN=center BGCOLOR=white>
|
||||
<TR><TD><FONT COLOR=black><B>Name</B></FONT></TD>
|
||||
<TD><FONT COLOR=black><B>Description</B></FONT></TD></TR>
|
||||
<TR><TD BGCOLOR=black><NOBR><A HREF="xasm.htm">X-Assembler</A></NOBR></TD>
|
||||
<TD BGCOLOR=black>6502 cross-assembler</TD></TR>
|
||||
<TR><TD BGCOLOR=black><A HREF="xboot.htm">X-BOOT</A></TD>
|
||||
<TD BGCOLOR=black>Converts Atari executables to disk images</TD></TR>
|
||||
<TR><TD BGCOLOR=black><A HREF="xhead.htm">X-HEAD</A></TD>
|
||||
<TD BGCOLOR=black>Prints headers of an Atari executable file</TD></TR>
|
||||
<TR><TD BGCOLOR=black><A HREF="xload.htm">X-LOAD</A></TD>
|
||||
<TD BGCOLOR=black>Loads an executable file to an Atari computer via the SIO2PC interface</TD></TR>
|
||||
</TABLE>
|
||||
<P>other documents:
|
||||
<UL>
|
||||
<LI> <A HREF="editors.htm">How to configure a text editor for convenient use of X-Assembler</A><BR>
|
||||
<LI> <A HREF="faq.htm">Frequently Asked Questions</A><P>
|
||||
</UL>
|
||||
<P>
|
||||
xasm home page:
|
||||
<A HREF="http://xasm.atari.org">http://xasm.atari.org</A>
|
||||
<P>
|
||||
<HR>
|
||||
<P>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.
|
||||
</TD></TR></TABLE>
|
||||
</BODY>
|
||||
</HTML>
|
74
doc/pia.htm
74
doc/pia.htm
@ -1,74 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>PIA Documentation</TITLE>
|
||||
</HEAD>
|
||||
<BODY BACKGROUND="atari.gif">
|
||||
<CENTER>
|
||||
<H1>PIA Documentation</H1>
|
||||
by <A HREF="mailto:pfusik@elka.pw.edu.pl">Fox/Taquart</A><P>
|
||||
<HR>
|
||||
<P>
|
||||
<H2>Registers</H2>
|
||||
<TABLE BORDER>
|
||||
<TR><TD><I> Address </I></TD><TD><I> Read/Write register </I></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^30</TT></TD><TD><A HREF="#porta">PORTA</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^31</TT></TD><TD><A HREF="#portb">PORTB</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^32</TT></TD><TD><A HREF="#pactl">PACTL</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^33</TT></TD><TD><A HREF="#pbctl">PBCTL</A></TD></TR>
|
||||
</TABLE>
|
||||
<P>
|
||||
<HR>
|
||||
<P>
|
||||
<H2>Description</H2>
|
||||
</CENTER>
|
||||
|
||||
<A NAME="porta"><U>PORTA</U>
|
||||
- <B>Port A</B><BR>
|
||||
A bit is RESET on an event<BR>
|
||||
bit 0 - joystick 0 up<BR>
|
||||
bit 1 - joystick 0 down<BR>
|
||||
bit 2 - joystick 0 left / paddle 0 button<BR>
|
||||
bit 3 - joystick 0 right / paddle 1 button<BR>
|
||||
bit 4 - joystick 1 up<BR>
|
||||
bit 5 - joystick 1 down<BR>
|
||||
bit 6 - joystick 1 left / paddle 0 button<BR>
|
||||
bit 7 - joystick 1 right / paddle 1 button<P>
|
||||
|
||||
<A NAME="portb"><U>PORTA</U>
|
||||
- <B>Port B</B><BR>
|
||||
Controls memory.<BR>
|
||||
bit 0 - $c000-$cfff and $d800-$ffff:<BR>
|
||||
0 - RAM<BR>
|
||||
1 - OS ROM<BR>
|
||||
bit 1 - $a000-$bfff:<BR>
|
||||
0 - BASIC ROM<BR>
|
||||
1 - RAM<BR>
|
||||
bits 6-2 - extended memory control<BR>
|
||||
bit 7 - $5800-$5fff:<BR>
|
||||
0 - SELF TEST ROM<BR>
|
||||
1 - RAM<P>
|
||||
|
||||
<A NAME="pactl"><U>PACTL</U>
|
||||
- <B>Port A Control</B><BR>
|
||||
bits 1-0 - interrupts control (?) = 00<BR>
|
||||
bit 2 - PORTA control<BR>
|
||||
0 - input/output configuration<BR>
|
||||
1 - data register<BR>
|
||||
bit 3 - cassette motor<BR>
|
||||
0 - on<BR>
|
||||
1 - off<BR>
|
||||
bits 7-4 - interrupts status (?) = 0011<P>
|
||||
|
||||
<A NAME="pbctl"><U>PBCTL</U>
|
||||
- <B>Port B Control</B><BR>
|
||||
bits 1-0 - interrupts control (?) = 00<BR>
|
||||
bit 2 - PORTB control<BR>
|
||||
0 - input/output configuration<BR>
|
||||
1 - data register<BR>
|
||||
bit 3 - serial devices command line<BR>
|
||||
0 - on<BR>
|
||||
1 - off<BR>
|
||||
bits 7-4 - interrupts status (?) = 0011<P>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
164
doc/pokey.htm
164
doc/pokey.htm
@ -1,164 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>POKEY Documentation</TITLE>
|
||||
</HEAD>
|
||||
<BODY BACKGROUND="atari.gif">
|
||||
<CENTER>
|
||||
<H1>POKEY Documentation</H1>
|
||||
by <A HREF="mailto:pfusik@elka.pw.edu.pl">Fox/Taquart</A><P>
|
||||
<HR>
|
||||
<P>
|
||||
<H2>Registers</H2>
|
||||
<TABLE BORDER>
|
||||
<TR><TD><I> Address </I></TD><TD><I> Read register </I></TD><TD><I> Write register </I></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^20</TT></TD><TD><A HREF="#potx">POT0</A></TD><TD><A HREF="#audfx">AUDF1</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^21</TT></TD><TD><A HREF="#potx">POT1</A></TD><TD><A HREF="#audcx">AUDC1</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^22</TT></TD><TD><A HREF="#potx">POT2</A></TD><TD><A HREF="#audfx">AUDF2</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^23</TT></TD><TD><A HREF="#potx">POT3</A></TD><TD><A HREF="#audcx">AUDC2</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^24</TT></TD><TD>unused</TD><TD><A HREF="#audfx">AUDF3</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^25</TT></TD><TD>unused</TD><TD><A HREF="#audcx">AUDC3</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^26</TT></TD><TD>unused</TD><TD><A HREF="#audfx">AUDF4</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^27</TT></TD><TD>unused</TD><TD><A HREF="#audcx">AUDC4</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^28</TT></TD><TD><A HREF="#potst">POTST</A></TD><TD><A HREF="#audctl">AUDCTL</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^29</TT></TD><TD><A HREF="#kbcode">KBCODE</A></TD><TD><A HREF="#stimer">STIMER</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^2A</TT></TD><TD><A HREF="#random">RANDOM</A></TD><TD><A HREF="#skstres">SKSTRES</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^2B</TT></TD><TD>unused</TD><TD><A HREF="#potgo">POTGO</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^2C</TT></TD><TD>unused</TD><TD>unused</TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^2D</TT></TD><TD><A HREF="#serin">SERIN</A></TD><TD><A HREF="#serout">SEROUT</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^2E</TT></TD><TD><A HREF="#irqst">IRQST</A></TD><TD><A HREF="#irqen">IRQEN</A></TD></TR>
|
||||
<TR><TD ALIGN=center><TT>^2F</TT></TD><TD><A HREF="#skstat">SKSTAT</A></TD><TD><A HREF="#skctl">SKCTL</A></TD></TR>
|
||||
</TABLE>
|
||||
<P>
|
||||
<HR>
|
||||
<P>
|
||||
<H2>Description</H2>
|
||||
</CENTER>
|
||||
|
||||
<A NAME="audcx"><U>AUDC1</U> <U>AUDC2</U> <U>AUDC3</U> <U>AUDC4</U>
|
||||
- <B>Audio control</B><BR>
|
||||
bits 3-0 - volume control<BR>
|
||||
bit 4 - channel control<BR>
|
||||
0 - synthetize sound<BR>
|
||||
1 - constant level<BR>
|
||||
bits 7-5 - sound distortion<BR>
|
||||
000 - with 5-bit and 17-bit registers<BR>
|
||||
001 - with 5-bit register<BR>
|
||||
010 - with 5-bit and 4-bit registers<BR>
|
||||
011 - with 5-bit register<BR>
|
||||
100 - with 17-bit register<BR>
|
||||
101 - clear sound<BR>
|
||||
110 - with 4-bit register<BR>
|
||||
111 - clear sound<P>
|
||||
|
||||
<A NAME="audctl"><U>AUDCTL</U>
|
||||
- <B>Audio control</B><BR>
|
||||
bit 0 - base clock for all channels<BR>
|
||||
0 - 64 kHz<BR>
|
||||
1 - 15 kHz<BR>
|
||||
bit 1 - channel 2 filter controlled by channel 4<BR>
|
||||
bit 2 - channel 1 filter controlled by channel 3<BR>
|
||||
bit 3 - join counters 3 and 4 into 16-bit channel<BR>
|
||||
bit 4 - join counters 1 and 2 into 16-bit channel<BR>
|
||||
bit 5 - base clock for channel 3<BR>
|
||||
0 - according to bit 0<BR>
|
||||
1 - 1.77 MHz (PAL), 1.79 MHz (NTSC)<BR>
|
||||
bit 6 - base clock for channel 1<BR>
|
||||
0 - according to bit 0<BR>
|
||||
1 - 1.77 MHz (PAL), 1.79 MHz (NTSC)<BR>
|
||||
bit 7 - distortion register<BR>
|
||||
0 - 17-bit<BR>
|
||||
1 - 9-bit<P>
|
||||
|
||||
<A NAME="audfx"><U>AUDF1</U> <U>AUDF2</U> <U>AUDF3</U> <U>AUDF4</U>
|
||||
- <B>Audio frequency</B><P>
|
||||
|
||||
<A NAME="irqen"><U>IRQEN</U>
|
||||
- <B>IRQ enable</B><BR>
|
||||
1 - enable<BR>
|
||||
bit 0 - timer 1<BR>
|
||||
bit 1 - timer 2<BR>
|
||||
bit 2 - timer 4<BR>
|
||||
bit 3 - end of transmission<BR>
|
||||
bit 4 - serial output<BR>
|
||||
bit 5 - serial input<BR>
|
||||
bit 6 - keyboard<BR>
|
||||
bit 7 - BREAK key<P>
|
||||
|
||||
<A NAME="irqst"><U>IRQST</U>
|
||||
- <B>IRQ status</B><BR>
|
||||
0 - requested<BR>
|
||||
bit 0 - timer 1<BR>
|
||||
bit 1 - timer 2<BR>
|
||||
bit 2 - timer 4<BR>
|
||||
bit 3 - end of transmission<BR>
|
||||
bit 4 - serial output<BR>
|
||||
bit 5 - serial input<BR>
|
||||
bit 6 - keyboard<BR>
|
||||
bit 7 - BREAK key<P>
|
||||
|
||||
<A NAME="kbcode"><U>KBCODE</U>
|
||||
- <B>Keyboard code</B><P>
|
||||
|
||||
<A NAME="potx"><U>POT0</U> <U>POT1</U> <U>POT2</U> <U>POT3</U>
|
||||
- <B>Potentiometrs</B><BR>
|
||||
Position of potentiometr in range 0-224<P>
|
||||
|
||||
<A NAME="potgo"><U>POTGO</U>
|
||||
- <B>Potentiometr goes</B><BR>
|
||||
Any value written to this registers starts measurement of potentiometrs<P>
|
||||
|
||||
<A NAME="potst"><U>POTST</U>
|
||||
- <B>Potentiometrs status</B><BR>
|
||||
0 means POTx contains proper value<BR>
|
||||
1 means POTx is being measured<BR>
|
||||
bit 0 - POT0<BR>
|
||||
bit 1 - POT1<BR>
|
||||
bit 2 - POT2<BR>
|
||||
bit 3 - POT3<BR>
|
||||
bits 7-4 - not used<P>
|
||||
|
||||
<A NAME="random"><U>RANDOM</U>
|
||||
- <B>Random</B><P>
|
||||
|
||||
<A NAME="serin"><U>SERIN</U>
|
||||
- <B>Serial input</B><BR>
|
||||
Received byte<P>
|
||||
|
||||
<A NAME="serout"><U>SEROUT</U>
|
||||
- <B>Serial output</B><BR>
|
||||
A byte to be send<P>
|
||||
|
||||
<A NAME="skctl"><U>SKCTL</U>
|
||||
- <B>Serial and keyboard control</B><BR>
|
||||
bits 1,0 - POKEY control<BR>
|
||||
00 - reset POKEY<BR>
|
||||
11 - normal state<BR>
|
||||
bit 2 - speed of A/D conversion<BR>
|
||||
bit 3 - two-tone transmission<BR>
|
||||
bits 6-4 - transmission speed control<BR>
|
||||
bit 7 - force SPACE signal<P>
|
||||
|
||||
<A NAME="skstat"><U>SKSTAT</U>
|
||||
- <B>Serial and keyboard status</B><BR>
|
||||
bit 0 - unused (=0)<BR>
|
||||
bit 1 - transmission<BR>
|
||||
0 - in progress<BR>
|
||||
bit 2 - keyboard status<BR>
|
||||
0 - a key pressed<BR>
|
||||
bit 3 - SHIFT key status<BR>
|
||||
0 - pressed<BR>
|
||||
bit 4 - serial input line state<BR>
|
||||
bit 5 - keyboard buffer overflow<BR>
|
||||
bit 6 - serial input buffer overflow<BR>
|
||||
bit 7 - Framing Error occured<P>
|
||||
|
||||
<A NAME="skstres"><U>SKSTRES</U>
|
||||
- <B>SKSTAT reset</B><BR>
|
||||
Any value written to this register resets SKSTAT error flags<P>
|
||||
|
||||
<A NAME="stimer"><U>STIMER</U>
|
||||
- <B>Start timers</B><BR>
|
||||
Any value written to this register resets all counters<P>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
247
doc/xasm.htm
247
doc/xasm.htm
@ -1,14 +1,14 @@
|
||||
<HTML><HEAD><TITLE>X-Assembler 2.3 Manual</TITLE></HEAD>
|
||||
<HTML><HEAD><TITLE>X-Assembler 2.4</TITLE></HEAD>
|
||||
<BODY BACKGROUND="6502proc.gif">
|
||||
<CENTER>
|
||||
<H1>X-Assembler version 2.3</H1>
|
||||
by <A HREF="mailto:pfusik@elka.pw.edu.pl">Fox/Taquart</A><P>
|
||||
<H1>X-Assembler version 2.4</H1>
|
||||
<HR>
|
||||
<H2>TABLE OF CONTENTS</H2>
|
||||
<TABLE><TR><TD>
|
||||
<UL><LI><A HREF="#intro">INTRODUCTION</A>
|
||||
<UL><LI><A HREF="#changes">Changes</A>
|
||||
<UL><LI><A HREF="#ver23">Version 2.3</A>
|
||||
<UL><LI><A HREF="#ver24">Version 2.4</A>
|
||||
<LI><A HREF="#ver23">Version 2.3</A>
|
||||
<LI><A HREF="#ver22">Version 2.2</A>
|
||||
<LI><A HREF="#ver20">Version 2.0</A>
|
||||
<LI><A HREF="#ver12">Version 1.2</A>
|
||||
@ -40,10 +40,32 @@ by <A HREF="mailto:pfusik@elka.pw.edu.pl">Fox/Taquart</A><P>
|
||||
</TD></TR></TABLE></CENTER>
|
||||
<P><HR>
|
||||
<A NAME="intro"><H2>INTRODUCTION</H2>
|
||||
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.<BR>
|
||||
<A NAME="changes"><H3>Changes</H3>
|
||||
<A NAME="ver24"><H4>Version 2.4</H4>
|
||||
<UL>
|
||||
<LI> fixed a bug causing incorrect unary operator precedence
|
||||
<LI> fixed wrong label value after a skip pseudo-command
|
||||
<LI> the assembler is .EXE (.COM caused problems with DJGPP make due
|
||||
to a bug in DJGPP runtime)
|
||||
<LI> the assembler is not compressed (so it occupies less space in the ZIP)
|
||||
<LI> improved command-line parsing: options may be used before source file
|
||||
name, tab character is a valid separator, <TT>/</TT> may be used as directory
|
||||
separator (Unix convention)
|
||||
<LI> error and warning messages are written to stderr, not stdout
|
||||
<LI> added <TT>==</TT> (equal) operator, which is equivalent to <TT>=</TT>
|
||||
(but is more natural for C/C++/Java programmers)
|
||||
<LI> <A HREF="#new_deflabel">added <TT>/d:label=value</TT> option: define a label</A>
|
||||
<LI> <A HREF="#new_fullpaths">added <TT>/p</TT> option: print full paths in listing and error messages</A>
|
||||
<LI> <A HREF="#new_quiet">added <TT>/q</TT> option: quiet mode</A>
|
||||
<LI> <A HREF="#new_unlabels">added <TT>/u</TT> option: warn of unused labels</A>
|
||||
<LI> <A HREF="#new_opto">writing to the object file may be suppressed with <TT>OPT O-</TT></A>
|
||||
<LI> <A HREF="#new_eli">added <TT>ELI</TT> (else if) directive</A>
|
||||
<LI> <A HREF="#new_mwinde"><TT>MWX</TT> and <TT>MWY</TT> may use <TT>INX</TT>/<TT>DEX</TT>
|
||||
and <TT>INY</TT>/<TT>DEY</TT>, respectively, for generating smaller code</A>
|
||||
</UL>
|
||||
<A NAME="ver23"><H4>Version 2.3</H4>
|
||||
<UL>
|
||||
<LI> double skip (e.g. <TT>SCC:SNE</TT>) bug fixed
|
||||
@ -107,7 +129,7 @@ assembling only if source newer than object option</A>
|
||||
<A NAME="sysreq"><H3>System requirements</H3>
|
||||
<UL>
|
||||
<LI> a PC compatible computer with 386 or better CPU
|
||||
(a numeric coprocessor is required for generating sinus tables)
|
||||
(a numeric coprocessor is required for generating sine lookup tables)
|
||||
<LI> a MS-DOS compatible OS
|
||||
</UL>
|
||||
<A NAME="srcreq"><H3>Source code requirements</H3>
|
||||
@ -116,7 +138,7 @@ assembling only if source newer than object option</A>
|
||||
Although different EOLs are supported,
|
||||
CR/LF is recommended because it is standard for text files on PC.
|
||||
<LI> No line of source can be longer than 256 characters.
|
||||
<LI> There is no limitation on the length of the source.
|
||||
<LI> There is no limitation on the length of the source file.
|
||||
<LI> Tabulators can be used in place of spaces.
|
||||
<LI> The assembler is not case-sensitive.
|
||||
</UL>
|
||||
@ -139,40 +161,75 @@ Following options are supported:
|
||||
<DT><TT>/c</TT>
|
||||
<DD>Enable listing false conditionals.<BR>
|
||||
By default lines skipped due to false condition are not listed.<P>
|
||||
<A NAME="new_deflabel">
|
||||
<DT><TT>/d:label=value</TT>
|
||||
<DD>Define a label.<BR>
|
||||
<TT>label</TT> should be a valid label name.
|
||||
<TT>value</TT> may be any expression (it may use forward references
|
||||
to labels defined in the source file).
|
||||
You may use several <TT>/d</TT> options to define many labels
|
||||
from the command line.<P>
|
||||
<A NAME="new_environment">
|
||||
<DT><TT>/e</TT>
|
||||
<DD>Enable setting environment variables pointing to the error location.<BR>
|
||||
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:
|
||||
<PRE>XASM %1 /e
|
||||
IF NOT ERRORLEVEL 1 GOTO ok
|
||||
NCE +%ERRLINE% %ERRFILE%
|
||||
:ok
|
||||
</PRE>
|
||||
NCE stands for Norton Classic Editor.<P>
|
||||
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.<P>
|
||||
<B>Note:</B> NCE is an old editor for DOS. To learn about integration with
|
||||
modern text editors for Windows <A HREF="editors.htm">read this</A>.
|
||||
<P>
|
||||
<DT><TT>/i</TT>
|
||||
<DD>Disable listing included source. Only main source file will be listed.<P>
|
||||
<DT><TT>/l[:fname]</TT>
|
||||
<DT><TT>/l[:filename]</TT>
|
||||
<DD>Enable generating listing.
|
||||
If no <TT>fname</TT> given, listing is written to <TT>source.lst.</TT><P>
|
||||
If no <TT>filename</TT> given, listing is written to <TT>source.lst</TT>
|
||||
(where <TT>source</TT> is the name of the source file (without extension).<P>
|
||||
<A NAME="new_newer">
|
||||
<DT><TT>/n</TT>
|
||||
<DD>Check source and object modification times and assemble only
|
||||
<DD>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.<P>
|
||||
<DT><TT>/o:fname</TT>
|
||||
<DD>Specify object name. Default is <TT>source.obx</TT>.<P>
|
||||
<B>Note:</B> Much more powerful for this purpose is GNU make utility.
|
||||
In DOS and Windows you may use its DJGPP port (available from
|
||||
<A HREF="http://www.delorie.com/djgpp">http://www.delorie.com/djgpp</A>).<P>
|
||||
<DT><TT>/o:filename</TT>
|
||||
<DD>Specify object file name. Default is <TT>source.obx</TT>.
|
||||
You may use the null device (<TT>/o:nul</TT>) to generate no object file.<P>
|
||||
<A NAME="new_fullpaths">
|
||||
<DT><TT>/p</TT>
|
||||
<DD>Print fully qualified file names in listing and error messages.<BR>
|
||||
This option is useful for the Code-Genie editor (see
|
||||
<A HREF="editors.htm">here</A>), which can jump to the error location
|
||||
only if full path is given.<P>
|
||||
<A NAME="new_quiet">
|
||||
<DT><TT>/q</TT>
|
||||
<DD>Suppress info messages.<BR>
|
||||
Prevents X-Asm from printing "<TT>X-Assembler 2.4 by Fox/Taquart</TT>"
|
||||
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.<P>
|
||||
<DT><TT>/s</TT>
|
||||
<DD>Disable converting spaces to tabs in listing.
|
||||
Using tabs makes listing file shorter.<BR>
|
||||
<DD>Disable converting spaces to tabs in listing.<BR>
|
||||
Using tabs makes listing file shorter.
|
||||
Tab stops are assumed to be every 8 characters.<P>
|
||||
<DT><TT>/t[:fname]</TT>
|
||||
<DD>List label table.
|
||||
If no <TT>fname</TT> given, table is written at the end of listing or to
|
||||
<TT>source.tab</TT>.<P>
|
||||
<DT><TT>/t[:filename]</TT>
|
||||
<DD>List label table.<BR>
|
||||
If no <TT>filename</TT> given, the table is written at the end of listing
|
||||
or to <TT>source.tab</TT>.<P>
|
||||
<A NAME="new_unlabels">
|
||||
<DT><TT>/u</TT>
|
||||
<DD>Warn of unused labels.<BR>
|
||||
A warning message will be issued for each label, which value is never
|
||||
used.<P>
|
||||
</DL>
|
||||
If source is incorrect, X-Asm stops on first encountered error.<P>
|
||||
<A NAME="exitcod"><H3>Exit codes</H3>
|
||||
@ -182,22 +239,22 @@ Meaning of exit codes returned by X-Asm:<BR>
|
||||
1 = warning(s) only<BR>
|
||||
0 = no errors, no warnings<BR>
|
||||
<A NAME="listing"><H3>Listing structure</H3>
|
||||
Line of listing includes:
|
||||
A line of listing contains:
|
||||
<UL>
|
||||
<LI> decimal number of line of source file (if source is different than in
|
||||
previous listed line, appropriate message line is issued)
|
||||
<LI> hexadecimal origin value
|
||||
<LI> hexadecimal bytes written to object file<BR>
|
||||
<LI> hexadecimal origin counter value
|
||||
<LI> hexadecimal values of bytes written to object file<BR>
|
||||
Listed are also generated headers. A <TT>xxxx-yyyy></TT> in place of origin
|
||||
represents generated header: <TT>$xxxx</TT> is the first and <TT>$yyyy</TT>
|
||||
is the last byte of the block.
|
||||
counter represents generated header: <TT>$xxxx</TT> is the first and
|
||||
<TT>$yyyy</TT> is the last byte of the block.
|
||||
A <TT>FFFF></TT> represents two $ff bytes written as a header prefix.<BR>
|
||||
A plus sign placed after hex numbers stands for more bytes written to object
|
||||
in this line, not listed through lack of space.
|
||||
<LI> remaining part of listing line is a copy of source line
|
||||
<LI> remaining part of listing line is verbatim copy of source line
|
||||
</UL>
|
||||
<A NAME="labtab"><H3>Label table structure</H3>
|
||||
Line of label table includes:
|
||||
A line of label table contains:
|
||||
<UL>
|
||||
<LI> some label attributes:<BR>
|
||||
<TT>n</TT> - label defined but not used elsewhere<BR>
|
||||
@ -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 <I>fields</I>.
|
||||
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.<P>
|
||||
There can't be any space within a field, except for strings and comments.<P>
|
||||
There are following types of fields:
|
||||
<UL>
|
||||
<LI> <A HREF="#label">label field</A>
|
||||
@ -236,25 +293,28 @@ In the latter form, you must use a minimum of an instruction field.
|
||||
It depends on the instruction, how many operands it takes.
|
||||
Every instruction takes constant number of operands, therefore
|
||||
there's no need to use a special character at the start of a comment, because after
|
||||
succesfully taking operands, X-Asm discards the remaining part of line.<P>
|
||||
succesfully taking operands, X-Asm discards the remaining part of line.
|
||||
However, <A HREF="editors.htm">general purpose text editors</A> may highlight
|
||||
the comments only if a special delimiter is used, and for that reason,
|
||||
the semicolon is recommended to start a comment.<P>
|
||||
|
||||
<A NAME="label"><H4>Label field</H4>
|
||||
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.<BR>
|
||||
Label is a symbol representing an integer of range -$ffff..$ffff.<BR>
|
||||
Name of a label can contain letters, digits and underscores (<TT>_</TT>).
|
||||
Name of a label may contain letters, digits and underscores (<TT>_</TT>).
|
||||
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.<BR>
|
||||
Defining a label without using <TT>EQU</TT> makes it equal to current value
|
||||
of the origin counter.<BR>
|
||||
Label can't be redefined.<P>
|
||||
Labels can't be redefined.<P>
|
||||
|
||||
<A NAME="new_linerep"><A NAME="repeat"><H4>Repeat count</H4>
|
||||
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.<BR>
|
||||
bytes written to the object file.<BR>
|
||||
Repeat count, which can be any valid expression, has to be preceded
|
||||
with a colon.<BR>
|
||||
Examples:
|
||||
@ -263,7 +323,7 @@ Examples:
|
||||
</PRE>
|
||||
In the latter example each <TT>DTA</TT> has different operand value.<BR>
|
||||
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.
|
||||
|
||||
<A NAME="new_pairing"><A NAME="instr"><H4>Instruction field</H4>
|
||||
If this is the first field in a line, the line must start with at least
|
||||
@ -280,11 +340,11 @@ Example:
|
||||
Note that
|
||||
<PRE> lda:tax $80
|
||||
</PRE>is correct, because <TT>$80</TT> is a comment for <TT>TAX</TT>.<P>
|
||||
Single instruction always consists of 3 letters. It can be:
|
||||
Single instruction always consists of 3 letters. It may be:
|
||||
<OL TYPE=a>
|
||||
<LI> 6502 command - standard mnemonics are used
|
||||
<LI> <A HREF="#directives">directive
|
||||
<LI> <A HREF="#pseudocom">pseudo-command
|
||||
<LI> a 6502 command - standard mnemonics are used
|
||||
<LI> <A HREF="#directives">a directive</A>
|
||||
<LI> <A HREF="#pseudocom">a pseudo-command</A>
|
||||
</OL>
|
||||
|
||||
<A NAME="operand"><H4>Operand field</H4>
|
||||
@ -306,13 +366,13 @@ for 6502 indirect addressing.
|
||||
|
||||
<A NAME="numbers"><H4>Numbers</H4>
|
||||
Numbers are 32-bit signed integers, in the range of -$7fffffff..$7fffffff.
|
||||
A number can be:
|
||||
A number may be:
|
||||
<TABLE>
|
||||
<TR><TD WIDTH=300><UL><LI> a decimal number</TD><TD><TT>-12345</TT></TD></TR>
|
||||
<TR><TD><UL><LI> a hexadecimal number</TD><TD><TT>$abcd</TT></TD></TR>
|
||||
<TR><TD><UL><LI> a binary number</TD><TD><TT>%10100101</TT></TD></TR>
|
||||
<TR><TD><UL><LI> an ASCII character</TD><TD><TT>'a'</TT> or <TT>"a"</TT></TD></TR>
|
||||
<TR><TD><UL><LI> an origin counter</TD><TD><TT>*</TT></TD></TR>
|
||||
<TR><TD><UL><LI> the origin counter value</TD><TD><TT>*</TT></TD></TR>
|
||||
<TR><TD><UL><LI> a hardware register</TD><TD><TT>^31</TT></TD></TR>
|
||||
</UL></TABLE>
|
||||
<DIV STYLE="MARGIN-LEFT: 54">
|
||||
@ -329,9 +389,9 @@ where x is a hexadecimal digit.
|
||||
<TR><TD WIDTH=300><UL><LI> an op-code</TD><TD><TT>{lda #0}</TT></TD></TR>
|
||||
</UL></TABLE>
|
||||
<DIV STYLE="MARGIN-LEFT: 54">
|
||||
Byte op-code of instruction inside braces. Operand is discarded
|
||||
Single-byte op-code of the instruction inside braces. Operand is discarded
|
||||
and is necessary only for identifying addressing mode.
|
||||
Instruction should begin right after left brace and right brace should
|
||||
Instruction should begin just after the left brace and the right brace should
|
||||
immediately follow the operand or the command in implied addressing mode.<BR>
|
||||
<A NAME="new_op_op">You can skip the operand, if the addressing mode is fixed.
|
||||
Examples:<BR>
|
||||
@ -354,6 +414,7 @@ Examples:<BR>
|
||||
<TR><TD><TT><< </TT></TD><TD>Arithmetic shift left</TD></TR>
|
||||
<TR><TD><TT>>> </TT></TD><TD>Arithmetic shift right</TD></TR>
|
||||
<TR><TD><TT>= </TT></TD><TD>Equal</TD></TR>
|
||||
<TR><TD><TT>== </TT></TD><TD>Equal (same as <TT>=</TT>)</TD></TR>
|
||||
<TR><TD><TT><> </TT></TD><TD>Not equal</TD></TR>
|
||||
<TR><TD><TT>!= </TT></TD><TD>Not equal (same as <TT><></TT>)</TD></TR>
|
||||
<TR><TD><TT>< </TT></TD><TD>Less than</TD></TR>
|
||||
@ -379,14 +440,14 @@ Examples:<BR>
|
||||
<TR><TD> </TD><TD><TT>+ - ~ < ></TT><TD>(unary)</TD></TR>
|
||||
<TR><TD> </TD><TD><TT>* / % & << >></TT><TD>(binary)</TD></TR>
|
||||
<TR><TD> </TD><TD><TT>+ - | ^</TT><TD>(binary)</TD></TR>
|
||||
<TR><TD> </TD><TD><TT>= <> != < > <= >=</TT><TD>(binary)</TD></TR>
|
||||
<TR><TD> </TD><TD><TT>= == <> != < > <= >=</TT><TD>(binary)</TD></TR>
|
||||
<TR><TD> </TD><TD><TT>!</TT><TD>(unary)</TD></TR>
|
||||
<TR><TD> </TD><TD><TT>&&</TT><TD>(binary)</TD></TR>
|
||||
<TR><TD>last </TD><TD><TT>||</TT><TD>(binary)</TD></TR>
|
||||
</TABLE><P>
|
||||
Operators are similar to used in C language, but their priorities are different
|
||||
than in C.<P>
|
||||
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.<P>
|
||||
Compare and logical operators assume that zero is false and a non-zero is true.
|
||||
They return 1 for true.<P>
|
||||
While calculating expression, signed 32-bit arithmetic is used. When range of 32 bits
|
||||
is exceeded, <TT>'Arithmetic overflow'</TT> error is generated.<P>
|
||||
@ -401,23 +462,30 @@ Examples:
|
||||
here equ *
|
||||
</PRE>
|
||||
|
||||
<DT><TT><B>OPT</B></TT> - set assembling options
|
||||
<DD>Currently there are two options: generating listing and generating headers.
|
||||
<A NAME="new_opto">
|
||||
<DT><TT><B>OPT</B></TT> - set assembly options
|
||||
<DD>Three options are available:
|
||||
<UL>
|
||||
<LI> <TT>H</TT> - generate Atari executable headers
|
||||
<LI> <TT>L</TT> - generate listing
|
||||
<LI> <TT>O</TT> - generate object file
|
||||
</UL>
|
||||
You can turn any of these on or off.<BR>
|
||||
Default (if no <TT>OPT</TT> specified) is <TT>opt l+h+</TT>.<BR>
|
||||
Default (if no <TT>OPT</TT> specified) is <TT>opt h+l+o+</TT>.<BR>
|
||||
Examples:
|
||||
<PRE> opt l- listing off
|
||||
opt h- headers off
|
||||
opt l+h- listing on, headers off
|
||||
opt l+o- listing on, object file off
|
||||
</PRE>
|
||||
|
||||
<DT><TT><B>ORG</B></TT> - set new origin counter
|
||||
<DD>You can set some options applied to new header (if headers are on):
|
||||
<DT><TT><B>ORG</B></TT> - change value of the origin counter
|
||||
<DD>You can set some options applied to the new header (if headers are
|
||||
enabled):
|
||||
<UL>
|
||||
<LI><TT>a:</TT> tells X-Asm to always make a header, even it is unnecessary,
|
||||
<LI> <TT>a:</TT> tells X-Asm to always make a header, even it is unnecessary,
|
||||
like in <TT>ORG *</TT>.
|
||||
<LI><TT>f:</TT> works same as <TT>a:</TT>, but additionally tells to generate
|
||||
a $ff,$ff prefix before header. X-Asm adds it at the beginning of file
|
||||
<LI> <TT>f:</TT> works same as <TT>a:</TT>, but additionally tells to generate
|
||||
a $ff,$ff prefix before the header. X-Asm adds it at the beginning of the file
|
||||
by default, so use this option only if you want the $ff's somewhere inside.<BR>
|
||||
</UL>
|
||||
Examples:
|
||||
@ -442,18 +510,18 @@ before <TT>ORG</TT> directive is executed).<P>
|
||||
</UL>
|
||||
You may enter many expressions in parentheses and combine different types
|
||||
of data in single line, separating things with commas.<BR>
|
||||
You may also define a sinus table. Syntax is:<BR>
|
||||
You may also define a sine lookup table. Syntax is:<BR>
|
||||
<TT>sin(centre,amp,size,first,last)</TT><BR>
|
||||
where:
|
||||
<UL>
|
||||
<LI> <TT>centre</TT> is a number which is added to every sinus value
|
||||
<LI> <TT>amp</TT> is the amplitude of sinus
|
||||
<LI> <TT>size</TT> is the period of sinus
|
||||
<LI> <TT>centre</TT> is a number which is added to every sine value
|
||||
<LI> <TT>amp</TT> is the sine amplitude
|
||||
<LI> <TT>size</TT> is the sine period
|
||||
<LI> <TT>first,last</TT> define range of values in the table.
|
||||
They are optional. Default are <TT>0,size-1</TT>.
|
||||
</UL>
|
||||
Example: <TT>dta a(sin(0,1000,256,0,63))</TT> defines table of 64 words
|
||||
representing a quarter of sinus with amplitude of 1000.<P>
|
||||
representing a quarter of sine with amplitude of 1000.<P>
|
||||
<LI> real numbers: <TT>r(-1.23456e12)</TT><BR>
|
||||
Real numbers are written in 6-byte Atari Floating-Point format. You can't
|
||||
combine reals with operators, as you can integers.<P>
|
||||
@ -494,8 +562,8 @@ Example:
|
||||
</PRE>
|
||||
|
||||
<DT><TT><B>INS</B></TT> - insert contents of file
|
||||
<DD>Copies every byte of specified file into object file and moves origin
|
||||
counter, as if these bytes were defined with <TT>DTA</TT>.<BR>
|
||||
<DD>Copies every byte of specified file into the object file and updates
|
||||
the origin counter, as if these bytes were defined with <TT>DTA</TT>.<BR>
|
||||
You may specify range of inserted file. Syntax is following:
|
||||
<PRE>
|
||||
ins 'file'[,offset[,length]]
|
||||
@ -510,7 +578,7 @@ Examples:
|
||||
</PRE>
|
||||
|
||||
<DT><TT><B>RUN</B></TT> - generate run address
|
||||
<DD>The Atari executable program should have run address specified.
|
||||
<DD>The Atari executable program should have a run address specified.
|
||||
A program may be loaded in many areas of memory and started from any address.
|
||||
<PRE> run addr
|
||||
</PRE>
|
||||
@ -520,7 +588,7 @@ is equivalent to:
|
||||
</PRE>
|
||||
Examples:
|
||||
<PRE> run start
|
||||
run program
|
||||
run main
|
||||
</PRE>
|
||||
|
||||
<DT><TT><B>INI</B></TT> - generate init address
|
||||
@ -537,7 +605,9 @@ Examples:
|
||||
ert len1>$ff||len2>$ff
|
||||
</PRE>
|
||||
|
||||
<A NAME="new_eli">
|
||||
<DT><TT><B>IFT</B></TT> - assemble if expression is true<BR>
|
||||
<TT><B>ELI</B></TT> - else if<BR>
|
||||
<TT><B>ELS</B></TT> - else<BR>
|
||||
<TT><B>EIF</B></TT> - end if<BR>
|
||||
<DD>With these directives you can construct fragments which
|
||||
@ -545,8 +615,11 @@ are assembled when a condition is met.
|
||||
Conditional constructions can be nested.<BR>
|
||||
Example:
|
||||
<PRE>noscr equ 1
|
||||
widescr equ 1
|
||||
ift noscr
|
||||
lda #0
|
||||
eli widescr
|
||||
lda #$23
|
||||
els
|
||||
lda #$22
|
||||
eif
|
||||
@ -554,8 +627,10 @@ Example:
|
||||
</PRE>
|
||||
Above example can be rewritten using line repeating feature:
|
||||
<PRE>noscr equ 1
|
||||
widescr equ 1
|
||||
:noscr lda #0
|
||||
:!noscr lda #$22
|
||||
:!noscr&&widescr lda #$23
|
||||
:!noscr&&!widescr lda #$22
|
||||
sta $22f
|
||||
</PRE>
|
||||
|
||||
@ -563,7 +638,7 @@ Above example can be rewritten using line repeating feature:
|
||||
<HR>
|
||||
<A NAME="pseudocom"><H3>Pseudo-commands</H3>
|
||||
Pseudo-commands are built-in macros.
|
||||
They are not illegal instructions and work on typical 6502.<P>
|
||||
They are not unofficial instructions, so they work on typical 6502.<P>
|
||||
<DL>
|
||||
<DT><TT><B>ADD</B></TT> - addition without carry
|
||||
<DD>If you have ever programmed 6502, you must have noticed that you had
|
||||
@ -601,12 +676,12 @@ Example:
|
||||
add:sta $80
|
||||
scc:inc $81
|
||||
</PRE>
|
||||
In the above example word-sized variable $80 is incremented by 40.<BR>
|
||||
In the above example word-size variable $80 is incremented by 40.<BR>
|
||||
Nor conditional repeat nor skip pseudo-commands require operand,
|
||||
thus they can be paired with any other command.<P>
|
||||
|
||||
<DT><TT><B>JCC, JCS, JEQ, JMI, JNE, JPL, JVC, JVS</B></TT> - conditional jumps
|
||||
<DD>They are a kind of 'long' branches. While standard branches
|
||||
<DD>These are a kind of 'long' branches. While standard branches
|
||||
(<TT>BNE, BEQ</TT>) have range of -128..+127, these jumps have range
|
||||
of all 64 kB.<BR>
|
||||
Example:
|
||||
@ -616,7 +691,7 @@ Example:
|
||||
</PRE>
|
||||
|
||||
<DT><TT><B>INW</B></TT> - increment word
|
||||
<DD>It is a 16-bit memory increment command.<BR>
|
||||
<DD>Increments a 16-bit word in the memory.<BR>
|
||||
Example:
|
||||
<PRE> inw dest
|
||||
</PRE>is equivalent to:
|
||||
@ -632,17 +707,18 @@ and substitutes two commands:
|
||||
mvy source dest = ldy source : sty dest
|
||||
</PRE>
|
||||
|
||||
<A NAME="new_mwinde">
|
||||
<DT><TT><B>MWA, MWX, MWY</B></TT> - move word using accumulator, X or Y
|
||||
<DD>These pseudo-commands require two operands
|
||||
and are combinations of two <TT>MV*</TT>'s:
|
||||
one to move low byte, and the other to move high byte.<BR>
|
||||
You can't use indirect nor pseudo addressing mode with <TT>MW*</TT>.
|
||||
Destination must be absolute address (optionally indexed).<BR>
|
||||
When source is also absolute, a <TT>MW* SOURCE DEST</TT> will be:
|
||||
When source is also absolute, a <TT>mw* source dest</TT> will be:
|
||||
<PRE> mv* source dest
|
||||
mv* source+1 dest+1
|
||||
</PRE>
|
||||
When source is an immediate, a <TT>MW* #IMMED DEST</TT> will be:
|
||||
When source is an immediate, a <TT>mw* #immed dest</TT> will be:
|
||||
<PRE> mv* <immed dest
|
||||
mv* >immed dest+1
|
||||
</PRE>
|
||||
@ -651,6 +727,11 @@ is not forward-referenced, X-Asm uses optimization:
|
||||
<PRE> mv* <immed dest
|
||||
st* dest+1
|
||||
</PRE>
|
||||
If possible, <TT>MWX</TT> and <TT>MWY</TT> use increment/decrement
|
||||
commands. E.g. <TT>mwx #1 dest</TT> is assembled as:
|
||||
<PRE> mvx #1 dest
|
||||
dex
|
||||
stx dest+1
|
||||
</DL>
|
||||
</OL>
|
||||
|
||||
@ -662,16 +743,16 @@ the accumulator addressing mode, which should be marked with a
|
||||
|
||||
There are two extra immediate addressing modes:
|
||||
<TT><</TT> and <TT>></TT>,
|
||||
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 <TT>#<</TT> and <TT>#></TT>.
|
||||
Note <NOBR><TT>lda >$ff+5</TT></NOBR> loads 1 (<TT>>$104</TT>),
|
||||
while <NOBR><TT>lda #>$ff+5</TT></NOBR>
|
||||
loads 5 (<TT>0+5</TT>) to accumulator, because unary operator <TT>></TT> has higher
|
||||
priority than plus has.<P>
|
||||
loads 5 (<TT>0+5</TT>) to accumulator, because unary operator <TT>></TT>
|
||||
has higher priority than the binary plus.<P>
|
||||
|
||||
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
|
||||
<TT>a:</TT> and <TT>z:</TT> prefixes.<P>
|
||||
|
||||
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
|
||||
<TT>MWA</TT>, <TT>MWX</TT> and <TT>MWY</TT> only:
|
||||
in all 6502 commands and pseudo-commands, except for
|
||||
<TT>MWA</TT>, <TT>MWX</TT> and <TT>MWY</TT>:
|
||||
<PRE> 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
|
||||
<HR>
|
||||
<A NAME="faq"><H2>FAQ</H2>
|
||||
<UL>
|
||||
<LI><B>Q:</B> Why does X-Asm ignore <TT>+2</TT> in following line?
|
||||
<LI><B>Q:</B> Why does X-Asm ignore <TT>+2</TT> in the following line?
|
||||
<PRE>label equ 1 +2
|
||||
</PRE>
|
||||
<B>A:</B> X-Asm treats space as operand terminator. Remaining part of line
|
||||
@ -743,7 +824,8 @@ one equ 1
|
||||
<B>A:</B> X-Asm reads source twice (in pass 1 and pass 2)
|
||||
from the beginning until the end.<BR>
|
||||
This allows forward references, but not too complex.<BR>
|
||||
Keep in mind that assembler should know all the values in second pass.<P>
|
||||
Keep in mind that the assembler must know all the values in the second
|
||||
pass.<P>
|
||||
Example:
|
||||
<PRE>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.<P>
|
||||
|
||||
<LI> If you have other questions/problems,
|
||||
<A HREF=mailto:pfusik@elka.pw.edu.pl>write to me</A>.
|
||||
<A HREF=mailto:fox@scene.pl>write to me</A>.
|
||||
</UL>
|
||||
<P><HR><P><A HREF="index.htm">Back</A>
|
||||
</BODY></HTML>
|
@ -1,25 +1,29 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>X-BOOT 5.0 Manual</TITLE>
|
||||
<TITLE>X-BOOT 5.0</TITLE>
|
||||
</HEAD>
|
||||
<BODY BACKGROUND="6502proc.gif">
|
||||
<CENTER>
|
||||
<H1>X-BOOT version 5.0</H1>
|
||||
by <A HREF="mailto:pfusik@elka.pw.edu.pl">Fox/Taquart</A><P>
|
||||
<HR>
|
||||
</CENTER>
|
||||
|
||||
<H2>INTRODUCTION</H2>
|
||||
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 <A HREF="xload.htm">X-LOAD</A>.
|
||||
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
|
||||
<A HREF="xload.htm">X-LOAD</A>), and the emulators (e.g.
|
||||
<A HREF="http://www.a800win.atari-area.prv.pl">Atari800Win PLus</A>).
|
||||
However, X-BOOT may still be useful, especially when using
|
||||
professional loader.
|
||||
<H3>CHANGES</H3>
|
||||
<H4>Version 5.0</H4>
|
||||
<UL>
|
||||
<LI> long file names support
|
||||
<LI> more flexible syntax: <TT>obxmask atrfile</TT>
|
||||
<LI> more flexible syntax: both <TT>obxmask atrfile</TT>
|
||||
and <TT>obxfile atrpath</TT> can be used
|
||||
<LI> internal write protection set in generated disk images
|
||||
<LI> internal write protection flag (supported by APE and Atari800)
|
||||
set in generated disk images
|
||||
<LI> headers with end address less than start allowed
|
||||
<LI> Unix-like <TT>-p</TT> option allowed
|
||||
</UL>
|
||||
@ -28,7 +32,7 @@ and <TT>obxfile atrpath</TT> can be used
|
||||
<LI> wildcards support - now you can convert a set of files
|
||||
<LI> .ATR name not required - name can be taken from executable
|
||||
<LI> no length limit - files longer than 60k allowed
|
||||
<LI> truncated executables handling
|
||||
<LI> truncated executables are supported
|
||||
<LI> checking for memory conflicts
|
||||
<LI> better errors handling
|
||||
</UL>
|
||||
@ -43,19 +47,20 @@ and <TT>obxfile atrpath</TT> can be used
|
||||
|
||||
<HR>
|
||||
<H2>USAGE</H2>
|
||||
This is syntax for running X-BOOT:<P>
|
||||
Syntax for invoking X-BOOT is following:<P>
|
||||
<TT>XBOOT [/p] obxfiles [atrpath][atrfile]</TT><P>
|
||||
Parameters in brackets are optional.<P>
|
||||
If file name extension is omitted, the default .OBX or .ATR is added.
|
||||
If no <TT>atrpath</TT> is given, disk images are written by default in
|
||||
the directory where executables are.<P>
|
||||
If file name contains spaces, you should enclose it in quotation marks.<P>
|
||||
<TT>/p</TT> switch (or equivalent <TT>-p</TT>) 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.<P>
|
||||
Both loaders disable Atari Basic, so you needn't hold OPTION key while
|
||||
booting.<P>
|
||||
<TT>/p</TT> switch (or equivalent <TT>-p</TT>) 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.<P>
|
||||
Both loaders disable Atari Basic, so you don't need to hold the OPTION key
|
||||
while booting.<P>
|
||||
Below are some examples:<P>
|
||||
<DL>
|
||||
<DT><TT>XBOOT -p test</TT>
|
||||
@ -76,17 +81,18 @@ to current directory on current drive using professional loader.
|
||||
<H2>DETAILS</H2>
|
||||
Produced ATR is single density and as short as possible.
|
||||
Loader occupies one boot sector.<P>
|
||||
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.<P>
|
||||
For more details, read sources of loaders:
|
||||
For more details, read source files of the loaders:
|
||||
<UL>
|
||||
<LI>Standard: <A HREF="xbootstd.asx">XBOOTSTD.ASX</A>
|
||||
<LI>Professional: <A HREF="xbootpro.asx">XBOOTPRO.ASX</A>
|
||||
</UL>
|
||||
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.
|
||||
<P><HR><P><A HREF="index.htm">Back</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,18 +1,22 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>X-HEAD 1.1 Manual</TITLE>
|
||||
<TITLE>X-HEAD 1.1</TITLE>
|
||||
</HEAD>
|
||||
<BODY BACKGROUND="6502proc.gif">
|
||||
<CENTER>
|
||||
<H1>X-HEAD version 1.1</H1>
|
||||
by <A HREF="mailto:pfusik@elka.pw.edu.pl">Fox/Taquart</A><P>
|
||||
<HR>
|
||||
</CENTER>
|
||||
|
||||
<H2>INTRODUCTION</H2>
|
||||
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.<P>
|
||||
<B>Important note:</B> 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
|
||||
<A HREF="http://jindroush.atari.org">http://jindroush.atari.org</A>.
|
||||
<H3>CHANGES</H3>
|
||||
<H4>Version 1.1</H4>
|
||||
<UL>
|
||||
@ -25,18 +29,17 @@ X-HEAD also shows init and run addresses.
|
||||
|
||||
<HR>
|
||||
<H2>USAGE</H2>
|
||||
Simply run X-HEAD with executable filename. No options are supported yet.<P>
|
||||
Simply run X-HEAD with executable filename. No options are supported.<P>
|
||||
X-HEAD will read the file and display its headers in following format:
|
||||
<PRE> bbbb-eeee xxxx</PRE>
|
||||
where <TT>bbbb</TT> is the begin, <TT>eeee</TT> - the end of the block,
|
||||
and <TT>xxxx</TT> is the execution address (init or run vector).<P>
|
||||
and <TT>xxxx</TT> is the execution (init or run) address.<P>
|
||||
The summary includes:<BR>
|
||||
<TT>xxxx bytes</TT> - length of file, including headers<BR>
|
||||
<TT>xxxx blocks</TT> - number of headers<BR>
|
||||
<TT>xxxx inits</TT> - number of init blocks (<TT>02e2-02e3</TT>)<BR>
|
||||
<TT>xxxx modules</TT> - number of <TT>FFFF</TT> headers (one at the beginning is required)<P>
|
||||
All displayed numbers are hexadecimal, of course.<P>
|
||||
You can redirect output to a file, for example:
|
||||
<PRE>XHEAD TEST >TEST.HDR
|
||||
All displayed numbers are hexadecimal, of course.
|
||||
<P><HR><P><A HREF="index.htm">Back</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,24 +1,29 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>X-LOAD 1.0 Manual</TITLE>
|
||||
<TITLE>X-LOAD 1.1</TITLE>
|
||||
</HEAD>
|
||||
<BODY BACKGROUND="6502proc.gif">
|
||||
<CENTER>
|
||||
<H1>X-LOAD version 1.0</H1>
|
||||
by <A HREF="mailto:pfusik@elka.pw.edu.pl">Fox/Taquart</A><P>
|
||||
<H1>X-LOAD version 1.1</H1>
|
||||
<HR>
|
||||
</CENTER>
|
||||
|
||||
<H2>INTRODUCTION</H2>
|
||||
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.<P>
|
||||
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.<P>
|
||||
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).<P>
|
||||
<H3>CHANGES</H3>
|
||||
<H4>Version 1.1</H4>
|
||||
<UL>
|
||||
<LI> files with no explicit run address are started from the beginning
|
||||
of the first block
|
||||
</UL>
|
||||
<H4>Version 1.0</H4>
|
||||
<UL>
|
||||
<LI> first release
|
||||
@ -26,47 +31,45 @@ fast (57.6 kbits/sec).<P>
|
||||
|
||||
<HR>
|
||||
<H2>USAGE</H2>
|
||||
You run X-LOAD from DOS prompt with executable filename and optional
|
||||
options:<P>
|
||||
You should pass as the parameters the executable file name and optionally
|
||||
the options:<P>
|
||||
<DL>
|
||||
<DT><TT>/1</TT> - <TT>/4</TT>
|
||||
<DD>Specify COM port number, which interface is attached to.
|
||||
Default is COM2.<P>
|
||||
<DD>Serial port number. Default is 2.<P>
|
||||
<DT><TT>/p</TT>
|
||||
<DD>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.<P>
|
||||
<DD>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.<P>
|
||||
</DL>
|
||||
After you run X-LOAD, you only have to boot your Atari and the program
|
||||
will be loaded and run.<P>
|
||||
While loading, you can watch on your PC memory locations, which program
|
||||
loads to.<P>
|
||||
After program was loaded and run, X-LOAD terminates. You may exit it
|
||||
earlier at any time by pressing ESC key.<P>
|
||||
While loading, PC prints memory locations, which the program loads into.<P>
|
||||
After the program is loaded and run, X-LOAD terminates. You may exit it
|
||||
earlier at any time by pressing the ESC key.<P>
|
||||
|
||||
<HR>
|
||||
<H2>DETAILS</H2>
|
||||
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.<P>
|
||||
So you don't need to touch your Atari to run your program on it.<P>
|
||||
While booting, X-LOAD accepts two commands for disk drive 1:<P>
|
||||
<UL>
|
||||
<LI> <TT>'S'</TT> - read status. Used for checking presence of disk drive.
|
||||
<LI> <TT>'R'</TT> - read sector (only first). Used for reading boot program.
|
||||
<LI> <TT>'S'</TT> - read status. Used by the Atari OS to check presence
|
||||
of a disk drive.
|
||||
<LI> <TT>'R'</TT> - read sector (only first). Used to transfer the loader.
|
||||
</UL>
|
||||
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.<P>
|
||||
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.<P>
|
||||
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:
|
||||
<UL>
|
||||
<LI>Standard: <A HREF="xloadstd.asx">XLOADSTD.ASX</A>
|
||||
<LI>Professional: <A HREF="xloadpro.asx">XLOADPRO.ASX</A>
|
||||
@ -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.
|
||||
<P><HR><P><A HREF="index.htm">Back</A>
|
||||
</BODY>
|
||||
</HTML>
|
5
file_id.diz
Normal file
5
file_id.diz
Normal file
@ -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
|
357
gr0.asm
357
gr0.asm
@ -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
|
56
syntax/X-Assembler.cgsyn
Normal file
56
syntax/X-Assembler.cgsyn
Normal file
@ -0,0 +1,56 @@
|
||||
# X-Assembler syntax for Code-Genie 3.0 (www.code-genie.com)
|
||||
# written by Piotr Fusik <fox@scene.pl>
|
||||
|
||||
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
|
55
syntax/X-Assembler.chl
Normal file
55
syntax/X-Assembler.chl
Normal file
@ -0,0 +1,55 @@
|
||||
// X-Assembler highlighter for ConTEXT v0.97.1 (www.fixedsys.com/context)
|
||||
// written by Piotr Fusik <fox@scene.pl>
|
||||
|
||||
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
|
133
syntax/xasm.stx
Normal file
133
syntax/xasm.stx
Normal file
@ -0,0 +1,133 @@
|
||||
#TITLE=X-Assembler
|
||||
; X-Assembler syntax file for EditPlus 2.11 (www.editplus.com)
|
||||
; written by Piotr Fusik <fox@scene.pl>
|
||||
|
||||
#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
|
||||
#
|
BIN
www/cgenie.gif
Normal file
BIN
www/cgenie.gif
Normal file
Binary file not shown.
After ![]() (image error) Size: 13 KiB |
BIN
www/gbak.gif
Normal file
BIN
www/gbak.gif
Normal file
Binary file not shown.
After ![]() (image error) Size: 69 B |
BIN
www/green64.gif
Normal file
BIN
www/green64.gif
Normal file
Binary file not shown.
After ![]() (image error) Size: 477 B |
42
www/index.html
Normal file
42
www/index.html
Normal file
@ -0,0 +1,42 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>xasm home page</TITLE>
|
||||
<META NAME="Description" CONTENT="xasm is a set of a few tools for developing software
|
||||
for Atari 8-bit computers on a PC with MS-DOS or Windows.">
|
||||
<META NAME="Keywords" CONTENT="xasm,6502,cross-assembler,atari,fox,taquart">
|
||||
<META NAME="Author" CONTENT="Piotr Fusik">
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#000000" BACKGROUND="gbak.gif" TEXT="#ffffff" LINK="#00c0ff" VLINK="#ff80ff" ALINK="#d06060">
|
||||
<TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=0><TR>
|
||||
<TD WIDTH=10% BGCOLOR=#008080><FONT SIZE=6><B>
|
||||
<NOBR> xasm home page</NOBR></B></FONT></TD>
|
||||
<TD BGCOLOR=#008080><IMG SRC="green64.gif" WIDTH=100% HEIGHT=50></TD></TR></TABLE><P>
|
||||
<TABLE><TR>
|
||||
<TD><IMG SRC="cgenie.gif" WIDTH=489 HEIGHT=461 ALT="Some 6502 code in Code-Genie"></TD>
|
||||
<TD>
|
||||
<B>xasm</B> is a set of a few tools for developing software for Atari 8-bit computers
|
||||
on a PC with MS-DOS or Windows.<P>
|
||||
<UL>
|
||||
<LI> <A HREF="xasm24.zip">Download (36 KB)</A>
|
||||
<LI> <A HREF="doc/index.htm">Browse documentation on-line</A>
|
||||
<LI> <A HREF="mailto:fox@scene.pl">E-mail me</A>
|
||||
</UL>
|
||||
<P><HR><P>
|
||||
Features of the assembler:
|
||||
<UL>
|
||||
<LI> backward compatibility with Quick Assembler
|
||||
<LI> pseudo instructions (<TT>add</TT>, <TT>sub</TT>, <TT>inw</TT>, <TT>mva</TT> etc.)
|
||||
<LI> pseudo addressing modes (e.g. indexing with autoincrementation)
|
||||
<LI> two instructions with same operand may be written in single line
|
||||
<LI> full set of arithmetic and logical operators
|
||||
<LI> 6502 opcodes may be used in expressions
|
||||
<LI> conditional assembly
|
||||
<LI> sine table generator
|
||||
<LI> Atari floating-point numbers
|
||||
<LI> Atari executable and raw output formats
|
||||
</UL>
|
||||
</TD>
|
||||
</TR></TABLE>
|
||||
<P><HR><P>
|
||||
<I>Last modified: 22/05/02</I>
|
||||
</BODY></HTML>
|
Loading…
x
Reference in New Issue
Block a user