#include "ti86asm.inc" .org _asm_exec_ram nop jp ProgStart .dw 0 .dw ShellTitle ShellTitle: .db "Chessmaster 86 Puzzles",0 P .equ 1 B .equ 2 N .equ 3 R .equ 4 K .equ 5 Q .equ 6 p .equ 7 b .equ 8 n .equ 9 r .equ 10 k .equ 11 q .equ 12 ProgStart: call _clrLCD call _runindicoff ld hl, cstring3 ld de, $0b06 call drawstring ld hl, cstring4 ld de, $0b07 call drawstring puzzleloop: ld a, (currentpuzzle) add a, a ld l, a ld h, 0 add hl, hl add hl, hl add hl, hl add hl, hl add hl, hl ld de, puzzles add hl, de ld (curpos), hl ld b, 64 drawboardloop: push bc push hl ld a, (hl) ;get data info add a, a add a, a add a, a ld l, a ld h, 0 ld de, gfx_Empty add hl, de ld a, 64 ;get GPS coords sub b ld b, a and %00000111 ld e, a xor b rrca rrca rrca ld d, a call GridPutSprite pop hl inc hl pop bc djnz drawboardloop ld hl, puzzlemates ld a, (currentpuzzle) ld e, a ld d, b add hl, de ld a, (hl) ld de, $0f02 call drawnumber ld a, (currentpuzzle) inc a ld de, $0f01 call drawnumber ld hl, cstring1 ld de, $0b02 call drawstring ld hl, cstring2 ld de, $0b01 call drawstring getkeyloop: call _getky cp K_EXIT ret z cp K_ENTER jr z, loadpuzzle ld hl, currentpuzzle cp K_LEFT jr z, goleft cp K_RIGHT jr nz, getkeyloop ld a, (hl) inc a cp 75 jr nz, noresetright xor a noresetright ld (hl), a jp puzzleloop goleft ld a, (hl) dec a cp 255 jr nz, noresetleft ld a, 74 noresetleft: ld (hl), a jp puzzleloop loadpuzzle: ld hl, savevar-1 ;save info back into calc rst 20h rst 10h ret c ld a,b ex de,hl call _ahl_plus_2_pg3 call _set_abs_dest_addr xor a ld hl, (curpos) call _set_abs_src_addr ld hl, 64 xor a call _set_mm_num_bytes call _mm_ldir xor a ld hl, othersavedata call _set_abs_src_addr ld hl, 11 xor a call _set_mm_num_bytes call _mm_ldir ld hl, cstring5 ld de, $0303 call drawstring jp _pause GridPutSprite: push hl ; push hl to stack... pop ix ; ...and pop it into ix srl d ; de = (128 * y) + x rra ; carry flag -≶ msb of a and $80 ; a is either $00 or $80 or e ; add x offset (remember x <= 15) ld e,a ; de = (128 * y) + (x * 8) ld hl,$fc00 ; hl-> video memory add hl,de ; hl-> video memory + offset ld b,8 ; initialize loop counter ld de,16 ; screen is 16 bytes wide GPS_Loop: ld a,(ix + 0) ; get byte from sprite ld (hl),a ; put byte on screen inc ix ; move to next byte in sprite add hl,de ; move to next line on screen djnz GPS_Loop ; loop until sprite is drawn ret ; return puzzles: .db 0,0,0,0,0,0,0,0 ;puzzle 1 .db 0,0,0,0,0,0,0,0 .db 0,0,q,P,0,0,k,0 .db 0,0,0,0,K,0,0,0 .db 0,0,0,0,n,0,0,0 .db 0,0,0,0,0,0,P,0 .db 0,0,r,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db q,0,0,0,0,0,0,0 ;puzzle 2 .db 0,0,P,0,P,0,0,0 .db 0,0,0,K,0,0,P,k .db B,0,n,n,P,0,0,0 .db Q,p,0,0,0,0,0,0 .db 0,P,0,0,0,0,0,B .db 0,0,0,N,0,0,0,0 .db 0,0,0,R,0,R,0,b .db 0,0,Q,0,0,q,b,0 ;puzzle 3 .db 0,0,0,0,P,0,r,0 .db 0,0,P,0,n,0,R,0 .db 0,0,0,0,P,B,0,0 .db 0,0,n,0,0,0,0,0 .db b,0,k,P,0,0,0,0 .db p,0,0,0,r,0,0,0 .db R,K,0,0,0,0,0,N .db 0,0,0,0,0,0,0,0 ;puzzle 4 .db 0,k,0,0,0,0,0,0 .db 0,0,0,0,r,0,b,K .db 0,0,0,0,b,P,P,0 .db 0,0,0,0,0,0,0,N .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,q .db 0,0,0,q,0,0,k,0 ;puzzle 5 .db 0,P,0,0,0,0,0,0 .db 0,b,K,0,0,0,b,r .db 0,0,0,0,0,0,R,0 .db p,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,B,B,0,0,0,0 .db 0,0,r,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 6 .db 0,0,0,0,0,0,0,0 .db 0,P,0,0,0,0,0,0 .db 0,k,0,0,p,0,0,0 .db 0,0,0,0,0,P,0,0 .db r,0,0,0,Q,K,0,0 .db 0,0,0,0,0,n,0,0 .db 0,0,n,0,0,q,0,0 .db b,0,0,0,0,0,r,0 ;puzzle 7 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,n,0,0,0,0,k .db 0,0,0,0,0,0,0,P .db 0,0,0,0,0,N,0,K .db r,0,0,0,0,0,0,0 .db k,0,0,0,0,0,0,0 ;puzzle 8 .db 0,0,r,P,P,0,0,0 .db n,0,p,0,0,P,0,0 .db 0,0,0,K,p,q,0,0 .db r,N,P,0,0,0,0,0 .db b,N,0,R,P,p,0,0 .db 0,0,b,0,n,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,k,0,0 ;puzzle 9 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,n,0,P,q .db 0,0,0,0,0,P,R,0 .db 0,0,0,0,0,Q,K,0 .db 0,0,0,0,0,0,0,0 ;puzzle 10 .db P,0,0,0,0,0,0,0 .db 0,P,0,b,0,n,0,0 .db 0,p,0,0,0,0,0,0 .db 0,0,b,0,0,0,B,r .db 0,0,0,0,K,P,p,0 .db q,0,0,0,0,0,0,0 .db 0,n,B,0,0,0,0,k .db k,q,0,0,0,0,0,0 ;puzzle 11 .db 0,0,0,0,0,0,0,0 .db 0,0,r,0,0,0,0,0 .db 0,0,0,P,0,0,P,0 .db 0,0,0,K,0,0,0,0 .db 0,0,0,0,N,0,0,R .db 0,p,0,0,0,n,0,0 .db 0,0,0,0,n,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 12 .db 0,0,0,k,n,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,P,0,K,0,0,0 .db 0,0,0,0,0,0,0,q .db 0,0,0,p,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 13 .db 0,0,0,0,0,0,0,0 .db b,0,0,0,0,q,0,0 .db 0,0,0,0,0,0,P,0 .db 0,0,0,0,p,0,P,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,p,Q,p,0,0 .db r,0,0,0,R,K,b,k .db b,0,0,0,R,0,0,0 ;puzzle 14 .db 0,Q,0,0,0,0,0,P .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,r,0 .db 0,R,0,N,K,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,p,0,n,n .db 0,B,0,q,0,0,0,k .db 0,0,0,0,k,q,0,0 ;puzzle 15 .db 0,0,0,P,n,0,0,0 .db 0,p,P,K,P,B,r,0 .db 0,0,0,0,0,0,0,0 .db 0,p,0,P,0,R,0,P .db 0,0,0,0,n,0,0,0 .db B,0,0,0,0,0,0,b .db 0,0,Q,0,r,0,0,0 .db N,0,0,0,0,r,0,0 ;puzzle 16 .db k,0,0,0,0,n,Q,P .db 0,0,0,0,0,0,0,0 .db 0,0,q,0,0,0,0,0 .db 0,0,0,0,0,0,P,0 .db P,0,0,b,0,K,P,0 .db 0,0,N,b,0,B,P,0 .db 0,0,n,0,0,r,0,0 .db 0,0,0,0,r,0,k,0 ;puzzle 17 .db 0,0,0,0,B,P,n,P .db 0,0,0,P,0,0,0,b .db 0,r,0,0,0,0,N,0 .db 0,0,P,0,K,0,n,0 .db 0,0,0,0,0,0,0,B .db 0,0,P,0,p,0,R,0 .db q,0,0,0,0,0,0,b .db 0,0,0,0,b,n,0,0 ;puzzle 18 .db N,0,0,0,0,0,0,0 .db 0,P,0,p,0,r,0,0 .db 0,P,K,0,0,0,0,R .db 0,0,0,0,0,0,B,p .db p,p,0,0,0,0,k,0 .db 0,0,0,0,0,n,0,0 .db b,0,0,r,B,0,q,0 .db k,0,0,0,q,0,0,0 ;puzzle 19 .db P,0,0,0,0,0,R,0 .db 0,0,0,0,0,P,b,0 .db 0,0,0,0,0,n,0,r .db r,N,0,0,N,K,0,b .db R,0,0,0,0,P,0,0 .db 0,0,0,p,0,0,0,n .db B,B,0,0,0,0,0,0 .db k,0,b,0,0,0,0,0 ;puzzle 20 .db 0,0,0,0,0,B,0,0 .db 0,r,0,P,0,n,0,0 .db 0,P,P,n,0,q,0,0 .db 0,0,K,p,0,0,0,0 .db p,0,0,0,r,0,0,0 .db 0,0,p,0,0,N,0,P .db b,0,0,0,0,0,B,0 .db 0,0,n,0,0,B,0,0 ;puzzle 21 .db b,0,0,n,0,0,0,k .db 0,0,N,0,p,0,0,r .db 0,p,0,K,0,0,0,0 .db 0,R,0,0,0,0,r,0 .db 0,p,0,0,P,0,0,B .db q,0,0,0,N,0,0,0 .db 0,b,0,0,0,0,0,0 .db 0,b,0,0,0,N,0,0 ;puzzle 22 .db 0,k,0,0,0,0,B,0 .db n,P,0,n,r,0,0,R .db 0,0,0,K,0,0,0,0 .db R,0,0,p,0,0,P,0 .db 0,0,0,0,0,0,0,P .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,r,q,0,0 .db 0,0,k,r,q,0,0,b ;puzzle 23 .db B,0,0,0,0,0,0,P .db 0,0,0,0,n,0,0,0 .db 0,0,0,n,0,0,0,0 .db r,0,B,0,K,P,0,p .db 0,0,P,0,P,0,0,Q .db 0,0,0,N,b,0,p,0 .db 0,0,R,0,0,0,0,0 .db 0,n,0,0,0,0,0,0 ;puzzle 24 .db P,0,0,0,0,0,0,0 .db b,K,0,0,n,0,0,r .db B,R,P,0,0,0,0,k .db 0,r,0,N,0,0,0,0 .db Q,0,q,0,b,0,0,P .db 0,0,0,0,0,0,0,0 .db 0,0,R,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 25 .db k,0,q,0,0,0,0,0 .db 0,0,0,0,0,p,0,0 .db 0,0,0,K,b,b,0,r .db 0,0,0,0,P,0,0,0 .db P,0,0,0,0,n,0,0 .db Q,P,0,0,0,0,R,0 .db 0,0,0,0,0,0,0,R .db 0,B,0,0,0,0,0,0 ;puzzle 26 .db Q,n,0,0,P,k,0,0 .db 0,0,0,0,p,0,0,0 .db 0,0,0,0,K,P,0,0 .db 0,0,p,0,0,P,0,0 .db b,0,0,0,0,0,0,0 .db 0,0,n,0,0,q,0,0 .db 0,N,N,0,0,0,0,b .db 0,0,0,0,N,0,0,0 ;puzzle 27 .db 0,0,0,0,0,0,0,0 .db P,P,0,0,0,0,0,b .db 0,0,0,0,k,0,0,n .db q,p,0,0,r,0,0,0 .db 0,0,P,K,0,0,0,0 .db 0,0,n,0,0,P,0,0 .db 0,0,0,0,B,Q,0,0 .db 0,R,R,0,0,0,0,0 ;puzzle 28 .db 0,0,0,0,n,0,P,b .db 0,0,0,p,P,0,0,0 .db 0,0,0,0,q,0,k,0 .db 0,P,K,0,0,0,0,0 .db p,r,0,0,0,n,0,0 .db p,0,0,0,B,0,0,0 .db 0,0,0,0,0,N,0,0 .db 0,0,0,n,N,0,0,B ;puzzle 29 .db P,0,0,0,q,0,N,b .db 0,0,k,P,0,0,0,n .db 0,0,0,0,0,0,0,P .db 0,0,P,K,p,0,0,0 .db 0,0,P,0,0,0,0,0 .db 0,0,p,0,0,0,0,0 .db 0,0,b,0,0,0,0,0 .db 0,k,0,0,0,0,0,0 ;puzzle 30 .db 0,P,0,0,0,0,0,0 .db 0,0,0,n,q,0,0,0 .db 0,0,K,0,b,0,0,0 .db 0,0,p,0,0,0,0,0 .db p,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,p,0 .db N,Q,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 31 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,P,0,0,0 .db q,0,0,0,0,0,0,0 .db p,R,0,n,0,0,0,0 .db K,b,0,0,0,k,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 32 .db 0,0,0,0,P,0,k,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,P,0,0,P .db 0,0,0,0,P,0,P,0 .db 0,0,0,0,r,r,n,K .db 0,0,0,0,0,0,0,0 ;puzzle 33 .db 0,0,n,k,0,0,0,0 .db 0,0,P,P,P,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,P,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db P,0,0,0,0,0,0,0 .db K,B,q,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 34 .db 0,0,q,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,k,0,0 .db 0,0,0,0,b,0,0,0 .db 0,0,0,0,0,0,P,0 .db 0,0,0,B,0,0,0,K .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 35 .db 0,p,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,k,b,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,B,0,0,K .db 0,k,0,0,0,0,0,q ;puzzle 36 .db 0,0,0,0,0,P,0,0 .db 0,0,0,0,0,P,0,0 .db 0,0,0,0,0,0,P,0 .db 0,0,0,0,0,0,n,0 .db 0,0,0,0,0,0,0,n .db 0,0,0,0,0,0,P,0 .db 0,N,0,0,0,0,0,K .db 0,0,0,0,0,b,0,0 ;puzzle 37 .db 0,0,0,0,0,0,0,0 .db q,0,0,0,0,0,0,0 .db 0,0,p,n,P,p,0,0 .db p,0,0,K,p,P,0,0 .db B,0,0,N,0,p,0,0 .db 0,0,0,P,0,0,0,0 .db 0,0,0,n,0,0,k,0 .db B,0,0,0,0,0,0,K ;puzzle 38 .db 0,0,b,0,0,0,0,0 .db 0,0,0,0,n,P,0,k .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,P,0,0,0 .db 0,0,N,0,0,0,r,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,N,0,0 ;puzzle 39 .db 0,0,0,0,0,0,0,0 .db b,0,0,0,0,0,0,0 .db P,0,0,0,0,0,0,B .db K,0,0,0,0,0,0,0 .db 0,0,0,n,0,0,0,0 .db 0,k,p,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 40 .db 0,0,0,0,0,0,r,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,k,0,0,0,0 .db 0,0,q,B,0,0,0,K .db 0,0,0,0,0,0,0,0 .db 0,0,0,R,0,0,0,0 .db 0,B,0,0,0,0,0,0 ;puzzle 41 .db 0,0,0,0,0,k,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,P,0,0,0,0,0 .db 0,0,r,p,0,0,0,0 .db P,N,0,b,0,n,0,0 .db B,0,0,0,n,0,0,0 .db 0,0,0,K,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 42 .db K,0,0,0,0,0,0,0 .db p,0,P,0,k,0,0,0 .db q,0,0,0,0,0,0,0 .db 0,0,0,0,b,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,N,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,b,0,0,0,0,0 ;puzzle 43 .db 0,0,0,0,0,0,0,k .db 0,0,p,0,0,0,r,0 .db 0,0,0,0,0,0,0,0 .db 0,0,n,0,0,K,0,n .db 0,0,0,0,0,p,0,0 .db 0,0,0,0,0,N,0,0 .db 0,N,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 44 .db 0,N,0,0,0,n,P,0 .db 0,n,0,0,0,0,q,0 .db 0,B,K,p,0,0,0,0 .db P,0,P,0,0,P,0,0 .db p,0,p,0,0,r,0,0 .db 0,0,0,p,0,0,p,k .db b,0,0,r,0,0,0,0 .db 0,0,N,0,0,0,0,0 ;puzzle 45 .db 0,0,0,0,0,0,P,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,P,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,n .db 0,0,0,P,P,0,b,0 .db k,q,0,B,K,0,0,0 .db 0,0,R,0,0,0,0,0 ;puzzle 46 .db 0,0,0,0,0,0,0,P .db 0,0,0,0,0,0,0,0 .db 0,P,P,0,0,0,0,0 .db 0,0,P,0,0,0,0,0 .db 0,0,b,0,0,0,q,k .db 0,P,0,n,0,0,p,0 .db K,0,0,0,0,0,0,0 .db n,0,0,0,0,0,0,0 ;puzzle 47 .db 0,0,P,0,0,P,0,0 .db p,0,K,0,0,p,P,0 .db P,0,p,0,k,0,p,0 .db p,0,r,0,0,0,0,0 .db 0,0,p,0,0,0,0,b .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,r,0 .db 0,0,0,r,0,0,0,0 ;puzzle 48 .db 0,0,0,0,P,0,0,0 .db 0,0,0,0,0,0,0,b .db 0,0,0,0,P,0,0,0 .db 0,0,0,0,K,0,p,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,k,0,0 .db 0,0,0,0,0,0,0,0 .db 0,k,0,0,0,0,0,0 ;puzzle 49 .db 0,0,0,P,0,0,b,0 .db 0,0,0,n,P,0,0,0 .db 0,0,0,0,P,P,P,0 .db 0,p,0,K,0,0,p,0 .db 0,r,0,0,0,0,p,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,b .db 0,N,0,0,K,0,k,0 ;puzzle 50 .db 0,0,0,0,0,0,0,r .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,n,0,0,0 .db 0,0,0,0,0,0,n,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 51 .db 0,P,0,0,0,0,0,0 .db 0,k,0,P,P,0,q,0 .db 0,0,0,K,0,0,0,0 .db 0,0,0,b,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 52 .db P,0,p,0,0,0,0,0 .db r,0,0,p,0,0,0,0 .db p,0,0,0,0,0,0,0 .db K,p,b,0,0,0,0,0 .db 0,0,k,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 53 .db 0,n,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,n,0,k,0,0,0 .db 0,0,K,0,0,0,0,0 .db 0,0,0,0,0,0,0,P .db 0,p,0,0,0,0,0,0 .db r,0,0,0,0,0,0,0 .db 0,0,0,0,0,r,0,n ;puzzle 54 .db 0,N,0,0,0,0,b,K .db 0,k,0,0,0,0,n,p .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,N,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,b,0,0,0,0 ;puzzle 55 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,p .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,n,K,n .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,k .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 56 .db 0,0,0,0,k,0,0,0 .db 0,0,0,0,n,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,K,p,0,0 .db 0,p,0,0,N,0,0,p .db 0,0,0,0,q,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 57 .db 0,0,0,0,0,r,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,N .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db p,0,p,0,0,0,0,p .db K,0,k,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 58 .db 0,0,0,n,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,P,0,0,n,0 .db 0,P,0,K,0,0,0,0 .db 0,0,0,0,P,0,0,0 .db 0,p,p,0,b,0,P,0 .db 0,0,0,0,0,0,k,B .db 0,0,0,0,0,0,0,0 ;puzzle 59 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,P,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,p,P,K,0,k .db 0,0,0,0,P,0,n,0 .db 0,0,0,0,p,0,0,0 .db 0,0,0,0,0,0,0,n .db 0,0,0,0,0,0,0,0 ;puzzle 60 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,n,0,0 .db 0,0,0,0,0,0,n,0 .db 0,0,0,P,0,0,0,K .db 0,0,0,P,0,0,0,0 .db 0,0,0,b,0,0,k,N .db N,0,0,0,0,0,0,0 ;puzzle 61 .db 0,0,0,P,0,P,0,0 .db n,P,K,n,P,0,P,0 .db 0,P,0,0,p,0,0,0 .db 0,0,0,q,0,0,0,0 .db 0,0,0,0,0,0,b,0 .db B,0,0,0,0,0,0,0 .db 0,0,0,0,k,0,0,0 .db 0,0,n,0,0,0,0,0 ;puzzle 62 .db 0,0,0,0,0,0,0,0 .db K,0,0,k,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db P,0,p,b,0,0,0,0 .db p,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 63 .db 0,0,k,0,p,0,0,0 .db 0,0,0,P,0,0,b,0 .db 0,0,0,K,0,n,0,0 .db 0,0,P,p,0,0,0,0 .db 0,0,p,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 64 .db 0,0,0,r,0,0,0,0 .db 0,0,0,0,P,n,0,0 .db 0,0,p,0,K,0,k,0 .db 0,0,0,P,0,0,0,0 .db P,0,0,0,0,P,0,0 .db 0,p,0,0,0,p,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,N,0,Q,0 ;puzzle 65 .db 0,0,0,0,P,0,0,N .db 0,0,p,0,P,0,0,0 .db p,0,0,P,0,0,P,0 .db k,0,K,P,0,0,0,0 .db 0,r,0,n,0,0,b,0 .db 0,p,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,b,0,0,N,k ;puzzle 66 .db 0,0,0,0,R,0,0,P .db 0,0,0,0,0,K,0,0 .db 0,b,0,0,0,p,n,0 .db 0,0,0,0,P,p,0,0 .db 0,0,0,0,n,0,0,0 .db 0,0,0,P,0,0,0,P .db 0,0,0,0,0,0,0,0 .db K,0,0,0,0,0,0,0 ;puzzle 67 .db 0,0,0,r,0,0,0,0 .db 0,0,0,P,0,0,0,0 .db 0,r,P,n,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,k,0,N .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,N,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 68 .db 0,0,0,0,0,0,0,0 .db 0,0,0,P,0,0,0,R .db 0,P,0,P,P,0,0,0 .db 0,r,0,p,0,n,0,0 .db p,0,K,p,0,0,P,0 .db p,P,0,0,0,0,0,R .db 0,k,0,r,n,0,B,B .db 0,0,0,0,0,r,0,0 ;puzzle 69 .db 0,0,0,0,0,0,0,R .db 0,0,p,0,0,0,0,P .db 0,0,0,0,0,0,0,n .db P,0,0,0,P,0,P,0 .db 0,0,0,0,K,0,p,0 .db p,0,0,0,0,0,0,0 .db b,0,0,k,0,b,0,0 .db 0,0,0,n,0,0,0,0 ;puzzle 70 .db 0,0,0,0,0,0,0,0 .db 0,0,k,n,0,0,0,0 .db 0,0,0,p,K,0,b,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db p,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 ;puzzle 71 .db 0,0,0,0,0,0,0,B .db 0,0,0,0,0,0,0,b .db 0,0,0,r,0,P,0,P .db P,0,0,0,0,0,P,K .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,k,p .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,b,0 ;puzzle 72 .db 0,0,0,0,R,0,0,0 .db p,0,0,0,0,P,0,0 .db 0,0,n,0,0,K,0,0 .db 0,0,0,0,P,0,0,0 .db 0,0,0,0,P,0,q,0 .db 0,0,0,0,p,0,0,0 .db k,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,K ;puzzle 73 .db 0,r,0,0,0,0,P,p .db 0,0,0,0,0,0,p,0 .db 0,0,0,0,Q,0,0,0 .db 0,0,0,0,r,0,0,0 .db 0,0,p,0,0,p,0,0 .db 0,0,0,0,0,0,0,P .db 0,0,0,0,0,0,0,k .db 0,0,0,0,0,0,0,0 ;puzzle 74 .db 0,0,0,0,0,0,0,0 .db 0,P,0,0,0,0,0,0 .db 0,k,0,0,0,q,B,K .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,n,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 .db 0,0,B,0,0,0,0,0 ;puzzle 75 .db 0,0,0,P,k,0,0,0 .db 0,n,0,p,0,0,0,0 .db 0,0,b,0,K,0,0,0 .db 0,P,P,0,p,0,0,0 .db 0,P,B,0,p,0,n,0 .db 0,N,0,0,0,0,0,0 .db 0,0,0,0,0,0,0,0 puzzlemates .db 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .db 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 .db 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 .db 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 .db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 .db 4, 4, 4, 4, 5, 5, 5, 5, 5, 5 gfx_Empty: .db %10101010 .db %00000001 .db %00000000 .db %00000001 .db %00000000 .db %00000001 .db %00000000 .db %00000001 gfx_BPawn: .db %00000000 .db %00011000 .db %00111100 .db %00111100 .db %00011000 .db %00111100 .db %00111100 .db %00000000 gfx_BBishop: .db %00010000 .db %00101000 .db %00111100 .db %00111000 .db %00011000 .db %00111100 .db %00111100 .db %00000000 gfx_BKnight: .db %00111000 .db %01011100 .db %01111110 .db %01101110 .db %00011100 .db %00111110 .db %00111110 .db %00000000 gfx_BRook: .db %00000000 .db %01011010 .db %01111110 .db %01111110 .db %00011000 .db %00111100 .db %01111110 .db %00000000 gfx_BKing: .db %00011000 .db %00011000 .db %01111110 .db %01111110 .db %00011000 .db %00111100 .db %01111110 .db %00000000 gfx_BQueen: .db %00000000 .db %01011010 .db %01011010 .db %01011010 .db %01011010 .db %01111110 .db %00111100 .db %00000000 gfx_WPawn: .db %00000000 .db %00011000 .db %00100100 .db %00100100 .db %00011000 .db %00100100 .db %00111100 .db %00000000 gfx_WBishop: .db %00010000 .db %00101000 .db %00110100 .db %00100100 .db %00011000 .db %00100100 .db %00111100 .db %00000000 gfx_WKnight: .db %00111000 .db %01000100 .db %01010010 .db %00101010 .db %00010100 .db %00100010 .db %00111110 .db %00000000 gfx_WRook: .db %00000000 .db %01011010 .db %01100110 .db %01000010 .db %00100100 .db %01000010 .db %01111110 .db %00000000 gfx_WKing: .db %00111100 .db %00100100 .db %01100110 .db %01000010 .db %01100110 .db %00100100 .db %01111110 .db %00000000 gfx_WQueen: .db %00000000 .db %01011010 .db %01100110 .db %01000010 .db %01000010 .db %01000010 .db %00111100 .db %00000000 curpos .dw 0 currentpuzzle .db 0 cstring1 .text "Mate in" cstring2 .text "Puzzle#" cstring3 .text "Biobytes" cstring4 .text "Software" cstring5 .text "Puzzle Loaded!" savevar .db 6, "CMsave" drawstring: ld (_curRow), de jp _puts drawnumber: ld (_curRow), de ld l, a xor a ld h, a jp _dispAHL othersavedata: .db 0,0,0,0,0,0,0,1,1,1,2 .end