.cpu z80 pin equ 0 ;Input port (switches) poutb equ 0 ;Output port base (LEDs) pwobase equ 64 pwobbit equ 6 pwmbase equ 64 pwmbbit equ 6 numleds equ 72 ; Has to be multiple of 8 numledbytes equ numleds/8 fullbright equ pwmbase-1 halfbright equ pwmbase/2 ledbr equ 8000h ;LED brightness (0-16) ledbc equ ledbr+80 ;LED blink counter ledbp equ ledbc+80 ;LED blink counter preset values ledbd equ ledbp+80 ;LED blink direction ledbb equ ledbd+80 ;LED brightness base values etables equ ledbb+80 ;LED blink exponential tables etable equ etables+80*2 ; delcnt equ etable+2 ;the flash delay counter intcnt equ delcnt+1 ;interrupt counter seed equ intcnt+1 ;random seed seed2 equ seed+1 tabtab equ seed2+1 jumpadr equ tabtab+numleds*2 pwtab equ jumpadr+2 intcode equ pwtab+pwobase*2+2 ramend equ intcode+(TABSMPE-TABSMP)*PWMBASE org 0000h di im 1 ld sp,0000h DARK: ld a,0ffh ;First switch all leds off ld b,9 ld c,0 DARK1: out (c),a inc c djnz DARK1 ld hl,ledbr ; Compute checksum of the work area in RAM ld c,7fh BSUM1: add a,(hl) inc hl djnz BSUM1 dec c jr nz,BSUM1 ld d,a jr BOOT ;-------------------------------------------------------------------------- ; Timer interrupt org 038h TINT: ex af,af' exx ld hl,intcnt ;determine the phase of PWM inc (hl) ld hl,(jumpadr) jp (hl) ;-------------------------------------------------------------------- db 0dh,0ah db "Stars 2.0 (C) 2002-2010 PCSoft" db 0dh,0ah BOOT: xor a ld hl,ledbr ;clear RAM ld c,7fh RAMCLR: ld (hl),a inc hl djnz RAMCLR dec c jr nz,RAMCLR ld hl,seed ld (hl),d ld a,r xor d and a,07fh ld r,a call MAKETAB MLOOP: ei CHKLOOP: in a,(pin) and 3 jr z,LEDOFF dec a jr z,LEDHALF dec a jr z,LEDFLASH jp LEDBLINK LEDOFF: xor a call FILL ld bc,0300h jr CHKMODE ;------------------------------------------------------------------ ; All leds with a constant value ; LEDHALF: ld a,halfbright call FILLDIST ; Constant values around 50% ld bc,0301h ; The values have to differ to prevent the wires to make too much noise CHKMODE: halt in a,(pin) and b cp c jr z,CHKMODE jr CHKLOOP LEDFULL: ld a,fullbright call FILL ld bc,0302h jr CHKMODE FILL: ld b,numleds ld hl,ledbr FILL1: ld (hl),a inc hl djnz FILL1 call UPDTAB ret FILLDIST: ; Fill with values distributed around the required one ld b,numleds ld hl,ledbr ld c,a FILLD1: ld a,b and a,7 add a,c ld (hl),a inc hl djnz FILLD1 call UPDTAB ret ;---------------------------------------------------- ; ; Flash some LEDs at time ; LEDFLASH: call RANDOMIZE ; Initialize the base brightness ld hl,ledbb ld ix,ledbr ld b,numleds>>1 FLS1: call RANDOM ld d,a and 7 add a,1 ld (hl),a ld (ix),a inc hl inc ix ld a,d rrca rrca rrca and 7 add a,1 ld (hl),a ld (ix),a inc hl inc ix djnz FLS1 call UPDTAB ;---------------------- ld hl,ledbp ld b,numleds FLS2: call RANDOM and 07fh add a,40h ld (hl),a inc hl djnz FLS2 ld hl,ledbc ld b,numleds FLS3: call RANDOM and 07fh add a,1 ld (hl),a inc hl djnz FLS3 ld hl,ledbd ld b,numleds xor a FLS4: ld (hl),a inc hl djnz FLS4 ; FLS10: ld de,ledbd ld hl,ledbc ld b,numleds FLS11: ld a,r and a jr z,FLS13 ; random phase change ld a,(de) ; this led is flashing - skip and a jr nz,FLS13 dec (hl) ; it is not the time yet jr nz,FLS12 call PREPFL jr FLS13 FLS12: ld a,(intcnt) and a call z,MODBBR FLS13: inc hl inc de djnz FLS11 FLS20: ld de,ledbd ld b,numleds FLS21: ld a,(de) and a call nz,DOFLASH inc de djnz FLS21 FLS90: call UPDTAB halt in a,(pin) and 3 cp 2 jr z,FLS10 jp MLOOP MODBBR: push hl push de push bc ld a,numleds sub b ld c,a ld b,0 call RANDOM ld hl,ledbb add hl,bc and 7 add a,1 ld (hl),a ld hl,ledbr add hl,bc ld (hl),a pop bc pop de pop hl ret DOFLASH: push de push bc ld a,numleds sub b ld c,a ld b,0 ld hl,etables add hl,bc add hl,bc ld a,(de) ld e,(hl) inc hl ld d,(hl) ex de,hl cp 2 ld a,(hl) jr z,FLSDN FLSUP: cp pwmbase-1 jr c,FLSUP1 ld hl,ledbd add hl,bc ld (hl),2 ; change the flash direction to down jr DOFLS5 ; set the brightness and leave FLSUP1: inc hl DOFLS4: ex de,hl ld (hl),d dec hl ld (hl),e jr DOFLS5 FLSDN: ld ix,ledbb add ix,bc cp (ix) jr z,FLSDN2 jr nc,FLSDN1 FLSDN2: ld a,(ix) ld hl,ledbd add hl,bc ld (hl),b ;0 - the flash is done jr DOFLS5 FLSDN1: dec hl jr DOFLS4 DOFLS5: ld hl,ledbr add hl,bc ld (hl),a DOFLS9: pop bc pop de ret PREPFL: push hl ; prepare for the flash push de push bc ld a,numleds sub b ld c,a ld b,0 ex de,hl ld hl,ledbp ; re-fill the counter add hl,bc ld a,r cp 20h jr nc,PFLS5 push de call RANDOM pop de and 7fh add a,40h ld (hl),a PFLS5: ld a,(hl) ld (de),a call RANDOM ; select the flash speed and 01eh ;0-15 ld hl,EXPTABLES+8h add a,l ld l,a ld e,(hl) inc hl ld d,(hl) ld hl,ledbb ; find the position for the flash according to the base brightness add hl,de ld a,(hl) and 01fh ; for the case that the base brightness is out of range ex de,hl PFLS1: cp (hl) jr c,PFLS2 inc hl jr PFLS1 PFLS2: dec hl ex de,hl ld hl,etables ; prepare the position in the table add hl,bc add hl,bc ld (hl),e inc hl ld (hl),d ld hl,ledbd add hl,bc ld (hl),1 ; set flash direction - up pop bc pop de pop hl ret ;---------------------------------------------------- ; Blink the LEDs slowly ; LEDBLINK: ; ; Initialize the blink frequencies call RANDOMIZE ld ix,ledbp ;number os phases - speed ld hl,etables ;exponential tables for particular number of phases ld bc,numleds*2 BLKI1: call RANDOM push af call BLKSUB1 pop af rrca rrca rrca call BLKSUB1 jp pe,BLKI1 ; ; Initialize the blink counters, so each blinking starts at different point ld ix,ledbc ld hl,ledbp ld b,numleds BLKI2: call RANDOM and 01fh ;0-31 add a,2 cp (hl) jr nc,BLKI2 dec a ; 1 .. ledbp-1 ld (ix),a inc ix inc hl djnz BLKI2 ; ; Initialize the blink directions ld hl,ledbd ld c,numleds/8 BLKI30: call RANDOM ld b,8 BLKI31: ld d,a and 1 ld (hl),a inc hl ld a,d rrca djnz BLKI31 dec c jr nz,BLKI30 ; ; Now do the blinking ... ; BLK2: ld hl,etables ld (etable),hl ld hl,ledbc ;counters ld de,ledbr ;brightness ld ix,ledbp ;number of phases ld iy,ledbd ;directions ld bc,numleds<<8 BLK3: ld a,r ;random phase change and a jr z,BLK5 ld a,(iy) ;get the direction and a jr z,BLK6 ;up ld a,(hl) ;down and a jr z,BLK7 ;down->up dec a ld (hl),a jr BLK8 ; %%FIXME ;BLK71: ld a,r ; and a ; jr z,BLKCHNG ; Random frequency change ; xor a BLK7: ld (iy),a jr BLK8 BLK6: ld a,(hl) cp (ix) jr nc,BLK7 ;up->down inc a ld (hl),a BLK8: push de ;linear -> exponential push hl ld hl,etables ld d,c ;0 rlc e ;LED number add hl,de ld e,(hl) inc hl ld d,(hl) ld h,c ;0 ld l,a add hl,de ld a,(hl) ;exponential value pop hl pop de ld (de),a BLK5: inc de inc hl inc ix inc iy djnz BLK3 BLK10: call UPDTAB halt in a,(pin) and 3 cp 3 jr z,BLK2 jp MLOOP ; ; %%FIXME ;BLKCHNG: ; Random change the speed of blinking ; push bc ; push de ; push hl ; call RANDOM ; ld hl,etables ; ld d,c ;0 ; rlc e ;LED number ; add hl,de ; call BLKSUB1 ; dec ix ; pop hl ; pop de ; pop bc ; xor a ; jr BLK7 BLKSUB1: and 07h add a,0fh ;range 16-24 ld (ix),a ;n-1 (15-23) - number of phases = speed inc ix inc a rlca ld de,EXPTABLES add a,e ld e,a ex de,hl ldi ;address of appropriate exponential table ldi ex de,hl ret ; ;--------------------------------------------- ; ; The pseudo-random number generator ; Kills DE ; RANDOM: ex de,hl ld hl,seed ld a,(hl) inc a ld (hl),a dec hl ;intcnt add a,(hl) ld h,RANDT>>8 ld l,a ld a,(hl) ex de,hl ret RANDOMIZE: ld hl,seed2 ld a,r xor (hl) inc (hl) dec hl ld (hl),a ; change seed ret ;--------------------------------------------------------------------------- ; Prepare the dynamic code template of the 64 instances of interrupt handler ; When the interrupt is running, the operands of ld a,... instructions ; will be overwritten to make the 64-step PWM pattern ; MAKETAB: ld ix,pwtab ld hl,intcode ld (jumpadr),hl ex de,hl ld a,pwobase jr MT2 ; - The loop MT1: pop hl ;the address of the last routine copied inc hl ;skip the ld hl,nnnn opcode ld (hl),e ;store the address of the next routine inc hl ld (hl),d MT2: ld hl,TABSM1-TABSMP+1 ;operand of the ld a,... add hl,de ld (ix),l ;store the address of the operand to the pwtab table inc ix ld (ix),h inc ix push de ld hl,TABSMP ld bc,TABSMPE-TABSMP ldir dec a jr nz,MT1 ;- End of the loop pop hl ;the address of the very last routine inc hl ;skip the opcode ld de,intcode ;the address of the first routine ld (hl),e inc hl ld (hl),d ret ;--------------------------------------------------------------- ; Transfer the table of LED brightness to the work tables ; UPDTAB: ld bc,numleds*2 ld ix,ledbr ; The source brightness table ld de,tabtab ; ld h,PWMT>>8 ; Table of PWM tables UT2: ld a,(ix) inc ix and pwmbase-1 ; Make sure the brightness is sane rlca ld l,a ; PWMT + pwm value * 2 -> PWM pattern table ldi ldi jp pe,UT2 ; Loop through all leds ld iy,pwtab ; Table of addresses where the resulting aggregated PWM bytes will be stored ld c,pwobase ; Number of pwm steps UT3: ld e,(iy) inc iy ld d,(iy) ; de holds address of the operand of ld a,... in the interrupt handler inc iy push de pop ix ; the PWM byte will go here ld hl,tabtab ; Now we aggregate the PWM patterns into bytes ld b,numledbytes ; Number of aggregated bytes to make UT4: xor a ; Reset the byte and repeat following for each bit: ;-------------------------- ld e,(hl) ;0 inc hl ld d,(hl) ex de,hl or (hl) ; The PWM pattern table, contains bytes of 0 or 1 rrca inc hl ex de,hl dec hl ld (hl),e inc hl ld (hl),d inc hl ;-------------------------- ld e,(hl) ;1 inc hl ld d,(hl) ex de,hl or (hl) rrca inc hl ex de,hl dec hl ld (hl),e inc hl ld (hl),d inc hl ;-------------------------- ld e,(hl) ;2 inc hl ld d,(hl) ex de,hl or (hl) rrca inc hl ex de,hl dec hl ld (hl),e inc hl ld (hl),d inc hl ;-------------------------- ld e,(hl) ;3 inc hl ld d,(hl) ex de,hl or (hl) rrca inc hl ex de,hl dec hl ld (hl),e inc hl ld (hl),d inc hl ;-------------------------- ld e,(hl) ;4 inc hl ld d,(hl) ex de,hl or (hl) rrca inc hl ex de,hl dec hl ld (hl),e inc hl ld (hl),d inc hl ;-------------------------- ld e,(hl) ;5 inc hl ld d,(hl) ex de,hl or (hl) rrca inc hl ex de,hl dec hl ld (hl),e inc hl ld (hl),d inc hl ;-------------------------- ld e,(hl) ;6 inc hl ld d,(hl) ex de,hl or (hl) rrca inc hl ex de,hl dec hl ld (hl),e inc hl ld (hl),d inc hl ;-------------------------- ld e,(hl) ;7 inc hl ld d,(hl) ex de,hl or (hl) rrca inc hl ex de,hl dec hl ld (hl),e inc hl ld (hl),d inc hl ;-------------------------- cpl ld (ix),a ; Store the resulting aggregate byte to the ld a,... instruction ld de,4 ; Total length of the ld a,... and out ...,a instructions add ix,de djnz UT4 dec c jp nz,UT3 ret ;-------------------------------------------------------------------- ; The template for one interrupt routine ; In runtime, it will be copied once for each step of PWM ; and the operands of the instructions will be manipulated ; to hold the desited values, because of speed of the code. ; TABSMP: ld hl,0 ;To be overwritten with in runtime ld (jumpadr),hl TABSM1: ld a,0ffh out (0),a ld a,0ffh out (1),a ld a,0ffh out (2),a ld a,0ffh out (3),a ld a,0ffh out (4),a ld a,0ffh out (5),a ld a,0ffh out (6),a ld a,0ffh out (7),a ld a,0ffh out (8),a exx ex af,af' ei reti TABSMPE: org ($ + 0ffh) & 0ff00h ;********** Auto-generated PWM table ************ ; Linear 64-step table PWMT: dw PWMT0 dw PWMT1 dw PWMT2 dw PWMT3 dw PWMT4 dw PWMT5 dw PWMT6 dw PWMT7 dw PWMT8 dw PWMT9 dw PWMT10 dw PWMT11 dw PWMT12 dw PWMT13 dw PWMT14 dw PWMT15 dw PWMT16 dw PWMT17 dw PWMT18 dw PWMT19 dw PWMT20 dw PWMT21 dw PWMT22 dw PWMT23 dw PWMT24 dw PWMT25 dw PWMT26 dw PWMT27 dw PWMT28 dw PWMT29 dw PWMT30 dw PWMT31 dw PWMT32 dw PWMT33 dw PWMT34 dw PWMT35 dw PWMT36 dw PWMT37 dw PWMT38 dw PWMT39 dw PWMT40 dw PWMT41 dw PWMT42 dw PWMT43 dw PWMT44 dw PWMT45 dw PWMT46 dw PWMT47 dw PWMT48 dw PWMT49 dw PWMT50 dw PWMT51 dw PWMT52 dw PWMT53 dw PWMT54 dw PWMT55 dw PWMT56 dw PWMT57 dw PWMT58 dw PWMT59 dw PWMT60 dw PWMT61 dw PWMT62 dw PWMT63 dw PWMT64 ; Pointers to the exponential tables ; ; EXPTABLES: dw EXPTAB4 ;0 dw EXPTAB4 ;1 dw EXPTAB4 ;2 dw EXPTAB4 ;3 dw EXPTAB4 ;4 dw EXPTAB5 ;5 dw EXPTAB6 ;6 dw EXPTAB7 ;7 dw EXPTAB8 ;8 dw EXPTAB9 ;9 dw EXPTAB10 ;10 dw EXPTAB11 ;11 dw EXPTAB12 ;12 dw EXPTAB13 ;13 dw EXPTAB14 ;14 dw EXPTAB15 ;15 dw EXPTAB16 ;16 dw EXPTAB17 ;17 dw EXPTAB18 ;18 dw EXPTAB19 ;19 dw EXPTAB20 ;20 dw EXPTAB21 ;21 dw EXPTAB22 ;22 dw EXPTAB23 ;23 dw EXPTAB24 ;24 ; The exponential tables ; ; The formula: ; y=a+b*exp(cx) ; ------------- ; The requirements: ; y(0)=1 ; y'(0)=1 ; y(n-1)=63 ; The solution: ; b*exp(t/b)-b-62=0 ; a=1-b ; c=1/b EXPTAB4: db 1 ;0 db 3 ;1 db 14 ;2 db 63 ;3 EXPTAB5: db 1 ;0 db 3 ;1 db 8 ;2 db 22 ;3 db 63 ;4 EXPTAB6: db 1 ;0 db 3 ;1 db 6 ;2 db 13 ;3 db 29 ;4 db 63 ;5 EXPTAB7: db 1 ;0 db 2 ;1 db 5 ;2 db 10 ;3 db 18 ;4 db 34 ;5 db 63 ;6 EXPTAB8: db 1 ;0 db 2 ;1 db 4 ;2 db 8 ;3 db 14 ;4 db 23 ;5 db 38 ;6 db 63 ;7 EXPTAB9: db 1 ;0 db 2 ;1 db 4 ;2 db 7 ;3 db 11 ;4 db 17 ;5 db 27 ;6 db 41 ;7 db 63 ;8 EXPTAB10: db 1 ;0 db 2 ;1 db 4 ;2 db 6 ;3 db 10 ;4 db 14 ;5 db 21 ;6 db 31 ;7 db 44 ;8 db 63 ;9 EXPTAB11: db 1 ;0 db 2 ;1 db 4 ;2 db 6 ;3 db 9 ;4 db 12 ;5 db 18 ;6 db 24 ;7 db 34 ;8 db 46 ;9 db 63 ;10 EXPTAB12: db 1 ;0 db 2 ;1 db 4 ;2 db 6 ;3 db 8 ;4 db 11 ;5 db 15 ;6 db 21 ;7 db 28 ;8 db 36 ;9 db 48 ;10 db 63 ;11 EXPTAB13: db 1 ;0 db 2 ;1 db 4 ;2 db 5 ;3 db 7 ;4 db 10 ;5 db 14 ;6 db 18 ;7 db 24 ;8 db 30 ;9 db 39 ;10 db 50 ;11 db 63 ;12 EXPTAB14: db 1 ;0 db 2 ;1 db 3 ;2 db 5 ;3 db 7 ;4 db 10 ;5 db 13 ;6 db 16 ;7 db 21 ;8 db 26 ;9 db 33 ;10 db 41 ;11 db 51 ;12 db 63 ;13 EXPTAB15: db 1 ;0 db 2 ;1 db 3 ;2 db 5 ;3 db 7 ;4 db 9 ;5 db 12 ;6 db 15 ;7 db 19 ;8 db 23 ;9 db 29 ;10 db 35 ;11 db 43 ;12 db 52 ;13 db 63 ;14 EXPTAB16: db 1 ;0 db 2 ;1 db 3 ;2 db 5 ;3 db 7 ;4 db 9 ;5 db 11 ;6 db 14 ;7 db 17 ;8 db 21 ;9 db 26 ;10 db 31 ;11 db 37 ;12 db 44 ;13 db 53 ;14 db 63 ;15 EXPTAB17: db 1 ;0 db 2 ;1 db 3 ;2 db 5 ;3 db 6 ;4 db 8 ;5 db 11 ;6 db 13 ;7 db 16 ;8 db 19 ;9 db 23 ;10 db 28 ;11 db 33 ;12 db 39 ;13 db 46 ;14 db 54 ;15 db 63 ;16 EXPTAB18: db 1 ;0 db 2 ;1 db 3 ;2 db 5 ;3 db 6 ;4 db 8 ;5 db 10 ;6 db 12 ;7 db 15 ;8 db 18 ;9 db 21 ;10 db 25 ;11 db 30 ;12 db 35 ;13 db 41 ;14 db 47 ;15 db 55 ;16 db 63 ;17 EXPTAB19: db 1 ;0 db 2 ;1 db 3 ;2 db 5 ;3 db 6 ;4 db 8 ;5 db 10 ;6 db 12 ;7 db 14 ;8 db 17 ;9 db 20 ;10 db 23 ;11 db 27 ;12 db 32 ;13 db 37 ;14 db 42 ;15 db 48 ;16 db 55 ;17 db 63 ;18 EXPTAB20: db 1 ;0 db 2 ;1 db 3 ;2 db 5 ;3 db 6 ;4 db 8 ;5 db 9 ;6 db 11 ;7 db 14 ;8 db 16 ;9 db 19 ;10 db 22 ;11 db 25 ;12 db 29 ;13 db 33 ;14 db 38 ;15 db 43 ;16 db 49 ;17 db 56 ;18 db 63 ;19 EXPTAB21: db 1 ;0 db 2 ;1 db 3 ;2 db 4 ;3 db 6 ;4 db 7 ;5 db 9 ;6 db 11 ;7 db 13 ;8 db 15 ;9 db 18 ;10 db 21 ;11 db 24 ;12 db 27 ;13 db 31 ;14 db 35 ;15 db 40 ;16 db 45 ;17 db 50 ;18 db 56 ;19 db 63 ;20 EXPTAB22: db 1 ;0 db 2 ;1 db 3 ;2 db 4 ;3 db 6 ;4 db 7 ;5 db 9 ;6 db 11 ;7 db 13 ;8 db 15 ;9 db 17 ;10 db 20 ;11 db 23 ;12 db 26 ;13 db 29 ;14 db 33 ;15 db 37 ;16 db 41 ;17 db 46 ;18 db 51 ;19 db 57 ;20 db 63 ;21 EXPTAB23: db 1 ;0 db 2 ;1 db 3 ;2 db 4 ;3 db 6 ;4 db 7 ;5 db 9 ;6 db 10 ;7 db 12 ;8 db 14 ;9 db 17 ;10 db 19 ;11 db 21 ;12 db 24 ;13 db 27 ;14 db 31 ;15 db 34 ;16 db 38 ;17 db 42 ;18 db 47 ;19 db 52 ;20 db 57 ;21 db 63 ;22 EXPTAB24: db 1 ;0 db 2 ;1 db 3 ;2 db 4 ;3 db 6 ;4 db 7 ;5 db 9 ;6 db 10 ;7 db 12 ;8 db 14 ;9 db 16 ;10 db 18 ;11 db 21 ;12 db 23 ;13 db 26 ;14 db 29 ;15 db 32 ;16 db 36 ;17 db 39 ;18 db 43 ;19 db 48 ;20 db 52 ;21 db 58 ;22 db 63 ;23 EXPTAB25: db 1 ;0 db 2 ;1 db 3 ;2 db 4 ;3 db 6 ;4 db 7 ;5 db 8 ;6 db 10 ;7 db 12 ;8 db 14 ;9 db 15 ;10 db 18 ;11 db 20 ;12 db 22 ;13 db 25 ;14 db 27 ;15 db 30 ;16 db 34 ;17 db 37 ;18 db 41 ;19 db 44 ;20 db 49 ;21 db 53 ;22 db 58 ;23 db 63 ;24 EXPTAB26: db 1 ;0 db 2 ;1 db 3 ;2 db 4 ;3 db 6 ;4 db 7 ;5 db 8 ;6 db 10 ;7 db 11 ;8 db 13 ;9 db 15 ;10 db 17 ;11 db 19 ;12 db 21 ;13 db 24 ;14 db 26 ;15 db 29 ;16 db 32 ;17 db 35 ;18 db 38 ;19 db 42 ;20 db 45 ;21 db 49 ;22 db 54 ;23 db 58 ;24 db 63 ;25 EXPTAB27: db 1 ;0 db 2 ;1 db 3 ;2 db 4 ;3 db 6 ;4 db 7 ;5 db 8 ;6 db 10 ;7 db 11 ;8 db 13 ;9 db 15 ;10 db 17 ;11 db 18 ;12 db 21 ;13 db 23 ;14 db 25 ;15 db 28 ;16 db 30 ;17 db 33 ;18 db 36 ;19 db 39 ;20 db 43 ;21 db 46 ;22 db 50 ;23 db 54 ;24 db 58 ;25 db 63 ;26 EXPTAB28: db 1 ;0 db 2 ;1 db 3 ;2 db 4 ;3 db 5 ;4 db 7 ;5 db 8 ;6 db 10 ;7 db 11 ;8 db 13 ;9 db 14 ;10 db 16 ;11 db 18 ;12 db 20 ;13 db 22 ;14 db 24 ;15 db 27 ;16 db 29 ;17 db 32 ;18 db 34 ;19 db 37 ;20 db 40 ;21 db 44 ;22 db 47 ;23 db 51 ;24 db 55 ;25 db 59 ;26 db 63 ;27 EXPTAB29: db 1 ;0 db 2 ;1 db 3 ;2 db 4 ;3 db 5 ;4 db 7 ;5 db 8 ;6 db 9 ;7 db 11 ;8 db 12 ;9 db 14 ;10 db 16 ;11 db 18 ;12 db 19 ;13 db 21 ;14 db 24 ;15 db 26 ;16 db 28 ;17 db 30 ;18 db 33 ;19 db 36 ;20 db 39 ;21 db 42 ;22 db 45 ;23 db 48 ;24 db 51 ;25 db 55 ;26 db 59 ;27 db 63 ;28 EXPTAB30: db 1 ;0 db 2 ;1 db 3 ;2 db 4 ;3 db 5 ;4 db 7 ;5 db 8 ;6 db 9 ;7 db 11 ;8 db 12 ;9 db 14 ;10 db 15 ;11 db 17 ;12 db 19 ;13 db 21 ;14 db 23 ;15 db 25 ;16 db 27 ;17 db 29 ;18 db 32 ;19 db 34 ;20 db 37 ;21 db 40 ;22 db 43 ;23 db 46 ;24 db 49 ;25 db 52 ;26 db 56 ;27 db 59 ;28 db 63 ;29 EXPTAB31: db 1 ;0 db 2 ;1 db 3 ;2 db 4 ;3 db 5 ;4 db 7 ;5 db 8 ;6 db 9 ;7 db 11 ;8 db 12 ;9 db 14 ;10 db 15 ;11 db 17 ;12 db 19 ;13 db 20 ;14 db 22 ;15 db 24 ;16 db 26 ;17 db 28 ;18 db 31 ;19 db 33 ;20 db 35 ;21 db 38 ;22 db 41 ;23 db 43 ;24 db 46 ;25 db 49 ;26 db 53 ;27 db 56 ;28 db 59 ;29 db 63 ;30 EXPTAB32: db 1 ;0 db 2 ;1 db 3 ;2 db 4 ;3 db 5 ;4 db 7 ;5 db 8 ;6 db 9 ;7 db 10 ;8 db 12 ;9 db 13 ;10 db 15 ;11 db 16 ;12 db 18 ;13 db 20 ;14 db 22 ;15 db 24 ;16 db 25 ;17 db 28 ;18 db 30 ;19 db 32 ;20 db 34 ;21 db 37 ;22 db 39 ;23 db 42 ;24 db 44 ;25 db 47 ;26 db 50 ;27 db 53 ;28 db 56 ;29 db 60 ;30 db 63 ;31 PWMT0: db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 PWMT1: db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 PWMT2: db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 PWMT3: db 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 PWMT4: db 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 PWMT5: db 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 db 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 db 1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 db 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 PWMT6: db 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 db 1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 db 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 db 1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 PWMT7: db 0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0 db 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 db 1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 db 0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0 PWMT8: db 0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 db 0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 db 0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 db 0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 PWMT9: db 0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0 db 0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0 db 1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1 db 0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0 PWMT10: db 0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0 db 1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0 db 0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0 db 1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0 PWMT11: db 0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1 db 0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0 db 1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0 db 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0 PWMT12: db 0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0 db 0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0 db 0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0 db 0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0 PWMT13: db 0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0 db 0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0 db 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1 db 0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0 PWMT14: db 0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0 db 1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0 db 0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0 db 1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0 PWMT15: db 0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1 db 0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0 db 1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0 db 0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0 PWMT16: db 0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0 db 0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0 db 0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0 db 0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0 PWMT17: db 0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0 db 0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0 db 1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0 db 1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1 PWMT18: db 0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0 db 1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1 db 0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0 db 1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1 PWMT19: db 0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0 db 1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0 db 1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0 db 0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1 PWMT20: db 0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1 db 0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1 db 0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1 db 0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1 PWMT21: db 0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 db 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0 db 1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0 db 1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1 PWMT22: db 0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 db 1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1 db 0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0 db 1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1 PWMT23: db 0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0 db 1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,0 db 1,0,0,1,0,0,1,0,0,1,0,0,1,0,1,0 db 0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,1 PWMT24: db 0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1 db 0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1 db 0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1 db 0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1 PWMT25: db 0,0,1,0,1,0,0,1,0,1,0,0,1,0,0,1 db 0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0 db 1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0 db 1,0,1,0,0,1,0,0,1,0,1,0,0,1,0,1 PWMT26: db 0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0 db 1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1 db 0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0 db 1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1 PWMT27: db 0,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0 db 1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0 db 1,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1 db 0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1 PWMT28: db 0,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1 db 0,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1 db 0,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1 db 0,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1 PWMT29: db 0,0,1,0,1,0,1,0,1,0,1,0,0,1,0,1 db 0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,0 db 1,0,0,1,0,1,0,1,0,1,0,0,1,0,1,0 db 1,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1 PWMT30: db 0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 db 1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1 db 0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 db 1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1 PWMT31: db 0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 db 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 db 1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1 db 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 PWMT32: db 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 db 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 db 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 db 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 PWMT33: db 1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 db 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 db 0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0 db 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 PWMT34: db 1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 db 0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0 db 1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 db 0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0 PWMT35: db 1,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0 db 1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,1 db 0,1,1,0,1,0,1,0,1,0,1,1,0,1,0,1 db 0,1,0,1,0,1,1,0,1,0,1,0,1,0,1,0 PWMT36: db 1,1,0,1,0,1,0,1,0,1,1,0,1,0,1,0 db 1,1,0,1,0,1,0,1,0,1,1,0,1,0,1,0 db 1,1,0,1,0,1,0,1,0,1,1,0,1,0,1,0 db 1,1,0,1,0,1,0,1,0,1,1,0,1,0,1,0 PWMT37: db 1,1,0,1,0,1,0,1,1,0,1,0,1,1,0,1 db 0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1 db 0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0 db 1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0 PWMT38: db 1,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1 db 0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,0 db 1,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1 db 0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,0 PWMT39: db 1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,0 db 1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,1 db 0,1,1,0,1,1,0,1,0,1,1,0,1,0,1,1 db 0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,0 PWMT40: db 1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0 db 1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0 db 1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0 db 1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0 PWMT41: db 1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1 db 0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,1 db 0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,1 db 1,0,1,1,0,1,1,0,1,1,0,1,0,1,1,0 PWMT42: db 1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1 db 0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0 db 1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1 db 0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0 PWMT43: db 1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1 db 1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1 db 0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1 db 0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0 PWMT44: db 1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0 db 1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0 db 1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0 db 1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,0 PWMT45: db 1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,1 db 0,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1 db 0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1 db 1,0,1,1,1,0,1,1,0,1,1,0,1,1,1,0 PWMT46: db 1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1 db 0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0 db 1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1 db 0,1,1,1,0,1,1,1,0,1,1,0,1,1,1,0 PWMT47: db 1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1 db 1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1 db 0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1 db 0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0 PWMT48: db 1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1 db 1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1 db 1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1 db 1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1 PWMT49: db 1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0 db 1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1 db 0,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1 db 1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1 PWMT50: db 1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1 db 0,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1 db 1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1 db 0,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1 PWMT51: db 1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1 db 1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1 db 0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0 db 1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1 PWMT52: db 1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1 db 1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1 db 1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1 db 1,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1 PWMT53: db 1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0 db 1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1 db 0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1 db 1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1 PWMT54: db 1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1 db 0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1 db 1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1 db 0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1 PWMT55: db 1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1 db 1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1 db 0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0 db 1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1 PWMT56: db 1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1 db 1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1 db 1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1 db 1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1 PWMT57: db 1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1 db 1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1 db 0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1 db 1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1 PWMT58: db 1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1 db 0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1 db 1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1 db 0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1 PWMT59: db 1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1 db 1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1 db 0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1 db 1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1 PWMT60: db 1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1 db 1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1 db 1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1 db 1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1 PWMT61: db 1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1 PWMT62: db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 PWMT63: db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 PWMT64: db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; org ( $ + 0ffh) & 0ff00h RANDT: db 37,31,125,150,146,108,6,7,215,79,118,3,12,99,70,15 db 243,75,238,0,248,212,91,111,209,55,156,27,138,97,107,175 db 120,48,117,144,113,207,135,166,40,201,122,43,10,45,160,181 db 116,50,47,244,225,11,54,155,34,245,58,9,60,17,189,104 db 64,251,252,81,208,114,134,221,72,21,36,203,220,93,32,49 db 239,231,82,228,197,171,224,89,88,124,90,5,129,98,94,95 db 162,153,188,44,57,145,140,103,105,41,59,194,73,167,110,180 db 205,158,69,235,123,77,233,119,147,78,127,142,132,112,42,223 db 128,83,115,218,102,14,109,85,80,20,179,26,240,13,190,161 db 18,46,130,22,213,149,250,151,185,131,173,174,253,157,199,141 db 30,187,68,227,52,165,63,148,168,92,211,126,172,62,139,33 db 23,195,24,198,176,4,182,226,184,177,186,51,101,16,249,191 db 192,164,169,137,196,100,66,53,202,84,39,76,204,19,206,242 db 61,193,154,2,229,170,214,241,121,106,217,219,178,143,216,183 db 159,246,56,255,133,29,65,25,247,222,210,254,87,74,200,86 db 237,67,234,236,1,8,96,232,152,35,71,230,28,38,136,163 ; ********** That's all *********** end