NTP Player v1

Release of the FinderExtension
This commit is contained in:
Antoine Vignau 2023-05-22 18:57:37 +02:00
parent 96e407d53e
commit 99610b5710
4 changed files with 266 additions and 0 deletions

266
ntp/NTPPlayer.s Normal file
View File

@ -0,0 +1,266 @@
*
* NTP Player
* v1.0
*
* (c) 2019-2023, Brutal Deluxe Software
*
* v1.0b0 - 20190523
* I replaced the pei $0a with lda $0a stal ptrSAVE
* The final version will have them back to shorten code
*
* v1.0b1 - 20190523
* Everything is in place, must test now
*
* v1.0b2 - 20190524
* Oops, not finderSaysBeforeOpen MUST go to myREQUEST4, not 3
* That's what happens when you modify your code from 1994 :-)
*
* v1.0 - 20230318
* GS/OS string buffer is now bigger
* We DO NOT have an icon yet
* Some bugs fixed
* Better lisibility of the source code
*
mx %00
rel
typ $B6
dsk NTPPlayer.l
lst off
*----------------------------
use 4/Locator.Macs
use 4/Mem.Macs
use 4/Tool222.Macs
use 4/Misc.Macs
use 4/Util.Macs
*----------------------------
ntpTOOL = 222
ntpVERSION = $0100
ntpTYPE = $d5
ntpAUXTYPE = $08
GSOS = $E100A8
result = $10
reqCode = $0e
dataIn = $0a
dataOut = $06
*----------------------------
phb
phk
plb
pha
_MMStartUp
pla
ora #$0100
sta myID
PushLong #myBRUTAL
PushWord myID
PushLong #myREQUEST
_AcceptRequests
PushLong #mySTRING
PushLong #0 ; myICON
_ShowBootInfo
plb
rtl
*----------------------------
doSRQGOAWAY ldy #2
lda #0 ; do not remove me from memory
sta [dataOut],y
bra myREQUEST3
*----------------------------
myREQUEST phd
tsc
tcd
lda reqCode
cmp #3 ; srqGoAway
beq doSRQGOAWAY ; nah, I want to stay in memory...
cmp #$0101 ; finderSaysGoodbye
beq doBYE
myREQUEST2 cmp #$0104 ; finderSaysBeforeOpen
bne myREQUEST4
beq doOPEN
myREQUEST3 lda #$8000 ; call handled
sta result
myREQUEST4 pld
lda $02,s
sta $0c,s
lda $01,s
sta $0b,s
ply
ply
ply
ply
ply
rtl
*----------------------------
doBYE ldal fgTOOL222 ; did I activate the tool?
beq doBYE9 ; nope
_NTPShutDown ; yes, stop music & tool
PushWord #ntpTOOL ; unload it!
_UnloadOneTool
doBYE9 lda #0 ; tool is off
stal fgTOOL222
bra myREQUEST3 ; call handled
*----------------------------
doOPEN ldy #$0016
lda [dataIn],y ; printFlag
beq doOPEN2 ; 0 for open
doOPEN1 bra myREQUEST4
doOPEN2 ldy #$000a ; is it a NTP file?
lda [$0a],y
cmp #ntpTYPE
bne doOPEN1
iny
iny
lda [dataIn],y
cmp #ntpAUXTYPE
bne doOPEN1
*--- Is tool in memory?
ldal fgTOOL222
bne doOPEN3 ; yes
PushWord #ntpTOOL
PushWord #ntpVERSION
_LoadOneTool
bcs doOPEN1
lda #1
stal fgTOOL222
ldal myID
pha
_NTPStartUp
*--- Now, copy the GS/OS (STRL) pathname, we need a STR
doOPEN3 lda dataIn ; save dataIn ptr
stal ptrSAVE
lda dataIn+2
stal ptrSAVE+2
ldy #2 ; pathPtr
lda [dataIn],y
tax
iny
iny
lda [dataIn],y
sta dataIn+2
stx dataIn
ldy #768-2 ; copy path
]lp tyx
lda [dataIn],y
stal pathSONG,x
dey
dey
bpl ]lp
ldal pathSONG ; from STRL to STR
xba ; if path is long...
stal pathSONG ; ...ahem
ldal ptrSAVE+2
sta dataIn+2
ldal ptrSAVE
sta dataIn
*--- Now, play the song
PushLong #pathSONG2
_NTPLoadOneMusic
bcc doOPEN4
brl myREQUEST4 ; error
doOPEN4 PushWord #0 ; no loop
_NTPPlayMusic
brl myREQUEST3 ; muzak is playing!
*----------------------------
fgTOOL222 ds 2 ; <>0 if tool in mem
myID ds 2 ; memID
ptrSAVE ds 4 ; save dataIn ptr
pathSONG ds 1 ; STRL from GS/OS
pathSONG2 ds 768 ; STR to the NTP tool
*----------------------------
myBRUTAL str 'BrutalDeluxe~NTPPlayer~'
mySTRING asc 'NTPPlayer v01.00 by Brutal Deluxe'00
*myICON dw $0080 ; Icon type
* dw $00C8 ; Icon size
* dw $0014 ; Icon height
* dw $0014 ; Icon width
* hex 33333333333333333333 ; Icon image
* hex 3AAAAAAAAAAAAAAAAA83
* hex 3A88888888888888A883
* hex 3A8888888888888AA883
* hex 3A8811111111111AA883
* hex 3A88111111111FFAA883
* hex 3A8811FFFF11111AA883
* hex 3A88111111111FFAA883
* hex 3A881FFFF111FFFAA883
* hex 3A8811111111111AA883
* hex 3A88EE1111EE111AA883
* hex 3A886EEEEE6EEEEAA883
* hex 3A8864EE666666EAA883
* hex 3A88644EEEEE644AA883
* hex 3A886646EE64466AA883
* hex 3A88AAAAAAAAAAAAA883
* hex 3A8AAAAAAAAAAAAAA883
* hex 3AA88888888888888883
* hex 3A888888888888888883
* hex 33333333333333333333
* hex FFFFFFFFFFFFFFFFFFFF ; Icon mask
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF
* hex FFFFFFFFFFFFFFFFFFFF

Binary file not shown.

Binary file not shown.

BIN
ntp/ntp.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB