mirror of
https://github.com/photogrammer/PrintShopCompanion-Apple-II.git
synced 2024-06-11 05:29:29 +00:00
139 lines
2.3 KiB
Plaintext
139 lines
2.3 KiB
Plaintext
|
NLS
|
||
|
TTL "S:TESTPROT"
|
||
|
ORG = $1000
|
||
|
;
|
||
|
; Check Print Shop or Companion
|
||
|
; disk for copy protection and
|
||
|
; return the following error codes:
|
||
|
; PEEK(0)=0 ok disk
|
||
|
; =1 pirate copy
|
||
|
;
|
||
|
;
|
||
|
ERRCODE EPZ $00
|
||
|
TIMERLO EPZ $01
|
||
|
TIMERMD EPZ $02
|
||
|
TIMERHI EPZ $03
|
||
|
TEMP EPZ $04
|
||
|
;
|
||
|
FLAGS = $BB00
|
||
|
SLOT = $B7F7
|
||
|
;
|
||
|
WAIT = $FCA8
|
||
|
;-----------
|
||
|
ORG ORG
|
||
|
OBJ $800
|
||
|
;-----------
|
||
|
JMP RECAL
|
||
|
JMP CHECK
|
||
|
;-----------
|
||
|
;
|
||
|
; Turn on drive and recal to track 34.
|
||
|
;
|
||
|
RECAL JSR DRIVEON
|
||
|
LDA #$80
|
||
|
STA $478
|
||
|
LDA #0
|
||
|
JSR $B9A0
|
||
|
LDA #34*2
|
||
|
JSR $B9A0
|
||
|
JMP DRIVEOFF
|
||
|
;-----------
|
||
|
;
|
||
|
; Check for copy protection
|
||
|
;
|
||
|
CHECK JSR DRIVEON
|
||
|
;
|
||
|
; Set timer for $020000
|
||
|
;
|
||
|
LDY #2
|
||
|
STY TIMERHI
|
||
|
DEY
|
||
|
STY TIMERLO
|
||
|
STY TIMERMD
|
||
|
;
|
||
|
; Set flags to FF
|
||
|
;
|
||
|
LDA #$FF
|
||
|
^0 STA FLAGS,Y
|
||
|
INY
|
||
|
BNE <0
|
||
|
;
|
||
|
; Main Loop:
|
||
|
;
|
||
|
TOP DEC TIMERLO
|
||
|
BNE >0
|
||
|
DEC TIMERMD
|
||
|
BNE >0
|
||
|
DEC TIMERHI
|
||
|
BPL >0
|
||
|
LDA #1
|
||
|
JMP ERROR
|
||
|
;
|
||
|
^0 LDX SLOT
|
||
|
LDA $C08C,X
|
||
|
BPL *-3
|
||
|
^1 CMP #$D4
|
||
|
BNE TOP
|
||
|
JSR GETNYBL
|
||
|
^2 CMP #$D5
|
||
|
BNE <1
|
||
|
JSR GETNYBL
|
||
|
^3 CMP #$DE
|
||
|
BNE <2
|
||
|
JSR GETNYBL
|
||
|
CMP #$D4
|
||
|
BNE <3
|
||
|
NOP
|
||
|
LDA $C08C,X
|
||
|
BPL *-3
|
||
|
ROL
|
||
|
STA TEMP
|
||
|
LDA $C08C,X
|
||
|
BPL *-3
|
||
|
AND TEMP
|
||
|
TAY
|
||
|
JSR GETNYBL
|
||
|
CMP #$F5
|
||
|
BNE TOP
|
||
|
JSR GETNYBL
|
||
|
CMP #$AA
|
||
|
BNE TOP
|
||
|
LDA FLAGS,Y
|
||
|
BEQ TOP
|
||
|
LDA #$00
|
||
|
STA FLAGS,Y
|
||
|
TAX
|
||
|
TAY
|
||
|
^0 LDA FLAGS,Y
|
||
|
BMI *+3
|
||
|
INX
|
||
|
INY
|
||
|
BNE <0
|
||
|
CPX #$A0
|
||
|
BCC TOP
|
||
|
;
|
||
|
LDA #0
|
||
|
ERROR STA ERRCODE
|
||
|
DRIVEOFF LDX SLOT
|
||
|
LDA $C088,X
|
||
|
RTS
|
||
|
;-----------
|
||
|
DRIVEON LDX SLOT
|
||
|
LDA $C089,X
|
||
|
LDA #$80
|
||
|
JSR WAIT
|
||
|
JMP WAIT
|
||
|
;-----------
|
||
|
;
|
||
|
; Get a disk nybble
|
||
|
;
|
||
|
GETNYBL LDA $C08C,X
|
||
|
BPL GETNYBL
|
||
|
RTS
|
||
|
;-----------
|
||
|
;
|
||
|
;
|
||
|
;
|
||
|
USR "O:TESTPROT",ORG
|
||
|
END
|