mirror of
https://github.com/cc65/cc65.git
synced 2025-02-06 12:31:12 +00:00
Combine the existing include files, move zp space out of crt0.s
git-svn-id: svn://svn.cc65.org/cc65/trunk@1290 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
9556117f0f
commit
3aadd7f62b
@ -7,7 +7,7 @@
|
||||
.export set_bank, sys_bank, restore_bank
|
||||
.importzp ptr1
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
.code
|
||||
|
||||
|
@ -9,8 +9,7 @@
|
||||
.export _brk_a, _brk_x, _brk_y, _brk_sr, _brk_pc
|
||||
.import _atexit
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "page3.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
|
||||
.bss
|
||||
|
340
libsrc/cbm510/cbm510.inc
Normal file
340
libsrc/cbm510/cbm510.inc
Normal file
@ -0,0 +1,340 @@
|
||||
;
|
||||
; Zero page variables and I/O definitions for the CBM 510
|
||||
;
|
||||
; Taken from a kernal disassembly done by myself in 2000/2001.
|
||||
;
|
||||
; Ullrich von Bassewitz, 13.09.2001
|
||||
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; 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
|
||||
SCREEN_PTR = $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
|
||||
CURS_FLAG = $E6 ; 1 = no cursor
|
||||
CURS_BLINK = $E7 ; cursor blink counter
|
||||
CRAM_PTR = $E8
|
||||
TempColor = $EA
|
||||
CURS_STATE = $EB ; Cursor blink state
|
||||
CHARCOLOR = $EC
|
||||
CURS_COLOR = $ED ; Color behind cursor
|
||||
OutCharTmp = $EE
|
||||
ScreenSeq = $EF ; Segment of video RAM
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; 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
|
||||
rvsFlag = $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
|
||||
funvec = $03B5 ; Vector for function key handline
|
||||
FunKeyTmp = $03B7
|
||||
sedt3 = $03B9
|
||||
MoniSegSave = $03f0
|
||||
wstvec = $03F8
|
||||
WstFlag = $03FA ; Warm start flag
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; I/O Definitions
|
||||
|
||||
; I/O $d800: VIC
|
||||
|
||||
VIC_SPR0_X = $00
|
||||
VIC_SPR0_Y = $01
|
||||
VIC_SPR1_X = $02
|
||||
VIC_SPR1_Y = $03
|
||||
VIC_SPR2_X = $04
|
||||
VIC_SPR2_Y = $05
|
||||
VIC_SPR3_X = $06
|
||||
VIC_SPR3_Y = $07
|
||||
VIC_SPR4_X = $08
|
||||
VIC_SPR4_Y = $09
|
||||
VIC_SPR5_X = $0A
|
||||
VIC_SPR5_Y = $0B
|
||||
VIC_SPR6_X = $0C
|
||||
VIC_SPR6_Y = $0D
|
||||
VIC_SPR7_X = $0E
|
||||
VIC_SPR7_Y = $0F
|
||||
VIC_SPR_HI_X = $10
|
||||
VIC_SPR_ENA = $15
|
||||
VIC_SPR_EXP_X = $17
|
||||
VIC_SPR_EXP_Y = $1D
|
||||
VIC_SPR_MCOLOR = $1C
|
||||
VIC_SPR_BG_PRIO = $1B
|
||||
|
||||
VIC_SPR_MCOLOR0 = $25
|
||||
VIC_SPR_MCOLOR1 = $26
|
||||
|
||||
VIC_SPR0_COLOR = $27
|
||||
VIC_SPR1_COLOR = $28
|
||||
VIC_SPR2_COLOR = $29
|
||||
VIC_SPR3_COLOR = $2A
|
||||
VIC_SPR4_COLOR = $2B
|
||||
VIC_SPR5_COLOR = $2C
|
||||
VIC_SPR6_COLOR = $2D
|
||||
VIC_SPR7_COLOR = $2E
|
||||
|
||||
VIC_CTRL1 = $11
|
||||
VIC_CTRL2 = $16
|
||||
|
||||
VIC_HLINE = $12
|
||||
|
||||
VIC_VIDEO_ADR = $18
|
||||
|
||||
VIC_IRR = $19 ; Interrupt request register
|
||||
VIC_IMR = $1A ; Interrupt mask register
|
||||
|
||||
VIC_BORDERCOLOR = $20
|
||||
VIC_BG_COLOR0 = $21
|
||||
VIC_BG_COLOR1 = $22
|
||||
VIC_BG_COLOR2 = $23
|
||||
VIC_BG_COLOR3 = $24
|
||||
|
||||
|
||||
|
||||
; I/O $da00: SID 6581
|
||||
|
||||
SID_S1Lo = $00
|
||||
SID_S1Hi = $01
|
||||
SID_PB1Lo = $02
|
||||
SID_PB1Hi = $03
|
||||
SID_Ctl1 = $04
|
||||
SID_AD1 = $05
|
||||
SID_SUR1 = $06
|
||||
|
||||
SID_S2Lo = $07
|
||||
SID_S2Hi = $08
|
||||
SID_PB2Lo = $09
|
||||
SID_PB2Hi = $0A
|
||||
SID_Ctl2 = $0B
|
||||
SID_AD2 = $0C
|
||||
SID_SUR2 = $0D
|
||||
|
||||
SID_S3Lo = $0E
|
||||
SID_S3Hi = $0F
|
||||
SID_PB3Lo = $10
|
||||
SID_PB3Hi = $11
|
||||
SID_Ctl3 = $12
|
||||
SID_AD3 = $13
|
||||
SID_SUR3 = $14
|
||||
|
||||
SID_FltLo = $15
|
||||
SID_FltHi = $16
|
||||
SID_FltCtl = $17
|
||||
SID_Amp = $18
|
||||
SID_ADConv1 = $19
|
||||
SID_ADConv2 = $1A
|
||||
SID_Noise = $1B
|
||||
SID_Read3 = $1C
|
||||
|
||||
|
||||
; I/O $db00: CIA 6526 Inter Process Communication
|
||||
; I/O $dc00: CIA 6526
|
||||
|
||||
CIA_PRA = $00
|
||||
CIA_PRB = $01
|
||||
CIA_DDRA = $02
|
||||
CIA_DDRB = $03
|
||||
CIA_ICR = $0D
|
||||
CIA_CRA = $0E
|
||||
CIA_CRB = $0F
|
||||
|
||||
|
||||
; 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
|
||||
|
||||
|
||||
|
||||
; Out video memory address
|
||||
|
||||
COLOR_RAM = $D400 ; System bank
|
||||
|
@ -8,8 +8,7 @@
|
||||
.condes k_blncur, 2
|
||||
.import cursor
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "page3.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
@ -91,7 +90,7 @@ L4: lda KeyBuf+1,x ; Move up the remaining chars
|
||||
|
||||
@L9: sty CURS_FLAG ; Cursor on (Y = 0)
|
||||
rts
|
||||
|
||||
|
||||
.endproc
|
||||
|
||||
|
||||
|
@ -5,8 +5,7 @@
|
||||
.export _clrscr
|
||||
.import plot
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "io.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; void __fastcall__ clrscr (void);
|
||||
@ -30,7 +29,7 @@
|
||||
|
||||
|
||||
.proc clearpage
|
||||
|
||||
|
||||
txa
|
||||
pha ; Save count
|
||||
|
||||
|
@ -6,8 +6,7 @@
|
||||
.import sys_bank, restore_bank
|
||||
.importzp vic
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "io.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
|
@ -6,5 +6,5 @@
|
||||
|
||||
.exportzp CURS_X, CURS_Y
|
||||
|
||||
.include "zeropage.inc"
|
||||
|
||||
.include "cbm510.inc"
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
.import popa, _gotoxy
|
||||
.import xsize, revers
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm510.inc"
|
||||
.include "../cbm/cbm.inc"
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
@ -60,7 +60,7 @@ L3: sty CURS_X
|
||||
rts
|
||||
|
||||
newline:
|
||||
clc
|
||||
clc
|
||||
lda xsize
|
||||
adc SCREEN_PTR
|
||||
sta SCREEN_PTR
|
||||
|
@ -13,39 +13,9 @@
|
||||
.import k_irq, k_nmi, k_plot, k_udtim, k_scnkey
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "io.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; Define and export the ZP variables for the CBM510 runtime
|
||||
|
||||
.exportzp sp, sreg, regsave
|
||||
.exportzp ptr1, ptr2, ptr3, ptr4
|
||||
.exportzp tmp1, tmp2, tmp3, tmp4
|
||||
.exportzp regbank, zpspace
|
||||
.exportzp vic, sid, cia1, cia2, acia, tpi1, tpi2
|
||||
.exportzp ktab1, ktab2, ktab3, ktab4, time, RecvBuf, SendBuf
|
||||
|
||||
.zeropage
|
||||
|
||||
zpstart = *
|
||||
sp: .res 2 ; Stack pointer
|
||||
sreg: .res 2 ; Secondary register/high 16 bit for longs
|
||||
regsave: .res 2 ; slot to save/restore (E)AX into
|
||||
ptr1: .res 2
|
||||
ptr2: .res 2
|
||||
ptr3: .res 2
|
||||
ptr4: .res 2
|
||||
tmp1: .res 1
|
||||
tmp2: .res 1
|
||||
tmp3: .res 1
|
||||
tmp4: .res 1
|
||||
regbank: .res 6 ; 6 byte register bank
|
||||
|
||||
zpspace = * - zpstart ; Zero page space allocated
|
||||
|
||||
.code
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; BASIC header and a small BASIC program. Since it is not possible to start
|
||||
; programs in other banks using SYS, the BASIC program will write a small
|
||||
@ -75,6 +45,8 @@ zpspace = * - zpstart ; Zero page space allocated
|
||||
; that is overwritten later.
|
||||
;
|
||||
|
||||
.code
|
||||
|
||||
; To make things more simple, make the code of this module absolute.
|
||||
|
||||
.org $0001
|
||||
|
@ -1,149 +0,0 @@
|
||||
;
|
||||
; I/O definitions for the CBM 510
|
||||
;
|
||||
; Taken from a kernal disassembly done by myself in 2000/2001.
|
||||
;
|
||||
; Ullrich von Bassewitz, 13.09.2001
|
||||
|
||||
|
||||
; I/O $d800: VIC
|
||||
|
||||
VIC_SPR0_X = $00
|
||||
VIC_SPR0_Y = $01
|
||||
VIC_SPR1_X = $02
|
||||
VIC_SPR1_Y = $03
|
||||
VIC_SPR2_X = $04
|
||||
VIC_SPR2_Y = $05
|
||||
VIC_SPR3_X = $06
|
||||
VIC_SPR3_Y = $07
|
||||
VIC_SPR4_X = $08
|
||||
VIC_SPR4_Y = $09
|
||||
VIC_SPR5_X = $0A
|
||||
VIC_SPR5_Y = $0B
|
||||
VIC_SPR6_X = $0C
|
||||
VIC_SPR6_Y = $0D
|
||||
VIC_SPR7_X = $0E
|
||||
VIC_SPR7_Y = $0F
|
||||
VIC_SPR_HI_X = $10
|
||||
VIC_SPR_ENA = $15
|
||||
VIC_SPR_EXP_X = $17
|
||||
VIC_SPR_EXP_Y = $1D
|
||||
VIC_SPR_MCOLOR = $1C
|
||||
VIC_SPR_BG_PRIO = $1B
|
||||
|
||||
VIC_SPR_MCOLOR0 = $25
|
||||
VIC_SPR_MCOLOR1 = $26
|
||||
|
||||
VIC_SPR0_COLOR = $27
|
||||
VIC_SPR1_COLOR = $28
|
||||
VIC_SPR2_COLOR = $29
|
||||
VIC_SPR3_COLOR = $2A
|
||||
VIC_SPR4_COLOR = $2B
|
||||
VIC_SPR5_COLOR = $2C
|
||||
VIC_SPR6_COLOR = $2D
|
||||
VIC_SPR7_COLOR = $2E
|
||||
|
||||
VIC_CTRL1 = $11
|
||||
VIC_CTRL2 = $16
|
||||
|
||||
VIC_HLINE = $12
|
||||
|
||||
VIC_VIDEO_ADR = $18
|
||||
|
||||
VIC_IRR = $19 ; Interrupt request register
|
||||
VIC_IMR = $1A ; Interrupt mask register
|
||||
|
||||
VIC_BORDERCOLOR = $20
|
||||
VIC_BG_COLOR0 = $21
|
||||
VIC_BG_COLOR1 = $22
|
||||
VIC_BG_COLOR2 = $23
|
||||
VIC_BG_COLOR3 = $24
|
||||
|
||||
|
||||
|
||||
; I/O $da00: SID 6581
|
||||
|
||||
SID_S1Lo = $00
|
||||
SID_S1Hi = $01
|
||||
SID_PB1Lo = $02
|
||||
SID_PB1Hi = $03
|
||||
SID_Ctl1 = $04
|
||||
SID_AD1 = $05
|
||||
SID_SUR1 = $06
|
||||
|
||||
SID_S2Lo = $07
|
||||
SID_S2Hi = $08
|
||||
SID_PB2Lo = $09
|
||||
SID_PB2Hi = $0A
|
||||
SID_Ctl2 = $0B
|
||||
SID_AD2 = $0C
|
||||
SID_SUR2 = $0D
|
||||
|
||||
SID_S3Lo = $0E
|
||||
SID_S3Hi = $0F
|
||||
SID_PB3Lo = $10
|
||||
SID_PB3Hi = $11
|
||||
SID_Ctl3 = $12
|
||||
SID_AD3 = $13
|
||||
SID_SUR3 = $14
|
||||
|
||||
SID_FltLo = $15
|
||||
SID_FltHi = $16
|
||||
SID_FltCtl = $17
|
||||
SID_Amp = $18
|
||||
SID_ADConv1 = $19
|
||||
SID_ADConv2 = $1A
|
||||
SID_Noise = $1B
|
||||
SID_Read3 = $1C
|
||||
|
||||
|
||||
; I/O $db00: CIA 6526 Inter Process Communication
|
||||
; I/O $dc00: CIA 6526
|
||||
|
||||
CIA_PRA = $00
|
||||
CIA_PRB = $01
|
||||
CIA_DDRA = $02
|
||||
CIA_DDRB = $03
|
||||
CIA_ICR = $0D
|
||||
CIA_CRA = $0E
|
||||
CIA_CRB = $0F
|
||||
|
||||
|
||||
; 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
|
||||
|
||||
|
||||
|
||||
; Out video memory address
|
||||
|
||||
COLOR_RAM = $D400 ; System bank
|
||||
|
@ -7,7 +7,7 @@
|
||||
.export _kbhit
|
||||
.import return0, return1
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
.proc _kbhit
|
||||
lda KeyIndex ; Get number of characters
|
||||
|
@ -10,9 +10,7 @@
|
||||
.import __IRQFUNC_TABLE__, __IRQFUNC_COUNT__
|
||||
.importzp tpi1
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "io.inc"
|
||||
.include "page3.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
|
||||
; -------------------------------------------------------------------------
|
||||
|
@ -8,8 +8,7 @@
|
||||
.import __VIDRAM_START__
|
||||
.importzp crtc
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "io.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
.macpack generic
|
||||
|
||||
|
@ -7,9 +7,7 @@
|
||||
.export k_scnkey
|
||||
.importzp tpi2, ktab1, ktab2, ktab3, ktab4
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "io.inc"
|
||||
.include "page3.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
|
||||
.proc k_scnkey
|
||||
|
@ -17,8 +17,7 @@
|
||||
.import popax, addysp1
|
||||
.importzp vic, sid, ptr1, sp
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "io.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
.macpack generic
|
||||
|
||||
|
@ -1,94 +0,0 @@
|
||||
;
|
||||
; Page 3 variables for the CBM 610
|
||||
;
|
||||
; Taken from a kernal disassembly done by myself in 1987.
|
||||
;
|
||||
; Ullrich von Bassewitz, 28.09.1998
|
||||
|
||||
|
||||
;
|
||||
; 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
|
||||
rvsFlag = $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
|
||||
funvec = $03B5 ; Vector for function key handline
|
||||
FunKeyTmp = $03B7
|
||||
sedt3 = $03B9
|
||||
MoniSegSave = $03f0
|
||||
wstvec = $03F8
|
||||
WstFlag = $03FA ; Warm start flag
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
.export _peekbsys, _peekwsys
|
||||
.importzp ptr1
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
|
@ -8,7 +8,7 @@
|
||||
.import popsreg
|
||||
.importzp sreg, tmp1
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
|
@ -8,7 +8,7 @@
|
||||
.import sys_bank, restore_bank
|
||||
.importzp cia2, tmp1
|
||||
|
||||
.include "io.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; unsigned __fastcall__ readjoy (unsigned char joy);
|
||||
|
@ -30,7 +30,7 @@
|
||||
.export _rs232_put, _rs232_pause, _rs232_unpause, _rs232_status
|
||||
.export k_rs232
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm510.inc"
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
|
@ -1,105 +0,0 @@
|
||||
;
|
||||
; Zero page variables for the CBM P500
|
||||
;
|
||||
; Taken from a kernal disassembly done by myself in 2000/2001.
|
||||
;
|
||||
; Ullrich von Bassewitz, 13.09.2001
|
||||
|
||||
|
||||
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
|
||||
SCREEN_PTR = $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
|
||||
CURS_FLAG = $E6 ; 1 = no cursor
|
||||
CURS_BLINK = $E7 ; cursor blink counter
|
||||
CRAM_PTR = $E8
|
||||
TempColor = $EA
|
||||
CURS_STATE = $EB ; Cursor blink state
|
||||
CHARCOLOR = $EC
|
||||
CURS_COLOR = $ED ; Color behind cursor
|
||||
OutCharTmp = $EE
|
||||
ScreenSeq = $EF ; Segment of video RAM
|
||||
|
@ -7,7 +7,7 @@
|
||||
.export set_bank, sys_bank, restore_bank
|
||||
.importzp ptr1
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm610.inc"
|
||||
|
||||
.code
|
||||
|
||||
|
@ -9,8 +9,7 @@
|
||||
.export _brk_a, _brk_x, _brk_y, _brk_sr, _brk_pc
|
||||
.import _atexit
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "page3.inc"
|
||||
.include "cbm610.inc"
|
||||
|
||||
|
||||
.bss
|
||||
|
@ -1,17 +1,289 @@
|
||||
;
|
||||
; 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
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; Vector and other locations
|
||||
; 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
|
||||
|
||||
FUNKEY_VEC = $03B5
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; I/O
|
||||
; 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
|
||||
rvsFlag = $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
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; 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
|
||||
|
||||
|
||||
|
@ -8,8 +8,7 @@
|
||||
.import plot, write_crtc
|
||||
.import cursor
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "page3.inc"
|
||||
.include "cbm610.inc"
|
||||
|
||||
|
||||
_cgetc: lda KeyIndex ; Get number of characters
|
||||
|
@ -7,7 +7,7 @@
|
||||
.export _clrscr
|
||||
.import plot
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm610.inc"
|
||||
|
||||
.proc _clrscr
|
||||
|
||||
|
@ -13,7 +13,6 @@
|
||||
.import xsize, revers
|
||||
|
||||
.include "cbm610.inc"
|
||||
.include "zeropage.inc"
|
||||
.include "../cbm/cbm.inc"
|
||||
|
||||
_cputcxy:
|
||||
@ -71,7 +70,7 @@ L4: inc CURS_Y
|
||||
|
||||
; Handle character if high bit set
|
||||
|
||||
L10: and #$7F
|
||||
L10: and #$7F
|
||||
cmp #$7E ; PI?
|
||||
bne L11
|
||||
lda #$5E ; Load screen code for PI
|
||||
|
@ -12,39 +12,9 @@
|
||||
.import k_irq, k_nmi, k_plot, k_udtim, k_scnkey
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "io.inc"
|
||||
.include "cbm610.inc"
|
||||
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; Define and export the ZP variables for the CBM610 runtime
|
||||
|
||||
.exportzp sp, sreg, regsave
|
||||
.exportzp ptr1, ptr2, ptr3, ptr4
|
||||
.exportzp tmp1, tmp2, tmp3, tmp4
|
||||
.exportzp regbank, zpspace
|
||||
.exportzp crtc, sid, IPCcia, cia, acia, tpi1, tpi2
|
||||
.exportzp ktab1, ktab2, ktab3, ktab4, time, RecvBuf, SendBuf
|
||||
|
||||
.zeropage
|
||||
|
||||
zpstart = *
|
||||
sp: .res 2 ; Stack pointer
|
||||
sreg: .res 2 ; Secondary register/high 16 bit for longs
|
||||
regsave: .res 2 ; slot to save/restore (E)AX into
|
||||
ptr1: .res 2
|
||||
ptr2: .res 2
|
||||
ptr3: .res 2
|
||||
ptr4: .res 2
|
||||
tmp1: .res 1
|
||||
tmp2: .res 1
|
||||
tmp3: .res 1
|
||||
tmp4: .res 1
|
||||
regbank: .res 6 ; 6 byte register bank
|
||||
|
||||
zpspace = * - zpstart ; Zero page space allocated
|
||||
|
||||
.code
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; BASIC header and a small BASIC program. Since it is not possible to start
|
||||
; programs in other banks using SYS, the BASIC program will write a small
|
||||
@ -74,6 +44,8 @@ zpspace = * - zpstart ; Zero page space allocated
|
||||
; that is overwritten later.
|
||||
;
|
||||
|
||||
.code
|
||||
|
||||
; To make things more simple, make the code of this module absolute.
|
||||
|
||||
.org $0001
|
||||
@ -415,4 +387,4 @@ k_settim:
|
||||
spsave: .res 1
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -8,7 +8,6 @@
|
||||
.importzp crtc
|
||||
|
||||
.include "cbm610.inc"
|
||||
.include "zeropage.inc"
|
||||
|
||||
|
||||
; Write a value to the CRTC. The index is in Y, the value in A
|
||||
|
@ -1,108 +0,0 @@
|
||||
;
|
||||
; I/O definitions for the CBM 610
|
||||
;
|
||||
; Taken from a kernal disassembly done by myself in 1987.
|
||||
;
|
||||
; Ullrich von Bassewitz, 28.09.1998
|
||||
|
||||
|
||||
; I/O $d800: CRTC 6545
|
||||
|
||||
; crtc = $d800
|
||||
|
||||
CAdrReg = $00
|
||||
CDataReg = $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
|
||||
|
||||
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
.export _kbhit
|
||||
.import return0, return1
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm610.inc"
|
||||
|
||||
.proc _kbhit
|
||||
lda KeyIndex ; Get number of characters
|
||||
|
@ -8,9 +8,7 @@
|
||||
.import k_scnkey, k_udtim, k_rs232
|
||||
.importzp tpi1
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "io.inc"
|
||||
.include "page3.inc"
|
||||
.include "cbm610.inc"
|
||||
|
||||
|
||||
; -------------------------------------------------------------------------
|
||||
|
@ -7,7 +7,7 @@
|
||||
.export k_plot
|
||||
.importzp crtc
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm610.inc"
|
||||
|
||||
|
||||
.proc k_plot
|
||||
|
@ -7,9 +7,7 @@
|
||||
.export k_scnkey
|
||||
.importzp tpi2, ktab1, ktab2, ktab3, ktab4
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "io.inc"
|
||||
.include "page3.inc"
|
||||
.include "cbm610.inc"
|
||||
|
||||
|
||||
.proc k_scnkey
|
||||
|
@ -1,94 +0,0 @@
|
||||
;
|
||||
; Page 3 variables for the CBM 610
|
||||
;
|
||||
; Taken from a kernal disassembly done by myself in 1987.
|
||||
;
|
||||
; Ullrich von Bassewitz, 28.09.1998
|
||||
|
||||
|
||||
;
|
||||
; 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
|
||||
rvsFlag = $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
|
||||
funvec = $03B5 ; Vector for function key handline
|
||||
FunKeyTmp = $03B7
|
||||
sedt3 = $03B9
|
||||
MoniSegSave = $03f0
|
||||
wstvec = $03F8
|
||||
WstFlag = $03FA ; Warm start flag
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
.export _peekbsys, _peekwsys
|
||||
.importzp ptr1
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm610.inc"
|
||||
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
|
@ -8,7 +8,7 @@
|
||||
.import popsreg
|
||||
.importzp sreg, tmp1
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm610.inc"
|
||||
|
||||
|
||||
_pokebsys:
|
||||
|
@ -30,7 +30,7 @@
|
||||
.export _rs232_put, _rs232_pause, _rs232_unpause, _rs232_status
|
||||
.export k_rs232
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "cbm610.inc"
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
@ -327,7 +327,7 @@ _rs232_put:
|
||||
lda #ErrOverflow
|
||||
ldx #$00
|
||||
rts
|
||||
|
||||
|
||||
; There is enough room (character still in A)
|
||||
|
||||
@L3: ldx IndReg
|
||||
|
@ -1,100 +0,0 @@
|
||||
;
|
||||
; Zero page variables for the CBM 610
|
||||
;
|
||||
; Taken from a kernal disassembly done by myself in 1987.
|
||||
;
|
||||
; Ullrich von Bassewitz, 28.09.1998
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user