Release BIOS v3.06, 25.06.2025
This commit is contained in:
		
						commit
						f0d6c9ab28
					
				
							
								
								
									
										1
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							| @ -1,3 +1,4 @@ | ||||
| [submodule "Shared_Includes"] | ||||
|         branch = main | ||||
| 	path = Shared_Includes | ||||
| 	url = https://github.com/Tolik-Trek/Shared_Includes.git | ||||
|  | ||||
| @ -1,7 +0,0 @@ | ||||
| @echo off | ||||
| 
 | ||||
| cd src | ||||
| call make_firmware.cmd | ||||
| call build_firmware.cmd | ||||
| cd .. | ||||
| 
 | ||||
| @ -1 +1 @@ | ||||
| Subproject commit 66d8b070eafa4ef347e46889999d330eb9835b51 | ||||
| Subproject commit a0e68ce3a19bd47537585e49bfbf5e45fab197a1 | ||||
							
								
								
									
										20
									
								
								ZXMAK2.cmd
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								ZXMAK2.cmd
									
									
									
									
									
								
							| @ -1,20 +0,0 @@ | ||||
| @rem								COPY ROM TO EMULATOR | ||||
| @rem | ||||
| @echo -------------------------------------------------------[Copy to emul start] | ||||
| @mkdir SPRINTER | ||||
| @copy Build\_SPRIN.BIN SPRINTER\SP_304.BIN | ||||
| @if errorlevel 1 goto error | ||||
| @"C:\Program Files\7-Zip\7z.exe" a "Shared_Includes\Hide\Emulators\ZXMAK2\ROMS.PAK" SPRINTER\SP_304.BIN | ||||
| @if errorlevel 1 goto error | ||||
| @del SPRINTER\SP_304.BIN | ||||
| @rmdir SPRINTER | ||||
| 
 | ||||
| @goto quit  | ||||
| 
 | ||||
| :error  | ||||
| @echo ERROR during copying to emulator | ||||
| @pause 0 | ||||
| @exit 3 | ||||
| 
 | ||||
| :quit | ||||
| @echo -------------------------------------------------------[Copy to emul done] | ||||
| @ -1,7 +0,0 @@ | ||||
| @if [%1]==[] (set NO_STOP="3") else (set NO_STOP=%1) | ||||
| @set error_level="0" | ||||
| @cd src | ||||
| @call make_firmware.cmd %NO_STOP% | ||||
| @cd .. | ||||
| @call build_firmware.cmd %NO_STOP% | ||||
| @cd .. | ||||
| @ -1,13 +0,0 @@ | ||||
| cd src\altera\acex | ||||
| rem call clean.cmd | ||||
| cd ..\..\ | ||||
| cd bios\loader | ||||
| call clean.cmd | ||||
| cd ..\exp | ||||
| call clean.cmd | ||||
| cd ..\logo | ||||
| call clean.cmd | ||||
| cd ..\rom | ||||
| call clean.cmd | ||||
| pause 0 | ||||
| 
 | ||||
| @ -1,20 +0,0 @@ | ||||
| @rem								COPY ROM TO EMULATOR | ||||
| @rem | ||||
| @echo -------------------------------------------------------[Copy to emul start] | ||||
| @mkdir SPRINTER | ||||
| @copy Build\_SPRIN.BIN SPRINTER\SP_304.BIN | ||||
| @if errorlevel 1 goto error | ||||
| @"C:\Program Files\7-Zip\7z.exe" a "Shared_Includes\Hide\Emulators\ZXMAK2\ROMS.PAK" SPRINTER\SP_304.BIN | ||||
| @if errorlevel 1 goto error | ||||
| @del SPRINTER\SP_304.BIN | ||||
| @rmdir SPRINTER | ||||
| 
 | ||||
| @goto quit  | ||||
| 
 | ||||
| :error  | ||||
| @echo ERROR during copying to emulator | ||||
| @pause 0 | ||||
| @exit 3 | ||||
| 
 | ||||
| :quit | ||||
| @echo -------------------------------------------------------[Copy to emul done] | ||||
| @ -1,4 +0,0 @@ | ||||
| @echo off | ||||
| call __make_all_vs.cmd | ||||
| call copy_to_zxmak2.cmd | ||||
| call start_emul.cmd | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -1,770 +0,0 @@ | ||||
| 255,255, 98,123, 57,  0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, | ||||
| 224, 12,148,129, 50, 96,  6,202, 64, 25,  0,115, 96,  6, 76,128,  9, 50, 65,  6,200,  0, 25, 32,  3,108,128,109,144,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,144,  1, 50,  0, 54,216,  4, 27, 96,  3,108,128, 13,176, 13, 54,192,  6,192,  6,216, 32,  3,108,160, 12,148,  1,240,250, | ||||
|   0, 20,128,  2, 80,  0, 10, 64,  1, 40,128,  2, 80,  0, 58, 64,  3,120,  0, 11, 96,  1, 44,128,  5,144,  0, 18,224,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 18,224,  2, 92,  0,  9,160,  3, 36,128,  4,144,  0, 18, 64,  2, 72,  0,  9, 32,  1, 36,128,  5,144,  0, 21,160,  2,184,255, | ||||
|   0,  2, 64,  0,  8,  0,  1, 32,  0,  4,  0,  4,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 64,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  4,128,  0, 16,  0,  2, 64,  0,  8, 16,  1, 32,  0,  0,  8,  0,  1,  0,  2,  0,  0,  0,  0,168,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,128,  0,176,253, | ||||
|   0,  5,160,  0, 20,128,  2, 80,128, 10,  0, 10, 64,  1, 32, 16,  0,133,160,  0, 20,  0,  2, 64,  0,  0, 64,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,  0, 16,  0, 18,  2,  0,  0,  8,  0,  0, 40,  0,  4, 34,  0,  0, 16,  0,  0,  0,  0,  0,  1, 32,  0,224,254, | ||||
|   0,  2,128, 16,  1,  0, 16, 80,  0,  8, 32,  0,  1, 32,  0,  0,  0, 18,  0,  2, 64,  0, 10,  0,  0, 40,128,  8,128, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,128, 16, 16, 66,  4,  0,  1,  2, 16,  1,  8,  0,  6, 16,  1, 16,  0,  2,128,  0,  1,  0,  0, 40,  0,  2,  8,  0,184,255, | ||||
| 160,  9,  1,128, 66,  0,136,152, 72,  0, 72, 65,  0, 32,  4,  0,  0, 64, 80,  0, 90, 64,  3, 72,  1,  1, 32,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,128,  0,208,  0,  2,  0, 96, 72,  1, 13, 32,  0, 52,128,  2, 24,  0, 10, 67,  0, 40, 65, 73, 16, 48,  0, 34, 80,249, | ||||
| 128,  0,  0,  0,  4,194,  0, 24,  0,  0, 96,  0,  0,  0,128,  0,  0,  6,  4, 64, 24,  8,  0, 96, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 32, 12,  0,  0, 48,  0,  4,192,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,144,251, | ||||
| 224,129,  0,128,  3, 48,  0, 30,  0,  0,  0, 32,  0,  0,128,  0,128,  1,244,  0, 16,  0,  0, 89, 32,  3,  0,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,  6,192,128, 24,192,  0, 96, 32,  0, 98,  0,  0,128,  3, 48,  0, 24,  8,  0, 96, 32,  8,226,129, 12,  0, 72,251, | ||||
| 160, 16,  0,128,  4,208,  2, 27,  0, 32, 97,  1,  0,  0,  0,  0,128, 22, 80,  0, 25,  8, 32,104,  1, 77,  4,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,  6,192,  2, 24, 64, 35, 97,  1,  0, 32,  0, 48,160,  4,208,  8, 17,  1,  0, 64,  2,  4, 32,  8,  4,  0, 56,249, | ||||
|   0, 64,  0,  0,  2,192,  0, 24,  0, 32, 98,129,  0,  0, 16,  0,  0,  6, 64, 24, 24,  9, 32,  1, 18, 44,  0,  4, 48, 33,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48, 34, 70,200, 66, 88,  0,  8, 97,  2,140,128, 81,176,  0,  2,192,  2, 16,  0,  3, 32,  0, 72,130,  1, 48,  6,224,249, | ||||
|  96,  1,  0,128,  5, 32,  0, 30,192,  0, 56,  0,  0, 96,128,  0,  0,  1,176,  0, 30,192,  0, 56,  0, 15, 98,  0, 61,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 61,128,  7, 48,  0, 30,208,  3, 56, 32, 15,232,  1, 60,136,  5,224, 64, 18,192,  3, 42,  0,  7,224,129, 60,  0,224,251, | ||||
|   0, 65,  0,  0,  2,192,  0, 24,  0,  3, 96,  0,  0,128,  0,  1,128,  6,192, 32, 24, 16,  0, 96,  0, 12,130,  1, 49,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1, 49,  0,  6,192,  0, 24,  0,  3, 96,  0,  0,132,  1, 48,  0,  2,192,  0,  8,  0,  3, 32,  0,  8,  0,  0, 48,  0,184,249, | ||||
| 128, 17,  0,  0,  4,  0,  0, 26,  0,  0,113,  8,  0,  0,  0,  0,  0,  0,208,  2, 24,  0, 32, 34, 16,141,128,  9, 48, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  9, 48, 33, 38,196, 68, 24, 32,147, 16, 66, 44,128,  1, 48,192,  4, 16, 34,  8,  0,  3, 32,  0, 12,144,145, 48,  0,144,255, | ||||
|  32,  9,  5,128,  2,212,  0,152, 64,  3,104, 33,  0,128,  5,  0,  0, 64, 80,  0, 26, 80,  0,  8,  0,  1, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  6, 80,  0,  2,  0, 96,104, 33,  1, 32,  0,  0,128,  2,208,  0, 74,  0, 96,  8,  0,129,  2,  0, 52,  0,196,251, | ||||
| 128,  1,  0,  0,  4,192,  0, 24,  4,  0, 64,  0,  0,  0, 64,  0,  0,  6,  4, 64, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,128, 64,  0,  0,  0, 96,  0,  0,  0,  0,  0,  0,  4,  2,  0,  0,  8,  0,  0,  0,  0,  0,  0, 48,  0, 24,255, | ||||
|  96,  1, 13,136,  3,192,  0,  6,  0,  0, 33,  0,  0,224,  1,  0,128,  1, 64, 32, 30,  0,  0, 96,  0, 12, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  7, 64,  0,  6,192,  0, 32,  0,  0,  0,  0,  0,128,  3,240,  0, 24,192,  0, 96,  0,  4,  0,  0, 12,  0, 72,249, | ||||
| 168,  5,180,128,  4,192,  0,  2,  0, 32, 64,  8,  0, 32,  0,  1,128, 38,  8,  2, 26,  5, 32, 97,  0, 32,176,  1,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  6,128,  0,154, 72, 35, 97, 66,  0,  0,  0,  0,128,  4, 16,  8,145, 96, 35, 97,  0, 32,  8,  0,  4,  0,251,252, | ||||
| 128, 64,  0,  1,  2,  0,  2,  0,  3, 16, 96,  1,  0,  0,  0,  0,  0,  6,  0, 24,136, 16, 32, 98,  0, 76,144,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6, 64,  0,128,  0, 16, 32,128, 12,128,137,  0,  0,  2,192,  2, 16,  0,  8, 97,  0,140,  4,  0,  0,  2,165,249, | ||||
|  96,  0, 60,160,  5, 48,128,  4,192,  0,122, 32,  0,192,  1,  0,  0,  1, 48,  0, 30,192,  3,120, 16,  3,224,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,176,  0, 30,200,  3,122,  0, 15,228,  1,  0,128,  5,224, 64, 18,192,  3,104,  0, 15,  0,  0, 12,  8,240,254, | ||||
| 132, 65,  0, 16,  2,  0,  0,  2,  0,  0, 97,  0,  0,  0,  0,  0,128,  6, 64,  0, 24,  4,  0,  0, 16, 12,128, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  6, 64,  0, 24,  4,  3, 32, 32,  0,  8,  0,  0,  0,  2,  0,  0,  8,  0,  3,  0,  0, 12,  2,  0,  0,  0, 42,252, | ||||
| 128,  4,  0,  2,  4,  0,  0,  2, 17,  0, 64, 66,  0,160,  1,  0,  0,  0,128, 34, 24,  1,  0,  1,  2,140,130, 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  6,128,  0, 26,  1,131, 64,  4, 32,  0, 72,  0,128,  4,208, 34,  8,  0,131,  0,  0,140,  0,  0,  0, 16,120,251, | ||||
|  32,133,  4,128,  0,  0,136,152, 68,  3, 40,132,  0, 32,  4, 50,  1, 16, 82,128, 66, 64,  0,104,  0,  5,160,  1,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 52,  0, 32,  4,  0,  2, 32, 96,  8,  0,  1, 32,  0,180,  0,192,  0,132, 10, 16, 19, 42, 34,  1,  0,  0,  0, 34,160,251, | ||||
| 128,  1,  0,  0,  0,192,  0, 24,  0,  0,  0,  0,  0,  0,  0,  0, 16,  6,128,  0,  0,  8,  0, 96,  0,  0,132,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48, 16,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,104,254, | ||||
|  96,  1, 13,  0,  6, 50, 64, 30,  0,  0,121,  0,  0,224,128, 60,160,  1,112,  0, 16,  0,  0, 96, 16,  4,  8,128, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1,  0,  0,  8,192,  0, 24, 64,  0,  0,  0, 16,160,  7, 48,  0, 24,192,  3, 97, 32,  0,  0,  0, 12,  0,248,255, | ||||
| 164, 17, 52, 17, 64,208,  4, 26,  0, 32, 40, 68,  0, 32, 16,132,128, 38,152,  0,  0,  8, 32, 97,  1,128,128, 17,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0, 16, 68, 35,105,  2,  0,  0,  0,176,128, 16, 17,  0, 16, 73,  8, 64,  0,  0,  0,  0,  4,  0, 10,255, | ||||
|  12, 64, 48,  9, 16,196,  0,128,  0, 16, 32,  8,  0,  0,  8,  0,  0,  6, 64,  0,  0,  9, 35, 98,  0,128,129, 49, 48,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48, 32, 22,  0,  0,  0,  0,  8,  2,  0, 44,  0, 68,176,  8, 32,200,130,  8,  0,  0, 32,  0,140,  8,  0,176,  0, 16,253, | ||||
| 224,  0, 60,128,  1, 32,  0,  4,208,  0, 90,  0,  0, 96,  0, 57,  0,  1,176,  0,  6,192,  0,120, 16,  3,224,  1, 60,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,128,  7,  2,  0, 30,208,  3, 16, 64, 15,104,  0, 60,128,  0,240,  0, 10,128,  3, 40,  0, 15,  0,  0, 60, 16, 64,255, | ||||
| 136, 65, 48,  8,  0,194,  0,  2,  0,  0, 97, 64,  0,  0, 64,  0,  0,  6, 64,  0,  0, 16,  0, 96, 16,  4,  0,129,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,  6,  0,  0,  0,  8,  3,  0, 32, 12,128,  1, 48, 32,  0,192,  0,  8,  0,  0, 32,  0,  0,  0,  0, 48,  0,177,251, | ||||
| 128,  0, 48,  0,  0,  0,  0,  2,  0,  0, 96,  4,  0,  0,  8, 52,  0,  0,128,  0,  0,  0,  0,  1,  0,136,194,  4,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48, 64,  6,  0,  0, 64,  0,139,  0,  1, 12,128, 81, 48,  0,  0,208,  0,  8, 64,  3, 32,  0, 64, 16,  0, 48,  0,144,248, | ||||
|  32,  9, 53,128,  0,  0,136, 66, 68,  0, 72, 36,128, 36,  0, 48,129,  6, 16,  0,146, 64,  8,108, 18,133,160,133,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,128,  0, 16,  0, 66, 32, 96, 72,  8, 13,128,  9,  5,  0,192,208,  0,  2,  0,  0,  8,  0, 13,160,  4,  4,  0,124,252, | ||||
| 128,  1,  0,  0,  0,192,  0,  8,  0,  0, 96,  0,  0,  0,  0,  0, 16,  6,  0,  0, 24,  8,  0, 96,  0,  8,136,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 12,  0,  0,  0,  0,  0,192,  0,  0,  0,  0,  0,  0, 12,  0,  1,  5,  0, 96,249, | ||||
|  96,  1, 12,  8,  0, 50, 64,  0,  0,  0, 96, 32,  3,  0,128, 60, 16,  0,192,  0, 30,200,  0, 24,  0,  7,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0,  0,  0,  0,  0,  0, 24,196,  0,  0, 32, 15,224,  1,  0,128,  5, 48,  0, 24,  0,  0, 96,  0, 15,232,  0, 12,  0,208,252, | ||||
| 168,145,132,  0, 70,208,  8, 64, 32, 32, 97,  1,  1,  0, 16,132,  0,  0,  0,  2, 27, 65,144,104,  0,  9,128, 33,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0, 65, 35, 97,  1, 13, 32,  4,  1,128, 34,212,  8, 25,  0,  0, 96,  0, 77, 32,  1,  4,  0,155,250, | ||||
| 128, 65, 48,  1, 16,196,  0,128,  8, 32, 98,  4, 76, 16,144,  0,  0,192,192,  4,152,  0,  8,112, 64,  4,128,  4,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 17,  2,  0, 16,  2,  0,  0,  3,  8,100, 12, 12,  0,  0, 48,  2,  3,192,  2, 24,  0,  0, 96,  0, 76,136,  0, 48,  1, 41,251, | ||||
| 224,  0, 12,160,  1, 32,  0,  6,192,  0, 56, 32, 15,224,  1, 56,128,  1, 48, 64, 30,208,  0,105,  0, 11,224,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,  1,  0,128,  1, 48, 64,  6,192,  3, 56,  0, 14,192,  1, 60,144,  4, 32, 64, 26,  0,  0,104,  0, 15, 96,  1, 56,  8, 92,251, | ||||
| 132,  0,  0, 16,  0,194,  0, 24,  0,  0, 96,  0, 12,  0,  0,  0,  0,  6,192,  0, 24,  0,  0, 96,  0,  4,128,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,192,128,  8,  0,  3, 96,  0, 12, 32,  0, 48,  0,  5,192,  0,  0,  0,  0,  0,  0,  0,128,  0, 48,  0,250,255, | ||||
|   0, 80,  0,  2,  0,  0,  0,  0, 16,  3, 17,  8, 13,  0, 16, 53,  0,166,192, 34,152,  4,130,  0,  8,  8,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  2,  0, 22,200,  2,144,  8,163,112, 66, 13,160,  1, 48,  0,  2, 16, 34,  0,  0,  0,  0,  0, 12, 33,  1, 48,  0,  8,253, | ||||
| 160,  0, 52,128,  2,208,  0, 66, 96,  8,108, 33,  0,160,  1,  0,  0, 16, 18,  0,  2, 64,  8, 44,  2, 13,160,  1,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  9,  0,128,  0, 16,  0, 10,  1, 96,104, 33,  1, 32,  0,  4,  0,192,208,  4, 10,  2, 96, 40, 64, 32,144, 49,  0, 34, 28,251, | ||||
|   0, 65,  0, 32,  4,194,  0,  0,  0,  0, 96,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0, 64, 16,  0,128,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,128,  0,  0,  0,  0,  0, 16,  8,  0, 96,  0,  0,  0,  0, 48,  0,  0,192,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 88,254, | ||||
| 128,  0, 32,128,  3,192,  0,  0,196,  0, 32,  0,  0,  0,  0,  0,128,  1, 48,  0,  6,192,  0, 88,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,129,  0,  0,  0,  0,128, 14,192,  0, 32,  0, 12,  0,  0,  0,136,  5, 64, 64, 24,208,  0, 96,  0, 15, 96,128, 12,  0,152,254, | ||||
|   4, 65,  0,145,  4,192,  0, 72, 64,136, 96,  8,  0,  0,144,  0,128, 22,212, 68,  2, 64, 80, 40, 17, 32,144,  1,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 16,  0,  0,  0,  0,  2, 18, 64, 35, 97, 66, 12,  0,  0, 48,129,  2,128,  0, 16, 65, 35, 65, 65, 13, 32,  4,  4,  0,227,253, | ||||
| 140,  4,  0, 32,  2,  0,  0, 16,  1, 16, 32, 64,  0,  0, 16,  1,  0,  6,192,  8,152, 16,  8, 64,  0, 12,  8,  4,176, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,133,  0,  0, 38,194, 66,  8,  0,  0, 33,  2,128,  4,136, 48,  6,  3, 64,  0,  8,  0,147, 32,  0,128,132,  9, 50,  4, 25,249, | ||||
|  96, 65, 12,128,  5, 48, 32, 14,208,128,120,  0,  0, 96,  0,  0,  0,  1,240, 32, 30,192,129,104,  0, 15,224,129, 60,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,  0,  0,128,  7, 48,  0, 22,192,  3,120, 64,  3, 96,  0, 60,128,  4,180,128, 10,192,  0, 40,  0,  2, 96,  0, 60,  0, 52,250, | ||||
| 136,  0,  0,  0,  2,  0,  0,  0,  8,  0, 32,  0,  0,  0,  0,  0,  0,  6,192, 32, 24,  0,  0, 64,  0, 12,  0,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  8,  0,131, 32,  0,  0,128, 65, 48,  0,  4, 66, 64,  8,  0,  0, 32,  0,  0,  0,  0, 48,  0,218,254, | ||||
| 128, 80, 16,  8,  4,  0,  0,  0,  1,  9, 65, 17,  0,  0,128,  0,  0,  0,208,  4, 24,  0,  8,105,  0, 64,  1,  8, 49,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1,  0,  0,160,  0, 68, 16,  0, 35, 64, 34,  0,136,  1,128, 16,  2,192,  2,  8,  0,  0, 34,  0,  0,  8,144, 48,  0, 24,254, | ||||
| 160,  1,  4,128, 66,192,136, 24, 69,  0, 72, 32,  0, 32,  4,  6,  0, 22, 82,  8, 26, 64,  0,  8, 18,141, 36,  0,180, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 49,  0,  0, 32, 80,  2,  2,  0, 99, 72,  1, 69,136,  9, 53,  0,192,208,  0,  2,  0, 96,  8,  0,129,  0, 16, 53,  0, 36,249, | ||||
|   0,  0,  0,  0,  4,  4,  0, 24,  0,  0, 96,  0,  0,  0,  0,  0,  0,  0,128, 64, 24,  0,  0,  0,  0, 12,  0,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,129,128,  0,  0,  0, 32, 16,  8,  0,  0, 48,  0,  0,192,  0,  0,  0,  0,  0,  0,  0,  4,  0, 48,  0,104,254, | ||||
| 128,  1, 12,128,  3,240,  0, 30,  0,  0, 96, 32,  0, 96,  0, 12,128,  7,116,  0, 30, 16,  0, 88,  0,  0, 96,  0, 44,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0,  0,128,  1, 64,  0,  6,192,  0, 66,  0,  7,224,  1, 60,128,  5,240,  0, 24,192,  3, 97,  0,  3, 96,  0, 12,  0,184,250, | ||||
|   8, 64,  4,128,  4, 16,136, 26,  0, 32, 97,  1,  0, 32, 80,  4,128, 16,144,  0,154,  0, 32, 41,  0, 12, 36,  0, 52, 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  4,  1,128,  0,132,  0,154, 72,  0, 32,  0,  9, 32,  8, 54,128,  2, 16,  8, 25, 64, 32, 96,  0,  1, 48,  0,  4, 16, 59,252, | ||||
|   0,  8, 48, 17,  2,  0,  0, 24,  8, 35, 98,  0,  0,  0,  4, 48, 33,  0, 64,  0,152, 16, 32,114, 64, 12,128, 65, 48, 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  5,  2,  0,  0, 68,  0,152,  0, 19, 66,  0,  4,  0,  0,  0, 33,  3,  0,  2, 24,  0,139, 96,  0,  0,129, 17,  0,  1,237,249, | ||||
| 224, 65, 60,128,  5,224,  0, 30,192,  0, 56, 32,  0, 96,128, 60,  0,  7,176,  0, 30,192,  3, 72,  0, 15,232,  1, 60,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0,  0,  0,  7,176,  0, 30,196,  0, 56,  0, 11,192,  1,  8,128,  4,228, 64, 26,192,  3,104,  0,  3,224,129, 60, 32, 34,255, | ||||
| 132,  1,  0,  8,  2,  0,  0,  0,  4,  0, 96,  0,  0,  0, 64, 48,  0,  0, 64,  0,  0,  4,  0, 96,  0,  8,132,  1, 48, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6, 66,  0, 24,  8,  0, 64,  0,  4, 32,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,130,  1,  0,  0,226,250, | ||||
|   0, 68,128,128,  4,192,  0,130,  0,  0, 17,  8,  0,128, 16, 48,  0,  6,128,  0,152,  0,  0, 33, 64, 38,128,  1, 52,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  2,  0, 38,128,  0, 26,  0, 32, 33,  0,  9,160,  1,  0,  0, 18,216, 34,  0,  0, 35,  1,  0,132,128,  1,  0,  8,  0,254, | ||||
|  32,  0, 52,128, 38,209,  0,  2, 64,  8,108, 33,  0, 32,  4,  6,  0,  0, 16,  8, 27, 64,  3,  8, 18, 45, 36,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,128,  0, 16,  0,  2,  0, 99, 40, 17, 13,128,  9,  5,  0,192, 16,  0, 74,  0, 96,104, 68,129,  0, 48, 52,  0, 12,251, | ||||
|   0,  0, 48,  0,  6,192,  0,  0,  0,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 12,128,  1,  0,  0,  0,  0,  0,  0, 16,  0, 64,  0,  0,  4,  0, 48,  0,  8,250, | ||||
| 128,  1,  0,  0,  0,192,  0,  0,192,  0, 32,  0,  0, 96,128, 12,  0,  0,128,  0, 30, 16,  0, 89,  0,  4,  0,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,  6, 48,  0, 24,192,  0, 32,  0, 15,224,  1, 48,128,  5,  0,  0, 24,192,  3, 32,  0,  3,232,  1,  1,  0, 72,248, | ||||
| 132,  1,176, 64, 38,193,  0,  0, 64,128, 96,  8,  0,160, 16,  4,  0,  0,  0, 68,154,  0, 32, 40,  0, 76,  8,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,  6, 16,  2, 25, 64, 16, 65,  0, 13,160,  1, 48,128,  2,  0,  0, 80, 96,  0,  1, 33, 77, 32,  8,  0,  0,179,250, | ||||
| 140,  9,  0,  2, 22,  0,  2,128,  0,  0, 32, 34,  0,  0,  8,176,  8,  0,  0, 72,152, 16, 32,113, 64, 36,  8,  0, 48, 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  1, 38,  0, 32,152,  0, 67, 32,  0, 32,132,  1, 48, 32,  3,192,136,  8,  0,163, 32,  0,  8,129,137,128,  8,105,250, | ||||
| 224, 65, 60,160,  7, 50, 32,  6,208,128,120,  0,  0, 96,  0, 61,  0,  0,240,  0, 30,192,  0, 72,  0, 15, 96,128, 60,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,128, 60,160,  7, 52,  0, 30,208,  0, 88,  0,  3,192,  1, 60,128,  4,244,  0, 10,192,  3, 40,  0,  7,224,  1, 12,  0,250,249, | ||||
|   8,  0,  0,  0,  4,  0,  0, 24,  0,  0, 32, 16,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0, 96, 32,  4,128,  1, 49, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1, 49, 32,  6,  0,128, 24,  0,  0, 32,  0,  0,128,  1, 48,  0,  4,194,  0,  8,  0,  0, 64,  0, 12,  0,  0,  0, 16,170,254, | ||||
|   0, 68,128, 16, 67,  4,  0, 88, 32,  9, 65,  2,  0,  0, 72,  0,  2,  0, 64, 16,152, 16, 32, 34,  0,136,132,  9, 48,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  9, 48,  0,  6,200,  0, 88, 16, 32, 65,  0,  0,160,  1,176, 16, 18,192,  0,  8,  0, 35, 65,  0, 36,144,145,128,  0,124,251, | ||||
| 160,  1,  4,146, 38,  0,136, 26, 64,  8, 12,132,  1, 32,  4, 48, 66, 64, 16,  0,130, 64,  8, 76, 18,  1, 32,  8, 38, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 49, 36,138, 68,209,  0, 18,  5, 96,  0,  0,129,176,  1,  4,  0,192,208,  0,  2, 64,  0, 32, 12,  1,128, 49,  0, 34, 24,249, | ||||
| 128, 65,  0,  0,  6,196,  0, 24,  0,  0,  0,  0,  0,  0,128,  4,  0,  6,196,  0,  0,  8,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  2,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,  0,  0,  0,  0, 96,  0,  0,  0,  0,  0,  0,112,253, | ||||
| 224,  1, 28,  0,  2, 48, 64, 30,192,  0, 90,  0,  3,  0,128, 60,128,  1,192,  0,  6,200,130, 88,  0,  0,224,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,128, 32,  0,  4,  0,128, 16,192,  0,  0,  0, 12,224,  1, 12,128,  5,240,  0, 24,  0,  0, 56, 32,  0, 96,  0, 12,  0,168,251, | ||||
| 168, 65,164,  8, 22,210,  2, 26, 64, 16, 40, 10,  1,  0,  0,132,160, 22,196,  2, 19, 65,  0,  8, 18,  0, 32, 65, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  8, 16,  0,  2,  0,  2,  8, 64, 35,  1,  0, 12, 34,144,132,192,  2,208,  0, 24,  0,  0,104,  1,  0, 32,  8,  5,  0,146,252, | ||||
| 128,  5,  0,  6,130,192,  0, 24,  0,136, 32,  2, 12,  0, 16,  0,  0,  6,  0, 72,128,  0,  8,112, 64, 44,  2, 48, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  5, 32,  0,  4,  0, 66, 16,  0,  0,  4,  0,  0,  0, 16, 48,  6,  3,192,  0, 24,  0,  3, 80,  0, 44,136,145, 48, 64,112,255, | ||||
| 224, 65, 60,128,  7, 32,  0, 28,192,  1, 24, 32, 15,100,128, 56,  0,  1, 48,  0,  6,208,  0, 73,  0, 15,224,  1, 28,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,128, 28,128,  3, 48,  0, 14,192,  3,  0,  0, 11, 98,128,  8,128,  4,244,  0, 26,192,  3, 41, 64, 15, 96,  0, 60,  0,120,254, | ||||
| 132,  1,  0,  0,  2,192,  0, 24,  0,  0, 96, 64, 12,  0,  1,  1,128,  6,  0,  0,  0,  0,128, 96, 64, 12,  0,128, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,  0,  0, 16,  0,131,  0,  0, 12,132,  1,  4, 16,  4,192,  0,  0,  0,  3, 64,  0, 12,  0,  0, 48,  0,225,250, | ||||
| 160, 80,  0, 10,  4,  1,  0, 24,  0,  8, 33,  0, 12,  0,  0, 52,  0,  0,192, 72, 64,  4,  8, 64,  2, 12,  0,  4, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16, 18,  0,  2,  0, 68,  8,  0, 19,  0,  0, 12,128,  9,  5,  0, 18,194,  0,  0,  0,  3, 32, 64, 12,  0,144, 48,  0, 80,252, | ||||
|   0,  1,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  8,  0,  0,  0,  1, 32,130,  0,  0,  0,  0, 64,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  2,  0, 16,  0,  0,  0,  0,  8,  0,  4,  0,  9,  4,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252,252, | ||||
|   0,  0,  4,  0,  0, 16,  0,  0, 68,  0,  8,  0,  0, 32,  0,  4,136,  0,  0,  0,  2, 64,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,  0,  0, 16,  0,  0, 64,  0,  8,  0,  1, 64,128,  4,128,  0,  0,  0,  2,128,  0,  8,  0,  1,  0,  0,  4, 16,200,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,252, | ||||
|  36,  0,  4,128,  0, 24,  0,  0, 64,  0,  8,  0,  1, 32,  8,  4,  1,  0, 16,  0,  2, 64,  0,  8,  0,  1, 32,  0,  4, 33,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,  0, 16, 16,  0,  2, 64,  0,  8,  0,  1,  0,  0,  0,128,  0, 16,  0,  2, 64,  0,  8,  0,  1, 32, 40,  4,  0, 43,254, | ||||
|  12,  0,  0,  0,  0,  0,  0, 64,  4,  0,  0,  0,  0,  0,128,  0, 17,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  4,  0,  0,  0,  0,  0,  4,128,  8, 16,  0,  4,  0,  0, 32,  0,  0,  8,  0,  0, 32,  0,  0,128, 64,177,249, | ||||
|   0,  0,  0,128,  0, 16,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0, 64,  0,  0,  0, 16,  0,  2,  0,  0,  1,  0,  0,  2,  0,  0,  0, 20,250, | ||||
|   8,  0, 32,  0,  4,  0,  0,  0,  0,  2, 64,  0,  0,  0,  1, 32,  0,  0,  0,  0, 16,  0,  2,  0, 64,  0,  0,  1, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  4,  0, 64,  0,  0,  2, 64,  0,  8,  0,128,  0, 32,  4,  0,  0,  0,  0,  2, 64,  0,  8,  0,  1, 32,  0,234,249, | ||||
|  32,132,  4,128,  0,  0, 72, 64, 72,  0,  8,  0, 33,  4,  0,  0,  0, 64, 18, 20,  2, 64,  0,  8,  0,  1, 48,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,  0,  0, 16,  0,130, 66,  0,  8,  0,  0,  0,  0,  0,128,  0,  0, 68,  2,  0,  0,  8,  0,  0, 32,  0,  0,  0,168,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,128, 16,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0, 18,  0, 64,  0,  0,  0,  0,  0,  0, 64,  0,  8,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0, 56,252, | ||||
|   0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0, 48,253, | ||||
| 128,  0,  0, 16,128,  0,  0,  0,  0,128,  0,128,  0,  0, 64, 32,  0,  0,  0,  0,  0,  4,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  2,  0,  0,  0, 16,  0,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  1,  1, 16,128,  8, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  1,  0,  2,  0,  1,  0,  0,128,  0, 64,  0, 92,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4, 32,217,249, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  0,  0,  0,251, | ||||
|   0,  0,  0,  0,  0, 16,  0,  0,  4,  0,  0,  0,  1,  4,  0, 16,  8,  2,  1,  0,  4,  0, 64,  0,  0,  1,  2, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 64, 32,  0,  0,  0,  0,  0,  0,128,  0, 16,  4,  0,  0, 16,  8,  0,  0, 32,  8,  0,129, 32, 16,  4,  0,  0,  0,  8,  0,249, | ||||
|   0,  1,  0,  0,  0,128,  0,  8,  0,  0,  0, 32,  4,  8,  1,  0,  0,128,  0,  0,  0,  0,  0, 65, 32,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  4, 32,  0, 16,  1,  2,  0,  0,  0,  0,  0,  0,  0,128, 16,  0,  0,  0,  0,  0,  0,  2, 64, 16,  0,160,254, | ||||
|  32,  0,  0, 64,  0, 48,  0,210, 10, 96,192, 64,  3, 44,  0,  8, 16,193,134,  2,  4,  0,  0,203, 64,  2, 36,128,160,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,128,168,165,180,  4,148,128, 82,  0, 67, 33,  2,128,  0, 10, 24,180, 16,216, 52,135,  0, 17, 32, 26,  8,  0,  5, 16, 56,248, | ||||
|  32,  3, 32, 60, 70,193, 40, 16, 18, 34,194, 24, 60,  2,  3,  0, 13,172,144,  3, 34,  2,  0, 96,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 32,  0,  0,128, 68, 32,  8,  5,225,160,  1,160, 34,130,160,170,  0, 68, 16,136,  5, 22,144,  8, 40,  8,  1, 48, 36,128,252, | ||||
|  10,  0,  0, 32,  2, 65, 32,  0,  0,  0,  0, 32,  1,  8,  0,  0,  4,  0,  0,  0,  0,  0,  0,  8,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0, 64, 32,  2,  4,129, 32,  0,  0,  2,  0,  0,  8,  0, 64,  0,  8,  4,  0,  0,  0,  0,  0,  0, 16,  0,208,254, | ||||
| 128,  0, 32,  8,  4, 16,  0, 16,  4,  2, 32, 64,  4,128,  0,  0, 32,  2, 17,  0,  0,  4,  0, 64,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,128,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  8,  0,  0,  0, 32,  0,  0,  1,  0, 16,  2,128,  0, 32,136,212,255, | ||||
|   0,  0,  0, 64,  0,128,  0,  0,  0,  0, 32,  8,  0,  0,  4,128,  0,  4,  4,  0,  1,  0,  0,  0,  0,  4,144,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8, 32,  0, 34,  0,  0,  0,  0,  1,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,192,254, | ||||
|   0,  0, 16,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  1,  0,  0,  0,  0, 48,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0, 32,  0,  0,  0, 16,  0,  0,  0,  0,  0, 64,160,249, | ||||
|   0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0, 33,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  2,  0,  0, 80,  4,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  0,  0,  0, 48,254, | ||||
|   0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0, 32,192,  0,  0, 64,  0,  0,  0,  0,128,  0,  0,  0,  0, 64,  0,  8,  0,  0, 36,  0,  0,  0,152,253, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0, 10,  0,  0,  0,  0, 32,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,112,251, | ||||
|   0,  0,  0,  0,  0,  0, 32,  0,  8,  0,  4,  0,  0,  0,  0,  2,  0,  0,  0,  0, 16,  0,  0,  4,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  4, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,144,252, | ||||
|   2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,252,252, | ||||
|   0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0, 32,  0,  0,  0,  0,  4,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,176,250, | ||||
|   0, 32,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,128,  0,  0,  0,  1,  0,  0,  0,  0,  0, 16,  0, 32,  0,  0,  0,  0,  0,  0,  0, 64, 64,  0,  0,  8,128,  0,  0,120,250, | ||||
|   0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0, 32,  0,  0,  0,  0,  0,184,255, | ||||
|   0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 17,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0, 64,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,128, 24,250, | ||||
|   0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  8,  0,  0,  0,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,  0,  0,  0,176,253, | ||||
|   0,  1, 32,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0, 64,  0,  0,  0, 24,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  1,  0,  0,  0, 32,  0,176,249, | ||||
|   0,  0,  0,  0,  8,  0,  0,  0,  0,  2,  0,  0,  0,  0,  1,  0,  0,  0,  0,  1,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,160,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 40,  0,  1,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,176,255, | ||||
|   0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,172,252, | ||||
|   0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,250, | ||||
|   0,  0,  0,  0,  0,  0,  0,  4,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  8, 32,  0,  1,  0, 34,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0, 16,  2,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  0,  0,  0,  1,  0,  0,216,255, | ||||
| 128,  0,  0,  0,  1,  0,  0,  0,128,  2,  0,  0,  0, 64,  1,  0, 32,  0,  0,  0, 20,136,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 10,  0,  0,  4,  0, 32, 32,  0,  0,  0,  0,  0, 96,253, | ||||
|   0,  0,  0,  8,  0,  0,  0,  0, 36,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0, 64,136,216,252, | ||||
|   0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  4, 32,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,120,252, | ||||
|  10,  0, 16, 16,  0, 68, 32,  0,  0,129,  0, 64,  0,  0,  0,  0, 16,  2,  1,  0,  0,  0,  0, 64, 16,  0,128,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0, 32,  0,  0,128, 32,  0,  0,  0,  0,  0,  4,  1,  0, 16,  8,  0,  0,  0,  8,  4,  0, 32, 16,  4,130, 64,  0,128,253,248, | ||||
|   0,  0,  0,  0,129,128, 16,  8,  8,  0,  0,  0,  1,  2,  0,  4, 32,  0, 18, 32,  0,  4,  0,  0, 64,  8,  4, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 16,  0,  0,  0,  0,  0,129, 32, 16,  0,  0,128,  0,  0,  0,  0,  0,  2,  0,129,  0,  0,  0,  0,  0,  4,  8, 12,248, | ||||
|   0,  3,  8,144,  2, 54,192,  2,144,  0,  1, 32,  1,  8,  0, 20, 48,  1, 86,128,  8, 16, 96, 20, 96,  1, 72, 48,  1, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  9, 32,  0,160, 86,  0, 96,  0, 10, 64,130,133,  0,105, 16,180,128,  2,  6, 72,  0, 22, 32,  2, 68,133, 20, 32,176,248, | ||||
|   0, 32,132, 36,  2,193, 32,  0,  0, 33,  2,  0, 69,  2,128, 18, 38, 22, 65, 34,164,  2,  0, 33, 16,  1, 34,194,  2, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64, 48,136,128, 68, 17,  2, 10,195,136, 10,  0, 65, 38,208,  9, 33, 20, 17,  8, 68,192,  1, 24, 33,149, 65, 16, 36, 72,250, | ||||
|   0,  0,  0,128,  0, 65, 32,  0,  0,  1,  0,  0,  1,  1,  0, 16,128,  0,129, 16,  0,  0,  0,  8, 64,  0,  8, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64,  4, 16,  0, 64,  0,  0,  0,  2,  2,  0,  0,  0,  0, 16,  8,  0,  0,  0,  8,  4,128,  0, 16,  0,128, 64, 16,  0,152,255, | ||||
|   0,  0,  1,  8,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  2,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,128,  0, 32,  0,  4,129,  0, 16,  0,  2,128,  0,  0,  0,  0, 32,  0,  0,  0,  1, 64,  0, 40,  0,  0,  8,192,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  2,  0,  0,248,253, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0, 16, 16,  0, 16,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  2,  0, 32,  0,  0,  0,  8,  0,  0,128,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80,252, | ||||
|   0,  1,128,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  0,  0,  0,  0,  0,  0, 32,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  8,  0,  0,  0,  0,  0,  0,  4,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  1,  8,  0,  0,  0,  0,  0,208,248, | ||||
|   4,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  4,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0, 64,  0,  0,233,251, | ||||
|  10,  0,  4,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 32,  0,  0,  1,  0,  0,128,162,254, | ||||
|   0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0, 64,  2,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0, 16,  4,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0, 32,  8,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  4,132,  0, 72,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  1,  0,  4,  0,  0,200,248, | ||||
|   0,  0,  8, 16,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,128,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,255, | ||||
|   0,  0,  0,  0,  0,  0,  0,  2,  0,  4,  0,  1,  0,  0,  2,  0,  0,  0,  0,  0, 32,  0,  4,  0,  0,  0,  0, 64,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  8,  0,  1,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  1,  0,128,  0,  0,  0,120,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  8,128,  0,  0,  0,  4,  0,128,  0,  0,  0, 64,  0,  8,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0, 50,251, | ||||
|   0,  0,  0,  0,  0,  2,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,176,250, | ||||
|   0,  0,  0,  0,  2,  0,  0,  0,  0,  1,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  8,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  2,  0,  0,  0,128,  0,  0,  0,128,128,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0, 16,252, | ||||
|   0,  0,  4,128,  0,  0,  0,  0,  0,  0,  8, 32,  5,160,  1,  0,128, 64,  0,  0,  2,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,144, 48,128,  2,  4,  0,  2,  0,  0,  0,129, 72, 32,  8, 53,128, 34, 16,  2,128,  4,  0,  8,  0, 13,160, 72, 20,  4,144,253, | ||||
|   0,  0,  0, 32,  0,  0,  0,  0,  0,  0, 98,  0,  4,130,  1,  0, 16,  4,  2,  0,  0,  0,  0, 96,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  4,  0,  0,  0,  0,  0,  8,  0,  4,  8,  0, 48,  0,  0,  1,128,  0,  0,  0,  0,  0, 12,  0,  0,  0,  0, 48,255, | ||||
|   0,  0,  0, 16,  6,  0,  0,  0,192,  0, 56, 16,  7,104,  0, 12,  0,  0,  2,  0,  6,  0,  0,  0,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0, 60,  0,  2,  0,  0,  0,  0,  0, 24,  0, 15,224,  0, 60,  0,  0,114,  0,  6,  0,  0,120,  0, 15,  0,128,  0,  8, 40,251, | ||||
|   0,  0,  0,  1, 16,  8,  0,  0, 64,  0, 72,  1,  9, 32,  0,  4,  0, 16,  0,  0,  2,  0,  0,  0,  8,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 41,  4, 32,  4,  0,  0,  0,  0,  0,  8, 32, 13, 32, 32, 52,  0,  0, 16, 64,  2,  0,  0,104, 64, 13,  0,  0,  0,  2,192,254, | ||||
|   0,  0,128,  0, 16,  0,  0,  0,  0, 35,  1,  0, 36,144,145, 48, 66,  0,  2,  0,152,  0,  0,  0,  2,  0,  0,  0,176, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  2,  0,  0,  0,  0,  0,  0,  2,138,  0,132,  0,  0, 22, 68, 64, 24, 17,  0,  0,  2, 64,128,  9, 48,  1,  8,248, | ||||
|   0,  0, 44,144,  1,  2,  0,  0,192,  3,120, 16, 10,224,  1, 60,128,  1,  0,  0, 30,  4,  0, 24, 32,  0,  0,  0, 60,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 64, 60,128,  5,  0,  0,  6,  0,  0,112, 16,  5,100,  0,  8,136,  5,176,  0, 30,  0,  0,120, 64,  3,104,129, 44, 32,240,253, | ||||
|   0,  0,  0,  0,  0,  1,  0,  0,  0,  3, 32, 16,  4,128,  1, 48,  0,  0,  0,  0, 24,  0,  0,  0, 32,  0,  0,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  6,192, 64, 24,  0,  0,  0, 64,  0,  0,  0, 48,  0, 56,249, | ||||
|   0,  0,  0, 16, 16,  0,  0,  0,  0,  3, 64,  0,  9,144, 65, 48,  0, 16,  2,  0, 24,  0,  0,  0,  4,  0,  0,  0, 48,  0,  0,  0,  0, 58,  0,  0,  0,  0,  0,  0,  0, 30,  0,  0,  0,128,  9, 48,  0,  4,  0,  0,  0,  0,  0, 96,  0, 72,  8,  4,  1,  0, 22, 72,  8, 24,  0,  0, 96,  4,  1,  0,  8, 49, 33, 80,249, | ||||
| 160,  5,  4,128,  0,208, 16,  0,  0,  0,  8, 12, 65, 32,  0,  0,  0, 32, 20,  0,  2,  0,  3, 12,  0,  0, 32,  8,  0,  0,  0,  0,  0, 34,  0,  0,  0,  2,  0,  0,  0, 12,  0,  0,  0,161,  1, 48,128,  0,208,  0,128, 72,147,  8,  0, 72,128,  1,148, 16, 22, 24,  2,128,  4,  0,  0,  2, 65,162, 72, 48,  0,236,250, | ||||
|   0, 65,  0, 32,  0,128,  0,  0,  0,  0, 98,  0,  0,  8,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  1, 32,  0,  0,  0,  2,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0,  6,  0,  1, 32,  6,192,128,  0,  0,  2,  0,  0,  4,  8,  0,  1,  0,  0,  0,128,  0,  0,  0,  0, 32,  8,128,  1,  0, 32,152,250, | ||||
| 224, 65,  0, 16,  0,241,  0,  0,192,  0,120, 16, 12, 96,  0, 12,128,  7,192,  0,  6,192,  3, 58,  0,  0,  0,  0, 12,  0,  0,  0,  0, 24,  0,  0,  0,  8,  0,  0,  0, 10,  0,  0,  0,  4,  0, 60,160,  1,192,128,  6,  0,131,120,  0, 15,224,129,  0,144,  7,242,  0,  6,  0,  0, 24,  0,  3,128,  0, 60,  0, 32,250, | ||||
| 168,  9,  0,  1, 32,208,  0,  1, 64,  0,  8,  4,132, 34,  0,  4,128,  6,192,  0,  2, 64,  8,  8, 18,  0,  0, 32,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0, 16,  6,130, 22,130,  8,  2,  0, 19,104, 68, 13, 32,  4,  0,128, 16, 16, 64,  2,  0,  0,  8,  0, 65,129,  1,  6,  4, 11,255, | ||||
| 128, 17,144,  0,  6,192,136,  0,  0, 11, 33, 20,  8,130,  5, 50, 33,  6,  4,128, 24,  0,  0,  0, 65,  0,  0,136, 48, 16,  0,  0,  0, 48,  0,  0,  0,  0,  0,  0,  0, 20,  0,  0,  0,128,  8,  0,  0,  6,194,136, 24,  0,  3,  0,128,138,  0,  0, 48,  2,  0,128, 64, 24, 33,  0, 96, 66,  0,136,133,  0,  0,193,253, | ||||
| 224,  1, 13,144,  1,242,  0,  0,192,  3, 88,  0, 15,224,  1, 60,128,  7, 48,  0, 30,196,  3, 24,  0,  0, 96,  0, 60,  0,  0,  0,  0, 32,  0, 40,  0,  0,  0,  0,  0,  0,  0, 22,  0, 96, 65, 60,128,  7,240,  0, 30,200,  3,121,  0,  5,228,  1, 44, 32,  7,112,  0, 30,  0,  0,120,  0,  3, 96,  1, 60,  0,116,252, | ||||
| 132,  1,  1,  0,  0,196,  0,  0,  0,  3, 32,  0,  8,128,  1, 48,  0,  0,  0,  0, 24,  0,  0,  0, 64,  0,  0,  0, 48,  0,  0,  0,  0,  8,  0, 48,  0,  0,  0,  0,  0, 12,  0, 20,  0,  0,128,  0,  0,  0,194, 64, 24,  0,  3,  0,  0,  4,  2,  0,  0,  0,  0,192, 64, 24,  0,  0, 96,  0,  0,128,  0,  0,  0, 58,250, | ||||
| 128,  1,  0, 16, 32,192,130,  0,  0,  3, 64, 16, 44,130,  1, 48,  0, 32,  1, 20, 24,  0,  3,  8,  2,  0,128,144, 48,  0,  0,  0,  0,  0,  0, 40,  0,  0,  0,  0,  0,  8,  0,  6,  0,  0,  8, 48,  0, 64,192,  4, 24,  0,  3, 97,128, 72,160,  1,  0, 33,  6,128,  8, 24,  0,  0, 96,  0,  1,144, 69, 48,  0,104,249, | ||||
|  32,  0, 20,128,  0,  4,  0,  0, 64,  3,  8,  8,  0,  4, 16, 52,  0, 38, 20,  0,  2,  0,  0,  0, 68, 64, 40,  0,  4,  0,  0,  0,  0, 24,  0, 40,  0,  0,  0,  0,  0, 16,  0, 20,  0,160, 17,176,128,  6,  0,  0, 10, 65,  0,  8,  0, 72,160,  4, 20,145, 66, 16,  2, 10, 16,  0,  0,  0, 13,160,136, 52,  2,240,253, | ||||
|   0,  0,  0, 32,  0,  0,  0,  0,  0,  3, 96,  0,  0,  0, 64,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0, 16,  0, 26,  0,  0,  0,  0,  0,  0,  0,  2,  0,128, 65,  0, 32,  0,  0,  0, 16,  8,  0,  0,  0,  4,  8,  1,  1,  0,  0,  1,128, 16,  0,  0,  0,  0, 12,  0,  1,  0,  8,  8,253, | ||||
| 224,  1,  0, 16,  2,  4,  0,  0,192,  3,120,  0,  3, 96,  0, 60,136,  1, 48,  0, 24,  0,  0, 24, 16, 15,100,  0, 48,  0,  0,  0,  0,  8,  0, 18,  0,  0,  0,  0,  0,  4,  0, 18,  0, 96,  0, 60,128,  1,  2,  0, 14,  0,  3,120,  0, 15,224,  0,  0, 16,  0, 50,  0, 14,  0,  0,  0,  0, 15,224,  0, 16, 32,208,253, | ||||
| 164,  1,  0,  1, 16,  0,  0,  0, 64,  3,  8, 20,  1, 32,  0,132,128,  0, 16,  0,128,  2,  0,  8,  0, 65, 32,128,128, 16,  0,  0,  0,  0,  0, 18,  0,  0,  0,  0,  0,  4,  0,  2,  0, 32, 72,  4,160,  0,  0,  0, 18,  0, 80,104, 65, 13, 32,  1,  0,  0,  0, 16, 64, 18,  0,  0,  0,  0, 13, 32,  1, 32,  1,202,253, | ||||
| 140,  9,128,  0, 16,  0,  0,  0,  0, 16, 36, 20, 12,136,  5,128,  0,  6,192,  2,  0,  0,  0,  0, 32, 32,  0, 16, 48, 34,  0,  0,  0,  8,  0, 18,  0,  0,  0,  0,  0, 16,  0, 22,  0,128, 72,  0,  0, 32,  8,  0,  8,  0,131,  0,128,138,128,  0, 48,  6, 70,  0, 64,  8,  0,  0,  0,  0, 12,128,  0,  0,  0,216,251, | ||||
| 224,129, 12,144,  1,  2,  0,  0,192,  0, 88,  0, 15,224,  1, 13,144,  6,240, 64,  6,  4,  0, 24,  0,  3, 68, 64, 12,  0,  0,  0,  0,  8,  0, 56,  0,  0,  0,  0,  0,  0,  0, 12,  0,228,  1, 60,128,  1,  0,  0, 22,192,  0,120,  0,  5,100,  1, 44,128,  5, 52,  0, 22,  0,  0,  0,  0, 14, 96,  1, 60, 32, 72,255, | ||||
| 136,  1,  1,  0,  0,  0,  0,  0,  0,  0, 32,  0, 12,128,  1, 48,  8,  0,192,  0,  0,  0,  0,  0,  0, 12,128,  1, 49,  0,  0,  0,  0,  0,  0, 10,  0, 16,  0,  0,  0,  0,  0, 22,  0,128, 64,  0,  0,  0,  2,  0,  8,  0,  3,  0, 64,  4,130,  0,  0,  0,  6,  0, 64,  8,  0,  0,  0,  0, 12,128,  0,  0,  8,169,253, | ||||
| 128,  1,  0, 16, 32,  2,  0,  0,  0,  0, 64, 17, 12,128,  1, 48,  1,  0,192,  0,128,  8,  0, 96, 68, 12, 36, 16, 48,  5,  0,  0,  0,  0,  0, 56,  0,  2,  0,  0,  0,  0,  0, 28,  0,130,  5, 52,  0, 16,  0,  0, 18,  0, 67, 96,  2,  8,  0,  1,  0, 33, 22,136,  8, 18,  0,  0,  0,  0, 12,  0,  1, 48,  2,248,249, | ||||
|  32,  0,  4,130, 32,  0,  0,  2, 64,  0,104,  4,  0, 36,  0,  0,  0, 32, 20,  0,  2,  0,  3,108,  0,  0, 32,  0,  4,  0,  0,  0,  0,  0,  0, 34,  0, 32,  0,  0,  0,  0,  0, 18,  0,164,  1,176,128,  0, 16,  0,128,  8, 11,  8,  0, 72,160,  1,164,  0, 22, 24,  2,  0, 64, 32,  9,  1,  1,160,  4,  4,  0, 64,254, | ||||
|   0,  0,  0,  8,  0,  4,  0, 24,  0,  0, 64, 16,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0,  0,  0,  0,  0,  0,  0,  2,  0, 16,  0,  0, 32,  4,  4,  0,  0,  0,  0,  2,  0,  4,136,  1, 48, 32,  0,  0,128,  0,  0,  0,  0, 32,  0,  0, 64,  0,  0,224,252, | ||||
|  96,  0, 12, 16,  0,  0,  0,  0,192,  0, 96,  0,  3, 96,  0, 12,128,  1, 48,  0,  6,192,  3, 96,  0,  0, 96,  0, 12,  0,  0,  0,  0,  0,  0, 32,  0, 18,  0,  0,  0,  0,  0, 22,  0,225,  1, 60,144,  1,194,  0,  6,192,  3,120,  0, 15, 96,  0, 32,136,  7, 48,  0,  0,  0,  0, 24, 32,  3,  0,128, 12,  0,192,250, | ||||
|  36,  0,  4,  0,132,  0,  0,  0, 66,  0, 96, 18,  1, 32,  0,  4,128, 22, 24,  0,  2, 64,  8, 98,  0,  0, 32,  0,  6,  0,  0,  0,  0,  0,  0, 18,  0,  0,  0,  0,  0,  0,  0, 26,  0, 32, 80,  4,130, 16,  0, 20,  2, 64,  8,108, 64, 13, 32,  0, 48,129,128, 16, 64,  0,  0, 32, 12,  0,  1,  0,  0,  4,  0,202,255, | ||||
| 140, 17,  0, 65, 32,  2,  0,  0, 17, 11, 97,  4,140,128, 17, 48,  2,  6,192,  2, 24,  2,  0,  0,  4,  0,  0, 32, 48,  0,  0,  0,  0,  0,  0, 48,  0,  4,  0,  0,  0,  0,  0,  4,  0,  2,128,  0,  0, 32,200,  0, 24,  3,  0,  0,128,138,128,137,  0,  9,  0,  0, 64,  0,  0, 32,  0,130, 44,128,  1, 49, 64,120,252, | ||||
| 224,  1, 45,128,  1,  0,  0,  6,192,  3,120, 64, 15,232,  1, 61,144,  0,240,128, 30,192,  3, 24, 16,  0, 96,  0, 60, 16,  0,  0,  0,  0,  0, 18,  0,  2,  0,  0,  0,  0,  0, 10,  0,193,  1, 60,128,  1, 48,128, 30,192,  3,120,  0,  5,228,  1, 12,  0,  7, 48,  0,  0,192,  2, 89,  0, 14, 98,  1, 60,  0,112,252, | ||||
| 136,  1,  0, 16,  0,  0,  0,  0,  4,  3, 96, 32, 12,128,  1, 48,  0,  0,192,  0, 24,  0,  0,  0,  0,  0,  0,  0, 48,  0,  0,  0,  0,  0,  0, 56,  0,  8,  0,  0,  0,  0,  0, 16,  0,132, 65,  0,  0,  0,194,  0, 24,  0,  0,  0, 64,  4,130,  1, 48,  0,  0, 64, 64,  0,  0,  0,  0,  0, 12,  0,  0, 48,  0,105,249, | ||||
| 128,  1,128,  0, 64,  2,  0,  0,  0,  3, 96,  4, 12,128,  1, 48,  0,  6,208,  0, 24,  0,  3,  0,  0,  0,128,137, 48,  0,  0,  0,  0,  0,  0, 16,  0, 10,  0,  0,  0,  0,  0, 26,  0,  4, 16, 52,  0,  0,192,136, 24, 64,  3, 96,  0, 40,160, 73, 16, 34,  6, 64,  8,  0,  0,  8,  1,129, 12,  0,  8, 49,  0,232,248, | ||||
| 128, 17,133,136, 32,  0,  0,  0,  0,  0,104,  0, 37, 32,  0,  0,  0, 32, 20,  0,  2, 80,  0,  8,  1,  0, 32,  0, 48, 33,  0,  0,  0,  0,  0, 50,  0,  0,  0,  0,  0,  0,  0, 24,  0, 32,  0, 52,  2, 16, 17,  0,  0,  0, 35, 10,  0,141,168, 17, 20,160, 18, 81,  2, 66, 68,  0, 96,  1,  1,160,  4,  5,  0,252,249, | ||||
| 128,  1,  0,  0,  0,  1,  0,  0,  0,  0,  2,  0,  8,  8,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  8,  0,  0,  0,  0,  0, 10,  0,  0,  0,  0,  8,  6,  0,  0,  0,  0,  3,  0,  0,  8,  0, 64, 32,  0,  0,128,128,  0,  0,  0,  2, 64, 12,  0,  1,  0,  0,232,250, | ||||
|  96,  0, 12,144,  1,  0,  0,  0,192,  0, 96,  0,  4, 96,  0, 12,128,  1, 50,  0,  0,192,  0,  0,  0,  0, 96,  0, 12,  0,  0,  0,  0,  0,  0, 16,  0,  2,  0,  0,  0,  0,  0,  8,  0,228,  1, 16,128,  1,192,  0,  0,192,  0, 24,  0, 12,132,128, 16,  0,  0,178,  0,  6,  8,  0,121, 32,  0,224,  0, 12,  0,200,250, | ||||
|  36,  0,  4,128,  0,  1,  0,  0, 64,  0, 96, 18,  8, 32,  0,  4,128,  6, 16,  0,136, 66,  0,  0,130,  0, 32,  0, 54, 16,  2,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,160,  1, 32,144,  0,  1, 20,  0, 64,  0,  8,  0, 72,  0,  9, 32,  0,  0, 16, 64,  2,  0, 18,  8,  1, 64, 34,  1,  4,  0,  3,255, | ||||
|  12, 72,  0, 65, 16,  4,  0,  0,  0, 11, 98, 34,  4,128,  1, 48,  1,  6,192,  4,  0,  1, 19,  2,  1,  0,  0, 32,  0, 16,  0,  0,  0,  0,  0, 32,  0,  6,  0,  0,  0,  0,  0,  6,  0,131,129,  0,  0, 22,192,  8,  0,  0,  3,  0,  8,  8,  0,  0, 16,  0,  6,  0, 64,128, 32,  8,  0,  0,128,128,  0, 48, 17,205,251, | ||||
|  96,  0, 44,  0,  1,  0,  0,  0,192,  3,120,  0, 11,224, 65, 60,160,  0,240, 32,  6,196,  3, 88, 64,  0, 96,  0, 12,  0,  1,  0,  0,  0,  0, 10,  0,128,  0,  0,  0,  0,  0, 30,  0,192,  1, 60, 32,  1, 52, 64,  0, 64,  3, 24,  0,  9,224,  1, 45,128,  5,180,  0, 22,192,  0,121,  0,  3,104,  1, 60,  0, 16,250, | ||||
| 136,  1,  0, 16,  0,  0,  0,  0,  0,  3, 96,  0,  4,128,  1, 48,  0,  0,192,  0,  0,  0,  3,  0, 32,  0,128,  1, 48,  0,  2,  0,  0,  0,  0, 40,  0,  0,  1,  0,  0,  0,  0,  4,  0,  0, 64,  0, 32,  6,192,  0,  0,  0,  0, 96, 32,  8,  0,128, 16,  0,  6,192, 64,  0,  0,  0,  0,  0,  0,128,  0, 48,  0,162,253, | ||||
| 128,137,128,128, 36,  1,  0,  0,  0,  3, 96, 64,  8,128,  1, 48,  0,  6,208,  0,  0, 69,  3, 16,  1,  0,  0,136, 48, 32,  0,  0,  0, 58,  0,  8,  0,  0,  0,  0,  0, 30,  0, 30,  0,  0, 16, 48,  1, 22,193, 66,  0,  0,  0, 96,  4,  8,128,  1, 32,  0, 22, 72,  8, 64, 32,  0,105,  0,128,  4,  1, 48,  0,184,255, | ||||
| 160,  1,  4,128, 18,  1,  0,  0,  0,  0,  8,  0, 44, 32,  0, 52,  1, 32, 20,  0, 26,  0,  3, 12,  0,  0, 32,  0,  0,128,  4,  0,  0,  0,  0,  8,  0, 64,  2,  0,  0,  0,  0, 28,  0, 32,  0, 52,128,  0, 16,  0,128, 72, 18,  8,  0, 44,160, 48, 52,  0, 22, 24,  2,  2, 64,144, 96, 68, 13,128,  1, 52,  0,  8,251, | ||||
| 128,  1,  0, 32,  4,  0,  0,  0,  0,  0,  2,  0, 12,  4,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0, 40,  0,  0,  0,  0,  0, 16,  0, 18,  0,128,129,  0,  8,  0,  4,  0,  0,  0,  0,  1,  0,  0,  8,  1,  0,  0,  0,  0,128,  0, 16,  0,  0,  0,  0,  0,  0, 49,  0, 24,248, | ||||
| 224,  1,  0,144,  3,  1,  0,  0,192,  0, 96,  0,  3,224,  1, 48,128,  1, 48,  0, 30,196,  3,  1,  0,  0,  0,  0, 12,  0,  1,  0,  0, 58,  0, 56,  0,128,  0,  0,  0, 30,  0,  0,  0,128,129, 16,128,  1,194,  0,  6,192,  3, 26, 32, 15,224,  0, 48,128,  7,112,  0,  0,192,  0, 25,  0,  0,224,  1,  0,  0,184,251, | ||||
|  36,128,  0,129, 36,  0,  0,  0, 64,  0, 96,  0,  1,160,  1, 48,137, 70, 24,  0, 66, 64, 32,  0,129,  0,  0,  0,  6,128,  0,  0,  0, 58,  0,  2,  0, 72,  0,  0,  0, 30,  0, 30,  0,128,  5, 32,192, 20,  0, 20,  2, 64, 10,  8,  2,  1, 33,  1,128,136, 64,148, 64,128, 96,  0,  8, 32, 64, 34, 16,  2,  0, 58,251, | ||||
|  12, 68,128,  0, 66,  1,  0,  0,  0,  3, 98, 34, 32,130, 69,128, 64,  6,192, 36, 24,  5,  0,  0, 66,  0,  0, 32, 48,  2,  2,  0,  0, 58,  0, 32,  0,  2,  1,  0,  0, 30,  0, 20,  0,  4,  9,  0,  0, 32,200, 66, 24,136,  0, 96, 20,  0,128,  0,  0, 16,  0,  0, 64, 64,  0, 16,  4, 33,  0,  0,  0,  0,  0, 80,251, | ||||
|  96,  0, 12,144,  5,  0,  0,  0,192,  3,120,  0,  3,224,  1, 44,128,  0,240,  0, 30,192,  3,120,  0,  0, 96,  0, 60, 32,  2,  0,  0, 58,  0,  2,  0, 12,  1,  0,  0, 30,  0, 14,  0,228, 64, 60,160,  1, 48,  0, 30, 64,  3, 24,  0, 15, 96,  1, 60,  0,  7, 48,  0,  6,200,  2, 24,  0,  3,200,  1, 12, 32,248,248, | ||||
|   8,  0, 17,  0,  6,  0,  0,  0,  0,  3, 96,  0, 12,  0,  0, 16, 16,  0,192,  0,  0,  0,  0,  0,  0,  0,128,  1, 48,  0,  0,  0,  0, 58,  0, 32,  0,  0,  0,  0,  0, 30,  0,  4,  0,129,129,  0, 32,  0,194,  0, 24,  0,  0, 96, 16,  0,128,  0, 48,  0,  0,192, 64,  0,  8,  0,  1, 32,  0,  4,  0,  0,  8,177,248, | ||||
| 160,  9,  0,144, 64,  1,  0,  0,  0,  3, 96, 64, 76,  4,  4, 34,  1,  6,208,  0,  2,  8,  3,  0,132,  0,  0,136, 48,  0,  2,  0,  0, 58,  0,  0,  0,  0,  1,  0,  0, 30,  0, 30,  0,194,  9, 48,  1,  4,192,  2, 25,  0,  3, 96,  2, 13,  0,  1, 48, 33,  6,128,  8, 80,  0,  8,  8,  2,  0,160,  1,  0,  2, 64,254, | ||||
| 160, 32,  4,128,  0,  4,  0,  2,  0,  0,  8,  0,  1, 32, 16,134, 64, 32, 20,  0,  2,  0,  3, 12,  0,  1,160,  8,  0,161,  0,  0,  0, 58,  0, 34,  0, 74,  0,  0,  0, 30,  0, 28,  0,168,  5,  0, 34, 16,  1,  0,  2,  0,146,  0,129, 44,160,  1, 53,128,  0,212,  2, 64, 64,  0,  0,  2,  1,161, 17, 54,  0,  4,255, | ||||
| 128,  1,  0,  8,  2,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0, 58,  0,  0,  0,  0,  0,  0,  0, 30,  0, 14,  0,128,  1,  1,  0,  6,  0,  0,  0,  0,  1,  8,  0,  0,136,  1,  0,  0,  2,  0,128,  0, 16,  0,  0, 32,  8,128,  0, 48,  0,208,255, | ||||
| 224,  0, 13, 16,  0,  4,  0,  6,192,  0,  0,  0,  3, 96,  0, 49,136,  1, 52,  0,  0,192,  3,  0,  0, 15,  0,  0, 60,128,  1,  0,  0, 58,  0,  0,  0,192,  0,  0,  0, 30,  0, 12,  0,  8,  1, 60,128,  1,  0,  0,  6,  0,  1, 24,  0, 15,136,  0, 48,  0,  0,112,  0,  6,  0,  0, 24,  0,  0,128, 65, 48,  0,192,253, | ||||
|  36,  8,  4,  0, 16,  0,  0,  2, 64,  0,  0, 16,  1, 32,  8, 16,130, 22, 16,  0,  0, 64, 64,  0,132, 13,  0, 32, 52,  0,  0,  0,  0, 58,  0, 40,  0,  4,  0,  0,  0, 30,  0,  2,  0,128,  0, 53,138,  0,  1,  0,  2,  0,  2,  8, 32, 33,  0,  4,  2,  8,  0, 18, 64,  2,  0, 64,  8,  0, 64,136, 16, 48,  0, 11,254, | ||||
|  12, 80,  0, 65, 16,  0,  0, 24,  3, 19,100, 16, 12,  0,128, 32,  1,  6,192, 34,152,  4,  0,  0, 66, 44,  0,136, 48, 16,  0,  0,  0, 58,  0, 48,  0,  8,  0,  0,  0, 30,  0, 16,  0,128,  9,  0, 65,  6,  1,  0, 24, 33,  2,  0,  4,  0,128,  9,  2,  2, 64,  8, 64,  0,  1,  3, 96,132, 36,  8,133,  0,  1,225,253, | ||||
|  96,  1, 44,128,  1,  2,  0, 30,192,  3, 24,  0, 15,104,  1, 60,144,  0,240,  0, 30,192,  3, 24,  0, 15,104,  0, 60,  0,  0,  0,  0, 58,  0, 10,  0,  0,  0,  0,  0, 30,  0, 26,  0,224, 65, 60,  0,  1,  0,  0, 30,  0,  1,112, 16, 15,224,  1, 60,144,  1,240,  0,  4,200,  0,122,  0, 15,224,  1, 12,  8,140,249, | ||||
| 136, 65,  0, 16,  0,  0,  0, 24,  0,  3,  0,  0, 12,  0,128, 32,  0,  0,192,  0, 24,  0,  0, 96,  0, 12,  0,  0,  0,  0,  0,  0,  0, 58,  0, 40,  0,  0,  0,  0,  0, 30,  0, 16,  0,128,129,  0, 16,  6,  0,  0, 24,  0,  1,  0,  0,  0,128,  1, 48,  0,  0,194, 64, 24,  8,  0, 96,  0,  0,132,  1,  0,  0, 66,250, | ||||
|  32,  5,128,  0, 32,  2,  0, 24,  0,  3,  0, 17, 12,  0,  4, 48,  8,  6,208,  0, 28,  0,  3, 16,129, 76, 16,144,  0, 16,  0,  0,  0,  0,  0, 10,  0,  0,  0,  0,  0,  0,  0, 10,  0,  0,  8, 48,  0, 22,  1,  0, 24,  0,  2, 96,  0, 13,128,137, 48, 33, 33,  0,  8,152,  0,  0, 98,  0, 12,128, 69,  0,  0,  0,252, | ||||
|  32,  0,132,  0, 32,  4,  0,  0, 64,  0,  8,  0, 76,168,  1,  4,  0,  4,212,  0,  2,  0,  3, 12,  0, 73,160, 64, 52,  0,  0,  0,  0,  0,  0, 40,  0,  0,  0,  0,  0,  0,  0,  0,  0,160, 16, 50,162,  6,  0,  0, 26,  0, 34,  2,129, 44, 32,137,  4,128,  0, 24,  2, 26, 64,  1, 96,  1, 13,160,  1,  0, 10,176,250, | ||||
|   0,  0,  0,  8,  0,  0,  0,  0,  0,  0, 96,  0, 12,128,  1,  0,  0,  0,192,  0,  0,  8,  0,  0,  0,  4,  4,  1, 48,  0,  0,  0,  0,  0,  0,  8,  0,  2,  0,  0,  0,  0,  0, 26,  0,  1,  1, 48,  0,  6,  0,  0,  0,  0,  1,  8,  0,  0,  8,  0,  0,  0,  2,  0,128,  0,  0,  0,  2, 64, 12,  0,  0,  0,  0,208,250, | ||||
| 224,  1, 12,144,  1,  0,  0,  0,192,  3,  0,  0,  3,128,  1, 48, 32,  4,240,  0,  8,192,  3, 97,  0, 11,224,  0,  0,  0,  0,  0,  0,  0,  0, 42,  0, 16,  0,  0,  0,  0,  0, 24,  0,136,  0, 60,  0,  6,  0,  0,  0,192,  3, 24,  0, 15,132,129, 12,  0,  0,176,  0, 24,  0,  1,121, 32, 15,128,  1, 12,  0,176,250, | ||||
| 168,  1,  4,128, 16,  1,  0,  0, 64,163,  0, 64,  1,128,  1, 48,  0, 32,209,  0,128, 68,  8,  0,130,  5, 32,129,  0,  0,  4,  0,  0,  0,  0,  8,  0, 16,  2,  0,  0,  0,  0, 10,  0,  8,  1,132,  8,  6,  0,  0, 88, 96,  3,  8, 32, 33,128,  1,  4,  0,  0, 20, 64,  0, 16, 18,  8,  2, 13,  0, 72,  4,  0, 66,251, | ||||
| 128, 17,  0, 65, 32,  0,  0,  0,  0,  8,  0,  0,  0,  2, 72,  0, 64,  0,  0,  4,144,  8,  0,  0, 33,  8,128, 80, 48, 16,  2,  0,  0,  0,  0,  8,  0, 24,  1,  0,  0,  0,  0,  8,  0,140,  0,  0,  8,  0,  0,  0, 24,130,  2,  0,  1,  0,  0, 80, 48, 16, 16,  4, 64, 64,  0, 32,  0,  0, 64,  0,  8,177,  0,112,249, | ||||
| 224,  1, 45,128,  1,  4,  0,  0,192,  3, 26, 16,  3, 96,  0, 60,  0,  2, 48, 64,  6,192,  3, 24,  0,  6, 96,  1, 60,  0,  5,  0,  0,  0,  0, 32,  0,144,  2,  0,  0,  0,  0, 18,  0,104,  1, 12,128,  1,  1,  0, 30, 64,  1,114, 16, 15,224,  0, 60,128,  1,112,  0, 30,200,  0,121,  0,  3,232,  1, 60, 32, 24,248, | ||||
| 132,  1,  0, 16,  0,  0,  0,  0,  0,  3,  0, 32, 12,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  8,128,  1, 49,128,  4,  0,  0,  0,  0, 48,  0, 88,  2,  0,  0,  0,  0,  0,  0,140,  0,  0,  0,  6,  1,  0, 24,  0,  1,  0,  0,  0,  0,  0, 48,  0,  0,192, 64, 24,  0,  0,  0,  0,  0,128,  1, 48,  0,113,250, | ||||
| 128, 81,128,  0, 22,  4,  0,  0,  0,139,  0,  4, 76,  4,  0, 48,  0,  2,  0,  0,  0,  9,  3,  0, 65,  4, 32, 16, 48, 16,  4,  0,  0, 58,  0,  2,  0,  8,  2,  0,  0, 30,  0, 26,  0,  4,  1, 48, 66,  6,  0,  0,  0, 32,162, 96,  0, 13,  0,  8, 49,  0, 32,  4,  8,152, 16,  8,105,  0,  1,128,  9, 49,  0,224,255, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0, 32,  0,  0,  2,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0, 18,  0,  0,  1,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  8,  0,  1,  0,  0, 20,252, | ||||
|   0,  0,  4,  0,  0, 16,  0,  2, 64,  0,  8,  0,  1, 32,  0,  4,128,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  4,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  0,  0,  0,  0, 10,  0, 33,  0,  8,128,  0, 16,  0,  2,128,  0,  8,  0,  2,  0,  0,  4,128,  0, 16,  0,  2, 64,  0, 16,  0,  0,  0,  0,  4,  0,168,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,255, | ||||
|  36, 32,  4,128,160, 16,  0,  2, 64,  0,  8,  0,  1, 33,  0,  4,128,  0, 16,  4, 66, 96,  8,  9,  0,  1, 32, 40,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 26,  0, 32,  0,  4,128,  0, 16,  0,  2, 64,  0,  8,  0,  1, 32,  0,  4,128,  0, 16,  0,  2, 64,  0,  8,  0,  1, 32,  0,  4,  0,235,250, | ||||
|  12,  0,  0,  0, 64,  2,  0,  0,  0,  0,  0,  0, 64,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  8, 68,  0,  0,  0,  0,  0,  0,  0, 34,  0,  0,  0,  0,  0,  0,  0, 24,  0,  0,  8,  1,  0, 32,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0, 66, 16,  0,  0,  0,  2,  0,  0,  0,128,  1, 80,  0,  0,173,252, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 10,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,255, | ||||
|   8,  1, 32,  0,  0,130,  0,  0,  0,  2,  0,  0,  8,  0,  1, 32,  0,  4,128,  0,  0,  0,  0,  0,  0,  8,  0,  1, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  1, 32,  0,  4,  0,  0, 16,  0,  2, 64,  0,  8,  0,  0, 32,  0,  4,128,  0, 16,  0,  2, 64,  0,  0,  0,  0, 32,  0, 74,250, | ||||
|  32,  0,  4,128, 16, 16,  0, 66, 72,  0,  8, 68,  0, 32,  0,  4,128,  0, 16,  0, 66, 72, 32,  9,  0,  0, 32,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,128,  0, 16,  0,  2, 64,  0,  8,  0,  1, 32,  8,  6,  0,  0, 16,  0,  2, 64,  0,  8,  0, 64,  2,  8,  6,  0,224,255, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,129,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,128,  0,200,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,128,  0,  0,  0, 88,253, | ||||
|   0,  0,  0,128,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  8,  8,  0, 32, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  4,  0,160,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,144,248, | ||||
|   0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,  4,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0, 64,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0, 72,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0, 16,  0,  0,  0, 32,  0,  0,  0,  0,  0,  4,  0,  0,  0,192,252, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,144,255, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  1, 64,  0,  1,  0,  0, 64,  0,  8,  4,129,  0,  0,  0,128,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,128,  0, 16,  4,  2,  0, 16,  4,  1,  1,  0,  4,  0,  0,  8, 16,  4,  0,  1,  0,  0,216,251, | ||||
|   0,  1,  0,  8,  0,128,  0,  0,  0,  0,  0, 32,  0,136,  0, 16,  8,  0,  2, 32,  0,  0,  0,  0,  0,  4, 32,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0, 64,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 16,  0,176,255, | ||||
|  32,  0,  0, 32,  0, 16,  0,  0,135,  0,192, 64, 90,105,131,  4, 32,  0,164,129,  4,140,129,193,  0,  1,112,128,160, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48, 24,  0,  0,  0,  0, 80, 16,  1,  1, 32,  2,  4,  0,  9,144,  1, 66, 32, 12,  0, 80, 16, 32,  2, 64,  0,  5,  0,  8,250, | ||||
|   0,  0, 48, 11,  4,  0, 64,145,  0, 74,  0, 24,  4,130, 65,  0,  1, 68, 10, 28,  0,128,152, 32,  0,  0,132, 32, 32, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 34,128, 16, 16,  8,  0, 16,  5,  0, 12, 10,  8,176, 10,194, 16,  0, 48, 64,148, 64, 64, 37,138, 72,  0,132, 56,255, | ||||
|   0,  0, 16,  8,  0,  0,  0,  0,  0,  0,  0, 32,  1, 34,  0,  1,  0,  0,  0,  0,  0,  0,128, 32,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  1,  2,  0, 16,  8,  1,  0,  0,  0,  0, 64,  0,  0,  4,132, 64,  0,  0,232,253, | ||||
|   0,  0, 32,  0,  4,  0,  0, 16,  0,130,  0, 64,  0,128,  0,  0,  0,  2,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 32,  0,  0,  0,  0,  0,  4,  0,  0,  8,  0,  0,  1,  0,  8,  0,  0, 64,  0,  0,  0,  0,  0,144, 96,252, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  2,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,168,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,136,252, | ||||
|   0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  2,  0,  0,  0,  0,  0,  1,  0, 64,  0,  0,  0,  0,  0,  0,  0, 32,232,255, | ||||
|   0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  2,128,  0,  0,  0,  0,  0,  0,  8,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,208,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  2,  8,  0,  0,  0,  0, 16,  0,  0,  0,  0,  1,  0,160,255, | ||||
|   0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0, 18, 16, 32, 64,  0,  0,  0,  0,  0,128,  0, 16,  0,  0,  0,  0,  8,  0,  1,  0,  0,  4,128,  0, 16,224,250, | ||||
|   0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 64, 32,  1,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  8,  0,  4,  0,  0,  0, 32,  0,  0,  0,  2,  0,  0,  8,  0,  0,  0,  0,  0, 64,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  1,  0,  0,144,  0, 32,  0, 32,  0,  4,  0,  0, 24,255, | ||||
|  18,  0,  0, 64,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0, 64,  0,  0,  0,  2,  0,  0,  2,  0,  0, 32,  0,  4,192,  0,  0,  0,  0,  0,192,253, | ||||
|   0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  8,  0,  0,  0,  1,  0,  0,  0,  0,208,253, | ||||
|   0,  4,  0,  0,128,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  8,  0,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  4,  0,  0,128,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0, 16,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0, 24,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,168,251, | ||||
|  32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0, 84,255, | ||||
|  32,  0,  8,  0,  0,  0,  0,  0,128,  0,  0,  0,  0, 64,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  4,  0,  0,  4,128,  0, 16,  0,  0,  0,  0,  2,  0,128,249, | ||||
|   0,128,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254, | ||||
|   0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0, 32, 16,  0,  2,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,129,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,112,250, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 32,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,253, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,253, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,192,  0,  0,  0,192,  0,  0,  0, 96,  0,  0,  0,192,  0,  0, 64,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,251, | ||||
|   0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  2,  2,  0,  0, 64,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16, 16,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,128,  0,  0,  0,152,254, | ||||
|   0,  0,  0,  0,  0,  0, 32,  0,  0,  0, 32,  0, 40,  0,  0, 64,  0,  0,128,  0,  2,  0,  0,  0,  0,  0,  2, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8, 64,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,144,252, | ||||
|   0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  8,  0, 16,  0,  0,  0,  8,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0, 64,  0,  0,  0,  1,  0,  0,  0,  0,  0,  1,  0,  8,  0,  1,  0,128,112,254, | ||||
|   0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  1,  0,  0,  0,  4,  0,  0,128,  0,  0,  0,  2,  2,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,  0,  0,  0,  0,  0,136,255, | ||||
| 142, 64, 16,  8,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0, 16,  4,128, 32,  0,  0,  0, 64, 16,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0, 32,  0,  8,  0,128, 32,  0,  0,  2,  0,  8,  8,  1,  1,  0,  8,  4,  0,  2, 16,  0,  0, 64, 16,128, 84,254, | ||||
|   0,  0,  0,  0,  1,  0,  0,  8,  0,  0,  0,  0,  4,  0,  0,  0,  8,  2, 65, 32,  0,  8,  0,  8, 16,  0,128,  0,  1,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  2,  0,  0,128, 64,  4,  8,  0,  1,  0,  0,  0,  0,  0,  0,  0,  4, 64, 16,  0,  0,  0,  0,  0,  0,  1,  0,  0,  4,  0,  0,  0,  0,210,249, | ||||
|  64,128,104,214,  0,128, 25,  2, 11,138,  0, 10,  1,  0,  0,  8,168,  0, 84,128,  4, 31,  1, 25, 64,  0, 32,176, 11, 32,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  4,  2, 64,  0, 32,  3,  5, 32,  0,164, 21, 12, 32,  1, 17,  0,  0, 12,  0, 13, 16,  1, 66, 32, 52, 72,  0, 33, 44,129,129,128, 24,  0, 40,253, | ||||
| 128, 66,  0, 20,  3, 33, 41,  0,  3,  1,  0, 14,132, 21, 32,144, 43,  0, 96,100,129, 41, 18,  0,  1, 10,128,198,128, 88,  0,  0,  0,  0,  4, 64, 32,  0,  0,  0,  0,  0,  0,  0, 16, 64, 53, 32,  0, 64, 10, 24,  0, 12,137, 37, 64,  0,128,  1,  0,  5, 68, 90, 40, 16,  4, 65, 32,160,  1,  1, 77, 16, 12,160,250, | ||||
| 128, 64,  0,  0,  2,  1, 32,  0,  0,  1,  0,  0,  2,  0,  0,  4, 16,  0, 64, 32,  0,  0,  0,  0,  0,  0,128,128,  0, 16,  0,  0,  0,  0,  4, 64, 32,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  4,130, 32,  0,  0, 32,  0,  0,  0,  0, 32, 32,  0,  2,  1, 32,  0,  0,  0, 64, 16, 32,208,255, | ||||
|   0,  0,  0, 16,  0,  0,  0,  0,  4,  0,  0, 16,  0,  2,  0,  1,  0,  0,  0,  0,  0,  0,  1,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64, 16,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,128,  0,  0,  8,  4,  0,  0,  8,  0,128,  0,  0,  0,130,  0,  0,  8, 88,253, | ||||
|   0,  1, 16,  0,  0,  0,  0,  0,  0,  9,  0,  0,  0,128,  0,  0,  0, 16,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  2,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0, 32,  1,  0,128,  0,  0,  0,  0,  0,  8,252, | ||||
|   2,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  1,  0,  0, 16,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  0,  0,  8,  0, 32,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0, 32,  0,128,112,250, | ||||
|  16,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0, 16,  0, 32,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,108,252, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  8,  0,  0,  0,  8,  0,128,  0,  0,  0,  6,  0,  0, 32,  0,  0,  0,  0,  0,  0, 64, 16,  0,  0,  0,  4,  0,136,249, | ||||
|   8,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  8,  2,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0, 16,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0, 16,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0, 64,  0,  0,  4,  0,  8,  0,  4,  0, 16,  0,  0,  0,  0,136,162,254, | ||||
|   0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 64, 32,  0,  0,128,  0,  0, 16,  0, 16,  0, 32,  0, 16, 64,  0,  0,  8,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  4,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,184,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  4,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,200,251, | ||||
|   0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0, 48, 32,  0, 64,  0,  0,  1,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0, 32,  0,  0, 64, 16,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0, 32,252, | ||||
|   0,  0,  0,128,  1,  0,128, 64,  0,  0,  0,  0,  0,  0, 64,  0,  0,128,  0,  0,  0,  0,  0, 16,  0,  0, 33,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  8,  0,  1, 64, 32,  0,  0,  0,  0,  0,  3, 72,  0,  0,  0,176,252, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  8,128,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0, 98,255, | ||||
|   0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  2,  0,  0,  0,  0,  0,  0,  0,112,254, | ||||
|  32,  0,  2,128,  0,208,  0,  0,  0, 67,  8,130,  0,128,  5,176,128,  0,  0,  8,  0, 73, 10, 98,  4,  1,144, 17, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,  0,  0, 16,  8,  2,  0, 67, 40,  4,129,  0,  0,  4,128,  0,  0, 64,  0,  0, 35,  8,  4, 13, 32,  0,  0, 17,176,250, | ||||
|   0,  0,  0,  0,  0,192,  0,  0,  0,  0,  0,  0,  0,  0, 64, 48, 16,  0,  0, 64,  0,  0,  0, 96, 32,  0,128,129,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0, 64, 32,  0,  8,  0,  0,  0,  0,  2,  0,  0,  0,  0,  1, 64, 12,  0,  0,  0,  0,248,255, | ||||
| 128,  1,  0,128,  1,192,  0,  0,192,  3,  1, 16,  0,224,  1, 13,  0,  6, 48,  0,  6,  0,  3, 25, 32,  3, 96,  0, 12, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0,  0,  0,  0,  0,192,  3, 58,  0,  4,  0,  0, 48,128,  5,244,  0,  0,192,  0, 34,  0, 12,  0,  0, 13,  0, 56,251, | ||||
| 128,133,  0,128,  0,192,  0,  0, 64,  8,  0,  1,  0, 32,  0,  4,  0,160, 16,  0,  2,  0, 19,104,  1, 33, 36,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,137,  4,  4,  0,  0,  2,  1, 64, 32, 72,  0, 32,  4,  0, 48,144,  4, 16, 20,  0, 64,  0,  0,128, 12,128,  5,  4,  0, 40,253, | ||||
|   0, 72,  0,  0,  6,  0,  8,  0,  0,  0,  0, 18,  0,  0,  0, 48,  0, 70,200, 24, 24,  1, 16, 96,  0, 32,  2, 80,  0, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,176, 16,  0,192, 72,128, 16,  0, 32,  0, 64,  0,  0,  0, 34, 70,193,  0,  1,  0, 32,  1,  2,128,  0,  8,177, 64, 16,252, | ||||
| 224,  0,  0,128,  7, 52, 32,  0,128,  3, 24,  0,  0,224,  1, 48,128,  7,224,  0, 28,196,  1,  1, 16,  7, 64,  0, 60,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 60,  0,  0,112,  0,  6,128,  3, 88,  0,  3,  4,  0, 12,128,  3, 48,  0,  0,192,  3, 24, 32,  3,226,  1, 60,  0, 64,249, | ||||
| 128, 65,  0,  0,  6,  0,  0,  0, 64,  0,  0, 32,  0,  0,  0,  0,  0,  0,192,  0, 24,  0,  1, 96,  0,  0,128, 65, 48, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 64,  0, 32,  0,  0,  0,  0,  0, 32,  4,192,  0,  0,  0,  3,  1,  0,  0,128,  1, 49,  0, 80,249, | ||||
| 128,  1,  0,128,  6,  0,  0,  0,  0,  3, 64,  2,  0,128,  1,  0,  0, 70,194,  0, 24,  0, 16, 97,  0, 65,129, 17, 48,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16, 53, 32,  0,  0, 72, 88, 96,  3, 72,  0, 32, 16,  0, 48,  1, 70,200,  8,  1,  0, 19,  0,129,  0,128,  9, 52,  0,  0,255, | ||||
|  32,  0,  0,130,  0, 16,  0, 74,  4, 67,  8,  0, 69,162,  4,128,  0,192,  0,  8,  0, 73,  3,  0,  4,  1, 16, 16,  0, 17,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0, 33, 16,  4,  0,  0, 80,  4,  2, 64,  0,  8,  0,129,  0,  0,  0,144,  0, 16,  0,  0,  0,  0, 40,  0,128, 16,  0,  0,  2, 84,253, | ||||
|   0,  0, 48, 16,  0,  0,  0, 16,  0,  0,  0,  0,  8,  0,  1,  1, 16,  0,  0, 64,  0,  0,  3,  0, 32,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0,  6,128,  0,  0,  0,128, 32,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  2,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 32,144,252, | ||||
| 128,  1, 61,144,  1, 48,  0,  8,192,  3, 24,  0,  4,128,  0, 44,128,  1, 48,  0,  6,  0,  0, 88, 32,  7, 98,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,228,  0, 60,  0,  0,240,  0,  0,  0,  0,  0,  0,  4,  4,  0, 60,136,  5,244,  0,  0,  0,  0,120,  0,  3,  0,  0, 12,  8, 32,249, | ||||
|   8,  4,180,128,  0, 16,  0,144, 96, 64,  8,  0, 72, 16,  1, 52,133, 22, 20,  0,  2,  0,  0, 40,  1, 33, 32,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 16,  6, 65,  0,144, 72, 24,  5,  0,  0,  0,128,  0,  0,  4,129,  4, 16, 36,  0,  0,  0, 72, 36,  1,  0,  0,  4,  2,219,248, | ||||
| 128,  1, 48, 32,198,192,  8,137,  4,  0, 96,  2, 36,128,  0, 40,  6, 16,192,  0, 88,  4, 19, 50,  0, 32,128,  5, 48, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 69,176, 32,  0,192, 34,128,  8,  8,100, 32, 64,  0,  0, 48,  0, 38,193,  0,  1,  0,  0, 96, 20, 76,  2,  0,  0,  1, 33,254, | ||||
|  96, 64, 56,128,  7,240,  0, 22,128,  3,112, 64, 11, 98,  1, 16,  0,  7,226, 32, 28,192,  3, 64,  0,  3,196, 65, 56,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,  0, 60,  0,  0,240,  0,  6,192,  0,120,  0,  3,  4,  0, 12,160,  3,240,  0,  0,  0,  0,120,  0, 14,  0,  0, 12, 32,140,248, | ||||
| 132, 65, 48,  0,  6,192,  0, 24, 72,  0, 96,  0, 12,132,  0, 36,  0,  6,194,  0, 24,  0,  3, 80,  0,  0,128,  1, 52,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,192,  0, 24,  8,  3,  1, 16,  0,  0,  0, 48,  0,  4,  0,  0,  0,  0,  0, 96, 64, 12,  0,  0,  0,  8,218,252, | ||||
| 128,  5,  0,136,  6,192,  0,144,  0,  3,104,  0, 72,  0,  1, 16,  0,  6,192,  0, 24,  0,147, 32,  0, 65,129,  1, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 41, 52, 32,  0,192,  8,153,  0, 19,  0,  0, 32, 16,  0, 52, 65,  6,212, 66,  0,  0,  0, 96,  4, 12,  0,  0,176,  0,104,250, | ||||
| 128,  1,  0,128,  0, 16,  0,  2,  0, 67,  8,  0,  1,160,  1, 32,  2,192,  0,  8, 26, 64,  0,  0,  4,  9, 16, 16, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  9,  4,  0,  0, 80, 36,  2,  0, 67, 40,129,133,  0,  0,  0, 16,  0, 16,  0,  0, 64,  0,  8,  4,140, 32,  0,  0, 17,104,249, | ||||
|   0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1, 48, 16,  0,  0, 64, 24,  0,  0,  0, 32,  0,  0,128,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,128,  0,  0,  0,  0, 64,  0,  8,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  4,128,  0,  0,152,255, | ||||
| 224,  1,  0,128,  1,192,128, 24,192,  3, 24,  0, 12,128,  1, 48,128,  7, 48,  0, 30,  0,  3, 88, 32,  3, 98,  0, 12, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0,  0,240,  0,  0,192,  3, 56,  0, 15,  0,  0, 60,  8,  0,240, 32,  0,192,  3, 34,  0,  3,104,  1, 13,  0, 96,253, | ||||
| 164, 69,  0,128,  0,  0,  2,128, 66, 32, 10,  0, 64,136,  1, 16,137,  6, 16,  0, 26,  0, 16, 44,  1, 33, 32,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  4, 64,  0,144, 72,  0, 64, 32, 76,  0,137,  4,  0,  4,  1,  0, 16,  4,  0, 64, 32,  0,  8, 65, 32,  1,  4,  0,178,248, | ||||
|  12,  0,  0,  0, 22,192, 66, 88,  8,  0, 96,  4, 76,  8,  8, 48,  0,  6,196,  8,  0,  4, 35, 48,  0, 32,128, 73,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 50,  0,  0,192,  0, 24,  8,  0, 32,  0, 76,  2,  0, 48, 65,  0,192, 68,  0,  0, 11,  1,  2,  0,128, 69, 48,  4,160,248, | ||||
| 192,  1,  1,128,  7, 52,  0, 30,128,  3,112, 32, 15, 96,  0, 17,  0,  7,224, 32,  6,192,  3, 66,  0,  3,196,  1, 60,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0, 98,  0, 60, 32,  0,240, 32, 30,128,  3, 88,  0, 15,  0,  0, 12,  0,  0,240,  0,  0,192,  3, 24, 32, 15,232,  0, 60,  0,112,251, | ||||
|   8,128,  0,  0,  6,192, 64,  0,  0,  0, 96,  0,  0,  0,  0, 32,  0,  6,192,  0,  0,  0,  0, 80,  0,  0,128,  1, 48, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,128,  0,  0,  0,192,  0,  0, 64,  0, 32,  0, 12,  4,  0, 48, 16,  0,  0,  0,  0,  0,  0,  0,  0, 12,  4,129, 48,  0,161,250, | ||||
|   0,  4,  0,128,  6,192,  4, 24,  9,  3,104,  0,140,  4,  0, 48,  0, 22,196,  0,  0,  0, 35, 33,  0, 65,129,  1, 48,  2,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,136,  8,180, 16,  0,192,130,  0, 69,  3, 72,  0, 12,  0,  0, 52,  2,  0,208, 66,  0,  0, 35,  4,129, 76,128,  9, 52,  0,136,253, | ||||
|  32,  0,  4,  1, 32,194,  0,  2, 96,  3,  8,  0, 13,128,  5,144,128, 32,194,  0, 24, 64,  0,  0,  4,140,  0, 48, 52,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  4,  0,  0, 16,  8, 24, 73, 32, 98, 68,  5,  0,  0,  0,144,  0, 16,  0,  2, 64, 32,  9,  0, 64, 36,  0,  0,  2, 88,249, | ||||
|   0,  0,  0, 16,  0,  0,128,  0,  0,  3,  0,  0,  0,  0, 64, 32, 16,  6,  0,128,  0, 16,  0,  1, 32,  0,  8,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  8,  0,  1,  0,  0,  0,128,  0,  0,  0,  0,  0,  8,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,128,  0, 32,208,251, | ||||
| 128,  1,  1,128,  1, 48, 64, 24,  8,  3, 24,  0, 12,224,  1, 60,  8,  2, 50, 64,  6,  8,  3, 57,  0, 15,228,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,  1, 60,  0,  0, 64, 64, 30,192,  0,120, 32, 15,  0,  0, 60,  8,  0,244, 32, 30, 16,  0, 88, 64,  3, 96,  1, 61,  8,232,252, | ||||
|   4,  4,128,160,  0, 16,  8,152,  0,  3,  8,  0, 32, 48,136,180,  0, 32, 16,  2,  2,  1, 19, 72,  0,129,160,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,  1,  4,  4,  0,  0,  4,  2, 69, 16,  9,  4,137,  4,  0,  4,  1, 22, 16,  4,  2,  1, 64, 72,  0,  1, 32,  1,  4,  0, 26,248, | ||||
| 140,137,  0,  4,  6,  0,  8, 64,  0,  8, 96,132, 64,  0,  0, 40,  2, 70,  4,  2,  0, 33,  8, 48, 33,  0,128,  1, 49,  1,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  3,  4,177, 16,  0,  0,  4,  0, 32,128,  0,  0, 44,  2,  0, 48,  6,192,192, 68, 24,  8,  0,100, 18, 76,144, 81,  0, 16,208,254, | ||||
|  96,  0, 12,  0,  7,241,128, 14,196,  0,121,  0,  3,228,  1, 16,144,  1,240, 64, 30,192,129, 64,  0, 14,192,  1, 60, 16,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0, 96,  0, 60,  0,  0, 48, 64,  4,192,  0,112,  0, 15,  0,  0, 12,128,  7,240,  0, 30,192,  0, 56,  0, 15,224,  0,  8,  0, 80,251, | ||||
| 136,  1,  1, 32,  6,192,128, 24,  4,  0, 96,  0, 12,  8,  0, 24,  0,  6,192,128, 24, 16,131, 64,  0,  0,160,129, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0, 24,  8,  2, 10,  0, 12,  4,  0, 48,  0,  6,  0,  0,  0,  0,  0, 64, 32, 12,  0,  1,  0,  0, 89,248, | ||||
| 128,  9, 32,  2,  6,192,  8, 24,  0,  0, 96,  0, 12,128,  1, 32,  0, 36,200,  8, 24,  1, 35, 32,  0, 12,128,  9,176, 64,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0, 34, 72,180, 16,  0,  0,  2, 89,  0,  8, 96,  0, 76,  0,  0, 52, 64,166,208,128, 24, 16, 18,106,  0, 12,128, 33,  0, 34,144,248, | ||||
|  32,  0,  0, 66, 32,  2,  0,  2, 64,  3,  8,  0, 13,129,  5, 32, 33,192,  0,  8,  0, 73, 32,  2,  4,140,  0, 16, 52,  1,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  8, 16,  4,128,  0, 16,  8,  2,  3, 67, 96, 68,129,  0,  0,  0,144,  0, 16,  0,  0,  0, 35,  8,  0,128, 48,  0,  4, 16, 28,252, | ||||
|   0,  0,  0,  0,  0,  0, 32,  0,  0,  3,  0,  0, 12,  0, 64, 48,  0,  0,  0, 64,  0,  0,  3,  0, 32,  0,  8,128, 16, 32,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,152,251, | ||||
| 128,  1, 12,128,  1, 48,  0, 24,  0,131, 24,  0,  0,224,  1, 32,160,  1, 48,  0,  6,  0,  1, 89, 32, 15, 96,  0, 48, 32,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,232,  1, 60,  0,  6, 66,  0,  8,192,  3,120,  0,  0,  0,  0, 60,  8,  0,244,  0,  0,192,  0,  0, 64,  3,  0,  0, 49,  0,240,255, | ||||
|   4, 16,  5,128,  0,208,130, 64,  8, 19,  8,  0,128, 34,  8,178,128,  0, 16,  0,  2,  0, 16, 40,  1, 65, 36,  0,176,  0,  3,  0,  0,  0,  0,  0,  0,128,  1,  0,  0,  0,  0,  0,  0,161,  1,  4, 65, 64,  0, 64,  0, 97, 64,  8, 66, 32, 16,  0,  4,  1, 22, 16, 36,  0, 64,136, 96,  1, 65,132,  5, 32, 66,  3,251, | ||||
| 140, 17, 50,  1, 22,  0,128, 88, 32,  3, 96,  2,  0, 16,  0, 48,  0, 70,194, 34, 24,  0, 35, 48,  0,  0,128,  9, 49,  8,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  4,132,176, 32,134,  0,  4,128,  0,  0,  0,  0, 12, 16,  0, 48,  1, 32,194,  0,  1,  0, 96,  0, 34, 32,  4,  0,162, 16,193,248, | ||||
| 224,  1, 60,  8,  7,225,  0, 30,192,  3,121, 32, 15,224,  1, 16,  0,  7,224,  0, 28,196,  0, 65,  0, 14,192,  1, 60,  0,  4,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0, 96,  0, 60,128,  1, 48, 64,  6,136,  3,112,  0,  7,  0,  0, 12,160,  7,240,  0,  0,192,  3,120,  0, 14,224,  1, 12,  0,204,255, | ||||
|   8,  0, 48,  0,  6,192,  0,  0,  0,  0, 98,  0,  4,  4,  0, 48,  0,  6,192,  0, 24,  0,  3, 80,  0,  0,128,  1, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  2,  0,  0,  0,  0,  8,  0,  0,  0,  0, 48, 32,  6,  4,  0,  0,  0,  3, 97,  0,  0,136,  1,  0,  0, 34,248, | ||||
| 128,145, 48,  0,  6,192, 66, 24,  9, 11,104,  0, 72,128,  1, 16,  0,  6,192,  0, 24,  0, 18, 33,  0, 12,128,  1, 48,  4,  4,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0, 32, 72,180, 16, 22,  0,  2, 65, 96,  3, 96,  0,128,  4,  0, 52,  2, 70,208,128,  0,  0, 19, 96, 33,  0,128,  1,  1, 65,160,249, | ||||
|  32,  0, 48,  0, 38, 18,  0, 26, 64, 11,  8,  0,  1,128, 17, 54,128,  0,  8,  8,  0,  9, 11,  0,  4,133,  0, 48,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,  0,  0, 16,  8, 24,  1,  0, 96, 68,129, 32,128,  0,144,  0, 16,  0,  2,  0, 35, 40,  1, 64, 36,  0,  4,  0,200,252, | ||||
|   0,  0,  0, 32,  0,  0,  0, 24, 16,  3,  2,  0,  0,  0,  0, 48,  0,  0,  0, 64,  0,  0,  0,  1, 32,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0, 16,  0,  0,  0,  0,  8,  0,  0,  0,  0,  2,  0,  0,  0,  0, 65, 16,  0,  0,  0,  0,  0, 56,255, | ||||
|  96,  0, 12,128,  7,193,128,  0,  0,  3, 24,  0,  0,100,  0,  0,  0,  6, 50,  0,  6,192,  3, 88, 32,  0,104,  0, 12,128,  1,  0,  0,  0,  0,  0,  0,200,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0,  0,  0,  0, 30,  8,  0,120, 32,  0,  0,  0, 60,136,  5,244, 64,  0,192,128,120,  0,  3,  0,  0,  1,  0,120,255, | ||||
|  36,  0,  4,132,  6,  0,  2,128,  8, 35,  9,  0, 64, 32, 32,  0,  0, 38, 16,  0,  2, 64,128, 40,  1,  0, 32,  0,132, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4, 64,  0,  0,  2, 67,  0,  0,  8,  1, 32, 16,132,  4,129,  4, 16,  2,  0, 64,  0, 72, 36,  1,128,  5,  0,  4,170,255, | ||||
| 140,145,128,  0,128,192,  0,  1, 32,  3, 96, 34, 64,  0,  8, 50,  2,  0,192, 32, 24,  5,136, 48,  0,128,132, 17,129,  0,  4,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,128, 48,  0,  0,192,132,  0,  0,  0,  0,  0, 12,  1,  4,176, 32,  6,194,  4,152,  0,  0,100, 16, 76,  8, 16,  2,  0,160,253, | ||||
| 224,  1, 60, 16,  1, 48,  0, 30,192,  2,122,  0,  3,228,  1, 60,136,  3,225,  0, 28,128,  3, 64,  0,  3,192,  1, 60, 16,  1,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,112,  0, 60, 32,  0,112,  0, 28,  0,  0,112,  0,  7, 96,  0, 13,128,  3,240,128, 30,208,  3,120,  0, 15,224,  1, 12, 32,176,249, | ||||
| 136,  1, 48, 16,  6,192,  0,  8,  8,  3, 97,  0,  0,128,129, 48,  0,  6,192,  0, 24,  0,  0, 81,  0,  0,160,  1,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,128,  1,  0,  0,  0,  0,  0,  2,  0,  0,  8,  0,  0,  0,  0, 48,  0,  4,  0,  0,  0, 16,  3, 97, 32, 12,128,129,  0, 32, 97,248, | ||||
| 160,  1, 48,  1, 32,193, 66,144,  0,  3,104,  0, 76,176,  9, 48, 66, 70,193,  0, 24,  0,  8, 32,  0,128,136,  1,  0, 18,  4,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,192, 17, 53, 32,  0,  0, 72, 24,  0,  0, 96,  0,128,  4, 17,182, 32, 22,216, 66,  0,  0, 19, 96,  4, 12,128,  1,176,  0,248,251, | ||||
|  32, 16,  5,129, 16,  0,  0,  2,  1, 67,  8,  0,  1,128, 17, 54,  0,192,  0,  8,  0, 73,  8,  2,  4, 12,  0, 16,  4,128,  0,  0,  0,  0,  0,  0,  0, 82,  0,  0,  0,  0,  0,  0,  0, 37,  0, 36, 34,  0, 16,  8,138, 68,  0, 96, 36,129,  0,  0,  0,144,  0, 16,  0,  0, 64,  0,  8,  4,  0, 32,  0,  4,  0,188,255, | ||||
| 128,  1,  0, 16,  0,  1, 32, 24,  8,  0, 64, 16,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  3,  0, 32,  0,  8,128,  0,128,  0,  0,  0,  0,  0,  0,  0, 68,  0,  0,  0,  0,  0,  0,  0,  6,  0, 16,  0,  0,  0,128, 16,  0,  3,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,192,248, | ||||
| 128,  0, 12,  0,  0, 48,  0,  8,200,  3,  1,  0, 12,104,  0, 61,136,  1, 48,  0,  6,  0,  3, 89, 32,  3,104,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0, 16,  1,  0,  0,  0,  0,  0,  0,  0,128, 44,  0,  0,  0,  0, 30,  0,  3,122, 16,  4,  8,  0, 60,  8,  0,244, 64,  0,192,  3,  0,  0,  0,  0,  0, 49,  0,208,254, | ||||
|   4,132,132, 32,  0,209,130,128, 64, 32,  0, 64, 32, 32, 16,  4,129, 22, 20,  0,  2,  0, 18, 40,  1, 33, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0, 10,  4, 20,  0,  0,  0,  2, 19,  9,  3,  8,  0,128,  0,  0,  4,  1, 22, 16,  2,  0, 64,  8,  2,129,  0,128,  5,  0, 66, 43,251, | ||||
| 140,  9,  2,  4, 64,  4,  4,152, 16,  0,  0,  1, 44,  0,  4,  2,  0, 64,192, 36, 24,  1, 19, 48,  0, 32,128, 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  4, 33,  0,  0,192,136, 24,  4,  3,  2,128, 64,  0,  0,176, 16,  0,200,  4,  0,  0, 19, 96, 64,  0,  0,  4,  0, 64,165,252, | ||||
|  96,  0, 12,128,  1,224, 64,  6,128,  3, 24, 64,  3,232,  1, 12, 16,  7,228,  0, 28,200,  0, 65,  0, 15,200, 65, 12, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 24,  0,  0,112,  0, 30,192,  3, 16,  0,  3,  4,  0, 12,128,  7,240,128,  0,192,  3, 58,  0,  0,224,129, 12,  0,128,249, | ||||
| 136,  1,  0, 32,  0,192, 64, 24, 64,  0,  0,  0, 12,136,129, 48,  0,  6,192,  0, 24,  0,  3, 80,  0, 12,136,  1, 48,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0, 24,  0,  3, 96,  0,  0,  0,  0, 48,  0,  6,  2,  0,  0,  0,  0,  0,  0,  0,128,  1,  0,  0,  2,253, | ||||
|   0,  9, 34,  2, 36,193,  4,144, 32,  3, 16,130, 76,160,  9,180, 16, 38,194,  0, 24,  0, 19, 33,  0,141,128,  1,176,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 33, 16,  0,  0,  0, 72, 26, 32, 35, 97,  8, 32, 16,  0,180, 16,  6,208,128,  0,  0, 35,  4, 36,  0,128,145,  8,  4, 96,251, | ||||
|  32, 16,  4,  0, 32,  2,  0,  2, 64,  3,  9,  1,  1,128,  5, 52,  0,192,  0,  8, 64, 64,  9,  2,  4, 12,  0, 48, 48, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 48,  2,  0, 16,  0,  2, 67, 16,100, 36,133,  2,  0, 20,160,  0,  0, 64,  0, 64,  0,  8,  4, 64, 36,  0,  4,  0, 16,254, | ||||
|   0,128,  0,  0,  0,  0, 32,  0,  0,  2,  0, 16,  0,  0, 64,  0,  0,  0,  0, 64,  0,  8,  0, 32, 32,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0, 16,  0,  0,  0,  0,  0,  1,  0,  0,  8,  0,  0, 32,  0,  0,  2,  0,  0,  0,  0,  0, 64,  0,  0,128,  0,  0,240,253, | ||||
|   0,  0, 13,128,  1, 48,  0, 24, 16,  3,  2, 64, 12,232,  1, 12,136,  1, 48,  0, 30,  0,  3, 25,  0,  3,228,  1, 12,  8,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  1,  0, 12,  0,  0,  0,  0,  0,  0,  2,122, 16, 15,  0,  0, 28,128,  5,244,  0,  0,192,  3,  0,  0,  3, 96,  1,  1,  0,160,249, | ||||
|   4,  4,  4,146,  0, 16,  0, 64,  0,  3,  0,  2, 32, 32,  8, 53,129,  0, 16,  0, 26,  0, 18, 40, 10, 65,160,  1,  4,  2,  4,  0,  0,  0,  0,  0,  0, 16,  2,  0,  0,  0,  0,  0,  0,  8,  8,  6, 17,  0,  0,  0, 64, 32, 32,  8,  2,137,  4,  0, 36,128,  4, 16, 20,  0, 64,  8,  2,129,  1, 32,  1,  0,  8, 66,250, | ||||
|  12,129,  0,  4, 70,192,  2, 24,  1, 19, 36,  4,140,  0,  0,  0,  1,  6,192,  2, 88, 16, 16, 48,  0,128,129, 17,  1,  1,  2,  0,  0,  0,  0,  0,  0, 24,  1,  0,  0,  0,  0,  0,  0, 12,136,128,  0,  0,  0,  0, 88,  0, 17,  1,128, 44,  0,  0, 16,  0, 38,192, 68,  0,  0, 19, 96,  1, 44,128,  1,  0,  0,192,248, | ||||
|  96,  0, 12,  0,  7,225, 64,  6,196,  3, 24, 16,  3,226,  1, 60, 32,  7,226, 32, 28,192,  2, 65,  0, 15,192,  1, 56, 32,  4,  0,  0,  0,  0,  0,  0, 16,  2,  0,  0,  0,  0,  0,  0,104,  0, 60, 32,  0, 48, 64, 14,208,  0, 16,  0, 15,  8,  0, 44,128,  3, 49,  0,  0,192,  3, 58, 32, 15,226, 64, 12, 32, 56,248, | ||||
| 136, 65,  0,  0,  6,192,  0, 24, 16,131,  0,  0, 12,  0,  0,  0, 32,  6,192,  0, 24,  0,  1, 32,  0, 12,168,129,  0,128,  6,  0,  0,  0,  0,  0,  0, 88,  3,  0,  0,  0,  0,  0,  0, 12,  0, 48, 32,  0,192,  0,  0,  0,  0, 96,  0, 12,  0,  0, 16,  0,  4,192,  0,  0,  0,  0,  0,  0, 12,  0,  1, 48, 16, 73,252, | ||||
| 128,  9,176, 32,  6,192,  0, 24,  0, 11,  0, 33, 44,132,  1, 48,  1,  6,192,  0, 26,  9, 16, 65,  0,141,128,  9,176, 32,  4,  0,  0,  0,  0,  0,  0,  8,  2,  0,  0,  0,  0,  0,  0,132,  9, 53,  2,  0,192,128,  0,  9, 18, 98, 68, 12,  1,  0, 32,  0, 22,194, 16,  0,  0,  3,  2, 36, 12,128,  5,129,  0,200,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  1, 32,  2,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  4,  2, 10,  4,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  1, 32, 64,  4,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0, 64,  0,  0,  0,  0, 32,  0, 84,251, | ||||
|   0,  0,  4,  0,  0, 16,  0,  2, 64,  0,  2,  0,  1,  0,  0,  4,160,  0, 16,  0,  0, 64,  0,  8,  0,  0, 32,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0, 65,  0,  0,128,  0, 16,  0,  2,  4,  0, 10, 16,  1, 32,  0,  0,128,  0,  0,  0,  2, 64,  0,  8,  0,  1, 32,  0,  0,  0,176,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,254, | ||||
|  36,  0,  5,128,  0, 20,  0,  2,  0,  0,  8, 20,  1, 32,  0,  4,128,  0, 16,  0, 66, 64,  0,  8,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,128,  0, 16,  0,  0,  0,  0,  0,  0,  1, 32,  0,  4,137,  0, 16,  0,  2, 64,  0,  8,  0,  1, 32,  0,  4,  0,251,248, | ||||
|  12,128,  0, 65, 16,  8,  2,  1,  0, 32,  4, 20,  0,  0,  0,  0, 66, 16,  8, 64,  0,  8, 32,  4,  0, 64,  0,136,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  8, 32,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 16,  0,  0,  0, 53,252, | ||||
|   0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  8,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  4,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0, 16,  0,  0,  0,128,  0,  0,  1, 32,  0,  4,128,  0,  0,  0,  0,  0,  0,  8,  0,  0, 32,  0,  8,  0, 82,251, | ||||
|   8,  0, 33,  0,  4,128,  0,  0,  0,  0, 66,  0,  0,  0,  0, 32,  0,  4,128,  0, 16,  0,  2, 64,  0,  0,  0,  1, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0, 64,  0, 16,  0,  1, 64,  0,  8,  0,  0, 16,  4,  0, 64, 16,  0,  2,  0, 32,  8,  0,  1,  0,  0,218,251, | ||||
|   0, 16,  4,  0,  0,  0,  0,  2,  0, 16,  8,  0,  1, 32, 64,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,128,192,  0, 16,  2,128,  0,  8,  0,  2,  1, 32,  0,  4,128,  0, 16,  0,  2, 64,  0,  8,  1,  0, 32,  0, 16,  0,  0,252, | ||||
| 128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0, 32,  0,  0,  0, 16,  0,  0,  0, 16,  0, 32,  0,  4,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  4, 56,254, | ||||
|   0,  0,  1,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0, 65, 32,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,104,252, | ||||
|   0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,144,  0,  0,  0, 16,  0,  0,  0,  0,  0, 34,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  1, 32,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0, 48,249, | ||||
|   0,  0,  0, 64, 18,  0,  0, 64,128,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  8, 32,  0,  0,  4, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,116,254, | ||||
|   0,  0,  4,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  8,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0, 88,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 40,252, | ||||
| 128,  0,  0,  0,  0, 65, 32,  8, 16,  0,  0,  0,  0, 33,  0,  0,  8,  0,132,  0,  8,  0,  0,  0,  0,  4,  2, 64,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  1,  0,  0,  0,132,  0,  0,  0,  0,  0,  0, 16,  8,  0,  1, 32,  0,  0,  0,  0,  0,  0,  0,  0,  1,  8,192,250, | ||||
|   0,  0,  0,  0,  0,128,  0,  4,  8,128,  0, 64,  0,  8,  0,  0,  0,  1,  0,  0,  0,  0,  0, 32, 16,  8,  0,  0, 32,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 16,  8,  2,  0,  0,  0, 64,  0, 32,  0,  0,  0,  1,  0,  0,  0, 64,  0,  0,  0,  1,  0,  0,  0,130, 64,  0,  0, 40,251, | ||||
|  64,  0,  0, 14,180,178, 66, 86, 24, 80,194, 64,  0, 76, 40, 96,150, 20, 34,  0,  4, 32,  0,  8, 64,107,  5,133,172, 37,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 51,  5,160, 13,  0,  0, 80,203, 80,200, 10, 40, 32,  0,  8, 16,  0, 18, 64,128, 66,224, 64,  1,  0, 40,128,161, 16, 72,249, | ||||
|  32,  1, 32, 41,148, 17, 42, 88,  5,  3, 34, 16,128, 35, 65, 16, 36,  0, 91,  0, 18,  8, 33,138, 79,249, 54, 52, 16,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0, 17,  4, 16,128, 16, 98,  3, 96,  0,  1,168, 20,  0, 16,  8,  4,129, 16,168,  0,  8, 64, 65,  4,  8,  1, 32,  8, 32,252, | ||||
|   6,  0,  0,  8,  0,  1, 32,  8,  4,  1, 32, 16,  0,  2, 64, 16,  0,  0,132,  0,  0,  0,  1,  0,  0,  0,  2,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  8,  0,  1,  0,  8,  0,  0,  0,  0,  4,  0,  0,  0,136, 88,253, | ||||
|   0,  1, 32,  0,  4,  4,  0, 16,  0,  2,  0,  0,  0, 65,  0,  0,  8,  0,  0,  0,  8,  0,  0,  0, 16,  4,  0, 64,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 16, 32,  0,  4,128,  0,  0,  4,  0,  0,  0,  0,  2, 64, 32,  0,  0,  0, 32,  0,  0,128,  0, 16,  0,196,248, | ||||
|   0,  0,  0,  0,  0,  0,  0, 36, 64,  1,  0,  0,  2,  0,  0,  0,  0,  1,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0, 16,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,136,249, | ||||
|   0,129,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  2,  0,  0,  0,  1,  0,  0,  0,  1,  0,128,  0, 16,  0,  0,  0,  0,  0,  0,  1, 32,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0, 16, 24,250, | ||||
|   0,  0, 32,  0,  0,  0,  0,  0,128,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0, 32,  0, 64,  2,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  4,  0,  8, 16,  0, 32,  0,  0,160,254, | ||||
|   0,  0,  0, 16,  0,  0, 64,  0,  0,  8, 64, 16,  0,  0,  0, 65,  0,  0,  0, 64,  0,  8,  0,  0,  0,  0,  4,  0,  0, 16,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80,254, | ||||
|   2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  8,  0,  0, 64,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  4,  0,  1,  0,  0,  0,  0,  0,  8,128,120,249, | ||||
|   8,  4,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0, 64,  0, 16,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,186,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  8,  0,  0, 16,  0,  0,  0,  0,  8,  0,  0, 32,  0,  0,  0,  2,  0,  0, 80,  0,  0,  8, 88,255, | ||||
|  94,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0, 32,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0, 16,  0,  0,  0, 32,  0,  0,  0,  8,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  2,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,138,253, | ||||
|   0,128,  0,  0,  0,130,128,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0, 16,  0,  1,  0,  2,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  8,  0,  0, 32,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,255, | ||||
|   0,  0,  2,128,  0,  0,  0,  0,  0,  0,  0,  0,  8,  4,  2,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0, 24,255, | ||||
|   0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,112,255, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,128,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0, 16,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0, 64,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0, 88,253, | ||||
|   0, 34,  0,  0,  0,  0, 16,  0,  2,  0,  0, 32,  0,  1,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,  0, 16,  0,  0,  0,  0,  0, 64, 10, 40,  0,  0, 64,  0,196,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  0,  0,  4,  0,232,253, | ||||
|   0,  2,  0,  0,  0,129,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0, 20,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 80,252, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0, 56,253, | ||||
|   0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  8,  0,  0,  0,  4, 16,  0,  0,  0,  0,128,  0,  9,  0,  0, 36,  0,  0, 64,253, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,136,250, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  2,  8,  0,  0,128,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,128,  0, 64,160,249, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,128,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,128,152,254, | ||||
|   0, 64,  0,  0,  0,  0,  0,  8,  0,  2, 16,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 64, 64,  0,  8,  0,  1,  0,  0,  0,  0,  1,  0,106,249, | ||||
| 128,  0,  4,  4,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  4,  8,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0, 32,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,232,253, | ||||
|   0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  8,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  4,  0,  0,128,  0,  0,  0,  2,  0,  0,  0,  0, 80,252, | ||||
|   0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0, 16,  0,  2,  0,  0,  0,  0,  1,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0, 32,  1,  0,  0,  0,  0,  0,  0,  0, 32,  8,  2,  0,  0, 65,  0,  0,  0,  0, 32,  0,  1,  0,  0, 96,250, | ||||
|  40, 32,  0,  8,  2,  1,  0,  0,  0,129, 16, 16,  0,  0,129,  0,  0,  0, 64,  0,  0,  0, 65,  0, 16,  0,  0,  0, 16,  8,  0,  0,  0,  4,  0, 64,  0,  0,  0,  0,  0,  0,  2, 32, 16,128, 64,  8,  0,  2,  0, 64,  0,  4,  2,  0,  0,  4,  8,  0, 16,  8,  0,  0,  0,  0,130,  0,  0,  0,  0, 34,  0,  0,  0,164,255, | ||||
|   0,  0, 16,  0,  1, 32,  0,  0,  8,  0,  2,  0,  0,128,  0,  1, 32,  0,  0,  0,  0,  4,  0,  0,  0,  2, 64,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 64,  0,  0,  8,  0,  1, 16,  8,  0,  1,  0, 16,  0,  0,  0,  0,  0,  2, 65, 32,  0,  0,130,  0, 16,  0,  1, 64,  0, 32,  2,253, | ||||
|  64,168,  4,144,161,146, 22, 48,179, 10, 19, 32,  4,224,128,161, 32, 20, 41,  0,  0,144,  0, 65, 43,169, 35,  0, 12, 24,  0,  0,  0, 16,  0,128,  0,  0,  0,  0,  0,  0,  5, 64, 24, 96,128,168, 96,  1,  4,192,  2,200, 80,  0, 76,  2,  4,  3,  8,144, 12, 20,128,128,202,  0,  2, 64,128, 77,  0,  1, 32,240,254, | ||||
| 160, 57, 33,137,  2,149,144, 20,  8,  1,144,  8,  0, 33,  5,113,166,  4,211,  1, 16,  0,193,104, 81,137, 42, 64, 16, 91,  0,  0,  0,  0,  2,  0, 48,  0,  0,  0,  0,  8,  0, 32,  0, 64,  6,  4, 48,148, 64,  0,192,  0,114,192, 80, 50,  0, 32, 16,  8,130, 64, 48,136, 17, 18, 34,  8,  4,131, 33,  0,  6,232,254, | ||||
| 128,  0,  0, 16,130,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0, 16,  0,  0, 65,  0,  0,  0,129, 32, 16,  0,  2,  0, 17, 32,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0, 16,  0,  0,  0, 16,  8,  2, 64, 32,  4,  0,  0, 16,  0,  4,130,  0,  0,  0,104,250, | ||||
|  64,128, 16,  0,  0, 64, 16,  2,  0,  0,  0, 16,  0, 66,  0,  8,  8,  2, 32,  0,  4,  0,  0, 18,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0, 32,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  1,  4,  0,  0,128,128, 32,  0,  0,  0, 64,  0,  0,  0,  1, 16,  0,  0,  1,  0, 16,  0, 65, 64,  0,  8,168,252, | ||||
|  64,  0, 64,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 12,  0,  0,128,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  8, 64,  0,  0,  0, 68,128,  1, 16,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0, 32,  0,  0,  0,160,252, | ||||
|   2, 32,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4, 32,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,128,  0,  0, 32,  1, 16,  0,  4,  0, 16,  0,128,  0,  8,  0,  0,  0,  8,  0,  0,  0, 64,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0, 12, 64,  0,128,136,254, | ||||
|   4,  0,144,  0,  0,  8,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 10,  0,  0,  0,  0, 32,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 64, 65,  2,  0,  0,  4,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 33,  0,  0,  4,  0,  0,233,250, | ||||
|   0,  0,  0,  0,  0,  0,  0, 34,  0,  0,  1,  0,  0,  1,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,128,  2,  0,  0, 72,  4,  0,  0,  0, 32,  0,  0,128,  0,  8,128,  0,  0,  0,  0,132,  0,  0, 64,  2,  0,  0, 56,249, | ||||
|   0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0, 16,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80,253, | ||||
|   0,  0,  0,  0,  0,  2,128, 16,  0,  0,  0, 64,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  4,  0,120,250, | ||||
|   0,  1,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  8,  0,  0,  0,  0,  4, 16,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  2,  0,  0,  0,  1,  2,  0,  0,  1,  0,  0,  0,  0,  0,128,  0, 16,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  4,  0,  0,  0,  0,112,255, | ||||
|   0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0, 32,250, | ||||
|   0,  4,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0, 16, 64,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16, 68,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0, 16,144,248, | ||||
|   0,  0,  0,  0,  0,  0, 32,  0,  2,  4,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0, 36,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  3,  0,  0,  0,  0, 16,  0,  0,  2, 64, 64,  0,  4,  0,  0, 16,  0,184,250, | ||||
|   0,  0,  1,128,  0,  0,  2,  0, 16,  0,192,  0,  0,  8,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,184,248, | ||||
|   0,  0, 32,  0,  0,  0,  0,  0,  8,  0, 32,  0,  0,  0,  0,  0,  0,  0,128,  0,  0, 16,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  1,  0,  0,  4,  0,  0,  0,128,  0, 16,  0,  0,  0,  0,  0,  0,232,251, | ||||
|   0,  0,  4,128,  0,  0,  0,  2, 64,160,  8,  4,  1, 32,  0, 52,  0, 38,192, 16,128, 64,  0,  0,  2, 76,160,  8, 16,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  1,  1, 10, 32,  4,  0,  0, 64,  0, 41, 18,129, 36,  0,180,128, 32, 16,  0,  0,  0,  0,  0,  0, 13,160,144,  0, 34, 40,255, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  2,  0, 24, 16,  0,  0, 64, 12,  4,  0, 33,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,128, 48, 32,  0,  4,  0,  0,  0,  0,  0,  0,  8,  4,  0,  0,  0, 80,250, | ||||
|   0,  0, 48,  0,  0,  0,  0,  6,  0,  0, 26, 64,  0,228,  1,  0,128,  7,240,  0,  6,192,  3, 88,  0,  3, 96,  0, 44,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,129, 60,128,  7,  0,  0,  0,  0,  0, 32, 32,  8,  4,  0, 49,  0,  0,192,  0,  0,  0,  0,  0,  0, 12,224,  1, 13,  0,224,252, | ||||
|   0,  0,  0, 17,  0,  2,  0,  2,  0, 17, 40,  0, 76,160,  1,  0,133, 32, 20, 68,130, 66, 32, 44,  0,  1, 32,  0, 22,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  9,  4,132,128,  0,  0,  0,  0, 32, 65,  1, 36,  0,  0, 48, 18,160,  0,128,  0,  0,  0,  0,  0, 72, 48,  1,  4,  0,232,251, | ||||
|   0,  0, 48,  2, 32,  0,  0, 24,  0,  0, 64, 36, 12,136, 17,  0, 16,  0,  0,  0,152,  0, 16, 48,  1,128, 16, 48,152,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 73,176,  0, 22,  2,  0,  0,  0, 32, 34, 34, 36,  2,  0, 49, 32, 64,192, 16,  0,  0,  0,  0,  0, 68,  0,  1,176,  0, 96,252, | ||||
|   0,  0, 60,144,  1,  4,  0, 30,200,  0, 26,  0, 15,192, 65, 60,  0,  7,224,  0, 26,136,  0, 73, 64,  2, 96,  1, 32, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,  1, 12,144,  1,  0,  0,  0,192,  0, 88,  0,  3, 96,  0, 60,128,  5,242,  0,  0,  0,  0,  0,  0, 15, 34,  1, 60, 16,192,254, | ||||
|   0,  0,  0, 32,  6,  0,  0,  0,  0,  2,  1, 64, 12,128,  1, 48, 32,  0,  0,  0,  0,  0,  0, 65, 32,  0,128, 65, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1, 48, 16,  6,  2,  0,  0,  0,  0, 97, 32, 12,  0,  0, 49,  8,  0,  2,128,  0,  0,  0,  0,  0, 12,128,  0, 48,  0, 56,254, | ||||
|   0,  0, 48,  2,128,  0,  0,  0, 32, 17,  0,  1,140,130, 73, 48,  1,  6,192,  0, 24, 64, 32, 32,  4, 33,132, 17, 16, 34,  0,  0,  0,  0,  0, 82, 67,  1,  0,  0,  0, 32, 32, 18, 18,128, 69, 48,  0, 38,  0,  0,  0,  0, 10, 64,  0, 68, 16,  5, 16,  0, 32,192,  8,  0,  0,  0,  0,  0, 76,161,  0, 48,  0,168,251, | ||||
|  32,  0,  0,128,  0, 16,  0,  2, 64, 32,  0,  0,129,164,  1,  4,  0, 38,208,  0, 10, 64,  0,  0,  2,129, 36,  0,  0,  4,  0,  0,  0,  0,  0, 82, 67,  3,  0,  0,  0, 32, 32, 16, 16,161,  4,  0, 10, 32,  4,  0,  2, 64, 32,  1,  0,128, 32,  0,176,192,  0,  0,  0,  0,  0,  0,  8,  0,  0,160,  0, 52,  0, 20,250, | ||||
|   0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  2,  0,  0,128,  1,  0,  0,  0,194,  0, 16,  4,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82, 66, 12,  0,  0,  0, 32, 32, 18, 18,  6,  0,  1,  0,  0,  0,  0, 24,  0,  0,  0,  0,  0,  8, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 48,  0,120,249, | ||||
| 128,  1,  0,128,  1,244,  0,  6,  0,  0,  0,  0,  0,224,  1,  0,160,  7,242,  0, 16,  0,  0, 88,  0,  7,226,  1, 45,  0,  0,  0,  0,  0,  0, 82, 66,  8,  0,  0,  0, 32, 32, 16, 16,  4,  0, 13,128,  7,  0,  0,  0,  4,  2,  1,  0,  3,  0,  0, 60,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,  1,  1,  0,104,255, | ||||
| 136,  1,  0,128, 32,208,  0,  2,  0, 16,  1,  0,  0,161,  1, 48,129, 16,208,  0, 72,  4,  0, 40,  0,137, 32,  4, 20,  0,  0,  0,  0,  0,  0, 82, 67,  1,  0,  0,  0, 32, 32,  2,  2,  0,  4, 52,132,128,  0,  0,128,  0,  8,  0,  0, 45,  2, 16,  6, 34,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  9,  0,  0,163,253, | ||||
| 128, 69,  0,  0, 32,  8, 16, 24,  0,  2,  0,  0,  0,  0, 16,  0, 65,  0,  0,  8,  0,  0, 16, 48,  1,  0,136, 73,152,  0,  0,  0,  0,  0,  0, 82, 67,  1,  0,  0,  0, 32, 32,  0,  0,  0, 16,  1,  0, 70,  0,  0,  0,  9, 98,  0,  0, 64, 16, 32,  0,  0, 16,  4,  0,  0,  0,  0, 96,  2,  0,  0,  1,  0,  0,137,254, | ||||
| 224,  1,  0,128,  1, 32,  0, 30,196,128,  0,  0, 11, 72, 64, 60,  0,  7, 32,128, 18,192,  0, 74, 64, 15,224,  1, 32, 32,  0,  0,  0,  0,  0, 82, 66,  0,  0,  0,  0, 32, 32,  2,  2, 96,  0, 60,160,  1,  2,  0,  6,192,  0,  0,  0, 15, 96,  0, 60,128,  1,  0,  0,  0,  0,  0,120, 32,  0, 32,  1, 12, 16, 66,253, | ||||
|   4,128,  0,  0,  2,  2,  0, 24,  0,  3,  0,  0,  0,128,  1, 48,  0,  0, 16,  0,  0,  0,  3, 64, 32,  0,128,  1, 32,  0,  0,  0,  0,  0,  0, 82, 66,  0,  0,  0,  0, 32, 32,  0,  0,  0,  0, 48, 16,  6,  0,  0,  0,  0,  2,  0,  0, 12,132,128,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0, 32,170,253, | ||||
|   0, 16,  0,128, 32,  0, 16, 24,  0,  8,  2,  0,  0,132, 73, 48, 16,  6, 16,  0, 16,  0,  3, 33,  2, 12,144,  1,146, 64,  0,  0,  0,  0,  0, 18,  3,  1,  0,  0,  0, 32, 32, 18, 18,  0,132, 48,  0, 70,  4,  0,128, 16, 17,  4,  0, 76,  0, 16, 48,  0,  6,  4,  0,  0,  0,  0,  0, 17,  0,160,  0,  0,  1,156,251, | ||||
|  32,  0,  4,144, 66, 82,  2, 26, 64,  0,  8,  0,  1, 32,  0,177, 32,128, 16,  0,128,  0,  3,  0,  2,129, 32,128,  0,  4,  0,  0,  0,  0,  0, 18,  3,  1,  0,  0,  0, 32, 32, 16, 16,160,  1, 52, 32, 32,  4,  0,  2, 81,  0,  8, 17,  5,  8,  8,177,192,  6,  0,  0,  0,  0, 32,106,  0, 13,160,  4, 53,  0, 88,253, | ||||
|   0,  0,  0,  0,  4,192, 64, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,192,  0,  0, 16,  3,  2, 64,  8,  8,  0,  0,  0,  0,  0,  0,  0,  0, 18,  2,  0,  0,  0,  0, 32, 32, 18, 18,128,  1, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0, 96,  0,  0,  0,  0, 48,  0,216,249, | ||||
| 128,  1, 32,128,  3,192, 64, 24,  4,128,  0,  0,  0,  0,128, 60,128,  1,  0,  0, 22,192,  0, 88,  0,  0,224,128, 44,  0,  0,  0,  0,  0,  0, 18,  2,  0,  0,  0,  0, 32, 32, 16, 16,128,  1, 33,128,  1,  0,  0,  8,192,  0,  0,  0,  4, 96,  0, 60,  0,  6,  0,  0,  0,192,  0,120,  0, 12,226,129, 48, 32,184,254, | ||||
| 132,  1,  0,161,  4,192,  2,  0,  1,  3,  0,  0,128,  8,  9,132,136, 38,  2,128, 10, 64,  0, 40,  0, 76, 36, 17, 20,  0,  0,  0,  0,  2,  1, 18,  3,  1,  0,  0,  0, 38, 32,  2,  2,128, 17, 48,133,134,  0,  0,128, 96,  0,  0, 36,  8,160, 33,  4,  4,  6,  0,  0,  0, 64,  0,104,  0, 64, 32,  5,176,  0,130,250, | ||||
| 140, 81,160, 64,  2,192,  0,  0,  0, 16,  1, 64, 64,130, 17,  2, 64,  6,  0, 24, 76,  0,  8, 48,  1,  4,  4, 72,152,  0,  0,  0,  0,  2,  1, 18,  3,  1,  0,  0,  0, 36, 32,  0,  0,128,  5, 50,  2, 16,  8,  0,128,  8,139,  0,  1,  4,  0,  4,  0,  0, 32,  8,  0,  0,  0, 99, 96,  0,  0,  1,  1, 48, 16,104,251, | ||||
| 224,  1, 12,  0,  5,240,128,  6,208,  3, 24,  0,  3, 96,  0,  8,  0,  1, 48,  0, 18,208,128, 72, 64,  3,224,  1, 32, 32,  0,  0,  0,  2,  0, 18,  2, 12,  0,  0,  0, 38, 32,  2,  2,234,  1, 28,160,  7,  0,  0,  6,128,  3, 24, 64, 11,224,129, 60,128,  1,  0,  0,  0,192,  3,112,  0, 15, 32,  1, 12,  0, 80,252, | ||||
|   8,  0, 32, 16,  2,192, 32,  0,  0,  3, 98, 16, 12,132,  0, 48, 32,  6,  0,  0, 16,  8,  0, 64,  0, 12,  0,  0, 32, 16,  0,  0,  0,  2,  0, 18,  2,  0,  0,  0,  0, 36, 32,  0,  0,128,  1, 48,  0,  6,  0,  0,  0,  0,  3,  0, 32,  4,128,  1,  0,  0,  6,  0,  0,  0,  0,  3, 96,  0,  0,128,  0, 48,  0,137,248, | ||||
|   0,132,144,  0,  4,192,  2, 24,  9, 35, 96,  1,  0,  0,128, 48,  2,  0,  0, 66,  8,  0,160, 32, 34, 76,144,  1, 18,  1,  0,  0,  0, 18,  0,  8,  2,  0,  0,  0,  0,181, 32,  4,  3,  0,  0, 17,  4, 70,  2,  0, 64, 72,  3, 64,  1,  8,160,  1, 49,  0, 70,  1,  0,  0,  0,  3, 96,  0,128,162,  0, 48, 65,240,248, | ||||
| 160, 49, 52,128,  6, 16,  0,  2, 64,139,  8,  4, 33, 36,  0,  4,  0, 38, 16,  8,128, 64,  0,  0,  2, 45,160,144,  0,  4,  0,  0,  0, 18,  0,  8,  2, 34,  0,  0,  0,165, 32,  4,  0, 48,  0,  0, 10,  0,  0,  0,  2, 64, 33,  8,  0,128, 32,  4, 52,128,  6, 16, 72, 26,  0, 32,106,  0, 44,168,  0,  2, 65, 20,248, | ||||
|   0,  0, 48,  0,  6,  0,  0,  0,  0,  3,  0, 32,  0,  0,  0,  0,  0,  0, 66, 64,  0, 16,  0,  0, 64,  8,  8,  0,  0,  0,  0,  0,  0, 18,  0,  8,  2,  0,  0,  0,  0,180, 32,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,130,  0,  0,  0,  8,  0, 49,  0,  6,  0,  0, 24,  0,  0, 96,  0, 12,  0,  0,  0,  0,200,250, | ||||
| 128,  1, 49,  0,  6,240,  0,  0,  0,  3, 26, 64,  3,132,  1, 12,128,  7,  0,128, 22,  0,  0, 88,  0,  0,224,  0, 44,  0,  0,  0,  0, 18,  0,  8, 86,  9,  0,  0,  0,164, 32,  4, 83,100,  0, 12,  0,  0,  0,  0,  6,  4,  1,  1,  0,  3, 96,128, 60,128,  7,128,128, 30,192,  0, 24,  0, 15,224,  1, 12, 16,240,255, | ||||
| 136,  5, 48,  0,  6,208,  0,  0,  0,  3, 40,  0,129,  0, 40,  4,132,128,  0,  0, 10,  0,  0, 40,  0, 76, 36,  0, 22,  0,  0,  0,  0, 18,  0,  8,  2,  2,  0,  0,  0, 53, 32,  4,  3, 32,  0, 52,  4,  0,  0,  0,  2,  0, 10, 96, 32, 45,162,  8, 52,128,  6,  0,  0, 26, 64,  0,  8,  0, 13, 32,145, 52,  0,115,251, | ||||
|   0,128, 48,  0, 22,  0,  2,  1, 17, 32,  0, 36, 32,128, 17,  0,  1,  0,  0,  0, 77,  0, 19, 48,  1, 68, 16, 72,152,  0,  0,  0,  0, 18,  0,  8,  2, 33,  0,  0,  0, 37, 32,  4,  0,  9,  0,  1, 34,  0,  0,  0, 64,  4, 33,  2,130, 64,  0,  9,  0, 66, 16,128, 66,  0, 16, 19, 98,  0,  0,  4,  1,128,  0,141,255, | ||||
|  96,  0, 60,160,  7, 33,  0,  6,192,  3, 25,  0,  7, 98,  0, 57, 16,  7, 48,  0, 18,208,  3, 74, 64, 15, 96,  0, 32, 32,  0,  0,  0,246,  0,  8,  2,  0,  0,  0,  0,140, 32,  4, 18, 64,  0, 60,  0,  0,  0,  0,  6,192,  2, 24,  0, 15, 68, 64,  8,  0,  1, 49,  0,  6,192,  3,104,  0,  2, 32,  1,  8,  8,136,249, | ||||
| 132,  0,  0,  0,  0, 17,  0, 24,  0,  2,  1, 64,  0,128,129,  4,  0,  0,128,  0, 16, 16,  0, 66, 32, 12,128, 65, 32, 16,  0,  0,  0,214,  0,  8,  2,  4,  0,  0,  0,140, 32,  4,  0,130,  1, 48,  0,  0,  0,  0,  0, 16,  3,  1,  0, 12,  0,  1,  0,  0,  0,128,  0,  0,  0,  3,  0,  0,  0,128,  0,  0,  0, 90,249, | ||||
|   0,137,  0, 18,  0,  0, 16, 88,136,  1,  0,  1, 64,132,  1,  4, 32,  6,  0,136, 72,  0, 16, 32,  1, 76,144,  1,144,  0,  0,  0,  0,246,  0,  8,  2,  0,  0,  0,  0, 12, 32,  4,  3,130,  1, 50, 16,  0,  0,  0, 26,  1,  2, 96,128, 12,  1, 64,  4,  0,  0, 64, 16,  0,  0,  3,  8,  0,  0,160,  0,  0,  8, 24,255, | ||||
|  32,  0, 52,130, 22,208,  0,  2, 72, 35,  9,  0,  1, 32,  0,  4,  0, 22,216, 72,128, 64,  3,  0,  2, 13,160,  8,  0,  4,  0,  0,  0,214,  0,  8,  2, 16,  0,  0,  0, 12, 32,  4,  3, 40,144,  0,138,  0,  0,  0, 26, 64,  8, 40, 36,140,160,  1,176,192,  0, 80,  4,  0,  0, 32, 42, 36, 64,164,128, 52,  0,140,254, | ||||
|   0,  0, 48, 32,  6,194,  0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0, 16,  3,  0, 64, 12,  0,129,  0,  0,  0,  0,  0,246,  0,  8,  2,  8,  0,  0,  0,  4, 32,  4,  3,  4,  0,  0,  0,  0,  0,  0, 24,  0,  0,  2,  0,  0,136,  1,  0,  0,  0,132, 32,  0,  0,  0, 32,  0,  0,  0,  0, 48,  0,152,251, | ||||
|   0,  0, 28,  0,  6,192,  0,  6,  0,  3,120, 32,  0, 96,  0, 48,128,  7,194,  0, 22,  0,  3, 88,  0, 12,128,  0, 44,  0,  0,  0,  0,214,  0,  8,  2,  2,  0,  0,  0,  4, 32,  4,  3,129,  0, 12,128,  7,  0,  0, 24,  0,  0, 97, 32,  3,  8,  0, 60,144,  1, 68,128,  0,192,  0, 88, 64,  3,224,  1, 60,  0, 16,249, | ||||
|   8,  0,  4, 64,  2,200,  0,  2, 17,  1,105,  2,  0, 33, 16, 50,128, 16,192, 72, 10,  0,  3, 40,  0, 76,  4,133, 20,  0,  3,  0,  0,118,  0,  8,  2,144,  1,  0,  0, 12, 32,  4,  3,  0, 64, 52,132, 32,  8,  0, 24,  0, 32,  0,  1,  1,  0,  0,  4,129, 32,128,  0,  0, 64,  0, 72,  4,129, 36,129, 52,  0, 27,250, | ||||
|   0,  0,  0, 32,  4,200,  8, 16,  3,  9,  0,129,128,  0,  0,128, 16,  0,192,  0, 76,  0, 11, 48,  1, 12,129,  0,154,  0,  0,  0,  0, 86,  0,  8,  2,  0,  0,  0,  0, 12, 32,  4,  3,  2, 16,128,  0, 70,  0,  0,  0,  0, 32, 66,130,  0, 16,144,  0,  0, 32, 66,  2,  0,  0, 19,  0,  0, 32,  0,  1,  0,  2,205,253, | ||||
|  96,128, 44,128,  7,240, 32, 30,192,131,120,  0, 15,100, 64, 12,128,  7,240, 32, 18,208,  3, 73, 64, 15, 96,  1, 32, 32,  0,  0,  0,118,  0,  8,  2, 36,  0,  0,  0,  4, 32,  4,  3,240,129, 60,144,  7,  2,  0,  6,200,  0, 88,  0, 15, 96,  0, 60,128,  3,176, 64,  0,192,  3, 41,  0, 14, 40,  1, 12, 32,208,252, | ||||
| 132,  1,  0,  8,  4,  4,  0, 24,  0,  0,  0,  0,  0,128,  1,  0,  0,  0,192, 64, 16,  0,  0, 64, 32, 12,  0,  0, 32,160,  8,  0,  0, 86,  0,  8,  2, 64,  4,  0,  0,  4, 32,  4,  3,  1,  0, 48,  0,  0,  0,  0,  0,  0,  2, 64,  0, 12,  0,  0,  0,  0,  0,196, 64,  0,  0,  3, 64,  0, 13,136,  0,  0,  0,130,254, | ||||
| 128, 33, 36,  0, 38,  0, 66, 64, 32, 35,  1, 68, 64, 40, 64,  0, 34,  6,192,  4,  8, 16,144, 32,  0, 64, 16,137,144,  0,  0,  0,  0,  0,  0, 82, 67,  5,  0,  0,  0, 32, 32, 82, 82,133, 17, 49, 64, 32,  4,  0,  0,  0,  8, 97, 34, 44,  2,  8, 50,128,  0,128,  0,  0,  0,  3,104,  0, 13,160,  0,  0,  0, 64,248, | ||||
| 144,  9,  4,128,  6,208, 72,146,  0, 19,  8, 65, 33, 36,  8,132,  0, 22,216,  0,128,  0,  0,  0,  2,133,168, 16,  0,  4,  2,  0,  0,  6,  0, 82, 67,  9,  1,  0,  0,245, 32, 80, 80, 32,  0,  0, 10, 32,212,  0,  2, 64,  0,  0,  0,  1,  0,  8,177,192, 64, 16,  0,  0,  0, 32, 40,  1, 13, 32,  5,  0, 34,148,252, | ||||
|   0,128,  0,  0,  6, 64,  0,  8,  8,  0,  2,  0,  0,  0,128,  0,  8,  0,192,  0,  0, 16,  0,  2, 64,  0,  0,128,  0,128,  0,  0,  0,  6,  0, 82, 66, 80,  0,  0,  0,117, 32, 82, 82,  8,  0,  0,  0,  0,192,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  2, 32, 12,  0,128,  0,  0,200,251, | ||||
|  96,  0, 12,  0,  6,193,  0, 24,200,131, 24, 32,  3,  0,  1,  0,144,  7,192, 64, 22,192,  0, 88,  0,  7, 96,  0, 44,  0,  4,  0,  0, 70,  0, 82, 66,  2,  2,  0,  0,229, 32, 80, 80,  0,128, 12,128,  1,192,  0,  0,192,  0, 24, 64, 12, 96,  0, 60,144,  1,192,  0,  0,192,  3,120,  0,  0, 96,129, 12,  0,224,248, | ||||
|  36, 64,  4,  0, 38,192, 72,  8, 64,  8,  8,  0, 73,132,128, 32,128,128,192,  0, 10, 64,163, 40,  0,  1, 48,  0, 22,  0,  0,  0,  0,  0,  0, 82, 67,  1,  0,  0,  0, 32, 32, 66, 66,  0,  0, 52,132,134,  0, 64,128, 96,  0,  8,  2, 64,164, 33,132,128, 32,  1, 72,  0, 64, 32, 76, 34,  0, 32, 16,  4,  0, 99,254, | ||||
|   4,132, 48,  0,  6,128,136,128, 16,  0,  4,  4, 64,  0,  4, 48,  0,  0,  0,  0, 76,  0, 11, 48,  1,  0,  8,  4,152,  0,  1,  0,  0,  0,  0, 82, 67,137,  0,  0,  0, 32, 32, 64, 64, 17,  8,  0, 17, 16,194,130, 64,  0,144,  0,132, 76,  0,  4,  2,  0,  0,200, 36,  0,  0, 19, 64,  0, 64, 80,  4, 48,  0,125,253, | ||||
| 192,  1, 56,160,  7,114,  0,  6,128,  0, 24, 32,  3,104,129, 12,136,  7,240, 32, 18,208,128, 72, 64,  3, 96,  1, 33, 32,  0,  0,  0,  0,  0, 82, 66, 10,  0,  0,  0, 32, 32, 66, 66,102,  0, 61,128,  7,240,  0, 30,200,  0, 16,  0, 15,232,  1, 60,  0,  1, 48,  0,  0,192,  0, 74,  0,  3,160,  1, 61, 32, 40,252, | ||||
| 132,  1, 48,  0,  0,193,128,  0,  0,  3,  2, 64,  0,  2, 65, 16,  0,  0,192,  0, 16, 16,128, 64,  0, 12,128, 65, 32,  0,  4,  0,  0,  0,  0, 82, 66,  0,  2,  0,  0, 32, 36, 64, 64,  0,  0, 48, 32,  6,  0,  0,  0,  8,  3, 96,  0,  0,136,  1,  0,128,  0,192, 64,  0,  0,  3, 32,  0,  0,  0,  0, 48,  0, 34,253, | ||||
| 128, 41, 48,  0, 70,192,  4, 16, 72, 11, 64,  0,  0,128,  1,  0, 33,  6,192, 72,  8,  0,  8, 32,  8,140,130, 17, 16, 65,  2,  0,  0, 18,  1, 18,  3, 19,  1,  0,  0, 54, 32, 82, 82,128, 65, 48,  0, 70,  4, 66,  0,  1,  3,  2, 68, 76,160,133, 48,128, 20,194,  4,  0,  0, 19, 42,  0,  0,132, 41, 48,  0, 72,250, | ||||
|   0,  8,  4,128,  6,208,  0,  2,  0, 16, 12,  0,129,164,  4,180,128, 36, 82, 66,128, 64,  0,  0,  2,  1, 32,  0, 33,132,  0,  0,  0, 18,  1, 18,  3, 65,  0,  0,  0, 38, 32, 80, 80, 36,  0, 52,128,  0,  0,  0,  2, 66,  0,  8, 36,  1, 32,  0,  4,137,  0, 16,  0,  0,  4,  0, 40,  8, 13,  0,  8, 21,  9,228,253, | ||||
|   0,  0,  1,  0,  6,192,  0,  0,  0,  0, 96,  0,  0,  0, 65, 48,  8,  2,192,  0,  0, 16,  0,  0, 64,  0,  0,  1,  0,  0,  0,  0,  0, 66,  1, 18,  2,  0,  0,  0,  0,118, 32, 82, 82,  8,  0, 48,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0,  0, 32,  0, 16,254, | ||||
| 224,  1, 12,128,  7,192,  0,  0,200,  0,  0,  0,  4,128,  0, 48,  0,  0,192, 32, 22,  0,  3, 88,  0, 12,  0,  0, 44,  0,  1,  0,  0,  2,  1, 18,  2,144,  0,  0,  0,118, 32, 80, 80,225,  1, 48,  0,  6,  1,  0,  6,  8,  0, 64, 32,  0,  8,  0,  0,  8,  0,193,  0,  6,  8,  0,120, 64, 12, 98,  0, 16,  0, 56,253, | ||||
| 172,129,  4,128,  6,192,  0, 64, 64,  0,  0, 33,  0,  1,129,176, 16,  0,  2,  2, 10,  0, 16, 44,  0, 64,  2,136,  4, 16,  0,  0,  0, 66,  1, 18,  3,  1,  0,  0,  0,102, 32, 66, 66, 33,  0, 50,  0, 64,  0,  0,  2,  0, 35, 33,  1, 76,128,  9,129,  0, 64,  0, 72,  2,  0,  0, 72,  1, 32,160, 17, 34,  0,  3,250, | ||||
|   4, 32,176,  8, 32,192,  4,  1, 17, 11,  1, 65,  0,128,  4, 48,  0,  4,196,  2, 77,  0, 19, 49,  1, 32,132, 16,153,  0,  0,  0,  0, 66,  3, 18,  3,  5,  0,  0,  0,100, 32, 64, 64, 16, 68,128,  0,134,  0,  0,  0,  0,  3, 32,  1,128,129,  9,128,  0,  6,193, 32,  0, 17,  0, 64,  0, 12,  1, 16, 18,  0,185,248, | ||||
| 224,  1, 56,  0,  1,242,  0, 30,192,  3, 24,  0,  3,104,129, 12,160,  1,176,  0, 18,208,  3, 72, 64, 15, 96,  0, 32, 32,  0,  0,  0, 66,  0, 18,  2,  0,  0,  0,  0,102, 32, 98, 66, 64,  0, 12,136,  7,  0,  0,  6,208,131, 24, 64, 15, 96, 64, 12,136,  7, 48,  0,  4,  0,  0, 72,  0, 15,224,  1, 44,  0,242,250, | ||||
|   0,  0, 48,128,  0,  0,  0,  0,  0,  3,  0, 32,  0,128,129, 32, 16,  0,  0, 32, 16, 16,  0, 64,  0,  0,  8,  0, 16,  0,  0,  0,  0, 66,  0, 18,  2,  0,  0,  0,  0,100, 32, 96, 64,  0,  0,  1,  0,  0,  0,  0,  0,  0,  3, 96, 32, 12,128,  1,  0,  0,  6,192,  0, 24,  8,  0, 32,  0,  0,128,  1, 16,  0,218,253, | ||||
| 144, 69, 48,128,  0,  0, 66, 64,  8,  3,  0,  0,  0,  4,  9, 24,  0, 32,  8,  8,136,  0, 32, 33, 32,128,128,  9, 34, 33,  0,  0,  0,  0,  0,  2,  2,  0,  0,  0,  0, 32, 32,  0,  0, 32,  8,  0,  0, 22,  4,  0,  2, 32,163, 32,  2, 12,  4, 40, 16,  8, 64,194,  8, 65,  0,  0, 40,  0,128,130,  5, 34,  0,148,248, | ||||
| 160,  1,148,128,  6,208,  0,  0, 80,  9, 12,  0, 33,164,  8, 53,146,  0,208,  0,128, 64, 16, 66,  2,  1, 33,  0,  4,  0,  0,  0,  0,  0,  0,  2,  2,  0,  0,  0,  0, 32, 32,  0,  0, 32,  0,  0,128, 66,  0,  0, 64, 64, 16,  8,  0,  1, 32,  8,  4,128,  6, 16, 72, 26,  0, 32, 42,  1, 32,  8,  0, 52,  1,120,253, | ||||
|   0,  0, 32,  8,  6,192,  0,  0,  0,  2,  0,  0,  0,  0,  1, 48,  0,  0,  1,  0,  0, 16,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  2,  0,  0,  0, 32, 32,  0,  0,  1,  0,  0,  0,  0,  4,  0,  0,  4,  0,  1,  0,  0,  0,129,  0,  0,  6,  0,  0, 24,  0,  0,  0, 64,  0,  0,  0, 48, 16, 96,253, | ||||
|   0, 64, 16,  0,  0,192,  0,  6,  0,  1,  0,  0,  3,132,  0, 48,  0,  2,  1,  0, 22,  0,  3, 89,  0,  8,224,  1, 48,  0,  0,  0,  0,  0,  0,  2,  2, 16,  0,  0,  0, 32, 32, 32,  0,232,  1,  0,  0,  0,  2,  0,  6,  0,  2,  1,  0, 12,  0,129,  0,  0,  6,128,128,  6,192,  0,120, 64, 15,  2,  0, 48, 32,144,254, | ||||
| 132, 17, 32, 33, 38,196,  0,  2,  4,  2,  0,  0,129,  0,  1, 16, 33, 68,  0, 32, 10,  0, 16,  8,129,128, 40,  0,129,  8,  4,  0,  0,  0,  0,  8,  2, 16,  2,  0,  0, 32, 32,  4,  0,168,  1,  0,  0, 64,  0,  0,154,  2,  9, 96, 36,  0,144,  5,128, 32,  6, 64,  0,  2, 64,  0, 72,  2, 65,  0,  0, 48,  1, 90,252, | ||||
| 132,137, 16,  0, 22,194,  4, 64,  0,  1,  0,  2,128,128,  0, 16,  2, 66,192,  2, 76,  0, 16, 49,  1, 64,144, 73, 48, 17,  2,  0,  0,  0,  0,  8,  2, 24,  1,  0,  0, 32, 32,  4,  0, 12,  0,  0,  0, 64,  4,  0,  0, 33, 16, 97,  1, 12,128, 16,  0, 32,198, 64,  0,128,  0, 35, 65,  0, 12,  0,  0,  0, 66,128,248, | ||||
|  96,  0, 44,136,  7,240, 32,  4,208,  2, 24, 32,  3, 98,  1, 60,136,  5,244, 32, 18,208,  3, 72, 64,  3,224,  1, 60,  0,  4,  0,  0,  0,  0,  2,  2, 16,  2,  0,  0, 32, 32,  0,  0, 72, 64,  0,128,  1,  0,  0,  4,192,  2,120, 16, 15, 98,129, 12,128,  7, 48, 32,  6,208,  3, 72,  0, 14,  8,  0, 12,  0,216,249, | ||||
|   0,  0, 48, 16,  0,  0,  0,  0,  0,  1, 96, 16,  0,128,  0,  0,  0,  0,196,  0, 16,  8,  1, 32,  0,  0,132,  1,  0,160,  6,  0,  0,  0,  0,  2,  2, 88,  3,  0,  0, 32, 32,  0,  0, 12,128,  0,  0,  0,  0,  0,  0,  0,  2, 96, 16,  0,128,  1,  0,  0,  0,193,  0, 24,  0,  3, 32,  0,  0,  4,  0, 32,  8, 57,255, | ||||
| 128,  5, 34,  1, 64,  1, 66, 24,  5,  2, 96,  4,136,  8,  1, 48,  9, 70,192, 40,  8,  1, 34, 65, 66, 64,128,  1, 50,  1,  4,  0,  0,  0,  0,  8,  2,  8,  2,  0,  0, 32, 32,  4,  0,  4, 16,  0,  0, 16,  2,  0,  0,  4,  3, 97,  0, 44,136, 17, 49, 18, 16, 64,132, 24,  8,  3, 40,  0, 44,  0,  0,  0,  0,112,250, | ||||
|   0,  0, 32,  0, 68,  0, 32,  0,  0,  0,  0,  0,  0,  0,  1,128,  0,  0,128,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  4,  0,  0,  0,  0,  8,  2,  0,  2,  0,  0, 32, 32,  4,  0,  0,  1,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  1, 32,  0,  4,  0,  0,  0,  0,  0,  0,  0, 40, 16,  0,  0,  0, 12,250, | ||||
|  32,  0,  4,  0,  0, 17,  0,  2,  0,  0,  8,  0,  1,  0,  0, 12,160,  0,  0,  0,  2,192,  0,  8,  0,  0, 32,  0,  4,  0,  0,  0,  0,  0,  0,  8,  2,  2,  0,  0,  0, 32, 32,  4,  0, 33,  0,  4,128,  0, 16,  0,  0,  0,  0,  8,  0,  1,  0,  0,  0,  0,  0, 18,  0,  2, 64,  0,  8,  0,  0, 32,  0,  4,  0, 72,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  2,  0,  0,  0,  0, 32, 32,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,249, | ||||
|  44,  0,  4,128,  0,  0,  0,  2, 64, 64,  8,  0,  1, 32,  0,  0,128,  0, 80,  0,  2, 64,  0,  8,  0,  1, 32,  0,  4,  0,  0,  0,  0,  0,  0,  8,  2,  0,  0,  0,  0, 32, 32,  4,  0, 32,  0,  4,128,  0, 16,  0,  2, 64, 32,  8,  0,  1, 32,  0,  4,  0,  0, 16,  0,  2, 64,  0,  8, 68,  0, 32, 16,  5,  0, 27,253, | ||||
|   4, 16,  2,  0, 66,  4, 36,  0,  0, 32,  4,  0,  0,  0,  4,  1, 66, 64,  8,  8,  1,  0,144,  0,  0, 32, 16,  0,  0,  1,  0,  0,  0,  0,  0,  8,  2,  0,  0,  0,  0, 32, 32,  4,  0,  0,  8,  0,  0,  0,  0,  0,128,  0, 32,  4, 68,  0,  0, 16,  2,  0, 64,  2,  0,128, 16,  0,  0,  4,128, 16,  0,128, 64,237,248, | ||||
|   0,  0,  0,128,  0, 48,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,128,  0, 16,  0,  0,  0,  0,  0,  0,  1, 32,  0,  0, 16,  0,  0,  0,  0,  0,  8,  2,  0,  0,  0,  0, 32, 32,  4,  0,  0,128,  0,  0,  0, 16,  0,  2,  8,  0,  0,  0,  0,  0,  0,  4,  0,  0, 16,  0,  0,  0,  0,  8, 64,  0,  0,  0,  0,  0,154,253, | ||||
|   4,  1, 32,  0,  0,  0,  0, 16,  0,  2, 64,  0,  8,  0,  0,  0, 16,  0,  4,  0, 16,  0,  2, 64,  0,  8,  0,  1, 32,  0,  0,  0,  0,  0,  0,  8,  2,  0,  0,  0,  0, 33,  4,  4,  0,  0,  1, 32,  0,  4,  0,  0,  0,  0,  2, 64,  0,  8,  0, 64,  0,  0,  0,  1,  0, 16,  0,  2,  0,  0,  0,  0,  1, 32,  0,210,248, | ||||
|   0,  0, 20,  0,  0,  0,  0, 10,  0,  0,  8,  0,  1, 32,136,  0,  2, 32,  0, 32,  2,  0,  0,  8,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,128,  0, 16,  0,  0, 17,  0,  0,  0,  1,  0, 16, 20,138,  0, 16,  0,  0, 64,  0,  0,  8,128, 40,  0,  0,  0,160,251, | ||||
| 128,  0,  8,  0,  0,  4,  0,  0,  0, 64,  0,  0,  0, 64,  0, 16,  0,  2, 16,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  2,  0,  0,200,249, | ||||
|   0,  0,  0,  0,  0, 16,  0,  0,128,128,  4,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,144,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0, 16,  0,  2,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,144,249, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  4,  4, 32,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,248,253, | ||||
|   0,  0, 64,  0,  0,  0, 64,  0,  2,  4,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,192,  0,  8,  0,  0,  0,  0,  0,  0,128,  0,  0, 48,  0,  1,  0,116,249, | ||||
|   0,  0,  0,  0,  8,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0, 72,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,128,  0, 64,  0,  0, 64,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,152,254, | ||||
|   0,  2,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0, 16,  0,  0,  0, 16, 56,255, | ||||
|   0, 32,  0,  0,  2, 16,  0,  2,  0,  0, 10,  0,  1,  2,  0,  4,160,  0, 64, 32,  0,  4,128,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 64,  0,  0,  0,  0,  0,  2, 16,  0, 32, 16,  1, 32,  0,  0, 32,  0,  0, 32,  4,  0,  1,  1,  0,  2,  2,  0,  0,136,121,252, | ||||
|   0,  0,  0,  8,  0,128,  0,  0,  8,  1, 64,  0,  0,  8, 65,  0,  0,  2, 32,  0,  8,  0,  1, 32, 16,  0,130, 64,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,128,  0,  0, 64,  8,  0,  0,  0,  0,  2,  0,  0, 16,  8,  0,  0, 64,  0,  8,  0,  2,  0,  4,  0,  0,  8,  0, 40,255, | ||||
|   0,128, 96, 32, 13, 48, 24, 12, 80,  0, 25,  0, 66, 61,  0,  9,144, 13, 48, 64, 50, 72, 96,  9, 74,  2, 40,  0,  1, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,176, 21,136,  2,  1,128,  6,  8, 10, 48, 32,131, 65,  3,  4, 48,  2,  0,192,  4,144,  0,  3,  0,  3,  4, 45,100, 16,240,255, | ||||
| 128,  1, 48,  8, 84,209,  0, 24,  2,195, 64, 24,152, 37, 56, 20,  4,  4,129,  6,152,  2,214, 72, 82, 88,129, 33, 32,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 80, 21, 14,128, 11,  0, 72,  0,  8, 32, 85,  1,130, 64,164, 82,  1,  0,  0,  8,  0,  1,  8, 16,  5, 34,  0, 17,  0,192,254, | ||||
| 128,  0, 16,  4,  0, 65,  0, 16,  0,  1,  2, 32,  0,  0,  0, 16,  0,  0,  2,  0,  8,  0,  0,  2, 64,  0, 32,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  5, 32,  0,  4,  0,  4,  0,  0, 32, 64,  0, 40, 32,  0,  0,  0,  0,  0,  8,  0,  1,  0, 16,  4,  8,  0, 16,  0, 49,249, | ||||
|   0,  1, 32,  0,  4, 16,  0, 16,  8,130, 32, 64,  4,  2, 64,  0,160,  0, 16,  0,  4,  8,129, 32,  0,  4,130, 64, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,173,255, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0, 18,  0,  0,  0,160, 16, 32,  0,  0,  0,  0,128,  0,  0,  0,  0,  0, 32,  0,  2,  0,  0,  8,128,  0,  0,  0,  1,  0,  0,  2,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 88,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  8, 32,  0,  0,  0,  2,  0,  0,  0,128, 16, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0, 80,255, | ||||
|   0,  0, 16,  0, 16, 16,  2,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  4,128,  0,  0,  0,  0,  0,  4,  0, 16,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,128,253, | ||||
|  16,  0,  0,  0,  8,  2,  2,  0,  0,  0,  0,  0,  2,  0,  0,  4,  0,  2,  0,  0,  0,  0,  0, 20,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0, 64,  0,  0,  4,  0,  0, 64,  0,  2, 32, 36,250, | ||||
|   2,  2,  0,128,  0,  0,  0,  1,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0, 64,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0, 64,  0,  0,  0,  8,  8,  0,  8,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,144,253, | ||||
|   0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  1,  0,128,128,  0,  0,  0,128, 32,  0,  0,  1,  0,  0,  0,  0,  0,  2,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  0,  0,  0, 32,  0,  0,  0,  0,  8,255, | ||||
|  68,  0,  0,  0,  0,  0,  0,  4,128,  0, 16,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  4,  0,  0,  0, 24,  0,  1,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  8,  0,  0,  0, 32,  0,  0,  0,  0,  0, 25,  0,  0, 80, 73,251, | ||||
|   4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,128,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,134,253, | ||||
|   0,  0,128,  0,  0,  0,  0,  0,  0,128,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,162,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  1,  0,  0,  0,  0,  4, 64,252, | ||||
|   0,  0,  0,  0, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  8,  2,  0,  0,  0,  0,  0,  8,  0,  0,  4,  0,  0,128,251, | ||||
|   0,  0,  0,  0,  1, 64,  0,  0,  0,  0,  0,  0, 32,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  3,  0,  0,  0,  0, 16,  0,  0,  0,  0,  4,  0,  0, 34,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0, 80,249, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,128,  0,  0,  0,  0,  0,  0,128,  0, 16,  0,128,  0,  0,128,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,252, | ||||
|   0,  0, 34, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  1, 16,  0,  0,  0,128,  0,  0, 16,128,  0,  0,  0, 64,  0,  0, 32,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,128,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,160,  0,120,253, | ||||
|   0,  0,  0, 32,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  8,  0,  0,  0,  0,  1,  0,  0,  6,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  8,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72,254, | ||||
|   0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,128,  0,  0,  0, 64,  0,  0,  1,  0,  0,  0,  0,  0,  0, 72,249, | ||||
|   0,  0,  0,  0,  0,  0,  0,  1,  0,  0, 64,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0, 34, 32,  0,192,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  1,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0, 32,168,255, | ||||
|   0,  0,  1,  0,  1,128,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0, 32,  0,132,128,  0,  4,  2,  0, 16,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0, 64,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,172,255, | ||||
|   0, 64,  0, 64,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0, 16,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0, 88,249, | ||||
|  16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0, 16,128,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0, 56,254, | ||||
|   0,  0,  0,  0,  0,  0,  0, 32,  0,  4,  4,  0,  0,  0,  2,  0,  0,  0,  0,128,  0,  0,  0, 16,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8, 16,  0,128, 68,  0,  0, 80,248, | ||||
|   0,  0,  0, 16,  0,  0,  0,  0,  4, 64, 16,  0, 16,  0,  0, 16, 16,  0, 16,  1,  0,  0,  0,  0,  0, 32,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0, 64,  0,  1,  0,  0,  0,  0,160,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  2, 32,  2,  0,128,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,128,  0,128,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  2,  0, 16,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0, 56,252, | ||||
|   0,  1,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0, 64,  0,  0, 40,252, | ||||
|  72,  0, 33,  4,  2, 20,128,  2, 80,  0,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,129, 64,  0, 16,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0, 17,  0,  0,  0,  0,  0, 16,  1,  8, 64,  1,  0,  1,  1,128,  0,  0,  0,  8, 80,128,  0,  0,  0,  1,  0,  0,128, 60,248, | ||||
|   0,  0, 16,  8,  0,128, 16,  8,  2,  1,  0,  0,  0,  0,  0,  1,160,  0,  0, 32,  0,  4,129,  0,  0,  4,  2,128, 16,  8,  0,  0,  0,  0,  4, 64,  0,  0,  0,  0,  0,  4,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 32,  4, 36,  0,  8,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0, 32,  0,  0,  0,188,249, | ||||
|  64,128, 12, 53, 13, 58,192,  7,251,128,  0,  0,  4,  0,176,105,165, 20,128,130, 80, 80,  0,226,  0,  5, 76,128,  5, 48,  0,  0,  0,  6, 20, 64,144,  0,  0,  0,  0,  4,  0,  8, 88,  0,128, 24,  5,  2,  0,  0, 80,136,  7, 18, 96,  3,106,128, 20,  0,  3, 65,  0,  5,136,  1,  9,  0, 64,165, 40,  0,  5, 72,252, | ||||
| 128, 32,160, 94,146, 67, 64, 16, 76,144,  0, 20,164, 67, 64,  1,132,132,193, 16, 64, 67,248,160, 13,252,129, 39,132,  4,  0,  0,  0, 24,  2,128, 32,  0,  0,  0,  0,  8,  3, 96,  0,128, 81, 17, 10,  4, 10, 16,100,132,206, 80,  8,  6, 22, 33,177,138, 64, 10, 64, 24,  4,137, 18, 65,146, 40, 82,  0,  1,120,255, | ||||
|  32,  0,  0,144,  0,129,  0,  0,  8,  0,  1, 16,  4,  8, 32,  0,  0,  0, 18,  0,  0,  0,128, 32,  0,  8, 32,  0,  0,  0,  0,  0,  0,  8,  0,  0, 32,  0,  0,  0,  0,  0,  2, 32,  0, 32,  0,  5,  8,  0,  0,  0,  0,  2,  0,  1,  0,  2,  4,  0,  4,  8,  0,  0,  0,  2, 16, 65,  0,  0,  0,  0, 64,  0,  0,224,253, | ||||
|   0, 64, 16,  8,  0,  4,  0,  8,  0,  0,  0,  0,  0,  2,  0,  0,136,  0, 65, 32,  0,  4, 64,  0, 16,  4,130, 64,  0,  8,  0,  0,  0,  8,  4, 64,  0,  0,  0,  0,  0,  4,  2, 32,  0,128,  0,  0,  0,  2,  0, 32,  0,  0,  1, 18, 64,  0, 32,  0, 17,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,216,248, | ||||
|   0, 33,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 64,  0,  0,  0,  0,  0, 16,  0,  0,  0, 32,  2,  0,  0,  0,  1,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,254, | ||||
|   0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 64,  0,  0,  0,  0,  0,  0,  0,  0,  2,  1,  0, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0, 16,  0,  0,  0,  8,  8,  0,  0,  0,  0,  1,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,253, | ||||
|  40,  0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  8,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  1, 32,  0,  4,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  1,  0,  0,194,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0, 32,  2,128,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0, 64, 16,  0,  0,128,  0,  0,  0,120,253, | ||||
|  16,  0,  0,  0,  0,  0,  0, 16,  0,  0, 65,  1,  0,  0,  1, 64,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 64,  0,  1,  0, 33,128,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,252, | ||||
|   0,  0,  0,  0,  0,  4,  0, 32,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  1,  0,  0, 32,  0,  0,  0, 32,  0,  0,  0, 16,  0,  0,  0,  0,  1,  0,  0,  0,128,  0,  1,  0,  0,  0,  0,  0, 64,  0,  2,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0, 64,  0,168,254, | ||||
|   8,  0,  0,  0,  0,  1,  0,  0,  4,  0,  0, 16,  0,  0,  0, 32, 16,  0,  2,  0, 64,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0, 16,  0,  4,  0,  0,  0, 64,  0,  0,  0,128,  0,  0,  0, 64, 32,  0,128,104,253, | ||||
|  32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  2,  0,  1,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 16,  0,  2,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  8,  0,  0,  0,  0,  0,136,  0,224,250, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0, 64,  0,128,  0,  4,  0,  0,  0,  0,  0,  0,  1,  0,  8,  0, 32,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  8,  0,  2,  0,  1,  0, 72,253, | ||||
| 128,  0,  0,  0,  0,  0,  0, 80,  8,  1,  0,  1,  0,  0,  0,  0,  8,  0,  0,  2,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  8,  0,  0,  0,  1,  0, 64,242,255, | ||||
|   0,  0, 64,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  8,  0, 48,  0,  8,  0,  0, 34,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  2, 32,  0,136,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,104,252, | ||||
|   2,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0, 16,  2,  0,  0,  8,  0,  0,  0,  8,128,  0,  1,  0,  0,  6,  0,  0, 24, 16,  3, 32,  0,  0,  0,  4,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 88,253, | ||||
|  32,  0,128, 64, 38,208,  0,  0, 33, 32,  8,  0,140,161,  1,  4,  0, 16, 80,  8,  0, 64,  3,  0,  2,  1,160,136,180,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 52,  0,  0, 16,  0, 82, 64, 32, 10,  0,  0,160,  1, 20,146, 34,210, 72,  0,  0,  0, 40, 33,  1, 32,132,  0,  0,208,253, | ||||
|   0,  0, 48,  0,  0,194,  0,  0,  0,  3,  2,  0, 12,128,  1,  0,  0,  0,196,128,  0,  0,  0,  0, 32,  0,  0,  1, 48,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1, 48,  0,  0,  0,  0,  0,  4,  0, 96,  0,  0,128,  1, 32,  0,  4,192,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0, 64,251, | ||||
| 128,  1, 60,128,  7,193,  0,  6,192,  3,120,  0,  3,  0,  0,  0,128,  1,  0,  0,  0,192,  0,121,  0,  3,224,  0, 60, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 60,  0,  0, 48,  0,  0,  4,  1, 24,  0,  0,224,  1, 28,128,  3,  0, 32,  0,  0,  0, 56,  0,  3,128,128,  0,  0, 16,252, | ||||
| 128,  1,  4,137, 70,192,  0,  2, 64,144,104,  0,  1,  0,  0, 48,160,  0,192, 16,  0, 64, 32,104,  0,  1, 32,  1, 52,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 68,  4, 64,  0, 16,  0, 64,  0,162,  8, 10,  0,160,  1, 36,128,  4,192,  8,  0,  0,  0, 72,  0,  1,  0,  8,  0,  0, 16,254, | ||||
| 128, 33,  0,  0, 16,  8,  8,152, 16, 16, 97, 16,  0,136, 49,  0, 64,198,192,  8,  1,  0, 16, 96,  0,128,128,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 48, 18,  0,192,  4,  0, 33, 96, 96,  0,  0,  0, 48, 16,  0,  2,192,  2,  0,  0,  0, 32,  0,140,130,  5,  1,  0,160,254, | ||||
| 224,  1, 52,160,  7, 48, 64, 30, 64,  3,120,  0,  2,224,  1, 60,128,  7,240,  0,  0,128,  3,121, 16,  3, 98,  1, 60, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 60,  0,  0,240,128,  6,192,  3,112, 16,  0, 64,  0, 44,128,  5,240, 64,  0,  0,  0, 88,  0, 15,224,  1,  0,  0,184,249, | ||||
| 128,  1, 48,  0,  0,  2,  0, 24,  0,  3,  0,  0,  0,128,  1, 48,  0,  6,192, 64,  0,  0,  3,  2,  0, 12,128,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 48, 32,  0,192,  0,  0,  0,  0, 96, 32,  0,  0,  0, 16,  0,  2,128,  0,  0,  0,  0, 32,  0, 12,  0,  0,  0,  0,248,254, | ||||
| 128,129,  0,128,  0,  0,  0, 24,  0,  0,  0, 18, 32,132,133, 48,  4,  6, 64,  4,  0, 64, 11,  0,132, 12,  4,  1, 36,  4,  0,  0,  0,116,116,116,116,  0,  0,  0,  0, 27, 27, 27, 27,  0, 16,176,  0,  0,208,  0, 64, 32, 16, 98,  0,  0,  0,  0, 36,  0,  4, 96, 16,  0,  0,  0, 72,  0, 12,  0,  5,  2,  0,208,252, | ||||
| 160,  1,148, 16,  0, 16,  8,128, 64, 33,108,  0,128,  1,  0, 20,145,  0,  0,  0, 10,  1,  3,  1,  0, 64,164,  8, 22,  9,  0,  0,  0, 84,  0,116,116, 34,  0,  0,  0,  8,  0, 27, 27, 17,136,  4,128,  2, 88, 64,  2, 97,  0,  8,  0,  0,160, 73,  0,128, 34,210, 24, 74, 64,  0, 40, 68,  1,128, 33,  0, 33,212,250, | ||||
| 128,  1,  0,  0,  0,  0,128,  0,  8,  0, 96,  0, 12,  0,  0, 32,  0,  0,  0,  0, 24, 16,  3,  0,  0, 12,  0,  1, 32,  0,  0,  0,  0, 84, 96,116,116, 12,  0,  0,  0,  9, 10, 27, 27,  6,  0, 48,  0,  4,128,  0,  0,  0,  0, 96,  0,  0,128,  1,  0,  0,  4,192,  0, 16,  8,  0, 64,  0,  0,128,  1,  0,  0,160,254, | ||||
|   0,  0, 48,  0,  0, 48, 64,  6,  0,  3,120,  0, 15,  0,  0, 28,  0,  0,  0,  0,  0,192,  0,  0,  0, 15,224,  0, 16,  0,  0,  0,  0,116, 52,116,116,  8,  0,  0,  0,  9, 18, 27, 27,100,  0, 60,128,  3,112,  0,  0,192,  0, 25,  0,  0,128,  1,  0,128,  3, 64,  0, 14,192,  0, 56,  0, 15, 96,  0, 12,  0, 32,254, | ||||
|   8,  0,160, 16,  0, 16,  8,  2,  0, 10,106,  0, 45,  4,  0, 36,  0,  0,  0,  0, 24, 66,  0,  0,  0, 45, 36,  1, 32,  0,  0,  0,  0, 84, 84,116,116,  0,  0,  0,  0, 11,  3, 27, 27, 32,  0, 52,192,  4,144,  0, 72, 96, 35,  8, 10,  0,128, 73,  0,128,  4,192, 66, 18, 64,  0, 72,  0, 13, 32,  0, 52, 66,187,249, | ||||
| 128, 33, 32,  0,  0,  0,  0,152,  8,  2,  0, 65, 64,  8,  0, 16,  0, 22,  2,  0,152,  0, 19,  0,  0, 64,144,  0, 16,  0,  0,  0,  0,116, 96,116,116,  0,  0,  0,  0, 10, 11, 27, 27,128,  9, 49, 18,  2, 64,  0, 64,  4,  0, 96,  4,  0,  0, 65,  0,  0,  2, 64,  8,  9,  0,  3, 32,  0, 64,128,  1,  0,  1, 45,253, | ||||
| 224,  1, 36,  0,  0, 48,128, 30, 64,  2, 16,  0,  2,  0,  0, 44,128,  7,  0,  0, 30,196,131,  0,  0,  2, 96,  1, 44,  0,  0,  0,  0,116, 84,116,116,  0,  0,  0,  0, 27,  2, 27, 27,224,  1, 60,128,  5,176,  0,  6,192,  3,113, 16,  0, 96,  0,  0,128,  5,240,  0, 22,192,  3, 89,  0,  3,130,  1, 60, 32, 98,252, | ||||
| 132,  1, 16,  0,  0,  0,  0, 24,  0,  1,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0, 24,  0,131,  0,  0,  0,132,  0, 16,  0,  0,  0,  0,116,116,116,116,  0,  0,  0,  0, 27, 27, 27, 27,128,  1, 48, 32,  2, 64,  0,  0,  0,  3, 97,  0,  0,128,  1,  0,  0,  2, 64,  0,  8,  0,  3, 32,  0,  0,  2,  0, 48,  0, 42,253, | ||||
| 128,129, 16,  0,  0,144, 68, 24,  0,  1,  8,  0,140,  4,  0, 32,  0, 16,  1,  0,  8,  8,  3,  0,  0, 12,  0,  1, 32,  0,  0,  0,  0,116,100,116,116,  0,  0,  0,  0, 27, 19, 27, 27,128,  1,176,128,  4,128,  0, 64,  4, 11, 96, 34,  0,  0,137,  0,128,  4,128, 40, 18,  0,  3, 72,  0,129,  0,  0, 48, 17, 64,248, | ||||
| 176,137, 20,192,  0,192,  0,128, 64,  9,  9,  0,141,128,  1, 48,129,  0,  0,  0,128,  0,  3,  1,  1, 64,164, 17, 52,  0,  0,  0,  0, 20, 36,116,116,  0,  0,  0,  0, 24, 10, 27, 27,160, 72,  4,128, 66, 82,136,  0, 68,  0,  0,  0,  0, 32, 72,148,160, 34, 80,  0,  2, 69,  0, 40, 64, 64,164,137,  0,  0,184,249, | ||||
|   0,  0,  0,  0,  0,192, 32,  0,  8,  0, 96,  0,  0,132, 65,  0, 16,  0,  0,  0,  0,  8,  3,  0, 64, 12,128,129, 48,  0,  0,  0,  0, 52, 68,116,116,  0,  0,  0,  0, 24,  9, 27, 27,  0,  0,  0,  0,  4,128,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,130, 64,  8,  0,  0, 64,  0,  0,  0,  0,  0,  0, 72,251, | ||||
| 128, 65, 48,128,  1, 48,  0,  6,  0,  3, 24,  0, 15,224,  1, 60,128,  1,  2,  0,  6,192,  0, 24,  0, 15,  0,  1, 48,  0,  0,  0,  0, 48, 68,116,116,  0,  0,  0,  0, 24,  8, 27, 27,224,  1, 12,128,  3,112,  0,  6,192,  0,  0,  0,  0,128,  0, 28,128,  3,112,  0, 22,  0,  3, 56,  0,  3, 96,  0,  0,  0,200,250, | ||||
|  12,  4, 32,133,  0, 16,  0,  2,  0,  2,  9, 34,129,162,  1, 52,138, 64,  0,  0,  2, 64,  0,  8,  0, 45,132,136, 48, 10,  0,  0,  0, 20,116,116,116,  0,  0,  0,  0, 26,  0, 27, 27, 32, 68, 52,137,  4,144,  0,  2, 64,  3,  2,  0,  0,  0, 16, 37,192,  4,144,  0,130, 32,128, 72,  0,  1,160, 65,  0,  0,130,255, | ||||
| 132, 17, 32,  0,  6,  0,  4, 25, 17,  2,  0,  2, 64,  0,  4,128,  0, 32,  0,  0, 24,  8,139, 96,128, 32,128,  1,  0,  0,  0,  0,  0, 52,  4,116,116,  0,  0,  0,  0, 26, 24, 27, 27,128,  9,  0, 18,  2, 64,  0, 88,  4,  0,  2,  0,  0,128, 33, 16,  4,  2, 64,  0,  0,  9,  3, 36,  0, 76, 80, 48,  0,  0,200,253, | ||||
| 224,  1, 37,128,  7, 34,  0, 30, 64,  2, 24, 64, 11,104,128, 60,160,  1,  4,  0, 30,192,  3,120,  0,  2,232,  1, 61, 16,  0,  0,  0,116,  4,116,116, 32,  0,  0,  0, 11,  9, 27, 27,229,  1, 61,128,  5,176,  0, 30,192,  3,  0,  0,  0,224,  1, 44,128,  5,176,  0, 14,192,  3, 88,  0, 15,160,  1,  0,  0, 16,255, | ||||
|   4,  1, 16,  0,  6,  0,  0, 24,  0,  1,  0, 64,  8,128,  1,  0,  0,  0,  4,  0, 24,  0,131, 96,  0,  0,  0,128,  0,  0,  0,  0,  0,116, 16,116,116,  2,  0,  0,  0, 27,  3, 27, 27,128, 65, 48,  0,  2, 64,  0, 24,  0,  3,  1,  0,  0,  0, 64,  0,  0,  2, 64,  0, 16,  4,128, 32,  0, 12, 64,  0,  0,  0, 41,253, | ||||
| 128, 73, 16,  0,  6,  0, 32, 24,  0,  1,  8,  0, 76,130,  5,  6,137, 70,  0,  0, 24,  0,  3, 96,  0,140,196,  5,  0, 66,  0,  0,  0, 52,116,116,116, 16,  0,  0,  0,  2, 27, 27, 27,136,  9, 52,146,  4,128,  0, 24,  0, 11,  0,  0,  0,  0,  9, 48, 17,  4,128,  0,128,  0, 11, 72,  0, 12,128,  1,  0,  0,224,252, | ||||
| 160,137, 20,160,  0,  0,  0,  0, 64,  1,106,  0,128,  1, 16,  0,129,  0,208,  0,128,  0,  3,105,  0,141,160,133, 20,  2,  0,  0,  0, 48,116,116,116,  0,  0,  0,  0, 26, 27, 27, 27,  0,136,  4,128, 70, 80,  0, 26, 64,  0,104,  0,129, 33, 72, 52,162, 22, 81,  2,  0, 64,  0,104,  1,133,  0, 32,  0,  0, 28,252, | ||||
|   0,  0,  0,  0,  6,192, 32,  0,  0,  0, 96,  0, 12,  0,  0,  1, 16,  0,192,  0,  0,  8,  3, 96,  0,  0,132,  1, 32, 16,  0,  0,  0, 80,116,116,116, 12,  0,  0,  0, 11, 27, 27, 27,  4,  0,  0,  0,  6,130, 64, 24,  0,  0, 96,  0,  4,  0,  0,  0,  0,  6,128,128,  0,  0,  0, 96, 16, 12,  4,  0,  0,  0, 96,255, | ||||
| 128, 65, 48,128,  1,244,  0,  0,  0,  3, 25,  0, 15, 96,  0, 60,128,  1,  0, 32,  6,192,  0,  0, 16, 15,128,  0, 28,  0,  0,  0,  0, 16, 16,116,116,  0,  0,  0,  0, 26,  2, 27, 27, 97,  0, 12,  0,  0,112,  0, 24,200,  0,120,  0, 11,128,128, 60, 32,  0,116,  0,  0,  0,131,  0,  0,  3, 96,  1,  0,  0,  0,249, | ||||
|   8,  4,160,160,  0,208, 32,  0,  0, 18,  8,  0, 45, 36,  0, 52,128,  0,  0,  0,  2, 64,  0,  0,  4, 33,130,  9, 37,  0,  0,  0,  0,112, 32,116,116, 12,  0,  0,  0,  9, 26, 27, 27, 33,  0, 52,  8, 22,145,  0, 88, 64,  0,104,  0, 65, 16,  4,  4,  1, 38,144,  0,  0,  0,  3, 96, 16,  1,168,  0,  0,  0,107,253, | ||||
| 128, 17, 32,  0, 32,  8,  8,  1,  0,  2, 96,  0,  0,128,  9,128, 32, 70,  8,  0, 88, 32, 11,  1,  0, 64,128, 16, 16,  0,  0,  0,  0, 16,116,116,116,  0,  0,  0,  0, 24, 27, 27, 27,136,  9,130, 32, 22, 64,  0, 24,  2, 67, 96,  0, 32,144,  5,  0,  4, 22, 64,  0,  0,  0,136, 96,  1,128,192,  0,  0,  0,169,254, | ||||
| 224,  1, 37,128,  1, 32,  0,  0, 64,  2,104,  0,  2,232,  1, 13,128,  7,240, 64, 30,192,  3,120, 32, 11,232,  1, 45,  0,  0,  0,  0, 52, 80,116,116,  4,  0,  0,  0, 10,  2, 27, 27,226,  1, 60,128,  7,178,  0,  6,192,  3,112,  0,  7,224,129, 60,128,  7,178,  0,  0,192,  3,120, 32,  3,  2,  1,  0,  0,226,250, | ||||
| 132,  0, 16,  0,  0,  0, 64,  0,  0,  1,  0,  0,  0,128,  1,  0,  0,  6,  0,  0, 24,  0,131,  0, 64,  8,128,  0, 17,  0,  0,  0,  0,116,116,116,116,  8,  0,  0,  0, 27, 27, 27, 27,132,  1, 48,  0,  4, 64,  0, 24, 16,  3,104,  0,  8,  0, 64, 16,  0,  4, 64,  0,  0,  0,  0, 65,  0,  0,  2,  1,  0,  0, 58,252, | ||||
| 128, 73, 16,128, 16,194,  0,  0,  0,  1,  0,  0, 76,132,  1,  4,137,  6,192,132, 24,  0,  3, 96,  1, 12,  2,  9, 32,  0,  0,  0,  0, 20,116,116,116,  4,  0,  0,  0,  2, 27, 27, 27,130,  1, 52, 18,131,128,  0, 24, 65,  3,104,  0, 32,  4,  9, 32, 17,131,128,  0,  0,  0, 35, 48,  8,128,128,  0,  0,  0,164,255, | ||||
| 176,  1, 20,  1, 38,208,  2, 26, 64, 17,104, 64,140,129,  1, 48,  1, 16,  0,  4, 10,  1,  3,  9, 12,141,162, 33, 20,  0,  0,  0,  0,112,  4,116,116, 16,  0,  0,  0, 10,  8, 27, 27,168, 72, 52,128,198,208,  4,  2, 64,  0,  8,  0,  0,160,  1, 36,145,198, 80,  4,  0, 64,  0,104, 12, 13,  0, 32,  4,  0,164,251, | ||||
| 128,  1,  0, 16,  0,  2, 64, 24,  0,  0,  1,  0, 12,128, 65,  0, 16,  0,  4, 64, 24, 16,  3,  0,  0, 12,128,  1, 32,  8,  0,  0,  0,112,116,116,116,  0,  0,  0,  0, 11, 27, 27, 27,  0,  0, 48,  0,  6,192, 32,  0,  0,  0, 96,  0,  0,128,  1, 48,  0,  6,128, 64,  0,  0,  0, 96,  0, 12,  0,  0,  0,  0,152,251, | ||||
|   0,  0, 48,144,  7,240,  0,  0,  4,  3, 24,  0, 15,224,  1, 60,136,  1, 48,  0,  0,192,  0,  0,  0, 15,  0,  0, 16,  0,  0,  0,  0, 80,116,116,116, 16,  0,  0,  0, 10, 27, 27, 27,232, 64, 60, 16,  2,  0, 32,  0,200,  0, 24,  0,  0,  0,  0, 48, 16,  2,112,  0,  0,192,  0, 32,  0,  3, 96,  1, 12,  0,232,255, | ||||
|  12, 32, 32,129,  6, 24, 40,  0,  0, 18,106, 20, 65,164,  1,180,128,  0, 16,  0, 24, 66,  0, 64, 64, 13,129, 73, 32,128,  2,  0,  0,112,116,116,116, 84,  1,  0,  0,  8, 27, 27, 27,170,  8, 52,  0, 22,194,  0, 64, 64, 35,  9, 10,  0,  0,  0,176,  0, 22,146,  0,  0, 64,  0, 96, 33,  1,160,  0,132, 16, 35,250, | ||||
|   4,  0, 32,  0,  0,  8,  4,  0,  0,  2, 16, 65, 32,  8,  4,  0, 65, 22,196,  4, 88,  0, 35, 96, 20, 12,128,  5, 16,  0,  0,  0,  0, 80,116,116,116,  0,  0,  0,  0,  8, 27, 27, 27,  0,  8,176, 32, 66,200,130, 24,  2, 16, 98, 18,  0,  0, 68, 48, 16, 18, 64,  0,  0,  0, 19, 32, 65, 64,192,  0,  0,  2,137,251, | ||||
| 224,129, 36,128,  7,176,128, 30, 72,  2, 96,  0,  2, 96,128, 60,128,  7,240,128, 30,196,131,120,  0,  3,232,129, 44,  0,  4,  0,  0, 80,116,116,116,  0,  2,  0,  0,  9, 27, 27, 27, 96,  0, 61,128,  7,240,  0,  6,192,  3,112,  0,  0, 96,  0, 28,128,  7,180,  0,  0,192,  3,122,  0,  3,  2,  1, 60, 32,162,250, | ||||
|   4,  0, 17,  0,  0,130,  0,  0,  0,  1,  0, 32,  0,128,  1,  0,  0,  6,192,  0, 24, 16,131, 96,  0,  4,  4,  1, 16,  0,  0,  0,  0,116,116,116,116,  0,  0,  0,  0, 27, 27, 27, 27,  0,  0,  0,  0,  2,128,  0, 24,  0,  3, 97, 64,  0,  0,  0, 48,  0,  2, 64,  0,  0,  0,  3, 32,  0,  0,  0,  1,  0, 16,178,252, | ||||
| 128,  9, 16,128,  0,192, 34, 24, 17,  1,104,  1, 44,132, 69,  4,  9,  6,192,  0,136,  0,  3, 96, 18, 40,192, 32, 32,  0,  3,  0,  0,  4,116,116,116,128,  1,  0,  0, 10, 27, 27, 27,  0, 68, 48, 64,  4, 97, 16, 24,  8, 11, 96,  2,  0,  0, 72,  8, 33,  4,129,  0,  0,  0,  3, 64, 18,  1,130,  0,  0,  2,148,248, | ||||
|  32,  9, 20,134, 64, 16,  0,  0, 97, 97,  8,  0,141,  0, 16, 48,  1, 16,  0,  2, 10,  1,  3,  1,  1, 13,160, 49, 36, 34,  0,  0,  0, 48,116,116,116,  0,  0,  0,  0, 11, 27, 27, 27,  0,136, 52,128,  2,210, 24,  0, 68,  0,  8,  0, 13,164,  1,180,144, 66,208, 32,  2, 96,  0, 40, 33, 65,  2, 32,  4,  6, 52,250, | ||||
| 128,128,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  4,  0,  1, 16,  0,  4,128, 24, 16,  3,  0, 64, 12,128,  1, 48,  0,  3,  0,  0, 16,112,116,116,138,  1,  0,  0, 11,  0, 27, 27,  0,  0, 48,  0,  4,192,  0,  0,  0,  0, 96,  0,  0,128,  1, 48,  0,  4,196,  0,  8,  0,  0, 64,  0,  0,  0,  0, 16,  0, 80,249, | ||||
|   0,  1, 48,128,  1, 50,  0,  6,  0,  3, 88,  0, 15, 98,  0, 60,136,  1, 48,  0,  0,192,  0, 24,  0, 15,128,  0, 48,  0,  0,  0,  0, 48,116,116,116,  0,  0,  0,  0,  8, 27, 27, 27, 96,  0, 60,128,  3, 64,128,  6,192,  0, 24,  0, 15,228,  1, 16,128,  3,  0,  0,  6,196,  0, 56,  0,  0, 96,  1, 44,  0,144,249, | ||||
| 136,  0, 32,160, 64, 16,  0,  2,  0, 18, 41,  0,129, 32,  0, 52,128,  0, 16,  0, 24, 66,  0,  8,  0, 13,129,133, 48, 33,  1,  0,  0, 48,116,116,116,130,  0,  0,  0,  9,  1, 27, 27, 33,  0, 52,192,  4,192,  2,  2, 64, 11, 10, 10,  1,160,  1, 48,161,  4,192,  8, 19, 64,  0, 72,  0,  0,162,  0,  4, 65,251,252, | ||||
|   0,  1, 32,  0,  0,  0,  2,152, 32,  2, 48,  0, 64,128,  5,  0, 33, 70,196,128, 24,  5,147, 96,130,  0,128, 64, 48,  4,  2,  0,  0, 16, 20,116,116,  8,  1,  0,  0,  9, 10, 27, 27,132,  5, 48, 18,  2, 64, 72, 88, 32, 32, 97, 17,  0,  1,  4, 16,  2,  2,192,  2,  8,  2, 35, 33,  0,  0,208,  0,128, 16,225,249, | ||||
| 224,  0, 36,128,  1, 52, 32, 30, 64,  2, 72,  0, 11,232,  1, 61,128,  7,240,  0, 30,192,  3,120,  0, 15,232,  1, 28,  0,  1,  0,  0,116, 16,116,116,128,  0,  0,  0, 27,  8, 27, 27,224,  1, 13,128,  5,240,  0, 30,192,  3,112,  0, 15, 64,  0, 61,144,  5,240, 64,  6,192,  3, 88,  0, 11,  0,  1, 28,  0, 50,251, | ||||
|   4,  1, 16,  0,  0,192,  0, 24,  0,  1, 64,  0,  8,128,  1,  0,  0,  6,192,  0, 24,  0,131, 96,  0, 12,132,  0, 48,  0,  4,  0,  0,116, 32,116,116,  0,  2,  0,  0, 27, 11, 27, 27,128,  1, 48, 32,  2, 64,  0, 24,  0,  3, 97,  0,  4,  0,  0, 16,  0,  2,128,  0, 16,  4,  3, 32,  0,  0,  0,  1, 32,  0,186,248, | ||||
| 128,  0, 16,  0, 36,194, 66, 24,  0,  1, 32,  0, 12,130,  1,  4,  9,  6,192,  0, 72, 16,  3, 96,  0, 44,  0, 65,  8,  4,  0,  0,  0,116,116,116,116,  0,  0,  0,  0, 27, 27, 27, 27,128,  1,176,128,  4,128, 34, 24,  0, 11, 96,128, 72,  4,  0,160,136,  4, 96, 16,128, 64,  3, 64,  0, 64,130,  0,  0, 16, 52,255, | ||||
| 176,137,148,160,  0, 16,  0, 10, 65,  9, 10,  0,  1,128,  1, 48,129, 32, 20, 24,128,  0,  3,105, 12,  1, 32,  0, 52,  0,  4,  0,  0, 48,116,116,116,  0,  2,  0,  0, 10, 27, 27, 27,  0,136,  4,128,  2, 88,  8, 26, 64,  0,  8,  0,  1,160, 73, 52,130, 66,208, 24,  2, 64,  0, 40, 64, 12,  0, 33,  0,  0,156,250, | ||||
|   0,  0,  0,  0,  0,  0,  0, 24, 16,  0,  0,  0,  0,128, 65,  0, 16,  0,  0,  0,  0,  8,  3, 32,  0,  0,  0,  0, 48, 32,  5,  0,  0, 16, 20,116,116,132,  2,  0,  0, 10,  3, 27, 27,  6,  0, 48,  0,  4,128,128, 24,  0,  0, 96,  0,  0,128,  1, 48, 32,  4,196,  0,  0,  0,  0, 64,  0, 12,  4,  0,  0,  0, 16,253, | ||||
| 128, 65, 48,144,  1, 48,  0,  0,  0,  3, 90,  0,  3,224,  1, 60,136,  1,  0,  0,  6,192,  0, 32,  0,  3,  0,  0, 16,  0,  0,  0,  0, 52, 52,116,116, 16,  0,  0,  0, 11, 16, 27, 27, 96,  0, 60,144,  3,112,  0, 24,200,  0, 24,  0,  0,128, 65, 16,128,  3, 64,  0,  6,192,  0, 56,  0,  3, 96, 65,  0,  0,160,252, | ||||
|  12,  4, 32,130,  0, 16,  0, 24,  2, 34, 40,  0,  1,160,  1, 52,129, 64,132,128,  2, 64,  0,  0, 64,  1,  0,  0, 48,  4,  0,  0,  0,116,116,116,116,  0,  0,  0,  0, 27, 27, 27, 27, 32,  0, 52,128,  4,144,  0, 88, 64,  0,  8, 10,  0,128,  5, 32,132,  4,192, 66,  2, 64,  0, 72,  0,  1, 32,  8,  0,  0,219,255, | ||||
| 132, 17, 32,  0,  6,192,130, 24,  1,  2, 48,  0,128,  0,  4,  0,  0, 32,194, 32, 24,  9,131, 64,  1,140,128,  5,144, 64,  0,  0,  0, 16, 52,116,116,  0,  0,  0,  0,  8,  0, 27, 27,131, 17,177, 32,  2, 64,  0,  0,  2, 19,100, 20, 44,  4, 65, 16,  0,  2, 64,  8, 24,  0,  3, 34,  0, 76,192,  0,  0,  0,205,253, | ||||
| 224,  1, 37,128,  7,244,  0, 30, 68,  2, 72,  0,  3, 98,128, 60,160,  1,240,  0, 30,192,  3, 56, 32, 15,232, 65, 60,  0,  0,  0,  0, 36,116,116,116,  0,  0,  0,  0, 11, 27, 27, 27,224,  1, 60,128,  5,176,  0,  6,192,  3,112,  0, 15, 96,  0, 44,160,  5,240, 64, 30,200,  3, 88,  0, 15,  8,  1,  0,  0,202,248, | ||||
|   4,  1, 16,  0,  6,192,  0, 24,  4,  1, 64,  0, 12,128, 65,  0,  0,  0,192, 32, 24,  0,131,  0,  0, 12,128,  1, 16, 16,  0,  0,  0,116,116,116,116,  0,  0,  0,  0, 27, 27, 27, 27,128,  1, 48,  0,  2, 64,  0,  0,  0,  3, 96,  0,  0,128,  1, 16, 16,  2, 64,  0,  0,  0,  3, 32,  0, 12,132,  0,  0,  0,170,250, | ||||
| 128, 65, 16,  0,  6,192,  0, 72,  0,  1, 32,  0, 12,132, 17,  4,137,164,192,  8, 24,  0,  3,  0, 17, 13,128,  1, 32,  1,  0,  0,  0,116,116,116,116,  0,  0,  0,  0, 27, 27, 27, 27,128,  1, 48, 64,  4,128,  0, 24, 97,  3, 96, 68,  0, 16,129,176,  0,  4,128, 34,  0,  2,  3, 64,  0, 12,  0,  1,  0,  0,168,249, | ||||
| 176,137, 16,194,  0,208,  0, 10,  1,  9, 72,  0,  1,  0, 16, 48,  1, 64,208, 24, 26,  0,  3,  1,132,  1,160,  4,  6,  0,  0,  0,  0, 48, 84,116,116,  0,  0,  0,  0,  0,  3, 27, 27, 32, 72, 52,128,  2,210,  0, 26, 64,163,  8,  0, 13, 32,  0,  4,128,  2, 82, 16,  2, 67,  0, 40, 68, 64,  4, 32,  4,  0,208,255, | ||||
|   0,  0,  0,  0,  0,192,  0, 24, 16,  0,  1,  0,  0,  0,  0,  1, 16,  0, 68,  0, 24,  0,  3,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0, 32, 52,116,116,  0,  0,  0,  0, 10,  8, 27, 27,  8,  1,  0,  0,  4,192, 32, 24,  0,  3, 96,  0, 12,  0,  0,  0,  0,  4,128,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0, 24,255, | ||||
| 128, 65, 16,128,  7,192,  0,  0,  0,  1, 88,  0,  3, 96,  0, 60,128,  7, 64,  0,  0,196,  0, 24,  0,  3,224,  0,  0,  0,  0,  0,  0, 96, 52,116,116,  6,  0,  0,  0,  3,  1, 27, 27, 97, 64, 60,128,  3,192, 64, 24,  0,  3, 24,  0,  0, 96,  0,  1,128,  3,112,  0,  6,  0,131, 56,  0,  3,224,  1, 12,  0, 96,248, | ||||
|  12,  4,  0,194,  6,192,  0, 24,  2, 32, 12, 18,  1, 32,  0,180,136,  6,  0,128,  0, 65,  0,  8,  0,  1, 32,  1,  0,  0,  4,  0,  0,  4, 20,116,116, 16,  2,  0,  0, 16, 11, 27, 27,168,  9, 52,192,  4,  0,  8, 24,  0,  8,  9, 10,  0, 32,  4,  0,128,  4,144,  0,  2,  9, 35, 72,  0,  1,160,  1,  4,  0,170,253, | ||||
| 132, 17,  0,  0,  6,  0, 40, 88,  0,  0, 48,  0,  0,128, 17,  2, 66,  6,129,132,  0,  0, 11, 96, 33, 44,130,  0,176,  8,  2,  0,  0, 68, 16,116,116, 16,  1,  0,  0,  0, 16, 27, 27,  8,  8, 48, 18,  2, 64,  0,  0, 33, 97, 96, 16, 64,128,145, 48,  9,  2, 64,  0,  0,  0,136, 32,  0,140,129, 65, 48, 16, 48,250, | ||||
| 224,  1, 33,128,  7, 50,  0, 30,  4,  2, 72,  0,  3,226,  1, 60,128,  7,112,  0, 30,200,131,120,  0, 15, 96,  1, 60,  0,  5,  0,  0,  4,116,116,116,144,  2,  0,  0,  0,  2, 27, 27,104,  0, 61,128,  5,176,128,  6,192,  2,112,  0,  3,100,  0, 60,128,  5,176,  0, 22,200,  3, 88,  0, 15,192,  1, 60,  0,200,252, | ||||
| 132,  0,  0,  0,  6,  0,  0, 24,  0,  0, 32,  0, 12,128,  1,  0,  0,  0,  0, 32,  0, 16,131, 96,  0, 12,128,  0, 48,128,  4,  0,  0,116,116,116,116, 88,  2,  0,  0, 27, 27, 27, 27, 12,  0, 48, 32,  2,192, 64,  0,  0,  3, 96, 64,  0,  0,  0, 49,  0,  2, 64,  0,  8,  8,  0, 32,  0, 12,  0, 64, 48,  0,217,251, | ||||
| 128, 65, 32,  0,  6,  4,  0,136,  4,  2, 64,  0, 12,132,  1,  4,  9, 64,  8,  2, 88,  0,  3, 96,  0, 12,  0,  1, 48,  0,  4,  0,  0,116,116,116,116,  8,  2,  0,  0, 27, 27, 27, 27,  4, 68,176,  0,  4,192,  2,  0,  0, 19, 98,  1, 64, 40,  0, 48,  0,  4,128,  0,  0,  1,  3, 65,  0, 12,  0,  0, 48,  0,184,253, | ||||
|   0,  0,  0,  0,  4,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0, 32,  0,  4,  0,  0, 32, 20,116,116,  0,  2,  0,  0,  3,  9, 27, 27,  0,  0,  0,  0,  4,128,  0,  0,  0,  2,  0, 68,  0,  0,  1,  0,  0,  4,  0,  0, 16,  0,  2, 64,  0,  0,  0,  0,  0,  0,  4,254, | ||||
|  32,  0,  4,  0,  0,  0,  0,  2, 64,  0,  0,  0,  1, 32,  0,  0,  0,  0, 16,  0,  2,  0,  0,  8,  0,  0, 32,  0,  0,  0,  0,  0,  0, 32, 20,116,116,  2,  0,  0,  0,  2,  8, 27, 27, 33,  0,  0,128,  0,  0,  0,  2,  0,  0,  0,  0,  1,  0,  0,  0,128,  0, 16,  0,  2,  0,  0,  8,  0,  0, 32,  0,  4,  0, 32,251, | ||||
|   0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0, 96, 52,116,116,  0,  0,  0,  0,  2,  9, 27, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,249, | ||||
|  40,  0,  4,128,  0, 16,  2,  2, 64,  0,  8,  0,  1, 32,  0,  4,128,  0, 18,  0,  2, 64,  0,  8,  0, 65, 32,  0,  4,  0,  0,  0,  0, 32,116, 68,116,  0,  0,  0,  0, 18,  8,  1, 27, 32,  0,  4,162,  0, 16,  0,  2, 64,  0,  8,130,  1, 32,  0,  4,193,  0, 16,  0,  2, 64,  0,  8,  0, 65, 34,  0,  4,  0,211,249, | ||||
|   0,  0,  0,  0,  0,  0,  2,  1,  0,  0,  0,132, 32, 16,  0,  0,  0,  0,  0,  0,  0,  0, 32,  4,  0, 32,  8,  0,  0,  0,  0,  0,  0,116, 84,116, 52,  0,  0,  0,  0, 27, 10, 27, 11,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,221,250, | ||||
|  32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  4,116,116, 16,  0,  0,  0,  0,  1,  3, 27,  8,  0,  0,  1,  0,  0, 16,  0,  0,  0,  0,  0, 16,  0,  0,  0,  1,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,218,255, | ||||
|   4,  0,  0, 32,  0,128,  0,  0,  0,  0,  2,  0,  8,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0, 64,  8,  0,  1,  0,  0,  0,  0,  0,116,116,116, 52,  0,  0,  0,  0, 27, 27, 27, 27,  0,  1,  0, 16,  0,128,  0,  0,  0,  0, 64,  0,  8,  0,  0, 33,  0,  0,128,  0, 16,  0,  0,  2,  0,  8,  0,  1, 32,  0,170,248, | ||||
|  32,  0,  4,128,  0, 18,  0, 66, 72,  0,  8, 33,  1, 32,  0,  4,133, 16, 18, 66, 66, 72,  8,  9,  0,  1, 32,  0,  4,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,132,128,160, 16,  0, 66, 72, 32,  2,  0,  1,  0,  4,  4,128,160, 16,  0,  2, 64,  8,  8, 10,  1,  0,  0,  4,  0,152,249, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  8, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0, 80,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  4,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,136,250, | ||||
|   0,  0,  0, 36,  0,  2, 64,  0,  0, 65,  0,  0,  1,  0,  0,  0, 16,128,  0,  0,  0,  0,  0,  0, 64,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,128,  0,  0, 16,  0,  0,  0,  0,  0, 32,  0, 32,120,248, | ||||
|   0,  0,  0,  0,  0,  8,  0,  0,  0,  0, 64,  0,  0,  0, 64,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  4,  0,  2,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0, 16,128,  1,  0,  0,240,253, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  4,  0,  1,  0,128,128,  0,  0,  2,128,  0,  0,  0,  0,  4,  1,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,252, | ||||
|   8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,181,252, | ||||
|   0,  0, 16,  8,  2,  0, 32,  8,  4,129, 32,  0,  1,  0,  1,  0,  8,  2,  1,  0,  0,  8,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  8,128,  0,  0, 16,  0,128, 64, 64,  0, 68, 64,  0,  0,  2,  2,  0,  2,  0, 65,  0,  0,  4,  0,  0,  0,  0,200,248, | ||||
|   0,  0,  0, 32,  0,  1, 64,  0,  0,  0,  0,  0,  4, 66, 64,  0,  0,  0, 64,  0,  8, 80,  0, 18, 32,  0,  8,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 16,  0,  1, 64,  0,  0,  4,  1,  8, 16,  0,  0,  0, 16,  8,  0,  1, 32,  0,  0,  0,  0,  0,  0, 32, 64,  0,  8,  8,253, | ||||
|   0, 48,  8, 48,  1,  4,192,  4,136,  0, 17,  0,  3,104,  0,  1, 16,193, 18, 32,  2,216, 80, 10, 64,104,  9,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 13,144,  0, 18,  0,  4, 83,  0, 25, 96,  0, 68,128,100, 32,  1,134,153,  4,128,  0,  1,  0,  2, 32,  5,  3, 32,  0,253, | ||||
| 128, 81, 16, 14, 68,129,  0,168,  4,150, 96, 16, 72,130, 32, 32, 40,128, 32,  2, 24, 40,131,144,  8, 60,  1, 48, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0, 48,  9,192,  0,  2, 16,  2, 64,  0, 24,  1,  1, 11,144, 15,  4,129,  0, 40,  4, 33, 66, 16,  4,130,129, 32, 13, 48,254, | ||||
| 128, 64, 16,  8,  0,  1,  0,  8,  8,128, 32, 32,  0,136,  0,  0,  8,  0,  0,  0,  8,  0,129,  0,  0,  1,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  8,  4,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  4,  4,  0,  2,  0,  8, 68,  0,  0,  8,  1,130,  0,  0, 16,105,250, | ||||
|  66,  0,  0, 16,  2, 32,  0,  0,  0,  1,  8,  0,  1,  0,  0,  9,  0,  0,  1,  0,  2,  0,  2,  0, 32,  4,  8, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  1,  0,  8,  4,128,  0, 16,  0,132,  0,  0,  8,  2, 32,  0,  0,  0,  0, 32,  0,  0,  0,  1, 32,136, 72,254, | ||||
|   0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  4,128,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  8,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 40,253, | ||||
|   0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  1,  0,  0,  0,  0,  0,184,253, | ||||
|   0,  0,128, 16,  0,  0,  0,  0,  0,  8,  0,  8,  0,  0, 64,  4,  0,  0,  0,  2,  0, 32, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,128,  0, 64,  0,  0,  0,  0, 16,  0,  0,  1,  0,  0,  0,  2,  8,  0,  0,  0,  0,  0, 24,253, | ||||
| 128,  0,  4,  0,  1,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 32,  4, 16,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,248, | ||||
|   0,  0,  0,  0,  0,  4,  0,  0,128,  0,  1,  1,  0,  0,128,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,168,252, | ||||
|  16,  0,  0,  0, 16,  0,  0,  1, 16,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 32,  0,  0,  4,  0,  2,  0,  0,  8,  0,  0,  0,  0,  1,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0, 20,254, | ||||
|   0,128,  8, 64,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0, 16,  0,  0, 64,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,255, | ||||
|   0,  0,128,  0,  0,  0,128, 16,  0,  8,  0,  0,  0,  4,  4, 16, 48,  4,128,  0, 16,  0,  2,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,116,255, | ||||
|   0,  1,  0,  0,  0,  0,  0,  3,  0,  0,  0,  0,  0, 16,  0,  0,  0,  2, 48,  0,  2,  0,  0,  8,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4, 16,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0, 16,  0, 56,249, | ||||
|   0,  0,  0,  8,  2, 64,  0, 64,  2,  0,  0,  0,  8,  0,  0,  0,  0,  0,  4,  0,  4,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,104,255, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,144,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 10,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0, 64,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0, 56,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,251, | ||||
|   2,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  8,  0,  0,  0,  1,  1,  0,  0,  0,  2,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0, 64,128,  0,250, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,255, | ||||
|   0,  0,  0, 16,  0,  0,  0,  0,  0,128,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  4, 80,255, | ||||
|   0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,112,255, | ||||
|  12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,226,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 32,  0,  0,  0, 16,  0,  0,  1,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  4,  0,  0, 16,  0,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  8,  0,  4,128,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,128,192,251, | ||||
|   0,  0,  4,  0,  8,  0,  1,  0, 72,  0,  0,  0,  0,  1,  0,  0,132,  8,  0, 64,  4,  8,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,136,  0,  4,  8, 80,252, | ||||
|   0,  0,  0,  0,  0,  4,  0,  8, 32,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,129,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,250, | ||||
|   0,  4,  0,  0,  0,  0, 32,  0,  0,  0,  0, 16,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  4, 32,  0,  1,  2,  0,  0,  0,116,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,255, | ||||
| 128,  0, 16,  8,  4,  0, 16,  8,  0,129,  8,  0,  4,  0,  0, 16,  8,  0,  0,  0,  0, 68,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,128, 64, 32,  8,  2,128,128,  0,128,  0,  0,  0,  0,128, 64,  0,  0,  0,  0,  0,  0, 16,  0,  8, 16,  0, 34, 64, 16,136,164,253, | ||||
|  12,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  8, 32,  0,  1, 32,  8, 16,  1,  0,  0,  1,  2,  0,  0, 32,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  1,  0,  0,  0, 64, 32,  8,  4,128, 32, 16,  4,  2,128,  0,  0,  2,  0,  0,  0,  0,  0,  0,  8,  0,  0,  1,  8,  0, 66,255, | ||||
|  64, 40,  8,144,161,  0, 64,  4,128,  0, 17, 16,  2, 32,  3, 12, 48,  0,  4,128,  2,216, 80,  0, 32,129,137,  0,  0, 32,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  2,  0,  8, 96,128,  8, 16,  1, 48,192,  2,144,  0, 10, 64,  1, 72,128, 17,128,  0,  0,  0,  0,  8,128, 16, 96,  0,100,128, 12, 16,224,249, | ||||
|   0, 84,160, 14, 38,129, 16, 64, 70,140,  0, 16,  9,136, 97,160,  4, 34, 64,157,144,  2,145, 32,  2, 68, 64, 34, 80,  0,  0,  0,  0,  0,  4,128, 16,  0,  0,  0,  0,  8,  0, 64,  0,128,126,  0, 11,128, 32,  2, 16, 68, 64,192, 13,224,131,  0,  8,  8,196,  0,  0,  8, 21,241, 32, 14,196, 53, 67,128, 84,216,248, | ||||
|   0, 64,  0,  8,  2,  1,  0,  0,  4,128,  0, 64,  0, 32, 64,  0,  0,  2, 64,  0,  0,  0,129, 32,  0,  4,  0,  0, 16,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64,  0,  8,  0,  0,  0,  0, 16,  0,  0,  0,  0,129,  0,  0, 32,  0,  0,  0,  8, 16,129, 32,  0,  4,  0, 64,  0,  0, 96,248, | ||||
|   0,  0,  8, 32,  4, 64, 32,  0,  2,  0,  0,  0,  2,  0,  1,  5,  4,  0,  0,128,  8, 16,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0, 64, 32,  0,  0,  0,  0,  4,  0, 32,  0,  0,128,  0,  0,  0,  1,  0,  4,  0,128, 32, 16,  0,  2,  0,  0,  0,  2,  1,  0,  0,  0, 64,  0, 16,  0,130,  0,  0, 16,208,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  1,  4, 32,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0, 64,248, | ||||
|  34,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  1, 32,  0,  0,  1,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0, 16, 68,128,  0,  0,  8,  0,  0,  0,  0, 32,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,128,160,252, | ||||
|  32,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0,  0, 32,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 64,  0,  0,  2,  0,  0,  0, 16,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,248, | ||||
|  16,  0,  0, 64,  0, 32,  0,  0,  0,  0,  5, 64,  0,  0,  0,  0,  0,128,  8,  0,  0,  0,  0,  2,128,  2,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,128,  0,  0,  0, 32,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0, 28,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  8,  8,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,138,252, | ||||
|   0,  0,  0,  0,  8,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,128,  0,  0,  1,  0,  0,  4,  0,128,  0,128,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  1, 16, 64,  0, 64, 16,  0,  0,  0,  0,128,  0,  0,  0,  2, 32,  0,  0,  0,224,252, | ||||
|   0,  0, 16,  0,  0,  8,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,252, | ||||
|   0,  0,  0,  0,  0,  2, 64,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0, 72,255, | ||||
|   0,  0, 32,  0,  0,  0, 16,  0,  0,  2,  0,  0, 16,  0,  0,  2,  0,  0,  0, 32,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  1,  0,  2,  0, 32,  0,  0,  0,  0,  0,  2,  0, 64,  0,  0,  0, 32,  0, 66,  0,168,254, | ||||
|   0,  0,  0,  0,  0,128,  0,  0,  0, 68,  0,  0,  0,  0,  0,  1,  8, 16,  0, 16,  0,  0,  0,  0,  0,  0,130,  0,  0,  0,128,  0,  0,  0,  2,  0,  0,  0, 64,  0,  0,  0,  1,  0,  0,128,  4,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  8,  0,  2,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  4,  0,  0,  0,  0, 72,255, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,128,  0, 16,  0, 32,  0,  8,  0, 16,  0,  0,  0,  0,128,  0, 16,  0,  0,  0,128,  8,  0,  0,  0,  0,  0,  0,176,255, | ||||
|   0,  2, 48,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  1, 32,  0,  0,128,  0,  0, 16,  0,  0,  0, 16,  0,  0, 64,  0, 16,  0,  0,  8,  0,  0, 32,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,128,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,253, | ||||
|  32,  0,  0,  0, 64,196,  2, 26, 64,  0,  0,  4,  0, 32,  0,  4,128,  0, 16,  0, 10, 16,  0,  8,  0,  0,160,  1,  4,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 16,  0,210,  0,  0,  0, 16,  0,  4,  5, 16,  0, 20,  2, 16,  0,  0, 10,  2,  8,  0,  4,  1,160,  8,  0, 18,144,249, | ||||
| 128,128,  0,  0,  0,192, 64, 24,  0,  0, 96, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,128,  1,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,128,  0,  0,  0,  2, 64,  8,  0,  0, 32, 32,  0,  2,  0,  0,  0,128,  0, 64,  0,  0,  0,  1,  0, 88,250, | ||||
|   0,128,  0,128,  1,242,  0, 24,  0,  3,121, 32,  0,  0,  0, 12,  0,  6,192,  0, 22,192,  0, 24,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,129, 60,136,  1,240, 64,  0,192,  3,122,  0,  7,  0,  0, 28,128,  1,  0,  0, 24,200,  0, 24,  0,  3,128, 65, 12,  0,176,249, | ||||
|   0,  0,  0,128, 70,208,  0, 24,  0, 19,104,  0,  0,  0,  0,  4,  0, 22,  2, 64, 26, 66,  0,  8,  0,  0,  0, 80, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  4,132,128,  0, 16,  0,  0, 64, 32,104,  0,  9,  0,  0, 36,128,  0,  0,  0,144, 64,  0,  8,  0,  1,  0,  1,  4,  0,120,249, | ||||
|   0,  4,  0,  0,128,  0,  0, 64, 32, 16, 96, 16,  0,  0,  4, 48, 18, 32,192, 72,  0,  9,  3, 98,  0,  0,  0, 80, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  9,177,  0, 64,  0, 16,  0,  0,139, 96,  0,  4,  0,  0, 16,  0,  6,  1,  0, 16,  0,  3, 96, 20, 76,  2,  1,176, 16, 56,253, | ||||
|  96,  0,  1,128,  7, 32, 32,  6,192,  3,113,  0,  0, 96,  0, 61,128,  7,242,  0, 28,192,  3,120, 32,  0,224,  1, 52,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 60,144,  1,242,  0,  0,192,  3,112, 16, 11,  0,  0, 44,  0,  7,  0,  0, 18,128,  3,113,  0, 15, 32,  1, 60,  0,232,252, | ||||
|   0,  0,  0,  0,  6,  4,  0,  0,  0,128, 96,  0,  0,128,129, 48,  0,  0,  0, 32, 24,  0,  3, 96,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,  1,  0,  0,  6, 65,  0,  0,  0,  0,  0,  0,  4,  0,  0, 16,  0,  6,  0,  0,  8,  0,  3, 96,  0, 12,128,  0, 48,  0, 72,252, | ||||
|   0, 40,  0,128, 70,  0,  0,  0,  0, 11,  0, 18,  0,128, 17, 52,  0, 70,193,  2,128,  4,  3, 96,  0,  0,128,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,133, 48, 16, 70,128,  0,  1, 64,  3,  1, 66,  9,  0,  0, 32,  0,  6,  0,  0,  8,  0,  3, 96,  0, 13,128,  0, 48,  0,192,250, | ||||
| 160,  1,  0,128,  0,  0,  2,  0, 72,  0,  8, 64,128, 34,  0,  4,128,  0,208, 34,  2, 16,  0,104,  0, 33, 34, 80,  4,  8,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  1, 80,  0, 16, 64,212,  2,  2,  0, 16,  8,  0,128, 40,  0, 20,  2, 16,  0,  0, 10, 33,  8,  0,  4,  0,160, 16, 54,  0, 68,255, | ||||
| 128,129,  0,  0,  0,  0, 64, 26,  0,  0,  0,  0,  0,  0,  0, 48,  0,  6,192,  0,  0,  0,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0, 64,  0,  0,  0,  2,  0,  0,  0,  0, 32, 16,  0,  2,  0,  0,  0,128,  0, 64,  0,  0,  0, 48,  0,152,251, | ||||
| 128,  1,  0,  0,  6, 48,  0, 30,  0,  3, 24,  0, 15, 96,  0, 12,  0,  6, 68,  0,  8,  0,  0,120,  0,  0,  8,  1, 44,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,100,  0, 60,136,  7,240,  0,  0,192,  3, 24,  0, 15,100, 64, 28,128,  1,  0,  0, 24,192,  0, 24,  0,  0,128, 65, 48,  0, 24,249, | ||||
|   8, 81,  0,  0, 16, 18,  0,  2,  4, 16, 10,132, 13, 32,  0, 52,  8, 32,192,128,  0,  2,  0,104,  0, 72,128,132, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,128, 16, 18, 68,  0, 64, 32,105, 10, 33,160,  9, 36,128,  0,  0,  0, 16, 66,  0,  8,  0,  0,  0,  9, 48,  0, 59,249, | ||||
| 128, 17,  0,  0,198,192,  2, 25,  0, 67,  0,  2, 76,128,  5, 50,  8, 32,  0,  2,  0,  0,  0, 96,  0,128,  2, 64,  8, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1, 48,  0, 22,  2, 16, 24, 32,163,  0, 17, 44, 16,  0, 16,  0, 22,  1,  0, 16,  0, 19, 97, 16,  0,  0,  1,  0, 66, 57,248, | ||||
| 224,129,  0,128,  1,224,  0,  0,192,  3, 24, 64, 15,226,  1,  8,128,  1, 52, 64, 22,  4,  0,112,  0,  3, 96,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,129, 60,  8,  1,240,  0, 30,192,  3,120,  0,  2,224,  1, 45,  0,  7,  0,  0, 18,128,  3,112,  0,  0, 32,  1, 12,  0,114,254, | ||||
| 132,  1,  0,  0,  6,192,  0,  0,  0,  0,  0, 64,  0,128,  1, 48,  0,  6, 66,  0,  0,  4,  0, 96,  0,  8,128,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1,  0,  0,  6, 64,  0, 24,  0,  0, 96, 32, 12,136,  1, 16,  0,  6,  0,  0,  8,  0,  3, 96,  0,  0,128,  0,  0,  0, 82,248, | ||||
| 128,  9,  1,  0,  6,200,  0,152,  4, 35, 65,  4,  0,130,  1,176,  8, 22,192, 16,128,  0,  0,104,  0, 32,  8, 80, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1, 48, 16, 22,132,  0, 25, 64,  3, 97,  4, 76,128, 17, 33,  0,  6,  0,  0,  8,  0,  3, 96,  0,  0,128,  0,  0,  0,220,254, | ||||
|  48,  0,  0,128,  0, 16,  0, 66, 72, 35, 97,  4,140,130,  1, 52,128,  0,192, 68,130, 32,  0,  8,  0,  1,  8,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80,  0, 34, 64,  4,136, 90,  8, 16,  0, 66,128, 40,  0, 20, 32, 16,  0,  0, 10, 64,  3,  0,  4,  0,164,  0,  4,  0,248,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  3, 96, 16,  0,128,129,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,  0,  0,  2,  0,  0,  0,  0, 32,  0,  0,  2,  0,  0, 16,  3,  0, 64,  0,  0,  0,  1,  0, 24,253, | ||||
|   0,  0,  0,  0,  0,  0,  0,  8,  0,  0, 24,  0, 15,224,  1, 12,  0,  6,240,  0, 14,  0,  0, 24,  0,  4,  4,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 12,128,  1, 48,  0, 30,208,  3, 26,  0,  3,  0,  0, 28,128,  1,  0,  0, 24,  8,  3, 24,  0, 15,136,129, 12,  0, 56,251, | ||||
|  12,  0,  0,  0,  0,  0, 16, 16,  0,144,  8,  0, 33,162,  1, 52,  8,128, 16,136, 66,  4,  0,  8,  0,140,  0,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,128,  0, 16,  0,154, 64, 16,  8,  0,  1,  0,  0, 36,128,  0,  0,  0, 80,  0,  3,  8,  0,129,  0,  9,  4,  0, 82,251, | ||||
|   4,  8,  0,  0, 22,  0, 66, 16,  0,  0, 96,  0,128,  0,128,  0,  8,  6,  8,  0, 88, 16,  0, 96,  0, 12,  2,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1,  1, 17, 16,196,132,  8, 17,  3, 96, 64, 64, 16,136, 16,  0, 70,  1,  0, 16,  0,  0, 96, 17, 44,  2,  1, 48,  2, 64,250, | ||||
|  96,128,  0,128,  7, 52,  0, 10,192,  3, 97,  0, 14, 66,  0, 56,128,  7,240,  0, 24,  0,  0,120, 16,  3,  0,  0, 52,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0,194,  1,  8,  0,  1,240,  0, 22,192,131,112,  0,  2, 96,  0, 44,  0,  7,  0,  0, 18,192,  0,114,  0, 15, 32,  1, 60, 32, 88,250, | ||||
| 132,  1,  0,  0,  0,196,  0,  8,  0,  1,  2,  0, 12,  0,  0, 48,  0,  0,  0,  0, 24,  0,  0, 96,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,132,  1, 48, 16,  6,192,  0,  8, 16,  0, 96,  0, 12,132,  1, 16,  0,  6,  0,  0,  8,  0,  0, 96,  0,  0,128,  0, 48,  0, 73,253, | ||||
| 128,133,  0,  0, 32,  0,136, 16,  0, 18,  0,  0,128, 34,  0,176,  8, 70,194,  0, 24,  0,  0, 96,  0, 44,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,136,  1,176,  0, 22,194,  0, 90, 64,  3, 97,  0, 44,128,137, 32,  0,  6,  0,  0,  8,  0,  0, 96,  0, 44,144,  0, 52,  0,160,249, | ||||
| 160,  1,  0,128,  0,  0,  2,  2, 80, 35, 40,  1,140, 34,  0,  4,128,  0,208,  0,130,  0,  0,  8,  0,  1,128,137,132,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0, 80,  0, 34, 64,148,  4, 88,  0, 16,  0, 66,  1, 32,  0, 20, 32, 16,144, 36, 10,  0,  8,  0,  4,  1,160,  0,  0, 18,116,251, | ||||
| 128,  1,  0,  0,  0,  0, 64,  0,  0,  3, 98, 16, 12,  0,  0, 48,  0,  0,192,  0,  0, 16,  0,  0,  0, 12,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 64, 24,  4,  0,  2,  0,  0,  0,  0, 32,  0,  6,  2,  0,  0,  8,128, 96, 64,  0,  0,128,  0,  0,152,250, | ||||
| 128,129,  0,  0,  0, 50,  0,  8,  0,  3, 88, 32, 15,128,  1,  0,  0,  6,240,  0,  8,  0,  0,  0, 64, 12,226,  1, 17,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,104,  0, 12,128,  1,  0, 64,  6,200,  3, 24,  0,  3, 96, 64, 28,128,  7,  0, 32, 24,196,  0,120,  0,  3,128,  1, 12,  0, 88,254, | ||||
| 136,  1,  0,  0,  0, 16,  0, 16,  0, 19,108,  0, 13,  0, 68,  0,  4,  6,208,  0, 16, 33,  0,  0,  0, 44, 32, 16, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,128,  0,192,  2, 90, 64,  0, 10,  0,  1,160,  9, 36,128, 64,  1,  2, 16, 64,  0,  8, 20,  1,  0,  5,  5,  0,243,252, | ||||
|   0,  4,  0,  0, 32,192,136, 16,  0,  1, 64,  0, 64,  0, 48,128,  0, 64,200,  0,  0,  0,  0,  0,  2,  0,  4,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,130,  1,  0,  6,  0,200,  4,129,  0, 35, 96,  0, 12,  0,  4, 17,  0,  6,  0, 40, 16,  0, 11, 96,  0,140,  0,  1,176,  8,101,250, | ||||
| 224,  1,  1,128,  1,228,  0, 10,192,  3, 41,  0,  3, 98,  0, 60,144,  1,224,  0, 10,  0,  0,120, 64,  3,224,  1, 52,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,197,  1,  9,  0,  1,112,  0, 28,208,131,112, 32, 15,226,  1, 44,  0,  0, 48,  0, 18,128,  3,  1,  0, 15, 36,  1, 60,  0,202,249, | ||||
| 132,  1,  0,  0,  6,192,  0,  8,  0,131, 64,  0,  0,  0,  0, 48,  0,  0,196,  0,  0,  0,  0, 96, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,128,  1, 48, 16,  6,192,  0,  0,  0,  0, 96,  0, 12,128,129, 16,  0,  0,  0, 32,  8,  0,  3,  0,  0, 12,128,  0, 48,  0,210,251, | ||||
| 128, 41,  0,  0, 64,194,  0, 16,  0, 35, 32,  0,  0,  0, 40, 48, 34, 16,208,  0, 16,  0,  0, 96,  1, 32,136,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,134,  1,176,  0, 22,226,136,130, 66,  3, 97,  0, 12,128,  9, 36,  0,  6,  0,  4,  8,  0,  3, 96,  0, 12,128,  0, 48,  0, 80,251, | ||||
|  48,  0,  0,128,  6,208, 68, 66, 64,  3,  0,  4, 69,128,  9, 52,128, 70,212,  0,130, 96,  2, 12,  0, 41,176,  8, 36,  2,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,144,  0,208, 66, 64,  0, 16,  8,  0,128, 40,  0, 20,  4, 16, 16, 40, 10,  1,  8,  0,  4,  0,164,  8,  5,  0,240,253, | ||||
| 128,  1,  0,  0,  6,192,  0,  0,  8,  3,  0, 16,  8,136, 65, 48,  0,  6,192,  0,  0,  0,  1,  0,  0,  8,128, 64,  0, 16,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0, 16,  0,  1,  0,  0,192,  0,  0,  4,  0,  2,  0,  0,  0,  0, 32,  0,  0,  2,  0,  0, 16,128,  0, 64,  0,  0,  0,  0,  0,216,252, | ||||
|  96,  0,  0,  0,  0, 64,  0,  8,  0,  3, 58,  0,  4,224,  1, 60,  0,  0,  0,  0, 22,  0,  1, 96,  0,  4,128, 64, 44,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,225,129, 60,136,  1, 64,  0, 30,200,  3, 24,  0,  3, 96, 64, 28,128,  5,240, 32, 24,196,  0, 88,  0, 15,128,  1,  0,  0, 32,255, | ||||
|  44, 16,  2,  0,  0,  0,130, 16,  0, 35, 72,  0,  8,160,  1, 52,  8, 32,  1,  0, 10,  0, 11,  1, 17, 40,  8,  8,  4,145,  8,  0,  0,  0,  0,  0,  0, 64,  4,  0,  0,  0,  0,  0,  0, 42,  4,  4,129,  0,192,136, 66, 64,  8,106, 10,  1,160,  9, 36,128,  2,208,  4,144, 64,  0, 40,  0, 65,  8, 41,  0,  0,130,249, | ||||
| 132,  1,  0,  0, 32,200,  8, 16,  0, 19, 48, 36,  4,128,  1, 48,  8,  0,  0, 64, 68,  0, 16,  1, 65,  4,136, 80,  8,  9,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,128,  5, 48,  2, 22, 64, 24, 24,  8, 19,  0,  1,128,  1,144, 16,  0,  3,  0, 34, 16,  0, 35, 49,  0, 44,  0,  1,  0, 17,216,249, | ||||
| 224,  1,  1,128,  1,176, 64, 10,192,  3, 65,  0, 11,192,  1, 56,128,  7, 50,  0, 16,208,  0,120,  0,  1, 96,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 61,136,  7,241,  0,  4,192,131,120, 16,  2,224,  1, 44,  0,  4,160,  0, 18,128,  3, 64,  0, 15, 34,  1, 12,  0,  0,251, | ||||
|   4,  0,  0,  0,  0,  0,  0,  8,  0,  3, 66,  0,  4,128,  1, 52,  0,  2,  4,  0,  0,  0,  0,  1, 64,  4,  0,  0,  0,160,  4,  0,  0,  0,  0,  0,  0, 64,  2,  0,  0,  0,  0,  0,  0,162,  1,  0,  0,  6, 64,  0, 24,  0,  0, 96, 64, 12,132,  1, 17,  0,  4, 64, 32,  8,  0,  3, 64,  0,  0,128,  0, 48, 32,177,250, | ||||
|   0,128,  0,  0,  0,196, 72, 16,  0, 16, 32,  0,  8,160,  1,132,  8, 68,  0, 40,  8,  0,  8, 96,  0,  0,  0,132,176,  0,  2,  0,  0,  0,  0,  0,  0,  2,  1,  0,  0,  0,  0,  0,  0,130,129, 48,144,  6,128, 32, 26, 96,  3, 97,  1, 44,128,  1, 32,  0,  2, 64,  8,  8,  0,  3, 32,  0, 44,144,  0,176,  0,  8,255, | ||||
|  32,  4,  0,128,  0,  0,  2,  2, 67, 19,  0,  4,  1,160,  1,  4,128,  0,192, 68,130, 96,  0,  8,  0,129, 32,  0,  0,128,  0,  0,  0,  0,  0,  0,  0, 72,  0,  0,  0,  0,  0,  0,  0,  8,  8,  4,128,  0,  0,136, 74,  0, 16,  0, 66,129, 32,  0, 20,132,  2, 88, 40, 72,  0,  8, 40,128,  0,132, 16, 49,  2, 96,251, | ||||
|   0, 64,  0,  0,  0,  0, 64,  0,  0,  3,  2, 16, 12,128,  1, 48,  0,  6,  0,  0,  0,  0,  0, 96,  0,  0,  2,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,136,  0,  0,  0,  0,  0,  0,  0,  6,  0,  1,  0,  0,  0,  0, 16,  8,  0,  2,  0,  0,  8,  0, 32,  0,  0,  0,  0,  0,  8,128,  0,  0,  0,  0,  0,  0,  8,208,253, | ||||
| 224,  0,  0,  0,  0, 48,  0,  8,  0,  2, 88, 32,  0,128,  1,  0, 16,  0,240,  0, 22,  0,  3,  0, 32, 11,  0, 64,  0,  0,  2,  0,  0,  0,  0,  0,  0,  2,  1,  0,  0,  0,  0,  0,  0,224,129, 12,128,  1, 48,  0,  8,208,  3, 24,  0,  4, 96, 64, 28,  0,  6,112, 32,  8,192,  0, 96,  0, 15,128,  0, 12, 32,200,250, | ||||
|  36, 16,  2,  0,  0, 16,  0, 16,  0, 10, 44,  0,  0,129,  1,  0,  2, 16, 24,  2, 11,  0, 80,  0,  1,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 10,  0,  0,  0,  0,  0,  0,  0, 41,  4,  4,128,  0, 16,  0,144, 64, 16,  9,  0,136,162,  9, 36,  0,  4, 17,  4,  0, 81,  0, 64, 17,129, 16,132,  4,  1,242,250, | ||||
|   4,  0,  0,  0, 32,192,  0, 16,  0, 32, 48,  0, 64,  4,  4,  0, 65, 64,  2,  0,  4, 17, 35,  4, 64, 66,128,  9,  0,  0,  1,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,128,  1,178,  0, 38,192, 68,  0, 17,147, 96,  1, 64,  0, 32, 16,  0,  4,192, 34,  0,  0, 35, 66,  0,140,  2,  0,128,  0,160,255, | ||||
|  96,  0,  1,128,  1,226, 64, 10,192,  0, 65,  0, 15, 96,  0, 61,128,  7,240,  0, 16,192,  0,120,  0, 12, 98, 64,  0,128,  0,  0,  0,  0,  0,  0,  0, 72,  0,  0,  0,  0,  0,  0,  0, 65,  0, 60,136,  7,241,  0,  6,192,  3,112, 32, 15,232,  1, 44,128,  4, 96,  0, 16,128,  3, 72,  0, 15,  0,  1, 60, 32,112,249, | ||||
|   4, 64,  0,  0,  6,192,  0,  8,  0,  1, 80,  0, 12,128,129, 48,  0,  6,  0,  0,  0,  0,  3, 96,  0,  0,  0, 64,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,168,129, 48,  0,  6,192,  0,  0, 16,  0, 96,  0,  0,128,  1, 17,  0,  2, 64, 32,  0,  0,  3, 32,  0,  0,  0,  0, 48,  8,145,253, | ||||
|   0,  8,  0,  0, 38,194,  0, 16,  0,  9, 33,  0, 76,132, 17, 48, 34, 70,196,  0,  8,  0, 35,100, 68, 12,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0, 20,  0,  0,  0,  0,  0,  0,  0,128,  1, 52,128,  6,192,  0, 80, 64,  3, 97,  0, 64,136, 17, 36,  0,  2, 64,  8, 16,  0,  3, 32,  0, 44, 16,  1, 48,  2, 24,250, | ||||
|  48,  0, 37,130,  4,  0,  2,  2, 73,  0,  0,  4,  1,160,  1,  4,128,  0,192, 68,130,  8,  0,  8,  0,  1,128,137,  4,  0,  2,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0, 49,  0,  4,  0, 64,212,  0, 24,  0, 16,  8,  0,128,168,  1, 20,144, 66, 20,  0,128, 16,  8, 40, 68,  0,  4, 16, 48,  4, 92,249, | ||||
|   0,  0, 16, 32,  2,  4, 64,  0,  0,  0,  0, 16,  0,128,  1, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0, 20,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,192,  0,  0, 16,  0,  2,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0, 49,  0, 96,250, | ||||
|  96,  0, 32,  0,  4, 48,  0,  8,  0,  3, 90, 32,  3,128,  1,  0, 32,  0,240, 64,  8,  0,  0, 96,  0, 12,224,129,  0, 16,  2,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0, 96,  0, 12,128,  7,240,  0, 30,200,131, 24,  0,  3,224,  1, 28,  0,  6,240,  0,  6,192,  0, 96,  0, 15, 96,  0, 12,  0, 48,252, | ||||
|  44, 16, 18,  0,  2, 16,  0, 16,  0,  8, 40,  0,  1,128,  1,  0,  1,  0, 16,  2, 16, 33,  0, 96,  0, 12, 32,  4, 48,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 40,  0,  4,128, 16,210,  0,130, 64, 16,104, 10,  1, 32,  4, 37,  0, 20,209,  0,  2, 64,  0, 64, 18,129, 36,  0,  4,  0, 27,254, | ||||
|   4,  0, 32,  0,  4,192,  4, 17,  0, 11, 48,  0, 64,128,  9,  0, 33, 16,  4,  0,  0,  0,  0,  0,132, 12,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,129, 17, 49,  1, 38,194,  0,  0,  0, 11,  0,  2,  0,  4, 64, 16,  0,  4,192, 32,152,  0, 99, 64,  0,140,132,  1,176, 32,173,248, | ||||
|  96,  0, 29,128,  3,224,  0, 10,192,  0, 66,  0,  3,232,129, 60,128,  1,240,  0, 10,  0,  0, 24,  0, 13,224,  1, 12,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,  1, 60,  8,  1,224,  0, 30,192,  3,121, 16,  2, 96,  0, 44,128,  4,224,  0, 28,132,  3, 72,  0, 15,192, 65, 60,  0, 50,250, | ||||
|  16,  0, 32,  0,  4,192,  0,  8,  0,  3, 81,  0, 12,  0,  0, 48,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1, 48,  0,  6,192,  0,  0,  0,  0, 96, 32, 12,132,  1, 16,  0,  2,  0, 32, 24,  0,  3, 32,  0,  0,128,  1, 48, 32,226,249, | ||||
|  32,133, 16,  0,  2,192,  0, 16,  0, 35, 32,  0,140,  4,  8, 50, 34, 70,196,  0, 16,  0,  0,  0,129,  0,128,  1,128, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  1, 52,  0, 38,212,  0, 24, 64,  3, 97,  2, 44,128, 33, 32,  0,  2,  0,  0, 24,  0,  3, 32,  0, 44,144,  1, 48,  0,176,253, | ||||
|  32,  0,  5,  0,  0,  2,  2,136, 72,  9,  0,  4,  1,160,  1,  4,128, 34,193, 68, 18,  1,  0,  8,  0, 65,132,137,  4, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,  1,  4,  0,  0,210,  0,  2, 64,  0,  0, 66, 37, 34,  0,  0,128, 34, 18, 40,128, 16,  8, 40, 34,  1,  0, 16,  0, 18,232,255, | ||||
|   0,  0,  0,  0,  0,  0, 64,  0,  0,130, 32, 16,  0,128,  1,  0,  0,  4,  0,  0,  0,  4,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,192,  0,  0,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,192,  0,  0,  0,128,  0,  0,  0,  0,  0,  1,  0, 88,254, | ||||
|   0,  0,  0,128,  1,240,  0,  8,  0,  1, 24,  0, 12,  0,  0, 60,  0,  2,240,  0, 22,  0,  0,  0,  0,  4,224,  1, 32,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,228,  1, 13,128,  7,241,  0, 24,192,  3,120,  0, 12, 96,  0,  0,  0,  6, 48, 32,  6,192,  0, 96,  0,  3, 96,  0, 12,  0, 72,248, | ||||
|   8, 72,  0,128,  0,208,  0,  0, 33, 18, 41, 18, 12,  0,  0,  4,  8, 36, 18,130,130,  4,  0,  0, 66,  8, 32, 32,128,  8,  4,  0,  0,  0,  0,  0,  0, 16,  2,  0,  0,  0,  0,  0,  0, 40,  4,  4,128, 16,208,  0, 24, 64,  3,104,  0, 72, 40,  0,  0,  0, 36,209,  4,  2, 64,  0, 64, 16,  1, 32,  0,  4,  0,218,251, | ||||
|   0, 16, 48, 17, 70,192,  0,  0,  0, 33, 48,  0, 76,  0,  4, 50,  8, 18,  0,  0,  4,  2,  0,  0,  2, 12,  0,  0,  0,  2,  2,  0,  0,  0,  0,  0,  0, 24,  1,  0,  0,  0,  0,  0,  0, 12, 32, 48, 18,  6,  0, 40, 88,  0,  3, 97,  0,140,144,  9,  0,  0,  4,192, 34,152,  4, 67, 64,  0, 76,128, 17,176,  8, 24,249, | ||||
|  96,128, 60,  0,  7,226, 32, 16,192,130, 64,  0, 15,104,  0, 56,128,  5,241,  0, 24,  0,  0,120, 32, 13,224,  1, 12,  8,  4,  0,  0,  0,  0,  0,  0, 16,  2,  0,  0,  0,  0,  0,  0,104,  0, 60,128,  7, 49,  0, 30,208,  3,112, 64, 11,224,129,  0,128,  4, 32,  0, 28,128,  3, 72,  0, 15,200, 65, 60,  0,248,248, | ||||
|   4,  0,  0,  0,  6,  0, 32,  0,  0,  3, 34,  0,  0,128,  1, 48,  0,  6,  4,  0,  0,  0,  0, 96,  0,  0,  0,  0, 32,128,  6,  0,  0,  0,  0,  0,  0, 88,  3,  0,  0,  0,  0,  0,  0,140,  1, 48,  0,  0,  0,  0,  0,  4,  0,  1, 16,  4,128,  1,  0,  0,  2, 64, 32, 24,  0,  3, 32,  0, 12,128,  1, 48,  0,225,250, | ||||
|   0, 17,  1, 34,  6,  0,  4, 16,  0, 18, 64,  0,128,130, 65,176,  8, 68,192,  0, 24,  0,  0, 96, 68,  0,128,  1,128, 32,  4,  0,  0,  0,  0,  0,  0,  8,  2,  0,  0,  0,  0,  0,  0,132,145, 52,  0,  6,  2,  0,  0,  0, 32,  0,  2,136,136,  1,  0,  0,  2,  0,  8, 24,  0,  3, 32,  0, 12,128,  1, 48,  0,200,249, | ||||
|  16,  0,  0,  0,  4,  0,  0,  0, 17,  0,  0,  0,  0,  0,  1, 32,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0, 48,  0,  0,  0,  0,  0, 16,  0,  2,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,172,251, | ||||
|   0,  0,  4,  0,  0, 16,  0,  2, 64,  0,  8,  0,  1,  0,  0,  0,144,  0, 16,  0,  2, 64,  0,  0,  0,  1, 32,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0, 33,  0,  4,128,  0,  0,  0,  0,  0,  0,  8,  0,  0, 32,  0,  4,128,  0, 16,  0,  2, 64,  0,  8,  0,  0, 32,  0,  4,  0,200,252, | ||||
|   4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,232,251, | ||||
|  40, 16,  5,128,  0, 16,  0,  2, 64,  0,  8,  0,  1, 32,  0,  0,128,  0, 16,132,  2, 64,  0,  8,  0,  1, 32,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,192,  0, 16,130,  2, 64,  0,  8,  0,129, 36,  0,  4,128,  0, 16,  0,  2, 64,  0,  8,  0,129, 40,  0,  4, 34,  3,249, | ||||
|   8,  0,  0,  0, 16,  4,  2,  0,  1,  0,  0,  0,  0,  0, 80,  0,  0,  0,  0,  0, 65,  8,  0,  0, 18, 32,  4,  0,128, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,136,128, 32,192,  0, 32,  0,  3,  0,  0, 36, 32,  8,  0,  0,  0, 64,  2,  2,  0,  9, 32,  4, 36,  0,  0,144,  0,  0,145,248, | ||||
|   0,  0,  4,  0,  0,  0, 32,  0, 80,  0,  0, 64,  0,  8,  0,  0,136,  0, 16,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,202,248, | ||||
|   4,  1,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  8,  0,  0,  0, 32,  0,  0,128,  0,  0,  2,  0,  0,  0,  8,  0,  1, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 32,  0,  4,128,  0,  0, 16,  0, 65,  0,  8,  0,  1,  0,  0,  4,  0,  0, 16,  0,  0, 64,  0,  8,  0,  1, 32,  0, 50,250, | ||||
|  32,  0,  4,  0, 32,  8,  4,  1, 81,  0,  8,  0,  1,  0,132,  0,128,  0,  0,  4,  0, 72,  0,  0, 65,128, 32,  8,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,128, 64,  0,  8,  0,  0, 32,  0,  4,146,  0,  0, 66,  2,  0, 32, 10,  0,  1, 32,  0,  4,  0, 20,253, | ||||
|   0,  1,  0, 16,  4,  0,  0,  0, 32,  0,  4,  0,  8,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  2,144,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,208,250, | ||||
|   0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  2, 16,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,184,255, | ||||
|   0,  4,  0,  0,128,  0,  1,  9,128,  0,  0,  1,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,176,254, | ||||
|   0,  2,  2,  0,  0,  0,  0,  8,  0,  0,  0,128,  4,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,130,  0,  0,  0, 64,  0,  0,  0,  0,  0,  8,  0,  0, 64,  0,  0,  4,  0,  0,  0, 18,  1,  0,  0,  0, 32,  0,  1,  0,100,255, | ||||
|   0,  0,  0,  0,  0, 64,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  8,  0,  0,  0,  0,  4,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,128,  0, 16,  0,128,  0,  0,  8,  0,  0, 16,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0, 80,254, | ||||
|   2,  0,  0,  0,  0,  0,  0,  0,  0, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0, 64,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0, 16,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,168,254, | ||||
|   0,  0,  8,  0,  2, 68, 32,  0,  2,  1, 16, 16,  4,  0,  1,  1,  0,  2,  2,128,  0,  0,  0, 32,  0,  0,  2,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0, 32,  0,  0,  0, 64, 16,  0,  2, 17,128,  8,  4,  0,  9, 16,  4,  2,128, 16,  8,201,254, | ||||
|   0,  1,  0,  0,  1,129,  0,  0,  0,  0,  1,  0,  8,  8,  0,  0,  0,  0, 64, 32,  4,  0,  1,  0,  0,  0,  1,  0,  4, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 16,  0,  0,  0,  0,  0,  2,  1, 64,  0,  0,  0,  0, 32,  0,  4,  0,  0,  0,  0,128, 32,  0,  2, 64,  0,  0,  0,136,249, | ||||
|  32,  0,  8,128,  1, 54, 64,  0,136,  0, 18, 48, 43,200,131,  0,  0,193, 18,192,  2, 68,  0, 16,  0,  0, 12, 40,  4, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,  0,160, 32,  0,  0, 80,  0, 24,  0,  4,  0,133, 12,133,  1, 34, 64,  4,  8,  0, 27, 32,  3, 36,181,  8, 16, 80,249, | ||||
|   0, 65, 32,  4,  6,196, 48, 16,  6,235, 72,188,133, 10, 23, 81,142,154,192, 32,144,  4,110, 96,  1, 72,128,  0, 33,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,196, 42,160, 68,  0,  4, 16,160, 32, 64, 28, 41, 56, 36,  9,  6, 97,  0, 40,  4,128, 32, 24, 36, 33,119,128, 10,176,250, | ||||
|   0, 64,  0,  0,  2, 64, 32,  0,  4,129,  0, 16,  4,  2,  0, 16,  8,  2, 32, 32,  0, 16,  0, 16,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 64,  0,  0,  0,128, 32,  0,  2,  0,  0,  0, 16,  2, 17,  0,  8,  4,128, 16, 16,  4,  0,128,  0,  8, 40,253, | ||||
|  72,  0, 32, 16,  4, 16,128, 16,  8,  2, 33, 64,  0,128,  0,  0, 32,  0, 17,  0,  2,  0,129, 32,  0,  1,  0,  0, 16,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  4,  1, 64,  8,  0,  4,  0,  0,  0,  0,  0,  0, 64,  0, 65, 64,  0,  0,109,248, | ||||
|   0,  0,  0,  0,  1,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0, 32,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0, 64,  0, 64,  0,  0,  1,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,200,255, | ||||
|   0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0, 16, 16,  0,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  2,  0,  0,  0,  0,144,248, | ||||
|   0,  2,  0,  0,  0,  0,  0, 64,  0,  0,  2,  0,  0,  0,  0,  4,  0,  0, 32,  0, 32,  0,  0,  0,  1,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  2,  0,  0,  0, 64,  0,  0,  0,  0, 16,136,255, | ||||
|   0,  0,  0,  0,  0,  0,  2,  0,  0,  1,  0,  0,  0, 32,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  1,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,128,  0, 16, 32,  0,  0,  0, 64,192,  0, 32,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,249, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,240,250, | ||||
|   0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,128,  0,  0,  0,  0,  2,  0,  0,  0,128, 16,  0,  0,  0,  0,  0,  0,  1,  0,  0,  4,  0,  0, 16,  0,  0, 64,  4,  0, 32,232,249, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0, 16,  0,  0,  4,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  8,  8,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,252, | ||||
|  16,  0,  0,  0,  2,  0,  0,  0, 64,  0,  0,  0,  0,  0,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16, 32,  0,  0,  0,128,  0,  0,  0,  0,  1,  0,  0,  0, 64,  0,  0,216,250, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  1,  0,  0,  0,  0,128,  0,  0,  0,  0,  1, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0, 64, 96,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80,249, | ||||
|   0,  0,  0,  0,128,  8,  0,  0,  0,  0, 17,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,192,  0,  0,  0, 16,  0,  0,  0, 64,  0,  0,  1,  0,  1,  0, 16,  0,  8,255, | ||||
|   8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  2,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,253, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 64,  0,  0,  0,128,  0,  2,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,128,  0,  0,248,251, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  1,  0,  0,  0,  1,  0,  0,  0, 64,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,240,255, | ||||
|   0,  1,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254, | ||||
|   0,  0,  0,  0,  0, 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,128,  0, 16,252, | ||||
|   0,  0,  0,  0,  8,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  2,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0, 33,  0,  0, 16,254, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0, 16,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  1,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,184,253, | ||||
|  64,  0,  0,  0,  0,  1, 32,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  2,  0,  0,  8,  2,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,114,249, | ||||
|  16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,251, | ||||
|   0,  0,  0,  0, 24,  0,  0,  2,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,128, 32,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  8,  0,  0,  0,  0,  0,252, | ||||
|   0,  0,  0,128,  0, 64,  0,  1,  0,128,  0,  0,  0,128,  0,  0,  4,  0, 32,  0, 68,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,128,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0, 32,  0,  0, 32,  0,  0,  4,  2,  0,  0,240,248, | ||||
|   0, 64,  0,  8,  0,  1,  0,  0,  0,  0,  0, 16,  0,  2,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0, 64,  0,  8,  0,  0,  0,128,  4,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 18,  0,  0,136,248,248, | ||||
|   0,128,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,253, | ||||
|   0,  0,  0, 16,  0, 65, 32,  0,  0,  2,  0,  0,  0,  0,  0, 32,  8,  2,129,  0,  8,  0,  0, 64, 16,  0,136, 32, 16,  8,  0,  0,  0,  8,  4, 64,  0,  0,  0,  0,  0,  4,  2,  0,  0,128,  0,  0,  0,  0,  0,  0,  8,128,  0,  0,  0,  4,  2, 64, 16,  0,  0, 17,128, 16, 16,129,  0, 16,  0,136, 64,  0,  0, 13,249, | ||||
|  26, 64,  0,  0,  0,128, 16,  0,  8,  0, 32,  0,  4,  2,  0, 16, 32,  0, 64, 32,  0,  2,  1, 17,  0,  1,  0,  0,  0,  0,  0,  0,  0,  8,  4, 64, 64,  0,  0,  0,  0,  0,  2, 32, 16,  0,  0, 32,  8,  2,  0,  0,  2,  0,128,  0,  0,  0,128,  0,  0,  0,132,  0,  0,  0,  0,  0,  0,  0,  0, 68,128,  4, 16, 56,252, | ||||
|   0,  3,161, 16, 20, 50,192,  0,144,  1,200,  0, 41,  8, 40, 12, 48,161, 50,128,  4, 84,  0, 26, 32,  1, 68,168,  8, 22,  0,  0,  0, 24,  6,192, 32,  0,  0,  0,  0,  8,  3, 32, 16, 64, 40,  4,160,  0,128, 26,134,130,  0, 66, 17,170, 53,240,  8,128,  0, 38, 64, 52,136,  6,  1, 32,  0,108,128, 21, 37,  0,254, | ||||
|   0,160, 34, 14,  2, 65, 32, 34,  4,231,160, 80, 56,129, 97,  4,  4, 98, 65,  4,144,  2, 14, 66, 10,  0,  1,129,146,  8,  0,  0,  0,  8,  4,  0, 32,  0,  0,  0,  0,  4,  1, 96,  8,160,  0,  1,  8,130,  0, 16, 16,  0, 48, 69, 24,  1,164,  8, 69, 32,132, 65, 16,  2,  5,225,168, 16,  4,130,  0, 16, 12,144,255, | ||||
|   0,  0,  0,  4,  2, 65, 32,  0,  4,129, 32, 16,  0, 32, 64,  0,  0,  2, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  4,  0,  0,  0,  4,  8,  0, 32,  0,  0,  0,  0,  4,  0, 16,  0, 64,  0,  0, 32,  2,  0,  0,  0,  0,  0,  0,  8,  0,128,  0,  0,  0,  0, 20,  0,  0,  4,  1, 66, 32,  8,132,  0, 16, 16,144,250, | ||||
|   0,  0, 17,  8,  0,  0,  0,  0,128,  0,  1,  0,  4,130,  0,  1,  8,  0,  0,  0, 16,  4,  1, 32, 16,  0, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 32, 16,  0,  0,  0,  0,  0,  2, 32,  8,  0,  0, 32, 16,  0,  0,  0,  0,  0,  1,  2, 16,  0,  0,128,  0,  0,  0,  0,  0,  0,  8,152,248, | ||||
|   0,  0,  0,  0,  0,  0, 32,  0,  0,  8,  0,  0,  0,  0,  0,  0,  8,  0,  5,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,132,  0,  0,  0,  2,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,253, | ||||
|   2, 64,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,128,128,  0,  0,  0,  0,  0, 16,  0,  0,  0, 32,  0,  4,  0,  0,  8,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 48,252, | ||||
|   4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 16,  0, 73,251, | ||||
|  32,  0,  0,  0,  0,  0,  0,  4, 32,  0,  0,  8,  0,  0,  0,  0, 64, 17,  0,  0,  0,  0,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  2,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,208,255, | ||||
|  10,  0,  0,  0,  0,132,128,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  0, 32,  0,  4,  0,  0,  0,  0,  0,  0,  1,  2,  0,  0,  0,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,128,  0,  0,  0,  0,  0,  0,128, 10,251, | ||||
|   8,  0, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0, 64,128,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,240,249, | ||||
|   0,  0,  0,128,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  4,  8,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,251, | ||||
|   2,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0, 64,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  1,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,200,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0, 32,  0,162,  0,  0,  0,  0,  0,  2,  0,  2,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 36,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  0,128,  0,  0,184,249, | ||||
|   0,  0,  0,  0,  0,  0,  1, 16,  0,  0,  0, 32,  0,  4,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 32,  0,  0,  0, 64,  0,  0,  0, 40,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  2,  0,  0, 16,  0,  0,  0,216,248, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  2,  2,  0,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,253, | ||||
|   0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  4,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0, 32,  0,  1,  0, 32,  1,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  8,104,248, | ||||
|   0, 64,  4,  0,  0,  0,  0, 64,  0,  8,  2, 65, 33,  0,104,  0,  8,  0,  4,  0,  0,  0,  0,  8,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,  4, 16,128, 16, 16,  0,200, 64,  0, 32,  1, 36,128,  4,132,  0, 16, 17,  2,  0,  0,128, 64,  0,  4,  0,  0,132,  0, 48,255, | ||||
|   0,  1, 32,  0,129,192,  0, 18,  0,  2, 64,  1,  8,  0, 33, 32,  0,  0,192,  0, 24,  0,128, 64,  0,  8, 32,  1, 32, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0,  4,  0,  0, 20,  2,  2, 64,  0,  8,  0,  0, 32,  0,  4,128,  0, 16, 26,  2, 72,  8,  8,  0, 65,  0,  0, 96,249, | ||||
|   0,  0,  0,  0,  0,  0,  0, 16,  0,  2,128,  0,  8,  0, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0, 16,  2,  0, 64,  0,  8,  0,  0, 32,  0,  4,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,255, | ||||
|   0,  2,  0,  0,  0,  0,  1,  4,128,  0,  0,  0,  2,  0,130, 64,  0,  0,  0,  1, 32,  0,  0,128,  0, 16,  0,  2, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0,  1,  0,  0,  4,136,  0, 16,  0,  2,  0,  0,  8,  0,  1, 32,  0, 32,  1,  4,128,  0,  0,  0,  0,  8,  0, 32,251, | ||||
|   0, 20,192,  2,120,  0, 10, 40,  1, 37,  0,  5,148,  0, 84,128,  2, 88,  0, 10, 64,  1, 44,  0,  5,160,  0, 20,128,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 22,128,  2, 74,128, 11, 40,  5, 36,160,  4,148,  0, 22, 80,  2, 74, 64,  9,192,  0, 40,  0,  7,176,  0, 22, 64,  2,  8,252, | ||||
| 160, 12,144,  1, 50, 97,  6,216,  0, 27, 48,  3,108,160,108,148,  1, 50, 80,  6,202,  0, 25, 40,  3,102,192, 12,152,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,  8,152,  1, 54, 64,  6,216, 70, 26, 96,  3,108,128, 12,176,  1, 54,192,  6,202,140, 25, 40, 19,100,128, 12,176,  1,168,253, | ||||
| 255,255 | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -1,29 +0,0 @@ | ||||
| @echo off | ||||
| 
 | ||||
| del *.txt  | ||||
| del *.bak  | ||||
| del *.cnf  | ||||
| del *.db?  | ||||
| 
 | ||||
| del *.hif  | ||||
| del *.mmf  | ||||
| del *.mtf  | ||||
| del *.mtb  | ||||
| del *.hex  | ||||
| del *.ndb  | ||||
| del *.pin  | ||||
| del *.pof  | ||||
| del *.snf  | ||||
| del *.fit  | ||||
| 
 | ||||
| del *.SCF  | ||||
| del *.ACF  | ||||
| del *.TDF  | ||||
| del *.INC  | ||||
| del *.MIF  | ||||
| 
 | ||||
| del *.log | ||||
| del *.rpt | ||||
| del *.sof | ||||
| del *.ttf | ||||
| del *.bin | ||||
| @ -1,28 +0,0 @@ | ||||
| @echo off | ||||
| 
 | ||||
| del *.txt  | ||||
| del *.bak  | ||||
| del *.cnf  | ||||
| del *.db?  | ||||
| 
 | ||||
| del *.hif  | ||||
| del *.mmf  | ||||
| del *.mtf  | ||||
| del *.mtb  | ||||
| del *.hex  | ||||
| del *.ndb  | ||||
| del *.pin  | ||||
| del *.pof  | ||||
| del *.snf  | ||||
| del *.fit  | ||||
| 
 | ||||
| del *.SCF  | ||||
| del *.ACF  | ||||
| del *.TDF  | ||||
| del *.INC  | ||||
| del *.MIF  | ||||
| 
 | ||||
| del *.log | ||||
| del *.rpt | ||||
| del *.sof | ||||
| del *.bin | ||||
| @ -1,4 +0,0 @@ | ||||
| 06.07.2022 05:20: [1/2] ALTERA ACEX-K30 STREAM  | ||||
| transform ttf-file to binary | ||||
| Copyright (c) 2021 Sprinter Team | ||||
| transform done. | ||||
										
											Binary file not shown.
										
									
								
							| @ -14,7 +14,7 @@ BEGIN | ||||
| 	0		: 1040	% DCP PAGE %; | ||||
| 
 | ||||
| % | ||||
| 	MA[11..0]	        bit0 - WG_A5 | ||||
| 	MA[11..0]	bit0 - WG_A5 | ||||
| 				bit1 - WG_A6 | ||||
| 
 | ||||
| 				bit2 - MUX_KP11, 0 - WG,CMOS	1 - KMPS,TM9 | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							| @ -220,39 +220,39 @@ VARIABLE | ||||
| BEGIN | ||||
| 
 | ||||
| % | ||||
| 	DC.CLK42	= CLK42; | ||||
| 	DC./RESET	= /RESET; | ||||
| 
 | ||||
| 	DC.A[15..0]	= A[15..0]; | ||||
| 
 | ||||
| 	DC./IO		= /IO; | ||||
| 	DC./WR		= /WR; | ||||
| 	DC./M1		= /M1; | ||||
| 
 | ||||
| --	DC./IOM; | ||||
| --	DC./IOMM; | ||||
| --	DC.DCP[7..0]; | ||||
| 
 | ||||
| 	DC.DOS		= DOS; | ||||
| 	DC.CNF[1..0]= CNF[4..3]; | ||||
| 
 | ||||
| 	DC.SYS		= SYS; | ||||
| 
 | ||||
| --	DC.PORT_X; | ||||
| -- 	DC.CLK42	= CLK42; | ||||
| -- 	DC./RESET	= /RESET; | ||||
| --  | ||||
| -- 	DC.A[15..0]	= A[15..0]; | ||||
| --  | ||||
| -- 	DC./IO		= /IO; | ||||
| -- 	DC./WR		= /WR; | ||||
| -- 	DC./M1		= /M1; | ||||
| --  | ||||
| -- --	DC./IOM; | ||||
| -- --	DC./IOMM; | ||||
| -- --	DC.DCP[7..0]; | ||||
| --  | ||||
| -- 	DC.DOS		= DOS; | ||||
| -- 	DC.CNF[1..0]= CNF[4..3]; | ||||
| --  | ||||
| -- 	DC.SYS		= SYS; | ||||
| --  | ||||
| -- --	DC.PORT_X; | ||||
| % | ||||
| 
 | ||||
| 
 | ||||
| --	============================================================== | ||||
| % | ||||
| 	CT[].clk	= CLK42; | ||||
| 
 | ||||
| 	IF CT1 THEN | ||||
| 		CT[1..0] 	= GND; | ||||
| 		CT2			= !CT2; | ||||
| 	ELSE | ||||
| 		CT[1..0]	= CT[1..0]+1; | ||||
| 		CT2			= CT2; | ||||
| 	END IF; | ||||
| -- 	CT[].clk	= CLK42; | ||||
| --  | ||||
| -- 	IF CT1 THEN | ||||
| -- 		CT[1..0] 	= GND; | ||||
| -- 		CT2			= !CT2; | ||||
| -- 	ELSE | ||||
| -- 		CT[1..0]	= CT[1..0]+1; | ||||
| -- 		CT2			= CT2; | ||||
| -- 	END IF; | ||||
| % | ||||
| 
 | ||||
| 	/RES	= DFFE(VCC,CLK42,,,CT0); | ||||
| @ -319,18 +319,18 @@ BEGIN | ||||
| 	END IF; | ||||
| 
 | ||||
| % | ||||
| 	MA_[11..0]	bit0 - WG_A5 | ||||
| 				bit1 - WG_A6 | ||||
| 				bit2 - MUX_KP11, 0 - WG,CMOS	1 - KMPS,TM9 | ||||
| 				bit3 - RD/WR	 0 - WRITE		1 - READ | ||||
| 				bit4 - CS_WG93 or WR_TM9 | ||||
| 				bit5 - HDD/CMOS strobe | ||||
| 				bit7,6	- 	00 - not | ||||
| 							01 - ???? | ||||
| 							10 - HDD1/2 | ||||
| 							11 - CMOS | ||||
| 				bit8 - HDD CS1/CS3 or CMOS data/adr | ||||
| 				bit9,10,11 - HDD_A[2..0] | ||||
| --	MA_[11..0]	bit0 - WG_A5 | ||||
| --				bit1 - WG_A6 | ||||
| --				bit2 - MUX_KP11, 0 - WG,CMOS	1 - KMPS,TM9 | ||||
| --				bit3 - RD/WR	 0 - WRITE		1 - READ | ||||
| --				bit4 - CS_WG93 or WR_TM9 | ||||
| --				bit5 - HDD/CMOS strobe | ||||
| --				bit7,6	- 	00 - not | ||||
| --							01 - ???? | ||||
| --							10 - HDD1/2 | ||||
| --							11 - CMOS | ||||
| --				bit8 - HDD CS1/CS3 or CMOS data/adr | ||||
| --				bit9,10,11 - HDD_A[2..0] | ||||
| % | ||||
| 	CASE A[15..14] IS | ||||
| 		WHEN 0 => SP_SCR = GND;		SP_SA = GND; | ||||
| @ -357,11 +357,11 @@ BEGIN | ||||
| 		WHEN 1 => X_MA_[] = (HDD_A[2..0],B"00000",/WR,VCC,A[6..5]); | ||||
| 	END CASE; | ||||
| % | ||||
| 	CASE MA_CT1 IS | ||||
| --		WHEN 0 => MA_[] = X_ADR[]; | ||||
| 		WHEN 0 => MA_[] = (GND,X_ADR[10..0]); | ||||
| 		WHEN 1 => MA_[] = (HDD_A[2..0],X_MA_[8..4],/WR,X_MA_[3],A[6..5]); | ||||
| 	END CASE; | ||||
| --	CASE MA_CT1 IS | ||||
| ----		WHEN 0 => MA_[] = X_ADR[]; | ||||
| --		WHEN 0 => MA_[] = (GND,X_ADR[10..0]); | ||||
| --		WHEN 1 => MA_[] = (HDD_A[2..0],X_MA_[8..4],/WR,X_MA_[3],A[6..5]); | ||||
| --	END CASE; | ||||
| % | ||||
| 
 | ||||
| 	CASE (IO_RW,MA_CT1) IS | ||||
| @ -667,7 +667,7 @@ END GENERATE; | ||||
| 	SC[].clrn		= /RESET & !CNF6;	-- Scorpion-OFF | ||||
| 
 | ||||
| 	PN[5..0].clrn	= /RESET & !CNF5;	-- reset PN5 | ||||
| 	PN[7..5].clrn	= /RESET & CNF7;	-- set Pentagon-512 | ||||
| 	PN[7..6].clrn	= /RESET & CNF7;	-- set Pentagon-512 | ||||
| 
 | ||||
| 	PN4Q	= PN4; | ||||
| 
 | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -320,7 +320,8 @@ BEGIN | ||||
| --	NEW 30.06.2022 | ||||
| --	KEYS.int_ena	= ALL_MODE0;	-- int in all keys | ||||
| --	KEYS.ena	= !ALL_MODE0;	-- ZX-Keyboard | ||||
| 	KEYS.int_ena	= LCELL(ALL_MODE0 & ALL_MODE3); -- new bit3 in ALL_MODE, disables keyboard interruptions w/o accellerator affected | ||||
| -- 	new bit3 in ALL_MODE, disables keyboard interruptions w/o accellerator affected | ||||
| 	KEYS.int_ena	= LCELL(ALL_MODE0 & ALL_MODE3);  | ||||
| 	KEYS.ena	= VCC; -- ZX-Keyboard always enabled | ||||
| --	======================================== | ||||
| 
 | ||||
| @ -1011,7 +1012,11 @@ END GENERATE; | ||||
| --	ZX_COLOR[3..0] | ||||
| 
 | ||||
| 	SVIDEO.ZX_PORT[5..0]	= (ACC.G_LINE[5..0]); | ||||
| 	SVIDEO.ZX_PORT[7..6]	= (DECODE.SP_SA,LCELL(DECODE.SP_SCR & !(A13 & !ACC.G_LINE7) & !ACC.G_LINE6)); | ||||
| --	SVIDEO.ZX_PORT[7..6]	= (DECODE.SP_SA,LCELL(DECODE.SP_SCR & !(A13 & !ACC.G_LINE7) & !ACC.G_LINE6)); | ||||
| 
 | ||||
| -- 	NEW 25.08.2022 | ||||
| -- 	disable zx adressing due accelerator is on | ||||
| 	SVIDEO.ZX_PORT[7..6] 	= (DECODE.SP_SA,LCELL(DECODE.SP_SCR & !(A13 & !ACC.G_LINE7) & !ACC.G_LINE6 & !ALL_MODE0)); | ||||
| 
 | ||||
| 	SVIDEO.DIR_PORT[0]		= DECODE.SCR128; | ||||
| 
 | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							| @ -77,9 +77,9 @@ SUBDESIGN video2 | ||||
| 	) | ||||
| VARIABLE | ||||
| 
 | ||||
| 	CLK84		: NODE; | ||||
| 	CLK84_X		: NODE; | ||||
| 	CLK84_Y		: NODE; | ||||
| --	CLK84		: NODE; | ||||
| --	CLK84_X		: NODE; | ||||
| --	CLK84_Y		: NODE; | ||||
| 
 | ||||
| 	ZX_COLOR[3..0]	: NODE; | ||||
| 
 | ||||
| @ -120,11 +120,30 @@ VARIABLE | ||||
| 	V_WEM2		: NODE; | ||||
| 	V_WRM		: NODE; | ||||
| 	V_WRM2		: NODE; | ||||
| 
 | ||||
| % | ||||
| 	V_WEMM		: NODE; | ||||
| 	V_WEMMM		: NODE; | ||||
| 	V_WEMMN		: NODE; | ||||
| 	V_WEMMO		: NODE; | ||||
| % | ||||
| 	V_WEMM		: NODE; | ||||
| 	V_WEMMM		: NODE; | ||||
| 	V_WEMMN		: NODE; | ||||
| 	V_WEMMO		: NODE; | ||||
| 	V_WEMMP		: NODE; | ||||
| 	V_WEMMQ		: NODE; | ||||
| 	V_WEMMR		: NODE; | ||||
| 	V_WEMMS		: NODE; | ||||
| 	V_WEMMT		: NODE; | ||||
| 	V_WEMMU		: NODE; | ||||
| 	V_WEMMV		: NODE; | ||||
| 	V_WEMMW		: NODE; | ||||
| 	V_WEMMX		: NODE; | ||||
| 	V_WEMMY		: NODE; | ||||
| 	V_WEMMZ		: NODE; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	V_WET[3..0]	: DFF; | ||||
| 
 | ||||
| 	D_PIC0[7..0]	: DFFE; | ||||
| @ -143,6 +162,8 @@ VARIABLE | ||||
| 	WR_PIC		: DFF; | ||||
| 	WR_COL		: DFF; | ||||
| 	LD_PIC		: NODE; | ||||
| MXL: NODE; | ||||
| MXR: NODE; | ||||
| 
 | ||||
| 	RBRVA[10..8]: DFF; | ||||
| 	BRVA[7..0]	: DFF; | ||||
| @ -282,6 +303,7 @@ BEGIN | ||||
| 	CTV[8..0].clk	= CLK42; | ||||
| 
 | ||||
| 	CT[2..0].ena	= VCC; | ||||
| 
 | ||||
| 	CASE CT[2..0] IS | ||||
| 		WHEN 0 => CT[2..0] = 1; | ||||
| 		WHEN 1 => CT[2..0] = 2; | ||||
| @ -292,10 +314,11 @@ BEGIN | ||||
| 		WHEN 6 => CT[2..0] = 0; | ||||
| 		WHEN 7 => CT[2..0] = 0; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 								  -- for remove sinc jitter | ||||
| --	CT[5..3].ena	= DFF(((CT0 & CT2) or (COPY_SINC_H & !CT4)),CLK42,,); | ||||
| 	CT[5..3].ena	= DFF((CT0 & CT2),CLK42,,); | ||||
| 	CT[5..3]		= CT[5..3]+1; | ||||
| 	CT[5..3]	= CT[5..3]+1; | ||||
| % | ||||
| 	CASE CT[4..3] IS | ||||
| 		WHEN 0 => CT[5..3]	= CT[5..3]+1; | ||||
| @ -331,7 +354,7 @@ BEGIN | ||||
| 	SCR128		= DIR_PORT0; | ||||
| 
 | ||||
| --	WR_PIX	= LCELL(TSN_W3); | ||||
| 	WR_PIX	= (TSN_W3); | ||||
| 	WR_PIX	= TSN_W3; | ||||
| 
 | ||||
| 	DOUBLE.clk = CLK42; DOUBLE.ena = !E_WR; DOUBLE	= DOUBLE_CAS; | ||||
| 	VXA[].clk  = CLK42; VXA[].ena  = !E_WR; | ||||
| @ -397,12 +420,12 @@ IF MODE == "SPRINTER" GENERATE | ||||
| --	INTT	= DFF(!(BLANK & (CTV[2..0] == 7)),CLK42,,MODE0[0]); | ||||
| 
 | ||||
| 	CASE CT[2..0] IS | ||||
| 		WHEN B"110" => VCM[2..0].d = 5; -- 101 | ||||
| 		WHEN B"000" => VCM[2..0].d = 1; -- 001 | ||||
| 		WHEN B"001" => VCM[2..0].d = 4; -- 100 | ||||
| 		WHEN B"010" => VCM[2..0].d = 3; -- 011 | ||||
| 		WHEN B"100" => VCM[2..0].d = 2; -- 010 | ||||
| 		WHEN B"101" => VCM[2..0].d = 0; -- 000 | ||||
| 		WHEN B"110" => VCM[2..0].d = 5; -- 110 -> 101  6 -> 5 | ||||
| 		WHEN B"000" => VCM[2..0].d = 1; -- 000 -> 001  0 -> 1 | ||||
| 		WHEN B"001" => VCM[2..0].d = 4; -- 001 -> 100  1 -> 4 | ||||
| 		WHEN B"010" => VCM[2..0].d = 3; -- 010 -> 011  2 -> 3 | ||||
| 		WHEN B"100" => VCM[2..0].d = 2; -- 100 -> 010  4 -> 2 | ||||
| 		WHEN B"101" => VCM[2..0].d = 0; -- 101 -> 000  5 -> 0 | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE VCM[1..0] IS | ||||
| @ -411,6 +434,9 @@ IF MODE == "SPRINTER" GENERATE | ||||
| 			V_CST[].d = (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 
 | ||||
| TSN_W3.d  = X_MODE_BOND; | ||||
| % | ||||
| 			IF VCM2 THEN | ||||
| --				TSN_W3.d  = X_MODE5; | ||||
| 				TSN_W3.d  = X_MODE_BOND; | ||||
| @ -419,6 +445,8 @@ IF MODE == "SPRINTER" GENERATE | ||||
| 				TSN_W3.d  = X_MODE_BOND; | ||||
| --				V_CST[].d = (VCC,X_MODE_BOND); | ||||
| 			END IF; | ||||
| % | ||||
| 
 | ||||
| 		WHEN 1 => | ||||
| 			WR_PIC.d	= !VCM2; | ||||
| 			WR_COL.d	= VCM2; | ||||
| @ -433,7 +461,10 @@ IF MODE == "SPRINTER" GENERATE | ||||
| 			V_WEX.d		= GND; | ||||
| 			V_WET[].d	= MXWE or !((!VXA1 & !VXA0),(!VXA1 & VXA0),(VXA1 & !VXA0),(VXA1 & VXA0)); | ||||
| 		WHEN 3 => | ||||
| 			WR_PIC.d	= X_MODE5; | ||||
| --			WR_PIC.d	= X_MODE5; | ||||
| --			NEW 26.08.2022, fix bug with first column | ||||
| --			it was reproducing when changes mode 320 -> 640, like any 320px screen squares -> text mode squares | ||||
| 			WR_PIC.d	= MODE0[5]; | ||||
| 			VLA[].d		= (DIR_PORT3,CTH[5..0],CT5,VCC,VCC,CTV[8..3],GND,GND); | ||||
| 			WR_MODE.d	= !(CT[5..3] == B"111") & !(CT4 & CT3 & !MODE0[5]); | ||||
| 			V_CST[].d 	= (VCC,GND); | ||||
| @ -500,6 +531,7 @@ IF MODE == "SPRINTER" GENERATE | ||||
| --	LD_PIC	= LCELL((MODE0[5] & DFF((CT[5..3] == B"000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| 	LD_PIC	= LCELL((MODE0[5] & DFF((CT[5..3] == B"000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| 
 | ||||
| 
 | ||||
| --	CASE (DFF(VLA1,!CLK42,,),DFF(VLA0,!CLK42,,)) IS | ||||
| 
 | ||||
| --	D_PIC0_[].clk	= !CLK42; | ||||
| @ -572,6 +604,9 @@ IF MODE == "SPRINTER" GENERATE | ||||
| 	D_PIC0[].ena	= !LWR_PIC; | ||||
| 	D_PIC0[].clk	= CLK42; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	IF LD_PIC THEN | ||||
| --		D_PIC0[] = D_PIC0_[]; | ||||
| 		D_PIC0[] = D_PICX_[]; | ||||
| @ -579,6 +614,7 @@ IF MODE == "SPRINTER" GENERATE | ||||
| 		D_PIC0[] = (D_PIC0[6..0],GND); | ||||
| 	END IF; | ||||
| 
 | ||||
| 
 | ||||
| --	DCOL[].clk	= (LWR_COL); | ||||
| 	DCOL[].ena	= !LWR_COL; | ||||
| 	DCOL[].clk	= CLK42; | ||||
| @ -596,6 +632,9 @@ IF MODE == "SPRINTER" GENERATE | ||||
| 	BRVA[].clrn	= !MS_POINT; | ||||
| 	BRVA[].prn	= !MS_POINT2; | ||||
| 
 | ||||
| -- 	MODE0[4] - graph / text | ||||
| --	MODE0[5] - 320 / 640 resolution | ||||
| 
 | ||||
| --	CASE (LCELL(X_MODE4 or X_MODE5),CT2) IS | ||||
| 	CASE (DFF((MODE0[4] or MODE0[5]),LWR_COL,,),CT2) IS | ||||
| 		WHEN B"1X" => BRVA[7..0] = DCOL[]; | ||||
| @ -635,6 +674,69 @@ IF MODE == "SPRINTER" GENERATE | ||||
| --	V_WEX.prn	= (DFF(GND,CLK42,,!V_WEX)); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	V_WEMMM	= LCELL(V_WE); | ||||
| --	V_WEMMN	= LCELL(V_WEMMM); -- bios ok, fn ok, fnf1 failed, zx almost ok | ||||
| --	V_WEMMO	= LCELL(V_WEMMN); -- green arts | ||||
| --	V_WEMMP	= LCELL(V_WEMMO); -- blue + pink arts | ||||
| --	V_WEMMR	= LCELL(V_WEMMP); -- no F1 issue, but red arts (fix by finger, not enough capacity??) | ||||
| --	V_WEMMS	= LCELL(V_WEMMR);  | ||||
| --	V_WEMMT	= LCELL(V_WEMMS); | ||||
| --	V_WEMMU	= LCELL(V_WEMMT); | ||||
| --	V_WEMMV	= LCELL(V_WEMMU); | ||||
| --	V_WEMMW	= LCELL(V_WEMMV); | ||||
| --	V_WEMMX	= LCELL(V_WEMMW); | ||||
| --	V_WEMMY	= LCELL(V_WEMMX); | ||||
| --	V_WEMMZ	= LCELL(V_WEMMY); | ||||
| 
 | ||||
| 	V_WRM	= LCELL(V_WE or V_WEMMM); | ||||
| 
 | ||||
| 
 | ||||
| --	V_WRM	= LCELL(V_WEMMN or V_WEMMM); | ||||
| --	V_WRM2	= LCELL(V_WEMMN or V_WEMMM); | ||||
| --	V_WRM2	= LCELL(V_WEMMR); | ||||
| --	V_WRM	= LCELL(V_WEMMM or V_WEMMN); | ||||
| --	V_WRM2	= LCELL(V_WEMMM or V_WEMMN); | ||||
| 
 | ||||
| 	V_WEM	= (V_WE); | ||||
| 
 | ||||
| --	V_WEM2	= LCELL(V_WE); | ||||
| --	V_WEM	= LCELL(V_WEMMM & V_WEMMN); | ||||
| --	V_WEM2	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 
 | ||||
| ---	LWR_COL		= DFF(WR_COL,CLK42,,); | ||||
| 	F_WR	= ((LCELL(LCELL(LCELL(DFF(VCC,V_WE,,)))))); | ||||
| ---	F_WR	= DFF(V_WE,CLK42,,); | ||||
| --	V_WEMMZ	= LCELL(CLK42); | ||||
| 	V_EN3	= (DFF(!(!VXA1 & (!VXA0 or DOUBLE)), CLK42, F_WR,)); | ||||
| 	V_EN2	= (DFF(!(!VXA1 & (VXA0 or DOUBLE)), CLK42, F_WR,)); | ||||
| 	V_EN1	= (DFF(!(VXA1 & (!VXA0 or DOUBLE)), CLK42, F_WR,)); | ||||
| 	V_EN0	= (DFF(!(VXA1 & (VXA0 or DOUBLE)), CLK42, F_WR,)); | ||||
| 
 | ||||
| 
 | ||||
| --	V_WR_3	= LCELL(V_WRM or V_EN3); | ||||
| --	V_WR_2	= LCELL(V_WRM or V_EN2); | ||||
| --	V_WR_1	= LCELL(V_WRM or V_EN1); | ||||
| --	V_WR_0	= LCELL(V_WRM or V_EN0); | ||||
| 	V_WR_3	= (LCELL(LCELL(LCELL(V_WRM or V_EN3)))); | ||||
| 	V_WR_2	= (LCELL(LCELL(LCELL(V_WRM or V_EN2)))); | ||||
| 	V_WR_1	= (LCELL(LCELL(LCELL(V_WRM or V_EN1)))); | ||||
| 	V_WR_0	= (LCELL(LCELL(LCELL(V_WRM or V_EN0)))); | ||||
| 
 | ||||
| 	V_WEY3	= LCELL(V_WE or V_EN3); | ||||
| 	V_WEY2	= LCELL(V_WE or V_EN2); | ||||
| 	V_WEY1	= LCELL(V_WE or V_EN1); | ||||
| 	V_WEY0	= LCELL(V_WE or V_EN0); | ||||
| 
 | ||||
| 	V_WR[]	= V_WR_[]; -- V_WR0-3 | ||||
| 	V_WEN[]	= V_WEY[]; -- VD0-3 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| % | ||||
| 	V_WEMMM	= LCELL(V_WE); | ||||
| 	V_WEMMN	= LCELL(V_WEMMM); | ||||
| 	V_WEMMO	= LCELL(V_WEMMN); | ||||
| @ -665,10 +767,15 @@ IF MODE == "SPRINTER" GENERATE | ||||
| 
 | ||||
| 	V_WR[]	= V_WR_[]; | ||||
| 	V_WEN[]	= V_WEY[]; | ||||
| % | ||||
| 
 | ||||
| 	CLK84	= LCELL(CLK42 xor CLK84_X); | ||||
| 	CLK84_X	= DFF(!CLK84_X,CLK84,,); | ||||
| 	CLK84_Y	= CLK84; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| --	CLK84	= LCELL(CLK42 xor CLK84_X); | ||||
| --	CLK84_X	= DFF(!CLK84_X,CLK84,,); | ||||
| --	CLK84_Y	= CLK84; | ||||
| 
 | ||||
| END GENERATE;	-- end "sprinter" mode | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										708
									
								
								src/altera/acex/k30/VIDEO2_T1.TDF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										708
									
								
								src/altera/acex/k30/VIDEO2_T1.TDF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,708 @@ | ||||
| 
 | ||||
| 	TITLE "Video-controller"; | ||||
| 
 | ||||
| INCLUDE "lpm_ram_dp"; | ||||
| 
 | ||||
| PARAMETERS | ||||
| 	( | ||||
| 	MODE = "SPRINTER", | ||||
| 	MOUSE = "NO", | ||||
| 	HOR_PLACE = H"50", | ||||
| 	VER_PLACE = H"91"   -- 122h/2 | ||||
| 	); | ||||
| 
 | ||||
| SUBDESIGN video2 | ||||
| 	( | ||||
| 	CLK42		: INPUT; | ||||
| 
 | ||||
| 	CT[5..0]	: OUTPUT; | ||||
| 	CTH[5..0]	: OUTPUT; | ||||
| 	CTV[8..0]	: OUTPUT; | ||||
| 	CTF[6..0]	: OUTPUT; | ||||
| 
 | ||||
| 	BLANK		: OUTPUT; | ||||
| 
 | ||||
| 	START_UP	: INPUT; | ||||
| 	COPY_SINC_H	: INPUT; | ||||
| 	COPY_SINC_V	: INPUT; | ||||
| 
 | ||||
| 	WR			: INPUT; | ||||
| 
 | ||||
| 	VAI[19..0]	: INPUT;	-- input screen adress | ||||
| 
 | ||||
| 	VAO[15..0]	: OUTPUT; | ||||
| 
 | ||||
| 	D[7..0]		: INPUT; | ||||
| 	MDI[15..0]	: INPUT; | ||||
| 
 | ||||
| 	VDO0[7..0]	: OUTPUT; | ||||
| 	VDO1[7..0]	: OUTPUT; | ||||
| 	VDO2[7..0]	: OUTPUT; | ||||
| 	VDO3[7..0]	: OUTPUT; | ||||
| 
 | ||||
| 	VDM0[7..0]	: INPUT; | ||||
| 	VDM1[7..0]	: INPUT; | ||||
| 	VDM2[7..0]	: INPUT; | ||||
| 	VDM3[7..0]	: INPUT; | ||||
| 
 | ||||
| 	V_WR[3..0]	: OUTPUT; | ||||
| 	V_WEN[3..0]	: OUTPUT; | ||||
| 
 | ||||
| 	V_CS[1..0]	: OUTPUT; | ||||
| 	WR_PIX		: OUTPUT; | ||||
| 
 | ||||
| --	ZX_COLOR[3..0]	: OUTPUT; | ||||
| 
 | ||||
| 	ZX_PORT[7..0]	: INPUT; | ||||
| 	DIR_PORT[7..0]	: INPUT; | ||||
| 
 | ||||
| % | ||||
| 	bit0	- Spectrum SCREEN Switch | ||||
| 	bit1	- Spectrum Adress MODE | ||||
| 	bit2	- Write to Spectrum Screen OFF | ||||
| 	bit3	- MODE page 0/1 | ||||
| 	bit4	- MODE on/off screen | ||||
| 
 | ||||
| 	bit7..5	- Border | ||||
| % | ||||
| 
 | ||||
| 	INTT		: OUTPUT; | ||||
| 
 | ||||
| 	DOUBLE_CAS	: INPUT; | ||||
| 
 | ||||
| 	MOUSE_X[9..0]	: INPUT; | ||||
| 	MOUSE_Y[9..0]	: INPUT; | ||||
| 
 | ||||
| 
 | ||||
| 	) | ||||
| VARIABLE | ||||
| 
 | ||||
| 	CLK84		: NODE; | ||||
| 	CLK84_X		: NODE; | ||||
| 	CLK84_Y		: NODE; | ||||
| 
 | ||||
| 	ZX_COLOR[3..0]	: NODE; | ||||
| 
 | ||||
| 	CT[5..0]	: DFFE; | ||||
| 	CTH[5..0]	: DFFE; | ||||
| 	CTV[8..0]	: DFFE; | ||||
| 	CTF[6..0]	: DFF; | ||||
| 
 | ||||
| 	VXA[19..0]	: DFFE; | ||||
| 
 | ||||
| 	VXD0[7..0]	: DFFE; | ||||
| 	VXD1[7..0]	: DFFE; | ||||
| 	VXD2[7..0]	: DFFE; | ||||
| 	VXD3[7..0]	: DFFE; | ||||
| 
 | ||||
| 	E_WR		: NODE; | ||||
| 	E_WRD		: NODE; | ||||
| 
 | ||||
| 	BLANK		: NODE; | ||||
| 	BORD		: NODE; | ||||
| --	INTT_T		: NODE; | ||||
| 	INTTX		: NODE; | ||||
| 
 | ||||
| 	VLA[17..0]	: DFF; | ||||
| --	SVA[17..0]	: NODE; | ||||
| 	SVA[17..0]	: DFF; | ||||
| --	RSVA[8..0]	: LCELL; | ||||
| 	RSVA[8..0]	: NODE; | ||||
| --	RSVA[8..0]	: DFF; | ||||
| 
 | ||||
| 	V_CST[1..0]	: DFF; | ||||
| 	VCM[2..0]	: DFF; | ||||
| 	TSN_W3		: DFF; | ||||
| 	V_WE		: DFF; | ||||
| 	V_WEX		: DFF; | ||||
| 
 | ||||
| 	V_WEM		: NODE; | ||||
| 	V_WEM1		: NODE; | ||||
| 	V_WEM2		: NODE; | ||||
| 	V_WEM3		: NODE; | ||||
| 	V_WRM		: NODE; | ||||
| 	V_WRM1		: NODE; | ||||
| 	V_WRM2		: NODE; | ||||
| 	V_WRM3		: NODE; | ||||
| 
 | ||||
| 	V_WEMM		: NODE; | ||||
| 	V_WEMMM		: NODE; | ||||
| 	V_WEMMN		: NODE; | ||||
| 	V_WEMMO		: NODE; | ||||
| 	V_WEMMP		: NODE; | ||||
| 	V_WEMMQ		: NODE; | ||||
| 	V_WEMMR		: NODE; | ||||
| 	V_WEMMS		: NODE; | ||||
| 	V_WEMMT		: NODE; | ||||
| 	V_WEMMU		: NODE; | ||||
| 	V_WEMMV		: NODE; | ||||
| 	V_WEMMW		: NODE; | ||||
| 	V_WEMMX		: NODE; | ||||
| 	V_WEMMY		: NODE; | ||||
| 	V_WEMMZ		: NODE; | ||||
| 
 | ||||
| 	V_WET[3..0]	: DFF; | ||||
| 
 | ||||
| 	D_PIC0[7..0]	: DFFE; | ||||
| --	D_PIC0_[7..0]	: LCELL; | ||||
| 
 | ||||
| 	D_PIC0_[7..0]	: DFFE; | ||||
| 	D_PIC1_[7..0]	: DFFE; | ||||
| 	D_PIC2_[7..0]	: DFFE; | ||||
| 	D_PIC3_[7..0]	: DFFE; | ||||
| 
 | ||||
| 	D_PICX_[7..0]	: NODE; | ||||
| 
 | ||||
| 	LWR_PIC		: NODE; | ||||
| 	LWR_COL		: NODE; | ||||
| 
 | ||||
| 	WR_PIC		: DFF; | ||||
| 	WR_COL		: DFF; | ||||
| 	LD_PIC		: NODE; | ||||
| 
 | ||||
| 	RBRVA[10..8]: DFF; | ||||
| 	BRVA[7..0]	: DFF; | ||||
| 	DCOL[7..0]	: DFFE; | ||||
| 
 | ||||
| 	MXWE		: NODE; | ||||
| --	MXCE		: NODE; | ||||
| 
 | ||||
| 	AX128		: NODE; | ||||
| 
 | ||||
| 	BRD[2..0]	: NODE; | ||||
| 
 | ||||
| 	ZX_COL[3..0]	: LCELL; | ||||
| 
 | ||||
| 	ZXA15		: NODE; | ||||
| 	ZXS[5..0]	: NODE; | ||||
| 	ZX_SCREEN	: NODE; | ||||
| 	SCR128		: NODE; | ||||
| 
 | ||||
| 	MODE0[7..0]		: DFFE; | ||||
| 	MODE1[7..0]		: DFFE; | ||||
| 	MODE2[7..0]		: DFFE; | ||||
| --	MODE3[7..0]		: DFF; | ||||
| 
 | ||||
| 	WR_MODE		: DFF; | ||||
| 	LWR_MODE	: NODE; | ||||
| 	X_MODE[7..4]: NODE; | ||||
| 	X_MODE_BOND	: NODE; | ||||
| 
 | ||||
| --	M_CTV[2..0]	: DFF; | ||||
| --	M_CT[5..3]  : DFF; | ||||
| 	M_CTV[2..0]	: LCELL; | ||||
| 	M_CT[5..3]  : LCELL; | ||||
| 
 | ||||
| 	DOUBLE		: DFFE; | ||||
| 
 | ||||
| 	PIC_CLK		: NODE; | ||||
| 
 | ||||
| 	MS_X[9..0]	: DFF; | ||||
| 	MS_Y[9..0]	: DFF; | ||||
| 
 | ||||
| 	MS_POINT	: NODE; | ||||
| 	MS_POINT2	: NODE; | ||||
| 	MS_PNT		: NODE; | ||||
| 
 | ||||
| 	MS_DAT		: LPM_RAM_DP WITH (LPM_WIDTH=16,LPM_WIDTHAD=8,LPM_FILE="MOUSE.MIF"); | ||||
| 
 | ||||
| 	SCR_ENA		: DFFE; | ||||
| 	V_WR_[3..0]	: LCELL; | ||||
| 	V_WEY[3..0]	: LCELL; | ||||
| 
 | ||||
| 	V_WE_R		: NODE; | ||||
| 
 | ||||
| 	V_CSX[3..0]	: NODE; | ||||
| 
 | ||||
| 	V_EN[3..0]	: NODE; | ||||
| 
 | ||||
| 	F_WR		: NODE; | ||||
| 
 | ||||
| BEGIN | ||||
| 
 | ||||
| 	DEFAULTS | ||||
| 		WR_MODE.d	= VCC; -- WR_MODE2.d	= VCC; -- WR_MODE2X.d	= VCC; | ||||
| 		V_CST[].d	= VCC; V_WR[]		= VCC; TSN_W3.d		= VCC; | ||||
| 		V_WE.d		= VCC; WR_COL.d		= VCC; WR_PIC.d		= VCC; | ||||
| 		V_WET[].d	= VCC; | ||||
| 	END DEFAULTS; | ||||
| 
 | ||||
| 	ZX_COLOR[] = ZX_COL[]; | ||||
| 
 | ||||
| --	=== MOUSE counters ======== | ||||
| 
 | ||||
| 	MS_X[].clk	= !CT1; | ||||
| 	CASE LCELL(CTH[5..2] == 12) IS | ||||
| 		WHEN 0 => MS_X[] = MS_X[] + 1; | ||||
| 		WHEN 1 => MS_X[] = (!MOUSE_X[9..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MS_Y[].clk	= !CTH5; | ||||
| 	CASE LCELL(CTV8 & !CTV5 & CTV4) IS | ||||
| 		WHEN 0 => MS_Y[] = MS_Y[] + 1; | ||||
| 		WHEN 1 => MS_Y[] = (GND,!MOUSE_Y[8..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MS_PNT = DFF(((MS_X[] == B"100000XXXX") & (MS_Y[] == B"100000XXXX")),CLK42,,); | ||||
| 
 | ||||
| 	MS_DAT.wren 		= GND; | ||||
| 	MS_DAT.data[] 		= GND; | ||||
| 	MS_DAT.wraddress[]	= GND; | ||||
| 	MS_DAT.wrclock		= CLK42; | ||||
| 	MS_DAT.wrclken		= GND; | ||||
| 	MS_DAT.rden			= VCC; | ||||
| 	MS_DAT.rdaddress[]	= (MS_Y[3..0],MS_X[3..0]); | ||||
| 	MS_DAT.rdclock		= CLK42; | ||||
| 	MS_DAT.rdclken		= VCC; | ||||
| 
 | ||||
| 	IF MOUSE == "NO" GENERATE | ||||
| 		MS_POINT	= GND; | ||||
| 		MS_POINT2	= GND; | ||||
| 	ELSE GENERATE | ||||
| 		MS_POINT	= DFF((MS_PNT & MS_DAT.q0),CLK42,,); | ||||
| 		MS_POINT2	= DFF((MS_PNT & MS_DAT.q1),CLK42,,); | ||||
| 	END GENERATE; | ||||
| 
 | ||||
| --	=== Sinc-counts GENERATOR ============================================ | ||||
| 
 | ||||
| --	CT[].clrn	= START_UP; | ||||
| 
 | ||||
| --	(,CTH[5..0].clrn,CT[5].clrn) = !COPY_SINC_H or HOR_PLACE; | ||||
| --	(,CTH[5..0].prn ,CT[5].prn ) = !COPY_SINC_H or !HOR_PLACE; | ||||
| 
 | ||||
| --	CTV[].clrn = !COPY_SINC_V or VER_PLACE; | ||||
| --	CTV[].prn  = !COPY_SINC_V or !VER_PLACE; | ||||
| 
 | ||||
| 	CT[5].clrn		= !COPY_SINC_H; | ||||
| 
 | ||||
| 	-- set CTH to 50 (32h) | ||||
| 	CTH[0].clrn		= !COPY_SINC_H; | ||||
| 	CTH[1].prn 		= !COPY_SINC_H; | ||||
| 	CTH[2].clrn		= !COPY_SINC_H; | ||||
| 	CTH[3].clrn		= !COPY_SINC_H; | ||||
| 	CTH[4].prn 		= !COPY_SINC_H; | ||||
| 	CTH[5].prn		= !COPY_SINC_H; | ||||
| 
 | ||||
| 	-- set CTV to 122h | ||||
| 	CTV[0].clrn		= !COPY_SINC_V; | ||||
| 	CTV[1].prn		= !COPY_SINC_V; | ||||
| 	CTV[3..2].clrn	= !COPY_SINC_V; | ||||
| 
 | ||||
| 	CTV[4].clrn		= !COPY_SINC_V; | ||||
| 	CTV[5].prn		= !COPY_SINC_V; | ||||
| 	CTV[7..6].clrn	= !COPY_SINC_V; | ||||
| 	CTV[8].prn		= !COPY_SINC_V; | ||||
| 
 | ||||
| 	CT[5..0].clk	= CLK42; | ||||
| 	CTH[5..0].clk	= CLK42; | ||||
| 	CTV[8..0].clk	= CLK42; | ||||
| 
 | ||||
| 	CT[2..0].ena	= VCC; | ||||
| 	CASE CT[2..0] IS | ||||
| 		WHEN 0 => CT[2..0] = 1; | ||||
| 		WHEN 1 => CT[2..0] = 2; | ||||
| 		WHEN 2 => CT[2..0] = 4; | ||||
| 		WHEN 3 => CT[2..0] = 4; | ||||
| 		WHEN 4 => CT[2..0] = 5; | ||||
| 		WHEN 5 => CT[2..0] = 6; | ||||
| 		WHEN 6 => CT[2..0] = 0; | ||||
| 		WHEN 7 => CT[2..0] = 0; | ||||
| 	END CASE; | ||||
| 								  -- for remove sinc jitter | ||||
| --	CT[5..3].ena	= DFF(((CT0 & CT2) or (COPY_SINC_H & !CT4)),CLK42,,); | ||||
| 	CT[5..3].ena	= DFF((CT0 & CT2),CLK42,,); | ||||
| 	CT[5..3]		= CT[5..3]+1; | ||||
| % | ||||
| 	CASE CT[4..3] IS | ||||
| 		WHEN 0 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 1 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 2 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 3 => CT[5..3]	= CT[5..3]+1; | ||||
| 	END CASE; | ||||
| % | ||||
| 	CTH[].ena		= DFF(((CT[5..2] == 15) & CT0),CLK42,,); | ||||
| 	CTV[].ena		= DFF(((CT[5..2] == 15) & CT0 & (CTH[] == 48)),CLK42,,); | ||||
| 
 | ||||
| 	IF CTH[] == 55 THEN | ||||
| 		CTH[]	= GND; | ||||
| 	ELSE | ||||
| 		CTH[]	= CTH[] + 1; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	IF CTV[] == 319 THEN | ||||
| 		CTV[]	= GND; | ||||
| 	ELSE | ||||
| 		CTV[]	= CTV[] + 1; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	CTF[].clk	= CTV8; | ||||
| 	CTF[]		= CTF[]+1; | ||||
| 
 | ||||
| --	==== Video ========================================================== | ||||
| 
 | ||||
| 	ZXS[]		= ZX_PORT[5..0];	-- pages ZX Screens | ||||
| 	ZX_SCREEN	= ZX_PORT6;			-- enable ZX Screen write | ||||
| 	ZXA15		= ZX_PORT7;			-- ZX A15' line | ||||
| 
 | ||||
| 	SCR128		= DIR_PORT0; | ||||
| 
 | ||||
| --	WR_PIX	= LCELL(TSN_W3); | ||||
| 	WR_PIX	= (TSN_W3); | ||||
| 
 | ||||
| 	DOUBLE.clk = CLK42; DOUBLE.ena = !E_WR; DOUBLE	= DOUBLE_CAS; | ||||
| 	VXA[].clk  = CLK42; VXA[].ena  = !E_WR; | ||||
| 
 | ||||
| 	VXD0[].clk = CLK42; VXD0[].ena = !E_WRD;	VDO0[]	= VXD0[]; | ||||
| 	VXD1[].clk = CLK42; VXD1[].ena = !E_WRD;	VDO1[]	= VXD1[]; | ||||
| 	VXD2[].clk = CLK42; VXD2[].ena = !E_WRD;	VDO2[]	= VXD2[]; | ||||
| 	VXD3[].clk = CLK42; VXD3[].ena = !E_WRD;	VDO3[]	= VXD3[]; | ||||
| 
 | ||||
| --	VXD0[] = D[]; | ||||
| --	VXD1[] = D[]; | ||||
| --	VXD2[] = D[]; | ||||
| --	VXD3[] = D[]; | ||||
| 
 | ||||
| 	(VXD0[],VXD1[]) = MDI[]; | ||||
| 	(VXD2[],VXD3[]) = MDI[]; | ||||
| 
 | ||||
| 	BRD[]		= DIR_PORT[7..5]; | ||||
| 
 | ||||
| 	VCM[].clk	= CLK42; | ||||
| 	TSN_W3.clk	= CLK42; | ||||
| 	V_CST[].clk	= CLK42; | ||||
| 	V_WE.clk	= CLK42; | ||||
| 	V_WET[].clk	= CLK42; | ||||
| 	VLA[].clk	= CLK42; | ||||
| 
 | ||||
| 	SCR_ENA.clk	= CLK42; | ||||
| 	SCR_ENA.ena	= !E_WR; | ||||
| 	SCR_ENA.d	= !(VAI19 or ZX_SCREEN); | ||||
| 
 | ||||
| 	E_WRD	= DFF(E_WR,CLK42,,); | ||||
| 	E_WR = LCELL(WR or !(VAI19 or ZX_SCREEN) or !DFF(WR,CLK42,,)); | ||||
| --	E_WR = LCELL(WR or !DFF(WR,CLK42,,)); | ||||
| 
 | ||||
| --	**************************************************** | ||||
| 
 | ||||
| IF MODE == "SPRINTER" GENERATE | ||||
| 
 | ||||
| --	VAI[19]	- switch adress mode	1 - graf mode, 0 - spectrum mode | ||||
| 
 | ||||
| --	MXWE	= DFF(((DFF(E_WR,CLK42,,) or SCR_ENA)  & MXWE),CLK42,,V_WE); | ||||
| 	MXWE	= DFF(MXWE,CLK42,E_WR,V_WE); | ||||
| 
 | ||||
| 	IF VAI[19] THEN | ||||
| 		-- in graf mode all 256k(512k) range | ||||
| 		VXA[]	= VAI[]; | ||||
| 	ELSE | ||||
| 		-- in spectrum mode 8k/16k range pages | ||||
| 		VXA[]	= (GND,GND,VAI[7..0],ZXS[4..1],LCELL(ZXS0 xor ZXA15 xor VAI13),VAI[12..8]); | ||||
| 	END IF; | ||||
| 
 | ||||
| --	BORD	= DFF((MODE0[7..4] == 15),WR_PIC,,); | ||||
| --	BLANK	= DFF((BORD & MODE03 & MODE02),WR_PIC,,); | ||||
| --	INTTX 	= DFF((BORD & MODE03 & MODE02 & MODE00),WR_PIC,,); | ||||
| 
 | ||||
| 	BORD	= DFF((MODE0[7..4] == 15),LWR_COL,,); | ||||
| 	BLANK	= DFF(((BORD & MODE03 & MODE02) or DIR_PORT4),LWR_COL,,); | ||||
| 	INTTX 	= DFF((BORD & MODE03 & MODE02 & MODE00),LWR_COL,,); | ||||
| 
 | ||||
| 	INTT	= DFF(!(INTTX & (CTV[2..0] == 7)),CT5,,); | ||||
| 
 | ||||
| --	INTT	= DFF((INTTX or DFF(INTTX,CT5,,)),CT5,,); | ||||
| --	INTT	= DFF(!(BLANK & (CTV[2..0] == 7)),CLK42,,MODE0[0]); | ||||
| 
 | ||||
| 	CASE CT[2..0] IS | ||||
| 		WHEN B"110" => VCM[2..0].d = 5; -- 101 | ||||
| 		WHEN B"000" => VCM[2..0].d = 1; -- 001 | ||||
| 		WHEN B"001" => VCM[2..0].d = 4; -- 100 | ||||
| 		WHEN B"010" => VCM[2..0].d = 3; -- 011 | ||||
| 		WHEN B"100" => VCM[2..0].d = 2; -- 010 | ||||
| 		WHEN B"101" => VCM[2..0].d = 0; -- 000 | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE VCM[1..0] IS | ||||
| 		WHEN 0 => | ||||
| 			VLA[].d	= (BRVA[7..0],VCC,VCC,VCC,VCC,VCC,RBRVA[10..8],GND,GND); | ||||
| 			V_CST[].d = (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 			IF VCM2 THEN | ||||
| --				TSN_W3.d  = X_MODE5; | ||||
| 				TSN_W3.d  = X_MODE_BOND; | ||||
| --				V_CST[].d = (VCC,X_MODE5); | ||||
| 			ELSE | ||||
| 				TSN_W3.d  = X_MODE_BOND; | ||||
| --				V_CST[].d = (VCC,X_MODE_BOND); | ||||
| 			END IF; | ||||
| 		WHEN 1 => | ||||
| 			WR_PIC.d	= !VCM2; | ||||
| 			WR_COL.d	= VCM2; | ||||
| 			VLA[].d		= SVA[]; | ||||
| 			V_CST[].d = (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 		WHEN 2 => | ||||
| 			VLA[].d		= VXA[17..0]; | ||||
| 			V_CST[].d 	= (!VXA18,VXA18) or MXWE; | ||||
| 			V_WE.d		= MXWE; | ||||
| 			V_WEX.d		= GND; | ||||
| 			V_WET[].d	= MXWE or !((!VXA1 & !VXA0),(!VXA1 & VXA0),(VXA1 & !VXA0),(VXA1 & VXA0)); | ||||
| 		WHEN 3 => | ||||
| 			WR_PIC.d	= X_MODE5; | ||||
| 			VLA[].d		= (DIR_PORT3,CTH[5..0],CT5,VCC,VCC,CTV[8..3],GND,GND); | ||||
| 			WR_MODE.d	= !(CT[5..3] == B"111") & !(CT4 & CT3 & !MODE0[5]); | ||||
| 			V_CST[].d 	= (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	choose V-RAM komplect | ||||
| 
 | ||||
| 	V_CST1.prn	= GND; | ||||
| --	V_CS0.clrn	= GND; | ||||
| 	V_CST0.prn	= (LCELL(DFF(GND,!CLK42,,!V_CST0))); | ||||
| 	V_CS1	= VCC; | ||||
| --	V_CS0	= LCELL(V_CST0); | ||||
| 
 | ||||
| 	V_CSX0	= LCELL(!CLK42); | ||||
| 	V_CSX1	= LCELL(V_CSX0); | ||||
| 	V_CSX2	= LCELL(V_CSX1 & V_CSX0); | ||||
| 	V_CSX3	= LCELL(V_CSX2); | ||||
| 
 | ||||
| --	V_CS0	= V_CSX3; | ||||
| 	V_CS0	= GND; | ||||
| 
 | ||||
| --	===================== | ||||
| 
 | ||||
| 	SVA[].clk	= CLK42; | ||||
| 	SVA[9..6]	= MODE0[3..0]; | ||||
| --	RSVA[].clk	= CLK42; | ||||
| 	(SVA[12..10],SVA[5..0]) = RSVA[]; | ||||
| 
 | ||||
| --	M_CTV[2..0].clk	= CLK42; | ||||
| --	M_CT[5..3].clk	= CLK42; | ||||
| 	M_CTV[2..0]	= (!MODE2[2] & CTV[2..0]) or MODE2[2] & (MODE2[1],CTV[2..1]); | ||||
| 	M_CT[5..3]	= (!MODE2[2] & (CT[5],!CT[4..3])) or MODE2[2] & (MODE2[0],!CT[5..4]); | ||||
| 
 | ||||
| 	CASE (!VCM2,MODE0[4]) IS | ||||
| --	CASE (!VCM1,MODE0[4]) IS | ||||
| 		WHEN B"X0" => | ||||
| 			--	Graf adress  -- | ||||
| 			RSVA[] = (M_CTV[2..0],MODE1[2..0],M_CT[5..3]); | ||||
| 			SVA[17..13] = MODE1[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = CTV[2..0]; | ||||
| --			SVA[5..0]	= (MODE1[2..0],CT5,!CT[4..3]); | ||||
| 		WHEN B"01" => | ||||
| 			--	ZX-atr adress  -- | ||||
| 			RSVA[] = (MODE2[2..0],SCR128,VCC,VCC,GND,!MODE0[7..6]); | ||||
| 			SVA[17..13] = MODE2[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = MODE2[2..0]; | ||||
| --			SVA[5..0]	= (SCR128,VCC,VCC,GND,!MODE0[7..6]); | ||||
| 		WHEN B"11" => | ||||
| 			--	ZX-pic adress  -- | ||||
| 			RSVA[] = (MODE1[2..0],SCR128,MODE0[7..6],CTV2,!CTV1,!CTV0); | ||||
| 			SVA[17..13] = MODE1[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = MODE1[2..0]; | ||||
| --			SVA[5..0]	= (SCR128,MODE0[7..6],CTV2,!CTV1,!CTV0); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	X_MODE_BOND	= LCELL(LCELL(DCOL[7..4] == 15) & LCELL(DCOL[3..0] == 15) & DFF((MODE0[7] & MODE0[5] & !MODE0[4]),LWR_COL,VCC,VCC)); | ||||
| 	X_MODE_BOND	= GND; | ||||
| 
 | ||||
| --	LD_PIC	= LCELL((MODE0[5] & DFF((CT[5..3] == B"000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| 	LD_PIC	= LCELL((MODE0[5] & DFF((CT[5..3] == B"000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| 
 | ||||
| --	CASE (DFF(VLA1,!CLK42,,),DFF(VLA0,!CLK42,,)) IS | ||||
| 
 | ||||
| --	D_PIC0_[].clk	= !CLK42; | ||||
| --	D_PIC1_[].clk	= !CLK42; | ||||
| --	D_PIC2_[].clk	= !CLK42; | ||||
| --	D_PIC3_[].clk	= !CLK42; | ||||
| 
 | ||||
| --	PIC_CLK			= LCELL(LCELL(CLK42)); | ||||
| 	PIC_CLK			= !CLK42; | ||||
| 
 | ||||
| 	D_PIC0_[].clk	= PIC_CLK; | ||||
| 	D_PIC1_[].clk	= PIC_CLK; | ||||
| 	D_PIC2_[].clk	= PIC_CLK; | ||||
| 	D_PIC3_[].clk	= PIC_CLK; | ||||
| 
 | ||||
| 	D_PIC0_[] = VDM0[]; | ||||
| 	D_PIC1_[] = VDM1[]; | ||||
| 	D_PIC2_[] = VDM2[]; | ||||
| 	D_PIC3_[] = VDM3[]; | ||||
| 
 | ||||
| 	CASE (DFF(VLA1,CLK42,,),DFF(VLA0,CLK42,,)) IS | ||||
| 		WHEN 0 => D_PICX_[] = D_PIC0_[]; | ||||
| 		WHEN 1 => D_PICX_[] = D_PIC1_[]; | ||||
| 		WHEN 2 => D_PICX_[] = D_PIC2_[]; | ||||
| 		WHEN 3 => D_PICX_[] = D_PIC3_[]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MODE0[].ena 	= VCC; | ||||
| 	MODE1[].ena 	= VCC; | ||||
| 	MODE2[].ena 	= VCC; | ||||
| 	MODE0[].clk		= LWR_MODE; | ||||
| 	MODE1[].clk		= LWR_MODE; | ||||
| 	MODE2[].clk		= LWR_MODE; | ||||
| 	MODE0[].d		= VDM3[]; | ||||
| 	MODE1[].d		= VDM2[]; | ||||
| 	MODE2[].d		= VDM1[]; | ||||
| 	LWR_MODE		= LCELL(LCELL(WR_MODE)); | ||||
| % | ||||
| 	MODE0[].ena 	= LWR_MODE; | ||||
| 	MODE1[].ena 	= LWR_MODE; | ||||
| 	MODE2[].ena 	= LWR_MODE; | ||||
| 	MODE0[].clk		= CLK42; | ||||
| 	MODE1[].clk		= CLK42; | ||||
| 	MODE2[].clk		= CLK42; | ||||
| 	MODE0[].d		= D_PIC3_[]; | ||||
| 	MODE1[].d		= D_PIC2_[]; | ||||
| 	MODE2[].d		= D_PIC1_[]; | ||||
| 	LWR_MODE		= DFF(!WR_MODE,CLK42,,); | ||||
| % | ||||
| 	X_MODE7	= DFF(MODE0[7],LWR_COL,,); | ||||
| 	X_MODE6	= DFF(MODE0[6],LWR_COL,,); | ||||
| 	X_MODE5	= DFF(MODE0[5],LWR_COL,,); | ||||
| 	X_MODE4 = DFF(MODE0[4],LWR_COL,,); | ||||
| 
 | ||||
| 	VAO[]	= VLA[17..2]; | ||||
| 
 | ||||
| 	WR_PIC.clk		= CLK42; | ||||
| 	WR_COL.clk		= CLK42; | ||||
| 	WR_MODE.clk		= CLK42; | ||||
| 
 | ||||
| --	LWR_PIC		= LCELL(LCELL(WR_PIC)); | ||||
| --	LWR_COL		= LCELL(LCELL(WR_COL)); | ||||
| --	LWR_PIC		= LCELL(WR_PIC); | ||||
| --	LWR_COL		= LCELL(WR_COL); | ||||
| 	LWR_PIC		= DFF(WR_PIC,CLK42,,); | ||||
| 	LWR_COL		= DFF(WR_COL,CLK42,,); | ||||
| 
 | ||||
| --	D_PIC0[].ena	= VCC; | ||||
| --	D_PIC0[].clk	= (LWR_PIC); | ||||
| 	D_PIC0[].ena	= !LWR_PIC; | ||||
| 	D_PIC0[].clk	= CLK42; | ||||
| 
 | ||||
| 	IF LD_PIC THEN | ||||
| --		D_PIC0[] = D_PIC0_[]; | ||||
| 		D_PIC0[] = D_PICX_[]; | ||||
| 	ELSE | ||||
| 		D_PIC0[] = (D_PIC0[6..0],GND); | ||||
| 	END IF; | ||||
| 
 | ||||
| --	DCOL[].clk	= (LWR_COL); | ||||
| 	DCOL[].ena	= !LWR_COL; | ||||
| 	DCOL[].clk	= CLK42; | ||||
| 
 | ||||
| 	IF DFF((MODE0[7..4] == 15),WR_PIC,,) THEN | ||||
| 		DCOL[].d	= (B"00",BRD[2..0],BRD[2..0]); | ||||
| 	ELSE | ||||
| --		DCOL[].d	= D_PIC0_[]; | ||||
| 		DCOL[].d	= D_PICX_[]; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	DCOL[].clrn	= !BLANK; | ||||
| 
 | ||||
| 	BRVA[].clk	= CLK42; | ||||
| 	BRVA[].clrn	= !MS_POINT; | ||||
| 	BRVA[].prn	= !MS_POINT2; | ||||
| 
 | ||||
| --	CASE (LCELL(X_MODE4 or X_MODE5),CT2) IS | ||||
| 	CASE (DFF((MODE0[4] or MODE0[5]),LWR_COL,,),CT2) IS | ||||
| 		WHEN B"1X" => BRVA[7..0] = DCOL[]; | ||||
| 		WHEN B"01" => BRVA[7..0] = (B"0000",DCOL[7..4]); | ||||
| 		WHEN B"00" => BRVA[7..0] = (B"0000",DCOL[3..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	BRVA[10..8] = (x_mode4,RBRVA[9..8]); | ||||
| 	RBRVA[].clk = CLK42; | ||||
| 
 | ||||
| 	CASE (BORD,X_MODE4) IS | ||||
| 		WHEN B"X0" => RBRVA[10..8].d = (GND,X_MODE[7..6]); | ||||
| 		WHEN B"X1" => RBRVA[10..8].d = (VCC,(CTF4 & !BLANK),D_PIC0[7]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	RBRVA[9..8].clrn = !BORD; | ||||
| 	RBRVA[10].prn = !BORD; | ||||
| 
 | ||||
| 	CASE (RBRVA[9..8],BRVA7) IS | ||||
| 		WHEN 0,1,4,7 => ZX_COL[] = (BRVA[6],BRVA[5..3]); | ||||
| 		WHEN 2,3,6,5 => ZX_COL[] = (BRVA[6],BRVA[2..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	V_WET[].prn	= LCELL(DFF(GND,!CLK42,,!V_WE)); | ||||
| --	V_WE.prn	= LCELL(DFF(GND,!CLK42,,!V_WE)); | ||||
| 
 | ||||
| 	V_WE_R		= DFF(GND,!CLK42,,!V_WE); | ||||
| 	V_WE.prn	= V_WE_R; | ||||
| 	V_WET[].prn	= V_WE_R; | ||||
| 
 | ||||
| --	V_WR[]	= LCELL(V_WE) or !((!VXA1 & !VXA0),(!VXA1 & VXA0),(VXA1 & !VXA0),(VXA1 & VXA0)); | ||||
| 
 | ||||
| --	V_WR[]	= (V_WE) or !( | ||||
| 
 | ||||
| 	V_WEX.clk	= CLK42; | ||||
| --	V_WEX.d		= V_WE; | ||||
| --	V_WEX.prn	= (DFF(GND,CLK42,,!V_WEX)); | ||||
| 
 | ||||
| 
 | ||||
| --	V_WE_R1	= LCELL(V_WE); | ||||
| --	V_WEMMM	= LCELL(V_WE_R1); | ||||
| 
 | ||||
| 	V_WEMMM	= LCELL(V_WE); | ||||
| 	V_WEMMN	= LCELL(V_WEMMM); -- bios ok, fn ok, fnf1 failed, zx almost ok | ||||
| 	V_WEMMO	= LCELL(V_WEMMN); -- green arts | ||||
| 	V_WEMMP	= LCELL(V_WEMMO); -- blue + pink arts | ||||
| 	V_WEMMR	= LCELL(V_WEMMP); -- no F1 issue, but red arts (fix by finger, not enough capacity??) | ||||
| 	V_WEMMS	= LCELL(V_WEMMR);  | ||||
| --	V_WEMMT	= LCELL(V_WEMMS); | ||||
| --	V_WEMMU	= LCELL(V_WEMMT); | ||||
| --	V_WEMMV	= LCELL(V_WEMMU); | ||||
| --	V_WEMMW	= LCELL(V_WEMMV); | ||||
| --	V_WEMMX	= LCELL(V_WEMMW); | ||||
| --	V_WEMMY	= LCELL(V_WEMMX); | ||||
| --	V_WEMMZ	= LCELL(V_WEMMY); | ||||
| 
 | ||||
| 	V_WRM	= LCELL(V_WEMMN or V_WEMMM); | ||||
| --	V_WRM2	= LCELL(V_WEMMR); | ||||
| --	V_WRM	= LCELL(V_WEMMM or V_WEMMN); | ||||
| --	V_WRM2	= LCELL(V_WEMMM or V_WEMMN); | ||||
| 
 | ||||
| 	V_WEM	= LCELL(V_WE); | ||||
| --	V_WEM2	= LCELL(V_WE); | ||||
| --	V_WEM	= LCELL(V_WEMMM & V_WEMMN); | ||||
| --	V_WEM2	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 
 | ||||
| 	F_WR	= DFF(VCC,V_WE,,); | ||||
| 	V_EN3	= DFF(!(!VXA1 & (!VXA0 or DOUBLE)), CLK42, F_WR,); | ||||
| 	V_EN2	= DFF(!(!VXA1 & (VXA0 or DOUBLE)), CLK42, F_WR,); | ||||
| 	V_EN1	= DFF(!(VXA1 & (!VXA0 or DOUBLE)), CLK42, F_WR,); | ||||
| 	V_EN0	= DFF(!(VXA1 & (VXA0 or DOUBLE)), CLK42, F_WR,); | ||||
| 
 | ||||
| 
 | ||||
| 	V_WR_3	= (V_WRM or V_EN3); | ||||
| 	V_WR_2	= (V_WRM or V_EN2); | ||||
| 	V_WR_1	= (V_WRM or V_EN1); | ||||
| 	V_WR_0	= (V_WRM or V_EN0); | ||||
| 
 | ||||
| 	V_WEY3	= V_WEM or V_EN3; | ||||
| 	V_WEY2	= V_WEM or V_EN2; | ||||
| 	V_WEY1	= V_WEM or V_EN1; | ||||
| 	V_WEY0	= V_WEM or V_EN0; | ||||
| 
 | ||||
| 	V_WR[]	= V_WR_[]; | ||||
| 	V_WEN[]	= V_WEY[]; | ||||
| 
 | ||||
| --	CLK84	= LCELL(CLK42 xor CLK84_X); | ||||
| --	CLK84_X	= DFF(!CLK84_X,CLK84,,); | ||||
| --	CLK84_Y	= CLK84; | ||||
| 
 | ||||
| END GENERATE;	-- end "sprinter" mode | ||||
| 
 | ||||
| 
 | ||||
| END; | ||||
							
								
								
									
										773
									
								
								src/altera/acex/k30/VIDEO2_T2.TDF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										773
									
								
								src/altera/acex/k30/VIDEO2_T2.TDF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,773 @@ | ||||
| 
 | ||||
| 	TITLE "Video-controller"; | ||||
| 
 | ||||
| INCLUDE "lpm_ram_dp"; | ||||
| 
 | ||||
| PARAMETERS | ||||
| 	( | ||||
| 	MODE = "SPRINTER", | ||||
| 	MOUSE = "NO", | ||||
| 	HOR_PLACE = H"50", | ||||
| 	VER_PLACE = H"91"   -- 122h/2 | ||||
| 	); | ||||
| 
 | ||||
| SUBDESIGN video2 | ||||
| 	( | ||||
| 	CLK42		: INPUT; | ||||
| 
 | ||||
| 	CT[5..0]	: OUTPUT; | ||||
| 	CTH[5..0]	: OUTPUT; | ||||
| 	CTV[8..0]	: OUTPUT; | ||||
| 	CTF[6..0]	: OUTPUT; | ||||
| 
 | ||||
| 	BLANK		: OUTPUT; | ||||
| 
 | ||||
| 	START_UP	: INPUT; | ||||
| 	COPY_SINC_H	: INPUT; | ||||
| 	COPY_SINC_V	: INPUT; | ||||
| 
 | ||||
| 	WR			: INPUT; | ||||
| 
 | ||||
| 	VAI[19..0]	: INPUT;	-- input screen adress | ||||
| 
 | ||||
| 	VAO[15..0]	: OUTPUT; | ||||
| 
 | ||||
| 	D[7..0]		: INPUT; | ||||
| 	MDI[15..0]	: INPUT; | ||||
| 
 | ||||
| 	VDO0[7..0]	: OUTPUT; | ||||
| 	VDO1[7..0]	: OUTPUT; | ||||
| 	VDO2[7..0]	: OUTPUT; | ||||
| 	VDO3[7..0]	: OUTPUT; | ||||
| 
 | ||||
| 	VDM0[7..0]	: INPUT; | ||||
| 	VDM1[7..0]	: INPUT; | ||||
| 	VDM2[7..0]	: INPUT; | ||||
| 	VDM3[7..0]	: INPUT; | ||||
| 
 | ||||
| 	V_WR[3..0]	: OUTPUT; | ||||
| 	V_WEN[3..0]	: OUTPUT; | ||||
| 
 | ||||
| 	V_CS[1..0]	: OUTPUT; | ||||
| 	WR_PIX		: OUTPUT; | ||||
| 
 | ||||
| --	ZX_COLOR[3..0]	: OUTPUT; | ||||
| 
 | ||||
| 	ZX_PORT[7..0]	: INPUT; | ||||
| 	DIR_PORT[7..0]	: INPUT; | ||||
| 
 | ||||
| % | ||||
| 	bit0	- Spectrum SCREEN Switch | ||||
| 	bit1	- Spectrum Adress MODE | ||||
| 	bit2	- Write to Spectrum Screen OFF | ||||
| 	bit3	- MODE page 0/1 | ||||
| 	bit4	- MODE on/off screen | ||||
| 
 | ||||
| 	bit7..5	- Border | ||||
| % | ||||
| 
 | ||||
| 	INTT		: OUTPUT; | ||||
| 
 | ||||
| 	DOUBLE_CAS	: INPUT; | ||||
| 
 | ||||
| 	MOUSE_X[9..0]	: INPUT; | ||||
| 	MOUSE_Y[9..0]	: INPUT; | ||||
| 
 | ||||
| 
 | ||||
| 	) | ||||
| VARIABLE | ||||
| 
 | ||||
| --	CLK84		: NODE; | ||||
| --	CLK84_X		: NODE; | ||||
| --	CLK84_Y		: NODE; | ||||
| 
 | ||||
| 	ZX_COLOR[3..0]	: NODE; | ||||
| 
 | ||||
| 	CT[5..0]	: DFFE; | ||||
| 	CTH[5..0]	: DFFE; | ||||
| 	CTV[8..0]	: DFFE; | ||||
| 	CTF[6..0]	: DFF; | ||||
| 
 | ||||
| 	VXA[19..0]	: DFFE; | ||||
| 
 | ||||
| 	VXD0[7..0]	: DFFE; | ||||
| 	VXD1[7..0]	: DFFE; | ||||
| 	VXD2[7..0]	: DFFE; | ||||
| 	VXD3[7..0]	: DFFE; | ||||
| 
 | ||||
| 	E_WR		: NODE; | ||||
| 	E_WRD		: NODE; | ||||
| 
 | ||||
| 	BLANK		: NODE; | ||||
| 	BORD		: NODE; | ||||
| --	INTT_T		: NODE; | ||||
| 	INTTX		: NODE; | ||||
| 
 | ||||
| 	VLA[17..0]	: DFF; | ||||
| --	SVA[17..0]	: NODE; | ||||
| 	SVA[17..0]	: DFF; | ||||
| --	RSVA[8..0]	: LCELL; | ||||
| 	RSVA[8..0]	: NODE; | ||||
| --	RSVA[8..0]	: DFF; | ||||
| 
 | ||||
| 	V_CST[1..0]	: DFF; | ||||
| 	VCM[2..0]	: DFF; | ||||
| 	TSN_W3		: DFF; | ||||
| 	V_WE		: DFF; | ||||
| 	V_WEX		: DFF; | ||||
| 
 | ||||
| 	V_WEM		: NODE; | ||||
| 	V_WEM2		: NODE; | ||||
| 	V_WRM		: NODE; | ||||
| 	V_WRM2		: NODE; | ||||
| % | ||||
| 	V_WEMM		: NODE; | ||||
| 	V_WEMMM		: NODE; | ||||
| 	V_WEMMN		: NODE; | ||||
| 	V_WEMMO		: NODE; | ||||
| % | ||||
| 	V_WEMM		: NODE; | ||||
| 	V_WEMMM		: NODE; | ||||
| 	V_WEMMN		: NODE; | ||||
| 	V_WEMMO		: NODE; | ||||
| 	V_WEMMP		: NODE; | ||||
| 	V_WEMMQ		: NODE; | ||||
| 	V_WEMMR		: NODE; | ||||
| 	V_WEMMS		: NODE; | ||||
| 	V_WEMMT		: NODE; | ||||
| 	V_WEMMU		: NODE; | ||||
| 	V_WEMMV		: NODE; | ||||
| 	V_WEMMW		: NODE; | ||||
| 	V_WEMMX		: NODE; | ||||
| 	V_WEMMY		: NODE; | ||||
| 	V_WEMMZ		: NODE; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	V_WET[3..0]	: DFF; | ||||
| 
 | ||||
| 	D_PIC0[7..0]	: DFFE; | ||||
| --	D_PIC0_[7..0]	: LCELL; | ||||
| 
 | ||||
| 	D_PIC0_[7..0]	: DFFE; | ||||
| 	D_PIC1_[7..0]	: DFFE; | ||||
| 	D_PIC2_[7..0]	: DFFE; | ||||
| 	D_PIC3_[7..0]	: DFFE; | ||||
| 
 | ||||
| 	D_PICX_[7..0]	: NODE; | ||||
| 
 | ||||
| 	LWR_PIC		: NODE; | ||||
| 	LWR_COL		: NODE; | ||||
| 
 | ||||
| 	WR_PIC		: DFF; | ||||
| 	WR_COL		: DFF; | ||||
| 	LD_PIC		: NODE; | ||||
| MXL: NODE; | ||||
| MXR: NODE; | ||||
| 
 | ||||
| 	RBRVA[10..8]: DFF; | ||||
| 	BRVA[7..0]	: DFF; | ||||
| 	DCOL[7..0]	: DFFE; | ||||
| 
 | ||||
| 	MXWE		: NODE; | ||||
| --	MXCE		: NODE; | ||||
| 
 | ||||
| 	AX128		: NODE; | ||||
| 
 | ||||
| 	BRD[2..0]	: NODE; | ||||
| 
 | ||||
| 	ZX_COL[3..0]	: LCELL; | ||||
| 
 | ||||
| 	ZXA15		: NODE; | ||||
| 	ZXS[5..0]	: NODE; | ||||
| 	ZX_SCREEN	: NODE; | ||||
| 	SCR128		: NODE; | ||||
| 
 | ||||
| 	MODE0[7..0]		: DFFE; | ||||
| 	MODE1[7..0]		: DFFE; | ||||
| 	MODE2[7..0]		: DFFE; | ||||
| --	MODE3[7..0]		: DFF; | ||||
| 
 | ||||
| 	WR_MODE		: DFF; | ||||
| 	LWR_MODE	: NODE; | ||||
| 	X_MODE[7..4]: NODE; | ||||
| 	X_MODE_BOND	: NODE; | ||||
| 
 | ||||
| --	M_CTV[2..0]	: DFF; | ||||
| --	M_CT[5..3]  : DFF; | ||||
| 	M_CTV[2..0]	: LCELL; | ||||
| 	M_CT[5..3]  : LCELL; | ||||
| 
 | ||||
| 	DOUBLE		: DFFE; | ||||
| 
 | ||||
| 	PIC_CLK		: NODE; | ||||
| 
 | ||||
| 	MS_X[9..0]	: DFF; | ||||
| 	MS_Y[9..0]	: DFF; | ||||
| 
 | ||||
| 	MS_POINT	: NODE; | ||||
| 	MS_POINT2	: NODE; | ||||
| 	MS_PNT		: NODE; | ||||
| 
 | ||||
| 	MS_DAT		: LPM_RAM_DP WITH (LPM_WIDTH=16,LPM_WIDTHAD=8,LPM_FILE="MOUSE.MIF"); | ||||
| 
 | ||||
| 	SCR_ENA		: DFFE; | ||||
| 	V_WR_[3..0]	: LCELL; | ||||
| 	V_WEY[3..0]	: LCELL; | ||||
| 
 | ||||
| 	V_WE_R		: NODE; | ||||
| 
 | ||||
| 	V_CSX[3..0]	: NODE; | ||||
| 
 | ||||
| 	V_EN[3..0]	: NODE; | ||||
| 
 | ||||
| 	F_WR		: NODE; | ||||
| 
 | ||||
| BEGIN | ||||
| 
 | ||||
| 	DEFAULTS | ||||
| 		WR_MODE.d	= VCC; -- WR_MODE2.d	= VCC; -- WR_MODE2X.d	= VCC; | ||||
| 		V_CST[].d	= VCC; V_WR[]		= VCC; TSN_W3.d		= VCC; | ||||
| 		V_WE.d		= VCC; WR_COL.d		= VCC; WR_PIC.d		= VCC; | ||||
| 		V_WET[].d	= VCC; | ||||
| 	END DEFAULTS; | ||||
| 
 | ||||
| 	ZX_COLOR[] = ZX_COL[]; | ||||
| 
 | ||||
| --	=== MOUSE counters ======== | ||||
| 
 | ||||
| 	MS_X[].clk	= !CT1; | ||||
| 	CASE LCELL(CTH[5..2] == 12) IS | ||||
| 		WHEN 0 => MS_X[] = MS_X[] + 1; | ||||
| 		WHEN 1 => MS_X[] = (!MOUSE_X[9..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MS_Y[].clk	= !CTH5; | ||||
| 	CASE LCELL(CTV8 & !CTV5 & CTV4) IS | ||||
| 		WHEN 0 => MS_Y[] = MS_Y[] + 1; | ||||
| 		WHEN 1 => MS_Y[] = (GND,!MOUSE_Y[8..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MS_PNT = DFF(((MS_X[] == B"100000XXXX") & (MS_Y[] == B"100000XXXX")),CLK42,,); | ||||
| 
 | ||||
| 	MS_DAT.wren 		= GND; | ||||
| 	MS_DAT.data[] 		= GND; | ||||
| 	MS_DAT.wraddress[]	= GND; | ||||
| 	MS_DAT.wrclock		= CLK42; | ||||
| 	MS_DAT.wrclken		= GND; | ||||
| 	MS_DAT.rden			= VCC; | ||||
| 	MS_DAT.rdaddress[]	= (MS_Y[3..0],MS_X[3..0]); | ||||
| 	MS_DAT.rdclock		= CLK42; | ||||
| 	MS_DAT.rdclken		= VCC; | ||||
| 
 | ||||
| 	IF MOUSE == "NO" GENERATE | ||||
| 		MS_POINT	= GND; | ||||
| 		MS_POINT2	= GND; | ||||
| 	ELSE GENERATE | ||||
| 		MS_POINT	= DFF((MS_PNT & MS_DAT.q0),CLK42,,); | ||||
| 		MS_POINT2	= DFF((MS_PNT & MS_DAT.q1),CLK42,,); | ||||
| 	END GENERATE; | ||||
| 
 | ||||
| --	=== Sinc-counts GENERATOR ============================================ | ||||
| 
 | ||||
| --	CT[].clrn	= START_UP; | ||||
| 
 | ||||
| --	(,CTH[5..0].clrn,CT[5].clrn) = !COPY_SINC_H or HOR_PLACE; | ||||
| --	(,CTH[5..0].prn ,CT[5].prn ) = !COPY_SINC_H or !HOR_PLACE; | ||||
| 
 | ||||
| --	CTV[].clrn = !COPY_SINC_V or VER_PLACE; | ||||
| --	CTV[].prn  = !COPY_SINC_V or !VER_PLACE; | ||||
| 
 | ||||
| 	CT[5].clrn		= !COPY_SINC_H; | ||||
| 
 | ||||
| 	-- set CTH to 50 (32h) | ||||
| 	CTH[0].clrn		= !COPY_SINC_H; | ||||
| 	CTH[1].prn 		= !COPY_SINC_H; | ||||
| 	CTH[2].clrn		= !COPY_SINC_H; | ||||
| 	CTH[3].clrn		= !COPY_SINC_H; | ||||
| 	CTH[4].prn 		= !COPY_SINC_H; | ||||
| 	CTH[5].prn		= !COPY_SINC_H; | ||||
| 
 | ||||
| 	-- set CTV to 122h | ||||
| 	CTV[0].clrn		= !COPY_SINC_V; | ||||
| 	CTV[1].prn		= !COPY_SINC_V; | ||||
| 	CTV[3..2].clrn	= !COPY_SINC_V; | ||||
| 
 | ||||
| 	CTV[4].clrn		= !COPY_SINC_V; | ||||
| 	CTV[5].prn		= !COPY_SINC_V; | ||||
| 	CTV[7..6].clrn	= !COPY_SINC_V; | ||||
| 	CTV[8].prn		= !COPY_SINC_V; | ||||
| 
 | ||||
| 	CT[5..0].clk	= CLK42; | ||||
| 	CTH[5..0].clk	= CLK42; | ||||
| 	CTV[8..0].clk	= CLK42; | ||||
| 
 | ||||
| 	CT[2..0].ena	= VCC; | ||||
| 
 | ||||
| 	CASE CT[2..0] IS | ||||
| 		WHEN 0 => CT[2..0] = 1; | ||||
| 		WHEN 1 => CT[2..0] = 2; | ||||
| 		WHEN 2 => CT[2..0] = 4; | ||||
| 		WHEN 3 => CT[2..0] = 4; | ||||
| 		WHEN 4 => CT[2..0] = 5; | ||||
| 		WHEN 5 => CT[2..0] = 6; | ||||
| 		WHEN 6 => CT[2..0] = 0; | ||||
| 		WHEN 7 => CT[2..0] = 0; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 								  -- for remove sinc jitter | ||||
| --	CT[5..3].ena	= DFF(((CT0 & CT2) or (COPY_SINC_H & !CT4)),CLK42,,); | ||||
| 	CT[5..3].ena	= DFF((CT0 & CT2),CLK42,,); | ||||
| 	CT[5..3]		= CT[5..3]+1; | ||||
| % | ||||
| 	CASE CT[4..3] IS | ||||
| 		WHEN 0 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 1 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 2 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 3 => CT[5..3]	= CT[5..3]+1; | ||||
| 	END CASE; | ||||
| % | ||||
| 	CTH[].ena		= DFF(((CT[5..2] == 15) & CT0),CLK42,,); | ||||
| 	CTV[].ena		= DFF(((CT[5..2] == 15) & CT0 & (CTH[] == 48)),CLK42,,); | ||||
| 
 | ||||
| 	IF CTH[] == 55 THEN | ||||
| 		CTH[]	= GND; | ||||
| 	ELSE | ||||
| 		CTH[]	= CTH[] + 1; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	IF CTV[] == 319 THEN | ||||
| 		CTV[]	= GND; | ||||
| 	ELSE | ||||
| 		CTV[]	= CTV[] + 1; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	CTF[].clk	= CTV8; | ||||
| 	CTF[]		= CTF[]+1; | ||||
| 
 | ||||
| --	==== Video ========================================================== | ||||
| 
 | ||||
| 	ZXS[]		= ZX_PORT[5..0];	-- pages ZX Screens | ||||
| 	ZX_SCREEN	= ZX_PORT6;			-- enable ZX Screen write | ||||
| 	ZXA15		= ZX_PORT7;			-- ZX A15' line | ||||
| 
 | ||||
| 	SCR128		= DIR_PORT0; | ||||
| 
 | ||||
| --	WR_PIX	= LCELL(TSN_W3); | ||||
| 	WR_PIX	= (TSN_W3); | ||||
| 
 | ||||
| 	DOUBLE.clk = CLK42; DOUBLE.ena = !E_WR; DOUBLE	= DOUBLE_CAS; | ||||
| 	VXA[].clk  = CLK42; VXA[].ena  = !E_WR; | ||||
| 
 | ||||
| 	VXD0[].clk = CLK42; VXD0[].ena = !E_WRD;	VDO0[]	= VXD0[]; | ||||
| 	VXD1[].clk = CLK42; VXD1[].ena = !E_WRD;	VDO1[]	= VXD1[]; | ||||
| 	VXD2[].clk = CLK42; VXD2[].ena = !E_WRD;	VDO2[]	= VXD2[]; | ||||
| 	VXD3[].clk = CLK42; VXD3[].ena = !E_WRD;	VDO3[]	= VXD3[]; | ||||
| 
 | ||||
| --	VXD0[] = D[]; | ||||
| --	VXD1[] = D[]; | ||||
| --	VXD2[] = D[]; | ||||
| --	VXD3[] = D[]; | ||||
| 
 | ||||
| 	(VXD0[],VXD1[]) = MDI[]; | ||||
| 	(VXD2[],VXD3[]) = MDI[]; | ||||
| 
 | ||||
| 	BRD[]		= DIR_PORT[7..5]; | ||||
| 
 | ||||
| 	VCM[].clk	= CLK42; | ||||
| 	TSN_W3.clk	= CLK42; | ||||
| 	V_CST[].clk	= CLK42; | ||||
| 	V_WE.clk	= CLK42; | ||||
| 	V_WET[].clk	= CLK42; | ||||
| 	VLA[].clk	= CLK42; | ||||
| 
 | ||||
| 	SCR_ENA.clk	= CLK42; | ||||
| 	SCR_ENA.ena	= !E_WR; | ||||
| 	SCR_ENA.d	= !(VAI19 or ZX_SCREEN); | ||||
| 
 | ||||
| 	E_WRD	= DFF(E_WR,CLK42,,); | ||||
| 	E_WR = LCELL(WR or !(VAI19 or ZX_SCREEN) or !DFF(WR,CLK42,,)); | ||||
| --	E_WR = LCELL(WR or !DFF(WR,CLK42,,)); | ||||
| 
 | ||||
| --	**************************************************** | ||||
| 
 | ||||
| IF MODE == "SPRINTER" GENERATE | ||||
| 
 | ||||
| --	VAI[19]	- switch adress mode	1 - graf mode, 0 - spectrum mode | ||||
| 
 | ||||
| --	MXWE	= DFF(((DFF(E_WR,CLK42,,) or SCR_ENA)  & MXWE),CLK42,,V_WE); | ||||
| 	MXWE	= DFF(MXWE,CLK42,E_WR,V_WE); | ||||
| 
 | ||||
| 	IF VAI[19] THEN | ||||
| 		-- in graf mode all 256k(512k) range | ||||
| 		VXA[]	= VAI[]; | ||||
| 	ELSE | ||||
| 		-- in spectrum mode 8k/16k range pages | ||||
| 		VXA[]	= (GND,GND,VAI[7..0],ZXS[4..1],LCELL(ZXS0 xor ZXA15 xor VAI13),VAI[12..8]); | ||||
| 	END IF; | ||||
| 
 | ||||
| --	BORD	= DFF((MODE0[7..4] == 15),WR_PIC,,); | ||||
| --	BLANK	= DFF((BORD & MODE03 & MODE02),WR_PIC,,); | ||||
| --	INTTX 	= DFF((BORD & MODE03 & MODE02 & MODE00),WR_PIC,,); | ||||
| 
 | ||||
| 	BORD	= DFF((MODE0[7..4] == 15),LWR_COL,,); | ||||
| 	BLANK	= DFF(((BORD & MODE03 & MODE02) or DIR_PORT4),LWR_COL,,); | ||||
| 	INTTX 	= DFF((BORD & MODE03 & MODE02 & MODE00),LWR_COL,,); | ||||
| 
 | ||||
| 	INTT	= DFF(!(INTTX & (CTV[2..0] == 7)),CT5,,); | ||||
| 
 | ||||
| --	INTT	= DFF((INTTX or DFF(INTTX,CT5,,)),CT5,,); | ||||
| --	INTT	= DFF(!(BLANK & (CTV[2..0] == 7)),CLK42,,MODE0[0]); | ||||
| 
 | ||||
| 	CASE CT[2..0] IS | ||||
| 		WHEN B"110" => VCM[2..0].d = 5; -- 110 -> 101  6 -> 5 | ||||
| 		WHEN B"000" => VCM[2..0].d = 1; -- 000 -> 001  0 -> 1 | ||||
| 		WHEN B"001" => VCM[2..0].d = 4; -- 001 -> 100  1 -> 4 | ||||
| 		WHEN B"010" => VCM[2..0].d = 3; -- 010 -> 011  2 -> 3 | ||||
| 		WHEN B"100" => VCM[2..0].d = 2; -- 100 -> 010  4 -> 2 | ||||
| 		WHEN B"101" => VCM[2..0].d = 0; -- 101 -> 000  5 -> 0 | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE VCM[1..0] IS | ||||
| 		WHEN 0 => | ||||
| 			VLA[].d	= (BRVA[7..0],VCC,VCC,VCC,VCC,VCC,RBRVA[10..8],GND,GND); | ||||
| 			V_CST[].d = (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 			IF VCM2 THEN | ||||
| --				TSN_W3.d  = X_MODE5; | ||||
| 				TSN_W3.d  = X_MODE_BOND; | ||||
| --				V_CST[].d = (VCC,X_MODE5); | ||||
| 			ELSE | ||||
| 				TSN_W3.d  = X_MODE_BOND; | ||||
| --				V_CST[].d = (VCC,X_MODE_BOND); | ||||
| 			END IF; | ||||
| 		WHEN 1 => | ||||
| 			WR_PIC.d	= !VCM2; | ||||
| 			WR_COL.d	= VCM2; | ||||
| 			VLA[].d		= SVA[]; | ||||
| 			V_CST[].d = (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 		WHEN 2 => | ||||
| 			VLA[].d		= VXA[17..0]; | ||||
| 			V_CST[].d 	= (!VXA18,VXA18) or MXWE; | ||||
| 			V_WE.d		= MXWE; | ||||
| 			V_WEX.d		= GND; | ||||
| 			V_WET[].d	= MXWE or !((!VXA1 & !VXA0),(!VXA1 & VXA0),(VXA1 & !VXA0),(VXA1 & VXA0)); | ||||
| 		WHEN 3 => | ||||
| --			WR_PIC.d	= X_MODE5; | ||||
| --			NEW 26.08.2022, fix bug with first column | ||||
| --			it was reproducing when changes mode 320 -> 640, like any 320px screen squares -> text mode squares | ||||
| 			WR_PIC.d	= MODE0[5]; | ||||
| 			VLA[].d		= (DIR_PORT3,CTH[5..0],CT5,VCC,VCC,CTV[8..3],GND,GND); | ||||
| 			WR_MODE.d	= !(CT[5..3] == B"111") & !(CT4 & CT3 & !MODE0[5]); | ||||
| 			V_CST[].d 	= (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	choose V-RAM komplect | ||||
| 
 | ||||
| 	V_CST1.prn	= GND; | ||||
| --	V_CS0.clrn	= GND; | ||||
| 	V_CST0.prn	= (LCELL(DFF(GND,!CLK42,,!V_CST0))); | ||||
| 	V_CS1	= VCC; | ||||
| --	V_CS0	= LCELL(V_CST0); | ||||
| 
 | ||||
| 	V_CSX0	= LCELL(!CLK42); | ||||
| 	V_CSX1	= LCELL(V_CSX0); | ||||
| 	V_CSX2	= LCELL(V_CSX1 & V_CSX0); | ||||
| 	V_CSX3	= LCELL(V_CSX2); | ||||
| 
 | ||||
| --	V_CS0	= V_CSX3; | ||||
| 	V_CS0	= GND; | ||||
| 
 | ||||
| --	===================== | ||||
| 
 | ||||
| 	SVA[].clk	= CLK42; | ||||
| 	SVA[9..6]	= MODE0[3..0]; | ||||
| --	RSVA[].clk	= CLK42; | ||||
| 	(SVA[12..10],SVA[5..0]) = RSVA[]; | ||||
| 
 | ||||
| --	M_CTV[2..0].clk	= CLK42; | ||||
| --	M_CT[5..3].clk	= CLK42; | ||||
| 	M_CTV[2..0]	= (!MODE2[2] & CTV[2..0]) or MODE2[2] & (MODE2[1],CTV[2..1]); | ||||
| 	M_CT[5..3]	= (!MODE2[2] & (CT[5],!CT[4..3])) or MODE2[2] & (MODE2[0],!CT[5..4]); | ||||
| 
 | ||||
| 	CASE (!VCM2,MODE0[4]) IS | ||||
| --	CASE (!VCM1,MODE0[4]) IS | ||||
| 		WHEN B"X0" => | ||||
| 			--	Graf adress  -- | ||||
| 			RSVA[] = (M_CTV[2..0],MODE1[2..0],M_CT[5..3]); | ||||
| 			SVA[17..13] = MODE1[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = CTV[2..0]; | ||||
| --			SVA[5..0]	= (MODE1[2..0],CT5,!CT[4..3]); | ||||
| 		WHEN B"01" => | ||||
| 			--	ZX-atr adress  -- | ||||
| 			RSVA[] = (MODE2[2..0],SCR128,VCC,VCC,GND,!MODE0[7..6]); | ||||
| 			SVA[17..13] = MODE2[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = MODE2[2..0]; | ||||
| --			SVA[5..0]	= (SCR128,VCC,VCC,GND,!MODE0[7..6]); | ||||
| 		WHEN B"11" => | ||||
| 			--	ZX-pic adress  -- | ||||
| 			RSVA[] = (MODE1[2..0],SCR128,MODE0[7..6],CTV2,!CTV1,!CTV0); | ||||
| 			SVA[17..13] = MODE1[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = MODE1[2..0]; | ||||
| --			SVA[5..0]	= (SCR128,MODE0[7..6],CTV2,!CTV1,!CTV0); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	X_MODE_BOND	= LCELL(LCELL(DCOL[7..4] == 15) & LCELL(DCOL[3..0] == 15) & DFF((MODE0[7] & MODE0[5] & !MODE0[4]),LWR_COL,VCC,VCC)); | ||||
| 	X_MODE_BOND	= GND; | ||||
| 
 | ||||
| --	LD_PIC	= LCELL((MODE0[5] & DFF((CT[5..3] == B"000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| --	LD_PIC	= LCELL((MODE0[5] & DFF((CT[5..3] == B"000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| 	LD_PIC  = LCELL((MODE0[5] & DFF((CT[5..2] == B"0000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| 
 | ||||
| 
 | ||||
| --	CASE (DFF(VLA1,!CLK42,,),DFF(VLA0,!CLK42,,)) IS | ||||
| 
 | ||||
| --	D_PIC0_[].clk	= !CLK42; | ||||
| --	D_PIC1_[].clk	= !CLK42; | ||||
| --	D_PIC2_[].clk	= !CLK42; | ||||
| --	D_PIC3_[].clk	= !CLK42; | ||||
| 
 | ||||
| --	PIC_CLK			= LCELL(LCELL(CLK42)); | ||||
| 	PIC_CLK			= !CLK42; | ||||
| 
 | ||||
| 	D_PIC0_[].clk	= PIC_CLK; | ||||
| 	D_PIC1_[].clk	= PIC_CLK; | ||||
| 	D_PIC2_[].clk	= PIC_CLK; | ||||
| 	D_PIC3_[].clk	= PIC_CLK; | ||||
| 
 | ||||
| 	D_PIC0_[] = VDM0[]; | ||||
| 	D_PIC1_[] = VDM1[]; | ||||
| 	D_PIC2_[] = VDM2[]; | ||||
| 	D_PIC3_[] = VDM3[]; | ||||
| 
 | ||||
| 	CASE (DFF(VLA1,CLK42,,),DFF(VLA0,CLK42,,)) IS | ||||
| 		WHEN 0 => D_PICX_[] = D_PIC0_[]; | ||||
| 		WHEN 1 => D_PICX_[] = D_PIC1_[]; | ||||
| 		WHEN 2 => D_PICX_[] = D_PIC2_[]; | ||||
| 		WHEN 3 => D_PICX_[] = D_PIC3_[]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MODE0[].ena 	= VCC; | ||||
| 	MODE1[].ena 	= VCC; | ||||
| 	MODE2[].ena 	= VCC; | ||||
| 	MODE0[].clk		= LWR_MODE; | ||||
| 	MODE1[].clk		= LWR_MODE; | ||||
| 	MODE2[].clk		= LWR_MODE; | ||||
| 	MODE0[].d		= VDM3[]; | ||||
| 	MODE1[].d		= VDM2[]; | ||||
| 	MODE2[].d		= VDM1[]; | ||||
| 	LWR_MODE		= LCELL(LCELL(WR_MODE)); | ||||
| % | ||||
| 	MODE0[].ena 	= LWR_MODE; | ||||
| 	MODE1[].ena 	= LWR_MODE; | ||||
| 	MODE2[].ena 	= LWR_MODE; | ||||
| 	MODE0[].clk		= CLK42; | ||||
| 	MODE1[].clk		= CLK42; | ||||
| 	MODE2[].clk		= CLK42; | ||||
| 	MODE0[].d		= D_PIC3_[]; | ||||
| 	MODE1[].d		= D_PIC2_[]; | ||||
| 	MODE2[].d		= D_PIC1_[]; | ||||
| 	LWR_MODE		= DFF(!WR_MODE,CLK42,,); | ||||
| % | ||||
| 	X_MODE7	= DFF(MODE0[7],LWR_COL,,); | ||||
| 	X_MODE6	= DFF(MODE0[6],LWR_COL,,); | ||||
| 	X_MODE5	= DFF(MODE0[5],LWR_COL,,); | ||||
| 	X_MODE4 = DFF(MODE0[4],LWR_COL,,); | ||||
| 
 | ||||
| 	VAO[]	= VLA[17..2]; | ||||
| 
 | ||||
| 	WR_PIC.clk		= CLK42; | ||||
| 	WR_COL.clk		= CLK42; | ||||
| 	WR_MODE.clk		= CLK42; | ||||
| 
 | ||||
| --	LWR_PIC		= LCELL(LCELL(WR_PIC)); | ||||
| --	LWR_COL		= LCELL(LCELL(WR_COL)); | ||||
| --	LWR_PIC		= LCELL(WR_PIC); | ||||
| --	LWR_COL		= LCELL(WR_COL); | ||||
| 	LWR_PIC		= DFF(WR_PIC,CLK42,,); | ||||
| 	LWR_COL		= DFF(WR_COL,CLK42,,); | ||||
| 
 | ||||
| --	D_PIC0[].ena	= VCC; | ||||
| --	D_PIC0[].clk	= (LWR_PIC); | ||||
| 	D_PIC0[].ena	= !LWR_PIC; | ||||
| 	D_PIC0[].clk	= CLK42; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	IF LD_PIC THEN | ||||
| --		D_PIC0[] = D_PIC0_[]; | ||||
| 		D_PIC0[] = D_PICX_[]; | ||||
| 	ELSE | ||||
| 		D_PIC0[] = (D_PIC0[6..0],GND); | ||||
| 	END IF; | ||||
| 
 | ||||
| 
 | ||||
| --	DCOL[].clk	= (LWR_COL); | ||||
| 	DCOL[].ena	= !LWR_COL; | ||||
| 	DCOL[].clk	= CLK42; | ||||
| 
 | ||||
| 	IF DFF((MODE0[7..4] == 15),WR_PIC,,) THEN | ||||
| 		DCOL[].d	= (B"00",BRD[2..0],BRD[2..0]); | ||||
| 	ELSE | ||||
| --		DCOL[].d	= D_PIC0_[]; | ||||
| 		DCOL[].d	= D_PICX_[]; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	DCOL[].clrn	= !BLANK; | ||||
| 
 | ||||
| 	BRVA[].clk	= CLK42; | ||||
| 	BRVA[].clrn	= !MS_POINT; | ||||
| 	BRVA[].prn	= !MS_POINT2; | ||||
| 
 | ||||
| -- 	MODE0[4] - graph / text | ||||
| --	MODE0[5] - 320 / 640 resolution | ||||
| 
 | ||||
| --	CASE (LCELL(X_MODE4 or X_MODE5),CT2) IS | ||||
| 	CASE (DFF((MODE0[4] or MODE0[5]),LWR_COL,,),CT2) IS | ||||
| 		WHEN B"1X" => BRVA[7..0] = DCOL[]; | ||||
| 		WHEN B"01" => BRVA[7..0] = (B"0000",DCOL[7..4]); | ||||
| 		WHEN B"00" => BRVA[7..0] = (B"0000",DCOL[3..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	BRVA[10..8] = (x_mode4,RBRVA[9..8]); | ||||
| 	RBRVA[].clk = CLK42; | ||||
| 
 | ||||
| 	CASE (BORD,X_MODE4) IS | ||||
| 		WHEN B"X0" => RBRVA[10..8].d = (GND,X_MODE[7..6]); | ||||
| 		WHEN B"X1" => RBRVA[10..8].d = (VCC,(CTF4 & !BLANK),D_PIC0[7]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	RBRVA[9..8].clrn = !BORD; | ||||
| 	RBRVA[10].prn = !BORD; | ||||
| 
 | ||||
| 	CASE (RBRVA[9..8],BRVA7) IS | ||||
| 		WHEN 0,1,4,7 => ZX_COL[] = (BRVA[6],BRVA[5..3]); | ||||
| 		WHEN 2,3,6,5 => ZX_COL[] = (BRVA[6],BRVA[2..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	V_WET[].prn	= LCELL(DFF(GND,!CLK42,,!V_WE)); | ||||
| --	V_WE.prn	= LCELL(DFF(GND,!CLK42,,!V_WE)); | ||||
| 
 | ||||
| 	V_WE_R		= DFF(GND,!CLK42,,!V_WE); | ||||
| 	V_WE.prn	= V_WE_R; | ||||
| 	V_WET[].prn	= V_WE_R; | ||||
| 
 | ||||
| --	V_WR[]	= LCELL(V_WE) or !((!VXA1 & !VXA0),(!VXA1 & VXA0),(VXA1 & !VXA0),(VXA1 & VXA0)); | ||||
| 
 | ||||
| --	V_WR[]	= (V_WE) or !( | ||||
| 
 | ||||
| 	V_WEX.clk	= CLK42; | ||||
| --	V_WEX.d		= V_WE; | ||||
| --	V_WEX.prn	= (DFF(GND,CLK42,,!V_WEX)); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	V_WEMMM	= LCELL(V_WE); | ||||
| 	V_WEMMN	= LCELL(V_WEMMM); -- bios ok, fn ok, fnf1 failed, zx almost ok | ||||
| 	V_WEMMO	= LCELL(V_WEMMN); -- green arts | ||||
| 	V_WEMMP	= LCELL(V_WEMMO); -- blue + pink arts | ||||
| 	V_WEMMR	= LCELL(V_WEMMP); -- no F1 issue, but red arts (fix by finger, not enough capacity??) | ||||
| 	V_WEMMS	= LCELL(V_WEMMR);  | ||||
| --	V_WEMMT	= LCELL(V_WEMMS); | ||||
| --	V_WEMMU	= LCELL(V_WEMMT); | ||||
| --	V_WEMMV	= LCELL(V_WEMMU); | ||||
| --	V_WEMMW	= LCELL(V_WEMMV); | ||||
| --	V_WEMMX	= LCELL(V_WEMMW); | ||||
| --	V_WEMMY	= LCELL(V_WEMMX); | ||||
| --	V_WEMMZ	= LCELL(V_WEMMY); | ||||
| 
 | ||||
| 	V_WRM	= LCELL(V_WE or V_WEMMM); | ||||
| --	V_WRM	= LCELL(V_WEMMN or V_WEMMM); | ||||
| --	V_WRM2	= LCELL(V_WEMMN or V_WEMMM); | ||||
| --	V_WRM2	= LCELL(V_WEMMR); | ||||
| --	V_WRM	= LCELL(V_WEMMM or V_WEMMN); | ||||
| --	V_WRM2	= LCELL(V_WEMMM or V_WEMMN); | ||||
| 
 | ||||
| 	V_WEM	= (V_WE); | ||||
| --	V_WEM2	= LCELL(V_WE); | ||||
| --	V_WEM	= LCELL(V_WEMMM & V_WEMMN); | ||||
| --	V_WEM2	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 
 | ||||
| 	F_WR	= DFF(VCC,V_WE,,); | ||||
| 	V_EN3	= DFF(!(!VXA1 & (!VXA0 or DOUBLE)), CLK42, F_WR,); | ||||
| 	V_EN2	= DFF(!(!VXA1 & (VXA0 or DOUBLE)), CLK42, F_WR,); | ||||
| 	V_EN1	= DFF(!(VXA1 & (!VXA0 or DOUBLE)), CLK42, F_WR,); | ||||
| 	V_EN0	= DFF(!(VXA1 & (VXA0 or DOUBLE)), CLK42, F_WR,); | ||||
| 
 | ||||
| 
 | ||||
| --	V_WR_3	= LCELL(V_WRM or V_EN3); | ||||
| --	V_WR_2	= LCELL(V_WRM or V_EN2); | ||||
| --	V_WR_1	= LCELL(V_WRM or V_EN1); | ||||
| --	V_WR_0	= LCELL(V_WRM or V_EN0); | ||||
| 	V_WR_3	= LCELL(LCELL(LCELL(V_WRM or V_EN3))); | ||||
| 	V_WR_2	= LCELL(LCELL(LCELL(V_WRM or V_EN2))); | ||||
| 	V_WR_1	= LCELL(LCELL(LCELL(V_WRM or V_EN1))); | ||||
| 	V_WR_0	= LCELL(LCELL(LCELL(V_WRM or V_EN0))); | ||||
| 
 | ||||
| 	V_WEY3	= LCELL(V_WEM or V_EN3); | ||||
| 	V_WEY2	= LCELL(V_WEM or V_EN2); | ||||
| 	V_WEY1	= LCELL(V_WEM or V_EN1); | ||||
| 	V_WEY0	= LCELL(V_WEM or V_EN0); | ||||
| 
 | ||||
| 	V_WR[]	= V_WR_[]; -- V_WR0-3 | ||||
| 	V_WEN[]	= V_WEY[]; -- VD0-3 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| % | ||||
| 	V_WEMMM	= LCELL(V_WE); | ||||
| 	V_WEMMN	= LCELL(V_WEMMM); | ||||
| 	V_WEMMO	= LCELL(V_WEMMN); | ||||
| 	V_WEMM	= LCELL(V_WEMMO); | ||||
| 
 | ||||
| 	V_WRM	= LCELL(V_WEMMN & V_WEMMM); | ||||
| 	V_WRM2	= LCELL(V_WEMMN & V_WEMMM); | ||||
| 
 | ||||
| 	V_WEM	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 	V_WEM2	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 
 | ||||
| 	V_EN3	= DFF(!(!VXA1 & (!VXA0 or DOUBLE)),CLK42,F_WR,); | ||||
| 	V_EN2	= DFF(!(!VXA1 & (VXA0 or DOUBLE)) ,CLK42,F_WR,); | ||||
| 	V_EN1	= DFF(!(VXA1 & (!VXA0 or DOUBLE)) ,CLK42,F_WR,); | ||||
| 	V_EN0	= DFF(!(VXA1 & (VXA0 or DOUBLE))  ,CLK42,F_WR,); | ||||
| 
 | ||||
| 	F_WR	= DFF(VCC,V_WE,,); | ||||
| 
 | ||||
| 	V_WR_3	= V_WRM or V_EN3; | ||||
| 	V_WR_2	= V_WRM2 or V_EN2; | ||||
| 	V_WR_1	= V_WRM or V_EN1; | ||||
| 	V_WR_0	= V_WRM or V_EN0; | ||||
| 
 | ||||
| 	V_WEY3	= V_WEM or V_EN3; | ||||
| 	V_WEY2	= V_WEM2 or V_EN2; | ||||
| 	V_WEY1	= V_WEM or V_EN1; | ||||
| 	V_WEY0	= V_WEM or V_EN0; | ||||
| 
 | ||||
| 	V_WR[]	= V_WR_[]; | ||||
| 	V_WEN[]	= V_WEY[]; | ||||
| % | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| --	CLK84	= LCELL(CLK42 xor CLK84_X); | ||||
| --	CLK84_X	= DFF(!CLK84_X,CLK84,,); | ||||
| --	CLK84_Y	= CLK84; | ||||
| 
 | ||||
| END GENERATE;	-- end "sprinter" mode | ||||
| 
 | ||||
| 
 | ||||
| END; | ||||
							
								
								
									
										783
									
								
								src/altera/acex/k30/VIDEO2_T2_51mhz.TDF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										783
									
								
								src/altera/acex/k30/VIDEO2_T2_51mhz.TDF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,783 @@ | ||||
| 
 | ||||
| 	TITLE "Video-controller"; | ||||
| 
 | ||||
| INCLUDE "lpm_ram_dp"; | ||||
| 
 | ||||
| PARAMETERS | ||||
| 	( | ||||
| 	MODE = "SPRINTER", | ||||
| 	MOUSE = "NO", | ||||
| 	HOR_PLACE = H"50", | ||||
| 	VER_PLACE = H"91"   -- 122h/2 | ||||
| 	); | ||||
| 
 | ||||
| SUBDESIGN video2 | ||||
| 	( | ||||
| 	CLK42		: INPUT; | ||||
| 
 | ||||
| 	CT[5..0]	: OUTPUT; | ||||
| 	CTH[5..0]	: OUTPUT; | ||||
| 	CTV[8..0]	: OUTPUT; | ||||
| 	CTF[6..0]	: OUTPUT; | ||||
| 
 | ||||
| 	BLANK		: OUTPUT; | ||||
| 
 | ||||
| 	START_UP	: INPUT; | ||||
| 	COPY_SINC_H	: INPUT; | ||||
| 	COPY_SINC_V	: INPUT; | ||||
| 
 | ||||
| 	WR			: INPUT; | ||||
| 
 | ||||
| 	VAI[19..0]	: INPUT;	-- input screen adress | ||||
| 
 | ||||
| 	VAO[15..0]	: OUTPUT; | ||||
| 
 | ||||
| 	D[7..0]		: INPUT; | ||||
| 	MDI[15..0]	: INPUT; | ||||
| 
 | ||||
| 	VDO0[7..0]	: OUTPUT; | ||||
| 	VDO1[7..0]	: OUTPUT; | ||||
| 	VDO2[7..0]	: OUTPUT; | ||||
| 	VDO3[7..0]	: OUTPUT; | ||||
| 
 | ||||
| 	VDM0[7..0]	: INPUT; | ||||
| 	VDM1[7..0]	: INPUT; | ||||
| 	VDM2[7..0]	: INPUT; | ||||
| 	VDM3[7..0]	: INPUT; | ||||
| 
 | ||||
| 	V_WR[3..0]	: OUTPUT; | ||||
| 	V_WEN[3..0]	: OUTPUT; | ||||
| 
 | ||||
| 	V_CS[1..0]	: OUTPUT; | ||||
| 	WR_PIX		: OUTPUT; | ||||
| 
 | ||||
| --	ZX_COLOR[3..0]	: OUTPUT; | ||||
| 
 | ||||
| 	ZX_PORT[7..0]	: INPUT; | ||||
| 	DIR_PORT[7..0]	: INPUT; | ||||
| 
 | ||||
| % | ||||
| 	bit0	- Spectrum SCREEN Switch | ||||
| 	bit1	- Spectrum Adress MODE | ||||
| 	bit2	- Write to Spectrum Screen OFF | ||||
| 	bit3	- MODE page 0/1 | ||||
| 	bit4	- MODE on/off screen | ||||
| 
 | ||||
| 	bit7..5	- Border | ||||
| % | ||||
| 
 | ||||
| 	INTT		: OUTPUT; | ||||
| 
 | ||||
| 	DOUBLE_CAS	: INPUT; | ||||
| 
 | ||||
| 	MOUSE_X[9..0]	: INPUT; | ||||
| 	MOUSE_Y[9..0]	: INPUT; | ||||
| 
 | ||||
| 
 | ||||
| 	) | ||||
| VARIABLE | ||||
| 
 | ||||
| --	CLK84		: NODE; | ||||
| --	CLK84_X		: NODE; | ||||
| --	CLK84_Y		: NODE; | ||||
| 
 | ||||
| 	ZX_COLOR[3..0]	: NODE; | ||||
| 
 | ||||
| 	CT[5..0]	: DFFE; | ||||
| 	CTH[5..0]	: DFFE; | ||||
| 	CTV[8..0]	: DFFE; | ||||
| 	CTF[6..0]	: DFF; | ||||
| 
 | ||||
| 	VXA[19..0]	: DFFE; | ||||
| 
 | ||||
| 	VXD0[7..0]	: DFFE; | ||||
| 	VXD1[7..0]	: DFFE; | ||||
| 	VXD2[7..0]	: DFFE; | ||||
| 	VXD3[7..0]	: DFFE; | ||||
| 
 | ||||
| 	E_WR		: NODE; | ||||
| 	E_WRD		: NODE; | ||||
| 
 | ||||
| 	BLANK		: NODE; | ||||
| 	BORD		: NODE; | ||||
| --	INTT_T		: NODE; | ||||
| 	INTTX		: NODE; | ||||
| 
 | ||||
| 	VLA[17..0]	: DFF; | ||||
| --	SVA[17..0]	: NODE; | ||||
| 	SVA[17..0]	: DFF; | ||||
| --	RSVA[8..0]	: LCELL; | ||||
| 	RSVA[8..0]	: NODE; | ||||
| --	RSVA[8..0]	: DFF; | ||||
| 
 | ||||
| 	V_CST[1..0]	: DFF; | ||||
| 	VCM[2..0]	: DFF; | ||||
| 	TSN_W3		: DFF; | ||||
| 	V_WE		: DFF; | ||||
| 	V_WEX		: DFF; | ||||
| 
 | ||||
| 	V_WEM		: NODE; | ||||
| 	V_WEM2		: NODE; | ||||
| 	V_WRM		: NODE; | ||||
| 	V_WRM2		: NODE; | ||||
| % | ||||
| 	V_WEMM		: NODE; | ||||
| 	V_WEMMM		: NODE; | ||||
| 	V_WEMMN		: NODE; | ||||
| 	V_WEMMO		: NODE; | ||||
| % | ||||
| 	V_WEMM		: NODE; | ||||
| 	V_WEMMM		: NODE; | ||||
| 	V_WEMMN		: NODE; | ||||
| 	V_WEMMO		: NODE; | ||||
| 	V_WEMMP		: NODE; | ||||
| 	V_WEMMQ		: NODE; | ||||
| 	V_WEMMR		: NODE; | ||||
| 	V_WEMMS		: NODE; | ||||
| 	V_WEMMT		: NODE; | ||||
| 	V_WEMMU		: NODE; | ||||
| 	V_WEMMV		: NODE; | ||||
| 	V_WEMMW		: NODE; | ||||
| 	V_WEMMX		: NODE; | ||||
| 	V_WEMMY		: NODE; | ||||
| 	V_WEMMZ		: NODE; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	V_WET[3..0]	: DFF; | ||||
| 
 | ||||
| 	D_PIC0[7..0]	: DFFE; | ||||
| --	D_PIC0_[7..0]	: LCELL; | ||||
| 
 | ||||
| 	D_PIC0_[7..0]	: DFFE; | ||||
| 	D_PIC1_[7..0]	: DFFE; | ||||
| 	D_PIC2_[7..0]	: DFFE; | ||||
| 	D_PIC3_[7..0]	: DFFE; | ||||
| 
 | ||||
| 	D_PICX_[7..0]	: NODE; | ||||
| 
 | ||||
| 	LWR_PIC		: NODE; | ||||
| 	LWR_COL		: NODE; | ||||
| 
 | ||||
| 	WR_PIC		: DFF; | ||||
| 	WR_COL		: DFF; | ||||
| 	LD_PIC		: NODE; | ||||
| MXL: NODE; | ||||
| MXR: NODE; | ||||
| 
 | ||||
| 	RBRVA[10..8]: DFF; | ||||
| 	BRVA[7..0]	: DFF; | ||||
| 	DCOL[7..0]	: DFFE; | ||||
| 
 | ||||
| 	MXWE		: NODE; | ||||
| --	MXCE		: NODE; | ||||
| 
 | ||||
| 	AX128		: NODE; | ||||
| 
 | ||||
| 	BRD[2..0]	: NODE; | ||||
| 
 | ||||
| 	ZX_COL[3..0]	: LCELL; | ||||
| 
 | ||||
| 	ZXA15		: NODE; | ||||
| 	ZXS[5..0]	: NODE; | ||||
| 	ZX_SCREEN	: NODE; | ||||
| 	SCR128		: NODE; | ||||
| 
 | ||||
| 	MODE0[7..0]		: DFFE; | ||||
| 	MODE1[7..0]		: DFFE; | ||||
| 	MODE2[7..0]		: DFFE; | ||||
| --	MODE3[7..0]		: DFF; | ||||
| 
 | ||||
| 	WR_MODE		: DFF; | ||||
| 	LWR_MODE	: NODE; | ||||
| 	X_MODE[7..4]: NODE; | ||||
| 	X_MODE_BOND	: NODE; | ||||
| 
 | ||||
| --	M_CTV[2..0]	: DFF; | ||||
| --	M_CT[5..3]  : DFF; | ||||
| 	M_CTV[2..0]	: LCELL; | ||||
| 	M_CT[5..3]  : LCELL; | ||||
| 
 | ||||
| 	DOUBLE		: DFFE; | ||||
| 
 | ||||
| 	PIC_CLK		: NODE; | ||||
| 
 | ||||
| 	MS_X[9..0]	: DFF; | ||||
| 	MS_Y[9..0]	: DFF; | ||||
| 
 | ||||
| 	MS_POINT	: NODE; | ||||
| 	MS_POINT2	: NODE; | ||||
| 	MS_PNT		: NODE; | ||||
| 
 | ||||
| 	MS_DAT		: LPM_RAM_DP WITH (LPM_WIDTH=16,LPM_WIDTHAD=8,LPM_FILE="MOUSE.MIF"); | ||||
| 
 | ||||
| 	SCR_ENA		: DFFE; | ||||
| 	V_WR_[3..0]	: LCELL; | ||||
| 	V_WEY[3..0]	: LCELL; | ||||
| 
 | ||||
| 	V_WE_R		: NODE; | ||||
| 
 | ||||
| 	V_CSX[3..0]	: NODE; | ||||
| 
 | ||||
| 	V_EN[3..0]	: NODE; | ||||
| 
 | ||||
| 	F_WR		: NODE; | ||||
| 
 | ||||
| BEGIN | ||||
| 
 | ||||
| 	DEFAULTS | ||||
| 		WR_MODE.d	= VCC; -- WR_MODE2.d	= VCC; -- WR_MODE2X.d	= VCC; | ||||
| 		V_CST[].d	= VCC; V_WR[]		= VCC; TSN_W3.d		= VCC; | ||||
| 		V_WE.d		= VCC; WR_COL.d		= VCC; WR_PIC.d		= VCC; | ||||
| 		V_WET[].d	= VCC; | ||||
| 	END DEFAULTS; | ||||
| 
 | ||||
| 	ZX_COLOR[] = ZX_COL[]; | ||||
| 
 | ||||
| --	=== MOUSE counters ======== | ||||
| 
 | ||||
| 	MS_X[].clk	= !CT1; | ||||
| 	CASE LCELL(CTH[5..2] == 12) IS | ||||
| 		WHEN 0 => MS_X[] = MS_X[] + 1; | ||||
| 		WHEN 1 => MS_X[] = (!MOUSE_X[9..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MS_Y[].clk	= !CTH5; | ||||
| 	CASE LCELL(CTV8 & !CTV5 & CTV4) IS | ||||
| 		WHEN 0 => MS_Y[] = MS_Y[] + 1; | ||||
| 		WHEN 1 => MS_Y[] = (GND,!MOUSE_Y[8..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MS_PNT = DFF(((MS_X[] == B"100000XXXX") & (MS_Y[] == B"100000XXXX")),CLK42,,); | ||||
| 
 | ||||
| 	MS_DAT.wren 		= GND; | ||||
| 	MS_DAT.data[] 		= GND; | ||||
| 	MS_DAT.wraddress[]	= GND; | ||||
| 	MS_DAT.wrclock		= CLK42; | ||||
| 	MS_DAT.wrclken		= GND; | ||||
| 	MS_DAT.rden			= VCC; | ||||
| 	MS_DAT.rdaddress[]	= (MS_Y[3..0],MS_X[3..0]); | ||||
| 	MS_DAT.rdclock		= CLK42; | ||||
| 	MS_DAT.rdclken		= VCC; | ||||
| 
 | ||||
| 	IF MOUSE == "NO" GENERATE | ||||
| 		MS_POINT	= GND; | ||||
| 		MS_POINT2	= GND; | ||||
| 	ELSE GENERATE | ||||
| 		MS_POINT	= DFF((MS_PNT & MS_DAT.q0),CLK42,,); | ||||
| 		MS_POINT2	= DFF((MS_PNT & MS_DAT.q1),CLK42,,); | ||||
| 	END GENERATE; | ||||
| 
 | ||||
| --	=== Sinc-counts GENERATOR ============================================ | ||||
| 
 | ||||
| --	CT[].clrn	= START_UP; | ||||
| 
 | ||||
| --	(,CTH[5..0].clrn,CT[5].clrn) = !COPY_SINC_H or HOR_PLACE; | ||||
| --	(,CTH[5..0].prn ,CT[5].prn ) = !COPY_SINC_H or !HOR_PLACE; | ||||
| 
 | ||||
| --	CTV[].clrn = !COPY_SINC_V or VER_PLACE; | ||||
| --	CTV[].prn  = !COPY_SINC_V or !VER_PLACE; | ||||
| 
 | ||||
| 	CT[5].clrn		= !COPY_SINC_H; | ||||
| 
 | ||||
| 	-- set CTH to 50 (32h) | ||||
| 	CTH[0].clrn		= !COPY_SINC_H; | ||||
| 	CTH[1].prn 		= !COPY_SINC_H; | ||||
| 	CTH[2].clrn		= !COPY_SINC_H; | ||||
| 	CTH[3].clrn		= !COPY_SINC_H; | ||||
| 	CTH[4].prn 		= !COPY_SINC_H; | ||||
| 	CTH[5].prn		= !COPY_SINC_H; | ||||
| 
 | ||||
| 	-- set CTV to 122h | ||||
| 	CTV[0].clrn		= !COPY_SINC_V; | ||||
| 	CTV[1].prn		= !COPY_SINC_V; | ||||
| 	CTV[3..2].clrn	= !COPY_SINC_V; | ||||
| 
 | ||||
| 	CTV[4].clrn		= !COPY_SINC_V; | ||||
| 	CTV[5].prn		= !COPY_SINC_V; | ||||
| 	CTV[7..6].clrn	= !COPY_SINC_V; | ||||
| 	CTV[8].prn		= !COPY_SINC_V; | ||||
| 
 | ||||
| 	CT[5..0].clk	= CLK42; | ||||
| 	CTH[5..0].clk	= CLK42; | ||||
| 	CTV[8..0].clk	= CLK42; | ||||
| 
 | ||||
| 	CT[2..0].ena	= VCC; | ||||
| 
 | ||||
| 	CASE CT[2..0] IS | ||||
| 		WHEN 0 => CT[2..0] = 1; | ||||
| 		WHEN 1 => CT[2..0] = 2; | ||||
| 		WHEN 2 => CT[2..0] = 4; | ||||
| 		WHEN 3 => CT[2..0] = 4; | ||||
| 		WHEN 4 => CT[2..0] = 5; | ||||
| 		WHEN 5 => CT[2..0] = 6; | ||||
| 		WHEN 6 => CT[2..0] = 0; | ||||
| 		WHEN 7 => CT[2..0] = 0; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 								  -- for remove sinc jitter | ||||
| --	CT[5..3].ena	= DFF(((CT0 & CT2) or (COPY_SINC_H & !CT4)),CLK42,,); | ||||
| 	CT[5..3].ena	= DFF((CT0 & CT2),CLK42,,); | ||||
| 	CT[5..3]	= CT[5..3]+1; | ||||
| % | ||||
| 	CASE CT[4..3] IS | ||||
| 		WHEN 0 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 1 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 2 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 3 => CT[5..3]	= CT[5..3]+1; | ||||
| 	END CASE; | ||||
| % | ||||
| 	CTH[].ena		= DFF(((CT[5..2] == 15) & CT0),CLK42,,); | ||||
| 	CTV[].ena		= DFF(((CT[5..2] == 15) & CT0 & (CTH[] == 48)),CLK42,,); | ||||
| 
 | ||||
| 	IF CTH[] == 55 THEN | ||||
| 		CTH[]	= GND; | ||||
| 	ELSE | ||||
| 		CTH[]	= CTH[] + 1; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	IF CTV[] == 319 THEN | ||||
| 		CTV[]	= GND; | ||||
| 	ELSE | ||||
| 		CTV[]	= CTV[] + 1; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	CTF[].clk	= CTV8; | ||||
| 	CTF[]		= CTF[]+1; | ||||
| 
 | ||||
| --	==== Video ========================================================== | ||||
| 
 | ||||
| 	ZXS[]		= ZX_PORT[5..0];	-- pages ZX Screens | ||||
| 	ZX_SCREEN	= ZX_PORT6;			-- enable ZX Screen write | ||||
| 	ZXA15		= ZX_PORT7;			-- ZX A15' line | ||||
| 
 | ||||
| 	SCR128		= DIR_PORT0; | ||||
| 
 | ||||
| --	WR_PIX	= LCELL(TSN_W3); | ||||
| 	WR_PIX	= TSN_W3; | ||||
| 
 | ||||
| 	DOUBLE.clk = CLK42; DOUBLE.ena = !E_WR; DOUBLE	= DOUBLE_CAS; | ||||
| 	VXA[].clk  = CLK42; VXA[].ena  = !E_WR; | ||||
| 
 | ||||
| 	VXD0[].clk = CLK42; VXD0[].ena = !E_WRD;	VDO0[]	= VXD0[]; | ||||
| 	VXD1[].clk = CLK42; VXD1[].ena = !E_WRD;	VDO1[]	= VXD1[]; | ||||
| 	VXD2[].clk = CLK42; VXD2[].ena = !E_WRD;	VDO2[]	= VXD2[]; | ||||
| 	VXD3[].clk = CLK42; VXD3[].ena = !E_WRD;	VDO3[]	= VXD3[]; | ||||
| 
 | ||||
| --	VXD0[] = D[]; | ||||
| --	VXD1[] = D[]; | ||||
| --	VXD2[] = D[]; | ||||
| --	VXD3[] = D[]; | ||||
| 
 | ||||
| 	(VXD0[],VXD1[]) = MDI[]; | ||||
| 	(VXD2[],VXD3[]) = MDI[]; | ||||
| 
 | ||||
| 	BRD[]		= DIR_PORT[7..5]; | ||||
| 
 | ||||
| 	VCM[].clk	= CLK42; | ||||
| 	TSN_W3.clk	= CLK42; | ||||
| 	V_CST[].clk	= CLK42; | ||||
| 	V_WE.clk	= CLK42; | ||||
| 	V_WET[].clk	= CLK42; | ||||
| 	VLA[].clk	= CLK42; | ||||
| 
 | ||||
| 	SCR_ENA.clk	= CLK42; | ||||
| 	SCR_ENA.ena	= !E_WR; | ||||
| 	SCR_ENA.d	= !(VAI19 or ZX_SCREEN); | ||||
| 
 | ||||
| 	E_WRD	= DFF(E_WR,CLK42,,); | ||||
| 	E_WR = LCELL(WR or !(VAI19 or ZX_SCREEN) or !DFF(WR,CLK42,,)); | ||||
| --	E_WR = LCELL(WR or !DFF(WR,CLK42,,)); | ||||
| 
 | ||||
| --	**************************************************** | ||||
| 
 | ||||
| IF MODE == "SPRINTER" GENERATE | ||||
| 
 | ||||
| --	VAI[19]	- switch adress mode	1 - graf mode, 0 - spectrum mode | ||||
| 
 | ||||
| --	MXWE	= DFF(((DFF(E_WR,CLK42,,) or SCR_ENA)  & MXWE),CLK42,,V_WE); | ||||
| 	MXWE	= DFF(MXWE,CLK42,E_WR,V_WE); | ||||
| 
 | ||||
| 	IF VAI[19] THEN | ||||
| 		-- in graf mode all 256k(512k) range | ||||
| 		VXA[]	= VAI[]; | ||||
| 	ELSE | ||||
| 		-- in spectrum mode 8k/16k range pages | ||||
| 		VXA[]	= (GND,GND,VAI[7..0],ZXS[4..1],LCELL(ZXS0 xor ZXA15 xor VAI13),VAI[12..8]); | ||||
| 	END IF; | ||||
| 
 | ||||
| --	BORD	= DFF((MODE0[7..4] == 15),WR_PIC,,); | ||||
| --	BLANK	= DFF((BORD & MODE03 & MODE02),WR_PIC,,); | ||||
| --	INTTX 	= DFF((BORD & MODE03 & MODE02 & MODE00),WR_PIC,,); | ||||
| 
 | ||||
| 	BORD	= DFF((MODE0[7..4] == 15),LWR_COL,,); | ||||
| 	BLANK	= DFF(((BORD & MODE03 & MODE02) or DIR_PORT4),LWR_COL,,); | ||||
| 	INTTX 	= DFF((BORD & MODE03 & MODE02 & MODE00),LWR_COL,,); | ||||
| 
 | ||||
| 	INTT	= DFF(!(INTTX & (CTV[2..0] == 7)),CT5,,); | ||||
| 
 | ||||
| --	INTT	= DFF((INTTX or DFF(INTTX,CT5,,)),CT5,,); | ||||
| --	INTT	= DFF(!(BLANK & (CTV[2..0] == 7)),CLK42,,MODE0[0]); | ||||
| 
 | ||||
| 	CASE CT[2..0] IS | ||||
| 		WHEN B"110" => VCM[2..0].d = 5; -- 110 -> 101  6 -> 5 | ||||
| 		WHEN B"000" => VCM[2..0].d = 1; -- 000 -> 001  0 -> 1 | ||||
| 		WHEN B"001" => VCM[2..0].d = 4; -- 001 -> 100  1 -> 4 | ||||
| 		WHEN B"010" => VCM[2..0].d = 3; -- 010 -> 011  2 -> 3 | ||||
| 		WHEN B"100" => VCM[2..0].d = 2; -- 100 -> 010  4 -> 2 | ||||
| 		WHEN B"101" => VCM[2..0].d = 0; -- 101 -> 000  5 -> 0 | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE VCM[1..0] IS | ||||
| 		WHEN 0 => | ||||
| 			VLA[].d	= (BRVA[7..0],VCC,VCC,VCC,VCC,VCC,RBRVA[10..8],GND,GND); | ||||
| 			V_CST[].d = (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 
 | ||||
| TSN_W3.d  = X_MODE_BOND; | ||||
| % | ||||
| 			IF VCM2 THEN | ||||
| --				TSN_W3.d  = X_MODE5; | ||||
| 				TSN_W3.d  = X_MODE_BOND; | ||||
| --				V_CST[].d = (VCC,X_MODE5); | ||||
| 			ELSE | ||||
| 				TSN_W3.d  = X_MODE_BOND; | ||||
| --				V_CST[].d = (VCC,X_MODE_BOND); | ||||
| 			END IF; | ||||
| % | ||||
| 
 | ||||
| 		WHEN 1 => | ||||
| 			WR_PIC.d	= !VCM2; | ||||
| 			WR_COL.d	= VCM2; | ||||
| 			VLA[].d		= SVA[]; | ||||
| 			V_CST[].d = (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 		WHEN 2 => | ||||
| 			VLA[].d		= VXA[17..0]; | ||||
| 			V_CST[].d 	= (!VXA18,VXA18) or MXWE; | ||||
| 			V_WE.d		= MXWE; | ||||
| 			V_WEX.d		= GND; | ||||
| 			V_WET[].d	= MXWE or !((!VXA1 & !VXA0),(!VXA1 & VXA0),(VXA1 & !VXA0),(VXA1 & VXA0)); | ||||
| 		WHEN 3 => | ||||
| --			WR_PIC.d	= X_MODE5; | ||||
| --			NEW 26.08.2022, fix bug with first column | ||||
| --			it was reproducing when changes mode 320 -> 640, like any 320px screen squares -> text mode squares | ||||
| 			WR_PIC.d	= MODE0[5]; | ||||
| 			VLA[].d		= (DIR_PORT3,CTH[5..0],CT5,VCC,VCC,CTV[8..3],GND,GND); | ||||
| 			WR_MODE.d	= !(CT[5..3] == B"111") & !(CT4 & CT3 & !MODE0[5]); | ||||
| 			V_CST[].d 	= (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	choose V-RAM komplect | ||||
| 
 | ||||
| 	V_CST1.prn	= GND; | ||||
| --	V_CS0.clrn	= GND; | ||||
| 	V_CST0.prn	= (LCELL(DFF(GND,!CLK42,,!V_CST0))); | ||||
| 	V_CS1	= VCC; | ||||
| --	V_CS0	= LCELL(V_CST0); | ||||
| 
 | ||||
| 	V_CSX0	= LCELL(!CLK42); | ||||
| 	V_CSX1	= LCELL(V_CSX0); | ||||
| 	V_CSX2	= LCELL(V_CSX1 & V_CSX0); | ||||
| 	V_CSX3	= LCELL(V_CSX2); | ||||
| 
 | ||||
| --	V_CS0	= V_CSX3; | ||||
| 	V_CS0	= GND; | ||||
| 
 | ||||
| --	===================== | ||||
| 
 | ||||
| 	SVA[].clk	= CLK42; | ||||
| 	SVA[9..6]	= MODE0[3..0]; | ||||
| --	RSVA[].clk	= CLK42; | ||||
| 	(SVA[12..10],SVA[5..0]) = RSVA[]; | ||||
| 
 | ||||
| --	M_CTV[2..0].clk	= CLK42; | ||||
| --	M_CT[5..3].clk	= CLK42; | ||||
| 	M_CTV[2..0]	= (!MODE2[2] & CTV[2..0]) or MODE2[2] & (MODE2[1],CTV[2..1]); | ||||
| 	M_CT[5..3]	= (!MODE2[2] & (CT[5],!CT[4..3])) or MODE2[2] & (MODE2[0],!CT[5..4]); | ||||
| 
 | ||||
| 	CASE (!VCM2,MODE0[4]) IS | ||||
| --	CASE (!VCM1,MODE0[4]) IS | ||||
| 		WHEN B"X0" => | ||||
| 			--	Graf adress  -- | ||||
| 			RSVA[] = (M_CTV[2..0],MODE1[2..0],M_CT[5..3]); | ||||
| 			SVA[17..13] = MODE1[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = CTV[2..0]; | ||||
| --			SVA[5..0]	= (MODE1[2..0],CT5,!CT[4..3]); | ||||
| 		WHEN B"01" => | ||||
| 			--	ZX-atr adress  -- | ||||
| 			RSVA[] = (MODE2[2..0],SCR128,VCC,VCC,GND,!MODE0[7..6]); | ||||
| 			SVA[17..13] = MODE2[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = MODE2[2..0]; | ||||
| --			SVA[5..0]	= (SCR128,VCC,VCC,GND,!MODE0[7..6]); | ||||
| 		WHEN B"11" => | ||||
| 			--	ZX-pic adress  -- | ||||
| 			RSVA[] = (MODE1[2..0],SCR128,MODE0[7..6],CTV2,!CTV1,!CTV0); | ||||
| 			SVA[17..13] = MODE1[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = MODE1[2..0]; | ||||
| --			SVA[5..0]	= (SCR128,MODE0[7..6],CTV2,!CTV1,!CTV0); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	X_MODE_BOND	= LCELL(LCELL(DCOL[7..4] == 15) & LCELL(DCOL[3..0] == 15) & DFF((MODE0[7] & MODE0[5] & !MODE0[4]),LWR_COL,VCC,VCC)); | ||||
| 	X_MODE_BOND	= GND; | ||||
| 
 | ||||
| --	LD_PIC	= LCELL((MODE0[5] & DFF((CT[5..3] == B"000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| 	LD_PIC	= LCELL((MODE0[5] & DFF((CT[5..3] == B"000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| 
 | ||||
| 
 | ||||
| --	CASE (DFF(VLA1,!CLK42,,),DFF(VLA0,!CLK42,,)) IS | ||||
| 
 | ||||
| --	D_PIC0_[].clk	= !CLK42; | ||||
| --	D_PIC1_[].clk	= !CLK42; | ||||
| --	D_PIC2_[].clk	= !CLK42; | ||||
| --	D_PIC3_[].clk	= !CLK42; | ||||
| 
 | ||||
| --	PIC_CLK			= LCELL(LCELL(CLK42)); | ||||
| 	PIC_CLK			= !CLK42; | ||||
| 
 | ||||
| 	D_PIC0_[].clk	= PIC_CLK; | ||||
| 	D_PIC1_[].clk	= PIC_CLK; | ||||
| 	D_PIC2_[].clk	= PIC_CLK; | ||||
| 	D_PIC3_[].clk	= PIC_CLK; | ||||
| 
 | ||||
| 	D_PIC0_[] = VDM0[]; | ||||
| 	D_PIC1_[] = VDM1[]; | ||||
| 	D_PIC2_[] = VDM2[]; | ||||
| 	D_PIC3_[] = VDM3[]; | ||||
| 
 | ||||
| 	CASE (DFF(VLA1,CLK42,,),DFF(VLA0,CLK42,,)) IS | ||||
| 		WHEN 0 => D_PICX_[] = D_PIC0_[]; | ||||
| 		WHEN 1 => D_PICX_[] = D_PIC1_[]; | ||||
| 		WHEN 2 => D_PICX_[] = D_PIC2_[]; | ||||
| 		WHEN 3 => D_PICX_[] = D_PIC3_[]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MODE0[].ena 	= VCC; | ||||
| 	MODE1[].ena 	= VCC; | ||||
| 	MODE2[].ena 	= VCC; | ||||
| 	MODE0[].clk		= LWR_MODE; | ||||
| 	MODE1[].clk		= LWR_MODE; | ||||
| 	MODE2[].clk		= LWR_MODE; | ||||
| 	MODE0[].d		= VDM3[]; | ||||
| 	MODE1[].d		= VDM2[]; | ||||
| 	MODE2[].d		= VDM1[]; | ||||
| 	LWR_MODE		= LCELL(LCELL(WR_MODE)); | ||||
| % | ||||
| 	MODE0[].ena 	= LWR_MODE; | ||||
| 	MODE1[].ena 	= LWR_MODE; | ||||
| 	MODE2[].ena 	= LWR_MODE; | ||||
| 	MODE0[].clk		= CLK42; | ||||
| 	MODE1[].clk		= CLK42; | ||||
| 	MODE2[].clk		= CLK42; | ||||
| 	MODE0[].d		= D_PIC3_[]; | ||||
| 	MODE1[].d		= D_PIC2_[]; | ||||
| 	MODE2[].d		= D_PIC1_[]; | ||||
| 	LWR_MODE		= DFF(!WR_MODE,CLK42,,); | ||||
| % | ||||
| 	X_MODE7	= DFF(MODE0[7],LWR_COL,,); | ||||
| 	X_MODE6	= DFF(MODE0[6],LWR_COL,,); | ||||
| 	X_MODE5	= DFF(MODE0[5],LWR_COL,,); | ||||
| 	X_MODE4 = DFF(MODE0[4],LWR_COL,,); | ||||
| 
 | ||||
| 	VAO[]	= VLA[17..2]; | ||||
| 
 | ||||
| 	WR_PIC.clk		= CLK42; | ||||
| 	WR_COL.clk		= CLK42; | ||||
| 	WR_MODE.clk		= CLK42; | ||||
| 
 | ||||
| --	LWR_PIC		= LCELL(LCELL(WR_PIC)); | ||||
| --	LWR_COL		= LCELL(LCELL(WR_COL)); | ||||
| --	LWR_PIC		= LCELL(WR_PIC); | ||||
| --	LWR_COL		= LCELL(WR_COL); | ||||
| 	LWR_PIC		= DFF(WR_PIC,CLK42,,); | ||||
| 	LWR_COL		= DFF(WR_COL,CLK42,,); | ||||
| 
 | ||||
| --	D_PIC0[].ena	= VCC; | ||||
| --	D_PIC0[].clk	= (LWR_PIC); | ||||
| 	D_PIC0[].ena	= !LWR_PIC; | ||||
| 	D_PIC0[].clk	= CLK42; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	IF LD_PIC THEN | ||||
| --		D_PIC0[] = D_PIC0_[]; | ||||
| 		D_PIC0[] = D_PICX_[]; | ||||
| 	ELSE | ||||
| 		D_PIC0[] = (D_PIC0[6..0],GND); | ||||
| 	END IF; | ||||
| 
 | ||||
| 
 | ||||
| --	DCOL[].clk	= (LWR_COL); | ||||
| 	DCOL[].ena	= !LWR_COL; | ||||
| 	DCOL[].clk	= CLK42; | ||||
| 
 | ||||
| 	IF DFF((MODE0[7..4] == 15),WR_PIC,,) THEN | ||||
| 		DCOL[].d	= (B"00",BRD[2..0],BRD[2..0]); | ||||
| 	ELSE | ||||
| --		DCOL[].d	= D_PIC0_[]; | ||||
| 		DCOL[].d	= D_PICX_[]; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	DCOL[].clrn	= !BLANK; | ||||
| 
 | ||||
| 	BRVA[].clk	= CLK42; | ||||
| 	BRVA[].clrn	= !MS_POINT; | ||||
| 	BRVA[].prn	= !MS_POINT2; | ||||
| 
 | ||||
| -- 	MODE0[4] - graph / text | ||||
| --	MODE0[5] - 320 / 640 resolution | ||||
| 
 | ||||
| --	CASE (LCELL(X_MODE4 or X_MODE5),CT2) IS | ||||
| 	CASE (DFF((MODE0[4] or MODE0[5]),LWR_COL,,),CT2) IS | ||||
| 		WHEN B"1X" => BRVA[7..0] = DCOL[]; | ||||
| 		WHEN B"01" => BRVA[7..0] = (B"0000",DCOL[7..4]); | ||||
| 		WHEN B"00" => BRVA[7..0] = (B"0000",DCOL[3..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	BRVA[10..8] = (x_mode4,RBRVA[9..8]); | ||||
| 	RBRVA[].clk = CLK42; | ||||
| 
 | ||||
| 	CASE (BORD,X_MODE4) IS | ||||
| 		WHEN B"X0" => RBRVA[10..8].d = (GND,X_MODE[7..6]); | ||||
| 		WHEN B"X1" => RBRVA[10..8].d = (VCC,(CTF4 & !BLANK),D_PIC0[7]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	RBRVA[9..8].clrn = !BORD; | ||||
| 	RBRVA[10].prn = !BORD; | ||||
| 
 | ||||
| 	CASE (RBRVA[9..8],BRVA7) IS | ||||
| 		WHEN 0,1,4,7 => ZX_COL[] = (BRVA[6],BRVA[5..3]); | ||||
| 		WHEN 2,3,6,5 => ZX_COL[] = (BRVA[6],BRVA[2..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	V_WET[].prn	= LCELL(DFF(GND,!CLK42,,!V_WE)); | ||||
| --	V_WE.prn	= LCELL(DFF(GND,!CLK42,,!V_WE)); | ||||
| 
 | ||||
| 	V_WE_R		= DFF(GND,!CLK42,,!V_WE); | ||||
| 	V_WE.prn	= V_WE_R; | ||||
| 	V_WET[].prn	= V_WE_R; | ||||
| 
 | ||||
| --	V_WR[]	= LCELL(V_WE) or !((!VXA1 & !VXA0),(!VXA1 & VXA0),(VXA1 & !VXA0),(VXA1 & VXA0)); | ||||
| 
 | ||||
| --	V_WR[]	= (V_WE) or !( | ||||
| 
 | ||||
| 	V_WEX.clk	= CLK42; | ||||
| --	V_WEX.d		= V_WE; | ||||
| --	V_WEX.prn	= (DFF(GND,CLK42,,!V_WEX)); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	V_WEMMM	= LCELL(V_WE); | ||||
| --	V_WEMMN	= LCELL(V_WEMMM); -- bios ok, fn ok, fnf1 failed, zx almost ok | ||||
| --	V_WEMMO	= LCELL(V_WEMMN); -- green arts | ||||
| --	V_WEMMP	= LCELL(V_WEMMO); -- blue + pink arts | ||||
| --	V_WEMMR	= LCELL(V_WEMMP); -- no F1 issue, but red arts (fix by finger, not enough capacity??) | ||||
| --	V_WEMMS	= LCELL(V_WEMMR);  | ||||
| --	V_WEMMT	= LCELL(V_WEMMS); | ||||
| --	V_WEMMU	= LCELL(V_WEMMT); | ||||
| --	V_WEMMV	= LCELL(V_WEMMU); | ||||
| --	V_WEMMW	= LCELL(V_WEMMV); | ||||
| --	V_WEMMX	= LCELL(V_WEMMW); | ||||
| --	V_WEMMY	= LCELL(V_WEMMX); | ||||
| --	V_WEMMZ	= LCELL(V_WEMMY); | ||||
| 
 | ||||
| 	V_WRM	= LCELL(V_WE or V_WEMMM); | ||||
| 
 | ||||
| 
 | ||||
| --	V_WRM	= LCELL(V_WEMMN or V_WEMMM); | ||||
| --	V_WRM2	= LCELL(V_WEMMN or V_WEMMM); | ||||
| --	V_WRM2	= LCELL(V_WEMMR); | ||||
| --	V_WRM	= LCELL(V_WEMMM or V_WEMMN); | ||||
| --	V_WRM2	= LCELL(V_WEMMM or V_WEMMN); | ||||
| 
 | ||||
| 	V_WEM	= (V_WE); | ||||
| 
 | ||||
| --	V_WEM2	= LCELL(V_WE); | ||||
| --	V_WEM	= LCELL(V_WEMMM & V_WEMMN); | ||||
| --	V_WEM2	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 
 | ||||
| ---	LWR_COL		= DFF(WR_COL,CLK42,,); | ||||
| 	F_WR	= (LCELL(LCELL(LCELL(LCELL(DFF(VCC,V_WE,,)))))); | ||||
| ---	F_WR	= DFF(V_WE,CLK42,,); | ||||
| 	V_WEMMZ	= LCELL(CLK42); | ||||
| 	V_EN3	= (DFF(!(!VXA1 & LCELL(!VXA0 or DOUBLE)), V_WEMMZ, F_WR,)); | ||||
| 	V_EN2	= (DFF(!(!VXA1 & LCELL(VXA0 or DOUBLE)), V_WEMMZ, F_WR,)); | ||||
| 	V_EN1	= (DFF(!(VXA1 & LCELL(!VXA0 or DOUBLE)), V_WEMMZ, F_WR,)); | ||||
| 	V_EN0	= (DFF(!(VXA1 & LCELL(VXA0 or DOUBLE)), V_WEMMZ, F_WR,)); | ||||
| 
 | ||||
| 
 | ||||
| --	V_WR_3	= LCELL(V_WRM or V_EN3); | ||||
| --	V_WR_2	= LCELL(V_WRM or V_EN2); | ||||
| --	V_WR_1	= LCELL(V_WRM or V_EN1); | ||||
| --	V_WR_0	= LCELL(V_WRM or V_EN0); | ||||
| 	V_WR_3	= LCELL(LCELL(LCELL(LCELL(V_WE or V_EN3)))); | ||||
| 	V_WR_2	= LCELL(LCELL(LCELL(LCELL(V_WE or V_EN2)))); | ||||
| 	V_WR_1	= LCELL(LCELL(LCELL(LCELL(V_WE or V_EN1)))); | ||||
| 	V_WR_0	= LCELL(LCELL(LCELL(LCELL(V_WE or V_EN0)))); | ||||
| 
 | ||||
| 	V_WEY3	= LCELL(V_WE or V_EN3); | ||||
| 	V_WEY2	= LCELL(V_WE or V_EN2); | ||||
| 	V_WEY1	= LCELL(V_WE or V_EN1); | ||||
| 	V_WEY0	= LCELL(V_WE or V_EN0); | ||||
| 
 | ||||
| 	V_WR[]	= V_WR_[]; -- V_WR0-3 | ||||
| 	V_WEN[]	= V_WEY[]; -- VD0-3 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| % | ||||
| 	V_WEMMM	= LCELL(V_WE); | ||||
| 	V_WEMMN	= LCELL(V_WEMMM); | ||||
| 	V_WEMMO	= LCELL(V_WEMMN); | ||||
| 	V_WEMM	= LCELL(V_WEMMO); | ||||
| 
 | ||||
| 	V_WRM	= LCELL(V_WEMMN & V_WEMMM); | ||||
| 	V_WRM2	= LCELL(V_WEMMN & V_WEMMM); | ||||
| 
 | ||||
| 	V_WEM	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 	V_WEM2	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 
 | ||||
| 	V_EN3	= DFF(!(!VXA1 & (!VXA0 or DOUBLE)),CLK42,F_WR,); | ||||
| 	V_EN2	= DFF(!(!VXA1 & (VXA0 or DOUBLE)) ,CLK42,F_WR,); | ||||
| 	V_EN1	= DFF(!(VXA1 & (!VXA0 or DOUBLE)) ,CLK42,F_WR,); | ||||
| 	V_EN0	= DFF(!(VXA1 & (VXA0 or DOUBLE))  ,CLK42,F_WR,); | ||||
| 
 | ||||
| 	F_WR	= DFF(VCC,V_WE,,); | ||||
| 
 | ||||
| 	V_WR_3	= V_WRM or V_EN3; | ||||
| 	V_WR_2	= V_WRM2 or V_EN2; | ||||
| 	V_WR_1	= V_WRM or V_EN1; | ||||
| 	V_WR_0	= V_WRM or V_EN0; | ||||
| 
 | ||||
| 	V_WEY3	= V_WEM or V_EN3; | ||||
| 	V_WEY2	= V_WEM2 or V_EN2; | ||||
| 	V_WEY1	= V_WEM or V_EN1; | ||||
| 	V_WEY0	= V_WEM or V_EN0; | ||||
| 
 | ||||
| 	V_WR[]	= V_WR_[]; | ||||
| 	V_WEN[]	= V_WEY[]; | ||||
| % | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| --	CLK84	= LCELL(CLK42 xor CLK84_X); | ||||
| --	CLK84_X	= DFF(!CLK84_X,CLK84,,); | ||||
| --	CLK84_Y	= CLK84; | ||||
| 
 | ||||
| END GENERATE;	-- end "sprinter" mode | ||||
| 
 | ||||
| 
 | ||||
| END; | ||||
							
								
								
									
										783
									
								
								src/altera/acex/k30/VIDEO2_T2_dip_stable.TDF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										783
									
								
								src/altera/acex/k30/VIDEO2_T2_dip_stable.TDF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,783 @@ | ||||
| 
 | ||||
| 	TITLE "Video-controller"; | ||||
| 
 | ||||
| INCLUDE "lpm_ram_dp"; | ||||
| 
 | ||||
| PARAMETERS | ||||
| 	( | ||||
| 	MODE = "SPRINTER", | ||||
| 	MOUSE = "NO", | ||||
| 	HOR_PLACE = H"50", | ||||
| 	VER_PLACE = H"91"   -- 122h/2 | ||||
| 	); | ||||
| 
 | ||||
| SUBDESIGN video2 | ||||
| 	( | ||||
| 	CLK42		: INPUT; | ||||
| 
 | ||||
| 	CT[5..0]	: OUTPUT; | ||||
| 	CTH[5..0]	: OUTPUT; | ||||
| 	CTV[8..0]	: OUTPUT; | ||||
| 	CTF[6..0]	: OUTPUT; | ||||
| 
 | ||||
| 	BLANK		: OUTPUT; | ||||
| 
 | ||||
| 	START_UP	: INPUT; | ||||
| 	COPY_SINC_H	: INPUT; | ||||
| 	COPY_SINC_V	: INPUT; | ||||
| 
 | ||||
| 	WR			: INPUT; | ||||
| 
 | ||||
| 	VAI[19..0]	: INPUT;	-- input screen adress | ||||
| 
 | ||||
| 	VAO[15..0]	: OUTPUT; | ||||
| 
 | ||||
| 	D[7..0]		: INPUT; | ||||
| 	MDI[15..0]	: INPUT; | ||||
| 
 | ||||
| 	VDO0[7..0]	: OUTPUT; | ||||
| 	VDO1[7..0]	: OUTPUT; | ||||
| 	VDO2[7..0]	: OUTPUT; | ||||
| 	VDO3[7..0]	: OUTPUT; | ||||
| 
 | ||||
| 	VDM0[7..0]	: INPUT; | ||||
| 	VDM1[7..0]	: INPUT; | ||||
| 	VDM2[7..0]	: INPUT; | ||||
| 	VDM3[7..0]	: INPUT; | ||||
| 
 | ||||
| 	V_WR[3..0]	: OUTPUT; | ||||
| 	V_WEN[3..0]	: OUTPUT; | ||||
| 
 | ||||
| 	V_CS[1..0]	: OUTPUT; | ||||
| 	WR_PIX		: OUTPUT; | ||||
| 
 | ||||
| --	ZX_COLOR[3..0]	: OUTPUT; | ||||
| 
 | ||||
| 	ZX_PORT[7..0]	: INPUT; | ||||
| 	DIR_PORT[7..0]	: INPUT; | ||||
| 
 | ||||
| % | ||||
| 	bit0	- Spectrum SCREEN Switch | ||||
| 	bit1	- Spectrum Adress MODE | ||||
| 	bit2	- Write to Spectrum Screen OFF | ||||
| 	bit3	- MODE page 0/1 | ||||
| 	bit4	- MODE on/off screen | ||||
| 
 | ||||
| 	bit7..5	- Border | ||||
| % | ||||
| 
 | ||||
| 	INTT		: OUTPUT; | ||||
| 
 | ||||
| 	DOUBLE_CAS	: INPUT; | ||||
| 
 | ||||
| 	MOUSE_X[9..0]	: INPUT; | ||||
| 	MOUSE_Y[9..0]	: INPUT; | ||||
| 
 | ||||
| 
 | ||||
| 	) | ||||
| VARIABLE | ||||
| 
 | ||||
| --	CLK84		: NODE; | ||||
| --	CLK84_X		: NODE; | ||||
| --	CLK84_Y		: NODE; | ||||
| 
 | ||||
| 	ZX_COLOR[3..0]	: NODE; | ||||
| 
 | ||||
| 	CT[5..0]	: DFFE; | ||||
| 	CTH[5..0]	: DFFE; | ||||
| 	CTV[8..0]	: DFFE; | ||||
| 	CTF[6..0]	: DFF; | ||||
| 
 | ||||
| 	VXA[19..0]	: DFFE; | ||||
| 
 | ||||
| 	VXD0[7..0]	: DFFE; | ||||
| 	VXD1[7..0]	: DFFE; | ||||
| 	VXD2[7..0]	: DFFE; | ||||
| 	VXD3[7..0]	: DFFE; | ||||
| 
 | ||||
| 	E_WR		: NODE; | ||||
| 	E_WRD		: NODE; | ||||
| 
 | ||||
| 	BLANK		: NODE; | ||||
| 	BORD		: NODE; | ||||
| --	INTT_T		: NODE; | ||||
| 	INTTX		: NODE; | ||||
| 
 | ||||
| 	VLA[17..0]	: DFF; | ||||
| --	SVA[17..0]	: NODE; | ||||
| 	SVA[17..0]	: DFF; | ||||
| --	RSVA[8..0]	: LCELL; | ||||
| 	RSVA[8..0]	: NODE; | ||||
| --	RSVA[8..0]	: DFF; | ||||
| 
 | ||||
| 	V_CST[1..0]	: DFF; | ||||
| 	VCM[2..0]	: DFF; | ||||
| 	TSN_W3		: DFF; | ||||
| 	V_WE		: DFF; | ||||
| 	V_WEX		: DFF; | ||||
| 
 | ||||
| 	V_WEM		: NODE; | ||||
| 	V_WEM2		: NODE; | ||||
| 	V_WRM		: NODE; | ||||
| 	V_WRM2		: NODE; | ||||
| % | ||||
| 	V_WEMM		: NODE; | ||||
| 	V_WEMMM		: NODE; | ||||
| 	V_WEMMN		: NODE; | ||||
| 	V_WEMMO		: NODE; | ||||
| % | ||||
| 	V_WEMM		: NODE; | ||||
| 	V_WEMMM		: NODE; | ||||
| 	V_WEMMN		: NODE; | ||||
| 	V_WEMMO		: NODE; | ||||
| 	V_WEMMP		: NODE; | ||||
| 	V_WEMMQ		: NODE; | ||||
| 	V_WEMMR		: NODE; | ||||
| 	V_WEMMS		: NODE; | ||||
| 	V_WEMMT		: NODE; | ||||
| 	V_WEMMU		: NODE; | ||||
| 	V_WEMMV		: NODE; | ||||
| 	V_WEMMW		: NODE; | ||||
| 	V_WEMMX		: NODE; | ||||
| 	V_WEMMY		: NODE; | ||||
| 	V_WEMMZ		: NODE; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	V_WET[3..0]	: DFF; | ||||
| 
 | ||||
| 	D_PIC0[7..0]	: DFFE; | ||||
| --	D_PIC0_[7..0]	: LCELL; | ||||
| 
 | ||||
| 	D_PIC0_[7..0]	: DFFE; | ||||
| 	D_PIC1_[7..0]	: DFFE; | ||||
| 	D_PIC2_[7..0]	: DFFE; | ||||
| 	D_PIC3_[7..0]	: DFFE; | ||||
| 
 | ||||
| 	D_PICX_[7..0]	: NODE; | ||||
| 
 | ||||
| 	LWR_PIC		: NODE; | ||||
| 	LWR_COL		: NODE; | ||||
| 
 | ||||
| 	WR_PIC		: DFF; | ||||
| 	WR_COL		: DFF; | ||||
| 	LD_PIC		: NODE; | ||||
| MXL: NODE; | ||||
| MXR: NODE; | ||||
| 
 | ||||
| 	RBRVA[10..8]: DFF; | ||||
| 	BRVA[7..0]	: DFF; | ||||
| 	DCOL[7..0]	: DFFE; | ||||
| 
 | ||||
| 	MXWE		: NODE; | ||||
| --	MXCE		: NODE; | ||||
| 
 | ||||
| 	AX128		: NODE; | ||||
| 
 | ||||
| 	BRD[2..0]	: NODE; | ||||
| 
 | ||||
| 	ZX_COL[3..0]	: LCELL; | ||||
| 
 | ||||
| 	ZXA15		: NODE; | ||||
| 	ZXS[5..0]	: NODE; | ||||
| 	ZX_SCREEN	: NODE; | ||||
| 	SCR128		: NODE; | ||||
| 
 | ||||
| 	MODE0[7..0]		: DFFE; | ||||
| 	MODE1[7..0]		: DFFE; | ||||
| 	MODE2[7..0]		: DFFE; | ||||
| --	MODE3[7..0]		: DFF; | ||||
| 
 | ||||
| 	WR_MODE		: DFF; | ||||
| 	LWR_MODE	: NODE; | ||||
| 	X_MODE[7..4]: NODE; | ||||
| 	X_MODE_BOND	: NODE; | ||||
| 
 | ||||
| --	M_CTV[2..0]	: DFF; | ||||
| --	M_CT[5..3]  : DFF; | ||||
| 	M_CTV[2..0]	: LCELL; | ||||
| 	M_CT[5..3]  : LCELL; | ||||
| 
 | ||||
| 	DOUBLE		: DFFE; | ||||
| 
 | ||||
| 	PIC_CLK		: NODE; | ||||
| 
 | ||||
| 	MS_X[9..0]	: DFF; | ||||
| 	MS_Y[9..0]	: DFF; | ||||
| 
 | ||||
| 	MS_POINT	: NODE; | ||||
| 	MS_POINT2	: NODE; | ||||
| 	MS_PNT		: NODE; | ||||
| 
 | ||||
| 	MS_DAT		: LPM_RAM_DP WITH (LPM_WIDTH=16,LPM_WIDTHAD=8,LPM_FILE="MOUSE.MIF"); | ||||
| 
 | ||||
| 	SCR_ENA		: DFFE; | ||||
| 	V_WR_[3..0]	: LCELL; | ||||
| 	V_WEY[3..0]	: LCELL; | ||||
| 
 | ||||
| 	V_WE_R		: NODE; | ||||
| 
 | ||||
| 	V_CSX[3..0]	: NODE; | ||||
| 
 | ||||
| 	V_EN[3..0]	: NODE; | ||||
| 
 | ||||
| 	F_WR		: NODE; | ||||
| 
 | ||||
| BEGIN | ||||
| 
 | ||||
| 	DEFAULTS | ||||
| 		WR_MODE.d	= VCC; -- WR_MODE2.d	= VCC; -- WR_MODE2X.d	= VCC; | ||||
| 		V_CST[].d	= VCC; V_WR[]		= VCC; TSN_W3.d		= VCC; | ||||
| 		V_WE.d		= VCC; WR_COL.d		= VCC; WR_PIC.d		= VCC; | ||||
| 		V_WET[].d	= VCC; | ||||
| 	END DEFAULTS; | ||||
| 
 | ||||
| 	ZX_COLOR[] = ZX_COL[]; | ||||
| 
 | ||||
| --	=== MOUSE counters ======== | ||||
| 
 | ||||
| 	MS_X[].clk	= !CT1; | ||||
| 	CASE LCELL(CTH[5..2] == 12) IS | ||||
| 		WHEN 0 => MS_X[] = MS_X[] + 1; | ||||
| 		WHEN 1 => MS_X[] = (!MOUSE_X[9..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MS_Y[].clk	= !CTH5; | ||||
| 	CASE LCELL(CTV8 & !CTV5 & CTV4) IS | ||||
| 		WHEN 0 => MS_Y[] = MS_Y[] + 1; | ||||
| 		WHEN 1 => MS_Y[] = (GND,!MOUSE_Y[8..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MS_PNT = DFF(((MS_X[] == B"100000XXXX") & (MS_Y[] == B"100000XXXX")),CLK42,,); | ||||
| 
 | ||||
| 	MS_DAT.wren 		= GND; | ||||
| 	MS_DAT.data[] 		= GND; | ||||
| 	MS_DAT.wraddress[]	= GND; | ||||
| 	MS_DAT.wrclock		= CLK42; | ||||
| 	MS_DAT.wrclken		= GND; | ||||
| 	MS_DAT.rden			= VCC; | ||||
| 	MS_DAT.rdaddress[]	= (MS_Y[3..0],MS_X[3..0]); | ||||
| 	MS_DAT.rdclock		= CLK42; | ||||
| 	MS_DAT.rdclken		= VCC; | ||||
| 
 | ||||
| 	IF MOUSE == "NO" GENERATE | ||||
| 		MS_POINT	= GND; | ||||
| 		MS_POINT2	= GND; | ||||
| 	ELSE GENERATE | ||||
| 		MS_POINT	= DFF((MS_PNT & MS_DAT.q0),CLK42,,); | ||||
| 		MS_POINT2	= DFF((MS_PNT & MS_DAT.q1),CLK42,,); | ||||
| 	END GENERATE; | ||||
| 
 | ||||
| --	=== Sinc-counts GENERATOR ============================================ | ||||
| 
 | ||||
| --	CT[].clrn	= START_UP; | ||||
| 
 | ||||
| --	(,CTH[5..0].clrn,CT[5].clrn) = !COPY_SINC_H or HOR_PLACE; | ||||
| --	(,CTH[5..0].prn ,CT[5].prn ) = !COPY_SINC_H or !HOR_PLACE; | ||||
| 
 | ||||
| --	CTV[].clrn = !COPY_SINC_V or VER_PLACE; | ||||
| --	CTV[].prn  = !COPY_SINC_V or !VER_PLACE; | ||||
| 
 | ||||
| 	CT[5].clrn		= !COPY_SINC_H; | ||||
| 
 | ||||
| 	-- set CTH to 50 (32h) | ||||
| 	CTH[0].clrn		= !COPY_SINC_H; | ||||
| 	CTH[1].prn 		= !COPY_SINC_H; | ||||
| 	CTH[2].clrn		= !COPY_SINC_H; | ||||
| 	CTH[3].clrn		= !COPY_SINC_H; | ||||
| 	CTH[4].prn 		= !COPY_SINC_H; | ||||
| 	CTH[5].prn		= !COPY_SINC_H; | ||||
| 
 | ||||
| 	-- set CTV to 122h | ||||
| 	CTV[0].clrn		= !COPY_SINC_V; | ||||
| 	CTV[1].prn		= !COPY_SINC_V; | ||||
| 	CTV[3..2].clrn	= !COPY_SINC_V; | ||||
| 
 | ||||
| 	CTV[4].clrn		= !COPY_SINC_V; | ||||
| 	CTV[5].prn		= !COPY_SINC_V; | ||||
| 	CTV[7..6].clrn	= !COPY_SINC_V; | ||||
| 	CTV[8].prn		= !COPY_SINC_V; | ||||
| 
 | ||||
| 	CT[5..0].clk	= CLK42; | ||||
| 	CTH[5..0].clk	= CLK42; | ||||
| 	CTV[8..0].clk	= CLK42; | ||||
| 
 | ||||
| 	CT[2..0].ena	= VCC; | ||||
| 
 | ||||
| 	CASE CT[2..0] IS | ||||
| 		WHEN 0 => CT[2..0] = 1; | ||||
| 		WHEN 1 => CT[2..0] = 2; | ||||
| 		WHEN 2 => CT[2..0] = 4; | ||||
| 		WHEN 3 => CT[2..0] = 4; | ||||
| 		WHEN 4 => CT[2..0] = 5; | ||||
| 		WHEN 5 => CT[2..0] = 6; | ||||
| 		WHEN 6 => CT[2..0] = 0; | ||||
| 		WHEN 7 => CT[2..0] = 0; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 								  -- for remove sinc jitter | ||||
| --	CT[5..3].ena	= DFF(((CT0 & CT2) or (COPY_SINC_H & !CT4)),CLK42,,); | ||||
| 	CT[5..3].ena	= DFF((CT0 & CT2),CLK42,,); | ||||
| 	CT[5..3]	= CT[5..3]+1; | ||||
| % | ||||
| 	CASE CT[4..3] IS | ||||
| 		WHEN 0 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 1 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 2 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 3 => CT[5..3]	= CT[5..3]+1; | ||||
| 	END CASE; | ||||
| % | ||||
| 	CTH[].ena		= DFF(((CT[5..2] == 15) & CT0),CLK42,,); | ||||
| 	CTV[].ena		= DFF(((CT[5..2] == 15) & CT0 & (CTH[] == 48)),CLK42,,); | ||||
| 
 | ||||
| 	IF CTH[] == 55 THEN | ||||
| 		CTH[]	= GND; | ||||
| 	ELSE | ||||
| 		CTH[]	= CTH[] + 1; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	IF CTV[] == 319 THEN | ||||
| 		CTV[]	= GND; | ||||
| 	ELSE | ||||
| 		CTV[]	= CTV[] + 1; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	CTF[].clk	= CTV8; | ||||
| 	CTF[]		= CTF[]+1; | ||||
| 
 | ||||
| --	==== Video ========================================================== | ||||
| 
 | ||||
| 	ZXS[]		= ZX_PORT[5..0];	-- pages ZX Screens | ||||
| 	ZX_SCREEN	= ZX_PORT6;			-- enable ZX Screen write | ||||
| 	ZXA15		= ZX_PORT7;			-- ZX A15' line | ||||
| 
 | ||||
| 	SCR128		= DIR_PORT0; | ||||
| 
 | ||||
| --	WR_PIX	= LCELL(TSN_W3); | ||||
| 	WR_PIX	= TSN_W3; | ||||
| 
 | ||||
| 	DOUBLE.clk = CLK42; DOUBLE.ena = !E_WR; DOUBLE	= DOUBLE_CAS; | ||||
| 	VXA[].clk  = CLK42; VXA[].ena  = !E_WR; | ||||
| 
 | ||||
| 	VXD0[].clk = CLK42; VXD0[].ena = !E_WRD;	VDO0[]	= VXD0[]; | ||||
| 	VXD1[].clk = CLK42; VXD1[].ena = !E_WRD;	VDO1[]	= VXD1[]; | ||||
| 	VXD2[].clk = CLK42; VXD2[].ena = !E_WRD;	VDO2[]	= VXD2[]; | ||||
| 	VXD3[].clk = CLK42; VXD3[].ena = !E_WRD;	VDO3[]	= VXD3[]; | ||||
| 
 | ||||
| --	VXD0[] = D[]; | ||||
| --	VXD1[] = D[]; | ||||
| --	VXD2[] = D[]; | ||||
| --	VXD3[] = D[]; | ||||
| 
 | ||||
| 	(VXD0[],VXD1[]) = MDI[]; | ||||
| 	(VXD2[],VXD3[]) = MDI[]; | ||||
| 
 | ||||
| 	BRD[]		= DIR_PORT[7..5]; | ||||
| 
 | ||||
| 	VCM[].clk	= CLK42; | ||||
| 	TSN_W3.clk	= CLK42; | ||||
| 	V_CST[].clk	= CLK42; | ||||
| 	V_WE.clk	= CLK42; | ||||
| 	V_WET[].clk	= CLK42; | ||||
| 	VLA[].clk	= CLK42; | ||||
| 
 | ||||
| 	SCR_ENA.clk	= CLK42; | ||||
| 	SCR_ENA.ena	= !E_WR; | ||||
| 	SCR_ENA.d	= !(VAI19 or ZX_SCREEN); | ||||
| 
 | ||||
| 	E_WRD	= DFF(E_WR,CLK42,,); | ||||
| 	E_WR = LCELL(WR or !(VAI19 or ZX_SCREEN) or !DFF(WR,CLK42,,)); | ||||
| --	E_WR = LCELL(WR or !DFF(WR,CLK42,,)); | ||||
| 
 | ||||
| --	**************************************************** | ||||
| 
 | ||||
| IF MODE == "SPRINTER" GENERATE | ||||
| 
 | ||||
| --	VAI[19]	- switch adress mode	1 - graf mode, 0 - spectrum mode | ||||
| 
 | ||||
| --	MXWE	= DFF(((DFF(E_WR,CLK42,,) or SCR_ENA)  & MXWE),CLK42,,V_WE); | ||||
| 	MXWE	= DFF(MXWE,CLK42,E_WR,V_WE); | ||||
| 
 | ||||
| 	IF VAI[19] THEN | ||||
| 		-- in graf mode all 256k(512k) range | ||||
| 		VXA[]	= VAI[]; | ||||
| 	ELSE | ||||
| 		-- in spectrum mode 8k/16k range pages | ||||
| 		VXA[]	= (GND,GND,VAI[7..0],ZXS[4..1],LCELL(ZXS0 xor ZXA15 xor VAI13),VAI[12..8]); | ||||
| 	END IF; | ||||
| 
 | ||||
| --	BORD	= DFF((MODE0[7..4] == 15),WR_PIC,,); | ||||
| --	BLANK	= DFF((BORD & MODE03 & MODE02),WR_PIC,,); | ||||
| --	INTTX 	= DFF((BORD & MODE03 & MODE02 & MODE00),WR_PIC,,); | ||||
| 
 | ||||
| 	BORD	= DFF((MODE0[7..4] == 15),LWR_COL,,); | ||||
| 	BLANK	= DFF(((BORD & MODE03 & MODE02) or DIR_PORT4),LWR_COL,,); | ||||
| 	INTTX 	= DFF((BORD & MODE03 & MODE02 & MODE00),LWR_COL,,); | ||||
| 
 | ||||
| 	INTT	= DFF(!(INTTX & (CTV[2..0] == 7)),CT5,,); | ||||
| 
 | ||||
| --	INTT	= DFF((INTTX or DFF(INTTX,CT5,,)),CT5,,); | ||||
| --	INTT	= DFF(!(BLANK & (CTV[2..0] == 7)),CLK42,,MODE0[0]); | ||||
| 
 | ||||
| 	CASE CT[2..0] IS | ||||
| 		WHEN B"110" => VCM[2..0].d = 5; -- 110 -> 101  6 -> 5 | ||||
| 		WHEN B"000" => VCM[2..0].d = 1; -- 000 -> 001  0 -> 1 | ||||
| 		WHEN B"001" => VCM[2..0].d = 4; -- 001 -> 100  1 -> 4 | ||||
| 		WHEN B"010" => VCM[2..0].d = 3; -- 010 -> 011  2 -> 3 | ||||
| 		WHEN B"100" => VCM[2..0].d = 2; -- 100 -> 010  4 -> 2 | ||||
| 		WHEN B"101" => VCM[2..0].d = 0; -- 101 -> 000  5 -> 0 | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE VCM[1..0] IS | ||||
| 		WHEN 0 => | ||||
| 			VLA[].d	= (BRVA[7..0],VCC,VCC,VCC,VCC,VCC,RBRVA[10..8],GND,GND); | ||||
| 			V_CST[].d = (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 
 | ||||
| TSN_W3.d  = X_MODE_BOND; | ||||
| % | ||||
| 			IF VCM2 THEN | ||||
| --				TSN_W3.d  = X_MODE5; | ||||
| 				TSN_W3.d  = X_MODE_BOND; | ||||
| --				V_CST[].d = (VCC,X_MODE5); | ||||
| 			ELSE | ||||
| 				TSN_W3.d  = X_MODE_BOND; | ||||
| --				V_CST[].d = (VCC,X_MODE_BOND); | ||||
| 			END IF; | ||||
| % | ||||
| 
 | ||||
| 		WHEN 1 => | ||||
| 			WR_PIC.d	= !VCM2; | ||||
| 			WR_COL.d	= VCM2; | ||||
| 			VLA[].d		= SVA[]; | ||||
| 			V_CST[].d = (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 		WHEN 2 => | ||||
| 			VLA[].d		= VXA[17..0]; | ||||
| 			V_CST[].d 	= (!VXA18,VXA18) or MXWE; | ||||
| 			V_WE.d		= MXWE; | ||||
| 			V_WEX.d		= GND; | ||||
| 			V_WET[].d	= MXWE or !((!VXA1 & !VXA0),(!VXA1 & VXA0),(VXA1 & !VXA0),(VXA1 & VXA0)); | ||||
| 		WHEN 3 => | ||||
| --			WR_PIC.d	= X_MODE5; | ||||
| --			NEW 26.08.2022, fix bug with first column | ||||
| --			it was reproducing when changes mode 320 -> 640, like any 320px screen squares -> text mode squares | ||||
| 			WR_PIC.d	= MODE0[5]; | ||||
| 			VLA[].d		= (DIR_PORT3,CTH[5..0],CT5,VCC,VCC,CTV[8..3],GND,GND); | ||||
| 			WR_MODE.d	= !(CT[5..3] == B"111") & !(CT4 & CT3 & !MODE0[5]); | ||||
| 			V_CST[].d 	= (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	choose V-RAM komplect | ||||
| 
 | ||||
| 	V_CST1.prn	= GND; | ||||
| --	V_CS0.clrn	= GND; | ||||
| 	V_CST0.prn	= (LCELL(DFF(GND,!CLK42,,!V_CST0))); | ||||
| 	V_CS1	= VCC; | ||||
| --	V_CS0	= LCELL(V_CST0); | ||||
| 
 | ||||
| 	V_CSX0	= LCELL(!CLK42); | ||||
| 	V_CSX1	= LCELL(V_CSX0); | ||||
| 	V_CSX2	= LCELL(V_CSX1 & V_CSX0); | ||||
| 	V_CSX3	= LCELL(V_CSX2); | ||||
| 
 | ||||
| --	V_CS0	= V_CSX3; | ||||
| 	V_CS0	= GND; | ||||
| 
 | ||||
| --	===================== | ||||
| 
 | ||||
| 	SVA[].clk	= CLK42; | ||||
| 	SVA[9..6]	= MODE0[3..0]; | ||||
| --	RSVA[].clk	= CLK42; | ||||
| 	(SVA[12..10],SVA[5..0]) = RSVA[]; | ||||
| 
 | ||||
| --	M_CTV[2..0].clk	= CLK42; | ||||
| --	M_CT[5..3].clk	= CLK42; | ||||
| 	M_CTV[2..0]	= (!MODE2[2] & CTV[2..0]) or MODE2[2] & (MODE2[1],CTV[2..1]); | ||||
| 	M_CT[5..3]	= (!MODE2[2] & (CT[5],!CT[4..3])) or MODE2[2] & (MODE2[0],!CT[5..4]); | ||||
| 
 | ||||
| 	CASE (!VCM2,MODE0[4]) IS | ||||
| --	CASE (!VCM1,MODE0[4]) IS | ||||
| 		WHEN B"X0" => | ||||
| 			--	Graf adress  -- | ||||
| 			RSVA[] = (M_CTV[2..0],MODE1[2..0],M_CT[5..3]); | ||||
| 			SVA[17..13] = MODE1[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = CTV[2..0]; | ||||
| --			SVA[5..0]	= (MODE1[2..0],CT5,!CT[4..3]); | ||||
| 		WHEN B"01" => | ||||
| 			--	ZX-atr adress  -- | ||||
| 			RSVA[] = (MODE2[2..0],SCR128,VCC,VCC,GND,!MODE0[7..6]); | ||||
| 			SVA[17..13] = MODE2[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = MODE2[2..0]; | ||||
| --			SVA[5..0]	= (SCR128,VCC,VCC,GND,!MODE0[7..6]); | ||||
| 		WHEN B"11" => | ||||
| 			--	ZX-pic adress  -- | ||||
| 			RSVA[] = (MODE1[2..0],SCR128,MODE0[7..6],CTV2,!CTV1,!CTV0); | ||||
| 			SVA[17..13] = MODE1[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = MODE1[2..0]; | ||||
| --			SVA[5..0]	= (SCR128,MODE0[7..6],CTV2,!CTV1,!CTV0); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	X_MODE_BOND	= LCELL(LCELL(DCOL[7..4] == 15) & LCELL(DCOL[3..0] == 15) & DFF((MODE0[7] & MODE0[5] & !MODE0[4]),LWR_COL,VCC,VCC)); | ||||
| 	X_MODE_BOND	= GND; | ||||
| 
 | ||||
| --	LD_PIC	= LCELL((MODE0[5] & DFF((CT[5..3] == B"000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| 	LD_PIC	= LCELL((MODE0[5] & DFF((CT[5..3] == B"000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| 
 | ||||
| 
 | ||||
| --	CASE (DFF(VLA1,!CLK42,,),DFF(VLA0,!CLK42,,)) IS | ||||
| 
 | ||||
| --	D_PIC0_[].clk	= !CLK42; | ||||
| --	D_PIC1_[].clk	= !CLK42; | ||||
| --	D_PIC2_[].clk	= !CLK42; | ||||
| --	D_PIC3_[].clk	= !CLK42; | ||||
| 
 | ||||
| --	PIC_CLK			= LCELL(LCELL(CLK42)); | ||||
| 	PIC_CLK			= !CLK42; | ||||
| 
 | ||||
| 	D_PIC0_[].clk	= PIC_CLK; | ||||
| 	D_PIC1_[].clk	= PIC_CLK; | ||||
| 	D_PIC2_[].clk	= PIC_CLK; | ||||
| 	D_PIC3_[].clk	= PIC_CLK; | ||||
| 
 | ||||
| 	D_PIC0_[] = VDM0[]; | ||||
| 	D_PIC1_[] = VDM1[]; | ||||
| 	D_PIC2_[] = VDM2[]; | ||||
| 	D_PIC3_[] = VDM3[]; | ||||
| 
 | ||||
| 	CASE (DFF(VLA1,CLK42,,),DFF(VLA0,CLK42,,)) IS | ||||
| 		WHEN 0 => D_PICX_[] = D_PIC0_[]; | ||||
| 		WHEN 1 => D_PICX_[] = D_PIC1_[]; | ||||
| 		WHEN 2 => D_PICX_[] = D_PIC2_[]; | ||||
| 		WHEN 3 => D_PICX_[] = D_PIC3_[]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MODE0[].ena 	= VCC; | ||||
| 	MODE1[].ena 	= VCC; | ||||
| 	MODE2[].ena 	= VCC; | ||||
| 	MODE0[].clk		= LWR_MODE; | ||||
| 	MODE1[].clk		= LWR_MODE; | ||||
| 	MODE2[].clk		= LWR_MODE; | ||||
| 	MODE0[].d		= VDM3[]; | ||||
| 	MODE1[].d		= VDM2[]; | ||||
| 	MODE2[].d		= VDM1[]; | ||||
| 	LWR_MODE		= LCELL(LCELL(WR_MODE)); | ||||
| % | ||||
| 	MODE0[].ena 	= LWR_MODE; | ||||
| 	MODE1[].ena 	= LWR_MODE; | ||||
| 	MODE2[].ena 	= LWR_MODE; | ||||
| 	MODE0[].clk		= CLK42; | ||||
| 	MODE1[].clk		= CLK42; | ||||
| 	MODE2[].clk		= CLK42; | ||||
| 	MODE0[].d		= D_PIC3_[]; | ||||
| 	MODE1[].d		= D_PIC2_[]; | ||||
| 	MODE2[].d		= D_PIC1_[]; | ||||
| 	LWR_MODE		= DFF(!WR_MODE,CLK42,,); | ||||
| % | ||||
| 	X_MODE7	= DFF(MODE0[7],LWR_COL,,); | ||||
| 	X_MODE6	= DFF(MODE0[6],LWR_COL,,); | ||||
| 	X_MODE5	= DFF(MODE0[5],LWR_COL,,); | ||||
| 	X_MODE4 = DFF(MODE0[4],LWR_COL,,); | ||||
| 
 | ||||
| 	VAO[]	= VLA[17..2]; | ||||
| 
 | ||||
| 	WR_PIC.clk		= CLK42; | ||||
| 	WR_COL.clk		= CLK42; | ||||
| 	WR_MODE.clk		= CLK42; | ||||
| 
 | ||||
| --	LWR_PIC		= LCELL(LCELL(WR_PIC)); | ||||
| --	LWR_COL		= LCELL(LCELL(WR_COL)); | ||||
| --	LWR_PIC		= LCELL(WR_PIC); | ||||
| --	LWR_COL		= LCELL(WR_COL); | ||||
| 	LWR_PIC		= DFF(WR_PIC,CLK42,,); | ||||
| 	LWR_COL		= DFF(WR_COL,CLK42,,); | ||||
| 
 | ||||
| --	D_PIC0[].ena	= VCC; | ||||
| --	D_PIC0[].clk	= (LWR_PIC); | ||||
| 	D_PIC0[].ena	= !LWR_PIC; | ||||
| 	D_PIC0[].clk	= CLK42; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	IF LD_PIC THEN | ||||
| --		D_PIC0[] = D_PIC0_[]; | ||||
| 		D_PIC0[] = D_PICX_[]; | ||||
| 	ELSE | ||||
| 		D_PIC0[] = (D_PIC0[6..0],GND); | ||||
| 	END IF; | ||||
| 
 | ||||
| 
 | ||||
| --	DCOL[].clk	= (LWR_COL); | ||||
| 	DCOL[].ena	= !LWR_COL; | ||||
| 	DCOL[].clk	= CLK42; | ||||
| 
 | ||||
| 	IF DFF((MODE0[7..4] == 15),WR_PIC,,) THEN | ||||
| 		DCOL[].d	= (B"00",BRD[2..0],BRD[2..0]); | ||||
| 	ELSE | ||||
| --		DCOL[].d	= D_PIC0_[]; | ||||
| 		DCOL[].d	= D_PICX_[]; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	DCOL[].clrn	= !BLANK; | ||||
| 
 | ||||
| 	BRVA[].clk	= CLK42; | ||||
| 	BRVA[].clrn	= !MS_POINT; | ||||
| 	BRVA[].prn	= !MS_POINT2; | ||||
| 
 | ||||
| -- 	MODE0[4] - graph / text | ||||
| --	MODE0[5] - 320 / 640 resolution | ||||
| 
 | ||||
| --	CASE (LCELL(X_MODE4 or X_MODE5),CT2) IS | ||||
| 	CASE (DFF((MODE0[4] or MODE0[5]),LWR_COL,,),CT2) IS | ||||
| 		WHEN B"1X" => BRVA[7..0] = DCOL[]; | ||||
| 		WHEN B"01" => BRVA[7..0] = (B"0000",DCOL[7..4]); | ||||
| 		WHEN B"00" => BRVA[7..0] = (B"0000",DCOL[3..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	BRVA[10..8] = (x_mode4,RBRVA[9..8]); | ||||
| 	RBRVA[].clk = CLK42; | ||||
| 
 | ||||
| 	CASE (BORD,X_MODE4) IS | ||||
| 		WHEN B"X0" => RBRVA[10..8].d = (GND,X_MODE[7..6]); | ||||
| 		WHEN B"X1" => RBRVA[10..8].d = (VCC,(CTF4 & !BLANK),D_PIC0[7]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	RBRVA[9..8].clrn = !BORD; | ||||
| 	RBRVA[10].prn = !BORD; | ||||
| 
 | ||||
| 	CASE (RBRVA[9..8],BRVA7) IS | ||||
| 		WHEN 0,1,4,7 => ZX_COL[] = (BRVA[6],BRVA[5..3]); | ||||
| 		WHEN 2,3,6,5 => ZX_COL[] = (BRVA[6],BRVA[2..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	V_WET[].prn	= LCELL(DFF(GND,!CLK42,,!V_WE)); | ||||
| --	V_WE.prn	= LCELL(DFF(GND,!CLK42,,!V_WE)); | ||||
| 
 | ||||
| 	V_WE_R		= DFF(GND,!CLK42,,!V_WE); | ||||
| 	V_WE.prn	= V_WE_R; | ||||
| 	V_WET[].prn	= V_WE_R; | ||||
| 
 | ||||
| --	V_WR[]	= LCELL(V_WE) or !((!VXA1 & !VXA0),(!VXA1 & VXA0),(VXA1 & !VXA0),(VXA1 & VXA0)); | ||||
| 
 | ||||
| --	V_WR[]	= (V_WE) or !( | ||||
| 
 | ||||
| 	V_WEX.clk	= CLK42; | ||||
| --	V_WEX.d		= V_WE; | ||||
| --	V_WEX.prn	= (DFF(GND,CLK42,,!V_WEX)); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	V_WEMMM	= LCELL(V_WE); | ||||
| --	V_WEMMN	= LCELL(V_WEMMM); -- bios ok, fn ok, fnf1 failed, zx almost ok | ||||
| --	V_WEMMO	= LCELL(V_WEMMN); -- green arts | ||||
| --	V_WEMMP	= LCELL(V_WEMMO); -- blue + pink arts | ||||
| --	V_WEMMR	= LCELL(V_WEMMP); -- no F1 issue, but red arts (fix by finger, not enough capacity??) | ||||
| --	V_WEMMS	= LCELL(V_WEMMR);  | ||||
| --	V_WEMMT	= LCELL(V_WEMMS); | ||||
| --	V_WEMMU	= LCELL(V_WEMMT); | ||||
| --	V_WEMMV	= LCELL(V_WEMMU); | ||||
| --	V_WEMMW	= LCELL(V_WEMMV); | ||||
| --	V_WEMMX	= LCELL(V_WEMMW); | ||||
| --	V_WEMMY	= LCELL(V_WEMMX); | ||||
| --	V_WEMMZ	= LCELL(V_WEMMY); | ||||
| 
 | ||||
| 	V_WRM	= LCELL(V_WE or V_WEMMM); | ||||
| 
 | ||||
| 
 | ||||
| --	V_WRM	= LCELL(V_WEMMN or V_WEMMM); | ||||
| --	V_WRM2	= LCELL(V_WEMMN or V_WEMMM); | ||||
| --	V_WRM2	= LCELL(V_WEMMR); | ||||
| --	V_WRM	= LCELL(V_WEMMM or V_WEMMN); | ||||
| --	V_WRM2	= LCELL(V_WEMMM or V_WEMMN); | ||||
| 
 | ||||
| 	V_WEM	= (V_WE); | ||||
| 
 | ||||
| --	V_WEM2	= LCELL(V_WE); | ||||
| --	V_WEM	= LCELL(V_WEMMM & V_WEMMN); | ||||
| --	V_WEM2	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 
 | ||||
| ---	LWR_COL		= DFF(WR_COL,CLK42,,); | ||||
| 	F_WR	= ((LCELL(LCELL(LCELL(DFF(VCC,V_WE,,)))))); | ||||
| ---	F_WR	= DFF(V_WE,CLK42,,); | ||||
| --	V_WEMMZ	= LCELL(CLK42); | ||||
| 	V_EN3	= (DFF(!(!VXA1 & (!VXA0 or DOUBLE)), CLK42, F_WR,)); | ||||
| 	V_EN2	= (DFF(!(!VXA1 & (VXA0 or DOUBLE)), CLK42, F_WR,)); | ||||
| 	V_EN1	= (DFF(!(VXA1 & (!VXA0 or DOUBLE)), CLK42, F_WR,)); | ||||
| 	V_EN0	= (DFF(!(VXA1 & (VXA0 or DOUBLE)), CLK42, F_WR,)); | ||||
| 
 | ||||
| 
 | ||||
| --	V_WR_3	= LCELL(V_WRM or V_EN3); | ||||
| --	V_WR_2	= LCELL(V_WRM or V_EN2); | ||||
| --	V_WR_1	= LCELL(V_WRM or V_EN1); | ||||
| --	V_WR_0	= LCELL(V_WRM or V_EN0); | ||||
| 	V_WR_3	= (LCELL(LCELL(LCELL(V_WRM or V_EN3)))); | ||||
| 	V_WR_2	= (LCELL(LCELL(LCELL(V_WRM or V_EN2)))); | ||||
| 	V_WR_1	= (LCELL(LCELL(LCELL(V_WRM or V_EN1)))); | ||||
| 	V_WR_0	= (LCELL(LCELL(LCELL(V_WRM or V_EN0)))); | ||||
| 
 | ||||
| 	V_WEY3	= LCELL(V_WE or V_EN3); | ||||
| 	V_WEY2	= LCELL(V_WE or V_EN2); | ||||
| 	V_WEY1	= LCELL(V_WE or V_EN1); | ||||
| 	V_WEY0	= LCELL(V_WE or V_EN0); | ||||
| 
 | ||||
| 	V_WR[]	= V_WR_[]; -- V_WR0-3 | ||||
| 	V_WEN[]	= V_WEY[]; -- VD0-3 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| % | ||||
| 	V_WEMMM	= LCELL(V_WE); | ||||
| 	V_WEMMN	= LCELL(V_WEMMM); | ||||
| 	V_WEMMO	= LCELL(V_WEMMN); | ||||
| 	V_WEMM	= LCELL(V_WEMMO); | ||||
| 
 | ||||
| 	V_WRM	= LCELL(V_WEMMN & V_WEMMM); | ||||
| 	V_WRM2	= LCELL(V_WEMMN & V_WEMMM); | ||||
| 
 | ||||
| 	V_WEM	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 	V_WEM2	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 
 | ||||
| 	V_EN3	= DFF(!(!VXA1 & (!VXA0 or DOUBLE)),CLK42,F_WR,); | ||||
| 	V_EN2	= DFF(!(!VXA1 & (VXA0 or DOUBLE)) ,CLK42,F_WR,); | ||||
| 	V_EN1	= DFF(!(VXA1 & (!VXA0 or DOUBLE)) ,CLK42,F_WR,); | ||||
| 	V_EN0	= DFF(!(VXA1 & (VXA0 or DOUBLE))  ,CLK42,F_WR,); | ||||
| 
 | ||||
| 	F_WR	= DFF(VCC,V_WE,,); | ||||
| 
 | ||||
| 	V_WR_3	= V_WRM or V_EN3; | ||||
| 	V_WR_2	= V_WRM2 or V_EN2; | ||||
| 	V_WR_1	= V_WRM or V_EN1; | ||||
| 	V_WR_0	= V_WRM or V_EN0; | ||||
| 
 | ||||
| 	V_WEY3	= V_WEM or V_EN3; | ||||
| 	V_WEY2	= V_WEM2 or V_EN2; | ||||
| 	V_WEY1	= V_WEM or V_EN1; | ||||
| 	V_WEY0	= V_WEM or V_EN0; | ||||
| 
 | ||||
| 	V_WR[]	= V_WR_[]; | ||||
| 	V_WEN[]	= V_WEY[]; | ||||
| % | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| --	CLK84	= LCELL(CLK42 xor CLK84_X); | ||||
| --	CLK84_X	= DFF(!CLK84_X,CLK84,,); | ||||
| --	CLK84_Y	= CLK84; | ||||
| 
 | ||||
| END GENERATE;	-- end "sprinter" mode | ||||
| 
 | ||||
| 
 | ||||
| END; | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										5
									
								
								src/altera/acex/k30_make.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/altera/acex/k30_make.bat
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| C: | ||||
| cd "C:\users\tolik\Documents\SP_Projects\ASM\GIT\SP_Core\Build\acex\tmp\" | ||||
| "C:\Program Files (x86)\MAXPLUS2\MAXPLUS2.EXE" -compile SP2_ACEX >> compile.log | ||||
| transttf.exe SP2_ACEX.ttf ..\STREAM.BIN | ||||
| exit | ||||
| @ -1,49 +0,0 @@ | ||||
| @set BIN=..\..\bin\ | ||||
| @set CHIP=K30 | ||||
| 
 | ||||
| @echo -------------------------------------------------------[Bitstream START] | ||||
| @echo STEP 0, Task [1/2] ALTERA ACEX-%CHIP% STREAM | ||||
| 
 | ||||
| @if exist SP2_ACEX.ttf goto trans | ||||
| 
 | ||||
| @copy %CHIP%\*.* .\*.* | ||||
| 
 | ||||
| @C:\MAXPLUS2\MAXPLUS2.EXE -compile SP2_ACEX | ||||
| 
 | ||||
| @del *.txt | ||||
| @del *.bak | ||||
| @del *.cnf | ||||
| @del *.db? | ||||
| 
 | ||||
| @del *.hif | ||||
| @del *.mmf | ||||
| @del *.mtf | ||||
| @del *.mtb | ||||
| @del *.hex | ||||
| @del *.ndb | ||||
| @del *.pin | ||||
| @del *.pof | ||||
| @del *.snf | ||||
| @del *.fit | ||||
| 
 | ||||
| @del *.SCF | ||||
| @del *.ACF | ||||
| @del *.TDF | ||||
| @del *.INC | ||||
| @del *.MIF | ||||
| 
 | ||||
| :trans | ||||
| @%BIN%\transttf.exe SP2_ACEX.ttf STREAM.BIN | ||||
| @if not exist STREAM.BIN goto error | ||||
| 
 | ||||
| @goto quit | ||||
| 
 | ||||
| :error  | ||||
| @color 04 | ||||
| @echo ---------------------------------------------------------------------[Compiling bitstream %CHIP% ERROR!!!] | ||||
| @pause 0 | ||||
| @exit 3 | ||||
| 
 | ||||
| :quit | ||||
| @echo             [OK ] | ||||
| @echo. | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -38,43 +38,43 @@ BEGIN | ||||
| 	|WR_PDOS :	OUTPUT_PIN = 8; | ||||
| 	|/WG_WR :	OUTPUT_PIN = 93; | ||||
| 	|/WG_RD :	OUTPUT_PIN = 97; | ||||
| 	|WDAT :	OUTPUT_PIN = 98; | ||||
| 	|WDAT :		OUTPUT_PIN = 98; | ||||
| 	|TG42_OUT :	OUTPUT_PIN = 85; | ||||
| 	|TG42_BUF :	OUTPUT_PIN = 36; | ||||
| 	|SINC_2 :	OUTPUT_PIN = 19; | ||||
| 	|SINC_1 :	OUTPUT_PIN = 20; | ||||
| 	|SINC_V :	OUTPUT_PIN = 64; | ||||
| 	|SINC_H :	OUTPUT_PIN = 68; | ||||
| 	|SINC :	OUTPUT_PIN = 67; | ||||
| 	|QDAT :	OUTPUT_PIN = 16; | ||||
| 	|SINC :		OUTPUT_PIN = 67; | ||||
| 	|QDAT :		OUTPUT_PIN = 16; | ||||
| 	|HD_DIR :	OUTPUT_PIN = 48; | ||||
| 	|HD_CS :	OUTPUT_PIN = 52; | ||||
| 	|FDAT :	OUTPUT_PIN = 14; | ||||
| 	|FDAT :		OUTPUT_PIN = 14; | ||||
| 	|DENS_X :	OUTPUT_PIN = 96; | ||||
| 	|CMOS_DWR :	OUTPUT_PIN = 100; | ||||
| 	|CMOS_DRD :	OUTPUT_PIN = 99; | ||||
| 	|CMOS_AS :	OUTPUT_PIN = 6; | ||||
| 	|CLK14 :	OUTPUT_PIN = 31; | ||||
| 	|CLK_WG :	OUTPUT_PIN = 13; | ||||
| 	|BEEP :	OUTPUT_PIN = 84; | ||||
| 	|AUD :	OUTPUT_PIN = 35; | ||||
| 	|BEEP :		OUTPUT_PIN = 84; | ||||
| 	|AUD :		OUTPUT_PIN = 35; | ||||
| 	|XHR_RDY :	INPUT_PIN = 88; | ||||
| 	|XA2 :	INPUT_PIN = 23; | ||||
| 	|XA1 :	INPUT_PIN = 21; | ||||
| 	|XA0 :	INPUT_PIN = 17; | ||||
| 	|XACS :	INPUT_PIN = 37; | ||||
| 	|WSTB :	INPUT_PIN = 10; | ||||
| 	|XA2 :		INPUT_PIN = 23; | ||||
| 	|XA1 :		INPUT_PIN = 21; | ||||
| 	|XA0 :		INPUT_PIN = 17; | ||||
| 	|XACS :		INPUT_PIN = 37; | ||||
| 	|WSTB :		INPUT_PIN = 10; | ||||
| 	|WR_CNF :	INPUT_PIN = 57; | ||||
| 	|WD :	INPUT_PIN = 9; | ||||
| 	|WD :		INPUT_PIN = 9; | ||||
| 	|VGA_IN :	INPUT_PIN = 61; | ||||
| 	|TR43 :	INPUT_PIN = 12; | ||||
| 	|TR43 :		INPUT_PIN = 12; | ||||
| 	|TG42_IN :	INPUT_PIN = 87; | ||||
| 	|STE :	INPUT_PIN = 94; | ||||
| 	|SR :	INPUT_PIN = 29; | ||||
| 	|SL :	INPUT_PIN = 30; | ||||
| 	|STE :		INPUT_PIN = 94; | ||||
| 	|SR :		INPUT_PIN = 29; | ||||
| 	|SL :		INPUT_PIN = 30; | ||||
| 	|SINC_IN :	INPUT_PIN = 69; | ||||
| 	|RSTB :	INPUT_PIN = 25; | ||||
| 	|RDAT :	INPUT_PIN = 92; | ||||
| 	|RSTB :		INPUT_PIN = 25; | ||||
| 	|RDAT :		INPUT_PIN = 92; | ||||
| 	|PW_GOOD :	INPUT_PIN = 90; | ||||
| 	|HDD_C3 :	INPUT_PIN = 40; | ||||
| 	|HDD_C2 :	INPUT_PIN = 41; | ||||
| @ -84,7 +84,7 @@ BEGIN | ||||
| 	|FDD_C1 :	INPUT_PIN = 45; | ||||
| 	|FDD_C0 :	INPUT_PIN = 44; | ||||
| 	|EPM_RES :	INPUT_PIN = 89; | ||||
| 	|D0 :	INPUT_PIN = 60; | ||||
| 	|D0 :		INPUT_PIN = 60; | ||||
| END; | ||||
| 
 | ||||
| DEFAULT_DEVICES | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -85,8 +85,27 @@ SUBDESIGN SP2_MAX | ||||
| 	EPM_RES		: INPUT; | ||||
| 	PW_GOOD		: INPUT; | ||||
| 
 | ||||
| 	GND65		: INPUT; | ||||
| 	GND33		: INPUT; | ||||
| 	UNUSED65	: INPUT; -- was GND65, hack for 3000 family | ||||
| 	UNUSED33	: INPUT; -- was GND33, hack for 3000 family | ||||
| 	UNUSED1		: INPUT; | ||||
| 	UNUSED2		: INPUT; | ||||
| 	UNUSED5		: INPUT; | ||||
| 	UNUSED7		: INPUT; | ||||
| 	UNUSED22	: INPUT; | ||||
| 	UNUSED24	: INPUT; | ||||
| 	UNUSED27	: INPUT; | ||||
| 	UNUSED28	: INPUT; | ||||
| 	UNUSED49	: INPUT; | ||||
| 	UNUSED50	: INPUT; | ||||
| 	UNUSED53	: INPUT; | ||||
| 	UNUSED55	: INPUT; | ||||
| 	UNUSED63	: INPUT; | ||||
| 	UNUSED70	: INPUT; | ||||
| 	UNUSED72	: INPUT; | ||||
| 	UNUSED77	: INPUT; | ||||
| 	UNUSED78	: INPUT; | ||||
| 	 | ||||
| 
 | ||||
| 
 | ||||
| 	) | ||||
| VARIABLE | ||||
| @ -435,13 +454,16 @@ BEGIN | ||||
| 	HD_DIR		= XHD_RD; | ||||
| 
 | ||||
| --	HD_CS		= GND; | ||||
| 	HD_CS		= CTV8M; | ||||
| --	HD_CS		= CTV8M; | ||||
|         HD_CS           = (CTV8M and /RESET); | ||||
| 
 | ||||
| 
 | ||||
| --	HD_CS		= !/RESET; | ||||
| 
 | ||||
| --	XHD_RES		= VCC; | ||||
| 
 | ||||
| 	XHD_RES		= DFF(PW_GOOD,SINC_V,,); | ||||
| --	XHD_RES		= DFF(PW_GOOD,SINC_V,,); | ||||
|         XHD_RES         = DFF(PW_GOOD,SINC_V,EPM_RES,); | ||||
| 
 | ||||
| --	XHD_WR		= DFF((!(HDD_C[] == B"X101") or  FDD_C1),CLK42,,); | ||||
| --	XHD_RD		= DFF((!(HDD_C[] == B"X101") or !FDD_C1),CLK42,,); | ||||
| @ -451,8 +473,10 @@ BEGIN | ||||
| 
 | ||||
| --	XHD_WR		= DFF((!(HDD_C[] == B"X101") or  FDD_C1 or !HDD_CLK),CLK42,,HDD_C0); | ||||
| --	XHD_RD		= DFF((!(HDD_C[] == B"X101") or !FDD_C1 or !HDD_CLK),CLK42,,HDD_C0); | ||||
| 	XHD_WR		= DFF((!(HDD_C[] == B"X101") or  FDD_C1),HDD_CLK,,HDD_C0); | ||||
| 	XHD_RD		= DFF((!(HDD_C[] == B"X101") or !FDD_C1),HDD_CLK,,HDD_C0); | ||||
| --	XHD_WR		= DFF((!(HDD_C[] == B"X101") or  FDD_C1),HDD_CLK,,HDD_C0); | ||||
| --	XHD_RD		= DFF((!(HDD_C[] == B"X101") or !FDD_C1),HDD_CLK,,HDD_C0); | ||||
|         XHD_WR          = DFF((!(HDD_C[] == B"X101") or  FDD_C1),HDD_CLK,,(HDD_C0 and /RESET)); | ||||
|         XHD_RD          = DFF((!(HDD_C[] == B"X101") or !FDD_C1),HDD_CLK,,(HDD_C0 and /RESET)); | ||||
| 
 | ||||
| --	XHD1_CS1 = DFF(!((HDD_C[] == B"010X") & NTHDD),CLK42,,); | ||||
| --	XHD1_CS2 = DFF(!((HDD_C[] == B"110X") & NTHDD),CLK42,,); | ||||
| @ -460,11 +484,16 @@ BEGIN | ||||
| --	XHD2_CS1 = DFF(!((HDD_C[] == B"010X") &  THDD),CLK42,,); | ||||
| --	XHD2_CS2 = DFF(!((HDD_C[] == B"110X") &  THDD),CLK42,,); | ||||
| 
 | ||||
| 	XHD1_CS1 = DFF((!(HDD_C[] == B"010X") or  THDD),CLK42,,); | ||||
| 	XHD1_CS2 = DFF((!(HDD_C[] == B"110X") or  THDD),CLK42,,); | ||||
| --	XHD1_CS1 = DFF((!(HDD_C[] == B"010X") or  THDD),CLK42,,); | ||||
| --	XHD1_CS2 = DFF((!(HDD_C[] == B"110X") or  THDD),CLK42,,); | ||||
|         XHD1_CS1 = DFF((!(HDD_C[] == B"010X") or  THDD),CLK42,,/RESET); | ||||
|         XHD1_CS2 = DFF((!(HDD_C[] == B"110X") or  THDD),CLK42,,/RESET); | ||||
| 
 | ||||
| --	XHD2_CS1 = DFF((!(HDD_C[] == B"010X") or NTHDD),CLK42,,); | ||||
| --	XHD2_CS2 = DFF((!(HDD_C[] == B"110X") or NTHDD),CLK42,,); | ||||
|         XHD2_CS1 = DFF((!(HDD_C[] == B"010X") or NTHDD),CLK42,,/RESET); | ||||
|         XHD2_CS2 = DFF((!(HDD_C[] == B"110X") or NTHDD),CLK42,,/RESET); | ||||
| 
 | ||||
| 	XHD2_CS1 = DFF((!(HDD_C[] == B"010X") or NTHDD),CLK42,,); | ||||
| 	XHD2_CS2 = DFF((!(HDD_C[] == B"110X") or NTHDD),CLK42,,); | ||||
| 
 | ||||
| END; | ||||
| 
 | ||||
| @ -22,69 +22,115 @@ | ||||
| CHIP SP2_MAX | ||||
| BEGIN | ||||
| 	DEVICE = EPM7128STC100-10; | ||||
| 	|GND65 :	INPUT_PIN = 65; | ||||
| 	|GND33 :	INPUT_PIN = 33; | ||||
| 	|/CONF_X :	BIDIR_PIN = 54; | ||||
| 	|10K_D0 :	OUTPUT_PIN = 58; | ||||
| 	|CLKZZ :	BIDIR_PIN = 32; | ||||
| 	|10K_CLK :	OUTPUT_PIN = 56; | ||||
| 	|XHD2_CS2 :	OUTPUT_PIN = 83; | ||||
| 	|XHD2_CS1 :	OUTPUT_PIN = 81; | ||||
| 	|XHD1_CS2 :	OUTPUT_PIN = 80; | ||||
| 	|XHD1_CS1 :	OUTPUT_PIN = 79; | ||||
| 	|XHD_WR :	OUTPUT_PIN = 75; | ||||
| 	|XHD_RES :	OUTPUT_PIN = 71; | ||||
| 	|XHD_RD :	OUTPUT_PIN = 76; | ||||
| 	|WR_PDOS :	OUTPUT_PIN = 8; | ||||
| 	|/WG_WR :	OUTPUT_PIN = 93; | ||||
| 	|/WG_RD :	OUTPUT_PIN = 97; | ||||
| 	|WDAT :	OUTPUT_PIN = 98; | ||||
| 	|TG42_OUT :	OUTPUT_PIN = 85; | ||||
| 	|TG42_BUF :	OUTPUT_PIN = 36; | ||||
| 	|SINC_2 :	OUTPUT_PIN = 19; | ||||
| 	|SINC_1 :	OUTPUT_PIN = 20; | ||||
| 	|SINC_V :	OUTPUT_PIN = 64; | ||||
| 	|SINC_H :	OUTPUT_PIN = 68; | ||||
| 	|SINC :	OUTPUT_PIN = 67; | ||||
| 	|QDAT :	OUTPUT_PIN = 16; | ||||
| 	|HD_DIR :	OUTPUT_PIN = 48; | ||||
| 	|HD_CS :	OUTPUT_PIN = 52; | ||||
| 	|FDAT :	OUTPUT_PIN = 14; | ||||
| 	|DENS_X :	OUTPUT_PIN = 96; | ||||
| 	|CMOS_DWR :	OUTPUT_PIN = 100; | ||||
| 	|CMOS_DRD :	OUTPUT_PIN = 99; | ||||
| 	|UNUSED1:	INPUT_PIN = 1; -- 7064 N.C. | ||||
| 	|UNUSED2:	INPUT_PIN = 2; -- 7064 N.C. | ||||
| --	|VCCIO | ||||
| --	|#TDI | ||||
| 	|UNUSED5:	INPUT_PIN = 5; -- 7064 N.C. | ||||
| 	|CMOS_AS :	OUTPUT_PIN = 6; | ||||
| 	|CLK14 :	OUTPUT_PIN = 31; | ||||
| 	|UNUSED7:	INPUT_PIN = 7; -- 7064 N.C. | ||||
| 	|WR_PDOS :	OUTPUT_PIN = 8; | ||||
| 	|WD :		INPUT_PIN = 9; | ||||
| 
 | ||||
| 	|WSTB :		INPUT_PIN = 10; | ||||
| --	|GND | ||||
| 	|TR43 :		INPUT_PIN = 12; | ||||
| 	|CLK_WG :	OUTPUT_PIN = 13; | ||||
| 	|BEEP :	OUTPUT_PIN = 84; | ||||
| 	|AUD :	OUTPUT_PIN = 35; | ||||
| 	|XHR_RDY :	INPUT_PIN = 88; | ||||
| 	|XA2 :	INPUT_PIN = 23; | ||||
| 	|XA1 :	INPUT_PIN = 21; | ||||
| 	|XA0 :	INPUT_PIN = 17; | ||||
| 	|XACS :	INPUT_PIN = 37; | ||||
| 	|WSTB :	INPUT_PIN = 10; | ||||
| 	|WR_CNF :	INPUT_PIN = 57; | ||||
| 	|WD :	INPUT_PIN = 9; | ||||
| 	|VGA_IN :	INPUT_PIN = 61; | ||||
| 	|TR43 :	INPUT_PIN = 12; | ||||
| 	|TG42_IN :	INPUT_PIN = 87; | ||||
| 	|STE :	INPUT_PIN = 94; | ||||
| 	|SR :	INPUT_PIN = 29; | ||||
| 	|SL :	INPUT_PIN = 30; | ||||
| 	|SINC_IN :	INPUT_PIN = 69; | ||||
| 	|RSTB :	INPUT_PIN = 25; | ||||
| 	|RDAT :	INPUT_PIN = 92; | ||||
| 	|PW_GOOD :	INPUT_PIN = 90; | ||||
| 	|FDAT :		OUTPUT_PIN = 14; | ||||
| --	|#TMS | ||||
| 	|QDAT :		OUTPUT_PIN = 16; | ||||
| 	|XA0 :		INPUT_PIN = 17; | ||||
| --	|VCCIO | ||||
| 	|SINC_2 :	OUTPUT_PIN = 19; | ||||
| 
 | ||||
| 	|SINC_1 :	OUTPUT_PIN = 20; | ||||
| 	|XA1 :		INPUT_PIN = 21; | ||||
| 	|UNUSED22:	INPUT_PIN = 22; -- 7064 N.C. | ||||
| 	|XA2 :		INPUT_PIN = 23; | ||||
| 	|UNUSED24:	INPUT_PIN = 24; -- 7064 N.C. | ||||
| 	|RSTB :		INPUT_PIN = 25; | ||||
| --	|GND | ||||
| 	|UNUSED27:	INPUT_PIN = 27; -- 7064 N.C. | ||||
| 	|UNUSED28:	INPUT_PIN = 28; -- 7064 N.C. | ||||
| 	|SR :		INPUT_PIN = 29; | ||||
| 
 | ||||
| 	|SL :		INPUT_PIN = 30; | ||||
| 	|CLK14 :	OUTPUT_PIN = 31; | ||||
| 	|CLKZZ :	BIDIR_PIN = 32; | ||||
| 	|UNUSED33 :	INPUT_PIN = 33; -- be careful! at 3000 family the pin 33 is GND | ||||
| --	|VCCIO | ||||
| 	|AUD :		OUTPUT_PIN = 35; | ||||
| 	|TG42_BUF :	OUTPUT_PIN = 36; | ||||
| 	|XACS :		INPUT_PIN = 37; | ||||
| --	|GND | ||||
| --	|VCCINT | ||||
| 
 | ||||
| 	|HDD_C3 :	INPUT_PIN = 40; | ||||
| 	|HDD_C2 :	INPUT_PIN = 41; | ||||
| 	|HDD_C1 :	INPUT_PIN = 42; | ||||
| 	|HDD_C0 :	INPUT_PIN = 47; | ||||
| 	|FDD_C2 :	INPUT_PIN = 46; | ||||
| 	|FDD_C1 :	INPUT_PIN = 45; | ||||
| --	|GND | ||||
| 	|FDD_C0 :	INPUT_PIN = 44; | ||||
| 	|FDD_C1 :	INPUT_PIN = 45; | ||||
| 	|FDD_C2 :	INPUT_PIN = 46; | ||||
| 	|HDD_C0 :	INPUT_PIN = 47; | ||||
| 	|HD_DIR :	OUTPUT_PIN = 48; | ||||
| 	|UNUSED49:	INPUT_PIN = 49; -- 7064 N.C. | ||||
| 
 | ||||
| 	|UNUSED50:	INPUT_PIN = 50; -- 7064 N.C. | ||||
| --	|VCCIO | ||||
| 	|HD_CS :	OUTPUT_PIN = 52; | ||||
| 	|UNUSED53 :	INPUT_PIN = 53; -- 7064 N.C. | ||||
| 	|/CONF_X :	BIDIR_PIN = 54; | ||||
| 	|UNUSED55:	INPUT_PIN = 55; -- 7064 N.C. | ||||
| 	|10K_CLK :	OUTPUT_PIN = 56; | ||||
| 	|WR_CNF :	INPUT_PIN = 57; | ||||
| 	|10K_D0 :	OUTPUT_PIN = 58; | ||||
| --	|GND | ||||
| 
 | ||||
| 	|D0 :		INPUT_PIN = 60; | ||||
| 	|VGA_IN :	INPUT_PIN = 61; | ||||
| --	|#TCK | ||||
| 	|UNUSED63:	INPUT_PIN = 63; | ||||
| 	|SINC_V :	OUTPUT_PIN = 64; | ||||
| 	|UNUSED65 :	INPUT_PIN = 65; -- be careful! at 3000 family the pin 33 is GND | ||||
| --	|VCCIO | ||||
| 	|SINC :		OUTPUT_PIN = 67; | ||||
| 	|SINC_H :	OUTPUT_PIN = 68; | ||||
| 	|SINC_IN :	INPUT_PIN = 69; | ||||
| 
 | ||||
| 	|UNUSED70:	INPUT_PIN = 70; -- 7064 N.C. | ||||
| 	|XHD_RES :	OUTPUT_PIN = 71; | ||||
| 	|UNUSED72:	INPUT_PIN = 72; -- 7064 N.C. | ||||
| --	|#TDO  | ||||
| --	|GND | ||||
| 	|XHD_WR :	OUTPUT_PIN = 75; | ||||
| 	|XHD_RD :	OUTPUT_PIN = 76; | ||||
| 	|UNUSED77:	INPUT_PIN = 77; -- 7064 N.C. | ||||
| 	|UNUSED78 :	INPUT_PIN = 78; -- 7064 N.C. | ||||
| 	|XHD1_CS1 :	OUTPUT_PIN = 79; | ||||
| 
 | ||||
| 	|XHD1_CS2 :	OUTPUT_PIN = 80; | ||||
| 	|XHD2_CS1 :	OUTPUT_PIN = 81; | ||||
| --	|VCCIO | ||||
| 	|XHD2_CS2 :	OUTPUT_PIN = 83; | ||||
| 	|BEEP :		OUTPUT_PIN = 84; | ||||
| 	|TG42_OUT :	OUTPUT_PIN = 85; | ||||
| --	|GND | ||||
| 	|TG42_IN :	INPUT_PIN = 87; | ||||
| 	|XHR_RDY :	INPUT_PIN = 88; | ||||
| 	|EPM_RES :	INPUT_PIN = 89; | ||||
| 	|D0 :	INPUT_PIN = 60; | ||||
| 
 | ||||
| 	|PW_GOOD :	INPUT_PIN = 90; | ||||
| --	|VCCINT | ||||
| 	|RDAT :		INPUT_PIN = 92; | ||||
| 	|/WG_WR :	OUTPUT_PIN = 93; | ||||
| 	|STE :		INPUT_PIN = 94; | ||||
| --	|GND | ||||
| 	|DENS_X :	OUTPUT_PIN = 96; | ||||
| 	|/WG_RD :	OUTPUT_PIN = 97; | ||||
| 	|WDAT :		OUTPUT_PIN = 98; | ||||
| 	|CMOS_DRD :	OUTPUT_PIN = 99; | ||||
| 	|CMOS_DWR :	OUTPUT_PIN = 100; | ||||
| END; | ||||
| 
 | ||||
| DEFAULT_DEVICES | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										499
									
								
								src/altera/max/7128/sp2_max.tdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										499
									
								
								src/altera/max/7128/sp2_max.tdf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,499 @@ | ||||
| 
 | ||||
| TITLE "SINC_controller"; | ||||
| 
 | ||||
| PARAMETERS | ||||
| 	( | ||||
| 	G_MODE	= 1,	-- 1 on LCELL, 0 - on EXP | ||||
| 
 | ||||
| 	NUM		= "NO", | ||||
| 	NUMBER1 = B"00100000X",	-- 0 - sinc | ||||
| 	NUMBER2 = B"00110111X",	-- 7 | ||||
| 	NUMBER3 = B"01001101X",	-- D | ||||
| 	NUMBER4 = B"01010010X",	-- 2 | ||||
| 	NUMBER5 = B"00100000X",	-- | ||||
| 	NUMBER6 = B"00100000X",	-- | ||||
| 	NUMBER7 = B"00100000X" 	-- | ||||
| 	); | ||||
| 
 | ||||
| SUBDESIGN SP2_MAX | ||||
| 	( | ||||
| 
 | ||||
| 	TG42_IN		: INPUT; | ||||
| 	TG42_OUT	: OUTPUT; | ||||
| 	TG42_BUF	: OUTPUT; | ||||
| 	CLKZZ		: BIDIR; | ||||
| 	CLK14		: OUTPUT; | ||||
| 
 | ||||
| 	AUD			: OUTPUT;	-- clk for timers | ||||
| 	BEEP		: OUTPUT; | ||||
| 
 | ||||
| 	CMOS_DRD	: OUTPUT; | ||||
| 	CMOS_AS		: OUTPUT; | ||||
| 	CMOS_DWR	: OUTPUT; | ||||
| 
 | ||||
| 	WR_PDOS		: OUTPUT; | ||||
| 	WD			: INPUT; | ||||
| 	WSTB		: INPUT; | ||||
| 	SR,SL		: INPUT; | ||||
| 	RSTB		: INPUT; | ||||
| 	TR43		: INPUT; | ||||
| 	CLK_WG		: OUTPUT; | ||||
| 	FDAT		: OUTPUT; | ||||
| 	QDAT		: OUTPUT; | ||||
| 	RDAT		: INPUT; | ||||
| 	/WG_WR		: OUTPUT; | ||||
| 	/WG_RD		: OUTPUT; | ||||
| 	STE			: INPUT; | ||||
| 	DENS_X		: OUTPUT; | ||||
| 	WDAT		: OUTPUT; | ||||
| 
 | ||||
| 
 | ||||
| --	XA[2..0]	: BIDIR; | ||||
| 	XA[2..0]	: INPUT; | ||||
| 	XACS		: INPUT; | ||||
| --	SINC_1		: OUTPUT; | ||||
| 	SINC_1		: BIDIR; | ||||
| 	SINC_2		: BIDIR; | ||||
| 
 | ||||
| 	HDD_C[3..0]	: INPUT; | ||||
| 	FDD_C[2..0]	: INPUT; | ||||
| 
 | ||||
| 	HD_DIR		: OUTPUT; | ||||
| 	HD_CS		: OUTPUT; | ||||
| 
 | ||||
| 	/CONF_X		: BIDIR; | ||||
| 	10K_CLK		: OUTPUT; | ||||
| 	WR_CNF		: INPUT; | ||||
| 	10K_D0		: OUTPUT; | ||||
| 	D0			: INPUT; | ||||
| 
 | ||||
| 	VGA_IN		: INPUT; | ||||
| --	WR_COL		: INPUT; | ||||
| 	SINC_V		: OUTPUT; | ||||
| 	SINC_H		: OUTPUT; | ||||
| 	SINC		: OUTPUT; | ||||
| 	SINC_IN		: INPUT; | ||||
| 
 | ||||
| 	XHD_RES		: OUTPUT; | ||||
| 	XHD_WR		: OUTPUT; | ||||
| 	XHD_RD		: OUTPUT; | ||||
| 
 | ||||
| 	XHD1_CS[2..1]	: OUTPUT; | ||||
| 	XHD2_CS[2..1]	: OUTPUT; | ||||
| 	XHR_RDY		: INPUT; | ||||
| 
 | ||||
| 	EPM_RES		: INPUT; | ||||
| 	PW_GOOD		: INPUT; | ||||
| 
 | ||||
| 	UNUSED65	: INPUT; -- was GND65, hack for 3000 family | ||||
| 	UNUSED33	: INPUT; -- was GND33, hack for 3000 family | ||||
| 	UNUSED1		: INPUT; | ||||
| 	UNUSED2		: INPUT; | ||||
| 	UNUSED5		: INPUT; | ||||
| 	UNUSED7		: INPUT; | ||||
| 	UNUSED22	: INPUT; | ||||
| 	UNUSED24	: INPUT; | ||||
| 	UNUSED27	: INPUT; | ||||
| 	UNUSED28	: INPUT; | ||||
| 	UNUSED49	: INPUT; | ||||
| 	UNUSED50	: INPUT; | ||||
| 	UNUSED53	: INPUT; | ||||
| 	UNUSED55	: INPUT; | ||||
| 	UNUSED63	: INPUT; | ||||
| 	UNUSED70	: INPUT; | ||||
| 	UNUSED72	: INPUT; | ||||
| 	UNUSED77	: INPUT; | ||||
| 	UNUSED78	: INPUT; | ||||
| 	 | ||||
| 
 | ||||
| 
 | ||||
| 	) | ||||
| VARIABLE | ||||
| 
 | ||||
| 	XCT[2..0]	: DFF; | ||||
| 	CNF_ON		: NODE; | ||||
| 	CNF_OFF		: NODE; | ||||
| 
 | ||||
| 	CLK42		: NODE; | ||||
| 
 | ||||
| 	CT[3..0]	: DFF; | ||||
| 	CTH[5..0]	: DFF; | ||||
| 	CTV[8..0]	: DFFE; | ||||
| 
 | ||||
| 	SINC_HT		: DFF; | ||||
| 	SINC_VT		: DFFE; | ||||
| 
 | ||||
| 	TURBING		: NODE; | ||||
| 	FDD_1440	: NODE; | ||||
| 	NFDD_1440	: NODE; | ||||
| 
 | ||||
| 	CT_WG		: NODE; | ||||
| 	CT_WG1		: NODE; | ||||
| 
 | ||||
| 	STWG[2..0]	: DFF; | ||||
| 	CLK_PRC		: NODE; | ||||
| 	WGR[4..0]	: DFF; | ||||
| 	RDAT_X		: NODE; | ||||
| 
 | ||||
| 	REG_P[2..0]	: DFF; | ||||
| 
 | ||||
| 	/RESET		: NODE; | ||||
| 
 | ||||
| 
 | ||||
| 	S144,S720	: NODE; | ||||
| 
 | ||||
| 	SHDD1,SHDD2	: NODE; | ||||
| 	THDD		: NODE; | ||||
| 	NTHDD		: NODE; | ||||
| 
 | ||||
| 	NO_HDD		: NODE; | ||||
| 
 | ||||
| 	S320,S312	: NODE; | ||||
| 	T320		: NODE; | ||||
| 	NT320		: NODE; | ||||
| 
 | ||||
| 	SOFT_RESET	: NODE; | ||||
| 	SOFT_RESET2	: NODE; | ||||
| 
 | ||||
| 	HDD_CLK		: NODE; | ||||
| 
 | ||||
| 	LR_T[1..0]	: DFF; | ||||
| 
 | ||||
| 	EXP_X		: NODE; | ||||
| 	EXP_Y       : NODE; | ||||
| 
 | ||||
| 	CTV8M		: DFF; | ||||
| 
 | ||||
| 	CTV8C		: NODE; | ||||
| 
 | ||||
| 	FN_NUM		: NODE; | ||||
| 
 | ||||
| BEGIN | ||||
| 
 | ||||
| 	/RESET		= DFF((EPM_RES & XHD_RES),!CT3,SOFT_RESET,); | ||||
| 
 | ||||
| --	/RESET		= (EXP(!EPM_RES & EXP(EXP(EXP(EPM_RES)))) & SOFT_RESET); | ||||
| 
 | ||||
| 	EXP_X		= EXP(TG42_IN); | ||||
| 	EXP_Y       = EXP(TG42_IN); | ||||
| 
 | ||||
| 	IF (G_MODE == 0) GENERATE | ||||
| 		TG42_OUT	= LCELL(EXP_X); | ||||
| 	ELSE GENERATE | ||||
| 		TG42_OUT	= LCELL(TG42_BUF); | ||||
| 	END GENERATE; | ||||
| 
 | ||||
| 	TG42_BUF	= LCELL(!TG42_IN); | ||||
| 
 | ||||
| 	CLK42		= TG42_IN; | ||||
| 
 | ||||
| --	CT[].clk	= CLK14; | ||||
| 	CT[].clk	= XCT1; | ||||
| 	CT[] = CT[] + 1; | ||||
| 
 | ||||
| --	=== horizontal sinc ===== | ||||
| 
 | ||||
| 	CTH[].clk	= !CT3; | ||||
| 	SINC_HT.clk = !CT3; | ||||
| 
 | ||||
| 	IF !((CTH[] == B"XXXX11") & SINC_HT) THEN | ||||
| 		CTH[]	= CTH[] + 1; | ||||
| 	ELSE | ||||
| 		CTH[]	= GND; | ||||
| 	END IF; | ||||
| 
 | ||||
| --	SINC_1		= CTH5; | ||||
| 	SINC_1		= TRI(CTH5,VCC); | ||||
| 	SINC_2		= TRI(CTV8,VCC); | ||||
| 
 | ||||
| 	SINC_HT.d	= (CTH[] == B"1101XX"); | ||||
| 
 | ||||
| 	SINC_H		= SINC_HT; | ||||
| 
 | ||||
| --  === vertical sinc ======= | ||||
| 
 | ||||
| --	CTV[].clk	= !CT3; | ||||
| --	SINC_VT.clk	= !CT3; | ||||
| 
 | ||||
| 	CTV[].clk	= SINC_HT; | ||||
| 	SINC_VT.clk	= SINC_HT; | ||||
| 
 | ||||
| 	CTV8M.clk	= SINC_HT; | ||||
| 
 | ||||
| --	CTV[].ena	= (CTH[] == B"110111"); | ||||
| --	SINC_VT.ena	= (CTH[] == B"110111"); | ||||
| 	CTV[].ena	= VCC; | ||||
| 	SINC_VT.ena	= VCC; | ||||
| 
 | ||||
| --	IF (CTV[] == B"100111111") THEN | ||||
| 
 | ||||
| 	IF (NUM == "YES") GENERATE | ||||
| 
 | ||||
| 		FN_NUM =( | ||||
| 				(CTV[8..0] == NUMBER1) or | ||||
| 				(CTV[8..0] == NUMBER2) or | ||||
| 				(CTV[8..0] == NUMBER3) or | ||||
| 				(CTV[8..0] == NUMBER4) or | ||||
| 				(CTV[8..0] == NUMBER5) or | ||||
| 				(CTV[8..0] == NUMBER6) or | ||||
| 				(CTV[8..0] == NUMBER7) | ||||
| 				) & !NO_HDD; | ||||
| 
 | ||||
| 	ELSE GENERATE | ||||
| 
 | ||||
| 		FN_NUM = GND; | ||||
| 
 | ||||
| 	END GENERATE; | ||||
| 
 | ||||
| 
 | ||||
| 	IF EXP((CTV[] == B"XXXXXXX11") & SINC_VT) THEN | ||||
| 
 | ||||
| 		(CTV[8..0]) = ((CTV[8..0]) + 1) xor (CTV8M,B"00000000"); | ||||
| 		CTV8M = FN_NUM; | ||||
| 
 | ||||
| 	ELSE | ||||
| 		CTV[7..0] = GND; | ||||
| 		CTV8M = GND; | ||||
| 		CTV8 = GND; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	SINC_VT.d	= ((CTV[8..0] == B"1001111XX") or ((CTV[8..0] == B"1001101XX")) & NT320); | ||||
| 
 | ||||
| 	SINC_V		= SINC_VT; | ||||
| 
 | ||||
| 	SINC		= SINC_V xor SINC_H; | ||||
| 
 | ||||
| --  ============================= | ||||
| 
 | ||||
| --  ========================================= | ||||
| --	divide by 6 | ||||
| 
 | ||||
| 	XCT[].clk	= (TG42_IN xor !XCT1); | ||||
| 	XCT[].d		= XCT[] + 1; | ||||
| 
 | ||||
| --	CLKZZ = 14 MHz | ||||
| 
 | ||||
| 	CLKZZ		= TRI(XCT1,CNF_OFF); | ||||
| 	CLK14		= DFF(!CLK14,XCT0,,); | ||||
| 
 | ||||
| --	test exists | ||||
| 
 | ||||
| --	CNF_OFF = EXP(CNF_ON & /RESET); | ||||
| --	CNF_ON	= EXP(CNF_OFF & XACS); | ||||
| 
 | ||||
| 	CNF_OFF = DFF(GND,GND,XACS,/RESET); | ||||
| 	CNF_ON	= !CNF_OFF; | ||||
| 
 | ||||
| --	========================================= | ||||
| 
 | ||||
| --	========	FDD controller	================== | ||||
| 
 | ||||
| 	TURBING		= EXP(EXP(TURBING & !WSTB & !RSTB) & !STE & NFDD_1440); | ||||
| --	TURBING		= GND; | ||||
| 
 | ||||
| 	CT_WG		= TFF(VCC,(XCT1 xor (CT_WG & TURBING)),,); | ||||
| 
 | ||||
| 	STWG[].clk	= (CT_WG xor STWG2); | ||||
| 	STWG[].d	= STWG[] + 1; | ||||
| 
 | ||||
| 	CLK_WG		= STWG2; | ||||
| 
 | ||||
| --	CLK_PRC		= STWG0; | ||||
| 	CLK_PRC		= CT_WG; | ||||
| 
 | ||||
| 	CT_WG1		= EXP(EXP(XCT1 & FDD_1440) & EXP(CT0 & NFDD_1440)); | ||||
| 
 | ||||
| 	WGR[].clk	= CT_WG1; | ||||
| 
 | ||||
| 	IF !FDAT THEN | ||||
| 		TABLE WGR[3..0] => WGR[3..0].d; | ||||
| 			0 => 4; 1 => 5; 2 => 4; 3 => 5; | ||||
| 			4 => 6; 5 => 7; 6 => 8; 7 => 8; | ||||
| 			8 => 9; 9 => 9; 10 => 10; 11 => 11; | ||||
| 		   12 => 12; 13 => 13; 14 => 14; 15 => 15; | ||||
| 		END TABLE; | ||||
| 		WGR4.d	= WGR4; | ||||
| 	ELSE | ||||
| 		IF WGR[3..0] == 0 THEN | ||||
| 			WGR[3..0].d		= 3; | ||||
| 			WGR4.d			= WGR4; | ||||
| 		ELSE | ||||
| 			WGR[].d			= WGR[] + 1; | ||||
| 		END IF; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	QDAT	= WGR4; | ||||
| 	RDAT_X	= EXP(EXP(RDAT_X & EXP(!RDAT & !CT_WG1)) & EXP(RDAT & !CT_WG1)); | ||||
| --	FDAT	= DFF((RDAT_X or !DFF(RDAT_X,CT_WG1,,)),CT_WG1,,); | ||||
| 	FDAT	= DFF((RDAT_X or EXP(DFF(RDAT_X,CT_WG1,,))),CT_WG1,,); | ||||
| --	========================================================== | ||||
| --	now not complete! | ||||
| 
 | ||||
| 	AUD		= CT3; | ||||
| 	BEEP	= GND; | ||||
| 
 | ||||
| --	/CONF_X	= TRI(GND,!/RESET); | ||||
| 
 | ||||
| 	/CONF_X	= OPNDRN(/RESET); | ||||
| 
 | ||||
| --	10K_CLK		= WR_CNF;	-- now not protect! | ||||
| 
 | ||||
| 	10K_CLK		= DFF((WR_CNF & CNF_OFF) or ((HDD_C0 or FDD_C2) & CNF_ON),CLK42,,); | ||||
| 
 | ||||
| 	10K_D0		= DFFE(D0,10K_CLK,S720,(S144 & /RESET),CNF_OFF); | ||||
| 
 | ||||
| 	DENS_X		= VCC; | ||||
| 
 | ||||
| --	=== now NOT PRECOMP! ===== | ||||
| 
 | ||||
| --	WDAT		= WD; | ||||
| 
 | ||||
| 	WDAT = REG_P2; | ||||
| 
 | ||||
| 	REG_P[].clk	= !CLK_PRC; | ||||
| 
 | ||||
| --	CASE WD IS | ||||
| --		WHEN 1 => REG_P[].d	= (GND,SL,!(SL or SR),SR); | ||||
| --		WHEN 0 => REG_P[].d = (EXP(EXP(REG_P2)),REG_P[1..0],GND); | ||||
| --	END CASE; | ||||
| 
 | ||||
| --	CASE (DFF(WD,CLK_WG,,),DFF((SL & TR43),CLK_WG,,),DFF((SR & TR43),CLK_WG,,)) IS | ||||
| 
 | ||||
| 	LR_T[].clk	= STWG2; | ||||
| --	LR_T[].clk	= CLK_WG; | ||||
| 
 | ||||
| 	LR_T[].d	= ((WD & !(SL & TR43)),(WD & !(SR & TR43))); | ||||
| 
 | ||||
| 	CASE LR_T[] IS | ||||
| 		WHEN 0 => REG_P[1..0] = (REG_P[1..0] - 1) & EXP(REG_P[1..0] == 0); | ||||
| 						REG_P[2] = EXP(EXP(REG_P[1..0] == 1)); | ||||
| --						REG_P[2] = (REG_P[1..0] == 1); | ||||
| 		WHEN 1 => REG_P[1..0] = 1; REG_P[2] = GND; | ||||
| 		WHEN 2 => REG_P[1..0] = 3; REG_P[2] = GND; | ||||
| 		WHEN 3 => REG_P[1..0] = 2; REG_P[2] = GND; | ||||
| 	END CASE; | ||||
| % | ||||
| 	CASE (WD,DFF((SL & TR43),CLK_WG,,),DFF((SR & TR43),CLK_WG,,)) IS | ||||
| 		WHEN B"0XX" => REG_P[1..0] = (REG_P[1..0] - 1) & EXP(REG_P[1..0] == 0); | ||||
| 		WHEN B"100" => REG_P[1..0] = 2; | ||||
| 		WHEN B"110" => REG_P[1..0] = 1; | ||||
| 		WHEN B"101" => REG_P[1..0] = 3; | ||||
| 		WHEN B"111" => REG_P[1..0] = 2; | ||||
| 	END CASE; | ||||
| % | ||||
| 
 | ||||
| % | ||||
| 	CASE WD IS | ||||
| 		WHEN 0 => REG_P[3] = EXP(EXP(REG_P[1..0] == 1)); | ||||
| 		WHEN 1 => REG_P[3] = GND; | ||||
| 	END CASE; | ||||
| % | ||||
| 
 | ||||
| --	=== Port Controls ==================================== | ||||
| % | ||||
| 	FDD_C0	- 0 - WG93	/ 1 - kmps/ p_dos | ||||
| 	FDD_C1	- 0 - write / 1 - read | ||||
| 	FDD_C2	- 0 - no	/ 1 - CS_WG/ strobe | ||||
| 
 | ||||
| 	HDD_C0	- strobe | ||||
| 	HDD_C[2..1] = 00 - SYS_FN, 01 - SYS_FN, 10 - HDD1/2, 11 - CMOS | ||||
| 	HDD_C3	- 0 - HD_CS1,  1 HD_CS3 / 0 CMOS_DAT,  1 - CMOS_ADR | ||||
| 
 | ||||
| 	HDD_C[3..0] = 0001, FDD_C[2..1] = 00; -> FDD_C0 = 1/0 -> set 1.44/720 | ||||
| 	HDD_C[3..0] = 1001, FDD_C[2..1] = 00; -> FDD_C0 = 1/0 -> set 320/312 lines | ||||
| 	HDD_C[3..0] = 0011, FDD_C[2..1] = 00; -> FDD_C0 = 1/0 -> set HDD1/HDD2 | ||||
| 	HDD_C[3..0] = 1011, FDD_C[2..1] = 00; -> FDD_C0 = 0 -> soft_reset! | ||||
| 	HDD_C[3..0] = X101, FDD_C[2..1] = XX; -> HDD1/2 rd/wr | ||||
| 
 | ||||
| % | ||||
| 
 | ||||
| 	SOFT_RESET	= !((HDD_C[] == B"1011") & (FDD_C[] == B"000")); | ||||
| 	SOFT_RESET2	= !((HDD_C[] == B"1011") & (FDD_C[] == B"001")); | ||||
| 
 | ||||
| --	FDD switch | ||||
| 
 | ||||
| --	NFDD_1440	= EXP(FDD_1440 & S720 & /RESET); | ||||
| --	FDD_1440	= EXP(NFDD_1440 & S144); | ||||
| 	FDD_1440	= 10K_D0; | ||||
| 	NFDD_1440	= !10K_D0; | ||||
| 
 | ||||
| 	S144		= EXP((HDD_C[] == B"0001") & (FDD_C[] == B"001")); | ||||
| 	S720		= EXP((HDD_C[] == B"0001") & (FDD_C[] == B"000")); | ||||
| 
 | ||||
| --	Screen Switch | ||||
| 
 | ||||
| 	T320		= EXP(NT320 & S320 & /RESET); | ||||
| 	NT320		= EXP(T320 & S312); | ||||
| 
 | ||||
| 	S312		= EXP((HDD_C[] == B"1001") & (FDD_C[] == B"001")); | ||||
| 	S320		= EXP((HDD_C[] == B"1001") & (FDD_C[] == B"000")); | ||||
| 
 | ||||
| --	HDD Switch | ||||
| 
 | ||||
| --	THDD		= EXP(NTHDD & SHDD2 & /RESET); | ||||
| --	NTHDD		= EXP(THDD & SHDD1); | ||||
| 
 | ||||
| 	THDD		= EXP(NTHDD & NO_HDD & SHDD2 & /RESET & SOFT_RESET2); | ||||
| 	NTHDD		= EXP(THDD  & NO_HDD & SHDD1 & /RESET & SOFT_RESET2); | ||||
| 	NO_HDD		= EXP(NTHDD & THDD   & SHDD1 & SHDD2); | ||||
| 
 | ||||
| 	SHDD2		= EXP((HDD_C[] == B"0011") & (FDD_C[] == B"001")); | ||||
| 	SHDD1		= EXP((HDD_C[] == B"0011") & (FDD_C[] == B"000")); | ||||
| 
 | ||||
| --	Control signals | ||||
| 
 | ||||
| 	WR_PDOS		= DFF(!((HDD_C[] == 0) & (FDD_C[] == B"X01")),HDD_CLK,,FDD_C2); | ||||
| 	/WG_WR		= DFF(!((HDD_C[] == 0) & (FDD_C[] == B"X00")),HDD_CLK,,FDD_C2); | ||||
| 	/WG_RD		= DFF(!((HDD_C[] == 0) & (FDD_C[] == B"X10")),HDD_CLK,,FDD_C2); | ||||
| 
 | ||||
| 	CMOS_DWR	= DFF(!((HDD_C[] == B"1110") & (FDD_C[] == B"X01")),HDD_CLK,,FDD_C2); | ||||
| 	CMOS_AS		=!DFF(!((HDD_C[] == B"0110") & (FDD_C[] == B"X01")),HDD_CLK,,FDD_C2); | ||||
| 	CMOS_DRD	= DFF(!((HDD_C[] == B"1110") & (FDD_C[] == B"X10")),HDD_CLK,,FDD_C2); | ||||
| 
 | ||||
| --	HD_DIR		= !HDD_C1; -- ???????????? | ||||
| 	HD_DIR		= XHD_RD; | ||||
| 
 | ||||
| --	HD_CS		= GND; | ||||
| --	HD_CS		= CTV8M; | ||||
|         HD_CS           = (CTV8M and /RESET); | ||||
| 
 | ||||
| 
 | ||||
| --	HD_CS		= !/RESET; | ||||
| 
 | ||||
| --	XHD_RES		= VCC; | ||||
| 
 | ||||
| --	XHD_RES		= DFF(PW_GOOD,SINC_V,,); | ||||
|         XHD_RES         = DFF(PW_GOOD,SINC_V,EPM_RES,); | ||||
| 
 | ||||
| --	XHD_WR		= DFF((!(HDD_C[] == B"X101") or  FDD_C1),CLK42,,); | ||||
| --	XHD_RD		= DFF((!(HDD_C[] == B"X101") or !FDD_C1),CLK42,,); | ||||
| 
 | ||||
| --	HDD_CLK		= EXP(EXP(HDD_C0)); | ||||
| 	HDD_CLK		= 10K_CLK; | ||||
| 
 | ||||
| --	XHD_WR		= DFF((!(HDD_C[] == B"X101") or  FDD_C1 or !HDD_CLK),CLK42,,HDD_C0); | ||||
| --	XHD_RD		= DFF((!(HDD_C[] == B"X101") or !FDD_C1 or !HDD_CLK),CLK42,,HDD_C0); | ||||
| --	XHD_WR		= DFF((!(HDD_C[] == B"X101") or  FDD_C1),HDD_CLK,,HDD_C0); | ||||
| --	XHD_RD		= DFF((!(HDD_C[] == B"X101") or !FDD_C1),HDD_CLK,,HDD_C0); | ||||
|         XHD_WR          = DFF((!(HDD_C[] == B"X101") or  FDD_C1),HDD_CLK,,(HDD_C0 and /RESET)); | ||||
|         XHD_RD          = DFF((!(HDD_C[] == B"X101") or !FDD_C1),HDD_CLK,,(HDD_C0 and /RESET)); | ||||
| 
 | ||||
| --	XHD1_CS1 = DFF(!((HDD_C[] == B"010X") & NTHDD),CLK42,,); | ||||
| --	XHD1_CS2 = DFF(!((HDD_C[] == B"110X") & NTHDD),CLK42,,); | ||||
| 
 | ||||
| --	XHD2_CS1 = DFF(!((HDD_C[] == B"010X") &  THDD),CLK42,,); | ||||
| --	XHD2_CS2 = DFF(!((HDD_C[] == B"110X") &  THDD),CLK42,,); | ||||
| 
 | ||||
| --	XHD1_CS1 = DFF((!(HDD_C[] == B"010X") or  THDD),CLK42,,); | ||||
| --	XHD1_CS2 = DFF((!(HDD_C[] == B"110X") or  THDD),CLK42,,); | ||||
|         XHD1_CS1 = DFF((!(HDD_C[] == B"010X") or  THDD),CLK42,,/RESET); | ||||
|         XHD1_CS2 = DFF((!(HDD_C[] == B"110X") or  THDD),CLK42,,/RESET); | ||||
| 
 | ||||
| --	XHD2_CS1 = DFF((!(HDD_C[] == B"010X") or NTHDD),CLK42,,); | ||||
| --	XHD2_CS2 = DFF((!(HDD_C[] == B"110X") or NTHDD),CLK42,,); | ||||
|         XHD2_CS1 = DFF((!(HDD_C[] == B"010X") or NTHDD),CLK42,,/RESET); | ||||
|         XHD2_CS2 = DFF((!(HDD_C[] == B"110X") or NTHDD),CLK42,,/RESET); | ||||
| 
 | ||||
| 
 | ||||
| END; | ||||
| 
 | ||||
							
								
								
									
										4
									
								
								src/altera/max/7128_make.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/altera/max/7128_make.bat
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| C: | ||||
| cd "C:\users\tolik\Documents\SP_Projects\ASM\GIT\SP_Core\Build\MAX\tmp\" | ||||
| "C:\Program Files (x86)\MAXPLUS2\MAXPLUS2.EXE" -compile SP2_MAX >> compile.log | ||||
| exit | ||||
| @ -85,8 +85,27 @@ SUBDESIGN SP2_MAX | ||||
| 	EPM_RES		: INPUT; | ||||
| 	PW_GOOD		: INPUT; | ||||
| 
 | ||||
| 	GND65		: INPUT; | ||||
| 	GND33		: INPUT; | ||||
| 	UNUSED65	: INPUT; -- was GND65, hack for 3000 family | ||||
| 	UNUSED33	: INPUT; -- was GND33, hack for 3000 family | ||||
| 	UNUSED1		: INPUT; | ||||
| 	UNUSED2		: INPUT; | ||||
| 	UNUSED5		: INPUT; | ||||
| 	UNUSED7		: INPUT; | ||||
| 	UNUSED22	: INPUT; | ||||
| 	UNUSED24	: INPUT; | ||||
| 	UNUSED27	: INPUT; | ||||
| 	UNUSED28	: INPUT; | ||||
| 	UNUSED49	: INPUT; | ||||
| 	UNUSED50	: INPUT; | ||||
| 	UNUSED53	: INPUT; | ||||
| 	UNUSED55	: INPUT; | ||||
| 	UNUSED63	: INPUT; | ||||
| 	UNUSED70	: INPUT; | ||||
| 	UNUSED72	: INPUT; | ||||
| 	UNUSED77	: INPUT; | ||||
| 	UNUSED78	: INPUT; | ||||
| 	 | ||||
| 
 | ||||
| 
 | ||||
| 	) | ||||
| VARIABLE | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -12,7 +12,7 @@ del *.mtb | ||||
| del *.hex | ||||
| del *.ndb | ||||
| del *.pin | ||||
| rem del *.pof | ||||
| del *.pof | ||||
| del *.snf | ||||
| del *.fit | ||||
| del *.jam | ||||
|  | ||||
| @ -1 +1,214 @@ | ||||
| 06.07.2022 05:20: [2/2] ALTERA MAX-7128 STREAM  | ||||
| 07.09.2022 00:27: [2/2] ALTERA MAX-7128 STREAM  | ||||
| 7128\SP2_MAX.ACF | ||||
| ‘ª®¯¨à®¢ ® ä ©«®¢:         1. | ||||
| 
 | ||||
| ********************************************************************** | ||||
| MAX+plus II | ||||
| Version 10.0 9/14/2000 | ||||
| Copyright (c) 1988-2000 Altera Corporation. All rights reserved. | ||||
|  | ||||
| This material is made available for use under a license from Altera | ||||
| and its use is subject to all conditions and restrictions provided | ||||
| by the license agreement.  U.S. and foreign patents apply to the | ||||
| software program and the semiconductor components which are programmed | ||||
| using the software program. | ||||
|  | ||||
| This program, these components, and the system comprising both | ||||
| are covered by one or more of the following U.S. patents: | ||||
|  | ||||
| 6,097,211; 6,094,064; 6,091,258; 6,091,102; 6,085,317; 6,084,427; | ||||
| 6,081,449; 6,080,204; 6,078,521; 6,076,179; 6,075,380; 6,072,358; | ||||
| 6,072,332; 6,069,487; 6,066,960; 6,064,599; 6,060,903; 6,058,452; | ||||
| 6,057,707; 6,052,755; 6,052,309; 6,052,327; 6,049,223; 6,049,225; | ||||
| 6,045,252;  6,043,676; 6,040,712; 6,038,171; 6,037,829; 6,034,857; | ||||
| 6,034,540; 6,034,536; 6,032,159; 6,031,763; 6,031,391; 6,029,236; | ||||
| 6,028,809; 6,028,808; 6,028,787; 6,026,226; 6,025,737; 6,023,439; | ||||
| 6,020,760; 6,020,759; 6,020,758; 6,018,490; 6,018,476; 6,014,334; | ||||
| 6,011,744; 6,011,730; 6,011,406; 6,005,379; 5,999,016; 5,999,015; | ||||
| 5,998,295; 5,996,039; 5,986,470; 5,986,465; 5,983,277; 5,982,195; | ||||
| 5,978,476; 5,977,793; 5,977,791; 5,968,161; 5,970,255; 5,966,597; | ||||
| 5,963,565; 5,969,051; 5,963,069; 5,963,049; 5,959,891; 5,953;537; | ||||
| 5,949,991; 5,949,710; 5,949,250; 5,949,239; 5,954,751; 5,943,267; | ||||
| 5,942,914; 5,940,852; 5,939,790; 5,936,425; 5,926,036; 5,925,904; | ||||
| 5,923,567; 5,915,756; 5,915,017; 5,909,450; 5,909,375; 5,909,126; | ||||
| 5,905,675; 5,904,524; 5,900,743; 5,898,628; 5,898,318; 5,894,228; | ||||
| 5,893,088; 5,892,683; 5,883,526; 5,880,725; 5,880,597; 5,880,596; | ||||
| 5,878,250; 5,875,112; 5,873,113; 5,872,529; 5,872,463; 5,870,410; | ||||
| 5,869,980; 5,869,979; 5,861,760; 5,859,544; 5,859,542; 5,850,365; | ||||
| 5,850,152; 5,850,151; 5,848,005; 5,847,617; 5,845,385; 5,844,854; | ||||
| RE35,977; 5,838,628; 5,838,584; 5,835,998; 5,834,849; 5,828,229; | ||||
| 5,825,197; 5,821,787: 5,821,773; 5,821,771; 5,815,726; 5,815,024; | ||||
| 5,815,003; 5,812,479; 5,812,450; 5,809,281; 5,809,034; 5,805,516; | ||||
| 5,802,540; 5,801,541; 5,796,267; 5,793,246; 5,790,469; 5,787,009; | ||||
| 5,771,264; 5,768,562; 5,768,372; 5,767,734; 5,764,583; 5,764,569; | ||||
| 5,764,080; 5,764,079; 5,761,099; 5,760,624; 5,757,207; 5,757,070; | ||||
| 5,744,991; 5,744,383; 5,740,110; 5,732,020; 5,729,495; 5,717,901; | ||||
| 5,705,939; 5,699,020; 5,699,312; 5,696,455; 5,693,540; 5,694,058; | ||||
| 5,691,653; 5,689,195; 5,668,771; 5,680,061; 5,672,985; 5,670,895; | ||||
| 5,659,717; 5,650,734; 5,649,163; 5,642,262; 5,642,082; 5,633,830; | ||||
| 5,631,576; 5,621,312; 5,614,840; 5,612,642; 5,608,337; 5,606,276; | ||||
| 5,606,266; 5,604,453; 5,598,109; 5,598,108; 5,592,106; 5,592,102; | ||||
| 5,590,305; 5,583,749; 5,581,501; 5,574,893; 5,572,717; 5,572,148; | ||||
| 5,572,067; 5,570,040; 5,567,177; 5,565,793; 5,563,592; 5,561,757; | ||||
| 5,557,217; 5,555,214; 5,550,842; 5,550,782; 5,548,552; 5,548,228; | ||||
| 5,543,732; 5,543,730; 5,541,530; 5,537,295; 5,537,057; 5,525,917; | ||||
| 5,525,827; 5,523,706; 5,523,247; 5,517,186; 5,498,975; 5,495,182; | ||||
| 5,493,526; 5,493,519; 5,490,266; 5,488,586; 5,487,143; 5,486,775; | ||||
| 5,485,103; 5,485,102; 5,483,178; 5,477,474; 5,473,266; 5,463,328, | ||||
| 5,444,394; 5,438,295; 5,436,575; 5,436,574; 5,434,514; 5,432,467; | ||||
| 5,414,312; 5,399,922; 5,384,499; 5,376,844; 5,371,422; 5,369,314; | ||||
| 5,359,243; 5,359,242; 5,353,248; 5,352,940; 5,309,046; 5,350,954; | ||||
| 5,349,255; 5,341,308; 5,341,048; 5,341,044; 5,329,487; 5,317,210; | ||||
| 5,315,172; 5,301,416; 5,294,975; 5,285,153; 5,280,203; 5,274,581; | ||||
| 5,272,368; 5,268,598; 5,266,037; 5,260,611; 5,260,610; 5,258,668; | ||||
| 5,247,478; 5,247,477; 5,243,233; 5,241,224; 5,237,219; 5,220,533; | ||||
| 5,220,214; 5,200,920; 5,187,392; 5,166,604; 5,162,680; 5,144,167; | ||||
| 5,138,576; 5,128,565; 5,121,006; 5,111,423; 5,097,208; 5,091,661; | ||||
| 5,066,873; 5,045,772; 4,969,121; 4,930,107; 4,930,098; 4,930,097; | ||||
| 4,912,342; 4,903,223; 4,899,070; 4,899,067; 4,871,930; 4,864,161; | ||||
| 4,831,573; 4,785,423; 4,774,421; 4,713,792; 4,677,318; 4,617,479; | ||||
| 4,609,986; 4,020,469; Additional patents are pending. | ||||
|  | ||||
| Altera Corporation acknowledges the trademarks of other organizations | ||||
| for their respective products or services mentioned in this software. | ||||
|  | ||||
| ********************************************************************** | ||||
| Compiling project f:\sprinter\src\altera\max\sp2_max .... | ||||
| 
 | ||||
| **** Compiler Netlist Extractor  **** | ||||
| 
 | ||||
| Processing .                                        --   0% done | ||||
| Warning: Line 106, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED78" was declared but never used | ||||
| Warning: Line 52, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "XA2" was declared but never used | ||||
| Warning: Line 167, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "CTV8C" was declared but never used | ||||
| Warning: Line 89, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED33" was declared but never used | ||||
| Warning: Line 52, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "XA1" was declared but never used | ||||
| Warning: Line 93, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED7" was declared but never used | ||||
| Warning: Line 83, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "XHR_RDY" was declared but never used | ||||
| Warning: Line 52, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "XA0" was declared but never used | ||||
| Warning: Line 103, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED70" was declared but never used | ||||
| Warning: Line 101, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED55" was declared but never used | ||||
| Warning: Line 92, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED5" was declared but never used | ||||
| Warning: Line 162, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "EXP_X" was declared but never used | ||||
| Warning: Line 94, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED22" was declared but never used | ||||
| Warning: Line 91, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED2" was declared but never used | ||||
| Warning: Line 98, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED49" was declared but never used | ||||
| Warning: Line 104, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED72" was declared but never used | ||||
| Warning: Line 163, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "EXP_Y" was declared but never used | ||||
| Warning: Line 100, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED53" was declared but never used | ||||
| Warning: Line 70, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "VGA_IN" was declared but never used | ||||
| Warning: Line 95, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED24" was declared but never used | ||||
| Warning: Line 99, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED50" was declared but never used | ||||
| Warning: Line 88, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED65" was declared but never used | ||||
| Warning: Line 90, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED1" was declared but never used | ||||
| Warning: Line 105, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED77" was declared but never used | ||||
| Warning: Line 75, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "SINC_IN" was declared but never used | ||||
| Warning: Line 102, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED63" was declared but never used | ||||
| Warning: Line 96, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED27" was declared but never used | ||||
| Warning: Line 97, File f:\sprinter\src\altera\max\sp2_max.tdf: | ||||
| Symbolic name "UNUSED28" was declared but never used | ||||
| Processing ..                                       -- 100% done | ||||
| Warning: Timing requirement assignments influence compilation only for FLEX 6000, FLEX 8000, and FLEX 10K devices. However, the Compiler will check whether it can meet your timing requirements. | ||||
| 
 | ||||
| **** Database Builder  **** | ||||
| 
 | ||||
| Processing .                                        --   0% done | ||||
| Processing ..                                       -- 100% done | ||||
| 
 | ||||
| **** Logic Synthesizer  **** | ||||
| 
 | ||||
| Processing .                                        --   0% done | ||||
| Warning: Flipflop 'CTV8M' stuck at GND | ||||
| Warning: No Clock transition on flipflop 'CNF_OFF' | ||||
| Warning: Primitive 'BEEP' is stuck at GND | ||||
| Warning: Primitive 'DENS_X' is stuck at VCC | ||||
| Warning: Primitive 'HD_CS' is stuck at GND | ||||
| Info: NOT Gate Push-Back has occurred on some registers -- if the power-up condition is crucial to the operation of the circuit, use the asynchronous Clear/Preset on the register to ensure proper operation | ||||
| Processing ..                                       -- 100% done | ||||
| 
 | ||||
| **** Partitioner  **** | ||||
| 
 | ||||
| Processing .                                        --   0% done | ||||
| Warning: Project has user pin or logic cell assignments, but has never been compiled before. For best fitting results, let the Compiler choose the first set of assignments instead. | ||||
| Info: Reserved unused input pin 'XA2' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'XA1' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'XA0' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'VGA_IN' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'SINC_IN' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'XHR_RDY' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED65' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED33' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED1' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED2' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED5' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED7' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED22' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED24' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED27' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED28' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED49' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED50' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED53' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED55' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED63' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED70' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED72' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED77' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Info: Reserved unused input pin 'UNUSED78' for future use because it has a pin assignment -- pin is tri-stated and must be connected to your board | ||||
| Processing ..                                       -- 100% done | ||||
| 
 | ||||
| **** Fitter  **** | ||||
| 
 | ||||
| Processing .                                        --   0% done | ||||
| Info: Chip 'SP2_MAX' in device 'EPM7128STC100-10' has less than 20% of pins available for future logic changes -- if your project is likely to change, Altera recommends using a larger device | ||||
| Processing ..                                       -- 100% done | ||||
| 
 | ||||
| **** Timing SNF Extractor  **** | ||||
| 
 | ||||
| Processing .                                        --   0% done | ||||
| Processing ..                                       -- 100% done | ||||
| Warning: Found ripple clock -- warning messages and Report File information on tco, tsu, and fmax may be inaccurate | ||||
| Info: One or more paths have been found between registers controlled by different clocks -- can't calculate fmax for those paths | ||||
| Warning: Can't provide fmax of 100.00 MHz on Clock pin "RSTB". Current fmax is 43.47 MHz. | ||||
| Warning: Can't provide fmax of 100.00 MHz on Clock pin "STE". Current fmax is 43.47 MHz. | ||||
| Warning: Can't provide fmax of 100.00 MHz on Clock pin "TG42_IN". Current fmax is 27.02 MHz. | ||||
| Warning: Can't provide fmax of 100.00 MHz on Clock pin "WSTB". Current fmax is 43.47 MHz. | ||||
| Info: Found a total of 4 timing assignments that were not implemented | ||||
| Project compilation was successful | ||||
|       0 errors | ||||
|      39 warnings | ||||
| <EFBFBD>¥ 㤠¥âáï  ©â¨ F:\Sprinter\src\altera\max\*.txt | ||||
| <EFBFBD>¥ 㤠¥âáï  ©â¨ F:\Sprinter\src\altera\max\*.bak | ||||
| <EFBFBD>¥ 㤠¥âáï  ©â¨ F:\Sprinter\src\altera\max\*.db? | ||||
| <EFBFBD>¥ 㤠¥âáï  ©â¨ F:\Sprinter\src\altera\max\*.mtb | ||||
| <EFBFBD>¥ 㤠¥âáï  ©â¨ F:\Sprinter\src\altera\max\*.hex | ||||
| <EFBFBD>¥ 㤠¥âáï  ©â¨ F:\Sprinter\src\altera\max\*.SCF | ||||
| <EFBFBD>¥ 㤠¥âáï  ©â¨ F:\Sprinter\src\altera\max\*.INC | ||||
| <EFBFBD>¥ 㤠¥âáï  ©â¨ F:\Sprinter\src\altera\max\*.MIF | ||||
|  | ||||
| @ -1,49 +1,46 @@ | ||||
| @set BIN=..\..\bin\ | ||||
| @set CHIP=7128 | ||||
| @echo off | ||||
| @echo off | ||||
| set BIN=..\..\bin\ | ||||
| set LOG=compile.log | ||||
| for /F %%i in ('date /t') do set mydate=%%i | ||||
| for /F %%i in ('time /t') do set mytime=%%i | ||||
| set mydt=%mydate% %mytime% | ||||
| 
 | ||||
| @echo STEP 0, Task [2/2] ALTERA MAX-%CHIP% STREAM | ||||
| set CHIP=7128 | ||||
| 
 | ||||
| @if exist SP2_MAX_%CHIP%.pof goto quit | ||||
| echo 0. [2/2] ALTERA MAX-%CHIP% STREAM | ||||
| echo %mydt%: [2/2] ALTERA MAX-%CHIP% STREAM > %LOG% | ||||
| 
 | ||||
| @copy %CHIP%\*.ACF .\*.* | ||||
| if exist SP2_MAX_%CHIP%.pof goto quit | ||||
| 
 | ||||
| @C:\MAXPLUS2\MAXPLUS2.EXE -compile SP2_MAX | ||||
| copy %CHIP%\*.ACF .\*.* >> %LOG% 2>&1 | ||||
| 
 | ||||
| @del *.txt | ||||
| @del *.bak | ||||
| @del *.cnf | ||||
| @del *.db? | ||||
| C:\MAXPLUS2\MAXPLUS2.EXE -compile SP2_MAX >> %LOG% | ||||
| 
 | ||||
| @del *.hif | ||||
| @del *.mmf | ||||
| @del *.mtf | ||||
| @del *.mtb | ||||
| @del *.hex | ||||
| @del *.ndb | ||||
| @del *.pin | ||||
| @rem del *.pof | ||||
| @del *.snf | ||||
| @del *.fit | ||||
| @del *.jam | ||||
| @del *.jbc | ||||
| del *.txt >> %LOG% 2>&1 | ||||
| del *.bak >> %LOG% 2>&1 | ||||
| del *.cnf >> %LOG% 2>&1 | ||||
| del *.db? >> %LOG% 2>&1 | ||||
| 
 | ||||
| @del *.SCF | ||||
| @del *.ACF | ||||
| @rem del *.TDF | ||||
| @del *.INC | ||||
| @del *.MIF | ||||
| del *.hif >> %LOG% 2>&1 | ||||
| del *.mmf >> %LOG% 2>&1 | ||||
| del *.mtf >> %LOG% 2>&1 | ||||
| del *.mtb >> %LOG% 2>&1 | ||||
| del *.hex >> %LOG% 2>&1 | ||||
| del *.ndb >> %LOG% 2>&1 | ||||
| del *.pin >> %LOG% 2>&1 | ||||
| rem del *.pof >> %LOG% 2>&1 | ||||
| del *.snf >> %LOG% 2>&1 | ||||
| del *.fit >> %LOG% 2>&1 | ||||
| del *.jam >> %LOG% 2>&1 | ||||
| del *.jbc >> %LOG% 2>&1 | ||||
| 
 | ||||
| @ren SP2_MAX.pof SP2_MAX_%CHIP%.pof | ||||
| @if errorlevel 1 goto error | ||||
| del *.SCF >> %LOG% 2>&1 | ||||
| del *.ACF >> %LOG% 2>&1 | ||||
| rem del *.TDF >> %LOG% 2>&1 | ||||
| del *.INC >> %LOG% 2>&1 | ||||
| del *.MIF >> %LOG% 2>&1 | ||||
| 
 | ||||
| ren SP2_MAX.pof SP2_MAX_%CHIP%.pof >> %LOG% 2>&1 | ||||
| 
 | ||||
| :quit | ||||
| @echo             [OK ] | ||||
| @echo --------------------------------------------------------------------------[Compiling bitstreams DONE] | ||||
| @goto :eof | ||||
| 
 | ||||
| :error | ||||
| @color 04 | ||||
| @echo ---------------------------------------------------------------------[Compiling bitstream ERROR!!!] | ||||
| @echo. | ||||
| @pause 0 | ||||
| @exit 3 | ||||
|  | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										568
									
								
								src/altera/quartus/acex/ACCELER.ACF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										568
									
								
								src/altera/quartus/acex/ACCELER.ACF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,568 @@ | ||||
| -- | ||||
| --  Copyright (C) 1988-2000 Altera Corporation | ||||
| --  Any megafunction design, and related net list (encrypted or decrypted), | ||||
| --  support information, device programming or simulation file, and any other | ||||
| --  associated documentation or information provided by Altera or a partner | ||||
| --  under Altera's Megafunction Partnership Program may be used only to | ||||
| --  program PLD devices (but not masked PLD devices) from Altera.  Any other | ||||
| --  use of such megafunction design, net list, support information, device | ||||
| --  programming or simulation file, or any other related documentation or | ||||
| --  information is prohibited for any other purpose, including, but not | ||||
| --  limited to modification, reverse engineering, de-compiling, or use with | ||||
| --  any other silicon devices, unless such use is explicitly licensed under | ||||
| --  a separate agreement with Altera or a megafunction partner.  Title to | ||||
| --  the intellectual property, including patents, copyrights, trademarks, | ||||
| --  trade secrets, or maskworks, embodied in any such megafunction design, | ||||
| --  net list, support information, device programming or simulation file, or | ||||
| --  any other related documentation or information provided by Altera or a | ||||
| --  megafunction partner, remains with Altera, the megafunction partner, or | ||||
| --  their respective licensors.  No other licenses, including any licenses | ||||
| --  needed under any third party's intellectual property, are provided herein. | ||||
| -- | ||||
| CHIP acceler | ||||
| BEGIN | ||||
| 	DEVICE = EP1K30QC208-3; | ||||
| END; | ||||
| 
 | ||||
| DEFAULT_DEVICES | ||||
| BEGIN | ||||
| 	AUTO_DEVICE = EP1K100FC484-1; | ||||
| 	AUTO_DEVICE = EP1K100FC256-1; | ||||
| 	AUTO_DEVICE = EP1K100QC208-1; | ||||
| 	AUTO_DEVICE = EP1K50FC484-1; | ||||
| 	AUTO_DEVICE = EP1K50FC256-1; | ||||
| 	AUTO_DEVICE = EP1K50QC208-1; | ||||
| 	AUTO_DEVICE = EP1K50TC144-1; | ||||
| 	AUTO_DEVICE = EP1K30FC256-1; | ||||
| 	AUTO_DEVICE = EP1K30QC208-1; | ||||
| 	AUTO_DEVICE = EP1K30TC144-1; | ||||
| 	ASK_BEFORE_ADDING_EXTRA_DEVICES = ON; | ||||
| END; | ||||
| 
 | ||||
| TIMING_POINT | ||||
| BEGIN | ||||
| 	DEVICE_FOR_TIMING_SYNTHESIS = EP1K30QC208-3; | ||||
| 	FREQUENCY = 200MHz; | ||||
| 	MAINTAIN_STABLE_SYNTHESIS = OFF; | ||||
| 	CUT_ALL_CLEAR_PRESET = ON; | ||||
| 	CUT_ALL_BIDIR = ON; | ||||
| END; | ||||
| 
 | ||||
| IGNORED_ASSIGNMENTS | ||||
| BEGIN | ||||
| 	FIT_IGNORE_TIMING = OFF; | ||||
| 	DEMOTE_SPECIFIC_LCELL_ASSIGNMENTS_TO_LAB_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LOCAL_ROUTING_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_DEVICE_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LC_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_PIN_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_CHIP_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_TIMING_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LOGIC_OPTION_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_CLIQUE_ASSIGNMENTS = OFF; | ||||
| END; | ||||
| 
 | ||||
| GLOBAL_PROJECT_DEVICE_OPTIONS | ||||
| BEGIN | ||||
| 	MAX7000B_ENABLE_VREFB = OFF; | ||||
| 	MAX7000B_ENABLE_VREFA = OFF; | ||||
| 	MAX7000B_VCCIO_IOBANK2 = 3.3V; | ||||
| 	MAX7000B_VCCIO_IOBANK1 = 3.3V; | ||||
| 	CONFIG_EPROM_PULLUP_RESISTOR = ON; | ||||
| 	CONFIG_EPROM_USER_CODE = FFFFFFFF; | ||||
| 	FLEX_CONFIGURATION_EPROM = AUTO; | ||||
| 	MAX7000AE_ENABLE_JTAG = ON; | ||||
| 	MAX7000AE_USER_CODE = FFFFFFFF; | ||||
| 	FLEX6000_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = OFF; | ||||
| 	FLEX10KA_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = ON; | ||||
| 	FLEX10K_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = OFF; | ||||
| 	FLEX6000_ENABLE_JTAG = OFF; | ||||
| 	CONFIG_SCHEME_FLEX_6000 = PASSIVE_SERIAL; | ||||
| 	MULTIVOLT_IO = OFF; | ||||
| 	MAX7000S_ENABLE_JTAG = ON; | ||||
| 	FLEX10K_ENABLE_LOCK_OUTPUT = OFF; | ||||
| 	MAX7000S_USER_CODE = FFFF; | ||||
| 	CONFIG_SCHEME_10K = PASSIVE_SERIAL; | ||||
| 	FLEX10K_JTAG_USER_CODE = 7F; | ||||
| 	ENABLE_INIT_DONE_OUTPUT = OFF; | ||||
| 	ENABLE_CHIP_WIDE_OE = OFF; | ||||
| 	ENABLE_CHIP_WIDE_RESET = OFF; | ||||
| 	nCEO = UNRESERVED; | ||||
| 	CLKUSR = UNRESERVED; | ||||
| 	ADD17 = UNRESERVED; | ||||
| 	ADD16 = UNRESERVED; | ||||
| 	ADD15 = UNRESERVED; | ||||
| 	ADD14 = UNRESERVED; | ||||
| 	ADD13 = UNRESERVED; | ||||
| 	ADD0_TO_ADD12 = UNRESERVED; | ||||
| 	SDOUT = RESERVED_DRIVES_OUT; | ||||
| 	RDCLK = UNRESERVED; | ||||
| 	RDYnBUSY = UNRESERVED; | ||||
| 	nWS_nRS_nCS_CS = UNRESERVED; | ||||
| 	DATA1_TO_DATA7 = UNRESERVED; | ||||
| 	DATA0 = RESERVED_TRI_STATED; | ||||
| 	FLEX8000_ENABLE_JTAG = OFF; | ||||
| 	CONFIG_SCHEME = ACTIVE_SERIAL; | ||||
| 	DISABLE_TIME_OUT = OFF; | ||||
| 	ENABLE_DCLK_OUTPUT = OFF; | ||||
| 	RELEASE_CLEARS = OFF; | ||||
| 	AUTO_RESTART = OFF; | ||||
| 	USER_CLOCK = OFF; | ||||
| 	SECURITY_BIT = OFF; | ||||
| 	RESERVED_PINS_PERCENT = 0; | ||||
| 	RESERVED_LCELLS_PERCENT = 0; | ||||
| END; | ||||
| 
 | ||||
| GLOBAL_PROJECT_SYNTHESIS_ASSIGNMENT_OPTIONS | ||||
| BEGIN | ||||
| 	STYLE = FAST; | ||||
| 	DEVICE_FAMILY = ACEX1K; | ||||
| 	MULTI_LEVEL_SYNTHESIS_MAX9000 = ON; | ||||
| 	AUTO_IMPLEMENT_IN_EAB = OFF; | ||||
| 	AUTO_OPEN_DRAIN_PINS = ON; | ||||
| 	ONE_HOT_STATE_MACHINE_ENCODING = OFF; | ||||
| 	AUTO_REGISTER_PACKING = OFF; | ||||
| 	AUTO_FAST_IO = OFF; | ||||
| 	AUTO_GLOBAL_OE = ON; | ||||
| 	AUTO_GLOBAL_PRESET = ON; | ||||
| 	AUTO_GLOBAL_CLEAR = ON; | ||||
| 	AUTO_GLOBAL_CLOCK = ON; | ||||
| 	MULTI_LEVEL_SYNTHESIS_MAX5000_7000 = OFF; | ||||
| 	OPTIMIZE_FOR_SPEED = 5; | ||||
| END; | ||||
| 
 | ||||
| COMPILER_PROCESSING_CONFIGURATION | ||||
| BEGIN | ||||
| 	USE_QUARTUS_FITTER = ON; | ||||
| 	PRESERVE_ALL_NODE_NAME_SYNONYMS = OFF; | ||||
| 	FITTER_SETTINGS = NORMAL; | ||||
| 	SMART_RECOMPILE = OFF; | ||||
| 	GENERATE_AHDL_TDO_FILE = OFF; | ||||
| 	RPT_FILE_USER_ASSIGNMENTS = ON; | ||||
| 	RPT_FILE_LCELL_INTERCONNECT = ON; | ||||
| 	RPT_FILE_HIERARCHY = ON; | ||||
| 	RPT_FILE_EQUATIONS = ON; | ||||
| 	LINKED_SNF_EXTRACTOR = OFF; | ||||
| 	OPTIMIZE_TIMING_SNF = OFF; | ||||
| 	TIMING_SNF_EXTRACTOR = ON; | ||||
| 	FUNCTIONAL_SNF_EXTRACTOR = OFF; | ||||
| 	DESIGN_DOCTOR_RULES = EPLD; | ||||
| 	DESIGN_DOCTOR = OFF; | ||||
| END; | ||||
| 
 | ||||
| COMPILER_INTERFACES_CONFIGURATION | ||||
| BEGIN | ||||
| 	NETLIST_OUTPUT_TIME_SCALE = 0.1ns; | ||||
| 	EDIF_INPUT_SHOW_LMF_MAPPING_MESSAGES = OFF; | ||||
| 	EDIF_BUS_DELIMITERS = []; | ||||
| 	EDIF_FLATTEN_BUS = OFF; | ||||
| 	EDIF_OUTPUT_FORCE_0NS_DELAYS = OFF; | ||||
| 	EDIF_OUTPUT_INCLUDE_SPECIAL_PRIM = OFF; | ||||
| 	EDIF_OUTPUT_MAP_ILLEGAL_CHAR = OFF; | ||||
| 	EDIF_OUTPUT_DELAY_CONSTRUCTS = EDO_FILE; | ||||
| 	EDIF_OUTPUT_USE_EDC = OFF; | ||||
| 	EDIF_INPUT_USE_LMF2 = OFF; | ||||
| 	EDIF_INPUT_USE_LMF1 = OFF; | ||||
| 	EDIF_OUTPUT_GND = GND; | ||||
| 	EDIF_OUTPUT_VCC = VCC; | ||||
| 	EDIF_INPUT_GND = GND; | ||||
| 	EDIF_INPUT_VCC = VCC; | ||||
| 	EDIF_OUTPUT_EDC_FILE = *.edc; | ||||
| 	EDIF_INPUT_LMF2 = *.lmf; | ||||
| 	EDIF_INPUT_LMF1 = *.lmf; | ||||
| 	VHDL_GENERATE_CONFIGURATION_DECLARATION = OFF; | ||||
| 	VHDL_OUTPUT_DELAY_CONSTRUCTS = VHO_FILE; | ||||
| 	VERILOG_OUTPUT_DELAY_CONSTRUCTS = VO_FILE; | ||||
| 	VHDL_FLATTEN_BUS = OFF; | ||||
| 	VERILOG_FLATTEN_BUS = OFF; | ||||
| 	EDIF_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VHDL_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VERILOG_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VERILOG_OUTPUT_MAP_ILLEGAL_CHAR = OFF; | ||||
| 	VHDL_WRITER_VERSION = VHDL87; | ||||
| 	VHDL_READER_VERSION = VHDL87; | ||||
| 	SYNOPSYS_MAPPING_EFFORT = MEDIUM; | ||||
| 	SYNOPSYS_BOUNDARY_OPTIMIZATION = OFF; | ||||
| 	SYNOPSYS_HIERARCHICAL_COMPILATION = ON; | ||||
| 	SYNOPSYS_DESIGNWARE = OFF; | ||||
| 	SYNOPSYS_COMPILER = DESIGN; | ||||
| 	USE_SYNOPSYS_SYNTHESIS = OFF; | ||||
| 	VHDL_NETLIST_WRITER = OFF; | ||||
| 	VERILOG_NETLIST_WRITER = OFF; | ||||
| 	XNF_GENERATE_AHDL_TDX_FILE = ON; | ||||
| 	XNF_TRANSLATE_INTERNAL_NODE_NAMES = ON; | ||||
| 	XNF_EMULATE_TRI_STATE_BUSES = INTERNAL_LOGIC; | ||||
| 	EDIF_OUTPUT_VERSION = 200; | ||||
| 	EDIF_NETLIST_WRITER = OFF; | ||||
| END; | ||||
| 
 | ||||
| CUSTOM_DESIGN_DOCTOR_RULES | ||||
| BEGIN | ||||
| 	MASTER_RESET = OFF; | ||||
| 	EXPANDER_NETWORKS = ON; | ||||
| 	RACE_CONDITIONS = ON; | ||||
| 	DELAY_CHAINS = ON; | ||||
| 	ASYNCHRONOUS_INPUTS = ON; | ||||
| 	PRESET_CLEAR_NETWORKS = ON; | ||||
| 	STATIC_HAZARDS_AFTER_SYNTHESIS = OFF; | ||||
| 	STATIC_HAZARDS_BEFORE_SYNTHESIS = ON; | ||||
| 	MULTI_CLOCK_NETWORKS = ON; | ||||
| 	MULTI_LEVEL_CLOCKS = ON; | ||||
| 	GATED_CLOCKS = ON; | ||||
| 	RIPPLE_CLOCKS = ON; | ||||
| END; | ||||
| 
 | ||||
| SIMULATOR_CONFIGURATION | ||||
| BEGIN | ||||
| 	END_TIME = 5.0us; | ||||
| 	BIDIR_PIN = STRONG; | ||||
| 	START_TIME = 0.0ns; | ||||
| 	GLITCH_TIME = 0.0ns; | ||||
| 	GLITCH = OFF; | ||||
| 	OSCILLATION_TIME = 0.0ns; | ||||
| 	OSCILLATION = OFF; | ||||
| 	CHECK_OUTPUTS = OFF; | ||||
| 	SETUP_HOLD = OFF; | ||||
| 	USE_DEVICE = OFF; | ||||
| END; | ||||
| 
 | ||||
| TIMING_ANALYZER_CONFIGURATION | ||||
| BEGIN | ||||
| 	ANALYSIS_MODE = REGISTERED_PERFORMANCE; | ||||
| 	CUT_OFF_RAM_REGISTERED_WE_PATHS = OFF; | ||||
| 	LIST_PATH_FREQUENCY = 10MHz; | ||||
| 	LIST_PATH_COUNT = 10; | ||||
| 	REGISTERED_PERFORMANCE_OPTIONS = NUMBER_OF_PATHS; | ||||
| 	INCLUDE_PATHS_LESS_THAN_VALUE = 214.7483647ms; | ||||
| 	INCLUDE_PATHS_LESS_THAN = OFF; | ||||
| 	INCLUDE_PATHS_GREATER_THAN_VALUE = 0.0ns; | ||||
| 	INCLUDE_PATHS_GREATER_THAN = OFF; | ||||
| 	DELAY_MATRIX_OPTIONS = SHOW_ALL_PATHS; | ||||
| 	CELL_WIDTH = 18; | ||||
| 	LIST_ONLY_LONGEST_PATH = ON; | ||||
| 	CUT_OFF_CLEAR_AND_PRESET_PATHS = ON; | ||||
| 	CUT_OFF_IO_PIN_FEEDBACK = ON; | ||||
| 	AUTO_RECALCULATE = OFF; | ||||
| END; | ||||
| 
 | ||||
| OTHER_CONFIGURATION | ||||
| BEGIN | ||||
| 	LAST_MAXPLUS2_VERSION = 10.0; | ||||
| 	ROW_PINS_LCELL_INSERT = ON; | ||||
| 	CARRY_OUT_PINS_LCELL_INSERT = OFF; | ||||
| 	NORMAL_LCELL_INSERT = ON; | ||||
| 	EXPLICIT_FAMILY = 1; | ||||
| 	FLEX_10K_52_COLUMNS = 40; | ||||
| 	DEFAULT_9K_EXP_PER_LCELL = 1/2; | ||||
| 	LOCAL_INTERCONNECT_PER_LAB_PERCENT = 100; | ||||
| 	LCELLS_PER_ROW_PERCENT = 100; | ||||
| 	FAN_IN_PER_LCELL_PERCENT = 100; | ||||
| 	EXP_PER_LCELL_PERCENT = 100; | ||||
| 	ROW_PINS_PERCENT = 50; | ||||
| 	ORIGINAL_MAXPLUS2_VERSION = 9.6; | ||||
| 	COMPILER_DATA = "1,1,0,1,0,0,0,1,1,1,1,0,1,1,1"; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.FLEX8000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	PARALLEL_EXPANDERS = ON; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.FLEX8000 | ||||
| BEGIN | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	CARRY_CHAIN = AUTO; | ||||
| 	CASCADE_CHAIN = AUTO; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.FLEX8000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = MANUAL; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = MANUAL; | ||||
| END; | ||||
| 
 | ||||
							
								
								
									
										26
									
								
								src/altera/quartus/acex/ACCELER.INC
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/altera/quartus/acex/ACCELER.INC
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| -- Copyright (C) 1988-2000 Altera Corporation | ||||
| -- Any megafunction design, and related net list (encrypted or decrypted), | ||||
| -- support information, device programming or simulation file, and any other | ||||
| -- associated documentation or information provided by Altera or a partner | ||||
| -- under Altera's Megafunction Partnership Program may be used only to | ||||
| -- program PLD devices (but not masked PLD devices) from Altera.  Any other | ||||
| -- use of such megafunction design, net list, support information, device | ||||
| -- programming or simulation file, or any other related documentation or | ||||
| -- information is prohibited for any other purpose, including, but not | ||||
| -- limited to modification, reverse engineering, de-compiling, or use with | ||||
| -- any other silicon devices, unless such use is explicitly licensed under | ||||
| -- a separate agreement with Altera or a megafunction partner.  Title to | ||||
| -- the intellectual property, including patents, copyrights, trademarks, | ||||
| -- trade secrets, or maskworks, embodied in any such megafunction design, | ||||
| -- net list, support information, device programming or simulation file, or | ||||
| -- any other related documentation or information provided by Altera or a | ||||
| -- megafunction partner, remains with Altera, the megafunction partner, or | ||||
| -- their respective licensors.  No other licenses, including any licenses | ||||
| -- needed under any third party's intellectual property, are provided herein. | ||||
| 
 | ||||
| -- MAX+plus II Include File | ||||
| -- Version 10.0 9/14/2000 | ||||
| -- Created: Fri Jan 25 12:59:19 2002 | ||||
| 
 | ||||
| FUNCTION acceler (clk42, /reset, ct[2..0], ras, cas, clk_z80, mc_end, mc_begin, mc_type, mc_write, ai[15..0], di[7..0], /io, /rd, /wr, /mr, /rf, /m1, /iom, dcp[7..0], mdi[15..0], acc_ena, hddr[7..0], hdd_flip) | ||||
|     RETURNS (continue, ao[15..0], do[7..0], mdo[15..0], md[7..0], g_line[7..0], glisser, acc_on, double_cas, acc_dir[7..0]); | ||||
							
								
								
									
										374
									
								
								src/altera/quartus/acex/ACCELER.TDF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										374
									
								
								src/altera/quartus/acex/ACCELER.TDF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,374 @@ | ||||
| 
 | ||||
| 	TITLE "ACCELERATOR"; | ||||
| 
 | ||||
| INCLUDE "lpm_ram_dp"; | ||||
| 
 | ||||
| SUBDESIGN acceler | ||||
| 	( | ||||
| 	CLK42		: INPUT; | ||||
| 	/RESET		: INPUT; | ||||
| 	CT[2..0]	: INPUT; | ||||
| 
 | ||||
| 	RAS			: INPUT; | ||||
| 	CAS			: INPUT; | ||||
| 	CLK_Z80		: INPUT; | ||||
| 
 | ||||
| 	CONTINUE	: OUTPUT; | ||||
| 
 | ||||
| 	MC_END		: INPUT; | ||||
| 	MC_BEGIN	: INPUT; | ||||
| 	MC_TYPE		: INPUT; | ||||
| 	MC_WRITE	: INPUT; | ||||
| --	MCA[1..0]	: INPUT; | ||||
| 
 | ||||
| 	AI[15..0]	: INPUT; | ||||
| 	DI[7..0]	: INPUT; | ||||
| 
 | ||||
| 	AO[15..0]	: OUTPUT; | ||||
| 	DO[7..0]	: OUTPUT; | ||||
| 
 | ||||
| 	/IO			: INPUT; | ||||
| 	/RD			: INPUT; | ||||
| 	/WR			: INPUT; | ||||
| 	/MR			: INPUT; | ||||
| 	/RF			: INPUT; | ||||
| 	/M1			: INPUT; | ||||
| 	/IOM		: INPUT; | ||||
| 
 | ||||
| 	DCP[7..0]	: INPUT; | ||||
| 
 | ||||
| 	MDI[15..0]	: INPUT; | ||||
| 	MDO[15..0]	: OUTPUT; | ||||
| 	MD[7..0]	: OUTPUT; | ||||
| 
 | ||||
| 	G_LINE[7..0]: OUTPUT; | ||||
| 
 | ||||
| 	GLISSER		: OUTPUT; | ||||
| 
 | ||||
| 	ACC_ON		: OUTPUT; | ||||
| 
 | ||||
| 	ACC_ENA		: INPUT; | ||||
| 
 | ||||
| 	DOUBLE_CAS	: OUTPUT; | ||||
| 
 | ||||
| 	HDDR[7..0]	: INPUT; | ||||
| 	HDD_FLIP	: INPUT; | ||||
| 
 | ||||
| 	ACC_DIR[7..0]	: OUTPUT; | ||||
| 
 | ||||
| 	) | ||||
| VARIABLE | ||||
| 
 | ||||
| 	RAM			: LPM_RAM_DP WITH (LPM_WIDTH=16,LPM_WIDTHAD=8); | ||||
| 
 | ||||
| 	DO[7..0]	: DFFE; | ||||
| 	MDO[15..0]	: DFFE; | ||||
| 
 | ||||
| 	PRF_CMD		: DFFE; | ||||
| 	ED_CMD		: DFFE; | ||||
| 	CB_CMD		: DFFE; | ||||
| 	ID_CMD		: DFFE; | ||||
| 	IN_OUT_CMD	: DFFE; | ||||
| 
 | ||||
| 	CORRECT_1F	: NODE; | ||||
| 
 | ||||
| 	ACC_BLK		: DFF; | ||||
| 
 | ||||
| 	RETI		: DFFE; | ||||
| 	RETN		: DFFE; | ||||
| 
 | ||||
| 	AA[15..0]	: DFFE; | ||||
| 
 | ||||
| 	RGACC[7..0]	: DFFE; | ||||
| 	AGR[7..0]	: DFFE; | ||||
| 	ACC_CNT[7..0] : DFFE; | ||||
| 
 | ||||
| 	START_ACC	: NODE; | ||||
| 	ACC_END		: DFFE; | ||||
| 	FN_ACC[2..0]: DFFE; | ||||
| 	ACC_MODE[3..0]	: DFFE; | ||||
| 
 | ||||
| 	MD[7..0]	: LCELL; | ||||
| 	XMD[7..0]	: DFF; | ||||
| 	XMDH[7..0]	: DFF; | ||||
| 
 | ||||
| 	ACC_DIR[7..0]	: LCELL; | ||||
| 
 | ||||
| 	/M1M		: NODE; | ||||
| 
 | ||||
| 	ACC_GO		: NODE; | ||||
| 	ACC_GO_1	: NODE; | ||||
| 
 | ||||
| 	RAM_WR		: NODE; | ||||
| 
 | ||||
| 	STATE_EI	: DFFE; | ||||
| 
 | ||||
| --	HDDR[7..0]	: DFFE; | ||||
| 
 | ||||
| 	XAGR[7..0]		: DFFE; | ||||
| 	AAGR[9..0]		: DFFE; | ||||
| 	XCNT[7..0]		: DFFE; | ||||
| 	ALT_ACC			: NODE; | ||||
| 
 | ||||
| 	RAM_ADR[7..0]	: NODE; | ||||
| 	ACC_C		: NODE; | ||||
| 	WR_C7		: NODE; | ||||
| 
 | ||||
| 	XCNT_AGR[15..0]	: NODE; | ||||
| 
 | ||||
| 	MDOX[7..0]	: DFF; | ||||
| 	MDOY[7..0]	: DFF; | ||||
| 
 | ||||
| 	GLISS_R		: DFF; | ||||
| 
 | ||||
| 	ACC_TIME	: NODE; | ||||
| 
 | ||||
| BEGIN | ||||
| 
 | ||||
| 	ACC_ON		= ACC_DIR0; | ||||
| 
 | ||||
| 	/M1M		= DFF(!/M1,CLK_Z80,/RESET,); | ||||
| 
 | ||||
| 	PRF_CMD.clk		= /MR; | ||||
| 	PRF_CMD.ena		= /M1M; | ||||
| 	PRF_CMD.d		= (DI[] == B"11XX1XX1") & | ||||
| 							   ((DI[] == B"XX00X01X") or  -- CB | ||||
| 					  			(DI[] == B"XX01X10X") or  -- DD | ||||
| 					  			(DI[] == B"XX10X10X") or  -- ED | ||||
| 					  			(DI[] == B"XX11X10X"));	  -- FD | ||||
| 
 | ||||
| --	=== interrupt === 0 - disable; 1 - enable | ||||
| 
 | ||||
| 	STATE_EI.clk	= /MR; | ||||
| 	STATE_EI.ena	= /M1M & !PRF_CMD & (DI[] == B"1111X011"); | ||||
| 	STATE_EI.d		= DI3; | ||||
| 
 | ||||
| --	RETI comand | ||||
| 
 | ||||
| 	ED_CMD.clk		= /MR; | ||||
| 	ED_CMD.ena		= /M1M; | ||||
| 	ED_CMD.d		= (DI[] == H"ED"); | ||||
| 
 | ||||
| 	RETI.clk		= /MR; | ||||
| 	RETI.ena		= /M1M; | ||||
| 	RETI.d			= ED_CMD & (DI[] == H"4D"); | ||||
| 
 | ||||
| --	"1" on the RETI triger is the end of interupt sycle. | ||||
| 
 | ||||
| 	RETN.clk		= /MR; | ||||
| 	RETN.ena		= /M1M; | ||||
| 	RETN.d			= ED_CMD & (DI[] == H"45"); | ||||
| 
 | ||||
| --	The end of NMI sycle. | ||||
| 
 | ||||
| 	ACC_BLK.clk		= /M1; | ||||
| 	ACC_BLK.d		= DFF(((/IO & ACC_BLK) or (!ACC_BLK & RETI)),CLK_Z80,,); | ||||
| 	ACC_BLK.prn		= /RESET & ACC_MODE3; | ||||
| 
 | ||||
| 	CB_CMD.clk		= /MR; | ||||
| 	ID_CMD.clk		= /MR; | ||||
| 	CB_CMD.ena		= /M1M; | ||||
| 	ID_CMD.ena		= /M1M; | ||||
| 
 | ||||
| 	CB_CMD.d		= (DI[] == H"CB"); | ||||
| 	ID_CMD.d		= (DI[] == B"11X11101"); | ||||
| 
 | ||||
| 	IN_OUT_CMD.clk	= /MR; | ||||
| 	IN_OUT_CMD.ena	= /M1M; | ||||
| 	IN_OUT_CMD.d	= (DI[] == B"1101X011") & !PRF_CMD;  -- D3/DB | ||||
| 	IN_OUT_CMD.clrn	= /IO; | ||||
| 
 | ||||
| 	CORRECT_1F		= LCELL(IN_OUT_CMD & (DO[] == H"1F") & !/MR & !/RD); | ||||
| 	DO[4..3].clrn	= !CORRECT_1F; | ||||
| 
 | ||||
| 	ACC_GO			= DFFE((CAS or START_ACC),CLK42,,(!/MR & /M1),CT1); | ||||
| 	ACC_GO_1		= DFF(ACC_GO,CLK42,,); | ||||
| 
 | ||||
| --	== accelerator number == | ||||
| 
 | ||||
| 	RGACC[].clk		= /MR; | ||||
| 	RGACC[].ena		= DFF((/M1 & /RF & ACC_DIR3),CLK_Z80,,); | ||||
| 	RGACC[].d 		= DI[]; | ||||
| 
 | ||||
| --  == accelerator grafic line == | ||||
| 
 | ||||
| 	AGR[].clk	= CLK42; | ||||
| 	AGR[].ena	= !DFF((/IOM or /WR or !DFF((DCP[] == B"1100X100"),CLK42,,)),CLK42,,) or | ||||
| 					!(!ACC_DIR4 or ACC_GO or !ACC_GO_1); | ||||
| 
 | ||||
| 	CASE DFF(START_ACC,CLK42,,) IS | ||||
| 		WHEN 0 => AGR[].d = AGR[] + 1; | ||||
| 		WHEN 1 => AGR[].d = DI[]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	AGR[].clrn	= /RESET; | ||||
| 
 | ||||
| 	G_LINE[]	= AGR[]; | ||||
| 
 | ||||
| --  == accelerator counter == | ||||
| 
 | ||||
| 	ACC_C			= (!ACC_GO & DFF(((CT0 & !/RD) or (CT1 & !/WR)),CLK42,,)); | ||||
| 	ACC_CNT[].clk	= CLK42; | ||||
| --	ACC_CNT[].ena	= START_ACC or (ACC_C & ACC_DIR2); | ||||
| 	ACC_CNT[].ena	= LCELL(START_ACC or (ACC_C & ACC_DIR2)); | ||||
| 
 | ||||
| 	CASE DFF(START_ACC,CLK42,,) IS | ||||
| 		WHEN 1 => ACC_CNT[].d = RGACC[]; | ||||
| 		WHEN 0 => ACC_CNT[].d = ACC_CNT[] - 1; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	WR_C7	= DFF((/IOM or DFF(!/IOM,CLK42,,) or /WR or DFF(!(DCP[] == B"1100X111"),CLK42,,)),CLK42,,); | ||||
| 	ALT_ACC	= DFF(VCC,WR_C7,/RESET,); | ||||
| 
 | ||||
| 	(AAGR[].ena,XCNT[].ena,XAGR[].ena)	= LCELL(!WR_C7 or (ACC_DIR1 & ACC_C)); | ||||
| 	(AAGR[].clk,XCNT[].clk,XAGR[].clk)	= CLK42; | ||||
| 
 | ||||
| 	XCNT_AGR[15..0] = (XCNT[],XAGR[]) + (B"000000",AAGR[]); | ||||
| 
 | ||||
| 	CASE !DFF(START_ACC,CLK42,,) IS | ||||
| 		WHEN 1 => AAGR[].d	= AAGR[]; | ||||
| 				  (XCNT[].d,XAGR[].d) = XCNT_AGR[15..0]; | ||||
| 		WHEN 0 => AAGR[].d = (AI9,AI8,DI[]); | ||||
| 				  (XCNT[].d,XAGR[].d) = (B"00",AI[15..10],B"00000000"); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	== accelerator dir == | ||||
| 
 | ||||
| 	START_ACC = LCELL(LCELL(/MR or !/M1 or !/RF or !ACC_BLK) or (!ACC_DIR0 or MC_TYPE)); | ||||
| 
 | ||||
| 	DOUBLE_CAS= LCELL(ACC_DIR6 & !START_ACC); | ||||
| 
 | ||||
| 	ACC_END.clk	= CLK42; | ||||
| 	ACC_END.ena	= !ACC_GO & ACC_GO_1; | ||||
| 	ACC_END.prn	= /M1; | ||||
| 	ACC_END.d	= (ACC_CNT[] == 1) or !ACC_DIR2; | ||||
| 
 | ||||
| 	CONTINUE	= ACC_END; | ||||
| 
 | ||||
| 	CASE ACC_MODE[2..0] IS | ||||
| 		WHEN 0 => ACC_DIR[] = B"00000000"; % LD B,B % | ||||
| 		WHEN 1 => ACC_DIR[] = B"00100101"; % LD C,C % % fill by constant % | ||||
| 		WHEN 2 => ACC_DIR[] = B"00001001"; % LD D,D % % load count accelerator % | ||||
| 		WHEN 3 => ACC_DIR[] = B"00010101"; % LD E,E % % fill by constant VERTICAL % | ||||
| 		WHEN 4 => ACC_DIR[] = B"01000001"; % LD H,H % % duble byte fn % | ||||
| 		WHEN 5 => ACC_DIR[] = B"00100111"; % LD L,L % % copy line % | ||||
| 		WHEN 6 => ACC_DIR[] = B"00000000"; % HALT   % | ||||
| 		WHEN 7 => ACC_DIR[] = B"00010111"; % LD A,A % % copy line VERTICAL % | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	== accelerator mode == | ||||
| 
 | ||||
| 	ACC_MODE[].clk	= /MR; | ||||
| 	ACC_MODE[].ena	= DFF((!/M1 & !PRF_CMD & | ||||
| 								  LCELL((DI[] == B"XXX00X00") or | ||||
| 		  	   				 			(DI[] == B"XXX01X01") or | ||||
| 			   				 			(DI[] == B"XXX10X10") or | ||||
| 			   				 			(DI[] == B"XXX11X11")) & | ||||
| 								  LCELL((DI[] == B"010XX0XX") or | ||||
| 							 			(DI[] == B"011XX1XX"))),CLK_Z80,,); | ||||
| 	ACC_MODE[].d = (VCC,DI[2..0]); | ||||
| 	ACC_MODE[2..0].clrn	= /RESET & ACC_ENA; | ||||
| 	ACC_MODE[3].clrn = /RESET & !DFF(ACC_MODE3,CLK_Z80,,); | ||||
| 
 | ||||
| --  == accelerator datas == | ||||
| 
 | ||||
| 	CASE DFFE(AA0,CLK42,,,(CT2 & CT1)) IS | ||||
| 		WHEN 0 => MD[] = MDI[7..0]; | ||||
| --				  GLISSER = DFF((MDO[7..0] == H"FF"),CLK42,,); | ||||
| 		WHEN 1 => MD[] = MDI[15..8]; | ||||
| --				  GLISSER = DFF((MDO[15..8] == H"FF"),CLK42,,); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	GLISS_R.clk	= CLK42; | ||||
| 	CASE ACC_DIR1 IS | ||||
| 		WHEN 0 => GLISS_R = LCELL(DI[] == H"FF"); | ||||
| 		WHEN 1 => GLISS_R = LCELL(RAM.q[7..4] == H"F") & LCELL(RAM.q[3..0] == H"F"); | ||||
| 	END CASE; | ||||
| 	GLISSER	= GLISS_R; | ||||
| 
 | ||||
| --	MDO[].clk	= !CLK42; | ||||
| 	MDO[].clk	= CLK42; | ||||
| 
 | ||||
| 	MDO[].ena	= CAS; | ||||
| 
 | ||||
| 	MDOX[].clk	= CLK42; | ||||
| 	MDOY[].clk	= CLK42; | ||||
| 
 | ||||
| 	CASE LCELL(MC_END & HDD_FLIP) IS | ||||
| 		WHEN 0 => MDOX[7..0] = DI[]; | ||||
| 		WHEN 1 => MDOX[7..0] = HDDR[]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE ACC_DIR6 IS | ||||
| 		WHEN 0 => MDOY[7..0] = DI[]; | ||||
| 		WHEN 1 => MDOY[7..0] = HDDR[]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE LCELL(/IO & ACC_DIR1) IS | ||||
| 		WHEN 0 => MDO[].d = (MDOY[],MDOX[]); | ||||
| 		WHEN 1 => MDO[].d = (RAM.q[7..0],RAM.q[7..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	DO[].clk		= DFF(MC_END,!CLK42,,); | ||||
| --	DO[].clk		= !CLK42; | ||||
| 	DO[].ena		= VCC; | ||||
| --	DO[].ena		= DFF(!MC_END,CLK42,,); | ||||
| 	DO[].d			= MD[]; | ||||
| 
 | ||||
| --	== accelerator functions == | ||||
| 
 | ||||
| 	FN_ACC[].clk	= /MR; | ||||
| 	FN_ACC[].ena	= /M1M; | ||||
| 	FN_ACC[].d		= LCELL(DI7 & !DI6 & !PRF_CMD) & !(DI[5..3]); | ||||
| 
 | ||||
| 	XMDH[].clk		= !CLK42; | ||||
| 	XMDH[]			= MDI[15..8]; | ||||
| 
 | ||||
| 	XMD[].clk		= !CLK42; | ||||
| 	CASE FN_ACC[1..0] IS | ||||
| 		WHEN 0 => | ||||
| 			XMD[] = MD[];					% BE % | ||||
| 		WHEN 1 => | ||||
| 			XMD[] = MD[] or RAM.q[7..0];	% B6 % | ||||
| 		WHEN 2 => | ||||
| 			XMD[] = MD[] xor RAM.q[7..0];	% AE % | ||||
| 		WHEN 3 => | ||||
| 			XMD[] = MD[] & RAM.q[7..0];		% A6 % | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE ALT_ACC IS | ||||
| 		WHEN 0 => RAM_ADR[] = ACC_CNT[]; | ||||
| 		WHEN 1 => RAM_ADR[] = XCNT[]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	ACC_TIME		= LCELL((!ACC_END or !DFFE(ACC_END,CLK42,,,(CT1 & CT2)))); | ||||
| 
 | ||||
| --	RAM_WR			= DFF((!/RD & (!ACC_GO & CT0) & ACC_TIME),CLK42,,); | ||||
| 	RAM_WR			= DFF((!/RD & (!ACC_GO & CT0) & ACC_DIR1),CLK42,,); | ||||
| 
 | ||||
| 	RAM.wren 		= RAM_WR; | ||||
| 	RAM.data[] 		= (XMD[],XMD[]); | ||||
| --	RAM.wraddress[] = ACC_CNT[]; | ||||
| 	RAM.wraddress[] = RAM_ADR[]; | ||||
| 	RAM.wrclock		= CLK42; | ||||
| 	RAM.wrclken		= VCC; | ||||
| 	RAM.rden		= VCC; | ||||
| --	RAM.rdaddress[] = ACC_CNT[]; | ||||
| 	RAM.rdaddress[] = RAM_ADR[]; | ||||
| 	RAM.rdclock		= CLK42; | ||||
| 	RAM.rdclken		= VCC; | ||||
| 
 | ||||
| 	AA[].clk	= CLK42; | ||||
| --	AA[].ena	= START_ACC or (ACC_DIR5 & !ACC_GO & ACC_GO_1); | ||||
| 	AA[].ena	= LCELL(START_ACC or (ACC_DIR5 & !(CAS or START_ACC) & (ACC_GO or (ACC_GO_1 & ACC_DIR6)))); | ||||
| 
 | ||||
| 	CASE DFF(START_ACC,CLK42,,) IS | ||||
| 		WHEN 1 => AA[].d = AI[]; | ||||
| --		WHEN 0 => AA[].d = AA[] + (B"00000000000000",ACC_DIR6,!ACC_DIR6); | ||||
| 		WHEN 0 => AA[].d = AA[] + 1; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	AO[] = (AA[15..0]); | ||||
| 
 | ||||
| END; | ||||
| 
 | ||||
							
								
								
									
										578
									
								
								src/altera/quartus/acex/AY.ACF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										578
									
								
								src/altera/quartus/acex/AY.ACF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,578 @@ | ||||
| -- | ||||
| --  Copyright (C) 1988-2000 Altera Corporation | ||||
| --  Any megafunction design, and related net list (encrypted or decrypted), | ||||
| --  support information, device programming or simulation file, and any other | ||||
| --  associated documentation or information provided by Altera or a partner | ||||
| --  under Altera's Megafunction Partnership Program may be used only to | ||||
| --  program PLD devices (but not masked PLD devices) from Altera.  Any other | ||||
| --  use of such megafunction design, net list, support information, device | ||||
| --  programming or simulation file, or any other related documentation or | ||||
| --  information is prohibited for any other purpose, including, but not | ||||
| --  limited to modification, reverse engineering, de-compiling, or use with | ||||
| --  any other silicon devices, unless such use is explicitly licensed under | ||||
| --  a separate agreement with Altera or a megafunction partner.  Title to | ||||
| --  the intellectual property, including patents, copyrights, trademarks, | ||||
| --  trade secrets, or maskworks, embodied in any such megafunction design, | ||||
| --  net list, support information, device programming or simulation file, or | ||||
| --  any other related documentation or information provided by Altera or a | ||||
| --  megafunction partner, remains with Altera, the megafunction partner, or | ||||
| --  their respective licensors.  No other licenses, including any licenses | ||||
| --  needed under any third party's intellectual property, are provided herein. | ||||
| -- | ||||
| CHIP ay | ||||
| BEGIN | ||||
| 	DEVICE = EP1K30QC208-3; | ||||
| END; | ||||
| 
 | ||||
| DEFAULT_DEVICES | ||||
| BEGIN | ||||
| 	AUTO_DEVICE = EP1K100FC484-1; | ||||
| 	AUTO_DEVICE = EP1K100FC256-1; | ||||
| 	AUTO_DEVICE = EP1K100QC208-1; | ||||
| 	AUTO_DEVICE = EP1K50FC484-1; | ||||
| 	AUTO_DEVICE = EP1K50FC256-1; | ||||
| 	AUTO_DEVICE = EP1K50QC208-1; | ||||
| 	AUTO_DEVICE = EP1K50TC144-1; | ||||
| 	AUTO_DEVICE = EP1K30FC256-1; | ||||
| 	AUTO_DEVICE = EP1K30QC208-1; | ||||
| 	AUTO_DEVICE = EP1K30TC144-1; | ||||
| 	AUTO_DEVICE = EP1K10FC256-1; | ||||
| 	AUTO_DEVICE = EP1K10QC208-1; | ||||
| 	AUTO_DEVICE = EP1K10TC144-1; | ||||
| 	AUTO_DEVICE = EP1K10TC100-1; | ||||
| 	ASK_BEFORE_ADDING_EXTRA_DEVICES = ON; | ||||
| END; | ||||
| 
 | ||||
| TIMING_POINT | ||||
| BEGIN | ||||
| 	DEVICE_FOR_TIMING_SYNTHESIS = EP1K30QC208-3; | ||||
| 	FREQUENCY = 100MHz; | ||||
| 	MAINTAIN_STABLE_SYNTHESIS = OFF; | ||||
| 	CUT_ALL_CLEAR_PRESET = ON; | ||||
| 	CUT_ALL_BIDIR = ON; | ||||
| END; | ||||
| 
 | ||||
| IGNORED_ASSIGNMENTS | ||||
| BEGIN | ||||
| 	FIT_IGNORE_TIMING = ON; | ||||
| 	DEMOTE_SPECIFIC_LCELL_ASSIGNMENTS_TO_LAB_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LOCAL_ROUTING_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_DEVICE_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LC_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_PIN_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_CHIP_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_TIMING_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LOGIC_OPTION_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_CLIQUE_ASSIGNMENTS = OFF; | ||||
| END; | ||||
| 
 | ||||
| GLOBAL_PROJECT_DEVICE_OPTIONS | ||||
| BEGIN | ||||
| 	MAX7000B_ENABLE_VREFB = OFF; | ||||
| 	MAX7000B_ENABLE_VREFA = OFF; | ||||
| 	MAX7000B_VCCIO_IOBANK2 = 3.3V; | ||||
| 	MAX7000B_VCCIO_IOBANK1 = 3.3V; | ||||
| 	CONFIG_EPROM_PULLUP_RESISTOR = ON; | ||||
| 	CONFIG_EPROM_USER_CODE = FFFFFFFF; | ||||
| 	FLEX_CONFIGURATION_EPROM = AUTO; | ||||
| 	MAX7000AE_ENABLE_JTAG = ON; | ||||
| 	MAX7000AE_USER_CODE = FFFFFFFF; | ||||
| 	FLEX6000_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = OFF; | ||||
| 	FLEX10KA_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = ON; | ||||
| 	FLEX10K_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = OFF; | ||||
| 	FLEX6000_ENABLE_JTAG = OFF; | ||||
| 	CONFIG_SCHEME_FLEX_6000 = PASSIVE_SERIAL; | ||||
| 	MULTIVOLT_IO = OFF; | ||||
| 	MAX7000S_ENABLE_JTAG = ON; | ||||
| 	FLEX10K_ENABLE_LOCK_OUTPUT = OFF; | ||||
| 	MAX7000S_USER_CODE = FFFF; | ||||
| 	CONFIG_SCHEME_10K = PASSIVE_SERIAL; | ||||
| 	FLEX10K_JTAG_USER_CODE = 7F; | ||||
| 	ENABLE_INIT_DONE_OUTPUT = OFF; | ||||
| 	ENABLE_CHIP_WIDE_OE = OFF; | ||||
| 	ENABLE_CHIP_WIDE_RESET = OFF; | ||||
| 	nCEO = UNRESERVED; | ||||
| 	CLKUSR = UNRESERVED; | ||||
| 	ADD17 = UNRESERVED; | ||||
| 	ADD16 = UNRESERVED; | ||||
| 	ADD15 = UNRESERVED; | ||||
| 	ADD14 = UNRESERVED; | ||||
| 	ADD13 = UNRESERVED; | ||||
| 	ADD0_TO_ADD12 = UNRESERVED; | ||||
| 	SDOUT = RESERVED_DRIVES_OUT; | ||||
| 	RDCLK = UNRESERVED; | ||||
| 	RDYnBUSY = UNRESERVED; | ||||
| 	nWS_nRS_nCS_CS = UNRESERVED; | ||||
| 	DATA1_TO_DATA7 = UNRESERVED; | ||||
| 	DATA0 = RESERVED_TRI_STATED; | ||||
| 	FLEX8000_ENABLE_JTAG = OFF; | ||||
| 	CONFIG_SCHEME = ACTIVE_SERIAL; | ||||
| 	DISABLE_TIME_OUT = OFF; | ||||
| 	ENABLE_DCLK_OUTPUT = OFF; | ||||
| 	RELEASE_CLEARS = OFF; | ||||
| 	AUTO_RESTART = OFF; | ||||
| 	USER_CLOCK = OFF; | ||||
| 	SECURITY_BIT = OFF; | ||||
| 	RESERVED_PINS_PERCENT = 0; | ||||
| 	RESERVED_LCELLS_PERCENT = 0; | ||||
| END; | ||||
| 
 | ||||
| GLOBAL_PROJECT_SYNTHESIS_ASSIGNMENT_OPTIONS | ||||
| BEGIN | ||||
| 	MULTI_LEVEL_SYNTHESIS_MAX9000 = ON; | ||||
| 	AUTO_IMPLEMENT_IN_EAB = OFF; | ||||
| 	AUTO_OPEN_DRAIN_PINS = ON; | ||||
| 	ONE_HOT_STATE_MACHINE_ENCODING = OFF; | ||||
| 	AUTO_REGISTER_PACKING = OFF; | ||||
| 	DEVICE_FAMILY = ACEX1K; | ||||
| 	STYLE = NORMAL; | ||||
| 	AUTO_FAST_IO = OFF; | ||||
| 	AUTO_GLOBAL_OE = ON; | ||||
| 	AUTO_GLOBAL_PRESET = ON; | ||||
| 	AUTO_GLOBAL_CLEAR = ON; | ||||
| 	AUTO_GLOBAL_CLOCK = ON; | ||||
| 	MULTI_LEVEL_SYNTHESIS_MAX5000_7000 = OFF; | ||||
| 	OPTIMIZE_FOR_SPEED = 5; | ||||
| END; | ||||
| 
 | ||||
| COMPILER_PROCESSING_CONFIGURATION | ||||
| BEGIN | ||||
| 	USE_QUARTUS_FITTER = ON; | ||||
| 	PRESERVE_ALL_NODE_NAME_SYNONYMS = OFF; | ||||
| 	FITTER_SETTINGS = NORMAL; | ||||
| 	SMART_RECOMPILE = OFF; | ||||
| 	GENERATE_AHDL_TDO_FILE = OFF; | ||||
| 	RPT_FILE_USER_ASSIGNMENTS = ON; | ||||
| 	RPT_FILE_LCELL_INTERCONNECT = ON; | ||||
| 	RPT_FILE_HIERARCHY = ON; | ||||
| 	RPT_FILE_EQUATIONS = ON; | ||||
| 	LINKED_SNF_EXTRACTOR = OFF; | ||||
| 	OPTIMIZE_TIMING_SNF = OFF; | ||||
| 	TIMING_SNF_EXTRACTOR = ON; | ||||
| 	FUNCTIONAL_SNF_EXTRACTOR = OFF; | ||||
| 	DESIGN_DOCTOR_RULES = EPLD; | ||||
| 	DESIGN_DOCTOR = OFF; | ||||
| END; | ||||
| 
 | ||||
| COMPILER_INTERFACES_CONFIGURATION | ||||
| BEGIN | ||||
| 	NETLIST_OUTPUT_TIME_SCALE = 0.1ns; | ||||
| 	EDIF_INPUT_SHOW_LMF_MAPPING_MESSAGES = OFF; | ||||
| 	EDIF_BUS_DELIMITERS = []; | ||||
| 	EDIF_FLATTEN_BUS = OFF; | ||||
| 	EDIF_OUTPUT_FORCE_0NS_DELAYS = OFF; | ||||
| 	EDIF_OUTPUT_INCLUDE_SPECIAL_PRIM = OFF; | ||||
| 	EDIF_OUTPUT_MAP_ILLEGAL_CHAR = OFF; | ||||
| 	EDIF_OUTPUT_DELAY_CONSTRUCTS = EDO_FILE; | ||||
| 	EDIF_OUTPUT_USE_EDC = OFF; | ||||
| 	EDIF_INPUT_USE_LMF2 = OFF; | ||||
| 	EDIF_INPUT_USE_LMF1 = OFF; | ||||
| 	EDIF_OUTPUT_GND = GND; | ||||
| 	EDIF_OUTPUT_VCC = VCC; | ||||
| 	EDIF_INPUT_GND = GND; | ||||
| 	EDIF_INPUT_VCC = VCC; | ||||
| 	EDIF_OUTPUT_EDC_FILE = *.edc; | ||||
| 	EDIF_INPUT_LMF2 = *.lmf; | ||||
| 	EDIF_INPUT_LMF1 = *.lmf; | ||||
| 	VHDL_GENERATE_CONFIGURATION_DECLARATION = OFF; | ||||
| 	VHDL_OUTPUT_DELAY_CONSTRUCTS = VHO_FILE; | ||||
| 	VERILOG_OUTPUT_DELAY_CONSTRUCTS = VO_FILE; | ||||
| 	VHDL_FLATTEN_BUS = OFF; | ||||
| 	VERILOG_FLATTEN_BUS = OFF; | ||||
| 	EDIF_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VHDL_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VERILOG_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VERILOG_OUTPUT_MAP_ILLEGAL_CHAR = OFF; | ||||
| 	VHDL_WRITER_VERSION = VHDL93; | ||||
| 	VHDL_READER_VERSION = VHDL93; | ||||
| 	SYNOPSYS_MAPPING_EFFORT = MEDIUM; | ||||
| 	SYNOPSYS_BOUNDARY_OPTIMIZATION = OFF; | ||||
| 	SYNOPSYS_HIERARCHICAL_COMPILATION = ON; | ||||
| 	SYNOPSYS_DESIGNWARE = OFF; | ||||
| 	SYNOPSYS_COMPILER = DESIGN; | ||||
| 	USE_SYNOPSYS_SYNTHESIS = OFF; | ||||
| 	VHDL_NETLIST_WRITER = OFF; | ||||
| 	VERILOG_NETLIST_WRITER = OFF; | ||||
| 	XNF_GENERATE_AHDL_TDX_FILE = ON; | ||||
| 	XNF_TRANSLATE_INTERNAL_NODE_NAMES = ON; | ||||
| 	XNF_EMULATE_TRI_STATE_BUSES = INTERNAL_LOGIC; | ||||
| 	EDIF_OUTPUT_VERSION = 200; | ||||
| 	EDIF_NETLIST_WRITER = OFF; | ||||
| END; | ||||
| 
 | ||||
| CUSTOM_DESIGN_DOCTOR_RULES | ||||
| BEGIN | ||||
| 	MASTER_RESET = OFF; | ||||
| 	EXPANDER_NETWORKS = ON; | ||||
| 	RACE_CONDITIONS = ON; | ||||
| 	DELAY_CHAINS = ON; | ||||
| 	ASYNCHRONOUS_INPUTS = ON; | ||||
| 	PRESET_CLEAR_NETWORKS = ON; | ||||
| 	STATIC_HAZARDS_AFTER_SYNTHESIS = OFF; | ||||
| 	STATIC_HAZARDS_BEFORE_SYNTHESIS = ON; | ||||
| 	MULTI_CLOCK_NETWORKS = ON; | ||||
| 	MULTI_LEVEL_CLOCKS = ON; | ||||
| 	GATED_CLOCKS = ON; | ||||
| 	RIPPLE_CLOCKS = ON; | ||||
| END; | ||||
| 
 | ||||
| SIMULATOR_CONFIGURATION | ||||
| BEGIN | ||||
| 	BIDIR_PIN = STRONG; | ||||
| 	END_TIME = 0.0ns; | ||||
| 	START_TIME = 0.0ns; | ||||
| 	GLITCH_TIME = 0.0ns; | ||||
| 	GLITCH = OFF; | ||||
| 	OSCILLATION_TIME = 0.0ns; | ||||
| 	OSCILLATION = OFF; | ||||
| 	CHECK_OUTPUTS = OFF; | ||||
| 	SETUP_HOLD = OFF; | ||||
| 	USE_DEVICE = OFF; | ||||
| END; | ||||
| 
 | ||||
| TIMING_ANALYZER_CONFIGURATION | ||||
| BEGIN | ||||
| 	ANALYSIS_MODE = REGISTERED_PERFORMANCE; | ||||
| 	CUT_OFF_RAM_REGISTERED_WE_PATHS = OFF; | ||||
| 	LIST_PATH_FREQUENCY = 10MHz; | ||||
| 	LIST_PATH_COUNT = 10; | ||||
| 	REGISTERED_PERFORMANCE_OPTIONS = NUMBER_OF_PATHS; | ||||
| 	INCLUDE_PATHS_LESS_THAN_VALUE = 214.7483647ms; | ||||
| 	INCLUDE_PATHS_LESS_THAN = OFF; | ||||
| 	INCLUDE_PATHS_GREATER_THAN_VALUE = 0.0ns; | ||||
| 	INCLUDE_PATHS_GREATER_THAN = OFF; | ||||
| 	DELAY_MATRIX_OPTIONS = SHOW_ALL_PATHS; | ||||
| 	CELL_WIDTH = 18; | ||||
| 	LIST_ONLY_LONGEST_PATH = ON; | ||||
| 	CUT_OFF_CLEAR_AND_PRESET_PATHS = ON; | ||||
| 	CUT_OFF_IO_PIN_FEEDBACK = ON; | ||||
| 	AUTO_RECALCULATE = OFF; | ||||
| END; | ||||
| 
 | ||||
| OTHER_CONFIGURATION | ||||
| BEGIN | ||||
| 	ROW_PINS_LCELL_INSERT = ON; | ||||
| 	CARRY_OUT_PINS_LCELL_INSERT = OFF; | ||||
| 	NORMAL_LCELL_INSERT = ON; | ||||
| 	EXPLICIT_FAMILY = 1; | ||||
| 	LAST_MAXPLUS2_VERSION = 10.0; | ||||
| 	FLEX_10K_52_COLUMNS = 40; | ||||
| 	DEFAULT_9K_EXP_PER_LCELL = 1/2; | ||||
| 	LOCAL_INTERCONNECT_PER_LAB_PERCENT = 100; | ||||
| 	LCELLS_PER_ROW_PERCENT = 100; | ||||
| 	FAN_IN_PER_LCELL_PERCENT = 100; | ||||
| 	EXP_PER_LCELL_PERCENT = 100; | ||||
| 	ROW_PINS_PERCENT = 50; | ||||
| 	ORIGINAL_MAXPLUS2_VERSION = 10.0; | ||||
| 	COMPILER_DATA = "1,1,0,1,0,0,0,1,1,1,1,0,1,1,1"; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.FLEX8000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = ON; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.FLEX8000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = AUTO; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = AUTO; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.FLEX8000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = MANUAL; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = MANUAL; | ||||
| END; | ||||
| 
 | ||||
							
								
								
									
										26
									
								
								src/altera/quartus/acex/AY.INC
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/altera/quartus/acex/AY.INC
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| -- Copyright (C) 1988-2000 Altera Corporation | ||||
| -- Any megafunction design, and related net list (encrypted or decrypted), | ||||
| -- support information, device programming or simulation file, and any other | ||||
| -- associated documentation or information provided by Altera or a partner | ||||
| -- under Altera's Megafunction Partnership Program may be used only to | ||||
| -- program PLD devices (but not masked PLD devices) from Altera.  Any other | ||||
| -- use of such megafunction design, net list, support information, device | ||||
| -- programming or simulation file, or any other related documentation or | ||||
| -- information is prohibited for any other purpose, including, but not | ||||
| -- limited to modification, reverse engineering, de-compiling, or use with | ||||
| -- any other silicon devices, unless such use is explicitly licensed under | ||||
| -- a separate agreement with Altera or a megafunction partner.  Title to | ||||
| -- the intellectual property, including patents, copyrights, trademarks, | ||||
| -- trade secrets, or maskworks, embodied in any such megafunction design, | ||||
| -- net list, support information, device programming or simulation file, or | ||||
| -- any other related documentation or information provided by Altera or a | ||||
| -- megafunction partner, remains with Altera, the megafunction partner, or | ||||
| -- their respective licensors.  No other licenses, including any licenses | ||||
| -- needed under any third party's intellectual property, are provided herein. | ||||
| 
 | ||||
| -- MAX+plus II Include File | ||||
| -- Version 10.0 9/14/2000 | ||||
| -- Created: Sat May 26 07:09:40 2001 | ||||
| 
 | ||||
| FUNCTION ay (/reset, clk42, ay_t[8..0], ay_d_wr, ay_a_wr, d[7..0], beeper) | ||||
|     RETURNS (do[7..0], ay_ch_a[3..0], ay_ch_b[3..0], ay_ch_c[3..0], ay_ch_l[9..0], ay_ch_r[9..0], ay_ch_val); | ||||
							
								
								
									
										154
									
								
								src/altera/quartus/acex/AY.MIF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								src/altera/quartus/acex/AY.MIF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,154 @@ | ||||
| DEPTH = 256;	% Memory depth and width are required	% | ||||
| WIDTH = 8;		% Enter a decimal number	% | ||||
| 
 | ||||
| ADDRESS_RADIX = HEX;	% Address and value radixes are optional	% | ||||
| DATA_RADIX = BIN;		% Enter BIN, DEC, HEX, or OCT; unless 	% | ||||
| 						% otherwise specified, radixes = HEX	% | ||||
| 
 | ||||
| -- Specify values for addresses, which can be single address or range | ||||
| 
 | ||||
| CONTENT | ||||
| BEGIN | ||||
| 	[0..7F]	: 00000000; | ||||
| 	0	:	00000000 00000000 | ||||
| 			00000000 00000000 | ||||
| 			00000000 00000000 | ||||
| 			00000000 11111111 | ||||
| 			00000000 00000000 | ||||
| 			00000000 00000000 | ||||
| 			00000000 00000000 | ||||
| 			00000000 00000000 | ||||
| 
 | ||||
| 			11111111 11111111 | ||||
| 			11111111 11111111 | ||||
| 			11111111 11111111 | ||||
| 			11111111 11111111 | ||||
| 			11111111 11111111 | ||||
| 			11111111 11111111 | ||||
| 			11111111 00000001 | ||||
| 			00000000 11111111 | ||||
| 	; | ||||
| 	1E	:	00000000; | ||||
| 	1F	:	11111111; | ||||
| 
 | ||||
| 	30	:	00000000 | ||||
| 			00000010 | ||||
| 			00000011 | ||||
| 			00000100 | ||||
| 			00000110 | ||||
| 			00001000 | ||||
| 			00001011 | ||||
| 			00010000 | ||||
| 			00010110 | ||||
| 			00100000 | ||||
| 			00101101 | ||||
| 			01000000 | ||||
| 			01011010 | ||||
| 			10000000 | ||||
| 			10110100 | ||||
| 			11111111; | ||||
| 
 | ||||
| 	[80..FF]: 00000000; | ||||
| 
 | ||||
| % | ||||
| 	000 - set CX, load & sub 1 | ||||
| 	001	- load | ||||
| 	010	- save, if NZ,reset CX | ||||
| 	011	- bit_out | ||||
| 	100	- load & sub 1 | ||||
| 	101	- load & sub C | ||||
| 	110	- if CX, save | ||||
| 	111	- read states /RESET, AY_F_RES | ||||
| % | ||||
| 
 | ||||
| 	80	: | ||||
| 			00010000  -- set C,CX load reg10 & sub C | ||||
| 			01010000  -- save reg10 & reset CX if NZ | ||||
| 			10110001  -- load reg11 & sub C | ||||
| 			01010001  -- save reg11 & reset CX if NZ | ||||
| 
 | ||||
| 			00100000  -- set C load reg00 & sub C | ||||
| 			11010000  -- save reg10 if CX | ||||
| 			00100001  -- load reg01 & sub C | ||||
| 			11010001  -- save reg11 if CX | ||||
| 
 | ||||
| 			00101000  -- load reg08 | ||||
| 			01100001  -- set AY_OUT1 | ||||
| 
 | ||||
| 
 | ||||
| 			00010010  -- set C,CX load reg12 & sub C | ||||
| 			01010010  -- save reg12 & reset CX if NZ | ||||
| 			10110011  -- load reg13 & sub C | ||||
| 			01010011  -- save reg13 & reset CX if NZ | ||||
| 
 | ||||
| 			00100010  -- set C load reg02 & sub C | ||||
| 			11010010  -- save reg12 if CX | ||||
| 			00100011  -- load reg03 & reset CX if NZ | ||||
| 			11010011  -- save reg13 if CX | ||||
| 
 | ||||
| 			00101001  -- load reg09 | ||||
| 			01100010  -- set AY_OUT2 | ||||
| 
 | ||||
| 
 | ||||
| 			00010100  -- set C,CX load reg14 & sub C | ||||
| 			01010100  -- save reg14 & reset CX if NZ | ||||
| 			10110101  -- load reg15 & sub C | ||||
| 			01010101  -- save reg15 & reset CX if NZ | ||||
| 
 | ||||
| 			00100100  -- set C load reg04 & sub C | ||||
| 			11010100  -- save reg14 if CX | ||||
| 			00100101  -- load reg05 & reset CX if NZ | ||||
| 			11010101  -- save reg15 if CX | ||||
| 
 | ||||
| 			00101010  -- load reg0A | ||||
| 			01100011  -- set AY_OUT3 | ||||
| 
 | ||||
| 
 | ||||
| 			00010111  -- set C,CX load reg17 & dec 1 | ||||
| 			01010111  -- save reg17 & reset CX if NZ | ||||
| 			00100110  -- load reg06 dec 1  		*********** | ||||
| 			11010111  -- save reg17 if CX | ||||
| 
 | ||||
| 			01100100  -- set AY_SH | ||||
| 			00000000  -- NOP | ||||
| 
 | ||||
| 			00011000  -- set C,CX load reg18 & sub C | ||||
| 			01011000  -- save reg18 & reset CX if NZ | ||||
| 			10111001  -- load reg19 & sub C | ||||
| 			01011001  -- save reg19 & reset CX if NZ | ||||
| 
 | ||||
| 			00101011  -- load reg0B & sub 1 | ||||
| 			11011000  -- save reg18 if CX | ||||
| 			00101100  -- load reg0C & sub C | ||||
| 			11011001  -- save reg19 if CX | ||||
| 
 | ||||
| 			01100101  -- set FORM_CLK | ||||
| 
 | ||||
| 			11100000  -- set CX = AY_F_RES | ||||
| 
 | ||||
| --			00101011  -- load reg0B & sub 1 | ||||
| --			11011000  -- save reg18 if CX | ||||
| --			00101100  -- load reg0C & sub C | ||||
| --			11011001  -- save reg19 if CX | ||||
| 
 | ||||
| 			11100001  -- set CX = /RESET | ||||
| 
 | ||||
| 			00111111  -- load reg1F - FF		*********** | ||||
| 			11000111  -- save reg07 if CX | ||||
| 			00111110  -- load reg1E - 00		*********** | ||||
| 
 | ||||
| 			11001101  -- save reg0D if CX | ||||
| 			11001000  -- save reg08 if CX | ||||
| 			11001001  -- save reg09 if CX | ||||
| 			11001010  -- save reg0a if CX | ||||
| 
 | ||||
| 			00100111  -- load reg07				*********** | ||||
| 			01100110  -- set keys_bits | ||||
| 
 | ||||
| 			00101101  -- load reg0D             *********** | ||||
| 			01100111  -- set keys_bits			SET-FORM-bits | ||||
| 
 | ||||
| --			01100000  -- set AY_OUT_ALL | ||||
| 
 | ||||
| 		; | ||||
| END ; | ||||
							
								
								
									
										368
									
								
								src/altera/quartus/acex/AY.TDF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										368
									
								
								src/altera/quartus/acex/AY.TDF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,368 @@ | ||||
| 
 | ||||
| 	TITLE "AY-3-8910"; | ||||
| 
 | ||||
| include "lpm_ram_dq"; | ||||
| include "lpm_add_sub"; | ||||
| 
 | ||||
| SUBDESIGN ay | ||||
| 	( | ||||
| 	/RESET			: INPUT; | ||||
| 	CLK42			: INPUT;	-- â ªâë 42 | ||||
| 	AY_T[8..0]		: INPUT;	-- ¢¥è¨© áç¥â稪 ⠪⮢ | ||||
| 
 | ||||
| 	AY_D_WR			: INPUT; | ||||
| 	AY_A_WR			: INPUT; | ||||
| 
 | ||||
| 	D[7..0]			: INPUT; | ||||
| 	DO[7..0]		: OUTPUT; | ||||
| 
 | ||||
| 	AY_CH_A[3..0]	: OUTPUT; | ||||
| 	AY_CH_B[3..0]	: OUTPUT; | ||||
| 	AY_CH_C[3..0]	: OUTPUT; | ||||
| 
 | ||||
| 	AY_CH_L[9..0]	: OUTPUT; | ||||
| 	AY_CH_R[9..0]	: OUTPUT; | ||||
| 
 | ||||
| 	AY_CH_VAL		: OUTPUT;	-- chanels data valid | ||||
| 	BEEPER			: INPUT; | ||||
| 
 | ||||
| 	) | ||||
| VARIABLE | ||||
| 
 | ||||
| 	BD[7..0]		: DFFE; | ||||
| 	BWR				: DFFE; | ||||
| 	AWR				: DFFE; | ||||
| 
 | ||||
| 	AY_DI[7..0]		: NODE; | ||||
| 	AY_DO[7..0]		: NODE; | ||||
| 
 | ||||
| 	AY_F_RES		: NODE; | ||||
| 	AY_F_R1			: NODE; | ||||
| 
 | ||||
| 	AY_ADR[7..0]	: DFF; | ||||
| 	AY_AAX[1..0]	: DFF; | ||||
| 
 | ||||
| 	AY_X_[5..0] 	: DFFE; | ||||
| 	AY_GF[3..0] 	: DFFE; | ||||
| 
 | ||||
| 	AY_OUT[3..1]	: DFFE; | ||||
| 	AY_OUTS[3..1]	: NODE; | ||||
| 
 | ||||
| 	AY_CLK1			: NODE; | ||||
| 	AY_SH[16..0]	: DFFE; | ||||
| 	AY_AA[3..0]		: DFF; | ||||
| 	AY_SH_Q			: NODE; | ||||
| 
 | ||||
| 	AY_ABLK			: NODE; | ||||
| 	AY_BBLK         : NODE; | ||||
| 	AY_AINV         : NODE; | ||||
| 	AY_BINV         : NODE; | ||||
| 
 | ||||
| 	AY_ADRX[7..0]	: NODE; | ||||
| 	AY_CCC[8..0]	: DFF; | ||||
| 	AY_AX[7..0]		: NODE; | ||||
| 	AY_C			: DFFE; | ||||
| 	AY_CX			: DFFE; | ||||
| 	AY_CXX			: DFFE; | ||||
| 	AY_WR			: NODE; | ||||
| 	AY_VA[3..0]		: DFFE; | ||||
| 	AY_VAR			: DFFE; | ||||
| 	AY_VX			: DFFE; | ||||
| 
 | ||||
| 	AY_DAT_WR		: DFF; | ||||
| 	AY_DAT[7..0]	: DFFE; | ||||
| 
 | ||||
| 	AY_DQ1[3..0]	: DFFE; | ||||
| 	AY_DQ2[3..0]	: DFFE; | ||||
| 	AY_DQ3[3..0]	: DFFE; | ||||
| 
 | ||||
| 	AY_DQX[3..0]	: DFFE; | ||||
| 	AY_OUTSX		: NODE; | ||||
| 	AY_CH_MIX		: DFF; | ||||
| 
 | ||||
| 	AY_AMP[3..0]	: DFF; | ||||
| 
 | ||||
| 	AY_DD[7..0]		: DFFE; | ||||
| 
 | ||||
| 	AY_CH_A[3..0]	: DFF; | ||||
| 	AY_CH_B[3..0]   : DFF; | ||||
| 	AY_CH_C[3..0]   : DFF; | ||||
| 
 | ||||
| 	AY_CH_CS[8..0]	: DFF; | ||||
| 	AY_CH_LX[10..0]	: DFFE; | ||||
| 	AY_CH_RX[10..0]	: DFFE; | ||||
| 
 | ||||
| --	AY_CH_L[9..0]	: DFF; | ||||
| --	AY_CH_R[9..0]	: DFF; | ||||
| 
 | ||||
| 	AY_CH_DIR[7..0]	: DFFE; | ||||
| 
 | ||||
| 	AY_OUTS1X		: NODE; | ||||
| 	AY_OUTS2X       : NODE; | ||||
| 	AY_OUTS3X       : NODE; | ||||
| 
 | ||||
| 	AY_OUTS1Y       : NODE; | ||||
| --	AY_OUTS2Y       : NODE; | ||||
| 	AY_OUTS3Y       : NODE; | ||||
| 
 | ||||
| BEGIN | ||||
| 
 | ||||
| --	====== AY8910 III version ========= | ||||
| 
 | ||||
| 	BD[].clk	= CLK42; | ||||
| 	AWR.clk		= CLK42; | ||||
| 	BWR.clk		= CLK42; | ||||
| 
 | ||||
| 	BD[].ena	= AY_CCC1; | ||||
| 	BWR.ena		= AY_CCC1; | ||||
| 	AWR.ena		= AY_CCC1; | ||||
| 
 | ||||
| 	BD[7..5].clrn = !((AY_ADR[3..0] == B"00X1") or -- ch 1,2 | ||||
| 					  (AY_ADR[3..0] == B"0101") or -- ch 3 | ||||
| 					  (AY_ADR[3..0] == B"0110")    -- ch shum | ||||
| 					 ); | ||||
| 	BD4.clrn	  = !((AY_ADR[3..0] == B"00X1") or -- ch 1,2 | ||||
| 				  	  (AY_ADR[3..0] == B"0101")    -- ch 3 | ||||
| 					 ); | ||||
| 
 | ||||
| 	BD[]		= D[]; | ||||
| 
 | ||||
| 	AWR			= AY_A_WR; | ||||
| --	BWR			= (AY_D_WR or !(AY_ADR[5..4] == 0)); | ||||
| 	BWR			= AY_D_WR; | ||||
| 
 | ||||
| 	AY_CH_DIR[].clk	= AY_D_WR; | ||||
| 	AY_CH_DIR[].ena	= (AY_ADR[] == B"XXX10000"); | ||||
| 	AY_CH_DIR[].d	= D[]; | ||||
| 	AY_CH_DIR[].clrn= /RESET; | ||||
| 
 | ||||
| 	AY_CCC[].clk	= CLK42; | ||||
| 	AY_CCC[8..0].d	= AY_T[]; | ||||
| 
 | ||||
| 	(AY_AAX[].clk,AY_ADR[].clk)	= AY_A_WR; | ||||
| 	AY_ADR[].d		= D[]; | ||||
| 
 | ||||
| 	-- Write to 0D register | ||||
| 	AY_AAX0.d	= (D[3..0] == B"1101"); | ||||
| 	-- Write to AMP registers 08,09,0A | ||||
| 	AY_AAX1.d	= (D[3..0] == B"1000") or (D[3..0] == B"1001") or (D[3..0] == B"1010"); | ||||
| 
 | ||||
| 	-- reset signal for form generator | ||||
| --	AY_F_RES	= DFF(VCC,DFF((!((AY_DO[7..5] == B"111") & AY_CCC1 & !AY_DO0) or AY_F_RES),CLK42,,),LCELL(!(AY_AAX0 or (AY_AAX1 & BD4)) or BWR),); | ||||
| 
 | ||||
| --	AY_F_R1		= DFF((!(AY_AAX0 or (AY_AAX1)) or BWR),CLK42,,); | ||||
| 	AY_F_R1		= DFF((!AY_AAX0 or BWR),CLK42,,); | ||||
| 	AY_F_RES	= DFF(DFF(VCC,AY_CCC7,AY_F_R1,),AY_CCC7,AY_F_R1,); | ||||
| 
 | ||||
| 	AY_X_[].prn	= VCC; | ||||
| 
 | ||||
| --  	AY_GF[3..0].clrn = /RESET; | ||||
| --  	AY_GF[3..0].clk	 = AY_D_WR; | ||||
| --		AY_GF[3..0].ena = AY_ADR[] == B"XXXX1101"; | ||||
| --		AY_GF[3..0].d  = D[3..0]; | ||||
| 
 | ||||
| 	AY_DAT_WR.clk	= CLK42; | ||||
| 
 | ||||
| 	CASE AY_CCC[1..0] IS | ||||
| 		WHEN B"00" => | ||||
| 			AY_AX[]		= (VCC,GND,AY_CCC[7..2]);	-- CMD adress | ||||
| 			AY_WR		= GND; | ||||
| 			AY_DI[]		= AY_DAT[]; | ||||
| 
 | ||||
| 			AY_DAT_WR	= VCC; | ||||
| 
 | ||||
| 		WHEN B"01" => | ||||
| 			AY_AX[]		= (B"0000",AY_ADR[3..0]); | ||||
| 			AY_WR		= !BWR; | ||||
| 			AY_DI[]		= BD[]; | ||||
| 
 | ||||
| 			AY_DAT_WR	= VCC; | ||||
| 
 | ||||
| 		WHEN B"1X" => | ||||
| 			AY_AX[] 	= (GND,GND,GND,AY_DO[4..0]); | ||||
| 			AY_DAT_WR	= AY_DO6; | ||||
| 			AY_WR		= !LCELL(!(AY_DO[7..5] == B"010") & | ||||
| 								!((AY_DO[7..5] == B"110") & AY_CXX)); | ||||
| --								!((AY_DO[7..5] == B"110") & AY_CX)); | ||||
| 			AY_DI[]		= AY_DAT[]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	AY_DD[].clk	= CLK42; | ||||
| 	AY_DD[].ena	= !AY_CCC1 & !AY_CCC0; | ||||
| 	AY_DD[]	= AY_DO[]; | ||||
| 
 | ||||
| 	AY_DO[] = lpm_ram_dq(AY_DI[],AY_AX[],AY_WR,CLK42,CLK42) | ||||
| 		WITH (lpm_width=8,lpm_widthad=8,lpm_file="AY.MIF"); | ||||
| 
 | ||||
| --	AY_CX.prn	= !DFF((((AY_DO[7..5] == B"00X") & AY_CCC1) & (!AY_DO5 or AY_C)),CLK42,,); | ||||
| 	AY_CX.prn	= !DFF(((AY_DO[7..5] == B"000") & AY_CCC1),CLK42,,); | ||||
| 	AY_CXX.prn	= !DFF(((AY_DO[7..5] == B"000") & AY_CCC1),CLK42,,); | ||||
| 	AY_C.prn	= VCC; | ||||
| 
 | ||||
| 	AY_CX.clk	= CLK42; | ||||
| 	AY_CXX.clk	= CLK42; | ||||
| 	(AY_CXX.ena,AY_CX.ena)	= DFF((((AY_DO[7..5] == B"010") or (AY_DO[7..5] == B"111")) & AY_CCC1),CLK42,,); | ||||
| 
 | ||||
| 	IF DFF(((AY_DO[7..5] == B"010")),CLK42,,) THEN | ||||
| 		AY_CX = (LCELL(AY_DAT[] == 0) & AY_CX); | ||||
| --		AY_CXX = (LCELL(AY_DAT[] == 0) & AY_CXX); | ||||
| --		AY_CX  = (LCELL(AY_DAT[] == 0) & AY_CX) or (AY_C & DFF(AY_DO0,CLK42,,)); | ||||
| 		AY_CXX = (LCELL(AY_DAT[] == 0) & AY_CXX) or (AY_C & DFF(AY_DO0,CLK42,,)); | ||||
| 	ELSE | ||||
| 		AY_CXX = DFF(((!/RESET & AY_DO0) or (!AY_F_RES & !AY_DO0)),CLK42,,); | ||||
| 		AY_CX  = DFF(((!/RESET & AY_DO0) or (!AY_F_RES & !AY_DO0)),CLK42,,); | ||||
| 	END IF; | ||||
| 
 | ||||
| 	(AY_C.clk,AY_DAT[].clk)	= CLK42; | ||||
| 	(AY_C.ena,AY_DAT[].ena)	= !DFF(AY_DAT_WR,CLK42,,); | ||||
| 	(AY_C,AY_DAT[])	= (GND,AY_DO[]) - (B"00000000",DFF((DFF(!AY_DO5,CLK42,,) or (AY_C & DFF(AY_DO7,CLK42,,))),CLK42,,)); | ||||
| 
 | ||||
| 	AY_OUT[].clk = CLK42; | ||||
| 
 | ||||
| 	AY_AMP[].clk = CLK42; | ||||
| 	AY_AMP[] 	 = ((AY_DAT[3..0] or AY_DAT[4]) & (AY_AA[] or !AY_DAT[4])); | ||||
| 
 | ||||
| 	AY_DQ1[].clk = CLK42; | ||||
| 	AY_OUTS1 	 = DFF(((AY_DO[7..0] == B"011XX001") & AY_CCC1),CLK42,,); | ||||
| 	AY_OUT1.ena	 = AY_OUTS1; | ||||
| 	AY_OUT1 	 = AY_CX xor AY_OUT1; | ||||
| 	AY_DQ1[].ena = AY_OUTS1; | ||||
| 	AY_DQ1[]	 = AY_AMP[] & LCELL((AY_OUT1 or AY_X_0) & (AY_X_3 or AY_SH0)); | ||||
| 
 | ||||
| 	AY_DQ2[].clk = CLK42; | ||||
| 	AY_OUTS2 	 = DFF(((AY_DO[7..0] == B"011XX010") & AY_CCC1),CLK42,,); | ||||
| 	AY_OUT2.ena	 = AY_OUTS2; | ||||
| 	AY_OUT2 	 = AY_CX xor AY_OUT2; | ||||
| 	AY_DQ2[].ena = AY_OUTS2; | ||||
| 	AY_DQ2[] 	 = AY_AMP[] & LCELL((AY_OUT2 or AY_X_1) & (AY_X_4 or AY_SH0)); | ||||
| 
 | ||||
| 	AY_DQ3[].clk = CLK42; | ||||
| 	AY_OUTS3 	 = DFF(((AY_DO[7..0] == B"011XX011") & AY_CCC1),CLK42,,); | ||||
| 	AY_OUT3.ena	 = AY_OUTS3; | ||||
| 	AY_OUT3 	 = AY_CX xor AY_OUT3; | ||||
| 	AY_DQ3[].ena = AY_OUTS3; | ||||
| 	AY_DQ3[] 	 = AY_AMP[] & LCELL((AY_OUT3 or AY_X_2) & (AY_X_5 or AY_SH0)); | ||||
| 
 | ||||
| 	AY_OUTSX	 = DFF((((AY_DO[7..0] == B"011XX01X") or | ||||
| 				   	 (AY_DO[7..0] == B"011XX0X1")) & AY_CCC1),CLK42,,); | ||||
| 	AY_DQX[].clk = CLK42; | ||||
| 	AY_DQX[].ena = AY_OUTSX; | ||||
| 	AY_DQX[]	 = AY_AMP[] & AY_CH_MIX; | ||||
| 
 | ||||
| 	AY_DQX[].clrn = !AY_SH_Q; | ||||
| 	AY_DQX[].prn = (B"0010") or !DFF((AY_SH_Q & BEEPER),CLK42,,); | ||||
| 
 | ||||
| 	AY_CH_MIX.clk = CLK42; | ||||
| 	CASE AY_DO[1..0] IS | ||||
| 		WHEN 0,1 => AY_CH_MIX = LCELL((AY_OUT1 or AY_X_0) & (AY_X_3 or AY_SH0)); | ||||
| 		WHEN 2 => AY_CH_MIX = LCELL((AY_OUT2 or AY_X_1) & (AY_X_4 or AY_SH0)); | ||||
| 		WHEN 3 => AY_CH_MIX = LCELL((AY_OUT3 or AY_X_2) & (AY_X_5 or AY_SH0)); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	AY_SH_Q		= DFF(((AY_DO[7..0] == B"011XX100") & AY_CCC1),CLK42,,); | ||||
| 
 | ||||
| 	AY_SH[].clk	 = CLK42; | ||||
| 	AY_SH[].prn  = /RESET; | ||||
| 	AY_SH[].ena	 = AY_SH_Q & AY_CXX; | ||||
| 	AY_SH[] 	 = ((AY_SH3 xor AY_SH0),AY_SH[16..1]); | ||||
| 
 | ||||
| 	AY_VAR.clk	= CLK42; | ||||
| 	AY_VX.clk	= CLK42; | ||||
| 	AY_VA[].clk	= CLK42; | ||||
| 
 | ||||
| 	(AY_VAR.clrn,AY_VA[].clrn) = AY_F_RES; | ||||
| 	AY_VX.clrn	= AY_F_RES; | ||||
| 
 | ||||
| 	(AY_VX.ena,AY_VA[].ena,AY_VAR.ena) = DFF(((AY_DO[7..0] == B"011XX101") & AY_CCC1 & !AY_BBLK & AY_CX),CLK42,,); | ||||
| 	(AY_VX,AY_VA[],AY_VAR) = (AY_VX,AY_VA[],AY_VAR) + 1; | ||||
| 
 | ||||
| 	AY_X_[].clk	= CLK42; | ||||
| 	AY_X_[].ena = DFF(((AY_DO[7..0] == B"011XX110") & AY_CCC1),CLK42,,); | ||||
| 	AY_X_[] 	= AY_DAT[5..0]; | ||||
| 
 | ||||
| 	AY_GF[].clk	= CLK42; | ||||
| 	AY_GF[].ena	= DFF(((AY_DO[7..0] == B"011XX111") & AY_CCC1),CLK42,,); | ||||
| 	AY_GF[]		= AY_DAT[3..0]; | ||||
| 
 | ||||
| 	-- block count when 1-st period end | ||||
| 	AY_BBLK		= DFF((AY_VX & (AY_GF0 or !AY_GF3)),CLK42,,); -- VA_COUNT_STOP | ||||
| 
 | ||||
| 	-- set ALL ZERO when 1-st period end | ||||
| 	AY_ABLK		= DFF((!AY_GF3 & AY_VX),CLK42,,); | ||||
| 
 | ||||
| 	-- inverse 2-nd-s periods | ||||
| 	AY_BINV		= DFF((AY_VX & ((AY_GF[] == B"1X10") or (AY_GF == B"1X01"))),CLK42,,); | ||||
| 
 | ||||
| 	-- inverse ALL | ||||
| 	AY_AINV		= AY_GF2; | ||||
| 
 | ||||
| 	AY_AA[].clrn= VCC; | ||||
| 	AY_AA[].clk	= CLK42; | ||||
| 	AY_AA[].d	= (AY_VA[] xor AY_BINV xor !AY_AINV) & !AY_ABLK; | ||||
| 
 | ||||
| % | ||||
| 	AY_AA[].clrn= VCC; | ||||
| 	AY_AA[].prn	= GND; | ||||
| 	AY_AA[].clk	= CLK42; | ||||
| 	AY_AA[]		= VCC; | ||||
| % | ||||
| 
 | ||||
| 	AY_CH_A[3..0].clk = AY_CCC7; | ||||
| 	AY_CH_B[3..0].clk = AY_CCC7; | ||||
| 	AY_CH_C[3..0].clk = AY_CCC7; | ||||
| 
 | ||||
| 	AY_CH_A[3..0] = AY_DQ1[3..0]; | ||||
| 	AY_CH_B[3..0] = AY_DQ2[3..0]; | ||||
| 	AY_CH_C[3..0] = AY_DQ3[3..0]; | ||||
| 
 | ||||
| 	DO[7..0]	= AY_DD[]; | ||||
| 
 | ||||
| 	AY_CH_CS[].clk	= CLK42; | ||||
| 	CASE AY_DQX[] IS | ||||
| 		WHEN 15 => AY_CH_CS[] = 360 ; | ||||
| 		WHEN 14 => AY_CH_CS[] = 255 ; | ||||
| 		WHEN 13 => AY_CH_CS[] = 180 ; | ||||
| 		WHEN 12 => AY_CH_CS[] = 127 ; | ||||
| 		WHEN 11 => AY_CH_CS[] = 90  ; | ||||
| 		WHEN 10 => AY_CH_CS[] = 64  ; | ||||
| 		WHEN 9  => AY_CH_CS[] = 45  ; | ||||
| 		WHEN 8  => AY_CH_CS[] = 32  ; | ||||
| 		WHEN 7  => AY_CH_CS[] = 22  ; | ||||
| 		WHEN 6  => AY_CH_CS[] = 16  ; | ||||
| 		WHEN 5  => AY_CH_CS[] = 11  ; | ||||
| 		WHEN 4  => AY_CH_CS[] = 8   ; | ||||
| 		WHEN 3  => AY_CH_CS[] = 6   ; | ||||
| 		WHEN 2  => AY_CH_CS[] = 4   ; | ||||
| 		WHEN 1  => AY_CH_CS[] = 2   ; | ||||
| 		WHEN 0  => AY_CH_CS[] = 0   ; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	AY_OUTS1X = DFF(AY_OUTS1,CLK42,,); | ||||
| 	AY_OUTS2X = DFF((AY_OUTS2 or AY_SH_Q),CLK42,,); | ||||
| 	AY_OUTS3X = DFF(AY_OUTS3,CLK42,,); | ||||
| 
 | ||||
| 	AY_OUTS1Y = DFF(AY_OUTS1 or AY_OUTS1X,CLK42,,); | ||||
| --	AY_OUTS2Y = DFF(AY_OUTS2 or AY_OUTS2X,CLK42,,); | ||||
| 	AY_OUTS3Y = DFF(AY_OUTS3 or AY_OUTS3X,CLK42,,); | ||||
| 
 | ||||
| 	(AY_CH_LX[].clrn,AY_CH_RX[].clrn)	= !DFF((AY_CCC[7..2] == 0),CLK42,,); | ||||
| 
 | ||||
| 	(AY_CH_LX[],,) = LPM_ADD_SUB (,AY_CH_LX[],(B"00",AY_CH_CS[]),,,,) | ||||
| 					WITH(LPM_WIDTH=11,LPM_REPRESENTATION="UNSIGNED"); | ||||
| 	(AY_CH_RX[],,) = LPM_ADD_SUB (,AY_CH_RX[],(B"00",AY_CH_CS[]),,,,) | ||||
| 					WITH (LPM_WIDTH=11,LPM_REPRESENTATION="UNSIGNED"); | ||||
| 
 | ||||
| 	AY_CH_LX[].clk	= CLK42; | ||||
| 	AY_CH_RX[].clk	= CLK42; | ||||
| 	AY_CH_LX[].ena = DFF(DFF((AY_OUTS1 or AY_OUTS1Y or AY_OUTS2X or AY_OUTS2),CLK42,,),CLK42,,); | ||||
| 	AY_CH_RX[].ena = DFF(DFF((AY_OUTS3 or AY_OUTS3Y or AY_OUTS2X or AY_OUTS2),CLK42,,),CLK42,,); | ||||
| 
 | ||||
| 	AY_CH_VAL	= DFF((AY_CCC[7..2] == B"111100"),CLK42,,); | ||||
| 
 | ||||
| --	AY_CH_L[].clk = AY_CH_VAL; | ||||
| --	AY_CH_R[].clk = AY_CH_VAL; | ||||
| 	AY_CH_L[] = AY_CH_LX[10..1]; | ||||
| 	AY_CH_R[] = AY_CH_RX[10..1]; | ||||
| 
 | ||||
| END; | ||||
| 
 | ||||
							
								
								
									
										568
									
								
								src/altera/quartus/acex/DCP.ACF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										568
									
								
								src/altera/quartus/acex/DCP.ACF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,568 @@ | ||||
| -- | ||||
| --  Copyright (C) 1988-2000 Altera Corporation | ||||
| --  Any megafunction design, and related net list (encrypted or decrypted), | ||||
| --  support information, device programming or simulation file, and any other | ||||
| --  associated documentation or information provided by Altera or a partner | ||||
| --  under Altera's Megafunction Partnership Program may be used only to | ||||
| --  program PLD devices (but not masked PLD devices) from Altera.  Any other | ||||
| --  use of such megafunction design, net list, support information, device | ||||
| --  programming or simulation file, or any other related documentation or | ||||
| --  information is prohibited for any other purpose, including, but not | ||||
| --  limited to modification, reverse engineering, de-compiling, or use with | ||||
| --  any other silicon devices, unless such use is explicitly licensed under | ||||
| --  a separate agreement with Altera or a megafunction partner.  Title to | ||||
| --  the intellectual property, including patents, copyrights, trademarks, | ||||
| --  trade secrets, or maskworks, embodied in any such megafunction design, | ||||
| --  net list, support information, device programming or simulation file, or | ||||
| --  any other related documentation or information provided by Altera or a | ||||
| --  megafunction partner, remains with Altera, the megafunction partner, or | ||||
| --  their respective licensors.  No other licenses, including any licenses | ||||
| --  needed under any third party's intellectual property, are provided herein. | ||||
| -- | ||||
| CHIP dcp | ||||
| BEGIN | ||||
| 	DEVICE = EP1K30FC256-3; | ||||
| END; | ||||
| 
 | ||||
| DEFAULT_DEVICES | ||||
| BEGIN | ||||
| 	AUTO_DEVICE = EP1K100FC484-1; | ||||
| 	AUTO_DEVICE = EP1K100FC256-1; | ||||
| 	AUTO_DEVICE = EP1K100QC208-1; | ||||
| 	AUTO_DEVICE = EP1K50FC484-1; | ||||
| 	AUTO_DEVICE = EP1K50FC256-1; | ||||
| 	AUTO_DEVICE = EP1K50QC208-1; | ||||
| 	AUTO_DEVICE = EP1K50TC144-1; | ||||
| 	AUTO_DEVICE = EP1K30FC256-1; | ||||
| 	AUTO_DEVICE = EP1K30QC208-1; | ||||
| 	AUTO_DEVICE = EP1K30TC144-1; | ||||
| 	ASK_BEFORE_ADDING_EXTRA_DEVICES = ON; | ||||
| END; | ||||
| 
 | ||||
| TIMING_POINT | ||||
| BEGIN | ||||
| 	DEVICE_FOR_TIMING_SYNTHESIS = EP1K30FC256-3; | ||||
| 	FREQUENCY = 200MHz; | ||||
| 	MAINTAIN_STABLE_SYNTHESIS = OFF; | ||||
| 	CUT_ALL_CLEAR_PRESET = ON; | ||||
| 	CUT_ALL_BIDIR = ON; | ||||
| END; | ||||
| 
 | ||||
| IGNORED_ASSIGNMENTS | ||||
| BEGIN | ||||
| 	FIT_IGNORE_TIMING = OFF; | ||||
| 	DEMOTE_SPECIFIC_LCELL_ASSIGNMENTS_TO_LAB_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LOCAL_ROUTING_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_DEVICE_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LC_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_PIN_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_CHIP_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_TIMING_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LOGIC_OPTION_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_CLIQUE_ASSIGNMENTS = OFF; | ||||
| END; | ||||
| 
 | ||||
| GLOBAL_PROJECT_DEVICE_OPTIONS | ||||
| BEGIN | ||||
| 	MAX7000B_ENABLE_VREFB = OFF; | ||||
| 	MAX7000B_ENABLE_VREFA = OFF; | ||||
| 	MAX7000B_VCCIO_IOBANK2 = 3.3V; | ||||
| 	MAX7000B_VCCIO_IOBANK1 = 3.3V; | ||||
| 	CONFIG_EPROM_PULLUP_RESISTOR = ON; | ||||
| 	CONFIG_EPROM_USER_CODE = FFFFFFFF; | ||||
| 	FLEX_CONFIGURATION_EPROM = AUTO; | ||||
| 	MAX7000AE_ENABLE_JTAG = ON; | ||||
| 	MAX7000AE_USER_CODE = FFFFFFFF; | ||||
| 	FLEX6000_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = OFF; | ||||
| 	FLEX10KA_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = ON; | ||||
| 	FLEX10K_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = OFF; | ||||
| 	FLEX6000_ENABLE_JTAG = OFF; | ||||
| 	CONFIG_SCHEME_FLEX_6000 = PASSIVE_SERIAL; | ||||
| 	MULTIVOLT_IO = OFF; | ||||
| 	MAX7000S_ENABLE_JTAG = ON; | ||||
| 	FLEX10K_ENABLE_LOCK_OUTPUT = OFF; | ||||
| 	MAX7000S_USER_CODE = FFFF; | ||||
| 	CONFIG_SCHEME_10K = PASSIVE_SERIAL; | ||||
| 	FLEX10K_JTAG_USER_CODE = 7F; | ||||
| 	ENABLE_INIT_DONE_OUTPUT = OFF; | ||||
| 	ENABLE_CHIP_WIDE_OE = OFF; | ||||
| 	ENABLE_CHIP_WIDE_RESET = OFF; | ||||
| 	nCEO = UNRESERVED; | ||||
| 	CLKUSR = UNRESERVED; | ||||
| 	ADD17 = UNRESERVED; | ||||
| 	ADD16 = UNRESERVED; | ||||
| 	ADD15 = UNRESERVED; | ||||
| 	ADD14 = UNRESERVED; | ||||
| 	ADD13 = UNRESERVED; | ||||
| 	ADD0_TO_ADD12 = UNRESERVED; | ||||
| 	SDOUT = RESERVED_DRIVES_OUT; | ||||
| 	RDCLK = UNRESERVED; | ||||
| 	RDYnBUSY = UNRESERVED; | ||||
| 	nWS_nRS_nCS_CS = UNRESERVED; | ||||
| 	DATA1_TO_DATA7 = UNRESERVED; | ||||
| 	DATA0 = RESERVED_TRI_STATED; | ||||
| 	FLEX8000_ENABLE_JTAG = OFF; | ||||
| 	CONFIG_SCHEME = ACTIVE_SERIAL; | ||||
| 	DISABLE_TIME_OUT = OFF; | ||||
| 	ENABLE_DCLK_OUTPUT = OFF; | ||||
| 	RELEASE_CLEARS = OFF; | ||||
| 	AUTO_RESTART = OFF; | ||||
| 	USER_CLOCK = OFF; | ||||
| 	SECURITY_BIT = OFF; | ||||
| 	RESERVED_PINS_PERCENT = 0; | ||||
| 	RESERVED_LCELLS_PERCENT = 0; | ||||
| END; | ||||
| 
 | ||||
| GLOBAL_PROJECT_SYNTHESIS_ASSIGNMENT_OPTIONS | ||||
| BEGIN | ||||
| 	STYLE = FAST; | ||||
| 	MULTI_LEVEL_SYNTHESIS_MAX9000 = ON; | ||||
| 	AUTO_IMPLEMENT_IN_EAB = OFF; | ||||
| 	AUTO_OPEN_DRAIN_PINS = ON; | ||||
| 	ONE_HOT_STATE_MACHINE_ENCODING = OFF; | ||||
| 	AUTO_REGISTER_PACKING = OFF; | ||||
| 	DEVICE_FAMILY = ACEX1K; | ||||
| 	AUTO_FAST_IO = OFF; | ||||
| 	AUTO_GLOBAL_OE = ON; | ||||
| 	AUTO_GLOBAL_PRESET = ON; | ||||
| 	AUTO_GLOBAL_CLEAR = ON; | ||||
| 	AUTO_GLOBAL_CLOCK = ON; | ||||
| 	MULTI_LEVEL_SYNTHESIS_MAX5000_7000 = OFF; | ||||
| 	OPTIMIZE_FOR_SPEED = 5; | ||||
| END; | ||||
| 
 | ||||
| COMPILER_PROCESSING_CONFIGURATION | ||||
| BEGIN | ||||
| 	USE_QUARTUS_FITTER = ON; | ||||
| 	PRESERVE_ALL_NODE_NAME_SYNONYMS = OFF; | ||||
| 	FITTER_SETTINGS = NORMAL; | ||||
| 	SMART_RECOMPILE = OFF; | ||||
| 	GENERATE_AHDL_TDO_FILE = OFF; | ||||
| 	RPT_FILE_USER_ASSIGNMENTS = ON; | ||||
| 	RPT_FILE_LCELL_INTERCONNECT = ON; | ||||
| 	RPT_FILE_HIERARCHY = ON; | ||||
| 	RPT_FILE_EQUATIONS = ON; | ||||
| 	LINKED_SNF_EXTRACTOR = OFF; | ||||
| 	OPTIMIZE_TIMING_SNF = OFF; | ||||
| 	TIMING_SNF_EXTRACTOR = ON; | ||||
| 	FUNCTIONAL_SNF_EXTRACTOR = OFF; | ||||
| 	DESIGN_DOCTOR_RULES = EPLD; | ||||
| 	DESIGN_DOCTOR = OFF; | ||||
| END; | ||||
| 
 | ||||
| COMPILER_INTERFACES_CONFIGURATION | ||||
| BEGIN | ||||
| 	NETLIST_OUTPUT_TIME_SCALE = 0.1ns; | ||||
| 	EDIF_INPUT_SHOW_LMF_MAPPING_MESSAGES = OFF; | ||||
| 	EDIF_BUS_DELIMITERS = []; | ||||
| 	EDIF_FLATTEN_BUS = OFF; | ||||
| 	EDIF_OUTPUT_FORCE_0NS_DELAYS = OFF; | ||||
| 	EDIF_OUTPUT_INCLUDE_SPECIAL_PRIM = OFF; | ||||
| 	EDIF_OUTPUT_MAP_ILLEGAL_CHAR = OFF; | ||||
| 	EDIF_OUTPUT_DELAY_CONSTRUCTS = EDO_FILE; | ||||
| 	EDIF_OUTPUT_USE_EDC = OFF; | ||||
| 	EDIF_INPUT_USE_LMF2 = OFF; | ||||
| 	EDIF_INPUT_USE_LMF1 = OFF; | ||||
| 	EDIF_OUTPUT_GND = GND; | ||||
| 	EDIF_OUTPUT_VCC = VCC; | ||||
| 	EDIF_INPUT_GND = GND; | ||||
| 	EDIF_INPUT_VCC = VCC; | ||||
| 	EDIF_OUTPUT_EDC_FILE = *.edc; | ||||
| 	EDIF_INPUT_LMF2 = *.lmf; | ||||
| 	EDIF_INPUT_LMF1 = *.lmf; | ||||
| 	VHDL_GENERATE_CONFIGURATION_DECLARATION = OFF; | ||||
| 	VHDL_OUTPUT_DELAY_CONSTRUCTS = VHO_FILE; | ||||
| 	VERILOG_OUTPUT_DELAY_CONSTRUCTS = VO_FILE; | ||||
| 	VHDL_FLATTEN_BUS = OFF; | ||||
| 	VERILOG_FLATTEN_BUS = OFF; | ||||
| 	EDIF_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VHDL_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VERILOG_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VERILOG_OUTPUT_MAP_ILLEGAL_CHAR = OFF; | ||||
| 	VHDL_WRITER_VERSION = VHDL87; | ||||
| 	VHDL_READER_VERSION = VHDL87; | ||||
| 	SYNOPSYS_MAPPING_EFFORT = MEDIUM; | ||||
| 	SYNOPSYS_BOUNDARY_OPTIMIZATION = OFF; | ||||
| 	SYNOPSYS_HIERARCHICAL_COMPILATION = ON; | ||||
| 	SYNOPSYS_DESIGNWARE = OFF; | ||||
| 	SYNOPSYS_COMPILER = DESIGN; | ||||
| 	USE_SYNOPSYS_SYNTHESIS = OFF; | ||||
| 	VHDL_NETLIST_WRITER = OFF; | ||||
| 	VERILOG_NETLIST_WRITER = OFF; | ||||
| 	XNF_GENERATE_AHDL_TDX_FILE = ON; | ||||
| 	XNF_TRANSLATE_INTERNAL_NODE_NAMES = ON; | ||||
| 	XNF_EMULATE_TRI_STATE_BUSES = INTERNAL_LOGIC; | ||||
| 	EDIF_OUTPUT_VERSION = 200; | ||||
| 	EDIF_NETLIST_WRITER = OFF; | ||||
| END; | ||||
| 
 | ||||
| CUSTOM_DESIGN_DOCTOR_RULES | ||||
| BEGIN | ||||
| 	MASTER_RESET = OFF; | ||||
| 	EXPANDER_NETWORKS = ON; | ||||
| 	RACE_CONDITIONS = ON; | ||||
| 	DELAY_CHAINS = ON; | ||||
| 	ASYNCHRONOUS_INPUTS = ON; | ||||
| 	PRESET_CLEAR_NETWORKS = ON; | ||||
| 	STATIC_HAZARDS_AFTER_SYNTHESIS = OFF; | ||||
| 	STATIC_HAZARDS_BEFORE_SYNTHESIS = ON; | ||||
| 	MULTI_CLOCK_NETWORKS = ON; | ||||
| 	MULTI_LEVEL_CLOCKS = ON; | ||||
| 	GATED_CLOCKS = ON; | ||||
| 	RIPPLE_CLOCKS = ON; | ||||
| END; | ||||
| 
 | ||||
| SIMULATOR_CONFIGURATION | ||||
| BEGIN | ||||
| 	END_TIME = 5.0us; | ||||
| 	BIDIR_PIN = STRONG; | ||||
| 	START_TIME = 0.0ns; | ||||
| 	GLITCH_TIME = 0.0ns; | ||||
| 	GLITCH = OFF; | ||||
| 	OSCILLATION_TIME = 0.0ns; | ||||
| 	OSCILLATION = OFF; | ||||
| 	CHECK_OUTPUTS = OFF; | ||||
| 	SETUP_HOLD = OFF; | ||||
| 	USE_DEVICE = OFF; | ||||
| END; | ||||
| 
 | ||||
| TIMING_ANALYZER_CONFIGURATION | ||||
| BEGIN | ||||
| 	ANALYSIS_MODE = REGISTERED_PERFORMANCE; | ||||
| 	CUT_OFF_RAM_REGISTERED_WE_PATHS = OFF; | ||||
| 	LIST_PATH_FREQUENCY = 10MHz; | ||||
| 	LIST_PATH_COUNT = 10; | ||||
| 	REGISTERED_PERFORMANCE_OPTIONS = NUMBER_OF_PATHS; | ||||
| 	INCLUDE_PATHS_LESS_THAN_VALUE = 214.7483647ms; | ||||
| 	INCLUDE_PATHS_LESS_THAN = OFF; | ||||
| 	INCLUDE_PATHS_GREATER_THAN_VALUE = 0.0ns; | ||||
| 	INCLUDE_PATHS_GREATER_THAN = OFF; | ||||
| 	DELAY_MATRIX_OPTIONS = SHOW_ALL_PATHS; | ||||
| 	CELL_WIDTH = 18; | ||||
| 	LIST_ONLY_LONGEST_PATH = ON; | ||||
| 	CUT_OFF_CLEAR_AND_PRESET_PATHS = ON; | ||||
| 	CUT_OFF_IO_PIN_FEEDBACK = ON; | ||||
| 	AUTO_RECALCULATE = OFF; | ||||
| END; | ||||
| 
 | ||||
| OTHER_CONFIGURATION | ||||
| BEGIN | ||||
| 	LAST_MAXPLUS2_VERSION = 10.0; | ||||
| 	EXPLICIT_FAMILY = 1; | ||||
| 	ROW_PINS_LCELL_INSERT = ON; | ||||
| 	CARRY_OUT_PINS_LCELL_INSERT = OFF; | ||||
| 	NORMAL_LCELL_INSERT = ON; | ||||
| 	FLEX_10K_52_COLUMNS = 40; | ||||
| 	DEFAULT_9K_EXP_PER_LCELL = 1/2; | ||||
| 	LOCAL_INTERCONNECT_PER_LAB_PERCENT = 100; | ||||
| 	LCELLS_PER_ROW_PERCENT = 100; | ||||
| 	FAN_IN_PER_LCELL_PERCENT = 100; | ||||
| 	EXP_PER_LCELL_PERCENT = 100; | ||||
| 	ROW_PINS_PERCENT = 50; | ||||
| 	ORIGINAL_MAXPLUS2_VERSION = 9.6; | ||||
| 	COMPILER_DATA = "1,1,0,1,0,0,0,1,1,1,1,0,1,1,1"; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.FLEX8000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = ON; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.FLEX8000 | ||||
| BEGIN | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = AUTO; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = AUTO; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.FLEX8000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = MANUAL; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = MANUAL; | ||||
| END; | ||||
| 
 | ||||
							
								
								
									
										27
									
								
								src/altera/quartus/acex/DCP.INC
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/altera/quartus/acex/DCP.INC
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | ||||
| -- Copyright (C) 1988-2000 Altera Corporation | ||||
| -- Any megafunction design, and related net list (encrypted or decrypted), | ||||
| -- support information, device programming or simulation file, and any other | ||||
| -- associated documentation or information provided by Altera or a partner | ||||
| -- under Altera's Megafunction Partnership Program may be used only to | ||||
| -- program PLD devices (but not masked PLD devices) from Altera.  Any other | ||||
| -- use of such megafunction design, net list, support information, device | ||||
| -- programming or simulation file, or any other related documentation or | ||||
| -- information is prohibited for any other purpose, including, but not | ||||
| -- limited to modification, reverse engineering, de-compiling, or use with | ||||
| -- any other silicon devices, unless such use is explicitly licensed under | ||||
| -- a separate agreement with Altera or a megafunction partner.  Title to | ||||
| -- the intellectual property, including patents, copyrights, trademarks, | ||||
| -- trade secrets, or maskworks, embodied in any such megafunction design, | ||||
| -- net list, support information, device programming or simulation file, or | ||||
| -- any other related documentation or information provided by Altera or a | ||||
| -- megafunction partner, remains with Altera, the megafunction partner, or | ||||
| -- their respective licensors.  No other licenses, including any licenses | ||||
| -- needed under any third party's intellectual property, are provided herein. | ||||
| 
 | ||||
| -- MAX+plus II Include File | ||||
| -- Version 10.0 9/14/2000 | ||||
| -- Created: Thu Feb 07 21:14:23 2002 | ||||
| 
 | ||||
| FUNCTION dcp (clk42, /reset, ct[2..0], continue, a[15..0], di[7..0], turbo_hand, /io, /rd, /wr, /mr, /rf, /m1, md[7..0], dos, refresh, g_line[9..0], test_r, acc_on, double_cas, blk_mem) | ||||
|     WITH (UPDATE) | ||||
|     RETURNS (/res, ras, cas, mc_end, mc_begin, mc_type, mc_write, do[7..0], ma[11..0], mca[1..0], clk_z80, turbo, /wait, /iom, /iomm, ra[17..14], page[11..0], type[3..0], cs_rom, cs_ram, v_ram, port, wr_dwg, wr_tm9, wr_awg, rd_kp11, kp11_mix, ga[9..0], graf, sp_scr, sp_sa, scr128, hdd_data, hdd_flip, ram, blk_r, pn4q, dcpp[7..0]); | ||||
							
								
								
									
										119
									
								
								src/altera/quartus/acex/DCP.MIF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								src/altera/quartus/acex/DCP.MIF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,119 @@ | ||||
| DEPTH = 256;	% Memory depth and width are required	% | ||||
| WIDTH = 16;		% Enter a decimal number	% | ||||
| 
 | ||||
| ADDRESS_RADIX = HEX;	% Address and value radixes are optional	% | ||||
| DATA_RADIX = HEX;		% Enter BIN, DEC, HEX, or OCT; unless 	% | ||||
| 						% otherwise specified, radixes = HEX	% | ||||
| 
 | ||||
| -- Specify values for addresses, which can be single address or range | ||||
| 
 | ||||
| CONTENT | ||||
| BEGIN | ||||
| 	[0..FF]	: 1000; | ||||
| 
 | ||||
| 	0		: 1040	% DCP PAGE %; | ||||
| 
 | ||||
| % | ||||
| 	MA[11..0]	bit0 - WG_A5 | ||||
| 				bit1 - WG_A6 | ||||
| 
 | ||||
| 				bit2 - MUX_KP11, 0 - WG,CMOS	1 - KMPS,TM9 | ||||
| 				bit3 - RD/WR	 0 - WRITE		1 - READ | ||||
| 				bit4 - CS_WG93 or WR_TM9 | ||||
| 
 | ||||
| 				bit5 - HDD/CMOS strobe | ||||
| 				bit6,7	- 	00 - FDD/Scr switches | ||||
| 							01 - HDD Switch/ Reset | ||||
| 							10 - HDD1/HDD2 | ||||
| 							11 - CMOS | ||||
| 				bit8 - HDD CS1/CS3 or CMOS data/adr | ||||
| 				bit9,10,11 - HDD_A[2..0] | ||||
| % | ||||
| 	10		: | ||||
| 			7018 % RD WG93 1F,0F % | ||||
| 			7019 % RD WG93 3F % | ||||
| 			701A % RD WG93 5F % | ||||
| 			701B % RD WG93 7F % | ||||
| 
 | ||||
| 			7017 % WR_PDOS FF % | ||||
| 			701F % RD_KEYS/ WR_A20 % | ||||
| 
 | ||||
| 			7023 % Set 720  % | ||||
| 			7027 % Set 1440 %; | ||||
| 
 | ||||
| --	18		: | ||||
| --			1000 % No_function % | ||||
| 
 | ||||
| --	1B		: 1000;	% ISA_A20 WR % | ||||
| 
 | ||||
| 	1C		: 71D8 % CMOS_DAT_RD %; | ||||
| 	1D		: 70D4 % CMOS_ADR_WR %; | ||||
| 	1E		: 71D4 % CMOS_DAT_WR %; | ||||
| 
 | ||||
| 	20		: | ||||
| 			60A8 % HD_CS1 ports % | ||||
| 			62A8 | ||||
| 			64A8 | ||||
| 			66A8 | ||||
| 			68A8 | ||||
| 			6AA8 | ||||
| 			6CA8 | ||||
| 			6EA8 | ||||
| 
 | ||||
| 			6DA8 % HD_CS3 3F6 port % | ||||
| 			6FA8 % HD_CS3 3F7 port % | ||||
| 
 | ||||
| 			7060 % Set HDD1 % | ||||
| 			7064 % Set HDD2 % | ||||
| 
 | ||||
| 			7120 % Set 320 Lines % | ||||
| 			7124 % Set 312 Lines % | ||||
| 
 | ||||
| 			7160 % Soft Reset % | ||||
| 			7164 % ??? %; | ||||
| 
 | ||||
| 
 | ||||
| 	30		: | ||||
| 			7000 % slot 1 ports % | ||||
| 			7001 % slot 2 ports % | ||||
| 			7002 % slot 1 mem   % | ||||
| 			7003 % slot 2 mem   % | ||||
| 			; | ||||
| 
 | ||||
| 	40		: 4000; % kb read % | ||||
| 
 | ||||
| 	52		: 3000;	-- AY_D READ | ||||
| 
 | ||||
| 	58		: 5000;	-- KEMPSTON-Mouse | ||||
| 
 | ||||
| 	[80..FF]:	C000; | ||||
| 
 | ||||
| 	88		:	2000; -- COVOX | ||||
| 	89		:	2000; -- COVOX-Mode | ||||
| 
 | ||||
| 	8C		: 	3000;	-- AY_D READ | ||||
| 	8D		:	2000;	-- AY_A WRITE | ||||
| 	8E		:	2000;	-- AY_D WRITE | ||||
| 
 | ||||
| 	8F		:   2000;	-- port for ROM_WRITE | ||||
| 
 | ||||
| --	80		: 7F 7F 7F 7F 7F 7F 7F 7F % KBD_DAT %; | ||||
| --	90		: 7F % PORT FF %; | ||||
| 
 | ||||
| 	90		: 	3030 3031 2032 2033 2034 2035 2036 2037 | ||||
| 				2038 2039 203A 203B 203C 203D 203E 203F; % RAM PAGES % | ||||
| 
 | ||||
| 	B0		: 	2020 2021 2022 2023 2024 2025 2026 2027 | ||||
| 				2028 2029 202A 202B 202C 202D 202E 202F; % RAM PAGES % | ||||
| 
 | ||||
| 	[C0..CF]: 	2000 % SYS PORTS COPYES %; | ||||
| 
 | ||||
| 	D0		: 	2010 2011 2012 2013 2014 2015 2016 2017 | ||||
| 				2018 2019 201A 201B 201C 201D 201E 201F; % RAM PAGES % | ||||
| 	E0		: 	2041 2041 2041 2041 2041 2041 2041 2041 | ||||
| 				2000 2005 2002 2041 20FF 2000 2000 2041; % ROM PAGES % | ||||
| --	E0		: 41 42 43 44 45 46 47 48 00 05 02 E0 F0 00 00 E8; % ROM PAGES % | ||||
| 	F0		: 	2000 2001 2002 2003 2004 2005 2006 2007 | ||||
| 				2008 2009 200A 200B 200C 200D 200E 200F; % RAM PAGES % | ||||
| 
 | ||||
| END ; | ||||
							
								
								
									
										750
									
								
								src/altera/quartus/acex/DCP.TDF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										750
									
								
								src/altera/quartus/acex/DCP.TDF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,750 @@ | ||||
| 
 | ||||
| 	TITLE "DCP"; | ||||
| 
 | ||||
| PARAMETERS | ||||
| 	( | ||||
| 	UPDATE = 1 | ||||
| 	); | ||||
| 
 | ||||
| INCLUDE "lpm_ram_dp"; | ||||
| -- INCLUDE "DC_PORT2"; | ||||
| 
 | ||||
| SUBDESIGN dcp | ||||
| 	( | ||||
| 	CLK42		: INPUT; | ||||
| 	/RESET		: INPUT; | ||||
| 
 | ||||
| 	/RES		: OUTPUT; | ||||
| 
 | ||||
| 	CT[2..0]	: INPUT; | ||||
| 
 | ||||
| 	CONTINUE	: INPUT; | ||||
| 	RAS			: OUTPUT; | ||||
| 	CAS			: OUTPUT; | ||||
| 	MC_END		: OUTPUT; | ||||
| 	MC_BEGIN	: OUTPUT; | ||||
| 	MC_TYPE		: OUTPUT; | ||||
| 	MC_WRITE	: OUTPUT; | ||||
| 
 | ||||
| 	A[15..0]	: INPUT; | ||||
| 	DI[7..0]	: INPUT; | ||||
| 	DO[7..0]	: OUTPUT; | ||||
| 	MA[11..0]	: OUTPUT; | ||||
| 	MCA[1..0]	: OUTPUT; | ||||
| 
 | ||||
| 	TURBO_HAND	: INPUT; | ||||
| 	CLK_Z80		: OUTPUT; | ||||
| 	TURBO		: OUTPUT; | ||||
| 
 | ||||
| 	/IO			: INPUT; | ||||
| 	/RD			: INPUT; | ||||
| 	/WR			: INPUT; | ||||
| 	/MR			: INPUT; | ||||
| 	/RF			: INPUT; | ||||
| 	/M1			: INPUT; | ||||
| 
 | ||||
| 	/WAIT		: OUTPUT; | ||||
| 	/IOM		: OUTPUT; | ||||
| 	/IOMM		: OUTPUT; | ||||
| 
 | ||||
| 	MD[7..0]	: INPUT; | ||||
| 	RA[17..14]	: OUTPUT; | ||||
| 	PAGE[11..0]	: OUTPUT; | ||||
| 
 | ||||
| 	TYPE[3..0]	: OUTPUT; | ||||
| 
 | ||||
| 	CS_ROM		: OUTPUT; | ||||
| 	CS_RAM		: OUTPUT; | ||||
| 	V_RAM		: OUTPUT; | ||||
| 	PORT		: OUTPUT; | ||||
| --	DOS			: OUTPUT; | ||||
| 	DOS			: INPUT; | ||||
| 
 | ||||
| 	WR_DWG		: OUTPUT; | ||||
| 
 | ||||
| 	WR_TM9		: OUTPUT; | ||||
| 	WR_AWG		: OUTPUT; | ||||
| 	RD_KP11		: OUTPUT; | ||||
| 	KP11_MIX	: OUTPUT; | ||||
| 
 | ||||
| 	REFRESH		: INPUT; | ||||
| 
 | ||||
| 	G_LINE[9..0]: INPUT; | ||||
| 	GA[9..0]	: OUTPUT; | ||||
| 	GRAF		: OUTPUT; | ||||
| 
 | ||||
| 	SP_SCR		: OUTPUT; | ||||
| 	SP_SA		: OUTPUT; | ||||
| 	SCR128		: OUTPUT; | ||||
| 
 | ||||
| 	TEST_R		: INPUT; | ||||
| 
 | ||||
| 	HDD_DATA	: OUTPUT; | ||||
| 	HDD_FLIP	: OUTPUT; | ||||
| 	RAM			: OUTPUT; | ||||
| 	BLK_R		: OUTPUT; | ||||
| 
 | ||||
| 	PN4Q		: OUTPUT; | ||||
| 
 | ||||
| 	ACC_ON		: INPUT;	-- asselerator state - 1 - present | ||||
| 
 | ||||
| 	DCPP[7..0]	: OUTPUT; | ||||
| 
 | ||||
| 	DOUBLE_CAS	: INPUT; | ||||
| 
 | ||||
| 	BLK_MEM		: INPUT; | ||||
| 
 | ||||
| 	) | ||||
| VARIABLE | ||||
| 
 | ||||
| 	CLK21		: NODE; | ||||
| 
 | ||||
| --	DC			: DC_PORT2; | ||||
| 
 | ||||
| 	CLK84		: NODE; | ||||
| 	CLK42X		: NODE; | ||||
| 
 | ||||
| 	CTZ[1..0]	: DFF; | ||||
| 
 | ||||
| --	CT[2..0]	: DFF; | ||||
| 
 | ||||
| 	MEM			: LPM_RAM_DP WITH (LPM_WIDTH=16,LPM_WIDTHAD=8,LPM_FILE="DCP.MIF"); | ||||
| 
 | ||||
| 	D[7..0]		: NODE; | ||||
| 	ADR8_MEM	: NODE; | ||||
| 	MEM_D[15..0]: NODE; | ||||
| 	MEM_WR		: NODE; | ||||
| 
 | ||||
| 	DCP_CX		: NODE; | ||||
| 	SC_LCELL	: NODE; | ||||
| 
 | ||||
| 	PG3[5..0]	: NODE; | ||||
| 	PG0[5..0]	: NODE; | ||||
| 	MPGS[7..0]	: LCELL; | ||||
| 	PGS[7..0]	: DFF; | ||||
| --	PGS[7..0]	: NODE; | ||||
| 
 | ||||
| 	PN[7..0]	: DFFE; | ||||
| 	SC[7..0]	: DFFE; | ||||
| 	SYS			: DFFE; | ||||
| 	CNF[7..0]	: DFFE; | ||||
| 	AROM16		: DFFE; | ||||
| 	TB_SW		: DFFE; | ||||
| 
 | ||||
| 	CASH_ON		: NODE; | ||||
| 	NMI_ENA		: NODE; | ||||
| 
 | ||||
| 	DD[7..0]	: DFFE; | ||||
| 	STARTING	: NODE; | ||||
| 
 | ||||
| --	DOS_		: NODE; | ||||
| --	DOS			: NODE; | ||||
| --	DOS_ON_		: NODE; | ||||
| 
 | ||||
| 	MC_RQ		: NODE; | ||||
| 	MC_END		: DFFE; | ||||
| 	MC_BEGIN	: DFFE; | ||||
| 	MC_TYPE		: DFFE; | ||||
| 	MC_WRITE	: DFFE; | ||||
| 	RAS			: DFFE; | ||||
| 	CAS			: DFFE; | ||||
| 
 | ||||
| 	MA_[11..0]	: DFFE; | ||||
| 	MCA[1..0]	: DFFE; | ||||
| 
 | ||||
| 	/IOM		: DFFE; | ||||
| 	/IOMM		: DFFE; | ||||
| 	/IOMX		: DFFE; | ||||
| 	/IOMY		: DFFE; | ||||
| 
 | ||||
| 	WT_CT[3..0]	: DFFE; | ||||
| 	W_TAB[3..0]	: LCELL; | ||||
| 	HDD_W[3..0]	: NODE; | ||||
| 	/IO_WAIT	: NODE; | ||||
| 	/MR_WAIT	: NODE; | ||||
| 
 | ||||
| 	MEM_RW		: NODE; | ||||
| 	IO_RW		: NODE; | ||||
| 	IO_RWM		: NODE; | ||||
| 
 | ||||
| 	MA_CT[1..0]	: DFFE; | ||||
| 
 | ||||
| 	WR_TM9		: DFFE; | ||||
| 	RD_KP11		: DFFE; | ||||
| 
 | ||||
| 	/RES		: NODE; | ||||
| 
 | ||||
| 	RFT			: DFF; | ||||
| 	RFC			: DFFE; | ||||
| 
 | ||||
| 	GRAF		: DFFE; | ||||
| 	GRAF_X		: NODE; | ||||
| 	GA[9..0]	: LCELL; | ||||
| 
 | ||||
| 	SP_SCR		: LCELL; | ||||
| 	SP_SA		: LCELL; | ||||
| 
 | ||||
| 	HDD_FLIP	: DFFE; | ||||
| 	/IOMZ		: DFFE; | ||||
| 
 | ||||
| 	HDD_DATA	: NODE; | ||||
| 	HDD_ENA		: NODE; | ||||
| 
 | ||||
| 	BLK_C		: NODE; | ||||
| 	/CASH		: NODE; | ||||
| 
 | ||||
| 	DCPP[7..0]	: DFFE; | ||||
| 
 | ||||
| 	PORTS_X		: NODE; | ||||
| 
 | ||||
| 	NO_IO_WAIT	: NODE; | ||||
| 
 | ||||
| 	DCP_RES		: NODE; | ||||
| 
 | ||||
| 	HDD_A[3..0]	: DFF; | ||||
| 
 | ||||
| 	X_ADR[11..0]: LCELL; | ||||
| 	X_MA_[11..0]: LCELL; | ||||
| 
 | ||||
| 	WR_AWGX		: NODE; | ||||
| 
 | ||||
| 	/IOWR		: NODE; | ||||
| 
 | ||||
| 	RA[17..14]	: LCELL; | ||||
| 
 | ||||
| --	SPR_[1..0]	: NODE; | ||||
| 	SPR_[1..0]	: LCELL; | ||||
| 
 | ||||
| 	SYS_ENA		: NODE; | ||||
| 
 | ||||
| BEGIN | ||||
| 
 | ||||
| % | ||||
| 	DC.CLK42	= CLK42; | ||||
| 	DC./RESET	= /RESET; | ||||
| 
 | ||||
| 	DC.A[15..0]	= A[15..0]; | ||||
| 
 | ||||
| 	DC./IO		= /IO; | ||||
| 	DC./WR		= /WR; | ||||
| 	DC./M1		= /M1; | ||||
| 
 | ||||
| --	DC./IOM; | ||||
| --	DC./IOMM; | ||||
| --	DC.DCP[7..0]; | ||||
| 
 | ||||
| 	DC.DOS		= DOS; | ||||
| 	DC.CNF[1..0]= CNF[4..3]; | ||||
| 
 | ||||
| 	DC.SYS		= SYS; | ||||
| 
 | ||||
| --	DC.PORT_X; | ||||
| % | ||||
| 
 | ||||
| 
 | ||||
| --	============================================================== | ||||
| % | ||||
| 	CT[].clk	= CLK42; | ||||
| 
 | ||||
| 	IF CT1 THEN | ||||
| 		CT[1..0] 	= GND; | ||||
| 		CT2			= !CT2; | ||||
| 	ELSE | ||||
| 		CT[1..0]	= CT[1..0]+1; | ||||
| 		CT2			= CT2; | ||||
| 	END IF; | ||||
| % | ||||
| 
 | ||||
| 	/RES	= DFFE(VCC,CLK42,,,CT0); | ||||
| --	============================================================== | ||||
| 
 | ||||
| --	TURBO	= DFFE((TB_SW & TURBO_HAND),CLK42,,/RESET,CLK_Z80); | ||||
| 	TURBO	= DFF(DFFE((TB_SW & TURBO_HAND),CLK_Z80,,/RESET,!/RF),CLK42,,); | ||||
| 
 | ||||
| 	CLK84	= CLK42 xor LCELL(CLK42X); | ||||
| 	CLK42X	= DFF(!CLK42X,CLK84,,); | ||||
| 
 | ||||
| 	CTZ[].clk	= CLK84 xor CTZ1; | ||||
| 	CTZ[]	= CTZ[]+1; | ||||
| 
 | ||||
| --	CLK_Z80	= CTZ1; | ||||
| 
 | ||||
| --	CLK_Z80	= DFF((!CLK21 & TURBO) or (TFF((CT2 & CT1),CLK42,,) & !TURBO),!CLK42,,); | ||||
| --	CLK_Z80	= DFF((CLK21 & TURBO) or (TFF((CT2 & CT1),CLK42,,) & !TURBO),!CLK42,,); | ||||
| 
 | ||||
| 	CLK_Z80	= DFF((CLK21 & TURBO) or (TFF((!CT2 & CT1),CLK42,,) & !TURBO),!CLK42,,); | ||||
| --	CLK_Z80	= DFF((!CLK21 & TURBO) or (TFF((!CT2 & CT1),CLK42,,) & !TURBO),!CLK42,,); | ||||
| 
 | ||||
| --	============================================================== | ||||
| 	CLK21	= DFF((!CT0 xor CT2),CLK42,,); | ||||
| --	=== Adress Multiplexer ======================================= | ||||
| 
 | ||||
| 	MA_[].clk	= CLK42; | ||||
| --	MA_[].ena	= (CT2 xor CT0); | ||||
| 	MA_[].ena	= CLK21; | ||||
| 
 | ||||
| 	WR_TM9.clk	= CLK42; | ||||
| --	WR_TM9.ena	= (CT2 xor CT0); | ||||
| 	WR_TM9.ena	= CLK21; | ||||
| 	WR_TM9.prn	= /RES; | ||||
| 
 | ||||
| 	RD_KP11.clk	= !CLK42; | ||||
| --	RD_KP11.ena	= (CT2 xor CT0); | ||||
| 	RD_KP11.ena	= CLK21; | ||||
| 	RD_KP11.prn	= /RES; | ||||
| 	RD_KP11.d	= !(MA_CT[] == 0); | ||||
| 
 | ||||
| --	WR_AWGX		= DFF((WR_TM9 or CLK21),!CLK42,,); | ||||
| 	WR_AWGX		= DFF(GND,!WR_TM9,,DFF(WR_AWGX,CLK42,,)); | ||||
| 
 | ||||
| --	WR_TM9	= (!MA_CT1 or (!IO_RW & !PORTS_X)); | ||||
| 	WR_TM9	= (!MA_CT1 or (!/IO & !PORTS_X)); | ||||
| 
 | ||||
| 	WR_AWG		= WR_AWGX; | ||||
| 
 | ||||
| 	KP11_MIX	= TFF(VCC,RD_KP11,,); | ||||
| 
 | ||||
| 	WR_DWG		= !MC_BEGIN; | ||||
| --	WR_DWG		= DFF(!MC_BEGIN,CLK42,,); | ||||
| --	WR_DWG		= LCELL(!MC_BEGIN); | ||||
| 
 | ||||
| --	MA_CT[].ena	= (CT2 xor CT0); | ||||
| 	MA_CT[].ena	= CLK21; | ||||
| 	MA_CT[].clk	= CLK42; | ||||
| 
 | ||||
| 	IF !LCELL(CT2 & !CT1) THEN | ||||
| 		MA_CT[] = MA_CT[]+1; | ||||
| 	ELSE | ||||
| 		MA_CT[] = GND; | ||||
| 	END IF; | ||||
| 
 | ||||
| % | ||||
| 	MA_[11..0]	bit0 - WG_A5 | ||||
| 				bit1 - WG_A6 | ||||
| 				bit2 - MUX_KP11, 0 - WG,CMOS	1 - KMPS,TM9 | ||||
| 				bit3 - RD/WR	 0 - WRITE		1 - READ | ||||
| 				bit4 - CS_WG93 or WR_TM9 | ||||
| 				bit5 - HDD/CMOS strobe | ||||
| 				bit7,6	- 	00 - not | ||||
| 							01 - ???? | ||||
| 							10 - HDD1/2 | ||||
| 							11 - CMOS | ||||
| 				bit8 - HDD CS1/CS3 or CMOS data/adr | ||||
| 				bit9,10,11 - HDD_A[2..0] | ||||
| % | ||||
| 	CASE A[15..14] IS | ||||
| 		WHEN 0 => SP_SCR = GND;		SP_SA = GND; | ||||
| 		WHEN 1 => SP_SCR = !GRAF;	SP_SA = GND; | ||||
| 		WHEN 2 => SP_SCR = GND;		SP_SA = PG3[1]; | ||||
| 		WHEN 3 => SP_SCR = !GRAF & LCELL(PG3[] == B"1101X1"); SP_SA = PG3[1]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE GRAF IS | ||||
| 		WHEN 0 => GA[] = (GND,GND,MEM.q[3..0],A[13..10]); | ||||
| --		WHEN 1 => GA[] = (VCC,(G_LINE[8..0] + (B"00000",A[13..10]))); | ||||
| 		WHEN 1 => GA[] = (VCC,G_LINE[8..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE (IO_RW,MA_CT0) IS | ||||
| 		WHEN 0 => X_ADR[] = (GND,CNF4,PN5,DOS,/WR,A15,A14,A[6..5],A13,A7,A[2]); | ||||
| 		WHEN 1 => X_ADR[] = (GND,GND,CNF[4..3],B"01000000"); | ||||
| 		WHEN 2 => X_ADR[] = (GND,GA3,GA[1..0],A[9..2]); | ||||
| 		WHEN 3 => X_ADR[] = (GND,GND,GA[3..2],MEM.q[7..4],GA[7..4]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE IO_RW IS | ||||
| 		WHEN 0 => X_MA_[] = (HDD_A[2..0],MEM.q[8..6],((MEM.q[5..4]) & (!/IOMZ,!/IOMY)),/WR,MEM.q2,A[6..5]); | ||||
| 		WHEN 1 => X_MA_[] = (HDD_A[2..0],B"00000",/WR,VCC,A[6..5]); | ||||
| 	END CASE; | ||||
| % | ||||
| 	CASE MA_CT1 IS | ||||
| --		WHEN 0 => MA_[] = X_ADR[]; | ||||
| 		WHEN 0 => MA_[] = (GND,X_ADR[10..0]); | ||||
| 		WHEN 1 => MA_[] = (HDD_A[2..0],X_MA_[8..4],/WR,X_MA_[3],A[6..5]); | ||||
| 	END CASE; | ||||
| % | ||||
| 
 | ||||
| 	CASE (IO_RW,MA_CT1) IS | ||||
| 		WHEN B"00" => | ||||
| 			MA_[] 	= (X_ADR[11..0]); | ||||
| 		WHEN B"01" => | ||||
| 			MA_[] 	= (HDD_A[2..0],MEM.q[8..6],((MEM.q[5..4]) & (!/IOMZ,!/IOMY)),/WR,MEM.q2,A[6..5]); | ||||
| 		WHEN B"10" => | ||||
| 			MA_[] 	= (X_ADR[11..0]); | ||||
| 		WHEN B"11" => | ||||
| 			MA_[] 	= (HDD_A[2..0],B"00000",/WR,VCC,A[6..5]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MA[]	= MA_[]; | ||||
| 
 | ||||
| 	MCA[].ena	= CT2 & CT1; | ||||
| 	MCA[].clk	= CLK42; | ||||
| 	MCA[]		= A[1..0];	-- adress for CAS | ||||
| 
 | ||||
| 	HDD_A[].clk	= CLK42; | ||||
| 	CASE (A[14],A[2..0]) IS | ||||
| 		WHEN 0 => HDD_A[] = 0; | ||||
| 		WHEN 1 => HDD_A[] = 1; | ||||
| 		WHEN 2 => HDD_A[] = 2; | ||||
| 		WHEN 3 => HDD_A[] = 3; | ||||
| 		WHEN 4 => HDD_A[] = 4; | ||||
| 		WHEN 5 => HDD_A[] = 5; | ||||
| 		WHEN 6 => HDD_A[] = 0; | ||||
| 		WHEN 7 => HDD_A[] = 0; | ||||
| 		WHEN 8 => HDD_A[] = 0; | ||||
| 		WHEN 9 => HDD_A[] = 0; | ||||
| 		WHEN 10 => HDD_A[] = 6; | ||||
| 		WHEN 11 => HDD_A[] = 7; | ||||
| 		WHEN 12 => HDD_A[] = 14; | ||||
| 		WHEN 13 => HDD_A[] = 15; | ||||
| 		WHEN 14 => HDD_A[] = 0; | ||||
| 		WHEN 15 => HDD_A[] = 0; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 
 | ||||
| --	=== Memory Sinchronizer ====================================== | ||||
| 
 | ||||
| 
 | ||||
| %          RF | MEM | RF | ||||
| 		____  |     |   _______ | ||||
| /MR		    \__________/ | ||||
| 			  |     | | ||||
| 		 _____|     |   _______ | ||||
| MC_BEGIN      \________/ | ||||
| 			  |		|__ | ||||
| MC_END  ____________/  \_______ | ||||
| 		______      |__________ | ||||
| MC_TYPE       \_____/ | ||||
| 			  |     | | ||||
| RAS		__    _    ___    __ | ||||
| 		  \__/|\__/ | \__/ | ||||
| 		    ____    _    __ | ||||
| CAS		\__/  | \__/|\__/ | ||||
| 			  |		| | ||||
| 
 | ||||
| % | ||||
| 
 | ||||
| --	MC_RQ		= DFF(((/MR & DFF(/IO,CLK42,,)) or (/RD & /WR)),CLK42,,); | ||||
| 
 | ||||
| --	MC_RQ		= DFF(((/MR & DFFE(GND,!CLK42,,!/IO,CT0)) or (/RD & /WR)),!CLK42,,); | ||||
| 
 | ||||
| --	MC_RQ		= DFF((((/MR or !/RF) & DFF(/IO,CLK42,,/M1)) or (/RD & /WR)),CLK42,,); | ||||
| 
 | ||||
| --	MC_RQ		= DFF((((/MR or !/RF) & IO_RW) or (/RD & /WR)),CLK42,,); | ||||
| 
 | ||||
| --	MC_RQ		= DFF(((MEM_RW & IO_RW) or (/RD & /WR)),CLK42,,); | ||||
| 
 | ||||
| 	MC_RQ		= DFF(((MEM_RW & DFF(DFF(IO_RW,CLK42,,!/IO),CLK42,,!/IO)) or (/RD & /WR)),!CLK42,,); | ||||
| 
 | ||||
| 	MC_BEGIN.clk= CLK42; | ||||
| 	MC_BEGIN.ena= CT1 & CT2; | ||||
| 	MC_BEGIN.d	= MC_RQ; | ||||
| 	MC_BEGIN.prn= !(/MR & /IO); | ||||
| 
 | ||||
| 	MC_END.clk	= CLK42; | ||||
| 	MC_END.d	= VCC; | ||||
| 	MC_END.ena	= (CT0 & CT2) & !MC_BEGIN & CONTINUE & !BLK_C; | ||||
| 	MC_END.clrn	= !(/MR & /IO); | ||||
| 
 | ||||
| 	MC_TYPE.clk	= CLK42; | ||||
| 	MC_TYPE.ena	= CT1 & CT2; | ||||
| 	MC_TYPE.d	= MC_RQ or MC_END; | ||||
| 	MC_TYPE.prn	= /RES; | ||||
| 
 | ||||
| 	MC_WRITE.clk= CLK42; | ||||
| 	MC_WRITE.ena= CT1 & CT2; | ||||
| 	MC_WRITE.d	= MC_RQ or CS_RAM or /WR or MC_END; | ||||
| 	MC_WRITE.prn= /RES; | ||||
| 
 | ||||
| 	RFT.clk		= REFRESH; | ||||
| 	RFT.d		= GND; | ||||
| 	RFT.prn		= RFC; | ||||
| --	RFT.prn		= VCC; | ||||
| 
 | ||||
| 	RFC.clk		= CLK42; | ||||
| 	RFC.d		= !MC_RQ or RFT; | ||||
| --	RFC.d		= !MC_RQ; | ||||
| 	RFC.ena		= CT1 & CT2; | ||||
| 
 | ||||
| 	RAS.ena		= (!(CT1 or (CT0 xor MC_TYPE))) & (!MC_TYPE or !RFC); | ||||
| 	CAS.ena		= (!(CT1 or (CT0 xor !MC_TYPE))) & (!MC_TYPE or !RFC); | ||||
| --	RAS.ena		= (!(CT1 or (CT0 xor MC_TYPE))); | ||||
| --	CAS.ena		= (!(CT1 or (CT0 xor !MC_TYPE))); | ||||
| 
 | ||||
| 	RAS.clk		= CLK42;	CAS.clk		= CLK42; | ||||
| 	RAS.d		= CT2;      CAS.d		= CT2 or BLK_C; | ||||
| 
 | ||||
| 	RAS.prn		= /RES; | ||||
| 	CAS.prn		= /RES; | ||||
| --	CAS.prn		= !BLK_C; | ||||
| 
 | ||||
| --	/MR_WAIT	= (MEM_RW or /CASH or DFF(MC_END,CLK42,!/MR,)) or (!TURBO & !ACC_ON); | ||||
| --	/MR_WAIT	= MC_END or LCELL(MEM_RW or /CASH or (!TURBO & !ACC_ON)); | ||||
| 
 | ||||
| 	/MR_WAIT	= LCELL(MC_END or MEM_RW or /CASH or (!TURBO & !ACC_ON)); | ||||
| 
 | ||||
| --	MEM_RW		= LCELL(/MR or !/RF); | ||||
| 
 | ||||
| 	-- anti gluk! | ||||
| 	MEM_RW		= DFF((!/RF or BLK_MEM),!/MR,,LCELL(MEM_RW or !/MR)); | ||||
| 	IO_RWM		= DFF(!/M1,!/IO,,LCELL(IO_RW or !/IO)); | ||||
| 
 | ||||
| 	IO_RW		= DFF(/IO,CLK42,,/M1); | ||||
| 
 | ||||
| 	/IOMM.clk	= CLK42; | ||||
| --	/IOMM.ena	= CT0 xor CT2; | ||||
| 	/IOMM.ena	= CLK21; | ||||
| 	/IOMM.d		= IO_RW or !MC_END or DFF((WT_CT[] == 0),CLK42,,); | ||||
| 	/IOMM.prn	= /RES; | ||||
| 
 | ||||
| 	/IOMX.clk	= CLK42; | ||||
| --	/IOMX.ena	= CT0 xor CT2; | ||||
| 	/IOMX.ena	= CLK21; | ||||
| 	/IOMX.d		= /IOMM; | ||||
| 	/IOMX.prn	= /RES; | ||||
| 
 | ||||
| 	/IOMY.clk	= CLK42; | ||||
| --	/IOMY.ena	= CT0 xor CT2; | ||||
| 	/IOMY.ena	= CLK21; | ||||
| 	/IOMY.d		= /IOMX or !MC_END or DFF((WT_CT[] == B"000X"),CLK42,,); | ||||
| --	/IOMY.prn	= /RES; | ||||
| 	/IOMY.prn	= PORTS_X; | ||||
| 
 | ||||
| 	PORTS_X		= DFF(((DCPP[7..4] == B"0010") or (DCPP[7..4] == B"0001")),CLK42,,); | ||||
| 
 | ||||
| 	/IOMZ.clk	= CLK42; | ||||
| --	/IOMZ.ena	= CT0 xor CT2; | ||||
| 	/IOMZ.ena	= CLK21; | ||||
| 	/IOMZ.d 	= (A8 xor /RD) or /IOMX or !MC_END or DFF((WT_CT[] == B"000X"),CLK42,,); | ||||
| 	/IOMZ.prn	= PORTS_X; | ||||
| 
 | ||||
| 	HDD_DATA	= DFF((HDD_ENA & DFF((MEM.q[11..8] == 0),CLK42,,) & PORTS_X),CLK42,,); | ||||
| 	HDD_ENA		= (MEM.q[7..5] == B"101"); | ||||
| 
 | ||||
| 	HDD_FLIP.clk	= /IOM; | ||||
| 	HDD_FLIP.ena	= HDD_ENA & DFF((DCPP[] == B"0010XXXX"),CLK42,,); | ||||
| 	HDD_FLIP.d		= !HDD_FLIP & (MEM.q[11..8] == 0); | ||||
| 	HDD_FLIP.clrn	= /RESET & DFF(GND,!DOUBLE_CAS,,HDD_FLIP); | ||||
| 
 | ||||
| 	/IOM.clk	= CLK42; | ||||
| --	/IOM.ena	= CT0 xor CT2; | ||||
| 	/IOM.ena	= CLK21; | ||||
| 	/IOM.d		= (/IOMX & /IOM); | ||||
| 	/IOM.prn	= !/IO & /M1; | ||||
| 
 | ||||
| --	/IO_WAIT	= LCELL(/IO or !/M1 or DFF(DFFE((WT_CT[] == 0),CLK42,,,CLK21),CLK42,,NO_IO_WAIT)); | ||||
| 
 | ||||
| 	/IO_WAIT	= LCELL(IO_RWM or DFF(DFFE((WT_CT[] == 0),CLK42,,,CLK21),CLK42,,NO_IO_WAIT)); | ||||
| 
 | ||||
| 	NO_IO_WAIT	= !DFF(((A[7..0] == B"111XX1XX") & !TURBO & DOS),CLK42,,); | ||||
| --	NO_IO_WAIT	= TURBO; | ||||
| 
 | ||||
| 	WT_CT[].clk	= CLK42; | ||||
| --	WT_CT[].ena	= (CT2 xor CT0); | ||||
| 	WT_CT[].ena	= CLK21; | ||||
| --	WT_CT[].ena	= CT1; | ||||
| 	WT_CT[].prn	= MC_END; | ||||
| 
 | ||||
| 	CASE (/IOM,DFF((WT_CT[] == 0),CLK42,,)) IS | ||||
| 		WHEN B"1X" => WT_CT[].d	= W_TAB[]; | ||||
| 		WHEN B"00" => WT_CT[].d	= WT_CT[]-1; | ||||
| 		WHEN B"01" => WT_CT[].d	= GND; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE (TURBO,MEM.q[14..12]) IS | ||||
| 		WHEN 0 => W_TAB[] = 2;  WHEN  8 => W_TAB[] = 2; | ||||
| 		WHEN 1 => W_TAB[] = 2;  WHEN  9 => W_TAB[] = 2; | ||||
| 		WHEN 2 => W_TAB[] = 1;  WHEN 10 => W_TAB[] = 4; | ||||
| 		WHEN 3 => W_TAB[] = 1;  WHEN 11 => W_TAB[] = 4; | ||||
| 		WHEN 4 => W_TAB[] = 1;  WHEN 12 => W_TAB[] = 7; | ||||
| 		WHEN 5 => W_TAB[] = 2;  WHEN 13 => W_TAB[] = 7; | ||||
| --		WHEN 6 => W_TAB[] = 10; WHEN 14 => W_TAB[] = 10; | ||||
| 		WHEN 6 => W_TAB[] = 7;  WHEN 14 => W_TAB[] = 7; | ||||
| --		WHEN 6 => W_TAB[] = 13; WHEN 14 => W_TAB[] = 13; | ||||
| 		WHEN 7 => W_TAB[] = 10; WHEN 15 => W_TAB[] = 10; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE LCELL(MEM.q[11..8] == 0) IS | ||||
| 		WHEN 0 => HDD_W[] = 10;	-- registers wait | ||||
| 		WHEN 1 => HDD_W[] = 4;  -- datas wait | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	/WAIT		= (/IO_WAIT & /MR_WAIT); | ||||
| 
 | ||||
| 
 | ||||
| --	=== Other Devicese CASHE, ISA, ROM... === | ||||
| 
 | ||||
| 	V_RAM			= PN2;	-- for ORIGINAL Waits | ||||
| 
 | ||||
| IF UPDATE == 1 GENERATE | ||||
| 	-- all ROM/RAM switches in main .tdf | ||||
| 	BLK_R	= SC4; | ||||
| 	-- all cashes in main .tdf | ||||
| 	/CASH 	= GND; | ||||
| 	-- cashe dir in main .tdf | ||||
| 	CASH_ON = GND; | ||||
| ELSE GENERATE | ||||
| 	-- for blk wait | ||||
| 	/CASH = DFF((MEM.q[7..4] == 15),!CLK42,BLK_R,); | ||||
| --	when BLK_R = 1 => Other Devices stay Active! | ||||
| 	BLK_R = DFF(  (LCELL((MEM.q7 & MEM.q6 & RAM) or | ||||
| 				   (MEM.q7 & LCELL(A14 & A15 & SC4))) & | ||||
| 				   !DFF(DFF(MC_RQ,CLK42,,!/MR),CLK42,,!/MR)),!CLK42,!/MR,); | ||||
| 	CASH_ON		= DFFE(A7,(/IO or /RD),/RESET,,DFF((DCPP[] == H"88"),CLK42,,)); | ||||
| END GENERATE; | ||||
| 
 | ||||
| 	RAM	= !LCELL(A14 or A15 or (SC0 & SYS)); | ||||
| 
 | ||||
| 	CS_ROM	= LCELL(/MR or !RAM or !/RF); | ||||
| 	CS_RAM	= LCELL(/MR or  RAM or !/RF); | ||||
| 
 | ||||
| -- ============================================== | ||||
| 
 | ||||
| --	graf screen enable for pages | ||||
| 
 | ||||
| 	GRAF_X		= LCELL(MEM.q[7..4] == B"0101"); | ||||
| 
 | ||||
| 	GRAF.clk	= CLK42; | ||||
| 	GRAF.ena	= (CT0 & CT2); | ||||
| 	GRAF.d 		= GRAF_X; | ||||
| 
 | ||||
| 	BLK_C 		= LCELL((GRAF_X xor GRAF) & !MC_TYPE); | ||||
| 
 | ||||
| ----------------------------------------- | ||||
| 
 | ||||
| 	SCR128		= PN3; | ||||
| 
 | ||||
| 	D[]			= DI[]; | ||||
| 	-- when not IO - reset DCPP! | ||||
| 
 | ||||
| 	DCP_RES		= DFF((STARTING & !/IO & /M1),CLK42,,); | ||||
| 
 | ||||
| 	DCPP[].clk	= CLK42; | ||||
| 	DCPP[].ena	= !DFF(MC_END,CLK42,,); | ||||
| 	DCPP[].clrn	= MC_END & DCP_RES;	-- not in/out when START | ||||
| 	DCPP[].d	= MD[]; | ||||
| 
 | ||||
| --	DD[].clk	= !CLK42; | ||||
| --	DD[].ena	= !DFF(MC_END,!CLK42,,); | ||||
| 
 | ||||
| 	DD[].clk	= CLK42; | ||||
| 	DD[].ena	= !DFF(MC_END,CLK42,,); | ||||
| 	DD[].clrn	= MC_END & DCP_RES; | ||||
| 
 | ||||
| 	CASE LCELL(MD[7..4] == 15) IS | ||||
| 		WHEN 0 => DD[].d = MD[]; | ||||
| 		WHEN 1 => DD[].d = (VCC,VCC,PG3[]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	=== Port Decoder ============================================= | ||||
| 
 | ||||
| 	DCP_CX		= (DCPP[] == B"1100XXXX"); | ||||
| 	SYS_ENA		= DFF((DCP_CX & (DCPP[] == B"XXXXX110")),CLK42,,); | ||||
| 
 | ||||
| --	/IOWR		= DFF((/WR or /IO),CLK42,,!/IO); | ||||
| 	/IOWR		= LCELL(/IO or /WR or !/M1); | ||||
| 
 | ||||
|     CNF[].ena 	= SYS_ENA; CNF[].d  = (DI[] & DI2) or (CNF[] & !DI2); | ||||
| 	AROM16.ena 	= SYS_ENA; AROM16.d = (DI0 & !DI1) or (AROM16 & DI1); | ||||
| 	TB_SW.ena 	= SYS_ENA; TB_SW.d  = (DI0 &  DI1) or (TB_SW & !DI1); | ||||
| 	SYS.ena 	= SYS_ENA; SYS.d    = !A6; | ||||
| 
 | ||||
| 	SC[].ena 	= DFF((DCP_CX & (DCPP[] == B"XXXXX000")),CLK42,,)	;SC[].d   = DI[]; | ||||
| 	PN[].ena 	= DFF((DCP_CX & (DCPP[] == B"XXXXX001")),CLK42,,)	;PN[].d	  = DI[]; | ||||
| 
 | ||||
| 	TB_SW.clk	= /IOWR; | ||||
| 	AROM16.clk	= /IOWR; | ||||
| 	PN[].clk	= /IOWR; | ||||
| 	SC[].clk	= /IOWR; | ||||
| 	SYS.clk		= /IOWR; | ||||
| 	CNF[].clk	= /IOWR; | ||||
| 
 | ||||
| 	AROM16.clrn		= /RESET; | ||||
| 	TB_SW.prn		= /RESET; | ||||
| 	SYS.clrn		= /RESET; | ||||
| 	CNF[].clrn		= /RESET; | ||||
| 
 | ||||
| 	SC[].clrn		= /RESET & !CNF6;	-- Scorpion-OFF | ||||
| 
 | ||||
| 	PN[5..0].clrn	= /RESET & !CNF5;	-- reset PN5 | ||||
| 	PN[7..5].clrn	= /RESET & CNF7;	-- set Pentagon-512 | ||||
| 
 | ||||
| 	PN4Q	= PN4; | ||||
| 
 | ||||
| --	==================================== | ||||
| 
 | ||||
| --	********** Pages decoder *********** | ||||
| 
 | ||||
| --	==================================== | ||||
| 
 | ||||
| 	PG3[]		= (!PN7,VCC,LCELL((SC4 & !CNF7) or (CNF7 & PN6)),PN[2..0]); | ||||
| 
 | ||||
| --	SC0,SC1,SYS,DOS,PN4,AROM16,CASH_ON,NMI_ENA | ||||
| 	PG0[]		= (VCC,GND, | ||||
| 				  LCELL(SC0 or !SYS or CASH_ON or !NMI_ENA), | ||||
| 				  LCELL(((AROM16 & !(SC0 & SYS)) or (CASH_ON & NMI_ENA))), | ||||
| 				  LCELL((SPR_1 & SC_LCELL) or !SYS or !NMI_ENA), | ||||
| 				  LCELL((SPR_0 & SC_LCELL) or !SYS or !NMI_ENA)); | ||||
| 
 | ||||
| --	SC_LCELL	= LCELL(!(SC0 & SYS) & !CASH_ON); | ||||
| 	SC_LCELL	= (!(SC0 & SYS) & !CASH_ON); | ||||
| 
 | ||||
| 	NMI_ENA		= VCC; | ||||
| 
 | ||||
| 	SPR_[]	= !SC1 & (DOS,(PN4 or !DOS));	-- expansion/dos/basic128/basic48 | ||||
| 
 | ||||
| 	CASE (TEST_R,SYS) IS | ||||
| 		WHEN B"X0" => RA[] = (!AROM16,B"000");		-- system 0/1 | ||||
| 		WHEN B"01" => RA[] = (!AROM16,GND,SPR_[]);	-- expansion/dos/basic | ||||
| 		WHEN B"11" => RA[] = (B"001",SPR_0);		-- test | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	==================================== | ||||
| 
 | ||||
| 	CASE A[15..14] IS | ||||
| 		WHEN 0 => MPGS[5..0] = PG0[]; | ||||
| 		WHEN 1 => MPGS[5..0] = B"101001"; 	%H"E9"% | ||||
| 		WHEN 2 => MPGS[5..0] = B"101010"; 	%H"EA"% | ||||
| 		WHEN 3 => MPGS[5..0] = PG3[]; | ||||
| 	END CASE; | ||||
| 	MPGS[7..6]	= VCC; | ||||
| 
 | ||||
| --	STARTING = DFF(GND,VCC,/RESET,(/IO or /RD)); | ||||
| 	STARTING = LCELL(/RESET & (STARTING or !(/IO or /RD))); | ||||
| 
 | ||||
| 	PGS[].clk	= !CLK42; | ||||
| 	CASE (LCELL(/IO & !(A14 & A15 & !STARTING)),MC_END) IS | ||||
| 		WHEN B"1X" => PGS[]	= (VCC,VCC,MPGS[5..0]); | ||||
| 		WHEN B"01" => PGS[] = DD[]; | ||||
| 		WHEN B"00" => PGS[] = GND; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MEM_WR	= DFFE((DCPP[7] & DCPP[6] & STARTING & DFF(DFF((MC_END & !/WR),CLK42,,),CLK42,,)),CLK42,!/IO,,CT1); | ||||
| 
 | ||||
| 	ADR8_MEM	= GND; | ||||
| 
 | ||||
| 	CASE ADR8_MEM IS | ||||
| 		WHEN 1 => MEM_D[]	= (DI[],MEM.q[7..0]);	DO[] = MEM.q[15..8]; | ||||
| 		WHEN 0 => MEM_D[]	= (MEM.q[15..8],DI[]);	DO[] = MEM.q[7..0]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MEM.wren 		= MEM_WR; | ||||
| 	MEM.data[] 		= MEM_D[]; | ||||
| 	MEM.wraddress[] = PGS[]; | ||||
| 	MEM.wrclock		= CLK42; | ||||
| 	MEM.wrclken		= VCC; | ||||
| 	MEM.rden		= VCC; | ||||
| 	MEM.rdaddress[] = PGS[]; | ||||
| 	MEM.rdclock		= CLK42; | ||||
| 	MEM.rdclken		= VCC; | ||||
| --					= MEM.q[]; | ||||
| 
 | ||||
| 	PAGE[]			= MEM.q[11..0]; | ||||
| 	TYPE[]			= MEM.q[15..12]; | ||||
| 
 | ||||
| 
 | ||||
| 	PORT			= !(MEM.q[15..12] == 0) or /IO or (/RD & /WR); | ||||
| 
 | ||||
| END; | ||||
| 
 | ||||
| 
 | ||||
							
								
								
									
										568
									
								
								src/altera/quartus/acex/KBD.ACF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										568
									
								
								src/altera/quartus/acex/KBD.ACF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,568 @@ | ||||
| -- | ||||
| --  Copyright (C) 1988-2000 Altera Corporation | ||||
| --  Any megafunction design, and related net list (encrypted or decrypted), | ||||
| --  support information, device programming or simulation file, and any other | ||||
| --  associated documentation or information provided by Altera or a partner | ||||
| --  under Altera's Megafunction Partnership Program may be used only to | ||||
| --  program PLD devices (but not masked PLD devices) from Altera.  Any other | ||||
| --  use of such megafunction design, net list, support information, device | ||||
| --  programming or simulation file, or any other related documentation or | ||||
| --  information is prohibited for any other purpose, including, but not | ||||
| --  limited to modification, reverse engineering, de-compiling, or use with | ||||
| --  any other silicon devices, unless such use is explicitly licensed under | ||||
| --  a separate agreement with Altera or a megafunction partner.  Title to | ||||
| --  the intellectual property, including patents, copyrights, trademarks, | ||||
| --  trade secrets, or maskworks, embodied in any such megafunction design, | ||||
| --  net list, support information, device programming or simulation file, or | ||||
| --  any other related documentation or information provided by Altera or a | ||||
| --  megafunction partner, remains with Altera, the megafunction partner, or | ||||
| --  their respective licensors.  No other licenses, including any licenses | ||||
| --  needed under any third party's intellectual property, are provided herein. | ||||
| -- | ||||
| CHIP kbd | ||||
| BEGIN | ||||
| 	DEVICE = EP1K30QC208-3; | ||||
| END; | ||||
| 
 | ||||
| DEFAULT_DEVICES | ||||
| BEGIN | ||||
| 	AUTO_DEVICE = EP1K100FC484-1; | ||||
| 	AUTO_DEVICE = EP1K100FC256-1; | ||||
| 	AUTO_DEVICE = EP1K100QC208-1; | ||||
| 	AUTO_DEVICE = EP1K50FC484-1; | ||||
| 	AUTO_DEVICE = EP1K50FC256-1; | ||||
| 	AUTO_DEVICE = EP1K50QC208-1; | ||||
| 	AUTO_DEVICE = EP1K50TC144-1; | ||||
| 	AUTO_DEVICE = EP1K30FC256-1; | ||||
| 	AUTO_DEVICE = EP1K30QC208-1; | ||||
| 	AUTO_DEVICE = EP1K30TC144-1; | ||||
| 	ASK_BEFORE_ADDING_EXTRA_DEVICES = ON; | ||||
| END; | ||||
| 
 | ||||
| TIMING_POINT | ||||
| BEGIN | ||||
| 	DEVICE_FOR_TIMING_SYNTHESIS = EP1K30QC208-3; | ||||
| 	FREQUENCY = 100MHz; | ||||
| 	MAINTAIN_STABLE_SYNTHESIS = OFF; | ||||
| 	CUT_ALL_CLEAR_PRESET = ON; | ||||
| 	CUT_ALL_BIDIR = ON; | ||||
| END; | ||||
| 
 | ||||
| IGNORED_ASSIGNMENTS | ||||
| BEGIN | ||||
| 	FIT_IGNORE_TIMING = OFF; | ||||
| 	DEMOTE_SPECIFIC_LCELL_ASSIGNMENTS_TO_LAB_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LOCAL_ROUTING_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_DEVICE_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LC_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_PIN_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_CHIP_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_TIMING_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LOGIC_OPTION_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_CLIQUE_ASSIGNMENTS = OFF; | ||||
| END; | ||||
| 
 | ||||
| GLOBAL_PROJECT_DEVICE_OPTIONS | ||||
| BEGIN | ||||
| 	MAX7000B_ENABLE_VREFB = OFF; | ||||
| 	MAX7000B_ENABLE_VREFA = OFF; | ||||
| 	MAX7000B_VCCIO_IOBANK2 = 3.3V; | ||||
| 	MAX7000B_VCCIO_IOBANK1 = 3.3V; | ||||
| 	CONFIG_EPROM_PULLUP_RESISTOR = ON; | ||||
| 	CONFIG_EPROM_USER_CODE = FFFFFFFF; | ||||
| 	FLEX_CONFIGURATION_EPROM = AUTO; | ||||
| 	MAX7000AE_ENABLE_JTAG = ON; | ||||
| 	MAX7000AE_USER_CODE = FFFFFFFF; | ||||
| 	FLEX6000_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = OFF; | ||||
| 	FLEX10KA_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = ON; | ||||
| 	FLEX10K_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = OFF; | ||||
| 	FLEX6000_ENABLE_JTAG = OFF; | ||||
| 	CONFIG_SCHEME_FLEX_6000 = PASSIVE_SERIAL; | ||||
| 	MULTIVOLT_IO = OFF; | ||||
| 	MAX7000S_ENABLE_JTAG = ON; | ||||
| 	FLEX10K_ENABLE_LOCK_OUTPUT = OFF; | ||||
| 	MAX7000S_USER_CODE = FFFF; | ||||
| 	CONFIG_SCHEME_10K = PASSIVE_SERIAL; | ||||
| 	FLEX10K_JTAG_USER_CODE = 7F; | ||||
| 	ENABLE_INIT_DONE_OUTPUT = OFF; | ||||
| 	ENABLE_CHIP_WIDE_OE = OFF; | ||||
| 	ENABLE_CHIP_WIDE_RESET = OFF; | ||||
| 	nCEO = UNRESERVED; | ||||
| 	CLKUSR = UNRESERVED; | ||||
| 	ADD17 = UNRESERVED; | ||||
| 	ADD16 = UNRESERVED; | ||||
| 	ADD15 = UNRESERVED; | ||||
| 	ADD14 = UNRESERVED; | ||||
| 	ADD13 = UNRESERVED; | ||||
| 	ADD0_TO_ADD12 = UNRESERVED; | ||||
| 	SDOUT = RESERVED_DRIVES_OUT; | ||||
| 	RDCLK = UNRESERVED; | ||||
| 	RDYnBUSY = UNRESERVED; | ||||
| 	nWS_nRS_nCS_CS = UNRESERVED; | ||||
| 	DATA1_TO_DATA7 = UNRESERVED; | ||||
| 	DATA0 = RESERVED_TRI_STATED; | ||||
| 	FLEX8000_ENABLE_JTAG = OFF; | ||||
| 	CONFIG_SCHEME = ACTIVE_SERIAL; | ||||
| 	DISABLE_TIME_OUT = OFF; | ||||
| 	ENABLE_DCLK_OUTPUT = OFF; | ||||
| 	RELEASE_CLEARS = OFF; | ||||
| 	AUTO_RESTART = OFF; | ||||
| 	USER_CLOCK = OFF; | ||||
| 	SECURITY_BIT = OFF; | ||||
| 	RESERVED_PINS_PERCENT = 0; | ||||
| 	RESERVED_LCELLS_PERCENT = 0; | ||||
| END; | ||||
| 
 | ||||
| GLOBAL_PROJECT_SYNTHESIS_ASSIGNMENT_OPTIONS | ||||
| BEGIN | ||||
| 	STYLE = FAST; | ||||
| 	MULTI_LEVEL_SYNTHESIS_MAX9000 = ON; | ||||
| 	AUTO_IMPLEMENT_IN_EAB = OFF; | ||||
| 	AUTO_OPEN_DRAIN_PINS = ON; | ||||
| 	ONE_HOT_STATE_MACHINE_ENCODING = OFF; | ||||
| 	AUTO_REGISTER_PACKING = OFF; | ||||
| 	DEVICE_FAMILY = ACEX1K; | ||||
| 	AUTO_FAST_IO = OFF; | ||||
| 	AUTO_GLOBAL_OE = ON; | ||||
| 	AUTO_GLOBAL_PRESET = ON; | ||||
| 	AUTO_GLOBAL_CLEAR = ON; | ||||
| 	AUTO_GLOBAL_CLOCK = ON; | ||||
| 	MULTI_LEVEL_SYNTHESIS_MAX5000_7000 = OFF; | ||||
| 	OPTIMIZE_FOR_SPEED = 5; | ||||
| END; | ||||
| 
 | ||||
| COMPILER_PROCESSING_CONFIGURATION | ||||
| BEGIN | ||||
| 	USE_QUARTUS_FITTER = ON; | ||||
| 	PRESERVE_ALL_NODE_NAME_SYNONYMS = OFF; | ||||
| 	FITTER_SETTINGS = NORMAL; | ||||
| 	SMART_RECOMPILE = OFF; | ||||
| 	GENERATE_AHDL_TDO_FILE = OFF; | ||||
| 	RPT_FILE_USER_ASSIGNMENTS = ON; | ||||
| 	RPT_FILE_LCELL_INTERCONNECT = ON; | ||||
| 	RPT_FILE_HIERARCHY = ON; | ||||
| 	RPT_FILE_EQUATIONS = ON; | ||||
| 	LINKED_SNF_EXTRACTOR = OFF; | ||||
| 	OPTIMIZE_TIMING_SNF = OFF; | ||||
| 	TIMING_SNF_EXTRACTOR = ON; | ||||
| 	FUNCTIONAL_SNF_EXTRACTOR = OFF; | ||||
| 	DESIGN_DOCTOR_RULES = EPLD; | ||||
| 	DESIGN_DOCTOR = OFF; | ||||
| END; | ||||
| 
 | ||||
| COMPILER_INTERFACES_CONFIGURATION | ||||
| BEGIN | ||||
| 	NETLIST_OUTPUT_TIME_SCALE = 0.1ns; | ||||
| 	EDIF_INPUT_SHOW_LMF_MAPPING_MESSAGES = OFF; | ||||
| 	EDIF_BUS_DELIMITERS = []; | ||||
| 	EDIF_FLATTEN_BUS = OFF; | ||||
| 	EDIF_OUTPUT_FORCE_0NS_DELAYS = OFF; | ||||
| 	EDIF_OUTPUT_INCLUDE_SPECIAL_PRIM = OFF; | ||||
| 	EDIF_OUTPUT_MAP_ILLEGAL_CHAR = OFF; | ||||
| 	EDIF_OUTPUT_DELAY_CONSTRUCTS = EDO_FILE; | ||||
| 	EDIF_OUTPUT_USE_EDC = OFF; | ||||
| 	EDIF_INPUT_USE_LMF2 = OFF; | ||||
| 	EDIF_INPUT_USE_LMF1 = OFF; | ||||
| 	EDIF_OUTPUT_GND = GND; | ||||
| 	EDIF_OUTPUT_VCC = VCC; | ||||
| 	EDIF_INPUT_GND = GND; | ||||
| 	EDIF_INPUT_VCC = VCC; | ||||
| 	EDIF_OUTPUT_EDC_FILE = *.edc; | ||||
| 	EDIF_INPUT_LMF2 = *.lmf; | ||||
| 	EDIF_INPUT_LMF1 = *.lmf; | ||||
| 	VHDL_GENERATE_CONFIGURATION_DECLARATION = OFF; | ||||
| 	VHDL_OUTPUT_DELAY_CONSTRUCTS = VHO_FILE; | ||||
| 	VERILOG_OUTPUT_DELAY_CONSTRUCTS = VO_FILE; | ||||
| 	VHDL_FLATTEN_BUS = OFF; | ||||
| 	VERILOG_FLATTEN_BUS = OFF; | ||||
| 	EDIF_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VHDL_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VERILOG_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VERILOG_OUTPUT_MAP_ILLEGAL_CHAR = OFF; | ||||
| 	VHDL_WRITER_VERSION = VHDL87; | ||||
| 	VHDL_READER_VERSION = VHDL87; | ||||
| 	SYNOPSYS_MAPPING_EFFORT = MEDIUM; | ||||
| 	SYNOPSYS_BOUNDARY_OPTIMIZATION = OFF; | ||||
| 	SYNOPSYS_HIERARCHICAL_COMPILATION = ON; | ||||
| 	SYNOPSYS_DESIGNWARE = OFF; | ||||
| 	SYNOPSYS_COMPILER = DESIGN; | ||||
| 	USE_SYNOPSYS_SYNTHESIS = OFF; | ||||
| 	VHDL_NETLIST_WRITER = OFF; | ||||
| 	VERILOG_NETLIST_WRITER = OFF; | ||||
| 	XNF_GENERATE_AHDL_TDX_FILE = ON; | ||||
| 	XNF_TRANSLATE_INTERNAL_NODE_NAMES = ON; | ||||
| 	XNF_EMULATE_TRI_STATE_BUSES = INTERNAL_LOGIC; | ||||
| 	EDIF_OUTPUT_VERSION = 200; | ||||
| 	EDIF_NETLIST_WRITER = OFF; | ||||
| END; | ||||
| 
 | ||||
| CUSTOM_DESIGN_DOCTOR_RULES | ||||
| BEGIN | ||||
| 	MASTER_RESET = OFF; | ||||
| 	EXPANDER_NETWORKS = ON; | ||||
| 	RACE_CONDITIONS = ON; | ||||
| 	DELAY_CHAINS = ON; | ||||
| 	ASYNCHRONOUS_INPUTS = ON; | ||||
| 	PRESET_CLEAR_NETWORKS = ON; | ||||
| 	STATIC_HAZARDS_AFTER_SYNTHESIS = OFF; | ||||
| 	STATIC_HAZARDS_BEFORE_SYNTHESIS = ON; | ||||
| 	MULTI_CLOCK_NETWORKS = ON; | ||||
| 	MULTI_LEVEL_CLOCKS = ON; | ||||
| 	GATED_CLOCKS = ON; | ||||
| 	RIPPLE_CLOCKS = ON; | ||||
| END; | ||||
| 
 | ||||
| SIMULATOR_CONFIGURATION | ||||
| BEGIN | ||||
| 	BIDIR_PIN = STRONG; | ||||
| 	END_TIME = 0.0ns; | ||||
| 	START_TIME = 0.0ns; | ||||
| 	GLITCH_TIME = 0.0ns; | ||||
| 	GLITCH = OFF; | ||||
| 	OSCILLATION_TIME = 0.0ns; | ||||
| 	OSCILLATION = OFF; | ||||
| 	CHECK_OUTPUTS = OFF; | ||||
| 	SETUP_HOLD = OFF; | ||||
| 	USE_DEVICE = OFF; | ||||
| END; | ||||
| 
 | ||||
| TIMING_ANALYZER_CONFIGURATION | ||||
| BEGIN | ||||
| 	ANALYSIS_MODE = REGISTERED_PERFORMANCE; | ||||
| 	CUT_OFF_RAM_REGISTERED_WE_PATHS = OFF; | ||||
| 	LIST_PATH_FREQUENCY = 10MHz; | ||||
| 	LIST_PATH_COUNT = 10; | ||||
| 	REGISTERED_PERFORMANCE_OPTIONS = NUMBER_OF_PATHS; | ||||
| 	INCLUDE_PATHS_LESS_THAN_VALUE = 214.7483647ms; | ||||
| 	INCLUDE_PATHS_LESS_THAN = OFF; | ||||
| 	INCLUDE_PATHS_GREATER_THAN_VALUE = 0.0ns; | ||||
| 	INCLUDE_PATHS_GREATER_THAN = OFF; | ||||
| 	DELAY_MATRIX_OPTIONS = SHOW_ALL_PATHS; | ||||
| 	CELL_WIDTH = 18; | ||||
| 	LIST_ONLY_LONGEST_PATH = ON; | ||||
| 	CUT_OFF_CLEAR_AND_PRESET_PATHS = ON; | ||||
| 	CUT_OFF_IO_PIN_FEEDBACK = ON; | ||||
| 	AUTO_RECALCULATE = OFF; | ||||
| END; | ||||
| 
 | ||||
| OTHER_CONFIGURATION | ||||
| BEGIN | ||||
| 	LAST_MAXPLUS2_VERSION = 10.0; | ||||
| 	EXPLICIT_FAMILY = 1; | ||||
| 	ROW_PINS_LCELL_INSERT = ON; | ||||
| 	CARRY_OUT_PINS_LCELL_INSERT = OFF; | ||||
| 	NORMAL_LCELL_INSERT = ON; | ||||
| 	FLEX_10K_52_COLUMNS = 40; | ||||
| 	DEFAULT_9K_EXP_PER_LCELL = 1/2; | ||||
| 	LOCAL_INTERCONNECT_PER_LAB_PERCENT = 100; | ||||
| 	LCELLS_PER_ROW_PERCENT = 100; | ||||
| 	FAN_IN_PER_LCELL_PERCENT = 100; | ||||
| 	EXP_PER_LCELL_PERCENT = 100; | ||||
| 	ROW_PINS_PERCENT = 50; | ||||
| 	ORIGINAL_MAXPLUS2_VERSION = 9.6; | ||||
| 	COMPILER_DATA = "1,1,0,1,0,0,0,1,1,1,1,0,1,1,1"; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.FLEX8000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = ON; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.FLEX8000 | ||||
| BEGIN | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = AUTO; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = AUTO; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.FLEX8000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = MANUAL; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = MANUAL; | ||||
| END; | ||||
| 
 | ||||
							
								
								
									
										26
									
								
								src/altera/quartus/acex/KBD.INC
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/altera/quartus/acex/KBD.INC
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| -- Copyright (C) 1988-2000 Altera Corporation | ||||
| -- Any megafunction design, and related net list (encrypted or decrypted), | ||||
| -- support information, device programming or simulation file, and any other | ||||
| -- associated documentation or information provided by Altera or a partner | ||||
| -- under Altera's Megafunction Partnership Program may be used only to | ||||
| -- program PLD devices (but not masked PLD devices) from Altera.  Any other | ||||
| -- use of such megafunction design, net list, support information, device | ||||
| -- programming or simulation file, or any other related documentation or | ||||
| -- information is prohibited for any other purpose, including, but not | ||||
| -- limited to modification, reverse engineering, de-compiling, or use with | ||||
| -- any other silicon devices, unless such use is explicitly licensed under | ||||
| -- a separate agreement with Altera or a megafunction partner.  Title to | ||||
| -- the intellectual property, including patents, copyrights, trademarks, | ||||
| -- trade secrets, or maskworks, embodied in any such megafunction design, | ||||
| -- net list, support information, device programming or simulation file, or | ||||
| -- any other related documentation or information provided by Altera or a | ||||
| -- megafunction partner, remains with Altera, the megafunction partner, or | ||||
| -- their respective licensors.  No other licenses, including any licenses | ||||
| -- needed under any third party's intellectual property, are provided herein. | ||||
| 
 | ||||
| -- MAX+plus II Include File | ||||
| -- Version 10.0 9/14/2000 | ||||
| -- Created: Thu May 03 21:43:31 2001 | ||||
| 
 | ||||
| FUNCTION kbd (clk42, clk_k, kbd_cc, kbd_dd, /rf, /io, /iom, /m1, a[15..8], ena, int_ena) | ||||
|     RETURNS (kbo[7..0], kb_reset, kb_f12, kb_ctrl, kb_alt, kb_sh, int); | ||||
							
								
								
									
										180
									
								
								src/altera/quartus/acex/KBD.TDF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										180
									
								
								src/altera/quartus/acex/KBD.TDF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,180 @@ | ||||
| 
 | ||||
| 	TITLE "ZX-Keyboard"; | ||||
| 
 | ||||
| INCLUDE "lpm_ram_dq"; | ||||
| 
 | ||||
| SUBDESIGN kbd | ||||
| 	( | ||||
| 	CLK42		: INPUT;	-- full sinc 42MHz | ||||
| 	CLK_K		: INPUT;	-- sinc input 15KHz | ||||
| 	KBD_CC		: INPUT;	-- sinc KBD | ||||
| 	KBD_DD		: INPUT;	-- data KBD | ||||
| 
 | ||||
| 	/RF			: INPUT;	-- /rfsh | ||||
| 	/IO			: INPUT;	-- /iorq | ||||
| 	/IOM		: INPUT; | ||||
| 	/M1			: INPUT; | ||||
| 
 | ||||
| 	A[15..8]	: INPUT; | ||||
| 
 | ||||
| 	KBO[7..0]	: OUTPUT;	-- output | ||||
| 
 | ||||
| 	KB_RESET	: OUTPUT; | ||||
| 
 | ||||
| 	KB_F12		: OUTPUT; | ||||
| 	KB_CTRL		: OUTPUT; | ||||
| 	KB_ALT		: OUTPUT; | ||||
| 	KB_SH		: OUTPUT; | ||||
| 
 | ||||
| 	ENA			: INPUT; | ||||
| 	INT_ENA		: INPUT; | ||||
| 	INT			: OUTPUT; | ||||
| 	) | ||||
| VARIABLE | ||||
| 
 | ||||
| 	KB_CT[2..0]		: DFF; | ||||
| 	KB_D[10..0]		: DFF; | ||||
| 	KB_OFF			: DFFE; | ||||
| 
 | ||||
| 	KB_EXT			: DFF; | ||||
| 	KB_ALT			: DFF; | ||||
| 	KB_CTRL			: DFF; | ||||
| 	KB_SH			: DFF; | ||||
| 
 | ||||
| 	KB_CTRL_X		: NODE; | ||||
| 	KB_ALT_X		: NODE; | ||||
| 	KB_SH_X			: NODE; | ||||
| 	KB_XXX			: NODE; | ||||
| 	KB_RESET		: DFF; | ||||
| 	RXA[1..0]		: DFFE; | ||||
| 
 | ||||
| 	K_CLK			: NODE; | ||||
| 	KA[15..0]		: NODE; | ||||
| 	KB_MA[2..0]		: DFF; | ||||
| 	KB_MXA			: NODE; | ||||
| 	KDCA[2..0]		: LCELL; | ||||
| 
 | ||||
| 	KDD[7..0]		: DFF; | ||||
| 	KBD[5..0]		: DFF; | ||||
| 	KD[7..0]		: NODE; | ||||
| 	KDX[5..0]		: DFF; | ||||
| 	KDXX[5..0]		: DFF; | ||||
| 	WR_KBD			: NODE; | ||||
| 	KB_OFL			: NODE; | ||||
| 
 | ||||
| BEGIN | ||||
| 
 | ||||
| 	INT		= DFF((KB_CT[] == 0),CLK42,,INT_ENA); | ||||
| 
 | ||||
| --	KB_CT[].clk	= DFF(CLK_K,CLK42,,); | ||||
| 	KB_CT[].clk	= CLK_K; | ||||
| 	KB_CT[].prn	= DFF(KBD_CC,CLK42,,); | ||||
| 
 | ||||
| 	CASE KB_CT[] IS | ||||
| 		WHEN 0 => KB_CT[].d	= GND; | ||||
| 		WHEN 1,2,3,4,5,6,7 => KB_CT[].d	= KB_CT[] - 1; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	KB_D[].clk	= DFF(!KBD_CC,CLK42,,); | ||||
| 	KB_D[].d	= (KBD_DD,KB_D[10..1]); | ||||
| 
 | ||||
| 	KB_OFF.ena	= !KB_EXT; | ||||
| 	KB_OFF.clk	= DFF((KB_CT[] == 0),CLK42,,); | ||||
| 	KB_OFF.d	= KB_D[] == B"XX11110000X"; | ||||
| 
 | ||||
| 	KB_EXT.clk	= DFF((KB_CT[] == 1),CLK42,,); | ||||
| 	KB_EXT.d	= KB_D[] == B"XX11100000X"; | ||||
| 
 | ||||
| 	KB_CTRL.clk	= !KB_CT2; | ||||
| 	KB_ALT.clk	= !KB_CT2; | ||||
| 	KB_SH.clk	= !KB_CT2; | ||||
| 
 | ||||
| 	KB_CTRL_X	= LCELL(KB_D[] == B"XXXXX1X100X"); | ||||
| 	KB_ALT_X	= LCELL(KB_D[] == B"XXXXX1X001X"); | ||||
| 	KB_SH_X		= LCELL(KB_D[] == B"XX0X01X0XXX") & | ||||
| 			   CASCADE((KB_D[] == B"XXX1XX1X01X") or (KB_D[] == B"XXX0XX0X10X")); | ||||
| 	KB_XXX		= LCELL(KB_D[] == B"XX000X0XXXX"); | ||||
| 
 | ||||
| 	CASE KB_OFF IS | ||||
| 		WHEN 0 => | ||||
| 			KB_CTRL.d	= (KB_CTRL_X & KB_XXX) or KB_CTRL; | ||||
| 			KB_ALT.d	= (KB_ALT_X  & KB_XXX) or KB_ALT; | ||||
| 			KB_SH.d		= (KB_SH_X) or KB_SH; | ||||
| 		WHEN 1 => | ||||
| 			KB_CTRL.d	= !(KB_CTRL_X & KB_XXX) & KB_CTRL; | ||||
| 			KB_ALT.d	= !(KB_ALT_X  & KB_XXX) & KB_ALT; | ||||
| 			KB_SH.d		= !(KB_SH_X) & KB_SH; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	KB_F12	= DFF(!((KB_XXX & LCELL(KB_D[] == B"XXXXX0X111X")) & !KB_OFF), | ||||
| 					!KB_CT2,,!(KB_CT[] == 1)); | ||||
| 
 | ||||
| 	KB_RESET.clk	= !KB_CT2; | ||||
| 	KB_RESET.d		= !(KB_ALT_X & (KB_D[] == B"XX011X0XXXX") & !KB_OFF & KB_CTRL & KB_ALT); | ||||
| 	KB_RESET.prn	= !DFF((KB_CT[] == 1),CLK42,,); | ||||
| 
 | ||||
| 	K_CLK	= DFF(/RF,CLK42,,); | ||||
| 
 | ||||
| 	RXA[].ena	= VCC; | ||||
| 	RXA[].clk	= K_CLK; | ||||
| 
 | ||||
| 	CASE DFF((!(KB_CT[] == B"01X") & (RXA[] == 0)),CLK42,,) IS | ||||
| 		WHEN B"1" => RXA[] = GND; | ||||
| 		WHEN B"0" => RXA[] = (RXA0,!RXA1); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE (DFF((/IO & (RXA[] == 0),CLK42,,)),LCELL(KDD7 & KDD6)) IS | ||||
| 		WHEN B"0X" => KA[15..8]	= (B"101",KDCA[],B"11"); | ||||
| 		WHEN B"10" => KA[15..8]	= (B"110000",KDD7,KDD6); | ||||
| 		WHEN B"11" => KA[15..8]	= KB_D[8..1]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	KB_MA[].clk	= CLK42; | ||||
| 	KB_MA[].d	= KB_MA[] + 1; | ||||
| 	KB_MA[].clrn = !DFF(/IO,CLK42,,); | ||||
| 
 | ||||
| 	KB_MXA	= DFF((		(((KB_MA[] == 7) & A15) or ((KB_MA[] == 6) & A14)) | ||||
| 					or	(((KB_MA[] == 5) & A13) or ((KB_MA[] == 4) & A12)) | ||||
| 					or	(((KB_MA[] == 3) & A11) or ((KB_MA[] == 2) & A10)) | ||||
| 					or	(((KB_MA[] == 1) & A9 ) or ((KB_MA[] == 0) & A8 ))),CLK42,,); | ||||
| 
 | ||||
| 	IF !DFF(/IO,CLK42,,) THEN | ||||
| 		KDCA[]	= KB_MA[]; | ||||
| 	ELSE | ||||
| 		KDCA[]	= KDD[5..3]; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	KDD[].clk		= RXA0; | ||||
| 	KDD[].d			= KD[]; | ||||
| 	KDD[7..6].prn	= !KB_CT2; | ||||
| 
 | ||||
| 	KDXX[].clk		= RXA0; | ||||
| 	KDXX[].d		= !((KD[2..0] == 5),(KD[2..0] == 4), | ||||
| 						(KD[2..0] == 3),(KD[2..0] == 2), | ||||
| 						(KD[2..0] == 1),(KD[2..0] == 0)); | ||||
| 
 | ||||
| 	KDX[].clk		= RXA1; | ||||
| 
 | ||||
| 	CASE KB_OFF IS | ||||
| 		WHEN B"0" => KDX[].d	= (KD[5..0] & KDXX[]); | ||||
| 		WHEN B"1" => KDX[].d	= (KD[5..0] or !KDXX[]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	============================== | ||||
| 
 | ||||
| 	WR_KBD	= K_CLK or !DFF((KB_CT[] == 2),CLK42,,) or !(RXA[] == 3); | ||||
| 
 | ||||
| 	KD[] = lpm_ram_dq((B"11",KDX[5..0]),KA[15..8],!WR_KBD,CLK42,) | ||||
| 		WITH (lpm_width=8,lpm_widthad=8,lpm_file="KBD_INI2.MIF", | ||||
| 		lpm_outdata="UNREGISTERED"); | ||||
| 
 | ||||
| 	KBD[].clk	= CLK42; | ||||
| 	KBD[].prn	= DFF(VCC,KB_MA2,(!/IO & ENA),); | ||||
| 
 | ||||
| --	KBD[].prn	= DFF(!/IOM,CLK42,,); | ||||
| 	KBD[].d		= KBD[] & (KD[5..0] or KB_MXA); | ||||
| 
 | ||||
| 	KBO[]		= (VCC,VCC,KBD[]); | ||||
| 
 | ||||
| END; | ||||
| 
 | ||||
							
								
								
									
										167
									
								
								src/altera/quartus/acex/KBD_INI2.MIF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										167
									
								
								src/altera/quartus/acex/KBD_INI2.MIF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,167 @@ | ||||
| DEPTH = 256;	% Memory depth and width are required	% | ||||
| WIDTH = 8;	% Enter a decimal number	% | ||||
| 
 | ||||
| ADDRESS_RADIX = HEX;	% Address and value radixes are optional	% | ||||
| DATA_RADIX = BIN;	% Enter BIN, DEC, HEX, or OCT; unless 	% | ||||
| 			% otherwise specified, radixes = HEX	% | ||||
| 
 | ||||
| -- Specify values for addresses, which can be single address or range | ||||
| 
 | ||||
| CONTENT | ||||
| 	BEGIN | ||||
| [0..FF]	: 11111111; | ||||
| 0	: | ||||
| 	11111111	% ..   % | ||||
| 	00100001	% F9   % | ||||
| 	11111111	% ..   % | ||||
| 	00011100	% F5   % | ||||
| 	00011010	% F3   % | ||||
| 	00011000	% F1   % | ||||
| 	00011001	% F2   % | ||||
| 	11111111	% F12  % | ||||
| 	11111111	% ..   % | ||||
| 	00100000	% F10  % | ||||
| 
 | ||||
| 	00100010	% F8          % | ||||
| 	00100100	% F6          % | ||||
|     00011011	% F4          % | ||||
|     01011000	% Tab         % | ||||
|     10001000	% ~`          % | ||||
|     11111111	% ..          % | ||||
|     11111111	% ..          % | ||||
|     01111001	% Alt         % | ||||
|     11000000	% Left Shift  % | ||||
|     11111111	% ..          % | ||||
| 
 | ||||
|     11111001	% Ctrl   % | ||||
|     11010000	% 'Q'    % | ||||
|     11011000	% '1'    % | ||||
|     11111111	% ..     % | ||||
|     11111111	% ..     % | ||||
|     11111111	% ..     % | ||||
|     11000001	% 'Z'    % | ||||
|     11001001	% 'S'    % | ||||
|     11001000	% 'A'    % | ||||
|     11010001	% 'W'    % | ||||
| 
 | ||||
|     11011001	% '2'   	% | ||||
|     01110000	% left WIN  % | ||||
|     11111111	% ..     	% | ||||
|     11000011	% 'C'    	% | ||||
|     11000010	% 'X'    	% | ||||
|     11001010	% 'D'    	% | ||||
|     11010010	% 'E'    	% | ||||
|     11011011	% '4'    	% | ||||
|     11011010	% '3'    	% | ||||
|     10110000	% Right WIN % | ||||
| 
 | ||||
|     11111111	% ..     		% | ||||
|     11111000	% ' '    		% | ||||
|     11000100	% 'V'    		% | ||||
|     11001011	% 'F'    		% | ||||
|     11010100	% 'T'    		% | ||||
|     11010011	% 'R'    		% | ||||
|     11011100	% '5'    		% | ||||
|     10111000	% Right Mouse	% | ||||
|     11111111	% ..     		% | ||||
|     11111011	% 'N'    		% | ||||
| 
 | ||||
|     11111100	% 'B'    % | ||||
|     11110100	% 'H'    % | ||||
|     11001100	% 'G'    % | ||||
|     11101100	% 'Y'    % | ||||
|     11100100	% '6'    % | ||||
|     11111111	% ..     % | ||||
|     11111111	% ..     % | ||||
|     11111111	% ..     % | ||||
|     11111010	% 'M'    % | ||||
|     11110011	% 'J'    % | ||||
| 
 | ||||
|     11101011	% 'U'    % | ||||
|     11100011	% '7'    % | ||||
|     11100010	% '8'    % | ||||
|     11111111	% ..     % | ||||
|     11111111	% ..     % | ||||
|     10111011	% ','    % | ||||
|     11110010	% 'K'    % | ||||
|     11101010	% 'I'    % | ||||
|     11101001	% 'O'    % | ||||
|     11100000	% '0'    % | ||||
| 
 | ||||
|     11100001	% '9'    % | ||||
|     11111111	% ..     % | ||||
|     11111111	% ..     % | ||||
|     10111010	% '.'    % | ||||
|     10000100	% '/'    % | ||||
|     11110001	% 'L'    % | ||||
|     10101001	% ';'    % | ||||
|     11101000	% 'P'    % | ||||
|     10110011	% '-'    % | ||||
|     11111111	% ..     % | ||||
| 
 | ||||
|     11111111	% ..           % | ||||
|     11111111	% ..           % | ||||
|     10101000	% "'"          % | ||||
|     11111111	% ..           % | ||||
|     10101100	% '['          % | ||||
|     10110001	% '='          % | ||||
|     11111111	% ..           % | ||||
|     11111111	% ..           % | ||||
|     01011001	% Caps Lock    % | ||||
|     11000000	% Right SHIFT  % | ||||
| 
 | ||||
|     11110000	% ENTER    % | ||||
|     10101011	% ']'      % | ||||
|     11111111	% ..       % | ||||
|     10001010	% '\'      % | ||||
|     11111111	% ..       % | ||||
|     11111111	% ..       % | ||||
|     11111111	% ..       % | ||||
|     11111111	% ..       % | ||||
|     11111111	% ..       % | ||||
|     11111111	% ..       % | ||||
| 
 | ||||
|     11111111	% ..       % | ||||
|     11111111	% ..       % | ||||
|     01100000	% Back     % | ||||
|     11111111	% ..       % | ||||
|     11111111	% ..       % | ||||
|     10010010	% End      % | ||||
|     11111111	% ..       % | ||||
|     01011100	% <-       % | ||||
|     10010000	% Home     % | ||||
|     11111111	% ..       % | ||||
| 
 | ||||
| 	11111111	% ..       			 % | ||||
|     11111111	% ..       			 % | ||||
|     10010001	% ins      			 % | ||||
|     01100001	% DEL      			 % | ||||
|     01100100	% Dn       			 % | ||||
|     10101010	% grey 5 ; ctrl + I  % | ||||
|     01100010	% ->       			 % | ||||
|     01100011	% Up       			 % | ||||
|     01111000	% ESC      			 % | ||||
|     00111111	% Num      			 % | ||||
| 
 | ||||
| 	11111111	% F11                % | ||||
|     10110010	% G+                 % | ||||
|     01011011	% PDn	; caps + 4   % | ||||
|     10110011	% G-                 % | ||||
|     10111100	% G*                 % | ||||
|     01011010	% PUp	; caps + 3   % | ||||
|     00000000	% Scrol Lock         % | ||||
|     11111111	% ..                 % | ||||
|     11111111	% ..                 % | ||||
|     11111111	% ..                 % | ||||
| 
 | ||||
|     11111111	% ..    % | ||||
|     00100011	% F7    %	; | ||||
| %	!! DATA FOR CAPS !! % | ||||
| C0	: | ||||
| 	11111101		% Function shift	% | ||||
| 	11000000    	% Left Shift		% | ||||
| 	11111001    	% Ctrl				% | ||||
| 	11111111	;	% no shift			% | ||||
| END ; | ||||
| 
 | ||||
| 
 | ||||
							
								
								
									
										571
									
								
								src/altera/quartus/acex/MOUSE.ACF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										571
									
								
								src/altera/quartus/acex/MOUSE.ACF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,571 @@ | ||||
| -- | ||||
| --  Copyright (C) 1988-2000 Altera Corporation | ||||
| --  Any megafunction design, and related net list (encrypted or decrypted), | ||||
| --  support information, device programming or simulation file, and any other | ||||
| --  associated documentation or information provided by Altera or a partner | ||||
| --  under Altera's Megafunction Partnership Program may be used only to | ||||
| --  program PLD devices (but not masked PLD devices) from Altera.  Any other | ||||
| --  use of such megafunction design, net list, support information, device | ||||
| --  programming or simulation file, or any other related documentation or | ||||
| --  information is prohibited for any other purpose, including, but not | ||||
| --  limited to modification, reverse engineering, de-compiling, or use with | ||||
| --  any other silicon devices, unless such use is explicitly licensed under | ||||
| --  a separate agreement with Altera or a megafunction partner.  Title to | ||||
| --  the intellectual property, including patents, copyrights, trademarks, | ||||
| --  trade secrets, or maskworks, embodied in any such megafunction design, | ||||
| --  net list, support information, device programming or simulation file, or | ||||
| --  any other related documentation or information provided by Altera or a | ||||
| --  megafunction partner, remains with Altera, the megafunction partner, or | ||||
| --  their respective licensors.  No other licenses, including any licenses | ||||
| --  needed under any third party's intellectual property, are provided herein. | ||||
| -- | ||||
| CHIP mouse | ||||
| BEGIN | ||||
| 	DEVICE = EP1K30QC208-3; | ||||
| END; | ||||
| 
 | ||||
| DEFAULT_DEVICES | ||||
| BEGIN | ||||
| 	AUTO_DEVICE = EP1K100FC484-1; | ||||
| 	AUTO_DEVICE = EP1K100FC256-1; | ||||
| 	AUTO_DEVICE = EP1K100QC208-1; | ||||
| 	AUTO_DEVICE = EP1K50FC484-1; | ||||
| 	AUTO_DEVICE = EP1K50FC256-1; | ||||
| 	AUTO_DEVICE = EP1K50QC208-1; | ||||
| 	AUTO_DEVICE = EP1K50TC144-1; | ||||
| 	AUTO_DEVICE = EP1K30FC256-1; | ||||
| 	AUTO_DEVICE = EP1K30QC208-1; | ||||
| 	AUTO_DEVICE = EP1K30TC144-1; | ||||
| 	AUTO_DEVICE = EP1K10FC256-1; | ||||
| 	AUTO_DEVICE = EP1K10QC208-1; | ||||
| 	AUTO_DEVICE = EP1K10TC144-1; | ||||
| 	AUTO_DEVICE = EP1K10TC100-1; | ||||
| 	ASK_BEFORE_ADDING_EXTRA_DEVICES = ON; | ||||
| END; | ||||
| 
 | ||||
| TIMING_POINT | ||||
| BEGIN | ||||
| 	DEVICE_FOR_TIMING_SYNTHESIS = EP1K30QC208-3; | ||||
| 	FREQUENCY = 200MHz; | ||||
| 	MAINTAIN_STABLE_SYNTHESIS = OFF; | ||||
| 	CUT_ALL_CLEAR_PRESET = ON; | ||||
| 	CUT_ALL_BIDIR = ON; | ||||
| END; | ||||
| 
 | ||||
| IGNORED_ASSIGNMENTS | ||||
| BEGIN | ||||
| 	FIT_IGNORE_TIMING = OFF; | ||||
| 	DEMOTE_SPECIFIC_LCELL_ASSIGNMENTS_TO_LAB_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LOCAL_ROUTING_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_DEVICE_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LC_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_PIN_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_CHIP_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_TIMING_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LOGIC_OPTION_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_CLIQUE_ASSIGNMENTS = OFF; | ||||
| END; | ||||
| 
 | ||||
| GLOBAL_PROJECT_DEVICE_OPTIONS | ||||
| BEGIN | ||||
| 	MAX7000B_ENABLE_VREFB = OFF; | ||||
| 	MAX7000B_ENABLE_VREFA = OFF; | ||||
| 	MAX7000B_VCCIO_IOBANK2 = 3.3V; | ||||
| 	MAX7000B_VCCIO_IOBANK1 = 3.3V; | ||||
| 	CONFIG_EPROM_PULLUP_RESISTOR = ON; | ||||
| 	CONFIG_EPROM_USER_CODE = FFFFFFFF; | ||||
| 	FLEX_CONFIGURATION_EPROM = AUTO; | ||||
| 	MAX7000AE_ENABLE_JTAG = ON; | ||||
| 	MAX7000AE_USER_CODE = FFFFFFFF; | ||||
| 	FLEX6000_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = OFF; | ||||
| 	FLEX10KA_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = ON; | ||||
| 	FLEX10K_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = OFF; | ||||
| 	FLEX6000_ENABLE_JTAG = OFF; | ||||
| 	CONFIG_SCHEME_FLEX_6000 = PASSIVE_SERIAL; | ||||
| 	MULTIVOLT_IO = OFF; | ||||
| 	MAX7000S_ENABLE_JTAG = ON; | ||||
| 	FLEX10K_ENABLE_LOCK_OUTPUT = OFF; | ||||
| 	MAX7000S_USER_CODE = FFFF; | ||||
| 	CONFIG_SCHEME_10K = PASSIVE_SERIAL; | ||||
| 	FLEX10K_JTAG_USER_CODE = 7F; | ||||
| 	ENABLE_INIT_DONE_OUTPUT = OFF; | ||||
| 	ENABLE_CHIP_WIDE_OE = OFF; | ||||
| 	ENABLE_CHIP_WIDE_RESET = OFF; | ||||
| 	nCEO = UNRESERVED; | ||||
| 	CLKUSR = UNRESERVED; | ||||
| 	ADD17 = UNRESERVED; | ||||
| 	ADD16 = UNRESERVED; | ||||
| 	ADD15 = UNRESERVED; | ||||
| 	ADD14 = UNRESERVED; | ||||
| 	ADD13 = UNRESERVED; | ||||
| 	ADD0_TO_ADD12 = UNRESERVED; | ||||
| 	SDOUT = RESERVED_DRIVES_OUT; | ||||
| 	RDCLK = UNRESERVED; | ||||
| 	RDYnBUSY = UNRESERVED; | ||||
| 	nWS_nRS_nCS_CS = UNRESERVED; | ||||
| 	DATA1_TO_DATA7 = UNRESERVED; | ||||
| 	DATA0 = RESERVED_TRI_STATED; | ||||
| 	FLEX8000_ENABLE_JTAG = OFF; | ||||
| 	CONFIG_SCHEME = ACTIVE_SERIAL; | ||||
| 	DISABLE_TIME_OUT = OFF; | ||||
| 	ENABLE_DCLK_OUTPUT = OFF; | ||||
| 	RELEASE_CLEARS = OFF; | ||||
| 	AUTO_RESTART = OFF; | ||||
| 	USER_CLOCK = OFF; | ||||
| 	SECURITY_BIT = OFF; | ||||
| 	RESERVED_PINS_PERCENT = 0; | ||||
| 	RESERVED_LCELLS_PERCENT = 0; | ||||
| END; | ||||
| 
 | ||||
| GLOBAL_PROJECT_SYNTHESIS_ASSIGNMENT_OPTIONS | ||||
| BEGIN | ||||
| 	STYLE = FAST; | ||||
| 	MULTI_LEVEL_SYNTHESIS_MAX9000 = ON; | ||||
| 	AUTO_IMPLEMENT_IN_EAB = OFF; | ||||
| 	AUTO_OPEN_DRAIN_PINS = ON; | ||||
| 	ONE_HOT_STATE_MACHINE_ENCODING = OFF; | ||||
| 	AUTO_REGISTER_PACKING = OFF; | ||||
| 	DEVICE_FAMILY = ACEX1K; | ||||
| 	AUTO_FAST_IO = OFF; | ||||
| 	AUTO_GLOBAL_OE = ON; | ||||
| 	AUTO_GLOBAL_PRESET = ON; | ||||
| 	AUTO_GLOBAL_CLEAR = ON; | ||||
| 	AUTO_GLOBAL_CLOCK = ON; | ||||
| 	MULTI_LEVEL_SYNTHESIS_MAX5000_7000 = OFF; | ||||
| 	OPTIMIZE_FOR_SPEED = 5; | ||||
| END; | ||||
| 
 | ||||
| COMPILER_PROCESSING_CONFIGURATION | ||||
| BEGIN | ||||
| 	USE_QUARTUS_FITTER = ON; | ||||
| 	PRESERVE_ALL_NODE_NAME_SYNONYMS = OFF; | ||||
| 	FITTER_SETTINGS = NORMAL; | ||||
| 	SMART_RECOMPILE = OFF; | ||||
| 	GENERATE_AHDL_TDO_FILE = OFF; | ||||
| 	RPT_FILE_USER_ASSIGNMENTS = ON; | ||||
| 	RPT_FILE_LCELL_INTERCONNECT = ON; | ||||
| 	RPT_FILE_HIERARCHY = ON; | ||||
| 	RPT_FILE_EQUATIONS = ON; | ||||
| 	LINKED_SNF_EXTRACTOR = OFF; | ||||
| 	OPTIMIZE_TIMING_SNF = OFF; | ||||
| 	TIMING_SNF_EXTRACTOR = ON; | ||||
| 	FUNCTIONAL_SNF_EXTRACTOR = OFF; | ||||
| 	DESIGN_DOCTOR_RULES = EPLD; | ||||
| 	DESIGN_DOCTOR = OFF; | ||||
| END; | ||||
| 
 | ||||
| COMPILER_INTERFACES_CONFIGURATION | ||||
| BEGIN | ||||
| 	NETLIST_OUTPUT_TIME_SCALE = 0.1ns; | ||||
| 	EDIF_INPUT_SHOW_LMF_MAPPING_MESSAGES = OFF; | ||||
| 	EDIF_BUS_DELIMITERS = []; | ||||
| 	EDIF_FLATTEN_BUS = OFF; | ||||
| 	EDIF_OUTPUT_FORCE_0NS_DELAYS = OFF; | ||||
| 	EDIF_OUTPUT_INCLUDE_SPECIAL_PRIM = OFF; | ||||
| 	EDIF_OUTPUT_MAP_ILLEGAL_CHAR = OFF; | ||||
| 	EDIF_OUTPUT_DELAY_CONSTRUCTS = EDO_FILE; | ||||
| 	EDIF_OUTPUT_USE_EDC = OFF; | ||||
| 	EDIF_INPUT_USE_LMF2 = OFF; | ||||
| 	EDIF_INPUT_USE_LMF1 = OFF; | ||||
| 	EDIF_OUTPUT_GND = GND; | ||||
| 	EDIF_OUTPUT_VCC = VCC; | ||||
| 	EDIF_INPUT_GND = GND; | ||||
| 	EDIF_INPUT_VCC = VCC; | ||||
| 	EDIF_OUTPUT_EDC_FILE = *.edc; | ||||
| 	EDIF_INPUT_LMF2 = *.lmf; | ||||
| 	EDIF_INPUT_LMF1 = *.lmf; | ||||
| 	VHDL_GENERATE_CONFIGURATION_DECLARATION = OFF; | ||||
| 	VHDL_OUTPUT_DELAY_CONSTRUCTS = VHO_FILE; | ||||
| 	VERILOG_OUTPUT_DELAY_CONSTRUCTS = VO_FILE; | ||||
| 	VHDL_FLATTEN_BUS = OFF; | ||||
| 	VERILOG_FLATTEN_BUS = OFF; | ||||
| 	EDIF_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VHDL_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VERILOG_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VERILOG_OUTPUT_MAP_ILLEGAL_CHAR = OFF; | ||||
| 	VHDL_WRITER_VERSION = VHDL93; | ||||
| 	VHDL_READER_VERSION = VHDL93; | ||||
| 	SYNOPSYS_MAPPING_EFFORT = MEDIUM; | ||||
| 	SYNOPSYS_BOUNDARY_OPTIMIZATION = OFF; | ||||
| 	SYNOPSYS_HIERARCHICAL_COMPILATION = ON; | ||||
| 	SYNOPSYS_DESIGNWARE = OFF; | ||||
| 	SYNOPSYS_COMPILER = DESIGN; | ||||
| 	USE_SYNOPSYS_SYNTHESIS = OFF; | ||||
| 	VHDL_NETLIST_WRITER = OFF; | ||||
| 	VERILOG_NETLIST_WRITER = OFF; | ||||
| 	XNF_GENERATE_AHDL_TDX_FILE = ON; | ||||
| 	XNF_TRANSLATE_INTERNAL_NODE_NAMES = ON; | ||||
| 	XNF_EMULATE_TRI_STATE_BUSES = INTERNAL_LOGIC; | ||||
| 	EDIF_OUTPUT_VERSION = 200; | ||||
| 	EDIF_NETLIST_WRITER = OFF; | ||||
| END; | ||||
| 
 | ||||
| CUSTOM_DESIGN_DOCTOR_RULES | ||||
| BEGIN | ||||
| 	MASTER_RESET = OFF; | ||||
| 	EXPANDER_NETWORKS = ON; | ||||
| 	RACE_CONDITIONS = ON; | ||||
| 	DELAY_CHAINS = ON; | ||||
| 	ASYNCHRONOUS_INPUTS = ON; | ||||
| 	PRESET_CLEAR_NETWORKS = ON; | ||||
| 	STATIC_HAZARDS_AFTER_SYNTHESIS = OFF; | ||||
| 	STATIC_HAZARDS_BEFORE_SYNTHESIS = ON; | ||||
| 	MULTI_CLOCK_NETWORKS = ON; | ||||
| 	MULTI_LEVEL_CLOCKS = ON; | ||||
| 	GATED_CLOCKS = ON; | ||||
| 	RIPPLE_CLOCKS = ON; | ||||
| END; | ||||
| 
 | ||||
| SIMULATOR_CONFIGURATION | ||||
| BEGIN | ||||
| 	END_TIME = 10.0us; | ||||
| 	BIDIR_PIN = STRONG; | ||||
| 	START_TIME = 0.0ns; | ||||
| 	GLITCH_TIME = 0.0ns; | ||||
| 	GLITCH = OFF; | ||||
| 	OSCILLATION_TIME = 0.0ns; | ||||
| 	OSCILLATION = OFF; | ||||
| 	CHECK_OUTPUTS = OFF; | ||||
| 	SETUP_HOLD = OFF; | ||||
| 	USE_DEVICE = OFF; | ||||
| END; | ||||
| 
 | ||||
| TIMING_ANALYZER_CONFIGURATION | ||||
| BEGIN | ||||
| 	CUT_OFF_RAM_REGISTERED_WE_PATHS = OFF; | ||||
| 	LIST_PATH_FREQUENCY = 10MHz; | ||||
| 	LIST_PATH_COUNT = 10; | ||||
| 	REGISTERED_PERFORMANCE_OPTIONS = NUMBER_OF_PATHS; | ||||
| 	INCLUDE_PATHS_LESS_THAN_VALUE = 214.7483647ms; | ||||
| 	INCLUDE_PATHS_LESS_THAN = OFF; | ||||
| 	INCLUDE_PATHS_GREATER_THAN_VALUE = 0.0ns; | ||||
| 	INCLUDE_PATHS_GREATER_THAN = OFF; | ||||
| 	DELAY_MATRIX_OPTIONS = SHOW_ALL_PATHS; | ||||
| 	CELL_WIDTH = 18; | ||||
| 	LIST_ONLY_LONGEST_PATH = ON; | ||||
| 	CUT_OFF_CLEAR_AND_PRESET_PATHS = ON; | ||||
| 	CUT_OFF_IO_PIN_FEEDBACK = ON; | ||||
| 	AUTO_RECALCULATE = OFF; | ||||
| 	ANALYSIS_MODE = DELAY_MATRIX; | ||||
| END; | ||||
| 
 | ||||
| OTHER_CONFIGURATION | ||||
| BEGIN | ||||
| 	EXPLICIT_FAMILY = 1; | ||||
| 	ROW_PINS_LCELL_INSERT = ON; | ||||
| 	CARRY_OUT_PINS_LCELL_INSERT = OFF; | ||||
| 	NORMAL_LCELL_INSERT = ON; | ||||
| 	LAST_MAXPLUS2_VERSION = 10.0; | ||||
| 	FLEX_10K_52_COLUMNS = 40; | ||||
| 	DEFAULT_9K_EXP_PER_LCELL = 1/2; | ||||
| 	LOCAL_INTERCONNECT_PER_LAB_PERCENT = 100; | ||||
| 	LCELLS_PER_ROW_PERCENT = 100; | ||||
| 	FAN_IN_PER_LCELL_PERCENT = 100; | ||||
| 	EXP_PER_LCELL_PERCENT = 100; | ||||
| 	ROW_PINS_PERCENT = 50; | ||||
| 	ORIGINAL_MAXPLUS2_VERSION = 10.0; | ||||
| 	COMPILER_DATA = "1,1,0,1,0,0,0,1,1,1,1,0,1,1,1"; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.FLEX8000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = ON; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.FLEX8000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = AUTO; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = AUTO; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.MAX5000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.MAX7000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.CLASSIC | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.FLEX8000 | ||||
| BEGIN | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	CARRY_CHAIN = MANUAL; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CASCADE_CHAIN = MANUAL; | ||||
| END; | ||||
| 
 | ||||
							
								
								
									
										26
									
								
								src/altera/quartus/acex/MOUSE.INC
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/altera/quartus/acex/MOUSE.INC
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| -- Copyright (C) 1988-2000 Altera Corporation | ||||
| -- Any megafunction design, and related net list (encrypted or decrypted), | ||||
| -- support information, device programming or simulation file, and any other | ||||
| -- associated documentation or information provided by Altera or a partner | ||||
| -- under Altera's Megafunction Partnership Program may be used only to | ||||
| -- program PLD devices (but not masked PLD devices) from Altera.  Any other | ||||
| -- use of such megafunction design, net list, support information, device | ||||
| -- programming or simulation file, or any other related documentation or | ||||
| -- information is prohibited for any other purpose, including, but not | ||||
| -- limited to modification, reverse engineering, de-compiling, or use with | ||||
| -- any other silicon devices, unless such use is explicitly licensed under | ||||
| -- a separate agreement with Altera or a megafunction partner.  Title to | ||||
| -- the intellectual property, including patents, copyrights, trademarks, | ||||
| -- trade secrets, or maskworks, embodied in any such megafunction design, | ||||
| -- net list, support information, device programming or simulation file, or | ||||
| -- any other related documentation or information provided by Altera or a | ||||
| -- megafunction partner, remains with Altera, the megafunction partner, or | ||||
| -- their respective licensors.  No other licenses, including any licenses | ||||
| -- needed under any third party's intellectual property, are provided herein. | ||||
| 
 | ||||
| -- MAX+plus II Include File | ||||
| -- Version 10.0 9/14/2000 | ||||
| -- Created: Sat Jun 16 17:49:35 2001 | ||||
| 
 | ||||
| FUNCTION mouse (mouse_d, clk) | ||||
|     RETURNS (out_x[9..0], out_y[9..0], out_k[1..0], int); | ||||
							
								
								
									
										65
									
								
								src/altera/quartus/acex/MOUSE.MIF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								src/altera/quartus/acex/MOUSE.MIF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,65 @@ | ||||
| DEPTH = 256;	% Memory depth and width are required	% | ||||
| WIDTH = 16;		% Enter a decimal number	% | ||||
| 
 | ||||
| ADDRESS_RADIX = HEX;	% Address and value radixes are optional	% | ||||
| DATA_RADIX = HEX;		% Enter BIN, DEC, HEX, or OCT; unless 	% | ||||
| 						% otherwise specified, radixes = HEX	% | ||||
| 
 | ||||
| -- Specify values for addresses, which can be single address or range | ||||
| 
 | ||||
| CONTENT | ||||
| BEGIN | ||||
| 
 | ||||
| 	[0..FF] : 0; | ||||
| 
 | ||||
| % | ||||
| 		 11 | ||||
| 		 1211 | ||||
| 		 122211 | ||||
| 		 12222211 | ||||
| 		 1222222211 | ||||
| 		 122222222211 | ||||
| 		 1222222211 | ||||
| 		 12222221 | ||||
| 		 12222221 | ||||
| 		 121112221 | ||||
| 		 11   12221 | ||||
| 		 1	   1221 | ||||
| 				111 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| % | ||||
| 
 | ||||
| 	00	: 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0; | ||||
| 	10  : 1 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0; | ||||
| 	20  : 1 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0; | ||||
| 	30  : 1 2 2 2 2 2 1 1 0 0 0 0 0 0 0 0; | ||||
| 	40  : 1 2 2 2 2 2 2 2 1 1 0 0 0 0 0 0; | ||||
| 	50  : 1 2 2 2 2 2 2 2 2 2 1 1 0 0 0 0; | ||||
| 	60  : 1 2 2 2 2 2 2 2 1 1 0 0 0 0 0 0; | ||||
| 	E0  : 1 2 2 2 2 2 2 1 0 0 0 0 0 0 0 0; | ||||
| 	70  : 1 2 2 2 2 2 2 1 0 0 0 0 0 0 0 0; | ||||
| 	80  : 1 2 1 1 1 2 2 2 1 0 0 0 0 0 0 0; | ||||
| 	90  : 1 1 0 0 0 1 2 2 2 1 0 0 0 0 0 0; | ||||
| 	A0  : 1 0 0 0 0 0 1 2 2 1 0 0 0 0 0 0; | ||||
| 	B0  : 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0; | ||||
| 	C0  : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; | ||||
| 	D0  : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; | ||||
| 	E0  : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; | ||||
| 	F0  : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; | ||||
| 
 | ||||
| % | ||||
| 
 | ||||
| 	1110 0000 0000 0 00 0000 0000 0000 0000 | ||||
| 	1000 0000 0000 0100 0000 0100 0000 0000 | ||||
| 	1000 1100 1010 0000 1100 1110 0100 1010 | ||||
| 	1110 1010 1100 0100 1010 0100 1010 1100 | ||||
| 	0010 1010 1000 0100 1010 0100 1110 1000 | ||||
| 	0010 1100 1000 0100 1010 0100 1000 1000 | ||||
| 	1110 1000 1000 0100 1010 0010 0110 1000 | ||||
| 	0000 1000 0000 0000 0000 0000 0000 0000 | ||||
| 
 | ||||
| % | ||||
| 
 | ||||
| END; | ||||
							
								
								
									
										76
									
								
								src/altera/quartus/acex/MOUSE.TDF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								src/altera/quartus/acex/MOUSE.TDF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,76 @@ | ||||
| 
 | ||||
| 	TITLE "Sp-Mouse"; | ||||
| 
 | ||||
| INCLUDE "lpm_add_sub"; | ||||
| 
 | ||||
| SUBDESIGN mouse | ||||
| 	( | ||||
| 	MOUSE_D		: INPUT; | ||||
| 	CLK			: INPUT; | ||||
| 	OUT_X[9..0]	: OUTPUT; | ||||
| 	OUT_Y[9..0]	: OUTPUT; | ||||
| 	OUT_K[1..0]	: OUTPUT; | ||||
| 	INT			: OUTPUT; | ||||
| 	) | ||||
| VARIABLE | ||||
| 
 | ||||
| 	SUM_X[9..0]		: DFFE; | ||||
| 	SUM_Y[9..0]		: DFFE; | ||||
| 
 | ||||
| 	CT[3..0]	: DFF; | ||||
| 	RG[9..0]	: DFFE; | ||||
| 	STATE[1..0]	: DFFE; | ||||
| 	RGK[5..0]	: DFFE; | ||||
| 
 | ||||
| 	MOUSE_IMP	: NODE; | ||||
| 
 | ||||
| 	DDX[7..0]	: NODE; | ||||
| 	DDY[7..0]	: NODE; | ||||
| 
 | ||||
| BEGIN | ||||
| 
 | ||||
| 	CT[].clk	= CLK; | ||||
| 
 | ||||
| 	MOUSE_IMP	= MOUSE_D xor !DFF(MOUSE_D,CLK,,); | ||||
| 
 | ||||
| 	CT[].clrn	= MOUSE_IMP; | ||||
| 
 | ||||
| 	IF CT[] == 12 THEN | ||||
| 		CT[]	= GND; | ||||
| 	ELSE | ||||
| 		CT[]	= CT[]+1; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	RG[].clk	= CLK; | ||||
| 	RG[].ena	= (CT[] == 4) or !RG0; | ||||
| 	RG[].d		= ((MOUSE_D,RG[9..1]) or !RG0); | ||||
| 	RG[].prn	= VCC; | ||||
| 
 | ||||
| 	STATE[].ena	= !RG0; | ||||
| 	STATE[].clk	= CLK; | ||||
| 
 | ||||
| 	STATE[].d	= (STATE0,RG7); | ||||
| 
 | ||||
| 	RGK[].clk	= CLK; | ||||
| 	RGK[].ena	= (RG7 & !RG0); | ||||
| 	RGK[].d		= RG[6..1]; | ||||
| 
 | ||||
| 	DDX[] = (RGK[1..0],RG[6..1]); | ||||
| 	DDY[] = (RGK[3..2],RG[6..1]); | ||||
| 
 | ||||
| 	SUM_X[].ena	= LCELL(!RG7 & (STATE[] == 1) & !RG0); | ||||
| 	SUM_Y[].ena	= LCELL(!RG7 & (STATE[] == 2) & !RG0); | ||||
| 
 | ||||
| 	SUM_X[].clk	= CLK; | ||||
| 	SUM_Y[].clk	= CLK; | ||||
| 
 | ||||
| 	SUM_X[]		= SUM_X[] + (DDX7,DDX7,DDX[]); | ||||
| 	SUM_Y[]		= SUM_Y[] + (DDY7,DDY7,DDY[]); | ||||
| 
 | ||||
| 	OUT_X[]		= SUM_X[]; | ||||
| 	OUT_Y[]		= SUM_Y[]; | ||||
| 	OUT_K[]		= RGK[5..4]; | ||||
| 
 | ||||
| 	INT	= DFF(((STATE[] == 2) & !RG0),CLK,,); | ||||
| 
 | ||||
| END; | ||||
							
								
								
									
										1366
									
								
								src/altera/quartus/acex/SP2_ACEX.ACF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1366
									
								
								src/altera/quartus/acex/SP2_ACEX.ACF
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1227
									
								
								src/altera/quartus/acex/SP2_ACEX.TDF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1227
									
								
								src/altera/quartus/acex/SP2_ACEX.TDF
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										103
									
								
								src/altera/quartus/acex/SP2_ACEX.flow.rpt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								src/altera/quartus/acex/SP2_ACEX.flow.rpt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,103 @@ | ||||
| Flow report for SP2_ACEX | ||||
| Sun Aug 28 15:25:51 2022 | ||||
| Quartus II Version 9.0 Build 235 06/17/2009 Service Pack 2 SJ Web Edition | ||||
| 
 | ||||
| 
 | ||||
| --------------------- | ||||
| ; Table of Contents ; | ||||
| --------------------- | ||||
|   1. Legal Notice | ||||
|   2. Flow Summary | ||||
|   3. Flow Settings | ||||
|   4. Flow Non-Default Global Settings | ||||
|   5. Flow Elapsed Time | ||||
|   6. Flow OS Summary | ||||
|   7. Flow Log | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ---------------- | ||||
| ; Legal Notice ; | ||||
| ---------------- | ||||
| Copyright (C) 1991-2009 Altera Corporation | ||||
| Your use of Altera Corporation's design tools, logic functions  | ||||
| and other software and tools, and its AMPP partner logic  | ||||
| functions, and any output files from any of the foregoing  | ||||
| (including device programming or simulation files), and any  | ||||
| associated documentation or information are expressly subject  | ||||
| to the terms and conditions of the Altera Program License  | ||||
| Subscription Agreement, Altera MegaCore Function License  | ||||
| Agreement, or other applicable license agreement, including,  | ||||
| without limitation, that your use is for the sole purpose of  | ||||
| programming logic devices manufactured by Altera and sold by  | ||||
| Altera or its authorized distributors.  Please refer to the  | ||||
| applicable agreement for further details. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| +------------------------------------------------------------------------+ | ||||
| ; Flow Summary                                                           ; | ||||
| +-------------------------+----------------------------------------------+ | ||||
| ; Flow Status             ; Flow Failed - Sun Aug 28 15:25:51 2022       ; | ||||
| ; Quartus II Version      ; 9.0 Build 235 06/17/2009 SP 2 SJ Web Edition ; | ||||
| ; Revision Name           ; SP2_ACEX                                     ; | ||||
| ; Top-level Entity Name   ; SP2_ACEX                                     ; | ||||
| ; Family                  ; ACEX1K                                       ; | ||||
| ; Device                  ; EP1K30QC208-3                                ; | ||||
| ; Timing Models           ; Final                                        ; | ||||
| ; Met timing requirements ; N/A                                          ; | ||||
| +-------------------------+----------------------------------------------+ | ||||
| 
 | ||||
| 
 | ||||
| +-----------------------------------------+ | ||||
| ; Flow Settings                           ; | ||||
| +-------------------+---------------------+ | ||||
| ; Option            ; Setting             ; | ||||
| +-------------------+---------------------+ | ||||
| ; Start date & time ; 08/28/2022 15:25:50 ; | ||||
| ; Main task         ; Compilation         ; | ||||
| ; Revision Name     ; SP2_ACEX            ; | ||||
| +-------------------+---------------------+ | ||||
| 
 | ||||
| 
 | ||||
| +--------------------------------------------------------------------------------------------------------------------+ | ||||
| ; Flow Non-Default Global Settings                                                                                   ; | ||||
| +---------------------------------+-----------------------------+---------------+-------------+----------------------+ | ||||
| ; Assignment Name                 ; Value                       ; Default Value ; Entity Name ; Section Id           ; | ||||
| +---------------------------------+-----------------------------+---------------+-------------+----------------------+ | ||||
| ; COMPILER_SIGNATURE_ID           ; 52243291855.166168955009032 ; --            ; --          ; --                   ; | ||||
| ; CUT_OFF_READ_DURING_WRITE_PATHS ; Off                         ; On            ; --          ; --                   ; | ||||
| ; EDA_INPUT_GND_NAME              ; Gnd                         ; --            ; --          ; eda_design_synthesis ; | ||||
| ; EDA_INPUT_VCC_NAME              ; Vcc                         ; --            ; --          ; eda_design_synthesis ; | ||||
| ; EDA_SHOW_LMF_MAPPING_MESSAGES   ; Off                         ; --            ; --          ; eda_design_synthesis ; | ||||
| ; EXCLUDE_TPD_PATHS_LESS_THAN     ; 0 ns                        ; --            ; --          ; --                   ; | ||||
| ; FMAX_REQUIREMENT                ; 100 MHz                     ; --            ; --          ; --                   ; | ||||
| +---------------------------------+-----------------------------+---------------+-------------+----------------------+ | ||||
| 
 | ||||
| 
 | ||||
| +--------------------------------------------------------------------------------------------------------------------------+ | ||||
| ; Flow Elapsed Time                                                                                                        ; | ||||
| +----------------------+--------------+-------------------------+---------------------+------------------------------------+ | ||||
| ; Module Name          ; Elapsed Time ; Average Processors Used ; Peak Virtual Memory ; Total CPU Time (on all processors) ; | ||||
| +----------------------+--------------+-------------------------+---------------------+------------------------------------+ | ||||
| ; Analysis & Synthesis ; 00:00:01     ; 1.0                     ; 228 MB              ; 00:00:01                           ; | ||||
| ; Total                ; 00:00:01     ; --                      ; --                  ; 00:00:01                           ; | ||||
| +----------------------+--------------+-------------------------+---------------------+------------------------------------+ | ||||
| 
 | ||||
| 
 | ||||
| +---------------------------------------------------------------------------------------+ | ||||
| ; Flow OS Summary                                                                       ; | ||||
| +----------------------+------------------+---------------+------------+----------------+ | ||||
| ; Module Name          ; Machine Hostname ; OS Name       ; OS Version ; Processor type ; | ||||
| +----------------------+------------------+---------------+------------+----------------+ | ||||
| ; Analysis & Synthesis ; DESKTOP-72JG930  ; Windows Vista ; 6.2        ; x86_64         ; | ||||
| +----------------------+------------------+---------------+------------+----------------+ | ||||
| 
 | ||||
| 
 | ||||
| ------------ | ||||
| ; Flow Log ; | ||||
| ------------ | ||||
| quartus_map --read_settings_files=on --write_settings_files=off SP2_ACEX -c SP2_ACEX | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
							
								
								
									
										184
									
								
								src/altera/quartus/acex/SP2_ACEX.map.rpt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										184
									
								
								src/altera/quartus/acex/SP2_ACEX.map.rpt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,184 @@ | ||||
| Analysis & Synthesis report for SP2_ACEX | ||||
| Sun Aug 28 15:25:51 2022 | ||||
| Quartus II Version 9.0 Build 235 06/17/2009 Service Pack 2 SJ Web Edition | ||||
| 
 | ||||
| 
 | ||||
| --------------------- | ||||
| ; Table of Contents ; | ||||
| --------------------- | ||||
|   1. Legal Notice | ||||
|   2. Analysis & Synthesis Summary | ||||
|   3. Analysis & Synthesis Settings | ||||
|   4. Analysis & Synthesis Source Files Read | ||||
|   5. Analysis & Synthesis Messages | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ---------------- | ||||
| ; Legal Notice ; | ||||
| ---------------- | ||||
| Copyright (C) 1991-2009 Altera Corporation | ||||
| Your use of Altera Corporation's design tools, logic functions  | ||||
| and other software and tools, and its AMPP partner logic  | ||||
| functions, and any output files from any of the foregoing  | ||||
| (including device programming or simulation files), and any  | ||||
| associated documentation or information are expressly subject  | ||||
| to the terms and conditions of the Altera Program License  | ||||
| Subscription Agreement, Altera MegaCore Function License  | ||||
| Agreement, or other applicable license agreement, including,  | ||||
| without limitation, that your use is for the sole purpose of  | ||||
| programming logic devices manufactured by Altera and sold by  | ||||
| Altera or its authorized distributors.  Please refer to the  | ||||
| applicable agreement for further details. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| +----------------------------------------------------------------------------+ | ||||
| ; Analysis & Synthesis Summary                                               ; | ||||
| +-----------------------------+----------------------------------------------+ | ||||
| ; Analysis & Synthesis Status ; Failed - Sun Aug 28 15:25:51 2022            ; | ||||
| ; Quartus II Version          ; 9.0 Build 235 06/17/2009 SP 2 SJ Web Edition ; | ||||
| ; Revision Name               ; SP2_ACEX                                     ; | ||||
| ; Top-level Entity Name       ; SP2_ACEX                                     ; | ||||
| ; Family                      ; ACEX1K                                       ; | ||||
| +-----------------------------+----------------------------------------------+ | ||||
| 
 | ||||
| 
 | ||||
| +----------------------------------------------------------------------------------------------+ | ||||
| ; Analysis & Synthesis Settings                                                                ; | ||||
| +--------------------------------------------------------------+---------------+---------------+ | ||||
| ; Option                                                       ; Setting       ; Default Value ; | ||||
| +--------------------------------------------------------------+---------------+---------------+ | ||||
| ; Device                                                       ; EP1K30QC208-3 ;               ; | ||||
| ; Top-level entity name                                        ; SP2_ACEX      ; SP2_ACEX      ; | ||||
| ; Family name                                                  ; ACEX1K        ; Stratix II    ; | ||||
| ; Use smart compilation                                        ; Off           ; Off           ; | ||||
| ; Create Debugging Nodes for IP Cores                          ; Off           ; Off           ; | ||||
| ; Preserve fewer node names                                    ; On            ; On            ; | ||||
| ; Disable OpenCore Plus hardware evaluation                    ; Off           ; Off           ; | ||||
| ; Verilog Version                                              ; Verilog_2001  ; Verilog_2001  ; | ||||
| ; VHDL Version                                                 ; VHDL93        ; VHDL93        ; | ||||
| ; State Machine Processing                                     ; Auto          ; Auto          ; | ||||
| ; Safe State Machine                                           ; Off           ; Off           ; | ||||
| ; Extract Verilog State Machines                               ; On            ; On            ; | ||||
| ; Extract VHDL State Machines                                  ; On            ; On            ; | ||||
| ; Ignore Verilog initial constructs                            ; Off           ; Off           ; | ||||
| ; Iteration limit for constant Verilog loops                   ; 5000          ; 5000          ; | ||||
| ; Iteration limit for non-constant Verilog loops               ; 250           ; 250           ; | ||||
| ; Add Pass-Through Logic to Inferred RAMs                      ; On            ; On            ; | ||||
| ; Parallel Synthesis                                           ; Off           ; Off           ; | ||||
| ; NOT Gate Push-Back                                           ; On            ; On            ; | ||||
| ; Power-Up Don't Care                                          ; On            ; On            ; | ||||
| ; Remove Redundant Logic Cells                                 ; Off           ; Off           ; | ||||
| ; Remove Duplicate Registers                                   ; On            ; On            ; | ||||
| ; Ignore CARRY Buffers                                         ; Off           ; Off           ; | ||||
| ; Ignore CASCADE Buffers                                       ; Off           ; Off           ; | ||||
| ; Ignore GLOBAL Buffers                                        ; Off           ; Off           ; | ||||
| ; Ignore ROW GLOBAL Buffers                                    ; Off           ; Off           ; | ||||
| ; Ignore LCELL Buffers                                         ; Off           ; Off           ; | ||||
| ; Ignore SOFT Buffers                                          ; On            ; On            ; | ||||
| ; Limit AHDL Integers to 32 Bits                               ; Off           ; Off           ; | ||||
| ; Auto Implement in ROM                                        ; Off           ; Off           ; | ||||
| ; Optimization Technique                                       ; Area          ; Area          ; | ||||
| ; Carry Chain Length                                           ; 32            ; 32            ; | ||||
| ; Cascade Chain Length                                         ; 2             ; 2             ; | ||||
| ; Auto Carry Chains                                            ; On            ; On            ; | ||||
| ; Auto Open-Drain Pins                                         ; On            ; On            ; | ||||
| ; Auto ROM Replacement                                         ; On            ; On            ; | ||||
| ; Auto RAM Replacement                                         ; On            ; On            ; | ||||
| ; Auto Clock Enable Replacement                                ; On            ; On            ; | ||||
| ; Strict RAM Replacement                                       ; Off           ; Off           ; | ||||
| ; Auto Resource Sharing                                        ; Off           ; Off           ; | ||||
| ; Allow Any RAM Size For Recognition                           ; Off           ; Off           ; | ||||
| ; Allow Any ROM Size For Recognition                           ; Off           ; Off           ; | ||||
| ; Use LogicLock Constraints during Resource Balancing          ; On            ; On            ; | ||||
| ; Ignore translate_off and synthesis_off directives            ; Off           ; Off           ; | ||||
| ; Show Parameter Settings Tables in Synthesis Report           ; On            ; On            ; | ||||
| ; HDL message level                                            ; Level2        ; Level2        ; | ||||
| ; Suppress Register Optimization Related Messages              ; Off           ; Off           ; | ||||
| ; Number of Removed Registers Reported in Synthesis Report     ; 100           ; 100           ; | ||||
| ; Number of Inverted Registers Reported in Synthesis Report    ; 100           ; 100           ; | ||||
| ; Block Design Naming                                          ; Auto          ; Auto          ; | ||||
| ; Synthesis Effort                                             ; Auto          ; Auto          ; | ||||
| ; Shift Register Replacement - Allow Asynchronous Clear Signal ; On            ; On            ; | ||||
| ; Analysis & Synthesis Message Level                           ; Medium        ; Medium        ; | ||||
| +--------------------------------------------------------------+---------------+---------------+ | ||||
| 
 | ||||
| 
 | ||||
| +----------------------------------------------------------------------------------------------------------------------------------------------+ | ||||
| ; Analysis & Synthesis Source Files Read                                                                                                       ; | ||||
| +----------------------------------+-----------------+-----------------------+-----------------------------------------------------------------+ | ||||
| ; File Name with User-Entered Path ; Used in Netlist ; File Type             ; File Name with Absolute Path                                    ; | ||||
| +----------------------------------+-----------------+-----------------------+-----------------------------------------------------------------+ | ||||
| ; SP2_ACEX.tdf                     ; yes             ; Auto-Found AHDL File  ; C:/Sprinter/src/altera/quartus/acex/SP2_ACEX.tdf                ; | ||||
| ; lpm_ram_dp.inc                   ; yes             ; Auto-Found AHDL File  ; c:/altera/90sp2/quartus/libraries/megafunctions/lpm_ram_dp.inc  ; | ||||
| ; kbd.inc                          ; yes             ; Auto-Found AHDL File  ; C:/Sprinter/src/altera/quartus/acex/kbd.inc                     ; | ||||
| ; video2.inc                       ; yes             ; Auto-Found AHDL File  ; C:/Sprinter/src/altera/quartus/acex/video2.inc                  ; | ||||
| ; dcp.inc                          ; yes             ; Auto-Found AHDL File  ; C:/Sprinter/src/altera/quartus/acex/dcp.inc                     ; | ||||
| ; acceler.inc                      ; yes             ; Auto-Found AHDL File  ; C:/Sprinter/src/altera/quartus/acex/acceler.inc                 ; | ||||
| ; ay.inc                           ; yes             ; Auto-Found AHDL File  ; C:/Sprinter/src/altera/quartus/acex/ay.inc                      ; | ||||
| ; mouse.inc                        ; yes             ; Auto-Found AHDL File  ; C:/Sprinter/src/altera/quartus/acex/mouse.inc                   ; | ||||
| ; MOUSE.tdf                        ; yes             ; Auto-Found AHDL File  ; C:/Sprinter/src/altera/quartus/acex/MOUSE.tdf                   ; | ||||
| ; lpm_add_sub.inc                  ; yes             ; Auto-Found AHDL File  ; c:/altera/90sp2/quartus/libraries/megafunctions/lpm_add_sub.inc ; | ||||
| ; kbd.tdf                          ; yes             ; Auto-Found AHDL File  ; C:/Sprinter/src/altera/quartus/acex/kbd.tdf                     ; | ||||
| ; lpm_ram_dq.inc                   ; yes             ; Auto-Found AHDL File  ; c:/altera/90sp2/quartus/libraries/megafunctions/lpm_ram_dq.inc  ; | ||||
| ; lpm_ram_dq.tdf                   ; yes             ; Megafunction          ; c:/altera/90sp2/quartus/libraries/megafunctions/lpm_ram_dq.tdf  ; | ||||
| ; altram.inc                       ; yes             ; Megafunction          ; c:/altera/90sp2/quartus/libraries/megafunctions/altram.inc      ; | ||||
| ; lpm_mux.inc                      ; yes             ; Megafunction          ; c:/altera/90sp2/quartus/libraries/megafunctions/lpm_mux.inc     ; | ||||
| ; lpm_decode.inc                   ; yes             ; Megafunction          ; c:/altera/90sp2/quartus/libraries/megafunctions/lpm_decode.inc  ; | ||||
| ; aglobal90.inc                    ; yes             ; Megafunction          ; c:/altera/90sp2/quartus/libraries/megafunctions/aglobal90.inc   ; | ||||
| ; altram.tdf                       ; yes             ; Megafunction          ; c:/altera/90sp2/quartus/libraries/megafunctions/altram.tdf      ; | ||||
| ; memmodes.inc                     ; yes             ; Megafunction          ; c:/altera/90sp2/quartus/libraries/others/maxplus2/memmodes.inc  ; | ||||
| ; altsyncram.inc                   ; yes             ; Megafunction          ; c:/altera/90sp2/quartus/libraries/megafunctions/altsyncram.inc  ; | ||||
| ; altqpram.inc                     ; yes             ; Megafunction          ; c:/altera/90sp2/quartus/libraries/megafunctions/altqpram.inc    ; | ||||
| +----------------------------------+-----------------+-----------------------+-----------------------------------------------------------------+ | ||||
| 
 | ||||
| 
 | ||||
| +-------------------------------+ | ||||
| ; Analysis & Synthesis Messages ; | ||||
| +-------------------------------+ | ||||
| Info: ******************************************************************* | ||||
| Info: Running Quartus II Analysis & Synthesis | ||||
|     Info: Version 9.0 Build 235 06/17/2009 Service Pack 2 SJ Web Edition | ||||
|     Info: Processing started: Sun Aug 28 15:25:50 2022 | ||||
| Info: Command: quartus_map --read_settings_files=on --write_settings_files=off SP2_ACEX -c SP2_ACEX | ||||
| Warning: Using design file SP2_ACEX.tdf, which is not specified as a design file for the current project, but contains definitions for 1 design units and 1 entities in project | ||||
|     Info: Found entity 1: SP2_ACEX | ||||
| Info: Elaborating entity "SP2_ACEX" for the top level hierarchy | ||||
| Warning: Variable or input pin "DMD" is defined but never used | ||||
| Warning: Variable or input pin "T_SIGNAL" is defined but never used | ||||
| Warning: Variable or input pin "RED" is defined but never used | ||||
| Warning: Variable or input pin "GREEN" is defined but never used | ||||
| Warning: Variable or input pin "BLUE" is defined but never used | ||||
| Warning: Variable or input pin "MDR" is defined but never used | ||||
| Warning: Variable or input pin "ISA_CASH" is defined but never used | ||||
| Warning: Variable or input pin "ROM_WRITE_MODE" is defined but never used | ||||
| Warning: Variable or input pin "/HALT" is defined but never used | ||||
| Warning: Using design file MOUSE.tdf, which is not specified as a design file for the current project, but contains definitions for 1 design units and 1 entities in project | ||||
|     Info: Found entity 1: mouse | ||||
| Info: Elaborating entity "MOUSE" for hierarchy "MOUSE:MS" | ||||
| Warning: Variable or input pin "KB_OFL" is defined but never used | ||||
| Warning: Using design file kbd.tdf, which is not specified as a design file for the current project, but contains definitions for 1 design units and 1 entities in project | ||||
|     Info: Found entity 1: kbd | ||||
| Info: Elaborating entity "kbd" for hierarchy "kbd:KEYS" | ||||
| Warning: Variable or input pin "/IOM" is defined but never used | ||||
| Warning: Variable or input pin "/M1" is defined but never used | ||||
| Info: Elaborating entity "lpm_ram_dq" for hierarchy "kbd:KEYS|lpm_ram_dq:$00021" | ||||
| Info: Elaborated megafunction instantiation "kbd:KEYS|lpm_ram_dq:$00021" | ||||
| Info: Instantiated megafunction "kbd:KEYS|lpm_ram_dq:$00021" with the following parameter: | ||||
|     Info: Parameter "LPM_WIDTH" = "8" | ||||
|     Info: Parameter "LPM_WIDTHAD" = "8" | ||||
|     Info: Parameter "LPM_FILE" = "KBD_INI2.MIF" | ||||
|     Info: Parameter "LPM_OUTDATA" = "UNREGISTERED" | ||||
| Info: Elaborating entity "altram" for hierarchy "kbd:KEYS|lpm_ram_dq:$00021|altram:sram" | ||||
| Error: Memory Initialization File or Hexadecimal (Intel-Format) File "KBD_INI2.MIF" contains illegal syntax at line 13 File: C:/Sprinter/src/altera/quartus/acex/KBD_INI2.MIF Line: 13 | ||||
| Critical Warning: Can't read Memory Initialization File or Hexadecimal (Intel-Format) File KBD_INI2.MIF -- setting all initial values to 0 | ||||
| Error: Can't elaborate user hierarchy "kbd:KEYS|lpm_ram_dq:$00021|altram:sram" File: c:/altera/90sp2/quartus/libraries/megafunctions/lpm_ram_dq.tdf Line: 101 | ||||
| Info: Elaborated megafunction instantiation "kbd:KEYS|lpm_ram_dq:$00021|altram:sram", which is child of megafunction instantiation "kbd:KEYS|lpm_ram_dq:$00021" | ||||
| Error: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 16 warnings | ||||
|     Error: Peak virtual memory: 228 megabytes | ||||
|     Error: Processing ended: Sun Aug 28 15:25:51 2022 | ||||
|     Error: Elapsed time: 00:00:01 | ||||
|     Error: Total CPU time (on all processors): 00:00:01 | ||||
| 
 | ||||
| 
 | ||||
							
								
								
									
										5
									
								
								src/altera/quartus/acex/SP2_ACEX.map.summary
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/altera/quartus/acex/SP2_ACEX.map.summary
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| Analysis & Synthesis Status : Failed - Sun Aug 28 15:25:51 2022 | ||||
| Quartus II Version : 9.0 Build 235 06/17/2009 SP 2 SJ Web Edition | ||||
| Revision Name : SP2_ACEX | ||||
| Top-level Entity Name : SP2_ACEX | ||||
| Family : ACEX1K | ||||
							
								
								
									
										30
									
								
								src/altera/quartus/acex/SP2_ACEX.qpf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/altera/quartus/acex/SP2_ACEX.qpf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| # -------------------------------------------------------------------------- # | ||||
| # | ||||
| # Copyright (C) 1991-2009 Altera Corporation | ||||
| # Your use of Altera Corporation's design tools, logic functions  | ||||
| # and other software and tools, and its AMPP partner logic  | ||||
| # functions, and any output files from any of the foregoing  | ||||
| # (including device programming or simulation files), and any  | ||||
| # associated documentation or information are expressly subject  | ||||
| # to the terms and conditions of the Altera Program License  | ||||
| # Subscription Agreement, Altera MegaCore Function License  | ||||
| # Agreement, or other applicable license agreement, including,  | ||||
| # without limitation, that your use is for the sole purpose of  | ||||
| # programming logic devices manufactured by Altera and sold by  | ||||
| # Altera or its authorized distributors.  Please refer to the  | ||||
| # applicable agreement for further details. | ||||
| # | ||||
| # -------------------------------------------------------------------------- # | ||||
| # | ||||
| # Quartus II | ||||
| # Version 9.0 Build 235 06/17/2009 Service Pack 2 SJ Web Edition | ||||
| # Date created = 03:32:05  August 28, 2022 | ||||
| # | ||||
| # -------------------------------------------------------------------------- # | ||||
| 
 | ||||
| QUARTUS_VERSION = "9.0" | ||||
| DATE = "03:32:05  August 28, 2022" | ||||
| 
 | ||||
| # Revisions | ||||
| 
 | ||||
| PROJECT_REVISION = "SP2_ACEX" | ||||
							
								
								
									
										1918
									
								
								src/altera/quartus/acex/SP2_ACEX.qsf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1918
									
								
								src/altera/quartus/acex/SP2_ACEX.qsf
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										18
									
								
								src/altera/quartus/acex/SP2_ACEX.qws
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/altera/quartus/acex/SP2_ACEX.qws
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | ||||
| [ProjectWorkspace] | ||||
| ptn_Child1=Frames | ||||
| [ProjectWorkspace.Frames] | ||||
| ptn_Child1=ChildFrames | ||||
| [ProjectWorkspace.Frames.ChildFrames] | ||||
| ptn_Child1=Document-0 | ||||
| ptn_Child2=Document-1 | ||||
| ptn_Child3=Document-2 | ||||
| [ProjectWorkspace.Frames.ChildFrames.Document-2] | ||||
| ptn_Child1=ViewFrame-0 | ||||
| [ProjectWorkspace.Frames.ChildFrames.Document-2.ViewFrame-0] | ||||
| DocPathName=KBD_INI2.MIF | ||||
| DocumentCLSID={0b720e69-67da-11d0-bf4f-0000c08cb0c0} | ||||
| IsChildFrameDetached=False | ||||
| IsActiveChildFrame=True | ||||
| ptn_Child1=StateMap | ||||
| [ProjectWorkspace.Frames.ChildFrames.Document-2.ViewFrame-0.StateMap] | ||||
| AFC_IN_REPORT=False | ||||
							
								
								
									
										588
									
								
								src/altera/quartus/acex/VIDEO2.ACF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										588
									
								
								src/altera/quartus/acex/VIDEO2.ACF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,588 @@ | ||||
| -- | ||||
| --  Copyright (C) 1988-2000 Altera Corporation | ||||
| --  Any megafunction design, and related net list (encrypted or decrypted), | ||||
| --  support information, device programming or simulation file, and any other | ||||
| --  associated documentation or information provided by Altera or a partner | ||||
| --  under Altera's Megafunction Partnership Program may be used only to | ||||
| --  program PLD devices (but not masked PLD devices) from Altera.  Any other | ||||
| --  use of such megafunction design, net list, support information, device | ||||
| --  programming or simulation file, or any other related documentation or | ||||
| --  information is prohibited for any other purpose, including, but not | ||||
| --  limited to modification, reverse engineering, de-compiling, or use with | ||||
| --  any other silicon devices, unless such use is explicitly licensed under | ||||
| --  a separate agreement with Altera or a megafunction partner.  Title to | ||||
| --  the intellectual property, including patents, copyrights, trademarks, | ||||
| --  trade secrets, or maskworks, embodied in any such megafunction design, | ||||
| --  net list, support information, device programming or simulation file, or | ||||
| --  any other related documentation or information provided by Altera or a | ||||
| --  megafunction partner, remains with Altera, the megafunction partner, or | ||||
| --  their respective licensors.  No other licenses, including any licenses | ||||
| --  needed under any third party's intellectual property, are provided herein. | ||||
| -- | ||||
| CHIP video2 | ||||
| BEGIN | ||||
| 	DEVICE = AUTO; | ||||
| END; | ||||
| 
 | ||||
| DEFAULT_DEVICES | ||||
| BEGIN | ||||
| 	ASK_BEFORE_ADDING_EXTRA_DEVICES = ON; | ||||
| 	AUTO_DEVICE = EP1K30TC144-1; | ||||
| 	AUTO_DEVICE = EP1K30QC208-1; | ||||
| 	AUTO_DEVICE = EP1K30FC256-1; | ||||
| 	AUTO_DEVICE = EP1K50TC144-1; | ||||
| 	AUTO_DEVICE = EP1K50QC208-1; | ||||
| 	AUTO_DEVICE = EP1K50FC256-1; | ||||
| 	AUTO_DEVICE = EP1K50FC484-1; | ||||
| 	AUTO_DEVICE = EP1K100QC208-1; | ||||
| 	AUTO_DEVICE = EP1K100FC256-1; | ||||
| 	AUTO_DEVICE = EP1K100FC484-1; | ||||
| END; | ||||
| 
 | ||||
| TIMING_POINT | ||||
| BEGIN | ||||
| 	MAINTAIN_STABLE_SYNTHESIS = ON; | ||||
| 	DEVICE_FOR_TIMING_SYNTHESIS = EP1K30FC256-3; | ||||
| 	CUT_ALL_BIDIR = ON; | ||||
| 	CUT_ALL_CLEAR_PRESET = ON; | ||||
| 	FREQUENCY = 200MHz; | ||||
| END; | ||||
| 
 | ||||
| IGNORED_ASSIGNMENTS | ||||
| BEGIN | ||||
| 	IGNORE_CLIQUE_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LOGIC_OPTION_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_TIMING_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_CHIP_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_PIN_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LC_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_DEVICE_ASSIGNMENTS = OFF; | ||||
| 	IGNORE_LOCAL_ROUTING_ASSIGNMENTS = OFF; | ||||
| 	DEMOTE_SPECIFIC_LCELL_ASSIGNMENTS_TO_LAB_ASSIGNMENTS = OFF; | ||||
| 	FIT_IGNORE_TIMING = OFF; | ||||
| END; | ||||
| 
 | ||||
| LOGIC_OPTIONS | ||||
| BEGIN | ||||
| 	|VAO15 :	FAST_IO = ON; | ||||
| 	|VAO14 :	FAST_IO = ON; | ||||
| 	|VAO13 :	FAST_IO = ON; | ||||
| 	|VAO12 :	FAST_IO = ON; | ||||
| 	|VAO11 :	FAST_IO = ON; | ||||
| 	|VAO10 :	FAST_IO = ON; | ||||
| 	|VAO9 :	FAST_IO = ON; | ||||
| 	|VAO8 :	FAST_IO = ON; | ||||
| 	|VAO7 :	FAST_IO = ON; | ||||
| 	|VAO6 :	FAST_IO = ON; | ||||
| 	|VAO5 :	FAST_IO = ON; | ||||
| 	|VAO4 :	FAST_IO = ON; | ||||
| 	|VAO3 :	FAST_IO = ON; | ||||
| 	|VAO2 :	FAST_IO = ON; | ||||
| 	|VAO1 :	FAST_IO = ON; | ||||
| 	|VAO0 :	FAST_IO = ON; | ||||
| END; | ||||
| 
 | ||||
| GLOBAL_PROJECT_DEVICE_OPTIONS | ||||
| BEGIN | ||||
| 	RESERVED_LCELLS_PERCENT = 0; | ||||
| 	RESERVED_PINS_PERCENT = 0; | ||||
| 	SECURITY_BIT = OFF; | ||||
| 	USER_CLOCK = OFF; | ||||
| 	AUTO_RESTART = OFF; | ||||
| 	RELEASE_CLEARS = OFF; | ||||
| 	ENABLE_DCLK_OUTPUT = OFF; | ||||
| 	DISABLE_TIME_OUT = OFF; | ||||
| 	CONFIG_SCHEME = ACTIVE_SERIAL; | ||||
| 	FLEX8000_ENABLE_JTAG = OFF; | ||||
| 	DATA0 = RESERVED_TRI_STATED; | ||||
| 	DATA1_TO_DATA7 = UNRESERVED; | ||||
| 	nWS_nRS_nCS_CS = UNRESERVED; | ||||
| 	RDYnBUSY = UNRESERVED; | ||||
| 	RDCLK = UNRESERVED; | ||||
| 	SDOUT = RESERVED_DRIVES_OUT; | ||||
| 	ADD0_TO_ADD12 = UNRESERVED; | ||||
| 	ADD13 = UNRESERVED; | ||||
| 	ADD14 = UNRESERVED; | ||||
| 	ADD15 = UNRESERVED; | ||||
| 	ADD16 = UNRESERVED; | ||||
| 	ADD17 = UNRESERVED; | ||||
| 	CLKUSR = UNRESERVED; | ||||
| 	nCEO = UNRESERVED; | ||||
| 	ENABLE_CHIP_WIDE_RESET = OFF; | ||||
| 	ENABLE_CHIP_WIDE_OE = OFF; | ||||
| 	ENABLE_INIT_DONE_OUTPUT = OFF; | ||||
| 	FLEX10K_JTAG_USER_CODE = 7F; | ||||
| 	CONFIG_SCHEME_10K = PASSIVE_SERIAL; | ||||
| 	MAX7000S_USER_CODE = FFFF; | ||||
| 	FLEX10K_ENABLE_LOCK_OUTPUT = OFF; | ||||
| 	MAX7000S_ENABLE_JTAG = ON; | ||||
| 	MULTIVOLT_IO = OFF; | ||||
| 	CONFIG_SCHEME_FLEX_6000 = PASSIVE_SERIAL; | ||||
| 	FLEX6000_ENABLE_JTAG = OFF; | ||||
| 	FLEX10K_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = OFF; | ||||
| 	FLEX10KA_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = ON; | ||||
| 	FLEX6000_USE_LOW_VOLTAGE_CONFIGURATION_EPROM = OFF; | ||||
| 	MAX7000AE_USER_CODE = FFFFFFFF; | ||||
| 	MAX7000AE_ENABLE_JTAG = ON; | ||||
| 	FLEX_CONFIGURATION_EPROM = AUTO; | ||||
| 	CONFIG_EPROM_USER_CODE = FFFFFFFF; | ||||
| 	CONFIG_EPROM_PULLUP_RESISTOR = ON; | ||||
| 	MAX7000B_VCCIO_IOBANK1 = 3.3V; | ||||
| 	MAX7000B_VCCIO_IOBANK2 = 3.3V; | ||||
| 	MAX7000B_ENABLE_VREFA = OFF; | ||||
| 	MAX7000B_ENABLE_VREFB = OFF; | ||||
| END; | ||||
| 
 | ||||
| GLOBAL_PROJECT_SYNTHESIS_ASSIGNMENT_OPTIONS | ||||
| BEGIN | ||||
| 	OPTIMIZE_FOR_SPEED = 5; | ||||
| 	MULTI_LEVEL_SYNTHESIS_MAX5000_7000 = OFF; | ||||
| 	AUTO_GLOBAL_CLOCK = ON; | ||||
| 	AUTO_GLOBAL_CLEAR = ON; | ||||
| 	AUTO_GLOBAL_PRESET = ON; | ||||
| 	AUTO_GLOBAL_OE = ON; | ||||
| 	AUTO_FAST_IO = OFF; | ||||
| 	DEVICE_FAMILY = ACEX1K; | ||||
| 	AUTO_REGISTER_PACKING = OFF; | ||||
| 	ONE_HOT_STATE_MACHINE_ENCODING = OFF; | ||||
| 	AUTO_OPEN_DRAIN_PINS = ON; | ||||
| 	AUTO_IMPLEMENT_IN_EAB = OFF; | ||||
| 	MULTI_LEVEL_SYNTHESIS_MAX9000 = ON; | ||||
| 	STYLE = FAST; | ||||
| END; | ||||
| 
 | ||||
| COMPILER_PROCESSING_CONFIGURATION | ||||
| BEGIN | ||||
| 	USE_QUARTUS_FITTER = ON; | ||||
| 	DESIGN_DOCTOR = OFF; | ||||
| 	DESIGN_DOCTOR_RULES = EPLD; | ||||
| 	FUNCTIONAL_SNF_EXTRACTOR = OFF; | ||||
| 	TIMING_SNF_EXTRACTOR = ON; | ||||
| 	OPTIMIZE_TIMING_SNF = OFF; | ||||
| 	LINKED_SNF_EXTRACTOR = OFF; | ||||
| 	RPT_FILE_EQUATIONS = ON; | ||||
| 	RPT_FILE_HIERARCHY = ON; | ||||
| 	RPT_FILE_LCELL_INTERCONNECT = ON; | ||||
| 	RPT_FILE_USER_ASSIGNMENTS = ON; | ||||
| 	GENERATE_AHDL_TDO_FILE = OFF; | ||||
| 	SMART_RECOMPILE = OFF; | ||||
| 	FITTER_SETTINGS = NORMAL; | ||||
| 	PRESERVE_ALL_NODE_NAME_SYNONYMS = OFF; | ||||
| END; | ||||
| 
 | ||||
| COMPILER_INTERFACES_CONFIGURATION | ||||
| BEGIN | ||||
| 	EDIF_NETLIST_WRITER = OFF; | ||||
| 	EDIF_OUTPUT_VERSION = 200; | ||||
| 	XNF_EMULATE_TRI_STATE_BUSES = INTERNAL_LOGIC; | ||||
| 	XNF_TRANSLATE_INTERNAL_NODE_NAMES = ON; | ||||
| 	XNF_GENERATE_AHDL_TDX_FILE = ON; | ||||
| 	VERILOG_NETLIST_WRITER = OFF; | ||||
| 	VHDL_NETLIST_WRITER = OFF; | ||||
| 	USE_SYNOPSYS_SYNTHESIS = OFF; | ||||
| 	SYNOPSYS_COMPILER = DESIGN; | ||||
| 	SYNOPSYS_DESIGNWARE = OFF; | ||||
| 	SYNOPSYS_HIERARCHICAL_COMPILATION = ON; | ||||
| 	SYNOPSYS_BOUNDARY_OPTIMIZATION = OFF; | ||||
| 	SYNOPSYS_MAPPING_EFFORT = MEDIUM; | ||||
| 	VHDL_READER_VERSION = VHDL87; | ||||
| 	VHDL_WRITER_VERSION = VHDL87; | ||||
| 	VERILOG_OUTPUT_MAP_ILLEGAL_CHAR = OFF; | ||||
| 	VERILOG_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VHDL_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	EDIF_TRUNCATE_HIERARCHY_PATH = OFF; | ||||
| 	VERILOG_FLATTEN_BUS = OFF; | ||||
| 	VHDL_FLATTEN_BUS = OFF; | ||||
| 	VERILOG_OUTPUT_DELAY_CONSTRUCTS = VO_FILE; | ||||
| 	VHDL_OUTPUT_DELAY_CONSTRUCTS = VHO_FILE; | ||||
| 	VHDL_GENERATE_CONFIGURATION_DECLARATION = OFF; | ||||
| 	EDIF_INPUT_LMF1 = *.lmf; | ||||
| 	EDIF_INPUT_LMF2 = *.lmf; | ||||
| 	EDIF_OUTPUT_EDC_FILE = *.edc; | ||||
| 	EDIF_INPUT_VCC = VCC; | ||||
| 	EDIF_INPUT_GND = GND; | ||||
| 	EDIF_OUTPUT_VCC = VCC; | ||||
| 	EDIF_OUTPUT_GND = GND; | ||||
| 	EDIF_INPUT_USE_LMF1 = OFF; | ||||
| 	EDIF_INPUT_USE_LMF2 = OFF; | ||||
| 	EDIF_OUTPUT_USE_EDC = OFF; | ||||
| 	EDIF_OUTPUT_DELAY_CONSTRUCTS = EDO_FILE; | ||||
| 	EDIF_OUTPUT_MAP_ILLEGAL_CHAR = OFF; | ||||
| 	EDIF_OUTPUT_INCLUDE_SPECIAL_PRIM = OFF; | ||||
| 	EDIF_OUTPUT_FORCE_0NS_DELAYS = OFF; | ||||
| 	EDIF_FLATTEN_BUS = OFF; | ||||
| 	EDIF_BUS_DELIMITERS = []; | ||||
| 	EDIF_INPUT_SHOW_LMF_MAPPING_MESSAGES = OFF; | ||||
| 	NETLIST_OUTPUT_TIME_SCALE = 0.1ns; | ||||
| END; | ||||
| 
 | ||||
| CUSTOM_DESIGN_DOCTOR_RULES | ||||
| BEGIN | ||||
| 	RIPPLE_CLOCKS = ON; | ||||
| 	GATED_CLOCKS = ON; | ||||
| 	MULTI_LEVEL_CLOCKS = ON; | ||||
| 	MULTI_CLOCK_NETWORKS = ON; | ||||
| 	STATIC_HAZARDS_BEFORE_SYNTHESIS = ON; | ||||
| 	STATIC_HAZARDS_AFTER_SYNTHESIS = OFF; | ||||
| 	PRESET_CLEAR_NETWORKS = ON; | ||||
| 	ASYNCHRONOUS_INPUTS = ON; | ||||
| 	DELAY_CHAINS = ON; | ||||
| 	RACE_CONDITIONS = ON; | ||||
| 	EXPANDER_NETWORKS = ON; | ||||
| 	MASTER_RESET = OFF; | ||||
| END; | ||||
| 
 | ||||
| SIMULATOR_CONFIGURATION | ||||
| BEGIN | ||||
| 	CHECK_OUTPUTS = OFF; | ||||
| 	USE_DEVICE = OFF; | ||||
| 	SETUP_HOLD = OFF; | ||||
| 	OSCILLATION = OFF; | ||||
| 	OSCILLATION_TIME = 0.0ns; | ||||
| 	GLITCH = OFF; | ||||
| 	GLITCH_TIME = 0.0ns; | ||||
| 	START_TIME = 0.0ns; | ||||
| 	BIDIR_PIN = STRONG; | ||||
| 	END_TIME = 10.0us; | ||||
| END; | ||||
| 
 | ||||
| TIMING_ANALYZER_CONFIGURATION | ||||
| BEGIN | ||||
| 	ANALYSIS_MODE = REGISTERED_PERFORMANCE; | ||||
| 	AUTO_RECALCULATE = OFF; | ||||
| 	CUT_OFF_IO_PIN_FEEDBACK = ON; | ||||
| 	CUT_OFF_CLEAR_AND_PRESET_PATHS = ON; | ||||
| 	LIST_ONLY_LONGEST_PATH = ON; | ||||
| 	CELL_WIDTH = 18; | ||||
| 	DELAY_MATRIX_OPTIONS = SHOW_ALL_PATHS; | ||||
| 	INCLUDE_PATHS_GREATER_THAN = OFF; | ||||
| 	INCLUDE_PATHS_GREATER_THAN_VALUE = 0.0ns; | ||||
| 	INCLUDE_PATHS_LESS_THAN = OFF; | ||||
| 	INCLUDE_PATHS_LESS_THAN_VALUE = 214.7483647ms; | ||||
| 	REGISTERED_PERFORMANCE_OPTIONS = NUMBER_OF_PATHS; | ||||
| 	LIST_PATH_COUNT = 10; | ||||
| 	LIST_PATH_FREQUENCY = 10MHz; | ||||
| 	CUT_OFF_RAM_REGISTERED_WE_PATHS = OFF; | ||||
| END; | ||||
| 
 | ||||
| OTHER_CONFIGURATION | ||||
| BEGIN | ||||
| 	LAST_MAXPLUS2_VERSION = 10.0; | ||||
| 	EXPLICIT_FAMILY = 1; | ||||
| 	COMPILER_DATA = "1,1,0,1,0,0,0,1,1,1,1,0,1,1,1"; | ||||
| 	ORIGINAL_MAXPLUS2_VERSION = 9.6; | ||||
| 	ROW_PINS_PERCENT = 50; | ||||
| 	EXP_PER_LCELL_PERCENT = 100; | ||||
| 	FAN_IN_PER_LCELL_PERCENT = 100; | ||||
| 	LCELLS_PER_ROW_PERCENT = 100; | ||||
| 	LOCAL_INTERCONNECT_PER_LAB_PERCENT = 100; | ||||
| 	DEFAULT_9K_EXP_PER_LCELL = 1/2; | ||||
| 	FLEX_10K_52_COLUMNS = 40; | ||||
| 	NORMAL_LCELL_INSERT = ON; | ||||
| 	CARRY_OUT_PINS_LCELL_INSERT = OFF; | ||||
| 	ROW_PINS_LCELL_INSERT = ON; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.MAX5000 | ||||
| BEGIN | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.MAX7000 | ||||
| BEGIN | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	TURBO_BIT = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.CLASSIC | ||||
| BEGIN | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE NORMAL.FLEX8000 | ||||
| BEGIN | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.MAX5000 | ||||
| BEGIN | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.MAX7000 | ||||
| BEGIN | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	XOR_SYNTHESIS = ON; | ||||
| 	TURBO_BIT = ON; | ||||
| 	PARALLEL_EXPANDERS = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.CLASSIC | ||||
| BEGIN | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE FAST.FLEX8000 | ||||
| BEGIN | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	MINIMIZATION = FULL; | ||||
| 	CASCADE_CHAIN = AUTO; | ||||
| 	CARRY_CHAIN = AUTO; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	REDUCE_LOGIC = ON; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = ON; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	REFACTORIZATION = ON; | ||||
| 	SUBFACTOR_EXTRACTION = ON; | ||||
| 	MULTI_LEVEL_FACTORING = ON; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	REGISTER_OPTIMIZATION = ON; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.MAX5000 | ||||
| BEGIN | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.MAX7000 | ||||
| BEGIN | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.CLASSIC | ||||
| BEGIN | ||||
| 	CASCADE_CHAIN = IGNORE; | ||||
| 	CASCADE_CHAIN_LENGTH = -1; | ||||
| 	CARRY_CHAIN = IGNORE; | ||||
| 	CARRY_CHAIN_LENGTH = -1; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	TURBO_BIT = ON; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = OFF; | ||||
| 	FAST_IO = OFF; | ||||
| 	SOFT_BUFFER_INSERTION = OFF; | ||||
| 	DECOMPOSE_GATES = ON; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = ON; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| END; | ||||
| 
 | ||||
| DEFINE_LOGIC_SYNTHESIS_STYLE WYSIWYG.FLEX8000 | ||||
| BEGIN | ||||
| 	CASCADE_CHAIN = MANUAL; | ||||
| 	CASCADE_CHAIN_LENGTH = 2; | ||||
| 	CARRY_CHAIN = MANUAL; | ||||
| 	CARRY_CHAIN_LENGTH = 32; | ||||
| 	MINIMIZATION = PARTIAL; | ||||
| 	SLOW_SLEW_RATE = OFF; | ||||
| 	XOR_SYNTHESIS = OFF; | ||||
| 	TURBO_BIT = OFF; | ||||
| 	PARALLEL_EXPANDERS = OFF; | ||||
| 	IGNORE_SOFT_BUFFERS = ON; | ||||
| 	SOFT_BUFFER_INSERTION = ON; | ||||
| 	DECOMPOSE_GATES = OFF; | ||||
| 	REDUCE_LOGIC = OFF; | ||||
| 	DUPLICATE_LOGIC_EXTRACTION = OFF; | ||||
| 	NOT_GATE_PUSH_BACK = ON; | ||||
| 	REFACTORIZATION = OFF; | ||||
| 	SUBFACTOR_EXTRACTION = OFF; | ||||
| 	MULTI_LEVEL_FACTORING = OFF; | ||||
| 	RESYNTHESIZE_NETWORK = OFF; | ||||
| 	USE_LPM_FOR_AHDL_OPERATORS = OFF; | ||||
| 	REGISTER_OPTIMIZATION = OFF; | ||||
| END; | ||||
| 
 | ||||
							
								
								
									
										27
									
								
								src/altera/quartus/acex/VIDEO2.INC
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/altera/quartus/acex/VIDEO2.INC
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | ||||
| -- Copyright (C) 1988-2000 Altera Corporation | ||||
| -- Any megafunction design, and related net list (encrypted or decrypted), | ||||
| -- support information, device programming or simulation file, and any other | ||||
| -- associated documentation or information provided by Altera or a partner | ||||
| -- under Altera's Megafunction Partnership Program may be used only to | ||||
| -- program PLD devices (but not masked PLD devices) from Altera.  Any other | ||||
| -- use of such megafunction design, net list, support information, device | ||||
| -- programming or simulation file, or any other related documentation or | ||||
| -- information is prohibited for any other purpose, including, but not | ||||
| -- limited to modification, reverse engineering, de-compiling, or use with | ||||
| -- any other silicon devices, unless such use is explicitly licensed under | ||||
| -- a separate agreement with Altera or a megafunction partner.  Title to | ||||
| -- the intellectual property, including patents, copyrights, trademarks, | ||||
| -- trade secrets, or maskworks, embodied in any such megafunction design, | ||||
| -- net list, support information, device programming or simulation file, or | ||||
| -- any other related documentation or information provided by Altera or a | ||||
| -- megafunction partner, remains with Altera, the megafunction partner, or | ||||
| -- their respective licensors.  No other licenses, including any licenses | ||||
| -- needed under any third party's intellectual property, are provided herein. | ||||
| 
 | ||||
| -- MAX+plus II Include File | ||||
| -- Version 10.0 9/14/2000 | ||||
| -- Created: Mon Nov 19 00:36:42 2001 | ||||
| 
 | ||||
| FUNCTION video2 (clk42, start_up, copy_sinc_h, copy_sinc_v, wr, vai[19..0], d[7..0], mdi[15..0], vdm0[7..0], vdm1[7..0], vdm2[7..0], vdm3[7..0], zx_port[7..0], dir_port[7..0], double_cas, mouse_x[9..0], mouse_y[9..0]) | ||||
|     WITH (MODE, MOUSE) | ||||
|     RETURNS (ct[5..0], cth[5..0], ctv[8..0], ctf[6..0], blank, vao[15..0], vdo0[7..0], vdo1[7..0], vdo2[7..0], vdo3[7..0], v_wr[3..0], v_wen[3..0], v_cs[1..0], wr_pix, intt); | ||||
							
								
								
									
										692
									
								
								src/altera/quartus/acex/VIDEO2.TDF
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										692
									
								
								src/altera/quartus/acex/VIDEO2.TDF
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,692 @@ | ||||
| 
 | ||||
| 	TITLE "Video-controller"; | ||||
| 
 | ||||
| INCLUDE "lpm_ram_dp"; | ||||
| 
 | ||||
| PARAMETERS | ||||
| 	( | ||||
| 	MODE = "SPRINTER", | ||||
| 	MOUSE = "NO", | ||||
| 	HOR_PLACE = H"50", | ||||
| 	VER_PLACE = H"91"   -- 122h/2 | ||||
| 	); | ||||
| 
 | ||||
| SUBDESIGN video2 | ||||
| 	( | ||||
| 	CLK42		: INPUT; | ||||
| 
 | ||||
| 	CT[5..0]	: OUTPUT; | ||||
| 	CTH[5..0]	: OUTPUT; | ||||
| 	CTV[8..0]	: OUTPUT; | ||||
| 	CTF[6..0]	: OUTPUT; | ||||
| 
 | ||||
| 	BLANK		: OUTPUT; | ||||
| 
 | ||||
| 	START_UP	: INPUT; | ||||
| 	COPY_SINC_H	: INPUT; | ||||
| 	COPY_SINC_V	: INPUT; | ||||
| 
 | ||||
| 	WR			: INPUT; | ||||
| 
 | ||||
| 	VAI[19..0]	: INPUT;	-- input screen adress | ||||
| 
 | ||||
| 	VAO[15..0]	: OUTPUT; | ||||
| 
 | ||||
| 	D[7..0]		: INPUT; | ||||
| 	MDI[15..0]	: INPUT; | ||||
| 
 | ||||
| 	VDO0[7..0]	: OUTPUT; | ||||
| 	VDO1[7..0]	: OUTPUT; | ||||
| 	VDO2[7..0]	: OUTPUT; | ||||
| 	VDO3[7..0]	: OUTPUT; | ||||
| 
 | ||||
| 	VDM0[7..0]	: INPUT; | ||||
| 	VDM1[7..0]	: INPUT; | ||||
| 	VDM2[7..0]	: INPUT; | ||||
| 	VDM3[7..0]	: INPUT; | ||||
| 
 | ||||
| 	V_WR[3..0]	: OUTPUT; | ||||
| 	V_WEN[3..0]	: OUTPUT; | ||||
| 
 | ||||
| 	V_CS[1..0]	: OUTPUT; | ||||
| 	WR_PIX		: OUTPUT; | ||||
| 
 | ||||
| --	ZX_COLOR[3..0]	: OUTPUT; | ||||
| 
 | ||||
| 	ZX_PORT[7..0]	: INPUT; | ||||
| 	DIR_PORT[7..0]	: INPUT; | ||||
| 
 | ||||
| % | ||||
| 	bit0	- Spectrum SCREEN Switch | ||||
| 	bit1	- Spectrum Adress MODE | ||||
| 	bit2	- Write to Spectrum Screen OFF | ||||
| 	bit3	- MODE page 0/1 | ||||
| 	bit4	- MODE on/off screen | ||||
| 
 | ||||
| 	bit7..5	- Border | ||||
| % | ||||
| 
 | ||||
| 	INTT		: OUTPUT; | ||||
| 
 | ||||
| 	DOUBLE_CAS	: INPUT; | ||||
| 
 | ||||
| 	MOUSE_X[9..0]	: INPUT; | ||||
| 	MOUSE_Y[9..0]	: INPUT; | ||||
| 
 | ||||
| 
 | ||||
| 	) | ||||
| VARIABLE | ||||
| 
 | ||||
| --	CLK84		: NODE; | ||||
| --	CLK84_X		: NODE; | ||||
| --	CLK84_Y		: NODE; | ||||
| 
 | ||||
| 	ZX_COLOR[3..0]	: NODE; | ||||
| 
 | ||||
| 	CT[5..0]	: DFFE; | ||||
| 	CTH[5..0]	: DFFE; | ||||
| 	CTV[8..0]	: DFFE; | ||||
| 	CTF[6..0]	: DFF; | ||||
| 
 | ||||
| 	VXA[19..0]	: DFFE; | ||||
| 
 | ||||
| 	VXD0[7..0]	: DFFE; | ||||
| 	VXD1[7..0]	: DFFE; | ||||
| 	VXD2[7..0]	: DFFE; | ||||
| 	VXD3[7..0]	: DFFE; | ||||
| 
 | ||||
| 	E_WR		: NODE; | ||||
| 	E_WRD		: NODE; | ||||
| 
 | ||||
| 	BLANK		: NODE; | ||||
| 	BORD		: NODE; | ||||
| --	INTT_T		: NODE; | ||||
| 	INTTX		: NODE; | ||||
| 
 | ||||
| 	VLA[17..0]	: DFF; | ||||
| --	SVA[17..0]	: NODE; | ||||
| 	SVA[17..0]	: DFF; | ||||
| --	RSVA[8..0]	: LCELL; | ||||
| 	RSVA[8..0]	: NODE; | ||||
| --	RSVA[8..0]	: DFF; | ||||
| 
 | ||||
| 	V_CST[1..0]	: DFF; | ||||
| 	VCM[2..0]	: DFF; | ||||
| 	TSN_W3		: DFF; | ||||
| 	V_WE		: DFF; | ||||
| 	V_WEX		: DFF; | ||||
| 
 | ||||
| 	V_WEM		: NODE; | ||||
| 	V_WEM2		: NODE; | ||||
| 	V_WRM		: NODE; | ||||
| 	V_WRM2		: NODE; | ||||
| 
 | ||||
| 	V_WEMM		: NODE; | ||||
| 	V_WEMMM		: NODE; | ||||
| 	V_WEMMN		: NODE; | ||||
| 	V_WEMMO		: NODE; | ||||
| 	V_WET[3..0]	: DFF; | ||||
| 
 | ||||
| 	D_PIC0[7..0]	: DFFE; | ||||
| --	D_PIC0_[7..0]	: LCELL; | ||||
| 
 | ||||
| 	D_PIC0_[7..0]	: DFFE; | ||||
| 	D_PIC1_[7..0]	: DFFE; | ||||
| 	D_PIC2_[7..0]	: DFFE; | ||||
| 	D_PIC3_[7..0]	: DFFE; | ||||
| 
 | ||||
| 	D_PICX_[7..0]	: NODE; | ||||
| 
 | ||||
| 	LWR_PIC		: NODE; | ||||
| 	LWR_COL		: NODE; | ||||
| 
 | ||||
| 	WR_PIC		: DFF; | ||||
| 	WR_COL		: DFF; | ||||
| 	LD_PIC		: NODE; | ||||
| MXL: NODE; | ||||
| MXR: NODE; | ||||
| 
 | ||||
| 	RBRVA[10..8]: DFF; | ||||
| 	BRVA[7..0]	: DFF; | ||||
| 	DCOL[7..0]	: DFFE; | ||||
| 
 | ||||
| 	MXWE		: NODE; | ||||
| --	MXCE		: NODE; | ||||
| 
 | ||||
| 	AX128		: NODE; | ||||
| 
 | ||||
| 	BRD[2..0]	: NODE; | ||||
| 
 | ||||
| 	ZX_COL[3..0]	: LCELL; | ||||
| 
 | ||||
| 	ZXA15		: NODE; | ||||
| 	ZXS[5..0]	: NODE; | ||||
| 	ZX_SCREEN	: NODE; | ||||
| 	SCR128		: NODE; | ||||
| 
 | ||||
| 	MODE0[7..0]		: DFFE; | ||||
| 	MODE1[7..0]		: DFFE; | ||||
| 	MODE2[7..0]		: DFFE; | ||||
| --	MODE3[7..0]		: DFF; | ||||
| 
 | ||||
| 	WR_MODE		: DFF; | ||||
| 	LWR_MODE	: NODE; | ||||
| 	X_MODE[7..4]: NODE; | ||||
| 	X_MODE_BOND	: NODE; | ||||
| 
 | ||||
| --	M_CTV[2..0]	: DFF; | ||||
| --	M_CT[5..3]  : DFF; | ||||
| 	M_CTV[2..0]	: LCELL; | ||||
| 	M_CT[5..3]  : LCELL; | ||||
| 
 | ||||
| 	DOUBLE		: DFFE; | ||||
| 
 | ||||
| 	PIC_CLK		: NODE; | ||||
| 
 | ||||
| 	MS_X[9..0]	: DFF; | ||||
| 	MS_Y[9..0]	: DFF; | ||||
| 
 | ||||
| 	MS_POINT	: NODE; | ||||
| 	MS_POINT2	: NODE; | ||||
| 	MS_PNT		: NODE; | ||||
| 
 | ||||
| 	MS_DAT		: LPM_RAM_DP WITH (LPM_WIDTH=16,LPM_WIDTHAD=8,LPM_FILE="MOUSE.MIF"); | ||||
| 
 | ||||
| 	SCR_ENA		: DFFE; | ||||
| 	V_WR_[3..0]	: LCELL; | ||||
| 	V_WEY[3..0]	: LCELL; | ||||
| 
 | ||||
| 	V_WE_R		: NODE; | ||||
| 
 | ||||
| 	V_CSX[3..0]	: NODE; | ||||
| 
 | ||||
| 	V_EN[3..0]	: NODE; | ||||
| 
 | ||||
| 	F_WR		: NODE; | ||||
| 
 | ||||
| BEGIN | ||||
| 
 | ||||
| 	DEFAULTS | ||||
| 		WR_MODE.d	= VCC; -- WR_MODE2.d	= VCC; -- WR_MODE2X.d	= VCC; | ||||
| 		V_CST[].d	= VCC; V_WR[]		= VCC; TSN_W3.d		= VCC; | ||||
| 		V_WE.d		= VCC; WR_COL.d		= VCC; WR_PIC.d		= VCC; | ||||
| 		V_WET[].d	= VCC; | ||||
| 	END DEFAULTS; | ||||
| 
 | ||||
| 	ZX_COLOR[] = ZX_COL[]; | ||||
| 
 | ||||
| --	=== MOUSE counters ======== | ||||
| 
 | ||||
| 	MS_X[].clk	= !CT1; | ||||
| 	CASE LCELL(CTH[5..2] == 12) IS | ||||
| 		WHEN 0 => MS_X[] = MS_X[] + 1; | ||||
| 		WHEN 1 => MS_X[] = (!MOUSE_X[9..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MS_Y[].clk	= !CTH5; | ||||
| 	CASE LCELL(CTV8 & !CTV5 & CTV4) IS | ||||
| 		WHEN 0 => MS_Y[] = MS_Y[] + 1; | ||||
| 		WHEN 1 => MS_Y[] = (GND,!MOUSE_Y[8..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MS_PNT = DFF(((MS_X[] == B"100000XXXX") & (MS_Y[] == B"100000XXXX")),CLK42,,); | ||||
| 
 | ||||
| 	MS_DAT.wren 		= GND; | ||||
| 	MS_DAT.data[] 		= GND; | ||||
| 	MS_DAT.wraddress[]	= GND; | ||||
| 	MS_DAT.wrclock		= CLK42; | ||||
| 	MS_DAT.wrclken		= GND; | ||||
| 	MS_DAT.rden			= VCC; | ||||
| 	MS_DAT.rdaddress[]	= (MS_Y[3..0],MS_X[3..0]); | ||||
| 	MS_DAT.rdclock		= CLK42; | ||||
| 	MS_DAT.rdclken		= VCC; | ||||
| 
 | ||||
| 	IF MOUSE == "NO" GENERATE | ||||
| 		MS_POINT	= GND; | ||||
| 		MS_POINT2	= GND; | ||||
| 	ELSE GENERATE | ||||
| 		MS_POINT	= DFF((MS_PNT & MS_DAT.q0),CLK42,,); | ||||
| 		MS_POINT2	= DFF((MS_PNT & MS_DAT.q1),CLK42,,); | ||||
| 	END GENERATE; | ||||
| 
 | ||||
| --	=== Sinc-counts GENERATOR ============================================ | ||||
| 
 | ||||
| --	CT[].clrn	= START_UP; | ||||
| 
 | ||||
| --	(,CTH[5..0].clrn,CT[5].clrn) = !COPY_SINC_H or HOR_PLACE; | ||||
| --	(,CTH[5..0].prn ,CT[5].prn ) = !COPY_SINC_H or !HOR_PLACE; | ||||
| 
 | ||||
| --	CTV[].clrn = !COPY_SINC_V or VER_PLACE; | ||||
| --	CTV[].prn  = !COPY_SINC_V or !VER_PLACE; | ||||
| 
 | ||||
| 	CT[5].clrn		= !COPY_SINC_H; | ||||
| 
 | ||||
| 	-- set CTH to 50 (32h) | ||||
| 	CTH[0].clrn		= !COPY_SINC_H; | ||||
| 	CTH[1].prn 		= !COPY_SINC_H; | ||||
| 	CTH[2].clrn		= !COPY_SINC_H; | ||||
| 	CTH[3].clrn		= !COPY_SINC_H; | ||||
| 	CTH[4].prn 		= !COPY_SINC_H; | ||||
| 	CTH[5].prn		= !COPY_SINC_H; | ||||
| 
 | ||||
| 	-- set CTV to 122h | ||||
| 	CTV[0].clrn		= !COPY_SINC_V; | ||||
| 	CTV[1].prn		= !COPY_SINC_V; | ||||
| 	CTV[3..2].clrn	= !COPY_SINC_V; | ||||
| 
 | ||||
| 	CTV[4].clrn		= !COPY_SINC_V; | ||||
| 	CTV[5].prn		= !COPY_SINC_V; | ||||
| 	CTV[7..6].clrn	= !COPY_SINC_V; | ||||
| 	CTV[8].prn		= !COPY_SINC_V; | ||||
| 
 | ||||
| 	CT[5..0].clk	= CLK42; | ||||
| 	CTH[5..0].clk	= CLK42; | ||||
| 	CTV[8..0].clk	= CLK42; | ||||
| 
 | ||||
| 	CT[2..0].ena	= VCC; | ||||
| 
 | ||||
| 	CASE CT[2..0] IS | ||||
| 		WHEN 0 => CT[2..0] = 1; | ||||
| 		WHEN 1 => CT[2..0] = 2; | ||||
| 		WHEN 2 => CT[2..0] = 4; | ||||
| 		WHEN 3 => CT[2..0] = 4; | ||||
| 		WHEN 4 => CT[2..0] = 5; | ||||
| 		WHEN 5 => CT[2..0] = 6; | ||||
| 		WHEN 6 => CT[2..0] = 0; | ||||
| 		WHEN 7 => CT[2..0] = 0; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 								  -- for remove sinc jitter | ||||
| --	CT[5..3].ena	= DFF(((CT0 & CT2) or (COPY_SINC_H & !CT4)),CLK42,,); | ||||
| 	CT[5..3].ena	= DFF((CT0 & CT2),CLK42,,); | ||||
| 	CT[5..3]		= CT[5..3]+1; | ||||
| % | ||||
| 	CASE CT[4..3] IS | ||||
| 		WHEN 0 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 1 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 2 => CT[5..3]	= CT[5..3]+1; | ||||
| 		WHEN 3 => CT[5..3]	= CT[5..3]+1; | ||||
| 	END CASE; | ||||
| % | ||||
| 	CTH[].ena		= DFF(((CT[5..2] == 15) & CT0),CLK42,,); | ||||
| 	CTV[].ena		= DFF(((CT[5..2] == 15) & CT0 & (CTH[] == 48)),CLK42,,); | ||||
| 
 | ||||
| 	IF CTH[] == 55 THEN | ||||
| 		CTH[]	= GND; | ||||
| 	ELSE | ||||
| 		CTH[]	= CTH[] + 1; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	IF CTV[] == 319 THEN | ||||
| 		CTV[]	= GND; | ||||
| 	ELSE | ||||
| 		CTV[]	= CTV[] + 1; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	CTF[].clk	= CTV8; | ||||
| 	CTF[]		= CTF[]+1; | ||||
| 
 | ||||
| --	==== Video ========================================================== | ||||
| 
 | ||||
| 	ZXS[]		= ZX_PORT[5..0];	-- pages ZX Screens | ||||
| 	ZX_SCREEN	= ZX_PORT6;			-- enable ZX Screen write | ||||
| 	ZXA15		= ZX_PORT7;			-- ZX A15' line | ||||
| 
 | ||||
| 	SCR128		= DIR_PORT0; | ||||
| 
 | ||||
| --	WR_PIX	= LCELL(TSN_W3); | ||||
| 	WR_PIX	= (TSN_W3); | ||||
| 
 | ||||
| 	DOUBLE.clk = CLK42; DOUBLE.ena = !E_WR; DOUBLE	= DOUBLE_CAS; | ||||
| 	VXA[].clk  = CLK42; VXA[].ena  = !E_WR; | ||||
| 
 | ||||
| 	VXD0[].clk = CLK42; VXD0[].ena = !E_WRD;	VDO0[]	= VXD0[]; | ||||
| 	VXD1[].clk = CLK42; VXD1[].ena = !E_WRD;	VDO1[]	= VXD1[]; | ||||
| 	VXD2[].clk = CLK42; VXD2[].ena = !E_WRD;	VDO2[]	= VXD2[]; | ||||
| 	VXD3[].clk = CLK42; VXD3[].ena = !E_WRD;	VDO3[]	= VXD3[]; | ||||
| 
 | ||||
| --	VXD0[] = D[]; | ||||
| --	VXD1[] = D[]; | ||||
| --	VXD2[] = D[]; | ||||
| --	VXD3[] = D[]; | ||||
| 
 | ||||
| 	(VXD0[],VXD1[]) = MDI[]; | ||||
| 	(VXD2[],VXD3[]) = MDI[]; | ||||
| 
 | ||||
| 	BRD[]		= DIR_PORT[7..5]; | ||||
| 
 | ||||
| 	VCM[].clk	= CLK42; | ||||
| 	TSN_W3.clk	= CLK42; | ||||
| 	V_CST[].clk	= CLK42; | ||||
| 	V_WE.clk	= CLK42; | ||||
| 	V_WET[].clk	= CLK42; | ||||
| 	VLA[].clk	= CLK42; | ||||
| 
 | ||||
| 	SCR_ENA.clk	= CLK42; | ||||
| 	SCR_ENA.ena	= !E_WR; | ||||
| 	SCR_ENA.d	= !(VAI19 or ZX_SCREEN); | ||||
| 
 | ||||
| 	E_WRD	= DFF(E_WR,CLK42,,); | ||||
| 	E_WR = LCELL(WR or !(VAI19 or ZX_SCREEN) or !DFF(WR,CLK42,,)); | ||||
| --	E_WR = LCELL(WR or !DFF(WR,CLK42,,)); | ||||
| 
 | ||||
| --	**************************************************** | ||||
| 
 | ||||
| IF MODE == "SPRINTER" GENERATE | ||||
| 
 | ||||
| --	VAI[19]	- switch adress mode	1 - graf mode, 0 - spectrum mode | ||||
| 
 | ||||
| --	MXWE	= DFF(((DFF(E_WR,CLK42,,) or SCR_ENA)  & MXWE),CLK42,,V_WE); | ||||
| 	MXWE	= DFF(MXWE,CLK42,E_WR,V_WE); | ||||
| 
 | ||||
| 	IF VAI[19] THEN | ||||
| 		-- in graf mode all 256k(512k) range | ||||
| 		VXA[]	= VAI[]; | ||||
| 	ELSE | ||||
| 		-- in spectrum mode 8k/16k range pages | ||||
| 		VXA[]	= (GND,GND,VAI[7..0],ZXS[4..1],LCELL(ZXS0 xor ZXA15 xor VAI13),VAI[12..8]); | ||||
| 	END IF; | ||||
| 
 | ||||
| --	BORD	= DFF((MODE0[7..4] == 15),WR_PIC,,); | ||||
| --	BLANK	= DFF((BORD & MODE03 & MODE02),WR_PIC,,); | ||||
| --	INTTX 	= DFF((BORD & MODE03 & MODE02 & MODE00),WR_PIC,,); | ||||
| 
 | ||||
| 	BORD	= DFF((MODE0[7..4] == 15),LWR_COL,,); | ||||
| 	BLANK	= DFF(((BORD & MODE03 & MODE02) or DIR_PORT4),LWR_COL,,); | ||||
| 	INTTX 	= DFF((BORD & MODE03 & MODE02 & MODE00),LWR_COL,,); | ||||
| 
 | ||||
| 	INTT	= DFF(!(INTTX & (CTV[2..0] == 7)),CT5,,); | ||||
| 
 | ||||
| --	INTT	= DFF((INTTX or DFF(INTTX,CT5,,)),CT5,,); | ||||
| --	INTT	= DFF(!(BLANK & (CTV[2..0] == 7)),CLK42,,MODE0[0]); | ||||
| 
 | ||||
| 	CASE CT[2..0] IS | ||||
| 		WHEN B"110" => VCM[2..0].d = 5; -- 110 -> 101  6 -> 5 | ||||
| 		WHEN B"000" => VCM[2..0].d = 1; -- 000 -> 001  0 -> 1 | ||||
| 		WHEN B"001" => VCM[2..0].d = 4; -- 001 -> 100  1 -> 4 | ||||
| 		WHEN B"010" => VCM[2..0].d = 3; -- 010 -> 011  2 -> 3 | ||||
| 		WHEN B"100" => VCM[2..0].d = 2; -- 100 -> 010  4 -> 2 | ||||
| 		WHEN B"101" => VCM[2..0].d = 0; -- 101 -> 000  5 -> 0 | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	CASE VCM[1..0] IS | ||||
| 		WHEN 0 => | ||||
| 			VLA[].d	= (BRVA[7..0],VCC,VCC,VCC,VCC,VCC,RBRVA[10..8],GND,GND); | ||||
| 			V_CST[].d = (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 			IF VCM2 THEN | ||||
| --				TSN_W3.d  = X_MODE5; | ||||
| 				TSN_W3.d  = X_MODE_BOND; | ||||
| --				V_CST[].d = (VCC,X_MODE5); | ||||
| 			ELSE | ||||
| 				TSN_W3.d  = X_MODE_BOND; | ||||
| --				V_CST[].d = (VCC,X_MODE_BOND); | ||||
| 			END IF; | ||||
| 		WHEN 1 => | ||||
| 			WR_PIC.d	= !VCM2; | ||||
| 			WR_COL.d	= VCM2; | ||||
| 			VLA[].d		= SVA[]; | ||||
| 			V_CST[].d = (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 		WHEN 2 => | ||||
| 			VLA[].d		= VXA[17..0]; | ||||
| 			V_CST[].d 	= (!VXA18,VXA18) or MXWE; | ||||
| 			V_WE.d		= MXWE; | ||||
| 			V_WEX.d		= GND; | ||||
| 			V_WET[].d	= MXWE or !((!VXA1 & !VXA0),(!VXA1 & VXA0),(VXA1 & !VXA0),(VXA1 & VXA0)); | ||||
| 		WHEN 3 => | ||||
| --			WR_PIC.d	= X_MODE5; | ||||
| --			NEW 26.08.2022, fix bug with first column | ||||
| --			it was reproducing when changes mode 320 -> 640, like any 320px screen squares -> text mode squares | ||||
| 			WR_PIC.d	= MODE0[5]; | ||||
| 			VLA[].d		= (DIR_PORT3,CTH[5..0],CT5,VCC,VCC,CTV[8..3],GND,GND); | ||||
| 			WR_MODE.d	= !(CT[5..3] == B"111") & !(CT4 & CT3 & !MODE0[5]); | ||||
| 			V_CST[].d 	= (VCC,GND); | ||||
| 			V_WE.d		= VCC; | ||||
| 			V_WEX.d		= VCC; | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	choose V-RAM komplect | ||||
| 
 | ||||
| 	V_CST1.prn	= GND; | ||||
| --	V_CS0.clrn	= GND; | ||||
| 	V_CST0.prn	= (LCELL(DFF(GND,!CLK42,,!V_CST0))); | ||||
| 	V_CS1	= VCC; | ||||
| --	V_CS0	= LCELL(V_CST0); | ||||
| 
 | ||||
| 	V_CSX0	= LCELL(!CLK42); | ||||
| 	V_CSX1	= LCELL(V_CSX0); | ||||
| 	V_CSX2	= LCELL(V_CSX1 & V_CSX0); | ||||
| 	V_CSX3	= LCELL(V_CSX2); | ||||
| 
 | ||||
| --	V_CS0	= V_CSX3; | ||||
| 	V_CS0	= GND; | ||||
| 
 | ||||
| --	===================== | ||||
| 
 | ||||
| 	SVA[].clk	= CLK42; | ||||
| 	SVA[9..6]	= MODE0[3..0]; | ||||
| --	RSVA[].clk	= CLK42; | ||||
| 	(SVA[12..10],SVA[5..0]) = RSVA[]; | ||||
| 
 | ||||
| --	M_CTV[2..0].clk	= CLK42; | ||||
| --	M_CT[5..3].clk	= CLK42; | ||||
| 	M_CTV[2..0]	= (!MODE2[2] & CTV[2..0]) or MODE2[2] & (MODE2[1],CTV[2..1]); | ||||
| 	M_CT[5..3]	= (!MODE2[2] & (CT[5],!CT[4..3])) or MODE2[2] & (MODE2[0],!CT[5..4]); | ||||
| 
 | ||||
| 	CASE (!VCM2,MODE0[4]) IS | ||||
| --	CASE (!VCM1,MODE0[4]) IS | ||||
| 		WHEN B"X0" => | ||||
| 			--	Graf adress  -- | ||||
| 			RSVA[] = (M_CTV[2..0],MODE1[2..0],M_CT[5..3]); | ||||
| 			SVA[17..13] = MODE1[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = CTV[2..0]; | ||||
| --			SVA[5..0]	= (MODE1[2..0],CT5,!CT[4..3]); | ||||
| 		WHEN B"01" => | ||||
| 			--	ZX-atr adress  -- | ||||
| 			RSVA[] = (MODE2[2..0],SCR128,VCC,VCC,GND,!MODE0[7..6]); | ||||
| 			SVA[17..13] = MODE2[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = MODE2[2..0]; | ||||
| --			SVA[5..0]	= (SCR128,VCC,VCC,GND,!MODE0[7..6]); | ||||
| 		WHEN B"11" => | ||||
| 			--	ZX-pic adress  -- | ||||
| 			RSVA[] = (MODE1[2..0],SCR128,MODE0[7..6],CTV2,!CTV1,!CTV0); | ||||
| 			SVA[17..13] = MODE1[7..3]; | ||||
| 
 | ||||
| --			SVA[12..10] = MODE1[2..0]; | ||||
| --			SVA[5..0]	= (SCR128,MODE0[7..6],CTV2,!CTV1,!CTV0); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	X_MODE_BOND	= LCELL(LCELL(DCOL[7..4] == 15) & LCELL(DCOL[3..0] == 15) & DFF((MODE0[7] & MODE0[5] & !MODE0[4]),LWR_COL,VCC,VCC)); | ||||
| 	X_MODE_BOND	= GND; | ||||
| 
 | ||||
| --	LD_PIC	= LCELL((MODE0[5] & DFF((CT[5..3] == B"000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| --	LD_PIC	= LCELL((MODE0[5] & DFF((CT[5..3] == B"000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| 	LD_PIC  = LCELL((MODE0[5] & DFF((CT[5..2] == B"0000"),CLK42,,)) or (!MODE0[5] & DFF((CT[4..2] == B"000"),CLK42,,))); | ||||
| 
 | ||||
| 
 | ||||
| --	CASE (DFF(VLA1,!CLK42,,),DFF(VLA0,!CLK42,,)) IS | ||||
| 
 | ||||
| --	D_PIC0_[].clk	= !CLK42; | ||||
| --	D_PIC1_[].clk	= !CLK42; | ||||
| --	D_PIC2_[].clk	= !CLK42; | ||||
| --	D_PIC3_[].clk	= !CLK42; | ||||
| 
 | ||||
| --	PIC_CLK			= LCELL(LCELL(CLK42)); | ||||
| 	PIC_CLK			= !CLK42; | ||||
| 
 | ||||
| 	D_PIC0_[].clk	= PIC_CLK; | ||||
| 	D_PIC1_[].clk	= PIC_CLK; | ||||
| 	D_PIC2_[].clk	= PIC_CLK; | ||||
| 	D_PIC3_[].clk	= PIC_CLK; | ||||
| 
 | ||||
| 	D_PIC0_[] = VDM0[]; | ||||
| 	D_PIC1_[] = VDM1[]; | ||||
| 	D_PIC2_[] = VDM2[]; | ||||
| 	D_PIC3_[] = VDM3[]; | ||||
| 
 | ||||
| 	CASE (DFF(VLA1,CLK42,,),DFF(VLA0,CLK42,,)) IS | ||||
| 		WHEN 0 => D_PICX_[] = D_PIC0_[]; | ||||
| 		WHEN 1 => D_PICX_[] = D_PIC1_[]; | ||||
| 		WHEN 2 => D_PICX_[] = D_PIC2_[]; | ||||
| 		WHEN 3 => D_PICX_[] = D_PIC3_[]; | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	MODE0[].ena 	= VCC; | ||||
| 	MODE1[].ena 	= VCC; | ||||
| 	MODE2[].ena 	= VCC; | ||||
| 	MODE0[].clk		= LWR_MODE; | ||||
| 	MODE1[].clk		= LWR_MODE; | ||||
| 	MODE2[].clk		= LWR_MODE; | ||||
| 	MODE0[].d		= VDM3[]; | ||||
| 	MODE1[].d		= VDM2[]; | ||||
| 	MODE2[].d		= VDM1[]; | ||||
| 	LWR_MODE		= LCELL(LCELL(WR_MODE)); | ||||
| % | ||||
| 	MODE0[].ena 	= LWR_MODE; | ||||
| 	MODE1[].ena 	= LWR_MODE; | ||||
| 	MODE2[].ena 	= LWR_MODE; | ||||
| 	MODE0[].clk		= CLK42; | ||||
| 	MODE1[].clk		= CLK42; | ||||
| 	MODE2[].clk		= CLK42; | ||||
| 	MODE0[].d		= D_PIC3_[]; | ||||
| 	MODE1[].d		= D_PIC2_[]; | ||||
| 	MODE2[].d		= D_PIC1_[]; | ||||
| 	LWR_MODE		= DFF(!WR_MODE,CLK42,,); | ||||
| % | ||||
| 	X_MODE7	= DFF(MODE0[7],LWR_COL,,); | ||||
| 	X_MODE6	= DFF(MODE0[6],LWR_COL,,); | ||||
| 	X_MODE5	= DFF(MODE0[5],LWR_COL,,); | ||||
| 	X_MODE4 = DFF(MODE0[4],LWR_COL,,); | ||||
| 
 | ||||
| 	VAO[]	= VLA[17..2]; | ||||
| 
 | ||||
| 	WR_PIC.clk		= CLK42; | ||||
| 	WR_COL.clk		= CLK42; | ||||
| 	WR_MODE.clk		= CLK42; | ||||
| 
 | ||||
| --	LWR_PIC		= LCELL(LCELL(WR_PIC)); | ||||
| --	LWR_COL		= LCELL(LCELL(WR_COL)); | ||||
| --	LWR_PIC		= LCELL(WR_PIC); | ||||
| --	LWR_COL		= LCELL(WR_COL); | ||||
| 	LWR_PIC		= DFF(WR_PIC,CLK42,,); | ||||
| 	LWR_COL		= DFF(WR_COL,CLK42,,); | ||||
| 
 | ||||
| --	D_PIC0[].ena	= VCC; | ||||
| --	D_PIC0[].clk	= (LWR_PIC); | ||||
| 	D_PIC0[].ena	= !LWR_PIC; | ||||
| 	D_PIC0[].clk	= CLK42; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	IF LD_PIC THEN | ||||
| --		D_PIC0[] = D_PIC0_[]; | ||||
| 		D_PIC0[] = D_PICX_[]; | ||||
| 	ELSE | ||||
| 		D_PIC0[] = (D_PIC0[6..0],GND); | ||||
| 	END IF; | ||||
| 
 | ||||
| 
 | ||||
| --	DCOL[].clk	= (LWR_COL); | ||||
| 	DCOL[].ena	= !LWR_COL; | ||||
| 	DCOL[].clk	= CLK42; | ||||
| 
 | ||||
| 	IF DFF((MODE0[7..4] == 15),WR_PIC,,) THEN | ||||
| 		DCOL[].d	= (B"00",BRD[2..0],BRD[2..0]); | ||||
| 	ELSE | ||||
| --		DCOL[].d	= D_PIC0_[]; | ||||
| 		DCOL[].d	= D_PICX_[]; | ||||
| 	END IF; | ||||
| 
 | ||||
| 	DCOL[].clrn	= !BLANK; | ||||
| 
 | ||||
| 	BRVA[].clk	= CLK42; | ||||
| 	BRVA[].clrn	= !MS_POINT; | ||||
| 	BRVA[].prn	= !MS_POINT2; | ||||
| 
 | ||||
| -- 	MODE0[4] - graph / text | ||||
| --	MODE0[5] - 320 / 640 resolution | ||||
| 
 | ||||
| --	CASE (LCELL(X_MODE4 or X_MODE5),CT2) IS | ||||
| 	CASE (DFF((MODE0[4] or MODE0[5]),LWR_COL,,),CT2) IS | ||||
| 		WHEN B"1X" => BRVA[7..0] = DCOL[]; | ||||
| 		WHEN B"01" => BRVA[7..0] = (B"0000",DCOL[7..4]); | ||||
| 		WHEN B"00" => BRVA[7..0] = (B"0000",DCOL[3..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	BRVA[10..8] = (x_mode4,RBRVA[9..8]); | ||||
| 	RBRVA[].clk = CLK42; | ||||
| 
 | ||||
| 	CASE (BORD,X_MODE4) IS | ||||
| 		WHEN B"X0" => RBRVA[10..8].d = (GND,X_MODE[7..6]); | ||||
| 		WHEN B"X1" => RBRVA[10..8].d = (VCC,(CTF4 & !BLANK),D_PIC0[7]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| 	RBRVA[9..8].clrn = !BORD; | ||||
| 	RBRVA[10].prn = !BORD; | ||||
| 
 | ||||
| 	CASE (RBRVA[9..8],BRVA7) IS | ||||
| 		WHEN 0,1,4,7 => ZX_COL[] = (BRVA[6],BRVA[5..3]); | ||||
| 		WHEN 2,3,6,5 => ZX_COL[] = (BRVA[6],BRVA[2..0]); | ||||
| 	END CASE; | ||||
| 
 | ||||
| --	V_WET[].prn	= LCELL(DFF(GND,!CLK42,,!V_WE)); | ||||
| --	V_WE.prn	= LCELL(DFF(GND,!CLK42,,!V_WE)); | ||||
| 
 | ||||
| 	V_WE_R		= DFF(GND,!CLK42,,!V_WE); | ||||
| 	V_WE.prn	= V_WE_R; | ||||
| 	V_WET[].prn	= V_WE_R; | ||||
| 
 | ||||
| --	V_WR[]	= LCELL(V_WE) or !((!VXA1 & !VXA0),(!VXA1 & VXA0),(VXA1 & !VXA0),(VXA1 & VXA0)); | ||||
| 
 | ||||
| --	V_WR[]	= (V_WE) or !( | ||||
| 
 | ||||
| 	V_WEX.clk	= CLK42; | ||||
| --	V_WEX.d		= V_WE; | ||||
| --	V_WEX.prn	= (DFF(GND,CLK42,,!V_WEX)); | ||||
| 
 | ||||
| 
 | ||||
| 	V_WEMMM	= LCELL(V_WE); | ||||
| 	V_WEMMN	= LCELL(V_WEMMM); | ||||
| 	V_WEMMO	= LCELL(V_WEMMN); | ||||
| 	V_WEMM	= LCELL(V_WEMMO); | ||||
| 
 | ||||
| 	V_WRM	= LCELL(V_WEMMN & V_WEMMM); | ||||
| 	V_WRM2	= LCELL(V_WEMMN & V_WEMMM); | ||||
| 
 | ||||
| 	V_WEM	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 	V_WEM2	= LCELL(V_WEMMM & V_WEMMO); | ||||
| 
 | ||||
| 	V_EN3	= DFF(!(!VXA1 & (!VXA0 or DOUBLE)),CLK42,F_WR,); | ||||
| 	V_EN2	= DFF(!(!VXA1 & (VXA0 or DOUBLE)) ,CLK42,F_WR,); | ||||
| 	V_EN1	= DFF(!(VXA1 & (!VXA0 or DOUBLE)) ,CLK42,F_WR,); | ||||
| 	V_EN0	= DFF(!(VXA1 & (VXA0 or DOUBLE))  ,CLK42,F_WR,); | ||||
| 
 | ||||
| 	F_WR	= DFF(VCC,V_WE,,); | ||||
| 
 | ||||
| 	V_WR_3	= V_WRM or V_EN3; | ||||
| 	V_WR_2	= V_WRM2 or V_EN2; | ||||
| 	V_WR_1	= V_WRM or V_EN1; | ||||
| 	V_WR_0	= V_WRM or V_EN0; | ||||
| 
 | ||||
| 	V_WEY3	= V_WEM or V_EN3; | ||||
| 	V_WEY2	= V_WEM2 or V_EN2; | ||||
| 	V_WEY1	= V_WEM or V_EN1; | ||||
| 	V_WEY0	= V_WEM or V_EN0; | ||||
| 
 | ||||
| 	V_WR[]	= V_WR_[]; | ||||
| 	V_WEN[]	= V_WEY[]; | ||||
| 
 | ||||
| --	CLK84	= LCELL(CLK42 xor CLK84_X); | ||||
| --	CLK84_X	= DFF(!CLK84_X,CLK84,,); | ||||
| --	CLK84_Y	= CLK84; | ||||
| 
 | ||||
| END GENERATE;	-- end "sprinter" mode | ||||
| 
 | ||||
| 
 | ||||
| END; | ||||
							
								
								
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(0).cnf.cdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(0).cnf.cdb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(0).cnf.hdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(0).cnf.hdb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(1).cnf.cdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(1).cnf.cdb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(1).cnf.hdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(1).cnf.hdb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(2).cnf.cdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(2).cnf.cdb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(2).cnf.hdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(2).cnf.hdb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(3).cnf.cdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(3).cnf.cdb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(3).cnf.hdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/altera/quartus/acex/db/SP2_ACEX.(3).cnf.hdb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik