Complete redesign of the CBM610 support.
Use wrappers to call the kernal in bank 15 instead of implementing kernal functionality within the cc65 libs (eats performance but is much smaller and simpler). Improved startup/shutdown code allows a return to the system bank without calling the BASIC cold start vector. git-svn-id: svn://svn.cc65.org/cc65/trunk@2793 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -12,178 +12,31 @@
|
||||
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
|
||||
|
||||
FNAM_ADR := $90 ; File name address
|
||||
FNAM_SEG := $92 ; Unused
|
||||
SaveAdrLow = $93
|
||||
SaveAdrHi = $94
|
||||
SaveAdrSeg = $95
|
||||
EndAdrLow = $96
|
||||
EndAdrHi = $97
|
||||
EndAdrSeg = $98
|
||||
StartAdrLow = $99
|
||||
StartAdrHi = $9A
|
||||
StartAdrSeg = $9B
|
||||
ST := $9C ; Status
|
||||
FNAM_LEN := $9D
|
||||
LFN := $9E
|
||||
DEVNUM := $9F
|
||||
SECADR := $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
|
||||
;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
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
@@ -274,11 +127,12 @@ Env3 = $1C
|
||||
|
||||
; acia = $dd00
|
||||
|
||||
ADataReg = $00
|
||||
AStatusReg = $01
|
||||
ACmdReg = $02
|
||||
ACtrlReg = $03
|
||||
|
||||
.struct ACIA
|
||||
DATA .byte
|
||||
STATUS .byte
|
||||
CMD .byte
|
||||
CTRL .BYTE
|
||||
.endstruct
|
||||
|
||||
|
||||
; I/O $de00: Triport #1 6525
|
||||
|
||||
Reference in New Issue
Block a user