Kernel 0.94++

This commit is contained in:
Rémy GIBERT 2021-06-06 21:06:49 +02:00
parent e1e6bf1ade
commit 97b731b996
12 changed files with 537 additions and 142 deletions

Binary file not shown.

View File

@ -357,6 +357,44 @@ CSH.Lookup phy Y = len
sec
rts
*--------------------------------------
CSH.MainExec lda #0
>PUSHA
ldy #S.PS.ARGC
lda (pPS),y
>PUSHA push int ARGC
>PUSHW ZPCSHConst push int ARGV
stz ArgIndex
.1 lda ArgIndex
>SYSCALL ArgC
bcs .2
inc ArgIndex
pha
tya
sta (ZPCSHConst)
pla
ldy #1
sta (ZPCSHConst),y
lda ZPCSHConst
* clc
adc #2
sta ZPCSHConst
bcc .1
inc ZPCSHConst+1
bra .1
.2
*--------------------------------------
CSH.ZPPtr1GetNextW
jsr CSH.ZPPtr1NextW
*--------------------------------------

212
BIN/MD4.S.txt Normal file
View File

@ -0,0 +1,212 @@
NEW
AUTO 3,1
.LIST OFF
.OP 65C02
.OR $2000
.TF bin/md4
*--------------------------------------
.INB inc/macros.i
.INB inc/a2osx.i
.INB inc/mli.e.i
.INB inc/libcrypt.i
*--------------------------------------
FILEBUF.SIZE .EQ 4096
*--------------------------------------
.DUMMY
.OR ZPBIN
ZS.START
ZPPtr1 .BS 2
ZPDataBufPtr .BS 2
ZPDataLen .BS 2
ArgIndex .BS 1
Arg .BS 1
bText .BS 1
hFile .BS 1
hDataBuf .BS 1
hMD4Ctx .BS 1
ZS.END .ED
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA 0
.DA CS.END-CS.START CS
.DA DS.END-DS.START DS
.DA #16 SS
.DA #ZS.END-ZS.START ZP
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.LIBCRYPT .DA LIBCRYPT
L.MSG.USAGE .DA MSG.USAGE
.DA 0
*--------------------------------------
CS.INIT >LDYA L.LIBCRYPT
>SYSCALL LoadLib
bcs .9
sta hLIBCRYPT
* clc
.9 rts
*--------------------------------------
CS.RUN ldy #S.PS.ARGC
lda (pPS),y
beq .99
.1 inc ArgIndex
lda ArgIndex
>SYSCALL ArgV
bcs .8
>STYA ZPPtr1
lda (ZPPtr1)
cmp #'-'
bne .4
ldy #1
lda (ZPPtr1),y
beq .99
ldx #OptionVars-OptionList-1
.2 cmp OptionList,x
beq .3
dex
bpl .2
.99 >PUSHW L.MSG.USAGE
>PUSHBI 0
>SYSCALL PrintF
lda #E.SYN
sec
rts
.3 ldy OptionVars,x
lda #$80
sta 0,y
bra .1
.4 lda Arg
bne .99
lda ArgIndex
sta Arg
bra .1
.8 lda Arg
beq .99
lda bText
beq CS.RUN.FILE
*--------------------------------------
CS.RUN.TEXT lda Arg
>SYSCALL ArgV
>PUSHYA
>PUSHEA.G MD4Buf
>LIBCALL hLIBCRYPT,LIBCRYPT.MD4
jmp CS.RUN.PRINT
*--------------------------------------
CS.RUN.FILE >LDYAI FILEBUF.SIZE
>SYSCALL GetMem
bcs .9
>STYA ZPDataBufPtr
stx hDataBuf
lda Arg
>SYSCALL ArgV
>PUSHYA
>PUSHBI O.RDONLY
>PUSHBI 0 ftype
>PUSHWZ Aux type
>SYSCALL FOpen
bcs .9
sta hFile
>LIBCALL hLIBCRYPT,LIBCRYPT.MD4Init
bcs .9
sta hMD4Ctx
.1 >SLEEP
>PUSHB hFile
>PUSHW ZPDataBufPtr Dst Ptr
>PUSHWI FILEBUF.SIZE Bytes To Read
>SYSCALL FRead
bcc .2
cmp #MLI.E.EOF
beq .8
.9 rts
.2 >STYA ZPDataLen
>SLEEP
>PUSHB hMD4Ctx
>PUSHW ZPDataBufPtr
>PUSHW ZPDataLen
>LIBCALL hLIBCRYPT,LIBCRYPT.MD4Update
bra .1
.8 >PUSHB hMD4Ctx
>PUSHEA.G MD4Buf
>LIBCALL hLIBCRYPT,LIBCRYPT.MD4Finalize
CS.RUN.PRINT >LEA.G MD4Buf
>SYSCALL PutS
lda #0
* sec
* rts
*--------------------------------------
CS.DOEVENT sec
rts
*--------------------------------------
CS.QUIT lda hLIBCRYPT
beq .1
>SYSCALL UnloadLib
.1 lda hDataBuf
beq .2
>SYSCALL FreeMem
.2 lda hFile
beq .3
>SYSCALL FClose
.3 clc
rts
*--------------------------------------
CS.END
LIBCRYPT .AZ "libcrypt"
hLIBCRYPT .BS 1
*--------------------------------------
OptionList .AZ "Dd"
OptionVars .DA #bText,#bText
*--------------------------------------
MSG.USAGE .AZ "Usage : MD4 [ -d input text | input file ]\r\n"
*--------------------------------------
.DUMMY
.OR 0
DS.START
MD4Buf .BS 33
DS.END .ED
*--------------------------------------
MAN
SAVE usr/src/bin/md4.s
ASM

View File

@ -200,18 +200,18 @@ NSC.Read php
jsr NSC.Select
ldx #7
ldx #8 Read 8 bytes...
.1 ldy #8
.2 lda $C304
lsr
ror DS1216E.DATA,x
ror DS1216E.DATA-1,x
dey
bne .2
dex
bpl .1
bne .1
plp
bmi .8
@ -231,10 +231,11 @@ NSC.Write php
jsr NSC.Select
ldx #7
ldx #8 Write 8 bytes...
.3 lda DS1216E.DATA,x
.3 lda DS1216E.DATA-1,x
phx
ldx #8 ....of 8 bits
.4 ldy #0
@ -251,7 +252,7 @@ NSC.Write php
plx
dex
bpl .3
bne .3
plp
bmi .8
@ -265,9 +266,10 @@ NSC.Select sta $C300
lda $C00B Workaround for Ultrawarp bug
lda $C304 Reset DS1216E comparison register with READ A2=1
ldx #7 Read 8 bytes...
.3 lda DS1216E.PATTERN,x
ldx #8 Read 8 bytes...
.3 lda DS1216E.PATTERN-1,x
phx
ldx #8 ....of 8 bits
@ -285,7 +287,7 @@ NSC.Select sta $C300
plx
dex
bpl .3
bne .3
rts
*--------------------------------------

View File

@ -6,11 +6,14 @@ LIBCRYPT.MD4 .EQ 4
LIBCRYPT.MD4Init .EQ 6
LIBCRYPT.MD4Update .EQ 8
LIBCRYPT.MD4Finalize .EQ 10
*--------------------------------------
LIBCRYPT.MD5 .EQ 12
LIBCRYPT.MD5Init .EQ LIBCRYPT.MD4Init
LIBCRYPT.MD5Update .EQ 14
LIBCRYPT.MD5Finalize .EQ LIBCRYPT.MD4Finalize
*--------------------------------------
LIBCRYPT.HMACMD5 .EQ 16
*--------------------------------------
* S.MD4, S.MD5 STRUCT
*--------------------------------------
S.MD4.ABCD0 .EQ 0

View File

@ -10,11 +10,12 @@ S.NETBIOS .EQ 4
*--------------------------------------
S.SMB.H.PROTO .EQ 0 \xFF 'SMB'
S.SMB.H.CMD .EQ 4
S.SMB.H.CMD.CLOSE .EQ $04
S.SMB.H.CMD.TRANS2 .EQ $32
S.SMB.H.CMD.NEGOTIATE .EQ $72
S.SMB.H.CMD.SESSION.SETUP.ANDX .EQ $73
S.SMB.H.CMD.TREE.CONNECT.ANDX .EQ $75
S.SMB.H.CMD.NT.CREATE.ANDX .EQ $A0
S.SMB.H.CMD.NT.CREATE.ANDX .EQ $A2
S.SMB.H.STATUS .EQ 5
S.SMB.H.FLAGS .EQ 9
S.SMB.H.FLAGS.LOCKANDREADOK .EQ 1

View File

@ -534,79 +534,44 @@ CIFS2.ChOwn
sec
rts
*--------------------------------------
*CIFS.FOpen >STYA pPath resolved path
CIFS.FOpen >STYA pPath resolved path
* ldx #S.SMB.H.CMD.NT.CREATE.ANDX
*--------------------------------------
CIFS.FOpen jsr MakeTrans2Req
ldx #S.SMB.H.CMD.NT.CREATE.ANDX
jsr RequestSetupX
ldx #0
.1 lda SMB.Open2,x
.1 lda SMB.ComCreate.H,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.Open2.Len
cpx #SMB.ComCreate.H.Len
bne .1
phy save Y = LEN
jsr GetPathLen
ldy #S.NETBIOS+S.SMB.H+6
sta (ZPReqPtr),y
ply
phy
ldy #5
lda (pStack),y
sta pPath+1
dey
lda (pStack),y
sta pPath
sta (ZPReqPtr),y
dey flags
lda (pStack),y
pha
and #O.RDWR
dec
lda #2
ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+9 AccessMode
sta (ZPReqPtr),y
lda #$52
iny
sta (ZPReqPtr),y
ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+19 OpenMode
pla
pha
and #O.CREATE
beq .2
iny Skip ByteCount
iny
lda #$12
sta (ZPReqPtr),y
.2 pla
* and #O.APPEND
* beq .3
lda (ZPReqPtr),y
ora #1
* sta (ZPReqPtr),y
ldy #S.NETBIOS+S.SMB.H.FLAGS2+1
lda #$40
sta (ZPReqPtr),y
.3 ply
jsr AppendPath
lda #0
sta (ZPReqPtr),y
iny
jsr SetT2ReqLenYA
pla
jsr SetReqLenYAtA
pha
>PUSHB MountTable+3 hSocket
@ -634,11 +599,49 @@ CIFS2.FOpen jsr ReadSocket
lda #MLI.E.DUPFILE
sec
bra .80
.8 jsr FreeRespData
.8 >LDYAI S.FD.REG
>SYSCALL2 GetMem
bcs .99
>STYA ZPPtr2
lda #S.FD.T.REG
sta (ZPPtr2)
lda hHandler
ldy #S.FD.PFT
sta (ZPPtr2),y
ldy #S.NETBIOS+S.SMB.H+6 FileID
lda (ZPRespPtr),y
pha
iny
lda (ZPRespPtr),y
ldy #S.FD.REG.REF+1
sta (ZPPtr2),y
dey
pla
sta (ZPPtr2),y
ldy #4 path
lda (pStack),y
>PUSHA
lda (pStack),y
>PUSHA
>PUSHWZ mod
txa hFD
>PUSHA
>SYSCALL2 mknod
.80 jsr FreeRespData
stz CIFS.Status
>RET 4
>RET 6
.9 cmp #E.NODATA
bne .99
@ -654,14 +657,101 @@ CIFS2.FOpen jsr ReadSocket
.99 sec
stz CIFS.Status
>RET 4
>RET 6
*--------------------------------------
CIFS.FClose jsr GetPFD
ldx #S.SMB.H.CMD.CLOSE
jsr RequestSetupX
ldx #0
.1 lda SMB.ComCreate.H,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.ComCreate.H.Len
bne .1
tya save Y = LEN
iny Skip ByteCount
iny
jsr SetReqLenYAtA
pha
>PUSHB MountTable+3 hSocket
>PUSHW ZPReqPtr
pla
>PUSHYA
ldx #LIBTCPIP.Send
jsr GO.LIBTCPIP
bcs .9
jmp Sleep
.9 rts
*--------------------------------------
CIFS2.FClose sta hFILE
jsr ReadSocket
bcs .9
jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
clc
beq .8
lda #MLI.E.DUPFILE
sec
bra .80
.8 lda hFILE
jsr CIFS.CloseDir
clc
.80 jsr FreeRespData
stz CIFS.Status
rts
.9 cmp #E.NODATA
bne .99
dec CIFS.Retries
beq .98
lda #0
sec
rts
.98 lda #MLI.E.IO
.99 sec
stz CIFS.Status
rts
*--------------------------------------
CIFS.FClose
CIFS2.FClose
CIFS.FRead
clc
>RET 5
*--------------------------------------
CIFS2.FRead
clc
>RET 5
*--------------------------------------
CIFS.FWrite
clc
>RET 5
*--------------------------------------
CIFS2.FWrite
clc
>RET 5
*--------------------------------------
CIFS.FFlush
CIFS2.FFlush
CIFS.FSeek

View File

@ -419,7 +419,8 @@ CIFS.TreeConnect
bne .1
phy save Y = LEN
iny
iny Skip ByteCount
iny
lda #0
@ -631,6 +632,15 @@ RequestSetupX phx
rts
*--------------------------------------
GetPathLen ldy #$ff
.1 iny
lda (pPath),y
bne .1
tya
rts
*--------------------------------------
AppendPath ldx #0
.1 lda (pPath)
@ -980,14 +990,14 @@ SMB.TreeConnect.H.Len .EQ *-SMB.TreeConnect.H
* .AZ "_temp" PATH
SMB.TreeConnect.T
.AZ "A:" Disk Share
SMB.TreeConnect.T.Len .EQ *-SMB.TreeConnect.T
*-------------------------------------- #$04
SMB.ComCreate.H .DA #18 WORD COUNT
SMB.TreeConnect.T.Len .EQ *-SMB.TreeConnect.T
*--------------------------------------
SMB.ComCreate.H .DA #24 WORD COUNT
.HS FF000000 NO MORE CMD
.HS 00 Reserved
.BS 2 NameLength
.HS 00000000 Flags
.BS 4 RootDirectoryFID
.HS 00000000 RootDirectoryFID
.BS 4 DesiredAccess
.HS 0000000000000000 AllocationSize
.HS 00000000 ExtFileAttributes
@ -995,17 +1005,17 @@ SMB.ComCreate.H .DA #18 WORD COUNT
.BS 4 CreateDisposition
.HS 00000000 CreateOptions
.HS 00000000 ImpersonationLevel
.HS 00 SecurityFlags
.HS 00 SMB_Data
.HS 00 SecurityFlags
SMB.ComCreate.H.Len .EQ *-SMB.ComCreate.H
* .BS 2 ByteCount
* .AZ "path\file"
*-------------------------------------- #$04
*--------------------------------------
SMB.ComClose.H .DA #3 WORD COUNT
.BS 2 FID
.HS 00000000 LastTimeModified
.HS 0000 ByteCount
SMB.ComClose.H.Len .EQ *-SMB.ComClose.H
*-------------------------------------- #$2E
*--------------------------------------
SMB.ComRead.H .DA #10 WORD COUNT
.HS FF000000 NO MORE CMD
.BS 2 FID
@ -1016,7 +1026,7 @@ SMB.ComRead.H .DA #10 WORD COUNT
.HS 0000 Remaining
.HS 0000 ByteCount
SMB.ComRead.H.Len .EQ *-SMB.ComRead.H
*-------------------------------------- #$2F
*--------------------------------------
SMB.ComWrite.H .DA #12 WORD COUNT
.HS FF000000 NO MORE CMD
.BS 2 FID
@ -1051,20 +1061,6 @@ SMB.Trans2.H .DA #15 WORD COUNT
.HS 00 Reserved3
SMB.Trans2.H.Len .EQ *-SMB.Trans2.H
*--------------------------------------
SMB.Open2 .DA 0 TRANS2_OPEN2
.BS 2 PrmCnt
.HS 000000 Padding
.HS 0000 Flags
.BS 2 AccessMode
.HS 0000 Reserved1
.BS 2 FileAttributes
.HS 00000000 CreationTime
.BS 2 OpenMode
.HS 00000000 AllocationSize
.HS 00000000000000000000 Reserved
* .AZ "filename"
SMB.Open2.Len .EQ *-SMB.Open2
*--------------------------------------
SMB.FindFirst2 .DA 1 TRANS2_FIND_FIRST2
.BS 2 PrmCnt
.HS 000000 Padding
@ -1118,6 +1114,7 @@ MountTable .BS 2 pMountPoint
.BS 1 hSMBContext
.BS 1 hSocket
*--------------------------------------
hFILE .BS 1
StatBuf .BS S.STAT
*--------------------------------------
MAN

View File

@ -8,8 +8,6 @@ NEW
.INB inc/macros.i
.INB inc/a2osx.i
.INB inc/libcrypt.i
*--------------------------------------
* https://waterjuiceweb.wordpress.com/aes/
*--------------------------------------
.DUMMY
.OR ZPLIB
@ -20,7 +18,7 @@ ZPHashPtr .BS 2
ZPChunkLen .BS 2
MD.MODE .BS 1
* MD.MODE .BS 1 32 BYTES MAX !!!!!
MD4.ABCD
MD5.ABCD
@ -131,6 +129,8 @@ CS.START cld
.DA MD4Finalize
.DA MD5
.DA MD5Update
.DA HMACMD5
*--------------------------------------
J.MD4.XXXX .DA MD4.0015
.DA MD4.1631
.DA MD4.3247
@ -149,8 +149,8 @@ LIB.UNLOAD clc
* # C
* `void MD4 (const char* str, char* digest);`
* # ASM
* `>PUSHW digest`
* `>PUSHW str`
* `>PUSHW digest`
* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD4`
* ## RETURN VALUE
* CC
@ -163,17 +163,17 @@ MD4 lda #0
* # C
* `void MD5 (const char* str, char* digest);`
* # ASM
* `>PUSHW digest`
* `>PUSHW str`
* `>PUSHW digest`
* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD5`
* ## RETURN VALUE
* CC
*\--------------------------------------
MD5 lda #1
sta MD.MODE
>PULLW ZPDataPtr
>PULLW ZPHashPtr
>LDYA ZPDataPtr
>PULLYA
>STYA ZPDataPtr
>SYSCALL2 strlen
>STYA ZPDataLen
.1 jsr MD4Init
@ -195,7 +195,7 @@ MD5 lda #1
* ## MD4Init
* Initialize a MD4 computation
* # C
* `hMD4 MD5init();`
* `hMD4 MD4init();`
* # ASM
* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD4Init`
* ## RETURN VALUE
@ -241,9 +241,9 @@ MD5Init >LDYAI S.MD4
* # C
* `void MD4update (hMD4 MD4, char* data, int len);`
* # ASM
* `>PUSHW len`
* `>PUSHB MD4`
* `>PUSHW data`
* `>LDA.G MD4`
* `>PUSHW len`
* `>hLIBCRYPT,LIBCRYPT.MD4Update`
* ## RETURN VALUE
*\--------------------------------------
@ -255,19 +255,21 @@ MD4Update lda #0
* # C
* `void MD5update (hMD5 MD5, char* data, int len);`
* # ASM
* `>PUSHW len`
* `>PUSHB MD5`
* `>PUSHW data`
* `>LDA.G MD5`
* `>PUSHW len`
* `>hLIBCRYPT,LIBCRYPT.MD5Update`
* ## RETURN VALUE
*\--------------------------------------
MD5Update lda #1
sta MD.MODE
>PULLW ZPDataLen get LEN
>PULLW ZPDataPtr get DATA
>PULLA
>SYSCALL2 GetMemPtr get MD5 Context
>STYA ZPCtxPtr
>PULLW ZPDataPtr get DATA
>PULLW ZPDataLen get LEN
MD4Update.I
MD5Update.I ldy #S.MD4.FINALIZED
@ -355,8 +357,8 @@ MD5Update.I ldy #S.MD4.FINALIZED
* # C
* `void MD4finalize (hMD4 MD4, char* digest);`
* # ASM
* `>PUSHB MD4`
* `>PUSHW digest`
* `>LDA.G MD4`
* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD4Finalize`
* ## RETURN VALUE
*\--------------------------------------
@ -365,17 +367,20 @@ MD5Update.I ldy #S.MD4.FINALIZED
* # C
* `void MD5finalize (hMD5 MD5, char* digest);`
* # ASM
* `>PUSHB MD5`
* `>PUSHW digest`
* `>LDA.G MD5`
* `>LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize`
* ## RETURN VALUE
*\--------------------------------------
MD4Finalize
MD5Finalize pha
MD5Finalize >PULLW ZPHashPtr
>PULLA
pha
>SYSCALL2 GetMemPtr
>STYA ZPCtxPtr get MD5 Context
>PULLW ZPHashPtr
jsr MD4Finalize.I
pla
>SYSCALL2 FreeMem
rts
@ -421,6 +426,24 @@ MD5Finalize.I ldy #S.MD4.FINALIZED
sta (ZPHashPtr)
clc
.9 rts
*/--------------------------------------
* ## HMACMD5
* Return HMACMD5 Hash for input String
* # C
* `void HMACMD5(const char* str, const char* key, char* digest);`
* # ASM
* `>PUSHW str`
* `>PUSHW key`
* `>PUSHW digest`
* `>LIBCALL hLIBCRYPT,LIBCRYPT.HMACMD5`
* ## RETURN VALUE
* CC
*\--------------------------------------
* https://github.com/fab13n/org.eclipse.mihini/blob/master/libs/hmac-md5/hmac_rfc2104/hmac-md5.c
*--------------------------------------
HMACMD5
*--------------------------------------
* https://waterjuiceweb.wordpress.com/aes/
*--------------------------------------
* PRIVATE
*--------------------------------------
@ -803,6 +826,8 @@ MD4.DIGITS .AS "0123456789ABCDEF"
*--------------------------------------
ZPDataLen .BS 2
MD.MODE .BS 1
MD4.DTemp
MD5.DTemp .BS 4
MD4.F

View File

@ -145,8 +145,8 @@ m128k sta idapple Save MACHID in temp location
tsb LDR.MSG.PRODOS+1
tsb LDR.MSG.PRODOS+2
sec
jsr LDR.ScrInit80
jsr LDR.Scr80Select
jsr LDR.Scr80Init
ldx #$F
@ -351,15 +351,15 @@ LDR.SetupQC bit RRAMWRAMBNK2 read/write RAM bank 2
DS1216E.DATA1 .EQ idxl
DS1216E.DATA2 .EQ A1L
*--------------------------------------
LDR.ClkDevScan php
LDR.ClkDevScan lda RDCXROM
php
sei
lda RDCXROM
php
sta SETCXROM
sta $C300
lda $C00B Workaround for Ultrawarp bug
ldx #8
@ -416,9 +416,7 @@ LDR.ClkDevScan php
sta CLRCXROM
.8 plp
ldx #8
.8 ldx #8
.9 lda DS1216E.DATA1-1,x
cmp DS1216E.DATA2-1,x
@ -900,9 +898,36 @@ LDR.SetDevID ldy #$FE check attributes byte.
sta devid
rts
*--------------------------------------
LDR.ScrInit80 sta CLRC3ROM TODO: support 80COL cards with ROM ???
LDR.Scr80Select php
sei
sta SETC3ROM
lda #$8C Reset 80 col screen ($0C:HOME)
ldx #COL80IDX.Cnt-1
.1 ldy COL80IDX,x
lda $C300,y
cmp COL80VAL,x
bne .9
dex
bpl .1
lda $C30C is it an apple 80 col compatible card?
and #$F0
cmp #$80
bne .9
plp
rts
.9 sta CLRC3ROM
plp
rts
*--------------------------------------
LDR.Scr80Init lda #$8C Reset 80 col screen ($0C:HOME)
jsr $C300
jsr setnorm
@ -1141,6 +1166,10 @@ DS1216E.SIG .HS 5CA33AC55CA33AC5 Reverted 7->0
dskid .HS 08.20.28.00.58.03.70
sltbit .HS 02040810204080
*--------------------------------------
COL80IDX .HS 05070BFA + $C30C and $80 = $80
COL80IDX.Cnt .EQ *-COL80IDX
COL80VAL .HS 3818012C
*--------------------------------------
LDR.MLIOL.P .DA #2
.DA #$60
.DA pbuf+1

View File

@ -7,15 +7,16 @@ NEW
*--------------------------------------
DS1216E.DATA .EQ $200 Reverted YY MM DD Day HH mm SS CS
*--------------------------------------
NCLK.START php
NCLK.START lda RDCXROM
php
sei NO IRQ !!!
lda RDCXROM because no IRQ handler at $C3FA...
php
sta SETCXROM ... after this
sta SETCXROM
sta $C300
lda $C00B Workaround for Ultrawarp bug
lda $C304 Reset DS1216E comparison register with READ A2=1
ldx #8 Read 8 bytes...
@ -101,8 +102,7 @@ NCLK.START php
sta CLRCXROM
.8 plp
rts
.8 rts
*--------------------------------------
DS1216E.PATTERN .HS 5CA33AC55CA33AC5 Reverted 7->0
*--------------------------------------

View File

@ -52,15 +52,15 @@ NSC.Print sty TmpPtr1
DS1216E.DATA1 .EQ $10
DS1216E.DATA2 .EQ $18
*--------------------------------------
NSC.Detect php
NSC.Detect lda RDCXROM
php
sei
lda RDCXROM
php
sta SETCXROM
sta $C300
lda $C00B Workaround for Ultrawarp bug
ldx #8
@ -118,9 +118,7 @@ NSC.Detect php
sta CLRCXROM
.8 plp
ldx #8
.8 ldx #8
.81 lda DS1216E.DATA1-1,x
cmp DS1216E.DATA2-1,x
@ -199,15 +197,16 @@ NSC.MSG3 .AZ -"DS1216E Driver Successfully Installed."
DS1216E.DATA .EQ $200 Reverted YY MM DD Day HH mm SS CS
*--------------------------------------
NSCDRV.B.START .EQ *
NSCDRV php
NSCDRV lda RDCXROM
php
sei
lda RDCXROM
php
sta SETCXROM
sta $C300
lda $C00B Workaround for Ultrawarp bug
lda $C304 Reset DS1216E comparison register with READ A2=1
ldx #8 Read 8 bytes...
@ -293,8 +292,7 @@ NSCDRV.R5 lda DS1216E.DATA+4 Get HH
sta CLRCXROM
.8 plp
rts
.8 rts
*--------------------------------------
DS1216E.PATTERN .HS 5CA33AC55CA33AC5 Reverted 7->0
*--------------------------------------