@Norbert, post #1
@c64portal, post #2
UaeConf = (void *) 0xf0ff60;
@Norbert, post #5
Function.l uaec{par1,par2}
MOVE.l d0,a0
MOVE.l d1,d0
MOVEM.l a4-a6,-(a7)
MOVE.l a0,a3
MOVE.l d0,d3
SUB.l a4,a4
MOVEQ #20,d7
LEA $f0ff60,a5
TST.l (a5)
BEQ.b xEnd
MOVE.l 4,a6
LEA dos(pc),a1
MOVEQ #0,d0
JSR -$228(a6) ;OpenLibrary
TST.l d0
BEQ.b xEnd
MOVE.l d0,a4
MOVE.l a4,a6
MOVEQ #-1,d6
loop
LEA outbuf,a2
MOVE.l #1000,-(a7) ;out len
MOVE.l a2,-(a7) ;out
CLR.b (a2)
MOVE.l d3,-(a7) ;param len
MOVE.l a3,-(a7) ;param
MOVE.l d6,-(a7) ;index
MOVEQ #82,d0
MOVE.l d0,-(a7)
JSR (a5)
LEA 6*4(a7),a7
MOVE.l d0,d7
; do we have output?
MOVE.l d3,-(a7)
TST.b (a2)
BEQ.b noout
JSR -$003c(a6) ;Output
MOVE.l d0,d4
BEQ.b noout
MOVE.l d4,d1
MOVE.l a2,d2
MOVEQ #-1,d3
out1
ADDQ.l #1,d3
TST.b (a2)+
BNE.b out1
JSR -$0030(a6) ; Write
MOVE.l d4,d1
LEA lf(pc),a0
MOVE.l a0,d2
MOVEQ #1,d3
JSR -$0030(a6) ; Write
noout
MOVE.l (a7)+,d3
TST.l d7
BPL.b xEnd
; list all -mode
ADDQ.l #1,d6
BRA loop
xEnd
MOVE.l a4,d0
BEQ.b xEnd2
MOVE.l d0,a1
MOVE.l 4,a6
JSR -$19e(a6) ;CloseLibrary
xEnd2
MOVE.l d7,d0
MOVEM.l (a7)+,a4-a6
AsmExit
dos: Dc.b "dos.library",0
lf: Dc.b 10
outbuf
Ds.b 1000
End Function
x=uaec{0,0}
End @cholok, post #6
Function.l uaec{}
MOVE.l d0,a0
MOVE.l d1,d0
MOVEM.l a4-a6,-(a7)
LEA dom(pc),a3 ; <------------ TU
MOVE.l #11,d3 ; <-------------TU
SUB.l a4,a4
MOVEQ #20,d7
LEA $f0ff60,a5
TST.l (a5)
BEQ.b xEnd
MOVE.l 4,a6
LEA dos(pc),a1
MOVEQ #0,d0
JSR -$228(a6) ;OpenLibrary
TST.l d0
BEQ.b xEnd
MOVE.l d0,a4
MOVE.l a4,a6
MOVEQ #-1,d6
loop
LEA outbuf,a2
MOVE.l #1000,-(a7) ;out len
MOVE.l a2,-(a7) ;out
CLR.b (a2)
MOVE.l d3,-(a7) ;param len
MOVE.l a3,-(a7) ;param
MOVE.l d6,-(a7) ;index
MOVEQ #82,d0
MOVE.l d0,-(a7)
JSR (a5)
LEA 6*4(a7),a7
MOVE.l d0,d7
; do we have output?
MOVE.l d3,-(a7)
TST.b (a2)
BEQ.b noout
JSR -$003c(a6) ;Output
MOVE.l d0,d4
BEQ.b noout
MOVE.l d4,d1
MOVE.l a2,d2
MOVEQ #-1,d3
out1
ADDQ.l #1,d3
TST.b (a2)+
BNE.b out1
JSR -$0030(a6) ; Write
MOVE.l d4,d1
LEA lf(pc),a0
MOVE.l a0,d2
MOVEQ #1,d3
JSR -$0030(a6) ; Write
noout
MOVE.l (a7)+,d3
TST.l d7
BPL.b xEnd
; list all -mode
ADDQ.l #1,d6
BRA loop
xEnd
MOVE.l a4,d0
BEQ.b xEnd2
MOVE.l d0,a1
MOVE.l 4,a6
JSR -$19e(a6) ;CloseLibrary
xEnd2
MOVE.l d7,d0
MOVEM.l (a7)+,a4-a6
AsmExit
dos: Dc.b "dos.library",0
lf: Dc.b 10
dom: Dc.b "filesystem2" ; <---------- TU
outbuf
Ds.b 1000
End Function
x=uaec {}
End@cholok, post #8
@Norbert, post #9
Jak teraz ten wynik przekazać do zmiennej tekstowej do Blitzbasic, a nie do okna CLI
@Norbert, post #9
WBStartup
;NoCli
WbToScreen 0
CloseEd
DEFTYPE.l
Function.l uaec{idx,par,parlen,out}
MOVE.l a5,-(a7)
LEA $f0ff60,a5
MOVE.l #1000,-(a7) ;out len
MOVE.l d3,-(a7) ;out
CLR.b (a2)
MOVE.l d2,-(a7) ;param len
MOVE.l d1,-(a7) ;param
MOVE.l d0,-(a7) ;index
MOVE.l #82,-(a7)
JSR (a5)
LEA 6*4(a7),a7
MOVE.l (a7)+,a5
AsmExit
End Function
uaebase=$f0ff60
If Peek.l(uaebase)
idx=-1
par=0
parlen=0
Repeat
r=uaec{idx,par,parlen,?label}
a$=Peek$(?label)
idx+1
NPrint a$
Until r>=0
Else
NPrint "UAE version is too low"
EndIf
r=Edit(1)
End
label:
Ds.b 1000 @cholok, post #11