69 lines
1.3 KiB
NASM
69 lines
1.3 KiB
NASM
|
*
|
|||
|
*SECURITY EXERCISE TABLE
|
|||
|
*
|
|||
|
SECBTAB
|
|||
|
.BYTE >F ;CLEAR THE SUCKER
|
|||
|
.BYTE >F ;CLEAR THE SUCKER
|
|||
|
.BYTE >F ;CLEAR THE SUCKER
|
|||
|
|
|||
|
.BYTE >8 ;CLOCK IT
|
|||
|
.BYTE >45 ;READ A 4
|
|||
|
|
|||
|
.BYTE >4 ;LOAD SEED
|
|||
|
.BYTE >3 ;LOAD A 3
|
|||
|
|
|||
|
.BYTE >8 ;CLOCK IT
|
|||
|
.BYTE >8 ;CLOCK IT
|
|||
|
.BYTE >8 ;CLOCK IT
|
|||
|
.BYTE >F5 ;READ AN F
|
|||
|
|
|||
|
.BYTE >8 ;CLOCK IT
|
|||
|
.BYTE >8 ;CLOCK IT
|
|||
|
.BYTE >A5 ;READ AN A
|
|||
|
|
|||
|
.BYTE >FF ;ITS ALL OVER
|
|||
|
.EVEN
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
* *
|
|||
|
* SECURITY - AND FINALLY ... THERE IS SECURITY! *
|
|||
|
* B0 = RETURN ADDRESS *
|
|||
|
* SETS GLOBAL SEC_FLAG TO 1 IF BREECH! *
|
|||
|
* NOTE: TRASHES A0,A1,A2,A3,A4,A6 *
|
|||
|
* *
|
|||
|
**************************************************************************
|
|||
|
SECURITY
|
|||
|
CLR A0
|
|||
|
MOVE A0,@SEC_FLAG,W
|
|||
|
MOVI SECBTAB,A0
|
|||
|
GETST A6
|
|||
|
DINT
|
|||
|
SECLOOP
|
|||
|
MOVB *A0,A1
|
|||
|
ADDK 8,A0
|
|||
|
SLL 24,A1 ; STRIP OUT THE CRUD
|
|||
|
SRL 24,A1
|
|||
|
CMPI >FF,A1
|
|||
|
JREQ SECCHX ; WE ARE DONE
|
|||
|
MOVE A1,A2
|
|||
|
SLL 8,A1
|
|||
|
MOVI SECCHIP/2,A3
|
|||
|
SLL 1,A3
|
|||
|
ANDI >0F00,A1
|
|||
|
MOVE A1,*A3,W
|
|||
|
CMPI >0500,A1 ;READ IT ?
|
|||
|
JRNE SECLOOP ;NO READ CYCLE
|
|||
|
|
|||
|
MOVE *A3,A4,W ;CHECK OUT READ DATA
|
|||
|
SLL 16,A4
|
|||
|
SRL 28,A4
|
|||
|
SRL 4,A2
|
|||
|
CMP A4,A2
|
|||
|
JREQ SECLOOP
|
|||
|
SECERR ;BOGUS SHIT = ERROR
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,@SEC_FLAG,W
|
|||
|
SECCHX
|
|||
|
PUTST A6
|
|||
|
FRET B0
|
|||
|
|