]> git.sur5r.net Git - cc65/blobdiff - libsrc/cbm610/cbm610.inc
added sleep() implementation
[cc65] / libsrc / cbm610 / cbm610.inc
index a7430ab959fb3fbae628958234232d35384e37d4..942c6bf846285c7ad6d2345ab338b89e0f0b9f00 100644 (file)
 ;
-; CBM610 generic definitions.
+; Zeropage and I/O definitions for the CBM 610
 ;
+; Taken from a kernal disassembly done by myself in 1987.
+;
+; Ullrich von Bassewitz, 28.09.1998
+
+
+; ---------------------------------------------------------------------------
+; Zeropage stuff
+
+ExecReg                = $0000
+IndReg         = $0001
+
+; Up to $20 and $60-8F used by runtime and fixed values
+; -----------------------------------
+
+KbdScanBuf             = $20           ; Intermediate for keyboard scan
+; RS232 stuff
+RecvHead       = $21           ; Head of receive buffer
+RecvTail       = $22           ; Tail of receive buffer
+RecvFreeCnt    = $23           ; Number of bytes in receive buffer
+SendHead       = $24           ; Head of send buffer
+SendTail       = $25           ; Tail of send buffer
+SendFreeCnt    = $26           ; Number of bytes free in send buffer
+
+FileNameAdrLo          = $90
+FileNameAdrHi          = $91
+FileNameAdrSeg         = $92
+SaveAdrLow             = $93
+SaveAdrHi              = $94
+SaveAdrSeg             = $95
+EndAdrLow              = $96
+EndAdrHi               = $97
+EndAdrSeg              = $98
+StartAdrLow            = $99
+StartAdrHi             = $9A
+StartAdrSeg            = $9B
+Status                 = $9C
+FileNameLen            = $9D
+LogicalAdr             = $9E
+FirstAdr               = $9F
+SecondAdr              = $A0
+DefInpDev              = $A1
+DefOutDev              = $A2
+TapeBufPtr             = $A3
+TapeBufPtrSeg          = $A5
+rs232BufPtr            = $A6
+rs232BufPtrSeg         = $A8
+StopKeyFlag            = $A9
+CTemp                  = $AA
+snsw1                  = $AB
+SegChgPtr              = $AC
+PChighSave             = $AE
+PClowSave              = $AF
+SRSave                 = $B0
+ACSave                 = $B1
+XRSave                 = $B2
+YRSave                 = $B3
+SPSave                 = $B4
+IndSegSave             = $B5
+IRQSaveHi              = $B7
+IRQSaveLo              = $B8
+Adr1                   = $B9
+Adr2                   = $BB
+MoniCntr               = $BD
+MoniTmp                = $BE
+MoniDevNr              = $BF
+PgmKeyBuf              = $C0
+PgmKeyPtr              = $C2
+sedsal                 = $C4
+sedeal                 = $C6
+CharPtr                = $C8
+CURS_Y                 = $CA
+CURS_X                 = $CB
+GrafMode               = $CC
+LastIndex              = $CD
+LastLine               = $CE
+LastCol                = $CF
+crsw                   = $D0
+KeyIndex               = $D1
+QuoteSw                = $D2
+Insrt                  = $D3
+Config                 = $D4
+LastLinePos            = $D5
+PgmKeyIndex            = $D6
+RepeatCount            = $D7
+RepeatDelay            = $D8
+sedt1                  = $D9           ; Temp
+sedt2                  = $DA           ; Temp, frequently used
+PrtData                = $DB
+ScreenTop              = $DC
+ScreenBot              = $DD
+ScreenLeft             = $DE
+ScreenRight            = $DF
+ModKey                 = $E0
+NorKey                 = $E1
+BitTable               = $E2
+
+
+; ---------------------------------------------------------------------------
+; Page 3 variables
+
+;
+; system ram vectors
+;
+
+IRQVec              = $0300
+BRKVec              = $0302
+NMIVec              = $0304
+openVec                     = $0306
+closeVec            = $0308
+chkinVec            = $030A
+ckoutVec            = $030C
+clrchVec            = $030E
+basinVec            = $0310
+bsoutVec            = $0312
+stopVec                     = $0314
+getinVec            = $0316
+clallVec            = $0318
+loadVec                     = $031A
+saveVec                     = $031C
+usrcmd              = $031E
+escvec              = $0320
+ctrlvec                     = $0322
+secndVec            = $0324
+tksaVec                     = $0326
+acptrVec            = $0328
+cioutVec            = $032A
+untlkVec            = $032C
+unlsnVec            = $032E
+listnVec            = $0330
+talkVec                     = $0332
+
+;
+;
+;
+
+LogicalAdrTable      = $0334
+FirstAdrTable       = $033E
+SecondAdrTable      = $0348
+SysMemBot           = $0352
+SysMemTop           = $0355
+UsrMemBot           = $0358
+UsrMemTop           = $035B
+TimOut              = $035E
+VerifyFlag          = $035F
+DevTabIndex         = $0360
+MsgFlag                     = $0361
+CassBufPtr          = $0362
+t1                  = $0363
+t2                  = $0364
+XSave               = $0365
+SaveX               = $0366
+SaveXt              = $0367
+temp                = $0368
+alarm               = $0369
+TapeVec                     = $036A
+LoadStAdr           = $036F
+CassMotFlag         = $0375
+m6551Ctrl           = $0376
+m6551Cmd            = $0377
+rs232status         = $037A
+dcddsr              = $037B
+rs232head           = $037C
+rs232tail           = $037D
+PgmKeyEnd           = $0380
+PgmKeySeg           = $0382
+PgmKeySize          = $0383
+RVS                 = $0397
+linetmp                     = $0398
+LastPrtChar         = $0399
+InsertFlag          = $039A
+ScrollFlag          = $039B
+FktTemp                     = $039C
+PgmKeyIdx           = $039D
+LogScrollFlag       = $039E
+BellMode            = $039F    ; Bell on/off 00 = an
+SegSave                     = $03A0
+TabStopTable        = $03A1    ; 80 bits for tabstops
+KeyBuf              = $03AB    ; Keyboard buffer
+FUNKEY_VEC                  = $03B5    ; Vector for function key handline
+FunKeyTmp           = $03B7
+sedt3               = $03B9
+MoniSegSave         = $03f0
+wstvec              = $03F8
+WstFlag                     = $03FA    ; Warm start flag
 
 
 ; ---------------------------------------------------------------------------
-; Vector and other locations
+; Screen size
 
-FUNKEY_VEC     = $03B5
+XSIZE           = 80
+YSIZE           = 25
 
 ; ---------------------------------------------------------------------------
-; I/O
+; I/O definitions
+
+
+; I/O  $d800: CRTC 6545
 
 CRTC           = $D800
 CRTC_ADDR      = $00
 CRTC_DATA      = $01
 
+
+; I/O  $da00: SID 6581
+
+;      sid             =       $da00
+
+Osc1           =       $00
+Osc2           =       $07
+Osc3           =       $0e
+
+FreqLo         =       $00
+FreqHi         =       $01
+PulseF         =       $02
+PulseC         =       $03
+OscCtl         =       $04
+AtkDcy         =       $05
+SusRel         =       $06
+
+FiCtlLo                =       $15
+FiCtlHi                =       $16
+Resonance      =       $17
+Volume         =       $18
+PotX           =       $19
+PotY           =       $1A
+Random         =       $1B
+Env3           =       $1C
+
+
+
+; I/O  $db00: CIA 6526 Inter Process Communication
+
+;      IPCcia          =       $db00
+
+PortA          =       $00
+PortB          =       $01
+DDRA           =       $02
+DDRB           =       $03
+TimALo         =       $04
+TimAHi         =       $05
+TimBLo         =       $06
+TimBHi         =       $07
+TOD10          =       $08
+TODsec         =       $09
+TODmin         =       $0A
+TODhour                =       $0B
+SerDataReg     =       $0C
+IntCtrReg      =       $0D
+CtrlA          =       $0E
+CtrlB          =       $0F
+
+
+
+; I/O  $dc00: CIA 6526
+
+;      cia             =       $dc00
+
+
+
+; I/O  $dd00: ACIA 6551
+
+;      acia            =       $dd00
+
+ADataReg       =       $00
+AStatusReg     =       $01
+ACmdReg                =       $02
+ACtrlReg       =       $03
+
+
+
+; I/O  $de00: Triport #1 6525
+
+;      tpi1            =       $de00
+
+tpiPortA       =       $00
+tpiPortB       =       $01
+tpiPortC       =       $02
+tpiIntLatch    =       $02
+tpiDDRA                =       $03
+tpiDDRB                =       $04
+tpiDDRC                =       $05
+tpiIntMask     =       $05
+tpiCtrlReg     =       $06
+tpiActIntReg   =       $07
+
+
+
+; I/O  $df00: Triport #2 6525
+
+;      tpi2            =       $df00
+
+