<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.temlib.org/AtariForumWiki/index.php?action=history&amp;feed=atom&amp;title=ADRESSE.TXT</id>
	<title>ADRESSE.TXT - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.temlib.org/AtariForumWiki/index.php?action=history&amp;feed=atom&amp;title=ADRESSE.TXT"/>
	<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=ADRESSE.TXT&amp;action=history"/>
	<updated>2026-07-26T23:05:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://www.temlib.org/AtariForumWiki/index.php?title=ADRESSE.TXT&amp;diff=9833&amp;oldid=prev</id>
		<title>&gt;Zorro 2: Created page with &quot;&lt;pre&gt; ; ; Adresses systŠmes Atari et macro pour Mad Mac ; ; Atari ST hardware ;  memconf             = $ffff8001 ; memory controller dbaseh              = $ffff8201 dbasel      ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=ADRESSE.TXT&amp;diff=9833&amp;oldid=prev"/>
		<updated>2016-12-22T14:43:58Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt; ; ; Adresses systŠmes Atari et macro pour Mad Mac ; ; Atari ST hardware ;  memconf             = $ffff8001 ; memory controller dbaseh              = $ffff8201 dbasel      ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
;&lt;br /&gt;
; Adresses systŠmes Atari et macro pour Mad Mac&lt;br /&gt;
;&lt;br /&gt;
; Atari ST hardware&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
memconf             = $ffff8001 ; memory controller&lt;br /&gt;
dbaseh              = $ffff8201&lt;br /&gt;
dbasel              = $ffff8203 ; display base low, high&lt;br /&gt;
vcounthi            = $ffff8205 ; display counter low, medium, high&lt;br /&gt;
vcountmid           = $ffff8207&lt;br /&gt;
vcountlow           = $ffff8209&lt;br /&gt;
syncmode            = $ffff820a ; video sync mode&lt;br /&gt;
color0              = $ffff8240 ; color registers 0..15&lt;br /&gt;
color1              = $ffff8242&lt;br /&gt;
color2              = $ffff8244&lt;br /&gt;
color3              = $ffff8246&lt;br /&gt;
color4              = $ffff8248&lt;br /&gt;
color5              = $ffff824a&lt;br /&gt;
color6              = $ffff824c&lt;br /&gt;
color7              = $ffff824e&lt;br /&gt;
color8              = $ffff8250&lt;br /&gt;
color9              = $ffff8252&lt;br /&gt;
color10             = $ffff8254&lt;br /&gt;
color11             = $ffff8256&lt;br /&gt;
color12             = $ffff8258&lt;br /&gt;
color13             = $ffff825a&lt;br /&gt;
color14             = $ffff825c&lt;br /&gt;
color15             = $ffff825e&lt;br /&gt;
shiftmd             = $ffff8260 ; shifter mode (resolution)&lt;br /&gt;
&lt;br /&gt;
;--- DMA chip&lt;br /&gt;
;&lt;br /&gt;
diskctl             = $ffff8604 ; disk controller data access&lt;br /&gt;
fifo                = $ffff8606 ; DMA mode control&lt;br /&gt;
dmahigh             = $ffff8609 ; DMA base high, medium, low&lt;br /&gt;
dmamid              = $ffff860b&lt;br /&gt;
dmalow              = $ffff860d&lt;br /&gt;
&lt;br /&gt;
;--- 1770 registers&lt;br /&gt;
;&lt;br /&gt;
cmdreg              = $80 ; 1770/FIFO command register select&lt;br /&gt;
trkreg              = $82 ; 1770/FIFO track register select&lt;br /&gt;
secreg              = $84 ; 1770/FIFO sector register select&lt;br /&gt;
datareg             = $86 ; 1770/FIFO data register select&lt;br /&gt;
&lt;br /&gt;
;--- Sound Chip&lt;br /&gt;
;&lt;br /&gt;
giselect            = $ffff8800 ; (W) sound chip register select&lt;br /&gt;
giread              = $ffff8800 ; (R) sound chip read-data&lt;br /&gt;
giwrite             = $ffff8802 ; (W) sound chip write-data&lt;br /&gt;
gitoneaf            = 0 ; channel A fine/coarse tune&lt;br /&gt;
gitoneac            = 1&lt;br /&gt;
gitonebf            = 2 ; channel B&lt;br /&gt;
gitonebc            = 3&lt;br /&gt;
gitonecf            = 4 ; channel C&lt;br /&gt;
gitonecc            = 5&lt;br /&gt;
ginoise             = 6 ; noise generator control&lt;br /&gt;
gimixer             = 7 ; I/O control/volume control register&lt;br /&gt;
giaamp              = 8 ; channel A, B, C amplitude&lt;br /&gt;
gibamp              = 9&lt;br /&gt;
gicamp              = $a&lt;br /&gt;
gifienvlp           = $b ; envelope period fine, coarse tune&lt;br /&gt;
gicrnvlp            = $c&lt;br /&gt;
giporta             = $e ; GI register# for I/O port A&lt;br /&gt;
giportb             = $f ; Centronics output register&lt;br /&gt;
&lt;br /&gt;
;--- Bits in &amp;quot;giporta&amp;quot;:&lt;br /&gt;
;&lt;br /&gt;
xrts                = 8 ; RTS output&lt;br /&gt;
dtr                 = $10 ; DTR output&lt;br /&gt;
strobe              = $20 ; Centronics strobe output&lt;br /&gt;
gpo                 = $40 ; &amp;quot;general purpose&amp;quot; output&lt;br /&gt;
&lt;br /&gt;
;--- 68901 (MFP)&lt;br /&gt;
;&lt;br /&gt;
mfp                 = $fffffa00 ; mfp base&lt;br /&gt;
gpip                = mfp+1 ; general purpose I/O&lt;br /&gt;
aer                 = mfp+3 ; active edge reg&lt;br /&gt;
ddr                 = mfp+5 ; data direction reg&lt;br /&gt;
iera                = mfp+7 ; interrupt enable A &amp;amp; B&lt;br /&gt;
ierb                = mfp+9&lt;br /&gt;
ipra                = mfp+$b ; interrupt pending A &amp;amp; B&lt;br /&gt;
iprb                = mfp+$d&lt;br /&gt;
isra                = mfp+$f ; interrupt inService A &amp;amp; B&lt;br /&gt;
isrb                = mfp+$11&lt;br /&gt;
imra                = mfp+$13 ; interrupt mask A &amp;amp; B&lt;br /&gt;
imrb                = mfp+$15&lt;br /&gt;
vr                  = mfp+$17 ; interrupt vector base&lt;br /&gt;
tacr                = mfp+$19 ; timer A control&lt;br /&gt;
tbcr                = mfp+$1b ; timer B control&lt;br /&gt;
tcdcr               = mfp+$1d ; timer C &amp;amp; D control&lt;br /&gt;
tadr                = mfp+$1f ; timer A data&lt;br /&gt;
tbdr                = mfp+$21 ; timer B data&lt;br /&gt;
tcdr                = mfp+$23 ; timer C data&lt;br /&gt;
tddr                = mfp+$25 ; timer D data&lt;br /&gt;
scr                 = mfp+$27 ; sync char&lt;br /&gt;
ucr                 = mfp+$29 ; USART control reg&lt;br /&gt;
rsr                 = mfp+$2b ; receiver status&lt;br /&gt;
tsr                 = mfp+$2d ; transmit status&lt;br /&gt;
udr                 = mfp+$2f ; USART data&lt;br /&gt;
&lt;br /&gt;
;--- 6850s&lt;br /&gt;
;&lt;br /&gt;
keyctl              = $fffffc00 ; keyboard ACIA control&lt;br /&gt;
keybd               = $fffffc02 ; keyboard data&lt;br /&gt;
midictl             = $fffffc04 ; MIDI ACIA control&lt;br /&gt;
midi                = $fffffc06 ; MIDI data&lt;br /&gt;
&lt;br /&gt;
          .subttl 'BIOS Variables'&lt;br /&gt;
;&lt;br /&gt;
; BIOS Variables&lt;br /&gt;
;&lt;br /&gt;
etv_timer           = $400 ; vector for timer interrupt chain&lt;br /&gt;
etv_critic          = $404 ; vector for critical error chain&lt;br /&gt;
etv_term            = $408 ; vector for process terminate&lt;br /&gt;
etv_xtra            = $40c ; 5 reserved vectors&lt;br /&gt;
memvalid            = $420 ; indicates system state on RESET&lt;br /&gt;
memcntlr            = $424 ; mem controller config nibble&lt;br /&gt;
resvalid            = $426 ; validates 'resvector'&lt;br /&gt;
resvector           = $42a ; [RESET] bailout vector&lt;br /&gt;
phystop             = $42e ; physical top of RAM&lt;br /&gt;
_membot             = $432 ; bottom of available memory;&lt;br /&gt;
_memtop             = $436 ; top of available memory;&lt;br /&gt;
memval2             = $43a ; validates 'memcntlr' and 'memconf'&lt;br /&gt;
flock               = $43e ; floppy disk/FIFO lock variable&lt;br /&gt;
seekrate            = $440 ; default floppy seek rate&lt;br /&gt;
_timr_ms            = $442 ; system timer calibration (in ms)&lt;br /&gt;
_fverify            = $444 ; nonzero: verify on floppy write&lt;br /&gt;
_bootdev            = $446 ; default boot device&lt;br /&gt;
palmode             = $448 ; nonzero ==&amp;gt; PAL mode&lt;br /&gt;
defshiftmd          = $44a ; default video rez (first byte)&lt;br /&gt;
sshiftmd            = $44c ; shadow for 'shiftmd' register&lt;br /&gt;
_v_bas_ad           = $44e ; pointer to base of screen memory&lt;br /&gt;
vblsem              = $452 ; semaphore to enforce mutex in vbl&lt;br /&gt;
nvbls               = $454 ; number of deferred vectors&lt;br /&gt;
_vblqueue           = $456 ; pointer to vector of deferred vfuncs&lt;br /&gt;
colorptr            = $45a ; pointer to palette setup (or NULL)&lt;br /&gt;
screenpt            = $45e ; pointer to screen base setup (|NULL)&lt;br /&gt;
_vbclock            = $462 ; count of unblocked vblanks&lt;br /&gt;
_frclock            = $466 ; count of every vblank&lt;br /&gt;
hdv_init            = $46a ; hard disk initialization&lt;br /&gt;
swv_vec             = $46e ; video change-resolution bailout&lt;br /&gt;
hdv_bpb             = $472 ; disk &amp;quot;get BPB&amp;quot;&lt;br /&gt;
hdv_rw              = $476 ; disk read/write&lt;br /&gt;
hdv_boot            = $47a ; disk &amp;quot;get boot sector&amp;quot;&lt;br /&gt;
hdv_mediach         = $47e ; disk media change detect&lt;br /&gt;
_cmdload            = $482 ; nonzero: load COMMAND.COM from boot&lt;br /&gt;
conterm             = $484 ; console/vt52 bitSwitches (%%0..%%2)&lt;br /&gt;
trp14ret            = $486 ; saved return addr for _trap14&lt;br /&gt;
criticret           = $48a ; saved return addr for _critic&lt;br /&gt;
themd               = $48e ; memory descriptor (MD)&lt;br /&gt;
_____md             = $49e ; (more MD)&lt;br /&gt;
savptr              = $4a2 ; pointer to register save area&lt;br /&gt;
_nflops             = $4a6 ; number of disks attached (0, 1+)&lt;br /&gt;
con_state           = $4a8 ; state of conout() parser&lt;br /&gt;
save_row            = $4ac ; saved row# for cursor X-Y addressing&lt;br /&gt;
sav_context         = $4ae ; pointer to saved processor context&lt;br /&gt;
_bufl               = $4b2 ; two buffer-list headers&lt;br /&gt;
_hz_200             = $4ba ; 200hz raw system timer tick&lt;br /&gt;
_drvbits            = $4c2 ; bit vector of &amp;quot;live&amp;quot; block devices&lt;br /&gt;
_dskbufp            = $4c6 ; pointer to common disk buffer&lt;br /&gt;
_autopath           = $4ca ; pointer to autoexec path (or NULL)&lt;br /&gt;
_vbl_list           = $4ce ; initial _vblqueue (to $4ee)&lt;br /&gt;
_dumpflg            = $4ee ; screen-dump flag&lt;br /&gt;
_prtabt             = $4f0 ; printer abort flag&lt;br /&gt;
_sysbase            = $4f2 ; -&amp;gt; base of OS&lt;br /&gt;
_shell_p            = $4f6 ; -&amp;gt; global shell info&lt;br /&gt;
end_os              = $4fa ; -&amp;gt; end of OS memory usage&lt;br /&gt;
exec_os             = $4fe ; -&amp;gt; address of shell to exec on startup&lt;br /&gt;
scr_dump            = $502 ; -&amp;gt; screen dump code&lt;br /&gt;
prv_lsto            = $506 ; -&amp;gt; _lstostat()&lt;br /&gt;
prv_lst             = $50a ; -&amp;gt; _lstout()&lt;br /&gt;
prv_auxo            = $50e ; -&amp;gt; _auxostat()&lt;br /&gt;
prv_aux             = $512 ; -&amp;gt; _auxout()&lt;br /&gt;
cookie_jar	         = $5a0 ; -&amp;gt; used it! (GEM Protocol for example...)&lt;br /&gt;
          .subttl '&amp;quot;Line A&amp;quot; Equates'&lt;br /&gt;
;&lt;br /&gt;
; &amp;quot;Line A&amp;quot; Equates&lt;br /&gt;
;&lt;br /&gt;
VPLANES             = 0&lt;br /&gt;
VWRAP               = 2&lt;br /&gt;
CONTRL              = 4&lt;br /&gt;
INTIN               = 8&lt;br /&gt;
PTSIN               = 12&lt;br /&gt;
INTOUT              = 16&lt;br /&gt;
PTSOUT              = 20&lt;br /&gt;
COLBIT0             = 24&lt;br /&gt;
COLBIT1             = 26&lt;br /&gt;
COLBIT2             = 28&lt;br /&gt;
COLBIT3             = 30&lt;br /&gt;
LSTLIN              = 32&lt;br /&gt;
LNMASK              = 34&lt;br /&gt;
WMODE               = 36&lt;br /&gt;
X1                  = 38&lt;br /&gt;
Y1                  = 40&lt;br /&gt;
X2                  = 42&lt;br /&gt;
Y2                  = 44&lt;br /&gt;
PATPTR              = 46&lt;br /&gt;
PATMSK              = 50&lt;br /&gt;
MFILL               = 52&lt;br /&gt;
CLIP                = 54&lt;br /&gt;
XMINCL              = 56&lt;br /&gt;
YMINCL              = 58&lt;br /&gt;
XMAXCL              = 60&lt;br /&gt;
YMAXCL              = 62&lt;br /&gt;
XDDA                = 64&lt;br /&gt;
DDAINC              = 66&lt;br /&gt;
SCALDIR             = 68&lt;br /&gt;
MONO                = 70&lt;br /&gt;
SRCX                = 72&lt;br /&gt;
SRCY                = 74&lt;br /&gt;
DSTX                = 76&lt;br /&gt;
DSTY                = 78&lt;br /&gt;
DELX                = 80&lt;br /&gt;
DELY                = 82&lt;br /&gt;
FBASE               = 84&lt;br /&gt;
FWIDTH              = 88&lt;br /&gt;
STYLE               = 90&lt;br /&gt;
LITEMSK             = 92&lt;br /&gt;
SKEWMSK             = 94&lt;br /&gt;
WEIGHT              = 96&lt;br /&gt;
ROFF                = 98&lt;br /&gt;
LOFF                = 100&lt;br /&gt;
SCALE               = 102&lt;br /&gt;
CHUP                = 104&lt;br /&gt;
TEXTFG              = 106&lt;br /&gt;
SCRTCHP             = 108&lt;br /&gt;
SCRPT2              = 112&lt;br /&gt;
TEXTBG              = 114&lt;br /&gt;
COPYTRAN            = 116&lt;br /&gt;
SEEDABORT           = 118&lt;br /&gt;
&lt;br /&gt;
          .subttl '&amp;quot;Line A&amp;quot; Macros'&lt;br /&gt;
;&lt;br /&gt;
; &amp;quot;Line A&amp;quot; macros&lt;br /&gt;
;&lt;br /&gt;
          .macro A_init&lt;br /&gt;
          dc.w $a000&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_putpix&lt;br /&gt;
          dc.w $a001&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_getpix&lt;br /&gt;
          dc.w $a002&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_abline&lt;br /&gt;
          dc.w $a003&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_habline&lt;br /&gt;
          dc.w $a004&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_rectfill&lt;br /&gt;
          dc.w $a005&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_polyfill&lt;br /&gt;
          dc.w $a006&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_bitblt&lt;br /&gt;
          dc.w $a007&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_textblt&lt;br /&gt;
          dc.w $a008&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_showcur&lt;br /&gt;
          dc.w $a009&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_hidecur&lt;br /&gt;
          dc.w $a00a&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_chgcur&lt;br /&gt;
          dc.w $a00b&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_drsprite&lt;br /&gt;
          dc.w $a00c&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_unsprite&lt;br /&gt;
          dc.w $a00d&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_copyrstr&lt;br /&gt;
          dc.w $a00e&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro A_seedfill&lt;br /&gt;
          dc.w $a00f&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .subttl 'Operating System Macros'&lt;br /&gt;
&lt;br /&gt;
          .macro Bios trpno, clean ; trap to BIOS&lt;br /&gt;
          move.w #\trpno,-(sp)&lt;br /&gt;
          trap #13&lt;br /&gt;
          .if \clean &amp;lt;= 8&lt;br /&gt;
                    addq #\clean,sp&lt;br /&gt;
          .else&lt;br /&gt;
                    add.w #\clean,sp&lt;br /&gt;
          .endif&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Xbios trpno, clean ; trap to XBIOS&lt;br /&gt;
          move.w #\trpno,-(sp)&lt;br /&gt;
          trap #14&lt;br /&gt;
          .if \clean &amp;lt;= 8&lt;br /&gt;
                    addq #\clean,sp&lt;br /&gt;
          .else&lt;br /&gt;
                    add.w #\clean,sp&lt;br /&gt;
          endif&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .iif !(^^defined GEMDOS), GEMDOS = 1&lt;br /&gt;
&lt;br /&gt;
          .macro Gemdos trpno, clean ; trap to GEMDOS&lt;br /&gt;
          move.w #\trpno,-(sp)&lt;br /&gt;
          trap #GEMDOS&lt;br /&gt;
          .if \clean &amp;lt;= 8&lt;br /&gt;
                    addq #\clean,sp&lt;br /&gt;
          .else&lt;br /&gt;
                    add.w #\clean,sp&lt;br /&gt;
          .endif&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
	  .macro Cls		; Clear Screen&lt;br /&gt;
	  move.w #27,-(sp)&lt;br /&gt;
	  Gemdos 2,4&lt;br /&gt;
	  move.w #'E',-(sp)&lt;br /&gt;
	  Gemdos 2,4&lt;br /&gt;
	  .endm&lt;br /&gt;
&lt;br /&gt;
	  .macro Curson		; Cursor ON&lt;br /&gt;
	  move.w #27,-(sp)&lt;br /&gt;
	  Gemdos 2,4&lt;br /&gt;
	  move.w #'e',-(sp)&lt;br /&gt;
	  Gemdos 2,4&lt;br /&gt;
	  .endm&lt;br /&gt;
&lt;br /&gt;
	  .macro Cursoff	; Cursor OFF&lt;br /&gt;
	  move.w #27,-(sp)&lt;br /&gt;
	  Gemdos 2,4&lt;br /&gt;
	  move.w #'f',-(sp)&lt;br /&gt;
	  Gemdos 2,4&lt;br /&gt;
	  .endm&lt;br /&gt;
&lt;br /&gt;
	  .macro Inv		; INverse Video&lt;br /&gt;
	  move.w #27,-(sp)&lt;br /&gt;
	  Gemdos 2,4&lt;br /&gt;
	  move.w #'p',-(sp)&lt;br /&gt;
	  Gemdos 2,4&lt;br /&gt;
	  .endm&lt;br /&gt;
&lt;br /&gt;
	  .macro Normv		; NORMal Video&lt;br /&gt;
	  move.w #27,-(sp)&lt;br /&gt;
	  Gemdos 2,4&lt;br /&gt;
	  move.w #'q',-(sp)&lt;br /&gt;
	  Gemdos 2,4&lt;br /&gt;
	  .endm&lt;br /&gt;
&lt;br /&gt;
	  .macro Crlf		; Carriage Return+Line Feed&lt;br /&gt;
	  move.w #$0D,-(sp)&lt;br /&gt;
	  Gemdos 2,4&lt;br /&gt;
	  move.w #$0A,-(sp)&lt;br /&gt;
	  Gemdos 2,4&lt;br /&gt;
	  .endm&lt;br /&gt;
&lt;br /&gt;
;&lt;br /&gt;
; String &amp;quot;foobar&amp;quot; (push onto stack)&lt;br /&gt;
; String &amp;quot;foobar&amp;quot;,a0 move address of string somewhere&lt;br /&gt;
;&lt;br /&gt;
          .macro String str,loc&lt;br /&gt;
          .if \?loc&lt;br /&gt;
                    move.l #.\~,\loc&lt;br /&gt;
          else&lt;br /&gt;
                    pea .\~&lt;br /&gt;
          endif&lt;br /&gt;
          .data&lt;br /&gt;
          .\~: dc.b \str,0&lt;br /&gt;
          .text&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .subttl 'Bios Traps'&lt;br /&gt;
&lt;br /&gt;
;--- Character Device Numbers&lt;br /&gt;
;&lt;br /&gt;
PRT                 = 0 ; printer&lt;br /&gt;
AUX                 = 1 ; RS-232&lt;br /&gt;
CON                 = 2 ; console (vt-52 emulator)&lt;br /&gt;
MIDI                = 3 ; MIDI port&lt;br /&gt;
IKBD                = 4 ; ikbd (out only)&lt;br /&gt;
RAWCON              = 5 ; console (raw characters)&lt;br /&gt;
&lt;br /&gt;
          .macro Getmbp ptr&lt;br /&gt;
          move.l \ptr,-(sp)&lt;br /&gt;
          Bios 0,4&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Bconstat dev&lt;br /&gt;
          move.w \dev,-(sp)&lt;br /&gt;
          Bios 1,4&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Bconin dev&lt;br /&gt;
          move.w \dev,-(sp)&lt;br /&gt;
          Bios 2,4&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Bconout dev, char&lt;br /&gt;
          move.w \char,-(sp)&lt;br /&gt;
          move.w \dev,-(sp)&lt;br /&gt;
          Bios 3,6&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Rwabs rwflag, buf, count, recno, dev&lt;br /&gt;
          move.w \dev,-(sp)&lt;br /&gt;
          move.w \recno,-(sp)&lt;br /&gt;
          move.w \count,-(sp)&lt;br /&gt;
          move.l \buf,-(sp)&lt;br /&gt;
          move.w \rwflag,-(sp)&lt;br /&gt;
          Bios 4,14&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Setexc vecnum, vec&lt;br /&gt;
          move.l \vec,-(sp)&lt;br /&gt;
          move.w \vecnum,-(sp)&lt;br /&gt;
          Bios 5,8&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Tickcal&lt;br /&gt;
          Bios 6,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Getbpb devno&lt;br /&gt;
          move.w \devno,-(sp)&lt;br /&gt;
          Bios 7,4&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Bcostat devno&lt;br /&gt;
          move.w \devno,-(sp)&lt;br /&gt;
          Bios 8,4&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Mediach devno&lt;br /&gt;
          move.w \devno,-(sp)&lt;br /&gt;
          Bios 9,4&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Drvmap&lt;br /&gt;
          Bios 10,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Kbshift mode&lt;br /&gt;
          move.w \mode,-(sp)&lt;br /&gt;
          Bios 11,4&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .subttl 'Extended BIOS Traps'&lt;br /&gt;
&lt;br /&gt;
          .macro Initmous type, param, vec&lt;br /&gt;
          move.l \vec,-(sp)&lt;br /&gt;
          move.l \param,-(sp)&lt;br /&gt;
          move.w \type,-(sp)&lt;br /&gt;
          Xbios 0,12&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Physbase&lt;br /&gt;
          Xbios 2,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Logbase&lt;br /&gt;
          Xbios 3,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Getrez&lt;br /&gt;
          Xbios 4,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Setscreen logloc, physloc, rez&lt;br /&gt;
          move.w \rez,-(sp)&lt;br /&gt;
          move.l \physloc,-(sp)&lt;br /&gt;
          move.l \logloc,-(sp)&lt;br /&gt;
          Xbios 5,12&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Setpallete ptr&lt;br /&gt;
          move.l \ptr,-(sp)&lt;br /&gt;
          Xbios 6,6&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Setcolor colnum, color&lt;br /&gt;
          move.w \color,-(sp)&lt;br /&gt;
          move.w \colnum,-(sp)&lt;br /&gt;
          Xbios 7,6&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Floprd buf, devno, sectno, trackno, sideno, count&lt;br /&gt;
          move.w \count,-(sp)&lt;br /&gt;
          move.w \sideno,-(sp)&lt;br /&gt;
          move.w \trackno,-(sp)&lt;br /&gt;
          move.w \sectno,-(sp)&lt;br /&gt;
          move.w \devno,-(sp)&lt;br /&gt;
          clr.l -(sp) ; (filler)&lt;br /&gt;
          move.l \buf,-(sp)&lt;br /&gt;
          Xbios 8,20&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Flopwr buf, devno, sectno, trackno, sideno, count&lt;br /&gt;
          move.w \count,-(sp)&lt;br /&gt;
          move.w \sideno,-(sp)&lt;br /&gt;
          move.w \trackno,-(sp)&lt;br /&gt;
          move.w \sectno,-(sp)&lt;br /&gt;
          move.w \devno,-(sp)&lt;br /&gt;
          clr.l -(sp) ; (filler)&lt;br /&gt;
          move.l \buf,-(sp)&lt;br /&gt;
          Xbios 9,20&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Flopfmt buf,devno,spt,trackno,sideno,interlv,magic,virgin&lt;br /&gt;
          move.w \virgin,-(sp)&lt;br /&gt;
          move.l \magic,-(sp)&lt;br /&gt;
          move.w \interlv,-(sp)&lt;br /&gt;
          move.w \sideno,-(sp)&lt;br /&gt;
          move.w \trackno,-(sp)&lt;br /&gt;
          move.w \spt,-(sp)&lt;br /&gt;
          move.w \devno,-(sp)&lt;br /&gt;
          clr.l -(sp) ; (filler)&lt;br /&gt;
          move.l \buf,-(sp)&lt;br /&gt;
          Xbios $a,26&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Midiws cnt1,ptr&lt;br /&gt;
          move.l \ptr,-(sp)&lt;br /&gt;
          move.w \cnt1,-(sp)&lt;br /&gt;
          Xbios $c,8&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Random&lt;br /&gt;
          Xbios $11,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Protobt buf,serialno,disktype,execflag&lt;br /&gt;
          move.w \execflag,-(sp)&lt;br /&gt;
          move.w \disktype,-(sp)&lt;br /&gt;
          move.l \serialno,-(sp)&lt;br /&gt;
          move.l \buf,-(sp)&lt;br /&gt;
          Xbios $12,14&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Flopver buf, devno, sectno, trackno, sideno, count&lt;br /&gt;
          move.w \count,-(sp)&lt;br /&gt;
          move.w \sideno,-(sp)&lt;br /&gt;
          move.w \trackno,-(sp)&lt;br /&gt;
          move.w \sectno,-(sp)&lt;br /&gt;
          move.w \devno,-(sp)&lt;br /&gt;
          clr.l -(sp) ; (filler)&lt;br /&gt;
          move.l \buf,-(sp)&lt;br /&gt;
          Xbios $13,20&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
CURS_HIDE           = 0&lt;br /&gt;
CURS_SHOW           = 1&lt;br /&gt;
CURS_BLINK          = 2&lt;br /&gt;
CURS_NOBLINK        = 3&lt;br /&gt;
CURS_SETRATE        = 4&lt;br /&gt;
CURS_GETRATE        = 5&lt;br /&gt;
&lt;br /&gt;
          .macro Cursconf func,op&lt;br /&gt;
          move.w \op,-(sp)&lt;br /&gt;
          move.w \func,-(sp)&lt;br /&gt;
          Xbios $15,6&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Settime datetime&lt;br /&gt;
          move.l \datetime,-(sp)&lt;br /&gt;
          Xbios $16,6&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Gettime&lt;br /&gt;
          Xbios $17,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Kbdvbase&lt;br /&gt;
          Xbios $22,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Vsync&lt;br /&gt;
          Xbios $24,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Supexec where&lt;br /&gt;
          move.l \where,-(sp)&lt;br /&gt;
          Xbios $26,6&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .subttl 'Gemdos Traps'&lt;br /&gt;
&lt;br /&gt;
          .macro Dsetdrv drive&lt;br /&gt;
          move.w \drive,-(sp)&lt;br /&gt;
          Gemdos $e,4&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Pterm0&lt;br /&gt;
          clr.w -(sp)&lt;br /&gt;
          trap #GEMDOS&lt;br /&gt;
          illegal&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Pterm code&lt;br /&gt;
          .if \?code&lt;br /&gt;
                    move.w \code,-(sp)&lt;br /&gt;
          .else&lt;br /&gt;
                    clr.w -(sp)&lt;br /&gt;
          .endif&lt;br /&gt;
          move.w #$4c,-(sp)&lt;br /&gt;
          trap #GEMDOS&lt;br /&gt;
          illegal&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Super&lt;br /&gt;
          clr.l -(sp)&lt;br /&gt;
          move.w #$20,-(sp)&lt;br /&gt;
          trap #GEMDOS&lt;br /&gt;
          addq #6,sp&lt;br /&gt;
          move.l d0,-(sp)&lt;br /&gt;
          move.w #$20,-(sp)&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro User&lt;br /&gt;
          trap #GEMDOS&lt;br /&gt;
          addq #6,sp&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Puts string&lt;br /&gt;
          move.l \string,-(sp)&lt;br /&gt;
          Gemdos 9,6&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Tgetdate&lt;br /&gt;
          Gemdos $2a,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Tsetdate date&lt;br /&gt;
          move.w \date,-(sp)&lt;br /&gt;
          Gemdos $2b,4&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Tgettime&lt;br /&gt;
          Gemdos $2c,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Tsettime time&lt;br /&gt;
          move.w \time,-(sp)&lt;br /&gt;
          Gemdos $2d,4&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Fgetdta&lt;br /&gt;
          Gemdos $2f,0&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Sversion&lt;br /&gt;
          Gemdos $30,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Dfree buf,drive&lt;br /&gt;
          move.w \drive,-(sp)&lt;br /&gt;
          move.l \buf,-(sp)&lt;br /&gt;
          Gemdos $36,8&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Fopen file, mode&lt;br /&gt;
          move.w \mode,-(sp)&lt;br /&gt;
          move.l \file,-(sp)&lt;br /&gt;
          Gemdos $3d,8&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Fcreate file, mode&lt;br /&gt;
          move.w \mode,-(sp)&lt;br /&gt;
          move.l \file,-(sp)&lt;br /&gt;
          Gemdos $3c,8&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Fread handle, count, buf&lt;br /&gt;
          move.l \buf,-(sp)&lt;br /&gt;
          move.l \count,-(sp)&lt;br /&gt;
          move.w \handle,-(sp)&lt;br /&gt;
          Gemdos $3f,12&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Fwrite handle, count, buf&lt;br /&gt;
          move.l \buf,-(sp)&lt;br /&gt;
          move.l \count,-(sp)&lt;br /&gt;
          move.w \handle,-(sp)&lt;br /&gt;
          Gemdos $40,12&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Fclose handle&lt;br /&gt;
          move.w \handle,-(sp)&lt;br /&gt;
          Gemdos $3e,4&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Fdelete file&lt;br /&gt;
          move.l \file,-(sp)&lt;br /&gt;
          Gemdos $41,6&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Fseek offset, handle, mode&lt;br /&gt;
          move.w \mode,-(sp)&lt;br /&gt;
          move.w \handle,-(sp)&lt;br /&gt;
          move.l \offset,-(sp)&lt;br /&gt;
          Gemdos $42,10&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Fsetdta addr&lt;br /&gt;
          move.l \addr,-(sp)&lt;br /&gt;
          Gemdos $1a,6&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Ptermres count, retcode&lt;br /&gt;
          move.w \retcode,-(sp)&lt;br /&gt;
          move.l \count,-(sp)&lt;br /&gt;
          Gemdos $31,8&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Mshrink block, newsiz&lt;br /&gt;
          move.l \newsiz,-(sp)&lt;br /&gt;
          move.l \block,-(sp)&lt;br /&gt;
          clr.w -(sp)&lt;br /&gt;
          Gemdos $4a,12&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Malloc amount&lt;br /&gt;
          move.l \amount,-(sp)&lt;br /&gt;
          Gemdos $48,6&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Mfree addr&lt;br /&gt;
          move.l \addr,-(sp)&lt;br /&gt;
          Gemdos $49,6&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Pexec mode, p1, p2, p3&lt;br /&gt;
          move.l \p3,-(sp)&lt;br /&gt;
          move.l \p2,-(sp)&lt;br /&gt;
          move.l \p1,-(sp)&lt;br /&gt;
          move.w \mode,-(sp)&lt;br /&gt;
          Gemdos $4b,16&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Fsfirst fspec, attr&lt;br /&gt;
          move.w \attr,-(sp)&lt;br /&gt;
          move.l \fspec,-(sp)&lt;br /&gt;
          Gemdos $4e,8&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .macro Fsnext&lt;br /&gt;
          Gemdos $4f,2&lt;br /&gt;
          .endm&lt;br /&gt;
&lt;br /&gt;
          .subttl 'Structures'&lt;br /&gt;
;&lt;br /&gt;
; Basepage Format&lt;br /&gt;
;&lt;br /&gt;
          .ABS&lt;br /&gt;
Plowtpa:            ds.l 1&lt;br /&gt;
Phitpa:             ds.l 1&lt;br /&gt;
Ptbase:             ds.l 1&lt;br /&gt;
Ptlen:              ds.l 1&lt;br /&gt;
Pdbase:             ds.l 1&lt;br /&gt;
Pdlen:              ds.l 1&lt;br /&gt;
Pbbase:             ds.l 1&lt;br /&gt;
Pblen:              ds.l 1&lt;br /&gt;
Pxdta:              ds.l 1&lt;br /&gt;
Pparent:            ds.l 1&lt;br /&gt;
;&lt;br /&gt;
; Searchfirst/Searchnext DTA structure&lt;br /&gt;
;&lt;br /&gt;
          .ABS&lt;br /&gt;
                    ds.b 21&lt;br /&gt;
DTA_attr:           ds.b 1&lt;br /&gt;
DTA_time:           ds.w 1&lt;br /&gt;
DTA_date:           ds.w 1&lt;br /&gt;
DTA_size:           ds.l 1&lt;br /&gt;
DTA_name:           ds.b 14&lt;br /&gt;
&lt;br /&gt;
          .TEXT&lt;br /&gt;
          .eject&lt;br /&gt;
          .list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Back to [[ASM_Tutorial]]&lt;br /&gt;
[[Category: ASSEMBLEUR 68000 sur ATARI ST Part 1 ]]&lt;/div&gt;</summary>
		<author><name>&gt;Zorro 2</name></author>
	</entry>
</feed>