diff --git a/ntp/NTPPlayer.s b/ntp/NTPPlayer.s new file mode 100644 index 0000000..a565658 --- /dev/null +++ b/ntp/NTPPlayer.s @@ -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 + diff --git a/ntp/NTPPlayer_ResourceFork.bin b/ntp/NTPPlayer_ResourceFork.bin new file mode 100644 index 0000000..d278782 Binary files /dev/null and b/ntp/NTPPlayer_ResourceFork.bin differ diff --git a/ntp/ninjatrackerplus_finderextension_v1.2mg b/ntp/ninjatrackerplus_finderextension_v1.2mg new file mode 100644 index 0000000..83f6996 Binary files /dev/null and b/ntp/ninjatrackerplus_finderextension_v1.2mg differ diff --git a/ntp/ntp.jpg b/ntp/ntp.jpg new file mode 100644 index 0000000..ae21ce6 Binary files /dev/null and b/ntp/ntp.jpg differ