0.9 : Started migrating external commands, new KMs

This commit is contained in:
Rémy GIBERT 2017-01-23 08:16:06 +01:00
parent 21b3789b99
commit 50a6edfdef
11 changed files with 212 additions and 96 deletions

Binary file not shown.

Binary file not shown.

0
BIN/ATLOGOFF.S.txt Normal file
View File

0
BIN/ATLOGON.S.txt Normal file
View File

0
BIN/ATMOUNT.S.txt Normal file
View File

View File

@ -531,23 +531,7 @@ Ctrl.ESC ldy #bEscMode
clc
rts
*--------------------------------------
Prompt.Editor pha
ldy #bInit
lda (pData),y
asl
pla
bcs .1
cmp #$1B
beq Ctrl.ESC
cmp #3 Ctrl-C ?
beq .9
clc
rts
.1 cmp #127
Prompt.Editor cmp #127
beq .4
cmp #$20

View File

@ -73,7 +73,7 @@ SCRN.UpdateMain ldy #ScreenY
ldy #ViewPortH
lda (pData),y
sta TmpCount
.1 >LDAX TmpIndex
jsr BUF.GetLineAX Y = line length
bcs .5

View File

@ -130,23 +130,15 @@ CS.INIT lda #$ff
clc
.9 rts
*--------------------------------------
CS.RUN ldy #bCancel
lda (pData),y
bne .99
ldy #bInit
lda (pData),y
bne .8
>LDYA L.SEQ.DETECT
CS.RUN >LDYA L.SEQ.DETECT
>SYSCALL CPrintFYA Send Query for term W & H
bcs .9
.1 ldy #bCancel
lda (pData),y
bne .99
>SYSCALL Sleep
.1 >SYSCALL Sleep
>SYSCALL GetC
bcs .1
jsr CharIn
ldy #ScreenW Wait for Response from terminal
lda (pData),y for W & H
@ -155,36 +147,53 @@ CS.RUN ldy #bCancel
jsr SCRN.Init
bcs .9
ldy #bInit
lda #$ff
sta (pData),y
.2 ldy #bCancel
lda (pData),y
bne .99
>SYSCALL Sleep
>SYSCALL GetC
.8 clc
rts
bcs .2
jsr CharIn
bra .2
.99 lda #0
.9 sec
rts
*--------------------------------------
CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
lda (pEvent),y
ldy #S.PS.hStdIn
cmp (pPs),y
bne .9
CS.DOEVENT sec
rts
*--------------------------------------
CS.QUIT ldy #hBuffer
lda (pData),y
beq .1
>SYSCALL FreeMemA
lda (pEvent)
and #S.EVT.F.KEY is it a KEY event?
beq .9
.1 ldy #hBufferBackup
lda (pData),y
beq .2
>SYSCALL FreeMemA
ldy #S.EVT.DATAHI is it an O or SAPPLE key ?
lda (pEvent),y
bmi .9 test only OA, bug in Applewin for #,@...
* bne .9
ldy #S.EVT.DATALO
lda (pEvent),y
tax
.2 ldy #hClipBoard
lda (pData),y
beq .3
>SYSCALL FreeMemA
.3 ldy #hFileName
lda (pData),y
beq .8
>SYSCALL FreeMemA
.8 >LDYA L.SEQ.RESET
>SYSCALL CPrintFYA
bcs .9
lda #12
>SYSCALL PutCA
.9 rts
*--------------------------------------
CharIn tax
ldy #bEscMode
lda (pData),y
@ -209,7 +218,7 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
cmp #64
bcc .8
jsr CS.DOEVENT.Esc
jsr CharIn.Esc
bcs .8 Not translated, exit
.1 pha
@ -221,11 +230,8 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
.8 clc
rts
.9 sec
rts
*--------------------------------------
CS.DOEVENT.Esc ldy #bEscMode
CharIn.Esc ldy #bEscMode
lda #0
sta (pData),y
@ -238,6 +244,7 @@ CS.DOEVENT.Esc ldy #bEscMode
lda (pData),y
ldx EscChars
.1 cmp EscChars,x
beq .2
dex
@ -321,33 +328,6 @@ CS.DOEVENT.Esc ldy #bEscMode
clc
rts
*--------------------------------------
CS.QUIT ldy #hBuffer
lda (pData),y
beq .1
>SYSCALL FreeMemA
.1 ldy #hBufferBackup
lda (pData),y
beq .2
>SYSCALL FreeMemA
.2 ldy #hClipBoard
lda (pData),y
beq .3
>SYSCALL FreeMemA
.3 ldy #hFileName
lda (pData),y
beq .8
>SYSCALL FreeMemA
.8 >LDYA L.SEQ.RESET
>SYSCALL CPrintFYA
bcs .9
lda #12
>SYSCALL PutCA
.9 rts
*--------------------------------------
LoadFile >PUSHWI 0 Aux type
>PUSHBI 4 S.FILEINFO.TYPE.TXT
>PUSHBI SYS.FOpen.R
@ -512,7 +492,6 @@ DS.START
PromptBuffer .BS PromptBufferMax+1
PromptMode .BS 1
bCancel .BS 1
bInit .BS 1
bSaved .BS 1
bEscMode .BS 1
EscBuffer .BS 16

View File

@ -20,7 +20,7 @@ MLIWRITEBLOCK .EQ $81
MLIGETTIME .EQ $82
MLICREATE .EQ $C0
MLIDESTROY .EQ $C1
MLIRename .EQ $C2
MLIRENAME .EQ $C2
MLISETFILEINFO .EQ $C3
MLIGETFILEINFO .EQ $C4
MLIONLINE .EQ $C5

148
SYS/KM.APPLETALK.txt Normal file
View File

@ -0,0 +1,148 @@
PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
.LIST OFF
.OP 65C02
.OR $2000
.TF /A2OSX.BOOT/SYS/KM.APPLETALK
*--------------------------------------
.INB /A2OSX.DEV/INC/MACROS.I
.INB /A2OSX.DEV/INC/IO.I
.INB /A2OSX.DEV/INC/MONITOR.I
.INB /A2OSX.DEV/INC/PRODOS.I
*--------------------------------------
TmpPtr1 .EQ $0
*--------------------------------------
AT.INIT >LDAXI MSG.INIT
jsr PrintCStrAX
lda #$F9
sta TmpPtr1
lda #$C7
sta TmpPtr1+1
.1 ldy #3
.2 lda (TmpPtr1),y
cmp SIG.ATLK,y
bne .3
dey
bpl .2
ldy #4
lda (TmpPtr1),y
ldx #0
cmp #1
beq .4
ldx #$80
cmp #2
beq .4
pha
>LDAXI MSG.FAILED
jsr PrintCStrAX
rts
.3 dec TmpPtr1+1
lda TmpPtr1+1
cmp #$C0
bne .1
>LDAXI MSG.NOHW
jsr PrintCStrAX
rts
.4 stx WC.Flag
tay
lda TmpPtr1+1
and #$0f
pha Push slot #
phy Push Type #
>LDAXI MSG.HWOK
jsr PrintCStrAX
>LDYA MLI+1
>STYA GO.OLDMLI+1
ldy #$14
lda TmpPtr1+1 Cn
sta MLIALLOCIRQ.PARAMS.SLOT
>STYA GO.WSCARD+1
bit WC.Flag
bmi .5
>STYA MLI+1
.5 jsr GO.WSCARD
.DA #MLIATALK
.DA MLIATALK.PARAMS
bcs .9
jsr MLI
.DA #MLIALLOCIRQ
.DA MLIALLOCIRQ.PARAMS
bcs .9
cli
jsr GO.OLDMLI
.DA #MLIGETPREFIX
.DA MLIGETPREFIX.PARAMS
bcs .9
jsr GO.WSCARD
.DA #MLIGETPREFIX
.DA MLIGETPREFIX.PARAMS
bcs .9
>LDAXI MSG.OK
jsr PrintCStrAX
rts
.9 pha
>LDAXI MSG.KO
jsr PrintCStrAX
rts
*--------------------------------------
GO.WSCARD jmp $ffff Self Modifed
GO.OLDMLI jmp $ffff
*--------------------------------------
.INB X.PRINTF.S
*--------------------------------------
MSG.INIT >CSTR "AppleTalk Driver For A2osX\n"
MSG.NOHW >CSTR "AppleTalk Workstation Card Not Found.\n"
MSG.HWOK >CSTR "AppleTalk Workstation Card Type #%n Found In Slot #%n.\n"
MSG.FAILED >CSTR "AppleTalk Workstation Card Failed Power Up Diagnostics : EC=%h.\n"
MSG.OK >CSTR "AppleTalk Driver Successfully Installed.\n"
MSG.KO >CSTR "AppleTalk Driver Install Failed : EC=%h.\n"
*--------------------------------------
SIG.ATLK .AS "ATLK"
WC.Flag .BS 1
*--------------------------------------
MLIATALK.PARAMS .DA #0 Sync
.DA #1 INIT
.BS 2 RC
.DA #$40 ??? from ATINIT dissaembly
*--------------------------------------
MLIALLOCIRQ.PARAMS
.DA #2 Param Count
.BS 1 Int Num returned
.DA #$19 Lo byte always $19 for WS Card
MLIALLOCIRQ.PARAMS.SLOT
.BS 1 hi byte : $Cn
*--------------------------------------
MLIGETPREFIX.PARAMS
.DA #1
.DA BUF.PREFIX
*--------------------------------------
BUF.PREFIX .BS MLI.MAXPATH
*--------------------------------------
MAN
SAVE SYS/KM.APPLETALK.S
ASM

View File

@ -151,6 +151,7 @@ VSDRIVE.SetSlot ldx #2 Starts at Slot1
asl
asl
asl
ora #$0D
ldy DEVCNT
iny
sta DEVLST,y add Drv1
@ -170,16 +171,18 @@ VSDRIVE.SetSlot ldx #2 Starts at Slot1
bne .1
rts sec from CPX
*--------------------------------------
VSDRIVE.Install ldx #9
.1 lda ProDOS.PATCH,x
sta DRV.EntryPoint,x
VSDRIVE.Install ldx #PATCH.SIZE
.1 lda PATCH-1,x
sta DRV.EntryPoint-1,x
dex
bpl .1
bne .1
bit RRAMWRAMBNK2
bit RRAMWRAMBNK2
ldx #DRV.SIZE
.2 lda DRV-1,x
sta $D000,x
dex
@ -204,12 +207,13 @@ VSDRIVE.MSG6 >CSTR "VSDRIVE Driver Successfully Installed.\n"
*--------------------------------------
* ProDOS $BE41->$BE4B Patch for switching to BANK2 (10 bytes)
*--------------------------------------
ProDOS.PATCH .PH DRV.EntryPoint
PATCH .PH DRV.EntryPoint
bit RRAMWRAMBNK2
jsr $D001
bit RRAMWRAMBNK1
rts
.EP
PATCH.SIZE .EQ *-PATCH
*--------------------------------------
* Driver
*--------------------------------------
@ -236,6 +240,7 @@ DRV .EQ *
.PH $D001 Main LC Bnk 2 $D001->$DFFF
cld
DRV.Slotn0 ldx #$ff Self Modified
>DEBUG
lda DRV.COMMAND S=0,R=1,W=2,F=3
bne .1
@ -253,7 +258,7 @@ DRV.Slotn0 ldx #$ff Self Modified
bcs .9 more....IO error
ora #2 W=2,R=3
ldx DRV.UNITNUM
ldy DRV.UNITNUM
bpl .1
adc #2 CC from bcs .9
@ -383,7 +388,7 @@ DRV.SSCSend sta .2+1
.1 lda SSC.STATUS,x
bit #SSC.STATUS.DCD+SSC.STATUS.DSR
beq DRV.IOERR
* beq DRV.IOERR
and #SSC.STATUS.TDRE Outgoing char?
beq .1
@ -395,7 +400,7 @@ DRV.SSCSend sta .2+1
*--------------------------------------
DRV.SSCGet lda SSC.STATUS,x
bit #SSC.STATUS.DCD+SSC.STATUS.DSR
beq DRV.IOERR
* beq DRV.IOERR
and #SSC.STATUS.RDRF incoming char?
beq DRV.SSCGet