Hello,
About the sensory 9 opening library :
- Subroutine F291 looks for a next move in the library and tests whether it is the same one that has been played.
If so, finish, if not, then test its brothers.
If they are all different or no brothers, end library.
Code:
F291 : jsr LF2D5 ; F2D5 search for next move and detect brother move and/or end of variant.
F294 : cmp X009B
F296 : beq LF2A2
F298 : jsr LF2F2 ; F2F2 brother processing, and in some cases #$Cx jump over x bytes, x from 0 to 7.
F29B : bcc LF291 ; another brother
F29D : lda #$FF ; out of library
F29F : sta X009A ; in flag
F2A1 : rts
- F2A2 browses the library.
Check that you are not already out of the library.
If code #$C4, no hit and end of library.
If code #$C2, it is a jump, 2 following bytes are the address (if null address, end of library).
Otherwise normal move.
The Sensory 9 has a special mode (F5) that allows this library to be extended to less good moves.
Cordially.