;
; System equates
;
; OS EQUATES
; ----------
; 
; Syntax:
; Use '=' for addresses
; and '#' for values
; 
; IO EQUATES
; 
ICHID    = $0000
ICDNO    = $0001
ICCOM    = $0002
ICSTA    = $0003
ICBAL    = $0004
ICBAH    = $0005
ICPTL    = $0006
ICPTH    = $0007
ICBLL    = $0008
ICBLH    = $0009
ICAX1    = $000A
ICAX2    = $000B
ICAX3    = $000C
ICAX4    = $000D
ICAX5    = $000E
ICAX6    = $000F
; 
; DISPLAY LIST EQUATES
; 
ADLI     = $0080
AVB      = $0040
ALMS     = $0040
AVSCR    = $0020
AHSCR    = $0010
AJMP     = $0001
AEMPTY1  = $0000
AEMPTY2  = $0010
AEMPTY3  = $0020
AEMPTY4  = $0030
AEMPTY5  = $0040
AEMPTY6  = $0050
AEMPTY7  = $0060
AEMPTY8  = $0070
; 
; OS VARIABLES FOR XL/XE
; 
; PAGE 0
; 
NGFLAG   = $0001
CASINI   = $0002
RAMLO    = $0004
TRAMSZ   = $0006
CMCMD    = $0007
WARMST   = $0008
BOOT     = $0009
DOSVEC   = $000A
DOSINI   = $000C
APPMHI   = $000E
POKMSK   = $0010
BRKKEY   = $0011
RTCLOK   = $0012
BUFADR   = $0015
ICCOMT   = $0017
DSKFMS   = $0018
DSKUTL   = $001A
ABUFPT   = $001C
ICHIDZ   = $0020
ICDNOZ   = $0021
ICCOMZ   = $0022
ICSTAZ   = $0023
ICBALZ   = $0024
ICBAHZ   = $0025
ICPTLZ   = $0026
ICPTHZ   = $0027
ICBLLZ   = $0028
ICBLHZ   = $0029
ICAX1Z   = $002A
ICAX2Z   = $002B
ICAX3Z   = $002C
ICAX4Z   = $002D
ICAX5Z   = $002E
ICAX6Z   = $002F
STATUS   = $0030
CHKSUM   = $0031
BUFRLO   = $0032
BUFRHI   = $0033
BFENLO   = $0034
BFENHI   = $0035
LTEMP    = $0036
BUFRFL   = $0038
RECVDN   = $0039
XMTDON   = $003A
CHKSNT   = $003B
NOCKSM   = $003C
BPTR     = $003D
FTYPE    = $003E
FEOF     = $003F
FREQ     = $0040
SOUNDR   = $0041
CRITIC   = $0042
FMSZPG   = $0043
ZCHAIN   = $004A
DSTAT    = $004C
ATRACT   = $004D
DRKMSK   = $004E
COLRSH   = $004F
TEMP     = $0050
HOLD1    = $0051
LMARGN   = $0052
RMARGN   = $0053
ROWCRS   = $0054
COLCRS   = $0055
DINDEX   = $0057
SAVMSC   = $0058
OLDROW   = $005A
OLDCOL   = $005B
OLDCHR   = $005D
OLDADR   = $005E
FKDEF    = $0060
PALNTS   = $0062
LOGCOL   = $0063
ADRESS   = $0064
MLTTMP   = $0066
SAVADR   = $0068
RAMTOP   = $006A
BUFCNT   = $006B
BUFSTR   = $006C
BITMSK   = $006E
SHFAMT   = $006F
ROWAC    = $0070
COLAC    = $0072
ENDPT    = $0074
DELTAR   = $0076
DELTAC   = $0077
KEYDEF   = $0079
SWPFLG   = $007B
HOLDCH   = $007C
INSDAT   = $007D
COUNTR   = $007E
LOMEM    = $0080
VNTP     = $0082
VNTD     = $0084
VVTP     = $0086
STMTAB   = $0088
STMCUR   = $008A
STARP    = $008C
RUNSTK   = $008E
TOPSTK   = $0090
MEOLFLG  = $0092
POKADR   = $0095
DATAD    = $00B6
DATALN   = $00B7
STOPLN   = $00BA
SAVCUR   = $00BE
IOCMD    = $00C0
IODVC    = $00C1
PROMPT   = $00C2
ERRSAVE  = $00C3
COLOUR   = $00C8
PTABW    = $00C9
LOADFLG  = $00CA
FR0      = $00D4
FRE      = $00DA
FR1      = $00E0
FR2      = $00E6
FRX      = $00EC
EEXP     = $00ED
NSIGN    = $00EE
ESIGN    = $00EF
FCHRFLG  = $00F0
DIGRT    = $00F1
CIX      = $00F2
INBUFF   = $00F3
ZTEMP1   = $00F5
ZTEMP4   = $00F7
ZTEMP3   = $00F9
RADFLG   = $00FB
FLPTR    = $00FC
FPTR2    = $00FE
; 
; PAGE 2
; 
VDSLST   = $0200
VPRCED   = $0202
VINTER   = $0204
VBREAK   = $0206
VKEYBD   = $0208
VSERIN   = $020A
VSEROR   = $020C
VSEROC   = $020E
VTIMR1   = $0210
VTIMR2   = $0212
VTIMR4   = $0214
VIMIRQ   = $0216
CDTMV1   = $0218
CDTMV2   = $021A
CDTMV3   = $021C
CDTMV4   = $021E
CDTMV5   = $0220
VVBLKI   = $0222
VVBLKD   = $0224
CDTMA1   = $0226
CDTMA2   = $0228
CDTMF3   = $022A
SRTIMR   = $022B
CDTMF4   = $022C
INTEMP   = $022D
CDTMF5   = $022E
SDMCTL   = $022F
SDLSTL   = $0230
SDLSTH   = $0231
SSKCTL   = $0232
SPARE    = $0233
LPENH    = $0234
LPENV    = $0235
BRKKY    = $0236
VPIRQ    = $0238
CDEVIC   = $023A
CCOMND   = $023B
CAUX1    = $023C
CAUX2    = $023D
TMPSIO   = $023E
ERRFLG   = $023F
DFLAGS   = $0240
DBSECT   = $0241
BOOTAD   = $0242
COLDST   = $0244
RECLEN   = $0245
DSKTIM   = $0246
PDVMSK   = $0247
SHPDVS   = $0248
PDMSK    = $0249
RELADR   = $024A
PPTMPA   = $024C
PPTMPX   = $024D
CHSALT   = $026B
VSFLAG   = $026C
KEYDIS   = $026D
FINE     = $026E
GPRIOR   = $026F
PADDL0   = $0270
PADDL1   = $0271
PADDL2   = $0272
PADDL3   = $0273
PADDL4   = $0274
PADDL5   = $0275
PADDL6   = $0276
PADDL7   = $0277
STICK0   = $0278
STICK1   = $0279
STICK2   = $027A
STICK3   = $027B
PTRIG0   = $027C
PTRIG1   = $027D
PTRIG2   = $027E
PTRIG3   = $027F
PTRIG4   = $0280
PTRIG5   = $0281
PTRIG6   = $0282
PTRIG7   = $0283
STRIG0   = $0284
STRIG1   = $0285
STRIG2   = $0286
STRIG3   = $0287
HIBYTE   = $0288
WMODE    = $0289
BLIM     = $028A
IMASK    = $028B
JVECK    = $028C
NEWADR   = $028E
TXTROW   = $0290
TXTCOL   = $0291
TINDEX   = $0293
TXTMSC   = $0294
TXTOLD   = $0296
CRETRY   = $029C
HOLD3    = $029D
SUBTMP   = $029E
HOLD2    = $029F
DMASK    = $02A0
TMPLBT   = $02A1
ESCFLG   = $02A2
TABMAP   = $02A3
LOGMAP   = $02B2
INVFLG   = $02B6
FILFLG   = $02B7
TMPROW   = $02B8
TMPCOL   = $02B9
SCRFLG   = $02BB
HOLD4    = $02BC
DRETRY   = $02BD
SHFLOC   = $02BE
BOTSCR   = $02BF
PCOLR0   = $02C0
PCOLR1   = $02C1
PCOLR2   = $02C2
PCOLR3   = $02C3
COLOR0   = $02C4
COLOR1   = $02C5
COLOR2   = $02C6
COLOR3   = $02C7
COLOR4   = $02C8
RUNADR   = $02C9
HIUSED   = $02CB
ZHIUSE   = $02CD
GBYTEA   = $02CF
LOADAD   = $02D1
ZLOADA   = $02D3
DSCTLN   = $02D5
ACMISR   = $02D7
KRPDER   = $02D9
KEYREP   = $02DA
NOCLIK   = $02DB
HELPFG   = $02DC
DMASAV   = $02DD
PBPNT    = $02DE
PBUFSZ   = $02DF
RUNAD    = $02E0
INITAD   = $02E2
RAMSIZ   = $02E4
MEMTOP   = $02E5
MEMLO    = $02E7
HNDLOD   = $02E9
DVSTAT   = $02EA
CBAUDL   = $02EE
CBAUDH   = $02EF
CRSINH   = $02F0
KEYDEL   = $02F1
CH1      = $02F2
CHACT    = $02F3
CHBAS    = $02F4
NEWROW   = $02F5
NEWCOL   = $02F6
ROWINC   = $02F8
COLINC   = $02F9
CHAR     = $02FA
ATACHR   = $02FB
CH       = $02FC
FILDAT   = $02FD
DSPFLG   = $02FE
SSFLAG   = $02FF
; 
; PAGE 3
; 
DDEVIC   = $0300
DUNIT    = $0301
DCOMND   = $0302
DSTATS   = $0303
DBUFLO   = $0304
DBUFHI   = $0305
DTIMLO   = $0306
DUNUSE   = $0307
DBYTLO   = $0308
DBYTHI   = $0309
DAUX1    = $030A
DAUX2    = $030B
TIMER1   = $030C
ADDCOR   = $030E
CASFLG   = $030F
TIMER2   = $0310
TEMP1    = $0312
TEMP2    = $0314
TEMP3    = $0315
SAVIO    = $0316
TIMFLG   = $0317
STACKP   = $0318
TSTAT    = $0319
HATABS   = $031A
PUPBT1   = $033D
PUPBT2   = $033E
PUPBT3   = $033F
IOCB0    = $0340
IOCB1    = $0350
IOCB2    = $0360
IOCB3    = $0370
IOCB4    = $0380
IOCB5    = $0390
IOCB6    = $03A0
IOCB7    = $03B0
PRNBUF   = $03C0
SUPERF   = $03E8
CKEY     = $03E9
CASSBT   = $03EA
CARTCK   = $03EB
DERRF    = $03EC
ACMVAR   = $03ED
BASICF   = $03F8
MINTLK   = $03F9
GINTLK   = $03FA
CHLINK   = $03FB
CASBUF   = $03FD
; 
; HARDWARE REGISTERS
; 
; GTIA
; 
HPOSP0   = $D000
HPOSP1   = $D001
HPOSP2   = $D002
HPOSP3   = $D003
HPOSM0   = $D004
HPOSM1   = $D005
HPOSM2   = $D006
HPOSM3   = $D007
SIZEP0   = $D008
SIZEP1   = $D009
SIZEP2   = $D00A
SIZEP3   = $D00B
SIZEM    = $D00C
GRAFP0   = $D00D
GRAFP1   = $D00E
GRAFP2   = $D00F
GRAFP3   = $D010
GRAFM    = $D011
COLPM0   = $D012
COLPM1   = $D013
COLPM2   = $D014
COLPM3   = $D015
COLPF0   = $D016
COLPF1   = $D017
COLPF2   = $D018
COLPF3   = $D019
COLBK    = $D01A
PRIOR    = $D01B
VDELAY   = $D01C
GRACTL   = $D01D
HITCLR   = $D01E
CONSOL   = $D01F
; 
; POKEY
; 
AUDF1    = $D200
AUDC1    = $D201
AUDF2    = $D202
AUDC2    = $D203
AUDF3    = $D204
AUDC3    = $D205
AUDF4    = $D206
AUDC4    = $D207
AUDCTL   = $D208
STIMER   = $D209
SKREST   = $D20A
POTGO    = $D20B
SEROUT   = $D20D
IRQEN    = $D20E
SKCTL    = $D20F
; 
; PIA
; 
PORTA    = $D300
PORTB    = $D301
PACTL    = $D302
PBCTL    = $D303
; 
; ANTIC
; 
DMACLT   = $D400
CHACTL   = $D401
DLISTL   = $D402
DLISTH   = $D403
HSCROL   = $D404
VSCROL   = $D405
PMBASE   = $D407
CHBASE   = $D409
WSYNC    = $D40A
VCOUNT   = $D40B
PENH     = $D40C
PENV     = $D40D
NMIEN    = $D40E
NMIRES   = $D40F
; 
; FLOATING POINT ROUTINES
; 
AFP      = $D800
FASC     = $D8E6
IFP      = $D9AA
FPI      = $D9D2
ZFR0     = $DA44
ZF1      = $DA46
FSUB     = $DA60
FADD     = $DA66
FMUL     = $DADB
FDIV     = $DB28
PLYEVL   = $DD40
FLD0R    = $DD89
FLD0P    = $DD8D
FLD1R    = $DD98
FLD1P    = $DD9C
FSTOR    = $DDA7
FSTOP    = $DDAB
FMOVE    = $DDB6
EXP      = $DDC0
EXP10    = $DDCC
LOG      = $DECD
LOG10    = $DED1
; 
; ROM VECTORS
; 
DSKINV   = $E453
CIOV     = $E456
SIOV     = $E459
SETVBV   = $E45C
SYSVBV   = $E45F
XITVBV   = $E462
SIOINV   = $E465
SENDEV   = $E468
INTINV   = $E46B
CIOINV   = $E46E
SELFSV   = $E471
WARMSV   = $E474
COLDSV   = $E477
RBLOKV   = $E47A
CSOPIV   = $E47D
PUPDIV   = $E480
SELFTSV  = $E483
PENTV    = $E486
PHUNLV   = $E489
PHINIV   = $E48C
GPDVV    = $E48F
;
; Code equates
;
L0404    = $0404
L4F4D    = $4F4D
L4F4F    = $4F4F
L8400    = $8400
LB022    = $B022
LB065    = $B065
LB0B7    = $B0B7
LB137    = $B137
LB14C    = $B14C
LBC20    = $BC20
LBEEA    = $BEEA
;
; Start of code
;
         *= $B000
;
         LDY #$00
         LDX #$16
LB004    LDA #$00
         STA COUNTR+1,X
         LDA LB0E4,Y
         STA LB0F9,X
         EOR #$FF
         ADC #$14
         STA LB137,Y
         STA LB14C,X
         INY
         DEX
         BNE LB004
         LDY #$0F
LB01E    LDA #$4F
         STA LBC20,X
         INX
         BNE LB01E
         INC LB022
         DEY
         BNE LB01E
         STA GPRIOR
         INY
         STY VNTP
         INY
LB033    LDA LB0B4,Y
         STA LBEEA,Y
         DEY
         BPL LB033
         INY
LB03D    LDA LOMEM
         STA L8400,Y
         LDA LOMEM+1
         ADC #$5B
         STA LOMEM+1
         BCC LB050
         LDA LOMEM
         ADC #$10
         STA LOMEM
LB050    INY
         BNE LB03D
LB053    LDA #$31
         STA VNTP+1
LB057    LDA VCOUNT
         BNE LB057
         LDY #$28
LB05E    STA L4F4F,Y
         DEY
         BPL LB05E
         LDY #$28
         LDA L8400,Y
         STA LOMEM
         LDA LB0E4,Y
         TAX
LB06F    LDA LOMEM
         STA L4F4D,X
         INX
         TXA
         CMP LB0B7,Y
         BNE LB06F
LB07B    LDA LOMEM
         EOR #$FF
         STA L4F4D,X
         INX
         TXA
         CMP LB137,Y
         BNE LB07B
         DEC LB065
         BNE LB093
         LDA #$28
         STA LB065
LB093    LDA VNTD
         ADC #$80
         STA VNTD
         BCC LB0A8
         LDY #$00
LB09D    LDA LB0B7,Y
         ADC VNTP
         STA LB0B7,Y
         INY
         BNE LB09D
LB0A8    DEC VNTP+1
         BNE LB057
         LDA VNTP
         EOR #$FF
         STA VNTP
         BNE LB053
LB0B4    EOR (ICHIDZ,X)
         LDY L0404,X
         .SBYTE "$$%%%%&&&'''"
         .SBYTE "((()))**+++,"
         .SBYTE ",,---...////"
         .SBYTE "0001111"
LB0E4    .SBYTE "####"
         .BYTE $02,$02,$02,$02
         .BYTE $02,$02
         .SBYTE "!!!!!!!!!!!"
LB0F9    .SBYTE "!"
;
         .END
