ぴゅう太に16KB ROM(8000-BFFF)として2Mビットフラッシュメモリ(256KB)をつないでBIOSをフラッシュメモリに吸い出したい
http://d.hatena.ne.jp/tanam/20160220/1455962516
ぴゅう太(8000-BFFF)から見ると256KBフラッシュメモリ(00000-3FFFF)は16KB(00000-03FFF)なので、20KB(0000-4FFF)のBIOSをDUMPするには前半(0000-2FFF)、後半(3000-4FFF)で2回実行する必要があります。
http://www.geocities.jp/parallel_computer_inc/pyuta.zip
*************************************************************** * * FLASH MEMORY WRITER for PYUTA * * 2017/07/12 written by TANAM * ********@*****@*********************@************************** AORG >8000 *************************************************************** * HEADER *************************************************************** DATA >5555 * GAME CARTRIDGE HEADER b @START * GOTO MAIN *************************************************************** * SUB *************************************************************** FLASH_WRITE limi 0 li R4,>9000 li R9,>0000 * li R9,>3000 li R15,>3000 WR_LOOP li R5,>8555 li R6,>AA00 movb R6,*R5 li R5,>8AAA li R6,>5500 movb R6,*R5 li R5,>8555 li R6,>A000 movb R6,*R5 movb *R9,*R4 inc R9 inc R4 dec R15 ci R15,>0000 jne WR_LOOP limi 3 b *R11 ALPHA ci R4,>0023 jgt SPACE ci R4,>000A jlt SPACE NUMBER li R7,CHAR * VDP CHAR ADDRESS TABLE a R4,R4 * R4 = R4 + R4 a R7,R4 * SET CHAR "0" + R4 mov *R4,R7 * SET CHAR ADDRESS TO R7 b @>0194 * PRINT NUMBER SPACE li R7,>1922 * SET CHAR " " ADDR TO R7 b @>0194 * PRINT SPACE *************************************************************** CHAR DATA >19A2,>19AA,>19B2,>19BA,>19C2,>19CA,>19D2,>19DA DATA >19E2,>19EA DATA >1A2A,>1A32,>1A3A,>1A42,>1A4A,>1A52 DATA >1A5A,>1A62,>1A6A,>1A72,>1A7A,>1A82,>1A8A,>1A92 DATA >1A9A,>1AA2,>1AAA,>1AB2,>1ABA,>1AC2,>1ACA,>1AD2 DATA >1ADA,>1AE2,>1AEA,>1AF2 *************************************************************** * MAIN *************************************************************** START li R12,>0060 * INITIAL CELL FUNCTION bl @>019c * li R7,>1800 * VRAM FILL FUNCTION li R8,>f200 * li R9,>2000 * bl @>002c * li R7,>1800 * SCROLL AREA FUNCTION li R8,>02e0 * li R9,>06e0 * bl @>0180 * li R9,>0000 li R15,BOOTMSG LOOP1 li R4,>0000 movb *R15+,R4 swpb R4 ci R4,>0000 jeq CMD1 ai R4,-55 bl @ALPHA b @LOOP1 CMD1 li R9,>0200 li R15,PUSHMSG LOOP2 li R4,>0000 movb *R15+,R4 swpb R4 ci R4,>0000 jeq CMD2 ai R4,-55 bl @ALPHA b @LOOP2 CMD2 bl @>023c * LINE INPUT FUNCTION nop * nop * li R7,>3f9c * INITIAL VRAM ADDRESS li R8,>0000 * INITIAL BUFFER li R9,>0300 li R15,STARTMSG LOOP3 li R4,>0000 movb *R15+,R4 swpb R4 ci R4,>0000 jeq FLASH ai R4,-55 bl @ALPHA b @LOOP3 FLASH li R4,>F000 li R9,FLASH_WRITE li R15,>00a0 LDIR movb *R9+,*R4+ dec R15 ci R15,>0000 jne LDIR bl @>F000 li R9,>0400 li R15,COMPMSG b @LOOP4 ERROR li R9,>0400 li R15,ERRORMSG LOOP4 li R4,>0000 movb *R15+,R4 swpb R4 ci R4,>0000 jeq LOOP5 ai R4,-55 bl @ALPHA b @LOOP4 LOOP5 b @LOOP5 *************************************************************** * DATA *************************************************************** BOOTMSG TEXT "PYUTA FLASH MEMORY WRITER" BYTE >00 PUSHMSG TEXT "PUSH RT KEY TO START" BYTE >00 STARTMSG TEXT "START" BYTE >00 ERRORMSG TEXT "ERROR" BYTE >00 COMPMSG TEXT "COMPLETE" BYTE >00 END
; ; EN29F002T.EQN - EN29F002T PYUTA BIOS DUMPER ; TITLE EN29F002T PYUTA BIOS DUMPER PATTERN A REVISION 1.0 AUTHOR TANAM1972 COMPANY PARALLEL COMPUTER INC DATE 7/12/17 CHIP EN29F002T GAL22V10D NC A15 A14 NC NC NC NC NC NC NC NC GND NC CE_n A14_n CE NC NC NC NC NC NC NC VCC EQUATIONS CE_n = /A15 + A14 A14_n = A14 CE = A15 * /A14
27C020 PYUTA GAL22V10D JUMPER PIN 1 VPP VCC PIN 2 A16 GND PIN 3 A15 GND PIN 4 A12 A3 PIN 5 A7 A8 PIN 6 A6 A9 PIN 7 A5 A10 PIN 8 A4 A11 PIN 9 A3 A12 PIN10 A2 A13 PIN11 A1 A14 PIN12 A0 A15 PIN13 D0 D7 PIN14 D1 D6 PIN15 D2 D5 PIN16 GND GND GND PIN17 D3 D4 PIN18 D4 D3 PIN19 D5 D2 PIN20 D6 D1 PIN21 D7 D0 PIN22 /CE CE_n PIN23 A10 A5 PIN24 /OE /DBIN PIN25 A11 A4 PIN26 A9 A6 PIN27 A8 A7 PIN28 A13 A2 PIN29 A14 A14_n PIN30 A17 GND PIN31 /WE /WE PIN32 VCC VCC VCC A1 A14 A0 A15 SELEXM CE