mirror of
https://github.com/antoinevignau/source.git
synced 2024-11-18 01:05:18 +00:00
8701131e17
All my Applesqueezer code...
289 lines
7.6 KiB
ArmAsm
289 lines
7.6 KiB
ArmAsm
*
|
|
* Devices
|
|
* Show all connected devices
|
|
*
|
|
* (c) 2023, Brutal Deluxe Software
|
|
* Visit brutaldeluxe.fr
|
|
*
|
|
|
|
xc
|
|
xc
|
|
mx %00
|
|
|
|
rel
|
|
dsk devices.l
|
|
lst off
|
|
|
|
*----------
|
|
|
|
use 4/Int.Macs
|
|
use 4/Locator.Macs
|
|
use 4/Mem.Macs
|
|
use 4/Misc.Macs
|
|
use 4/Text.Macs
|
|
use 4/Util.Macs
|
|
|
|
Debut = $00
|
|
GSOS = $e100a8
|
|
|
|
*----------
|
|
|
|
dcREMOVE = $0004
|
|
dcONLINE = $0010
|
|
dcBLOCKDEVICE = $0080
|
|
|
|
maxDEVICES = 128
|
|
|
|
dcINQUIRY = $8012
|
|
doMODESELECT = $8015
|
|
dcMODESENSE6 = $801a
|
|
dcSTARTSTOP = $801b ; also eject/insert
|
|
dcREADCAPACITY = $8025
|
|
dcSUBCHANNEL = $8042
|
|
dcREADTOC = $8043
|
|
dcPATI = $8048
|
|
dcPAUSERESUME = $804b
|
|
dcMODESENSE10 = $805a
|
|
|
|
*----------
|
|
|
|
phk
|
|
plb
|
|
|
|
tdc
|
|
sta myDP
|
|
|
|
_TLStartUp
|
|
pha
|
|
_MMStartUp
|
|
pla
|
|
sta appID
|
|
ora #$0100
|
|
sta myID
|
|
|
|
_MTStartUp
|
|
_TextStartUp
|
|
|
|
_IMStartUp
|
|
|
|
pha
|
|
pha
|
|
PushLong #$010000
|
|
PushWord myID
|
|
PushWord #%11000000_00011100
|
|
PushLong #0
|
|
_NewHandle
|
|
phd
|
|
tsc
|
|
tcd
|
|
lda [3]
|
|
sta ptrBUFFER
|
|
ldy #2
|
|
lda [3],y
|
|
sta ptrBUFFER+2
|
|
pld
|
|
ply
|
|
sty haBUFFER
|
|
plx
|
|
stx haBUFFER+2
|
|
|
|
*----------
|
|
|
|
PushWord #$00FF
|
|
PushWord #$0080
|
|
_SetInGlobals
|
|
PushWord #$00FF
|
|
PushWord #$0080
|
|
_SetOutGlobals
|
|
PushWord #$00FF
|
|
PushWord #$0080
|
|
_SetErrGlobals
|
|
|
|
PushWord #0
|
|
PushLong #3
|
|
_SetInputDevice
|
|
PushWord #0
|
|
PushLong #3
|
|
_SetOutputDevice
|
|
PushWord #0
|
|
PushLong #3
|
|
_SetErrorDevice
|
|
|
|
PushWord #0
|
|
_InitTextDev
|
|
PushWord #1
|
|
_InitTextDev
|
|
PushWord #2
|
|
_InitTextDev
|
|
|
|
PushWord #$0c ; home
|
|
_WriteChar
|
|
|
|
*----------------------------
|
|
* MAIN MENU
|
|
*----------------------------
|
|
|
|
mainMENU = *
|
|
|
|
PushLong #strMAINMENU
|
|
_WriteCString
|
|
|
|
jsr pollDEVICES ; show CD-ROM devices
|
|
jsr waitFORKEY ; is it 0-9
|
|
jmp doQUIT
|
|
|
|
*--- Data
|
|
|
|
strMAINMENU asc 0d'Show devices'0d
|
|
asc '(c) 2023, Brutal Deluxe Software'0d00
|
|
|
|
*----------------------------
|
|
* QUIT PROGRAM
|
|
*----------------------------
|
|
|
|
doQUIT _IMShutDown
|
|
_TextShutDown
|
|
_MTShutDown
|
|
|
|
PushWord myID
|
|
_DisposeAll
|
|
|
|
PushWord appID
|
|
_MMShutDown
|
|
|
|
_TLShutDown
|
|
|
|
jsl GSOS
|
|
dw $2029
|
|
adrl proQUIT
|
|
|
|
brk $bd
|
|
|
|
*----------------------------
|
|
* POLL DEVICES
|
|
*----------------------------
|
|
|
|
pollDEVICES lda #1 ; start with device 1
|
|
sta proDINFO+2
|
|
|
|
]lp jsl GSOS ; do a DInfo
|
|
dw $202c
|
|
adrl proDINFO
|
|
bcc found
|
|
|
|
cmp #$0011 ; no more devices
|
|
bne loop
|
|
rts
|
|
|
|
loop inc proDINFO+2
|
|
bra ]lp
|
|
|
|
*---------- Show device
|
|
|
|
found lda proDINFO+8 ; not removable
|
|
and #dcBLOCKDEVICE
|
|
beq loop
|
|
|
|
jsr showDEVICEINFO
|
|
bra loop
|
|
|
|
*--- Sub routines
|
|
*
|
|
* x - $xxxx - .NAMEOFDEVICE
|
|
|
|
showDEVICEINFO
|
|
lda proDINFO+2
|
|
pha ; from a word to a string
|
|
pha
|
|
pha
|
|
_HexIt
|
|
PullLong strDEVID
|
|
|
|
PushLong #strDEV ; show the string
|
|
_WriteCString
|
|
|
|
*--- characteristics
|
|
|
|
lda proDINFO+8
|
|
pha ; from a word to a string
|
|
pha
|
|
pha
|
|
_HexIt
|
|
PullLong strDEVID
|
|
|
|
PushLong #strDEV ; show the string
|
|
_WriteCString
|
|
|
|
*--- name
|
|
|
|
lda devINFO1 ; from a STRL to a STR
|
|
xba
|
|
sta devINFO1
|
|
|
|
PushLong #devINFO2
|
|
_WriteString
|
|
|
|
PushWord #$0d
|
|
_WriteChar
|
|
rts
|
|
|
|
*---------- Data
|
|
|
|
strDEV asc '$'
|
|
strDEVID asc '0000 - '00
|
|
|
|
*----------------------------
|
|
* TEXT ROUTINES
|
|
*----------------------------
|
|
|
|
*---------- Wait for a key
|
|
|
|
waitFORKEY PushWord #0 ; wait for key
|
|
PushWord #1 ; echo char
|
|
_ReadChar
|
|
|
|
waitKEY1 lda 1,s ; check CR
|
|
and #$ff ; of typed
|
|
sta 1,s ; in char
|
|
cmp #$8d
|
|
beq waitKEY9
|
|
|
|
waitKEY8 PushWord #$0d ; return
|
|
_WriteChar
|
|
|
|
waitKEY9 pla ; restore entered char
|
|
rts
|
|
|
|
*----------------------------
|
|
* DATA
|
|
*----------------------------
|
|
|
|
proQUIT dw 2 ; pcount
|
|
ds 4 ; pathname
|
|
ds 2 ; flags
|
|
|
|
proDINFO dw 8 ; Parms for DInfo
|
|
ds 2 ; 02 device num
|
|
adrl devINFO ; 04 device name
|
|
ds 2 ; 08 characteristics
|
|
ds 4 ; 0A total blocks
|
|
ds 2 ; 0E slot number
|
|
ds 2 ; 10 unit number
|
|
ds 2 ; 12 version
|
|
ds 2 ; 14 device id
|
|
|
|
devINFO dw $0032 ; buffer size
|
|
devINFO1 db $00 ; length
|
|
devINFO2 db $00
|
|
devINFO3 ds $30 ; data
|
|
|
|
*----------
|
|
|
|
appID ds 2
|
|
myID ds 2
|
|
|
|
myDP ds 2
|
|
ptrBUFFER ds 4
|
|
haBUFFER ds 4
|
|
|