
代ããã«ãããŒããŠã§ã¢ã¹ã¿ãã¯ã¯ãããŸããã代ããã«ããã®RAMèªäœã®WPã¬ãžã¹ã¿ã®å é ãžã®ãã€ã³ã¿ãŒãå€æŽããããšã«ãããã«ãŒãã³ã®åŒã³åºãæã«å€ãä¿åããŸãïŒSparcã®ã¬ãžã¹ã¿ãŠã£ã³ããŠã«äŒŒãŠããŸãïŒã ç¥å ïŒTI-990ïŒã§ã¯ããã«ãã¿ã¹ã¯ãå®è£ ãããšãã«ã³ã³ããã¹ããåãæ¿ããããã«ã䜿çšãããŸããã
TMS9900ã®ã¯ããã¯åšæ³¢æ°ã¯3 MHzã§ãããåœä»€ã¯ããªãã®æ°ã®ã¯ããã¯ãµã€ã¯ã«-å°ãªããšã8ãå æããŸããåæã«ãä¹ç®ãšé€ç®ãå®è£ ãããŸãïŒ124ã¯ããã¯ãµã€ã¯ã«ïŒã

èšãæããã°ãè¿œå ã®åšèŸºæ©åšãªãã§ãTI99 / 4Aã¯256ãã€ãã®RAMãçµã¿èŸŒã¿ã®BASIC ROMããã³ã«ãŒããªããžããã°ã©ã ãåãã16ãããã³ã³ãã¥ãŒã¿ã§ãïŒ8kbãŸã§ã®æ£çŽã«ã¢ãã¬ã¹æå®ãããROMãŸãã¯ãã以äžã®ããªãã¯ïŒã
ã«ã»ããããã§ããéåžžã®ããã°ã©ã ã裞ã®ã³ã³ãã¥ãŒã¿ãŒã«ããŒãããããšã¯äžå¯èœã§ãã ãã®ããã®RAMã¯ãããŸããïŒ256ãã€ãã¯ã«ãŠã³ãããããæ®ãã¯ãããªã¡ã¢ãªã§ãïŒã
ãããã£ãŠãæäœéå¿ èŠãªã³ã³ãã¥ãŒã¿ãŒæ§æã¯PEBïŒPeripheral Expansion BoxïŒã§ããããã¯ãæ¡åŒµã«ãŒãããã©ã€ããããã³32kbã¡ã¢ãªæ¡åŒµçšã®ç¹å¥ãªå€§ããªãã¹ã±ããã§ãã ãŸãã¯NanoPEB-äžèšã®ãã¹ãŠãå«ãææ°ã®ããã€ã¹ã
PEB / NanoPEBã®å Žåããšãã£ã¿ãŒ/ã¢ã»ã³ãã©ãŒã«ãŒããªããžãå¿ èŠã§ãïŒããããªããšãBASICã§ããã°ã©ã ãããŠã³ããŒãããŠå®è¡ã§ããã ãã§ãªããåè¿°ã®è¿œå ã®32 KBã®RAMãå«ãŸããŸãïŒã

ãµãŠã³ãã¯TMS9919ãä»ããŠåºåãããŸãïŒã¢ããã°ã®SN76489ã¯IBM PCjrãBBC MicroãColecoVisionãäžéšã®ã»ã¬ã³ã³ãœãŒã«ã§äœ¿çšãããŠããŸããïŒã
4ãã£ãã«ïŒ3ã€ã®é·æ¹åœ¢ãžã§ãã¬ãŒã¿ãŒãš1ã€ã®ãã€ãºãžã§ãã¬ãŒã¿ãŒïŒã16ããªã¥ãŒã ã¬ãã«ã
TMS9900ããã»ããµïŒTMS9985ïŒã®8ãããããŒãžã§ã³ãåœææºåãã§ããŠããªãã£ããšããäºå®ã«ãããããã深床ã®ç¹ã§ãã®ãããªäžåäžã§ãæã«ã¯åä»ãªã¢ãŒããã¯ãã£ãåŸããããšèããããŠããŸãã
ãœãããŠã§ã¢ã«é¢ããŠã¯ãTI99 / 4Aã¯æè²ç®çãç®çãšããŠããŸããïŒå®éãAtariãCommodoreãšã¯å¯Ÿç §çã§ãïŒã äžèšã®ã¢ãŒããã¯ãã£ã®å¥åŠãªç¹ãšåãããŠãããã¯éåžžã«å°ãªãã²ãŒã ïŒããããã°ïŒã«ã€ãªãããŸããã ã³ã³ãã¥ãŒã¿ãŒãç±³åœã ãã§é åžãããŠãããšããäºå®ã¯ããã¢ã·ãŒã³ã®æ¬ åŠãããã«è¿œå ããŸããïŒãã®ãã©ãããã©ãŒã ã§ã¯ãç§ã®99troã€ã³ããã¯2çªç®ã ã£ãããã§ãïŒã
çŸåšã®ããžãã¹ã®ç¶æ
ãã§ã«è¿°ã¹ãããã«ãã«ãŒããªããžïŒããå ŽåïŒããäœããéå§ã§ããå Žåãé€ãã裞ã®TI99 / 4aã§ã¯ã»ãšãã©äœãã§ããŸããã éåžžã®æäœã«å¿ èŠãªPEBæ¡åŒµãã¹ã±ããã¯éåžžã«é«äŸ¡ã§ãããå€ãã®ã¹ããŒã¹ãå æããŸãã æŽå²çã«ãTIã§ã®ãã¹ãŠã®é倧ãªéçºãšãã¹ãŠã®ã¢ã¯ã·ã§ã³ã¯ãŸã£ããåãPEBã«çµã³ä»ããããŠããããšãå€æããããããã·ã³ã®çŸä»£ã®ãã¡ã³ã¯ããããšãã¥ã¬ãŒãããéãæ©ã¿ãŸããïŒèª°ãROMã«ãŒããªããžã®ãšãã¥ã¬ãŒã¿ãŒãæ°ã«ããªãããã§ãïŒã
PEBã®ææ°ã®ä»£æ¿åã¯NanoPEBã§ãã ããçšåºŠã®å¿èåãããã°ãebayã§ããŸãã¯50ã80eã®åã ã®å£²ãæããèŠã€ããããšãã§ããŸãã
ãã®ããã€ã¹ã¯ãã³ã³ãã¥ãŒã¿ãŒã®å³åŽã®ããŒãïŒé³å£°ã·ã³ã»ãµã€ã¶ãŒãšåãå Žæã«æ¿å ¥ããŸããã·ã³ã»ãµã€ã¶ãŒãä»ããŠæ¿å ¥ããããšãã§ããŸãïŒã32kbã®è¿œå RAMã3ã€ã®ãã©ã€ãïŒã³ã³ãã¯ããã©ãã·ã¥ã«ãŒãäžïŒãRS-232ããŒãããšãã¥ã¬ãŒãããŸãã
ãã¹ãŠãåãCF7 +ããã€ã¹ããããŸãããRS-232ã®ä»£ããã«ãã©ã¬ã«ã»ã³ãããã¯ã¹ããŒãããããŸãã
NanoPEBãååšããã ãã§ãBASICäžã®ããã°ã©ã ã®ã¿ãããŠã³ããŒãã§ããŸãïŒæšæºã®TI BASICããã¯ãå®å šã«ããŒãã£ã§éèªæãªãããã³ã°ãé€ããããã°ã©ã ããã·ã³ã³ãŒãã§å®è¡ããããšã¯ã§ããŸããïŒã
ãããã£ãŠãæäžéšã®ããŒãã«åºå®ãããŠãããšãã£ã¿ãŒ/ã¢ã»ã³ãã©ãŒïŒEAïŒã«ãŒããªããžã絶察ã«å¿ èŠã§ãã ããã«ãããéåžžã®ããã°ã©ã ãæ¢ã«ããŠã³ããŒãããŠå®è¡ã§ããŸãã ã«ãŒããªããžã¯ebayã§ãæ€çŽ¢ãããŸãã 代ããã«ã«ãŒããªããžExtended BasicïŒXBïŒã䜿çšã§ããããã§ãã
ããã°ã©ã ãCompactFlashã«ãŒãã«è»¢éããã«ã¯ãç¹å¥ãªãŠãŒãã£ãªãã£ã䜿çšããå¿ èŠããããŸãã æã人æ°ã®ããã®ã¯ti99dirïŒWindowsçšïŒã§ãã
F18Aãããžã§ã¯ã-TMS9918Aãããªã³ã³ãããŒã©ãŒãFPGAã«å®è£ ããããã€ãã®æ©èœãè¿œå ãããã®ã«èšåãã䟡å€ããããŸãã ã€ãŸã éåžžã®TI-99 / 4aã®ãããªãããã¯æ°ãããã®ã«äº€æãããŸãããå€ããœãããŠã§ã¢ã¯ãã¹ãŠä»¥åãšåãã§ãããVGAã¢ãã¿ãŒã«ç»åã衚瀺ãããã以åã¯ã¢ã¯ã»ã¹ã§ããªãã£ããããªã¢ãŒããèšå®ãããããããšãã§ããŸãã
éçº
ããã§ã¯èª¬æããŸããããåºæ¬ããã°ã©ã ã«å ããŠãããã°ã©ã ããã·ã³ã³ãŒãã§è¡šãããšãã§ãã2ã€ã®äž»ãªåœ¢åŒããããŸãããšãã£ã¿ãŒ/ã¢ã»ã³ãã©ãŒãä»ãããã£ã¹ã¯ããã®ããŠã³ããŒããšã«ãŒããªããžã§ãã
EAçµç±ã§ããŠã³ããŒããããã¡ã€ã«ã¯EA3ãšåŒã°ããŸãïŒãšãã£ã¿ãŒ/ã¢ã»ã³ãã©ãŒã§ã¯ã3çªç®ã®ã¡ãã¥ãŒé ç®ãLOAD AND RUNããéžæããŠããŠã³ããŒãããå¿ èŠãããããïŒã ä»»æã®ã¡ã¢ãªé åã§èµ·åã§ããŸãïŒã€ãŸããEAã¯ããŒãæã«ãªã³ã¯ãå®è¡ããŸãïŒã ãšãã¥ã¬ãŒã¿ã®å Žåããã®ãããªãã¡ã€ã«ã¯ãã£ã¹ã¯ã€ã¡ãŒãžïŒ.DSKïŒã«ä¿åãããDis / Fix 80ãšãã圢åŒã«ãªã£ãŠããŸãã
ãŸããããã»ã©é »ç¹ã§ã¯ãããŸããããEA5ãšåŒã°ããã¡ã¢ãªã€ã¡ãŒãžãã¡ã€ã«ã衚瀺ãããå ŽåããããŸãïŒEAã§ã¯ã5çªç®ã®ã¡ãã¥ãŒé ç®ãããã°ã©ã ãã¡ã€ã«ã®å®è¡ããéžæããŠããŒããããŸãïŒã ãããã¯æ¢ã«ã¡ã¢ãªã¢ãã¬ã¹ã«é¢é£ä»ãããããªã³ã¯ãã¡ã€ã«ã§ãã ãšãã¥ã¬ãŒã¿ã¯ããããã°ã©ã ããšããŠãã£ã¹ã¯ã€ã¡ãŒãžã«ãä¿åãããŸãã
確å®ã«ã³ãŒãã§ããã°ã©ã ãã£ã¹ã¯ããããŠã³ããŒãããã«ã¯ãã«ãŒããªããžãšãã£ã¿ãŒ/ã¢ã»ã³ãã©ãŒïŒãŸãã¯ã¢ããã°ïŒãå¿ èŠã§ãã
ã«ãŒããªããžã®ããã°ã©ã ã¯ã¢ãã¬ã¹ã«å³å¯ã«é¢é£ä»ããããŠãããROMã«ãã©ãã·ã¥ãããåãªããã€ããªã§ãïŒãšãã¥ã¬ãŒã¿ã®å Žåãããã¯.RPK圢åŒã§ãããŸãäžè¬çã§ã¯ãããŸãã-.BINïŒã
ã¢ã»ã³ããªèšèªããã°ã©ã ãäœæããã«ã¯ã倧ããç°ãªã2ã€ã®ã¢ãããŒãããããŸãã 1ã€ç®ã¯ããããã GPLèšèªã ããã¯ãããã©ãŒãã³ã¹ãšæ©èœã®äž¡æ¹ã®ç¹ã§ãæ¡åŒµåºæ¬ïŒXBïŒãšã¢ã»ã³ãã©ãŒã®ã¯ãã¹ã§ãã ã€ãŸã ãã¹ãŠã®å ŽåãROMã«ååšããã«ãŒãã³ã¯é »ç¹ã«äœ¿çšãããéèŠãªããšã«ã¯ãå²ã蟌ã¿ãæå¹ã«ããå¿ èŠããããŸãã
2çªç®ã®ãªãã·ã§ã³ã¯ã¢ã»ã³ãã©ãŒã§ãããã«ã€ããŠèª¬æããŸãã
TI-99 / 4Aã®äž»ãªç°åžžãªæ©èœã¯ãå®éã«ã¯TMS9900ããã»ããµãŒã«ãããŸãã åœæã®å®¶åºçšã³ã³ãã¥ãŒã¿ãŒã§äœ¿çšãããŠããã»ãšãã©ã®ããã»ããµãŒãšã¯ã次ã®ç¹ã§åºå¥ãããŸãã
ç©ççã«ãããã»ããµã«ã¯3ã€ã®ã¬ãžã¹ã¿ïŒSTïŒãã©ã°ïŒãPCïŒã³ãã³ããã€ã³ã¿ãŒïŒãWPïŒã¯ãŒã¯ã¹ããŒã¹ãã€ã³ã¿ãŒïŒïŒãããããŸããã ã¬ãžã¹ã¿R0ãR15ã¯ããããå€éšã®ã¹ã¿ãã£ãã¯RAMã«ãããŸãã éå§ã¢ãã¬ã¹ã¯WPã¬ãžã¹ã¿ã«ä¿åãããŠãããå€æŽã§ããŸãã éåžžã> 8300ã«èšå®ãããŸãïŒèšå· ">"ã¯16é²æ°ã·ã¹ãã ãèšå· "ïŒ"-ãã€ããªãæå³ããŸãïŒã
> 8300ãã> 83FFãŸã§ããã¹ã¯ã©ãããããããšåŒã°ãã256ãã€ãã®éç16ãããRAMããããŸãã
ããã䜿çšãããšãä»ã®åç8ãããïŒæšæºæ¡åŒµ32kbïŒãããçŽ2åé«éã«ãªããŸãã
å€ãã®ã¢ãã¬ãã·ã³ã°ã¢ãŒããããã1ã€ã®ã³ãã³ãã§ãããšãã°ãã¡ã¢ãªã»ã«ããå¥ã®ã»ã«ã«å€ã転éãããšåæã«å€ãå€æŽã§ããŸãã
ããã»ããµã«ã¯ã¹ã¿ãã¯ããããŸãããLWPIaddrã³ãã³ãã䜿çšããŠãã¡ã¢ãªé åãžã®ã¬ãžã¹ã¿ã®ãããã³ã°ã䜿çšããŠãã³ã³ããã¹ããä¿åããã³åŸ©å ããããšã«ãªã£ãŠããŸãã
ãµãããã°ã©ã ã¯BL ADDRã³ãã³ãã«ãã£ãŠåŒã³åºããã次ã®ã¢ãã¬ã¹ãR11ã¬ãžã¹ã¿ã«æ¿å ¥ããŸãã ãããã£ãŠãæ»ãã«ã¯B * R11ïŒå¥åRTïŒã䜿çšãããŸãã BLWPããããŸããããã¯ãæ»ãã¢ãã¬ã¹ã«å ããŠã¯ãŒã¯ã¹ããŒã¹ãä¿æããŸãïŒåæã«äœéã§ãïŒã
éåžžãæåã«è¡ãããšã¯ããã¹ãŠã®å²ã蟌ã¿ããªãã«ããŠãã¬ãžã¹ã¿ã®å é ãã¹ã¿ãã£ãã¯RAMã®å é ã«èšå®ããããšã§ãã ãããã£ãŠã調éããã°ã©ã ã¯æ¬¡ã®ããã«ãªããŸãã
DEF START WRKSP EQU >8300 START LIMI 0 LWPI WRKSP ... * SOME CODE HERE END START
ãã®ã¬ãžã¹ã¿ã¢ãŒããã¯ãã£ã«ãããããã°ã©ãã³ã°æ©èœã衚瀺ãããŸãã ããªãã¡ïŒ
1.ã¬ãžã¹ã¿ã«ã¯ãR1ãR2ãªã©ãšããŠã ãã§ãªãïŒã¢ãã¬ã¹ç©ºéã«ããããïŒãã¡ã¢ãªã»ã«ãšããŠã¢ã¯ã»ã¹ã§ããŸãã ããã«ãããç¹ã«ãã¬ãžã¹ã¿ã®äžäœãã€ããšäžäœãã€ããåå¥ã«æäœã§ããŸããããã¯ãå®æ°ã«ãã£ãŠäºåå®çŸ©ãããŠããŸãã
ws0 equ >8300 ; Workspace 0 ; Register direct low-byte access R0L equ ws0+1 ; Workspace 0 R0 low byte R1L equ ws0+3 ; Workspace 0 R1 low byte R2L equ ws0+5 ; Workspace 0 R2 low byte
ãã ããã³ãã³ãã§ã¬ãžã¹ã¿ãã¡ã¢ãªã«åçŽã«çœ®ãæããããšãåžžã«å¯èœã§ãããšã¯éããªãããšã¯æããã§ãïŒãã®ã³ãã³ãã®å Žåãç®çã®ã¢ãã¬ã¹æå®ã¢ãŒãã¯åçŽã«äžå¯èœãªå ŽåããããŸãïŒã
äžæ¹ããŸã å¿ èŠã§ãããªããªã ååã®ã¬ãžã¹ã¿ïŒMOVBãSWPBãABãSBãäžéšã®ããžãã¯ïŒãæäœããã³ãã³ãã¯ã»ãšãã©ãããŸããã
ãã¡ãããçŸåšã€ã³ã¹ããŒã«ãããŠããã¯ãŒã¯ã¹ããŒã¹ã«é¢ä¿ãªããïŒã¡ã¢ãªå ã®å¯Ÿå¿ããã¢ãã¬ã¹ã«ããïŒã¯ãŒã¯ã¹ããŒã¹å ã®ã¬ãžã¹ã¿ã«åžžã«ã¢ã¯ã»ã¹ã§ããŸãã
2.ã¹ã¿ãã¯ããªãããïŒããã°ã©ã ã«ãã£ãŠã·ãã¥ã¬ãŒããããå ŽåããããŸãïŒãã¯ãŒã¯ã¹ããŒã¹ãåãæ¿ããããšã§ã¬ãžã¹ã¿ã®ä¿åãšåŸ©å ãè¡ãããŸãã ãããéäžçã«äœ¿çšãããšãå©çšå¯èœãª256ãã€ãã®é«éSRAMã¯ããã«çµäºããŸã-ãããã¯åžžã«æ¬ èœããŠããŸãã
TMS9900ã®ã³ãŒããã©ã®ããã«èŠãããã瀺ãããã®å°ããªäŸã¯ãHello Worldã§ãã
DEF START WRKSP EQU >8300 VDPWD EQU >8C00 * VDP RAM write data VDPWA EQU >8C02 * VDP RAM read/write address START LIMI 0 * disable interrupts LWPI WRKSP * set default workspace * set VDP RAM start address (low and high byte) LI R0,>0000 ORI R0,>4000 SWPB R0 MOVB R0,@VDPWA SWPB R0 MOVB R0,@VDPWA LI R1,HELLOWORLD * ascii string address LI R2,12 * total chars NEXTCHAR MOVB *R1+,@VDPWD * put next char on screen DEC R2 JNE NEXTCHAR LOOPBACK JMP LOOPBACK * stop and do nothing HELLOWORLD TEXT 'HELLO WORLD!' * string data BYTE 0 END START
ããã¯ãææ°ã®ïŒããªãäŒçµ±çã§ã¯ãªãïŒã¢ã»ã³ãã©ãŒTMS9900ã§ãã æåã¯ãã©ãã«ã®åŸã«ã³ãã³ããªãããšã«å ããŠãã¬ãžã¹ã¿ãŒã¯RãšããŠæ°åã§ã¯ãªãåçŽãªæ°åãšããŠæžã蟌ãŸããŸããã ã€ãŸã å€ãã¢ã»ã³ãã©ã®LI 4.5ãšMOV 7.8ã¯ãæ°ããã¢ã»ã³ãã©ã®LI R4.5ãšMOV R7ãR8ã§ãã
ããã¯èªã¿ããããå¢ããã®ã§ã¯ãªãã£ãããšãããããããã®ã§ãä»ã§ã¯Rãèšè¿°ããŠããŸãïŒãã ããçŸä»£ã®ã¢ã»ã³ãã©ãŒã§ãå€ãããŒãžã§ã³ã®ã¬ã³ãŒããç解ããŠããŸãïŒã ãã ããäžéšã®äººã ã¯äž¡æ¹ã®æ§æã«å¹²æžããŸãã ãã®çµæãåããœãŒã¹ã³ãŒãã§ãå€æ°ã®ããŒã¢ããã¯SLA R5,0ïŒã¬ãžã¹ã¿R0ã®ãããæ°ã ãR5ãå·Šã«ã·ããïŒãšSLA R5,1ïŒ_one_ãããã ãR5ãå·Šã«ã·ããïŒãèŠã€ããããšãã§ããŸãã
ããã€ãã®ïŒå»ç:)é¢å¿ã¯ã³ãã³ãXã«ãããŸããã³ãã³ãXã¯ãã³ãŒãããã©ã¡ãŒã¿ãŒãšããŠæž¡ãããåœä»€ãå®è¡ããŸãã
; B *R11 LI R9,>045B ; B *R11 X R9 ; LI R1,>1234 LI R0,>0201 ; LI R1,xxx X R0 DATA >1234 ; xxx (>1234)
Xã¯ãã¿ãã®ããã²ãŒã·ã§ã³ã ãã§ãªãããããã°ã®ç®çã«ã䜿çšã§ãããšèããããŠããŸãã ããŠãèªå·±ä¿®æ£ã³ãŒããå¿ èŠãªç¶æ³ã§ã¯ã
ã¡ã¢ãªãŒã«ãŒã
> 0000 -----------
ã³ã³ãœãŒã«ROM
> 2000 -----------
äœã¡ã¢ãªæ¡åŒµ
> 4000 -----------
åšèŸºã«ãŒãROM
> 6000 -----------
ã«ãŒããªããžROM / RAM
> 8000 -----------
ã¹ã¯ã©ãããããRAMã¡ã¢ãªãããããã€ã¹
ïŒ> 8300ãã> 83FFãŸã§ã¯ã256ãã€ãã®éçRAMããããŸãã
ã»ãšãã©ã®å Žåãããã»ããµã¬ãžã¹ã¿ã¯8300以äžã§è¡šç€ºãããŸãã ãããªããµãŠã³ããã·ã³ã»ãµã€ã¶ãŒãGROMã«ã¢ã¯ã»ã¹ããããã®From> 8400 to> 9C02ã¢ãã¬ã¹
> A000 -----------
é«ã¡ã¢ãªæ¡åŒµ
ïŒæšæºã®32kb RAMæ¡åŒµãC> A000ã¯éåžžããã£ã¹ã¯ããããŒããããå žåçãªããã°ã©ã ãéå§ããŸãïŒ
...
> FFFF
ROMã«é¢ããŠã¯ãTI-99 / 4aã¯ããããGROMã䜿çšããŸãã ãããã¯å®å šã«ããã»ããµã®ã¢ãã¬ã¹ç©ºéã«ãããã³ã°ãããããã§ã¯ãããŸããããããŒã¿ã¯é 次ã¢ã¯ã»ã¹ãããŸããããŒã¿ã®éå§ã¢ãã¬ã¹ã¯GROMã®ç¹å¥ãªã¢ãã¬ã¹ã«å ¥åãããããããå¥ã®ç¹å¥ãªã¢ãã¬ã¹ããããŒã¿ãèªã¿èŸŒãŸããŸãã ãã®å ŽåãGROMããŒã¿ã®çŸåšã®ã¢ãã¬ã¹ã¯ãèªã¿åãããšã«èªåçã«å¢å ããŸãã
GROMããæååãå°å·ãã
li r0, >0874 ; starting GROM address of small character set GROMSC movb r0,@GROMWA ; set GROM read pointer to address 06B0 (high part) nop ; wait a beat (not sure if necessary) movb @WR0LB,@GROMWA ; set GROM read pointer to address 06B0 (low part) li r0,>0000+(8*32*8) ; VDP Pattern Table start address movb @R0L,@vdpwa ; Send low byte of VDP RAM write address ori r0,>4000 ; Set read/write bits 14 and 15 to write (01) movb r0,@vdpwa ; Send high byte of VDP RAM write address li r1,GROMRD li r2,32 nextchar: movb *r1,@vdpwd movb *r1,@vdpwd movb *r1,@vdpwd movb *r1,@vdpwd movb *r1,@vdpwd movb *r1,@vdpwd movb *r1,@vdpwd ; movb *r1,@vdpwd clr @vdpwd ; skip one byte dec r2 jne nextchar
ã°ã©ãã£ãã¯ã¹
ã°ã©ãã£ãã¯ãšããã¹ãã衚瀺ããããã«ãTDP-99 / 4aã«ã¯VDP TMS9918aãããªããããè£ åãããŠããã MSX1ããã³ColecoVisionã§ã䜿çšãããŠããŸãã
VDPã§ã¯ãããŸãæåããŠããªã15è²ïŒèæ¯ãéããŠèŠããéæãª+1ïŒã§256x192ã®è§£å床ã®ã°ã©ãã£ãã¯ã¹ãšã¢ãã¯ãã¹ãã©ã€ãã衚瀺ã§ããŸã-åããµã€ãºã®32åã®8x8ãŸãã¯16x16ã®éèŠãªå¶éïŒ1è¡ã«4å以äžã®ã¹ãã©ã€ãã
VDPã¯16kb DRAMã§ãããã°ã©ãã£ãã¯ã¹ïŒããã¹ãïŒãè²ãã¹ãã©ã€ãã«åæ£ãããŸãã
ãããªã¡ã¢ãªã¯ãããã»ããµã®ã¢ãã¬ã¹ç©ºéã«ããããããŸããã ããã«æžã蟌ãã«ã¯ãæåã«ç¹å®ã®ã¢ãã¬ã¹ã«ã¢ãã¬ã¹ãèšé²ããããããªã¡ã¢ãªã®éå§ã¢ãã¬ã¹ãå ¥åãã次ã«å¥ã®ã¢ãã¬ã¹ã«å¿ èŠãªå€ãé£ç¶ããŠæžã蟌ãå¿ èŠããããŸãã ãã®å Žåã次ã®åå€ã¯ãããªã¡ã¢ãªã®ã¢ãã¬ã¹ã®1ãã€å¢å ããŸãã
ãããªã¢ãŒããšã¡ã¢ãªå²ãåœãŠã«å¿ããŠãã¢ãã¬ã¹æå®ã®å©äŸ¿æ§ã䜿çšã¡ã¢ãªãããã³è²æ°ïŒãã¯ã»ã«ãããã¯å ïŒã®èŠ³ç¹ããæé©ãªã¢ãŒããéžæã§ããŸãã åºæ¬çã«ããã¹ãŠã®ã¢ãŒãã¯ããã¹ãã§ãã ãã¹ãŠã®å Žåã«ãããŠãç»é¢äžã®ããŸããŸãªå Žæã«é 眮ã§ããå€æŽã§ããããã£ã©ã¯ã¿ãŒããšããæŠå¿µããããŸãã ãã ããå€èŠ³ãã³ãŒããšäžèŽããããã«æåãåããã°ã©ã ã§ãããããå®éã«ã¯ã¢ãŒãã¯æ¢ã«ãã°ã©ãã£ãã¯ãã«ãªã£ãŠããŸãã ãã ããããã¯1980幎代ã®å€ãã®ãããªã³ã³ãããŒã©ãŒã®å žåã§ãã æ¯èŒçæè¿ã®VGAã§ãããã®ãããªæ©äŒããããŸããïŒèè ã¯ãè²çšã«åå¥ã®ã¡ã¢ãªãåãã640x400é«éã¢ãŒããå®è£ ããããã«ããã䜿çšããŸããïŒã
ã»ãšãã©ã®å ŽåãTIã¯ã°ã©ãã£ãã¯ã¢ãŒãIã䜿çšããŸãïŒãã®ã¢ãŒãã§ã¯ãã³ã³ãã¥ãŒã¿ãŒã®é»æºãå ¥ããŠåæåãããšè¡šç€ºãããŸãïŒã ãã®äžã§ã8x8ãããã¯ããšã«2è²ïŒèæ¯ãšç»åïŒãèšå®ã§ããŸãã åèšãããã¯32x24ã ãã®ã¢ãŒãã®å¯äžã®å©ç¹ã¯ãè²ã®å€åçãæ¯èŒçé«ãããšã§ãã
ãŸãããã«ãã«ã©ãŒã¢ãŒã-解å床ã64x48ã®ã°ã©ãã£ãã¯ã¢ãŒãã§ã倧ããªãã¯ã»ã«ããšã«è²ãèšå®ãããŸãïŒãã ããäœããã®çš®é¡ã®ãã©ãºããŸãã¯ANSIã¢ãŒããæç»ããªãéãããã®è§£å床ã§ã¯ïŒããã€ãã®çŽç²ãªããã¹ãã¢ãŒã40x24æå-ã«ã©ãŒãšã¢ãã¯ãã
VDPã§æã匷åã§èå³æ·±ãã¢ãŒãã¯ãããããã°ã©ãã£ãã¯ã¢ãŒãIIïŒå¥åãããããããã¢ãŒããïŒã§ãã ãã®ã¢ãŒãã§ã¯ã8x1ãã¯ã»ã«ãããã¯å ã§2è²ïŒèæ¯ãšç»åïŒã䜿çšã§ããŸãã ã€ãŸããæ°Žå¹³8ãã¯ã»ã«ããšã«2è²ã§ãã æ®å¿µãªããããããã¯ã®é åºïŒãã¯ã»ã«ã®é åºãè²ã®é åºïŒã¯ãæååºåãé€ããã¹ãŠã«ãšã£ãŠéåžžã«äžäŸ¿ã§ã-ãã€ãã¯äžããäžã«0-8ã«ãªãã次ã«å³ãã次ã¯äžããäžã«8-15ã«ãªããŸãã å³ç«¯ã«ã ãã®åŸããã¹ãŠãå·Šããå³ã«åã³ç¹°ãè¿ãããŸãã
ã¢ãŒããèšå®ãããšãå±æ§ã®ã¢ãã¬ã¹ïŒã«ã©ãŒããŒãã«ïŒãããããããïŒãã¿ãŒã³ïŒãããããããã®ãããã¯ã圢æããæåã®é åºïŒååããŒãã«ïŒãã¹ãã©ã€ãã®ããŒã¿ïŒã¹ãã©ã€ãããŒã¿ïŒãã¹ãã©ã€ãã®å±æ§ïŒã¹ãã©ã€ãå±æ§ïŒãèšå®ãããŸãã ã¢ãã¬ã¹ãæå®ããããšã¯ã§ããŸãããçµæãšããŠã16384ãã€ãã®ãã¹ãŠã®ãããªã¡ã¢ãªãåççã«äœ¿çšãããããã«ãããã€ãã®ãªãã·ã§ã³ãéžæããå¿ èŠããããŸãã ããšãã°ãç§ã®ã€ã³ããã99troãã«ã¯ã次ã®ããã«ã¡ã¢ãªãå²ãåœãŠãŸããïŒã°ã©ãã£ãã¯ã¢ãŒãIIïŒïŒ
> 0000-> 1800ãã¿ãŒã³ããŒãã«-6144ãã€ãïŒ> 1800ïŒ
> 1800-> 2000ã¹ãã©ã€ããã¿ãŒã³-64ã¹ãã©ã€ãx 32ãã€ã= 2048ãã€ãïŒ> 800ïŒ
> 2000-> 3800ã«ã©ãŒããŒãã«-6144ãã€ãïŒ> 1800ïŒ
> 3800-> 3b00ååããŒãã«-768ãã€ãïŒ> 300ïŒ
> 3b00-> 3b80ã¹ãã©ã€ãå±æ§= 32ã¹ãã©ã€ãx 4ãã€ã= 128ãã€ãïŒ> 80ïŒ
ã¹ãã©ã€ãã«ã¯2ã€ã®ãµã€ãºããããŸã-8x8ãŸãã¯16x16ïŒãã¹ãŠã®ã¹ãã©ã€ããäžåºŠã«åãæ¿ããããŸãïŒã«å ããŠããããã2åïŒäžåºŠã«ãã¹ãŠïŒåŒã䌞ã°ãããšãã§ããŸãã
ã¹ãã©ã€ãã®ç·æ°ã¯ãç»é¢32ã«åæã«è¡šç€ºãããŸãïŒãã ãã1è¡ã«4ã€ãŸã§è¡šç€ºãããŸãïŒã åæã«ã32åã®16x16ã¹ãã©ã€ãã2ã»ãã䜿çšããã«ã¯ãã¹ãã©ã€ããã¿ãŒã³çšã®2kbã®ã¡ã¢ãªã§ååã§ãã
ã¹ãã©ã€ãããšã«ã次ã®ãã©ã¡ãŒã¿ãŒãèšå®ã§ããŸãïŒã·ãªãŒãºã®åãã€ãã«å¯ŸããŠãã¹ãã©ã€ãå±æ§ãšãªã¢ã䜿çšïŒïŒ
0-åçŽåº§æšïŒ-32-191ïŒ
1-氎平座æšïŒ0ã255ïŒã 255-ç»é¢ã®å³ç«¯ã®åŸãã®ã¹ãã©ã€ãã
2-ãã¿ãŒã³ãååŸããå Žæãžã®ãã€ã³ã¿ãŒïŒã¹ãã©ã€ããã¿ãŒã³å ïŒ
3-ããã4ã7ã¯è²ã決å®ããããã0-æ©æã®ã¯ããã¯ïŒã¹ãã©ã€ããæ°Žå¹³æ¹åã«32ãã¯ã»ã«å·Šã«ã·ããããŸãïŒ
倱æããç·šæãšçµã¿åããããããªã¡ã¢ãªã®çŽæ¥ã¢ãã¬ã¹æå®ã®æ¬ åŠãšãäžåºŠã«1ãã€ã以äžã®è»¢éåœä»€ãããã»ããµã«ãªããããè¿ éã«æŽæ°ã§ããŸããã ããšãã°ãVGMé³æ¥œã䞊è¡ããŠåçããªãã256x8ãã¯ã»ã«é åã®æ°Žå¹³ã¹ã ãŒãºã¹ã¯ããŒã«ãå®è£ ãããšããã¬ãŒã å ã§ã®ããŒã ã®åŸæ¹ãžã®ç§»åã«æéãããããŸãã ã€ãŸã ããæéããããŸããã
ã²ãŒã ïŒçŸä»£ïŒã§ã¯ããã®åé¡ã¯ããªãunningãªæ¹æ³ã§è§£æ±ºãããŸããã¹ã¯ããŒã«ãããšãã¹ã¯ããŒã«ãããé åå šäœãæŽæ°ããããå€æŽã®ã¿ãå¿ èŠã«ãªããŸãã ãããã£ãŠãç»é¢ã®å 容ã¯ããããã®å€æŽãæå°éã«ãªãããã«èæ ®ãããŸãã ãŸããäžè¬çã«äœ¿çšãããã®ã¯ãäœãè²è§£å床ïŒ8x8ãããã¯ããšã«2è²ïŒã®ã°ã©ãã£ãã¯ã¢ãŒãIã§ãã
ä»ã®å€ãã®ã·ã¹ãã ãšåæ§ã«ãTI-99 / 4aã§ã¯ãç»åãããŒã ã®åçŽåž°ç·ã«åãããããšãéåžžã«æãŸããã§ãã ãããè¡ãããã«ãVDPã¯é©åãªå²ã蟌ã¿ãçæããŸã-ãã¬ãŒã ã®äžéšã®æç»ã®éå§æã«ã

1.å²ã蟌ã¿ãå®å šã«ç¡å¹ã«ããããšãã§ããŸãïŒLIMI 0 + VDPå°çšã®åœä»€-ã¬ãžã¹ã¿1ã®å¯Ÿå¿ããããããèšå®ïŒã ãã®å Žåããã¹ãŠãé«éã«ãªããŸãããäœããã®æ¹æ³ã§ãªããŒã¹ããŒã ã远跡ããããšã¯ã§ããŸããã
2.äžæãå®å šã«ãªã³ã«ããŸãïŒLIMI 2ããã³VDPïŒã ãã®åŸãäœããè¡ãç¬èªã®å²ã蟌ã¿ãã³ãã©ããã³ã°ãããããšãã§ããŸãã
3. VDPã§å²ã蟌ã¿ãæå¹ã«ããŸãããLIMI 0åœä»€ã§å²ã蟌ã¿ãç¡å¹ã«ããŸãããã®å Žåããã³ãã©ãŒã¯åŒã³åºãããŸããããVDPã¹ããŒã¿ã¹ã¬ãžã¹ã¿ã®ãããããã§ãã¯ããããšã§ãæåã§ããŒã ãåŸæ¹ã«ç£èŠã§ããŸãïŒã¬ãžã¹ã¿ãèªã¿åã£ãåŸããã®ãããã¯èªåçã«ãªã»ãããããŸãããªã»ãããããšã次ã®å²ã蟌ã¿ã¯çæãããŸããïŒã
vwait: movb >8802,r12 ; read VDP status register andi r12,>8000 jeq vwait ; Wait for vsync
ããªãå žåçãªã¹ããŒã ã¯ãVDPããã®å²ã蟌ã¿ããªã³ã«ãªããäžè¬çãªå²ã蟌ã¿ããªãïŒLIMI 0ïŒã«ãªããšãã§ãããã¡ã€ã³ã«ãŒãã§ã¯çæéïŒLIMI 2ïŒãªã³ã«ãªããããå²ã蟌ã¿ã«æãã£ãŠãããã³ãã©ãŒïŒé³æ¥œã®åçãªã©ïŒãå¶åŸ¡ãååŸããããšããããŸãã
ãã¹ãŠã®ãšãã¥ã¬ãŒã¿ããã®å²ã蟌ã¿ãæ£ããæš¡å£ããããã§ã¯ãããŸããã ããããMESSã¯ãããã»ãŒé©åã«å®è¡ããŸãã å³ã§ã¯ãç°¡åãªãã¹ããèŠãããšãã§ããŸã-ãã¬ãŒã ã®è²ã¯ãåçŽãªãã¬ãŒã¹ïŒå®éã®TIãš2ã€ã®ãšãã¥ã¬ãŒã¿ãŒ-MESSãšjs99erïŒã«æ¯ã¹ãŠå€å°é ããŠå€åããŸãã
é³
1.æšæºé³
é³æ¥œãå¹æé³ãåä¿¡ããããã«ãTMS9919ããããTI-99 / 4aã«ã€ã³ã¹ããŒã«ãããŠããŸãïŒã¢ããã°ïŒSN76489ãSN76496ïŒã 3ã€ã®ç¬ç«ããããŒã³ãžã§ãã¬ãŒã¿ãŒãš1ã€ã®ãã€ãºãžã§ãã¬ãŒã¿ãŒã§ãã 15ã®é³éã¬ãã«ã
ããã¯ããªã人æ°ã®ãããããïŒäžéšã®ã³ã³ãœãŒã«ãIBM PCjr / Tandy-1000ãªã©ã§äœ¿çšïŒã§ãããããå€ãã®æ å ±ããããŸãã
TI-99 / 4açšã®MOD2PSGãã©ãã«ãŒããããŸãïŒéåžžã¯Win7 64ãããã§èµ·åããŸãïŒã ç¹ã«ãpsgmodãã¡ã€ã«ãããŠã³ããŒãããŠãvgmãšepsgmodããšã¯ã¹ããŒãã§ããŸãã
Tursiã«ããEPSGMOD PlayerïŒepsgmod圢åŒã®ããŒã¿ãå¿ èŠã§ãVDPãäžæããããã«ãã³ãã©ãŒããã³ã°ã¢ããããïŒã®2ã€ã®åäœãããã¬ãŒã€ãŒããããŸãã
次ã®ããã«æ¥ç¶ãããŸãã
def start start: lwpi >8320 li r0,musicdata bl @SGPLAY again: limi 2 limi 0 ; .... your code (vsync etc..) ... b @again musicdata: bcopy "music.epsgmod" copy "test_music_playervbr.a99" copy "test_music_player.a99" end start
ãã¬ãŒã€ãŒã®ãã®æ¥ç¶ã§ã¯ããœãŒã¹ããREFãšENDãåé€ããå¿ èŠããããŸãïŒåŸæ¥ã®ã¢ã»ã³ãã©ãŒã§äœ¿çšããããã®ãã®ã§ãïŒã
ã¡ã€ã³ã«ãŒãã§ã¯ãå²ã蟌ã¿ãäžæçã«ã¢ã¯ãã£ãã«ãªãããšã«æ³šæããŠãã ããïŒlimi 2ïŒã ããã¯ããã¬ãŒã€ãŒãåäœããããã«å¿ èŠã§ããããã¯ããªããŒã¹ããŒã ããVDPãäžæããããšã§åäœããŸãïŒ1/60ç§ããšã«çºçããŸãïŒã ãã®å Žåããã¬ãŒã€ãŒã®SGTICKãµãã«ãŒãã³ãåŒã³åºãããŸãã
ãããã£ãŠãNTSCããŒãžã§ã³ã®ã³ã³ãã¥ãŒã¿ãŒãšé³æ¥œãNTSCã§ããããšãéèŠã§ãïŒãã¬ãŒã ã¬ãŒããäžèŽããå¿ èŠããããŸãïŒã
ïŒåãäœè ã®ïŒ2çªç®ã®ãã¬ãŒã€ãŒã¯VGM圢åŒã®ãã¡ã€ã«ãåçããŸãïŒVGMå§çž®çšã®VGMCompãŠãŒãã£ãªãã£ãå«ãŸããŠããŸãïŒã ãã®ãã³ãã©ãŒã¯ãã³ã°ã¢ããããŸããã60Hzã®åšæ³¢æ°ã§æåã§åŒã³åºãå¿ èŠããããŸãã
次ã®ããã«ãªããŸãã
def start vdpsta equ >8802 ; VDP RAM status start: limi 0 lwpi ws0 ; player expects our workspace to be >8300 clr r2 li r1,musicdata bl @stinit again: clr r12 ; set CRU base (doesn't need to be in loop, but provides delay) tb 2 ; check VDP interrupt input (Tests a CRU bit) jeq loop ; if not set, skip calling music movb @vdpsta,r12 ; read status register, which in turn clears the interrupt bit bl @stplay ; call play function - it returns with the wrong workspace * check for song end movb @songwp+14,r3 jne notdone clr r2 ; play again li r1,musicdata bl @stinit notdone: lwpi >8300 ; so restore the right one ; .... your code (vsync etc..) ... b @again musicdata: bcopy "music.vgm" copy "tiplayer.a99" end start
ç§ã®æèŠã§ã¯ããã¬ãŒã€ãŒã®2çªç®ã®ããŒãžã§ã³ã¯å質ãé«ãïŒç¹å®ã®é³æ¥œã«äŸåããå ŽåããããŸãïŒããã³ãã©ãŒïŒæ¬åœã«å¿ èŠãªå Žåã¯èªåã§ãã³ã°ã¢ããã§ããŸãïŒãããæååŒã³åºãã®æ¹ãæè»æ§ããããŸã-å²ã蟌ã¿ãæå¹ã«ããå¿ èŠã¯ãããŸããã
圌ã«ã¯30Hzãã¬ãŒã€ãŒã®ãªãã·ã§ã³ããããŸãã åæã«ã60 Hzã®åšæ³¢æ°ã§åŒã³åºãå¿ èŠããããŸããã2çªç®ã®åŒã³åºãããšã«äœ¿çšãããŸãã ãããã£ãŠãããã»ããµã®è² è·ã¯è»œæžãããŸãããé³æ¥œã®é³è³ªã¯äœäžããå¯èœæ§ããããŸãïŒäœ¿çšããããšãã§ã¯ãã«ãã£ãŠç°ãªããŸãïŒã
ã©ãããããã¬ãŒã€ãŒã«ïŒãŸãã¯VGMã«ãšã¯ã¹ããŒããããšãã«ïŒãã°ããããããé³æ¥œã®ã«ãŒãã«äžå¯è§£ãªåé¡ãçºçããŸãã
2.é³å£°ã·ã³ã»ãµã€ã¶ãŒ

2ã€ã®åäœã¢ãŒãããããŸãã æåã«ãã³ã³ãã¥ãŒã¿ã¯ã·ã³ã»ãµã€ã¶ã«ROMã®ã©ã®åèªãçºé³ãããããæ瀺ããŸãïŒåèªã¯ã»ãšãã©ãããŸããïŒã 2çªç®ïŒSpeak-ExternalïŒã§ã¯ãçŽæ¥å§çž®ãããLPCããŒã¿ã転éããããšãã§ããã·ã³ã»ãµã€ã¶ãŒã¯ãããåçŽã«åçŸããŸãã ããŒã¿ã®ããã±ãŒãžåã«ã¯ãWinXPã§å®è¡ãããå€ä»£ã®QBox Proããã°ã©ã ã䜿çšãããŸã ïŒããã»ã¹ã¯ããã«ç€ºãããŠããŸã ïŒã
ã·ã³ã»ãµã€ã¶ãŒã¯ãã¢ã»ã³ãã©ãŒããã°ã©ã ããçŽæ¥å¶åŸ¡ã§ããŸãã ãã éã³ããã ããªããããšãã°é³å£°ãšãã£ã¿ãªã©ã®ã«ãŒããªããžãå¿ èŠã§ãïŒå ¥åããããã¹ããçºé³ã§ããããã«ããæšæºã®Basicã§åèªãåçããã³ãã³ããè¿œå ããŸãïŒã ã¿ãŒããã«ãšãã¥ã¬ãŒã¿ãŒã«ãŒããªããžã䜿çšãããšãåã ã®é³çŽ ãçºé³ããããããä»»æã®åèªã«çµåã§ããŸãã
æãæåãªãšãã¥ã¬ãŒã¿ãŒã§ã¯ãã·ã³ã»ãµã€ã¶ãŒããµããŒããããŠããŸãã æé«ã®ãµããŒãïŒããŒããŠã§ã¢ãå®å šã«ãšãã¥ã¬ãŒããããïŒã¯MESS / MAMEã§å®è£ ããããšèããããŠããŸãã
以äžã¯ãã·ã³ã»ãµã€ã¶ãŒã®ROMããLPCããŒã¿ãååŸãããHELLOããšããåèªãçºé³ããäŸã§ãã ããã¥ã¡ã³ãã§ã¯ãã³ãŒãã8ããããã¹ã®RAMã§å®è¡ãããå ŽåïŒã€ãŸããã³ãŒãã16ãããã¹ã¯ã©ãããããäžã«ããããšãå¿ èŠïŒãã¹ããŒã¿ã¹ãã§ãã¯ã¯äžå¯èœã§ãããšç€ºãããŠããŸããããšãã¥ã¬ãŒã¿ãŒãšå®éã®ã³ã³ãã¥ãŒã¿ãŒããã§ãã¯ããåŸãããã¯åä¿éºã§ãããšèããããŸãïŒãããããŸããVDPã®å Žåããããã®èŠä»¶ã¯ãã¹ãŠãéã®éåžžã«åæã®ããŒãžã§ã³ã«é¢é£ããŠããŸãã çµæã¯æ¬¡ã®ãããªçãã³ãŒãã§ãã
; speaks 'HELLO' from speech synth ROM def start SPCHRD equ >9000 ; addr to read from synth SPCHWT equ >9400 ; addr to write to synth (>10 - read, >4x - Load-Address, >50 - speak, >60 = speak-ext ) H50 BYTE >50 ; speak command start: limi 0 ; loading speech address (5 nibbles of data required) using >4x Load-Address command ; >4x >4x >4x >4x >40 (end marker >0) li r0,>351a ; address of 'HELLO' in synth ROM li r2,4 ; 4 nibbles loadlp: src r0,4 ; start with least significant nibble mov r0,r1 src r1,4 andi r1,>0f00 ; get only particular nibble ori r1,>4000 ; put in >4x00 format movb r1,@SPCHWT ; write nibble dec r2 jne loadlp li r1,>4000 movb r1,@SPCHWT ; write fifth nibble (end marker) movb @H50,@SPCHWT ; execute speak command loopback: b @loopback end start
ROMããã®ãã¹ãŠã®åèªã®ã¢ãã¬ã¹ã¯ãããã¯Editor Assembler Manualã«èšèŒãããŠããŸãã
QBox Proã䜿çšããŠLPCã«å€æãããä»»æã®é³å£°ãåçããå ŽåãæãåçŽãªå Žåãã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
def SPEAK SPEAK li r2,1750 ; number of speech BYTEs to poke (see end of QBox data) li r3,speech ; speech data address limi 0 ; no interrupts loop movb *r3+,@>9400 ; poke a BYTE of speech data dec r2 jeq quit ; repeat until end of data jmp loop ; else go 'round again quit limi 2 ; interrupts allowed rt speech ; 10 Voiced 4 Unvoiced 8 kHz 5220 ; [Coded LPC] ; .... *.sfm QBox Pro ; nb bytes: [1750] end
QBox Proã§ã¯ãé³å£°ä»ãã®wavãã¡ã€ã«ãæºåããå¿ èŠããããŸãã æ確ãªç·æ§ã®ã¹ããŒããæé©ã§ãã 1ã€ã®ãã¬ãŒãºãçŽ1ãããã€ããå ããŸãã
æã楜èãæž¡ãããšã¯ã§ããŸããã LPCã§ã³ãŒãã£ã³ã°ããåŸããã®ãããªé³ã¯å®å šã«èªèã§ããªããªããŸãã
QBox Proã®èšå®ãšæäœïŒ
byte 8khz 5220 Project/Add files select file Process/Medium bit rate /OK Edit/Concatenations Insert/Concatenation/Concat Name/ "TEST" Insert/Phrase/OK Format/LPC 10V, 4UV /OK Project/Exit/Save
çµæïŒtest.sfm
亀差æ段
PCã§ããã°ã©ã ãéçºããã³ãã¹ãããTI-99 / 4aã«ããŠã³ããŒãããã«ã¯ã次ã®ãã®ãå¿ èŠã§ãã
éïŒ
-PC / Win7ïŒ64ããããè¯ãïŒ
-TI-99 / 4a
-ã«ãŒããªããžãšãã£ã¿ãŒ/ã¢ã»ã³ãã©ãŒïŒãŸãã¯ãã·ã³ã³ãŒãã§ããã°ã©ã ãããŠã³ããŒãããŠå®è¡ã§ãããã®ïŒ
-NanoPEBãŸãã¯CF7 +ïŒãã©ã€ãããšãã¥ã¬ãŒãããCompactFlashã«ãŒãããTI-99 / 4aã«ããã°ã©ã ãããŒãããããïŒ
ãœããïŒ
-å€ãã®TI-99 / 4aãšãã¥ã¬ãŒã¿ãŒã®1ã€ã¯MESS / MAMEãŸãã¯js99erïŒãŸãã¯ãã以äžïŒã§ãã
-ãã¡ã€ã«ãšãã£ã¹ã¯ã€ã¡ãŒãžãæäœããããã®ã¢ã»ã³ãã©ãšãŠãŒãã£ãªãã£ãå«ãxdt99ããã±ãŒãžïŒç¹ã«ãNanoPEBã«å¿ èŠãªåœ¢åŒã§ãã£ã¹ã¯ã€ã¡ãŒãžãCompactFlashã«ãŒãã«æžã蟌ãããã®xvm99ïŒ
ããã»ã¹ã®æ§æïŒ
ã«ãŒããªããžçšã®ããã°ã©ã ãšãã£ã¹ã¯ããããŒãããããã®ããã°ã©ã -ããŸããŸãªãã®ã ãã©ãŒãããïŒRPKããã³DSKïŒã ãã§ãªããã¡ã¢ãªã®æäœã«é¢ããŠãïŒ2çªç®ã®ãªãã·ã§ã³ã¯32kbã®ã¡ã¢ãªæ¡åŒµãäžæåæ¢ããŸãïŒã æçµçã«å®éã®ãã·ã³ã§ã³ãŒããå®è¡ãããšããç®æšãããå Žåã¯ããã£ã¹ã¯ããŒãžã§ã³ã«éäžããå¿ èŠããããŸãã æ€èšããŸãã
ãšãã¥ã¬ãŒã¿ã¯äºãã«å€§ããç°ãªããããæé«ã®ååãä»ããããšã¯éåžžã«å°é£ã§ãã ããã¯ããšãã¥ã¬ãŒã·ã§ã³ã®å質ã®åé¡ã ãã§ãªããå®æããããã°ã©ã ãèµ·åããããšã®å©äŸ¿æ§/åçŽãã®åé¡ã§ããããŸãã
æãæåãªãã®ïŒmessïŒmameïŒãjs99erãv9t9ãclassic99ã
ãããã¯ãã¹ãŠå®ç§ã§ã¯ãããŸããã ãšãã¥ã¬ãŒã¿ãšå®éã®ããŒããŠã§ã¢ãšã®é床ã«10ïŒ ã®å·®ãããããšãæåŸ ããããšã¯ããªãå¯èœã§ãïŒå ·äœçã«ã¯ãmessãšjs99erããã¹ãŠã®ã³ãŒããå®éã®TIããå°ãéãå®è¡ããããšã確èªããŸããã
xdt99ãã¢ã»ã³ãã©ãšããŠäœ¿çšããå Žåãããã»ã¹ã¯æ¬¡ã®ããã«ãªããŸãã
xas99.py -R --jumpstart %1.a99 ( )
-Rãªãã·ã§ã³ã䜿çšãããšããœãŒã¹ããã¹ãå ã®ã¬ãžã¹ã¿ã«é©åãªååãä»ããããšãã§ããŸãïŒr0ãr1ã...ïŒã åŸæ¥ã®ã¢ã»ã³ãã©TMS9900ã§ã¯ãã³ãã³ãå ã®ã¬ãžã¹ã¿ã¯åçŽã«æ°åã§æžãããŠãããããæ··ä¹±ãçããŸãã
xdm99.py work.dsk -a %1.obj -n %1-O -f DIS/FIX80 ( )
ãªããžã§ã¯ããã¡ã€ã«ã¯ãå éšã«16é²ã³ãŒããå«ãããã¹ããã¡ã€ã«ã§ããããšã«æ³šæããŠãã ããã ããã§ããããã¯æçµçãªãã€ããªãã¡ã€ã«ã§ã¯ãããŸããããTI-99 / 4aã«ããã°ã©ã ãããŠã³ããŒãããç¹æ§ïŒãšãã£ã¿ãŒ/ã¢ã»ã³ãã©ãŒçµç±ïŒã«ãããå€ãã®å Žåãæ¢è£œã®ããã°ã©ã ãšèŠãªãããŸãã ããã«ãéåžžãèµ·åæã«ã¡ã¢ãªã®ç¹å®ã®é åã«é¢é£ä»ããããŠããŸããã
æçµçãªãã€ããªãå¿ èŠãªå Žåã¯ãxas99ã«-iãªãã·ã§ã³ãè¿œå ããŸãã次ã«ããã€ã³ã3ããã§ã¯ãªãããšãã£ã¿ãŒ/ã¢ã»ã³ãã©ãŒã®ãã€ã³ã5ããããŒãããå¿ èŠããããŸãã -iã®ä»£ããã«ãå¥ã ã®éšåã«åå²ããã«8kãè¶ ããæçµãã€ããªãã¡ã€ã«ãå¿ èŠãªå Žåã¯ã-bã䜿çšããå¿ èŠããããŸãã
ãŸãã-Lãªãã·ã§ã³ãæå®ãããšã.lstãªã¹ããã¡ã€ã«ãååŸã§ããŸãã
èªåããŒãçšã®ç¹å¥ãªã«ãŒããªããžã€ã¡ãŒãžã«ãããäœæ¥ãå€å°ç°¡çŽ åãããŸãïŒxdt99ããã¥ã¡ã³ãã®ããžã£ã³ãã¹ã¿ãŒãããåç §ïŒããã®ã€ã¡ãŒãžã䜿çšãããšããšãã¥ã¬ãŒã¿ãŒã§ãšãã£ã¿ãŒ/ã¢ã»ã³ãã©ãŒã䜿çšããã«ãã¿ã³ãæŒããŠãã¡ã€ã«åãå ¥åã§ããŸããã«ãŒããªããžãéžæãããšãå®æããã³ãŒãããã£ã¹ã¯ããèªåçã«ããŒããããŸããããšãã°ããã®å Žåã®messïŒmameïŒã¯æ¬¡ã®ããã«å§ãŸããŸãã
mame64.exe ti99_4a -peb:slot8 tifdc -peb:slot2 speech -flop1 %1.dsk -cart jumpstart.rpk -window -ui_active -skip_gameinfo
ãããã¬ãå¿ èŠãªå Žåã¯ã-debugïŒãªãã·ã§ã³ãæå®ãããŠããå Žåã¯ãšãã¥ã¬ãŒã¿ãããããã¬ã«å ¥ã
-` ããŒã§ïŒãè¿œå ããããšãã§ããŸãããã©ã¡ãŒã¿" ti99_4a "ã¯ãã³ã³ãã¥ãŒã¿ã®NTSCããŒãžã§ã³ïŒæãäžè¬çãªïŒã眮ãæããŸãã PALããŒãžã§ã³ã®å Žåãããã¯ti99_4aeã«ãªããŸãã
å°ãªããšããã¬ãŒã ã¬ãŒããç°ãªãããããã®éãã¯éåžžã«éèŠã§ããæåã®å Žåã人å¡60Hzã2çªç®ã®50Hzã誀ã£ãéžæã¯ãããšãã°ãé³æ¥œã®åçé床ãäœäžãããå¯èœæ§ããããŸãïŒNTSCã§äœæãããPALãéžæãããŠããå ŽåïŒã
éçºäžã®ã¢ããªã±ãŒã·ã§ã³ã®ãµã€ãºãããªã倧ããå ŽåããŸãã¯äœãæéããããå Žåã¯ã-speed 20ãªãã·ã§ã³ã䜿çšããŠãšãã¥ã¬ãŒã·ã§ã³ãé«éåã§ããŸã
ããã°ã©ã ã¬ã³ãŒããNanoPEB圢åŒã§CompactFlashã«è»¢éããã«ã¯ãxvm99.pyã䜿çšã§ããŸã
\\.\PHYSICALDRIVE2 1 -w work.dsk
ã³ã³ãã¥ãŒã¿ãŒã®PHYSICALDRIVE2ããCFãââæ¿å ¥ãããŠããããã€ã¹ã«æ£ç¢ºã«å¯Ÿå¿ããŠããããšã確èªããŠãã ããïŒããããªããšããã£ã¹ã¯äžã®ããŒã¿ãæãªãããå¯èœæ§ããããŸãïŒïŒãWindowsã§ã¯ã次ã®ã³ãã³ãã§è¡šç€ºã§ããŸã
wmic diskdrive list brief /format:list
è€æ°ã®ãã©ã€ãããšãã¥ã¬ãŒãããããã«1ã€ã®CFã«è€æ°ã®ã€ã¡ãŒãžãååšããå¯èœæ§ãããããã2çªç®ã®ãã©ã¡ãŒã¿ãŒã¯ãã©ã€ãã«å¯Ÿå¿ããŸãã1ïŒã®DSK1ã
æ«å®çã«ãFAT16ã§CFããã©ãŒãããããããšããå§ãããŸãããã®åŸãTI Basicã§TIPEã«ãåŒã³åºããã©ãŒãããïŒ1ïŒããå ¥åããTI BasicããNanoPEBãæ¿å ¥ããå¿ èŠããããŸãã
ãã©ãã·ã¥ãã©ã€ãã®ã³ã³ãã³ãã衚瀺ããŸãã
xvm99.py \\.\PHYSICALDRIVE2 1 -i
TIèªäœã«ããã°ã©ã ãããŒãããå Žåããšãã£ã¿ãŒ/ã¢ã»ã³ãã©ãŒããã³NanoPEBã§ã«ãŒããªããžãæ¿å ¥ããå¿ èŠããããŸããNanoPEBã次ã«ã³ã³ãã¥ãŒã¿ãŒã®é»æºãå ¥ããŸããã¡ãã¥ãŒã§ããªãã·ã§ã³ "2"-"Editor / Assembler"ãéžæããé ç®3ïŒãŸãã¯5ïŒã§DSK1.FILENAMEãšå ¥åããŠEnterããŒãæŒããŸãã
ãã¡ã€ã«åã®å€§æåå°æåã¯éèŠã§ãã
ä»é²1-ã€ã³ãã99TRO
TI-99 / 4aãç 究ããéçšã§ãã99troã ïŒãœãŒã¹ïŒãæžããŸãããããã¯ãRevision'2016ã§çºè¡šãããChaos Constructions'2016ã§ã®å°ããªæåŸ ã€ã³ããã§ãããœãŒã¹ã³ãŒãã«å ããŠïŒã³ãŒãã¯éåžžã«ã²ã©ã-ãã®ããã«æžããªãã§ãã ããïŒïŒããã§ããã€ãã®èª¬æãããŸãã
äž»ãªã¢ã€ãã¢ã¯ãå¯èœã§ããã°ãã€ã³ãããCommodore 64ã®å€ãcracktroã®ã¹ã¿ã€ã«ãäŒããTI-99 / 4aãããªããã³ãªãŒãã£ãªãããã®ããæ§ãããªæ©èœã«åãããŠèªç¶ã«èª¿æŽããããšã§ãã倧ãã£ã±ã«èšãã°ãç§ã¯ã«ã©ãŒããŽãã¹ã ãŒãºã«ã¹ã¯ããŒã«ããããã¹ãè¡ãè¹è²ã®ã¹ãã©ã€ããã¹ãã©ã€ãããã¶ãäžãã£ãŠããç¢æã®ãããªãã®ã欲ããã£ãã

-ããŒããŠã§ã¢ã¹ã¯ããŒã«ã¯ãããŸããããããªã¡ã¢ãªãã·ããããã³æžãæãããããšã«ãã£ãŠã®ã¿å®è¡ã§ããŸã
- ãããªã¡ã¢ãªãšã®äº€æïŒããã¯ã¹ãã©ã€ããšã°ã©ãã£ãã¯ã¹ããã³ããã¹ãã«ãé©çšãããŸãïŒã¯éåžžã«é ããããã»ããµã®æ¯èŒçé«ãåšæ³¢æ°ã¯ä¿åãããŸããïŒäº€æã®ãã16ããããåæ§ïŒ VDPã䜿çšãããšã8ããããã¹äžã«ç§»åããŸãïŒã
-VDPã«ã¯ãææžåãããŠããªãããŸãã¯é³å£°ã§ææžåãããŠããªããã°ãå€æ°ãããŸãïŒããã¯é©ãããšã§ã¯ãããŸããããTMS9918ã¯æåã®ç¹æ®ãªãããªãããã®1ã€ã§ãïŒãæ°åãããã«ããããã§ã«ã»ãŒå®æããéšåãæŸæ£ããªããã°ãªããªãã£ããšããäºå®ã«è³ããŸããã
-ã¹ãã©ã€ãã®éåžžã«å¶éãããæ©èœ-1è¡ã«ã€ã4ã€ã®ã¿ïŒèªåçã«ç»é¢äžã®ã¹ãã©ã€ãã§äœãã§ããªãããšãæå³ããŸãïŒã1è²ãã¹ãã©ã€ãã®è²ãŸãã¯åº§æšã®ç°¡åãªå€æŽã®ããã®å€æ°ã®ããã»ããµåœä»€ã
-é³æ¥œïŒvgmïŒã®åçã«ã¯ãããªãã®ããã»ããµæéãããããŸãã Tursiã®ãã¬ãŒã€ãŒã®ãœãŒã¹ã³ãŒãã§è¿°ã¹ãããŠããããã«ãããã¯ç¹å®ã®é³æ¥œã«ãã£ãŠç°ãªããŸããã30HzããŒãžã§ã³ã§ã¯2ã20ïŒ ã§ããç§ã®ç¹å®ã®ã±ãŒã¹ã§ã¯ãå°ãªããšã10ã15ïŒ ãåŸãããŸããã
-ãã©ãã«ã¯äŸ¿å©ãªãããã¬ãŒã«ãããŸãïŒå®éãåãç¶æ³ã¯Vectrexãšãã¥ã¬ãŒã¿ãŒã«ãããŸãã-ã©ã¡ãã®å Žåã«ã匷åãªãããã¬ãŒããããŸãããå®éã«ã¯ããããã®äœ¿çšã¯ã¹ããŒãã¢ãããããã¹ããŒããŠã³ããå¯èœæ§ãé«ãããïŒ
-ã³ãŒããè¿ éã«ãã§ãã¯ã§ããªãæ¬ç©ã®éããããè¡ãã«ã¯ããã¹ãŠããªãã«ããUSBãã©ãã·ã¥ãã©ã€ããåé€ããPCã«æ¿å ¥ããã³ãŒããã³ããŒããŠãPCããåé€ããTIã«è²Œãä»ãããã£ã¹ã¯ãšãã¥ã¬ãŒã¿ãŒãšTIèªäœããªã³ã«ãããšãã£ã¿ãŒ/ã¢ã»ã³ãã©ãŒãéžæããããã°ã©ã ããŒããã€ã³ããéžæããŠãDSK1.program_nameãšå ¥åããEnterããŒãæŒããŸãããŠã³ããŒããåŸ ã¡ãŸãïŒçŽ1åïŒã
ãã®çµæã次第ã«ã¢ã€ã¢ã³ã®å®è£ ãèš±å¯ããããã®ã®ã¿ã以åã®ã¢ã€ãã¢ããæ®ããŸããïŒãã¡ãããããããã®ãã©ãããã©ãŒã ãšãã®ããã»ããµã®æåã®ããã°ã©ã ã§ããããšãèæ ®ã«å ¥ããŠïŒïŒ
-CHAOS CONSTRUCTIONS'2016ããããã®é ã®ç¢æ/ããŽ
-é³æ¥œã®ããŒãã«åãããŠç¹æ» ããããã®ç®ãšå£
-æåããšã«è¡šç€ºãããèåããã«ãŒãœã«ããã©ããæ°è¡ã®
ããã¹ãã衚瀺ããŸã
- ããã¹ãè¡ãã¹ã ãŒãºã«ã¹ã¯ããŒã«ããŸã-ããã¯ã°ã©ãŠã³ããã¥ãŒãžãã¯ïŒvgmïŒ
äœããã®åœ¢ã§TI-99 / 4aã®åŒ·ã¿ã䜿çšããããã«ãæ倧ã°ã©ãã£ãã¯ã®ã¢ãŒããéžæããŸãããšè²ã®è§£å床-ã°ã©ãã£ãã¯ã¢ãŒãIIïŒããããããïŒãã²ãŒã ã§ã¯ãéåžžã«ãŸãã«ãã䜿çšãããŸããã 16kbã®ãããªã¡ã¢ãªããã¹ãŠå¿ èŠãšãããããç»åã®æŽæ°ã«é¢ããŠéåžžã«é ãã§ãã
ãã ããã²ãŒã ãšã¯ç°ãªããç§ã®å Žåãããªãã¯ïŒäžè¬çã«ãã¢ãšã€ã³ããã®ç¹åŸŽïŒã䜿çšããããšãã§ããŸãããä»ã®å Žæã§ã¯è²ãåçã«æŽæ°ããŸããã§ãããè±ã«é¢é£ãããã¹ãŠã®ãã®ã¯ãã¡ã€ã³ãµã€ã¯ã«ä»¥å€ã®æåã«äžåºŠã ã確ç«ãããŸããã
ãµã€ã¯ã«ã§ã¯ãããããããã®ã¿ãå€æŽããã2ã€ã®ã¹ãã©ã€ããåãæ¿ãããŸããã

ç§ã¯ããã©ãããã©ãŒã ã®æåã«ãšã£ãŠããã®ïŒãã©ãããã©ãŒã ïŒéçºè ã®16è²ã®æ£ããéžæãããã«éèŠã§ããããçå£ã«èªèããŸããã TI-99 / 4aã®å Žåããããã®è²ã¯éåžžã«ããŸããããŸããïŒããã«ã15åãããŸãïŒã
ããã«ãNTSCãããªä¿¡å·ã®ã«ã©ãŒã³ãŒãã£ã³ã°ã®åé¡ã«åããŠå¯ŸåŠããå¿ èŠããããŸãããåçã¯ãåäžãã¯ã»ã«ã®è²ãã©ã®ããã«å€ãããã瀺ããŠããŸãïŒPALã§ã¯ããããåé¡ãåŒãèµ·ãããŸãããæ¯èŒã«ãªããªãã»ã©å°ããã§ãïŒã
äžéšã®æ»ãããªã¹ã¯ããŒã«ã¯ã1ã€ã®åæ§ã®äŸïŒMatthew HagertyïŒããåãããå€æŽãããŸãããæ£çŽã«èšããšããã®ããã«çãæéãTMS9900ã¢ã»ã³ãã©ãŒããããŸã§äœ¿çšãããã¯ããã¯ãç¹°ãè¿ãã»ã©æ·±ã浞éãããããšã¯ã»ãšãã©ã§ããŸããã§ããããããªãã§ã¯ããã¹ãŠã®äœæ¥ã®å šäœçãªããã©ãŒãã³ã¹ãååã§ã¯ãããŸããã§ããã
ã¹ã¯ããŒã«ã§ã¯ãæåã®éšåãéåžžã«å·§åŠã«å·Šã«ã·ãããããçµæãVRAMã«ã³ããŒãããŸããåèšã§ãé«ã8ãã¯ã»ã«ã®é åãã¹ã¯ããŒã«ããŸãã
äžã§è¿°ã¹ãããã«ãæäœã¯ããããããã«å¯ŸããŠã®ã¿å®è¡ãããŸããçœãšéã®ã¹ããªããã®åœ¢ãããè²ä»ãã®èæ¯ãäºåã«æç»ãããã¹ã¯ããŒã«ã®åœ±é¿ãåããŸããã
ã¹ã¯ããŒã«ã¯ã¡ã€ã³ãµã€ã¯ã«ã§æãé«äŸ¡ãªæäœã§ããããããã¹ãŠãã¹ã¯ããŒã«ããã³é³æ¥œããããã«æŒãåºãããŸãïŒéæ¹åã®ããŒã ã«åãŸãã®ãããããšãé³æ¥œã®é床ãäœäžãå§ããŸãïŒã
æ®å¿µãªãããå®éã«ã¯ããŸã å°ãé ããªããŸããã³ãŒãããããã°ããäž¡æ¹ã®ãšãã¥ã¬ãŒã¿ãŒã¯ãå®éã®éãããå°ãéãåäœããŸãããäœãåé¡ãªã®ãã¯æ確ã§ã¯ãããŸããã
ã«ãŒãœã«ã®åŸãã®ããã¹ãã¯ãç»é¢ã®äžå€®ã«æžã蟌ãŸããŸãããããçŸããå®è£ ããæ¹æ³ã¯ãããããããŸãããããããªã¡ã¢ãªãé ããVDPã®ãã°ããããããæçµçã«ã¯å šå¡ãæŸæ£ããªããã°ãªããŸããã§ããããã®çµæãã«ãŒãã®å埩ããšã«1æåãæç»ãããŸãïŒã€ãŸãã8ãã€ãã®ãããªã¡ã¢ãªãæŽæ°ãããŸãïŒãå¯èœãª8è¡ãã¹ãŠã®ããã¹ãã«ã€ããŠãéãšã°ã¬ãŒã®ã·ã§ãŒãéãã¹ã ãŒãºã«ç§»è¡ããããã«èæ¯ãäºåã«èšå®ãããŠããŸãã
èåã«ãŒãœã«ã¯ãç»åã4ã€ã®ã¡ã¢ãªäœçœ®ããåšæçã«ååŸãããã¹ãã©ã€ãã§ãããµã€ãºã®ç°ãªãæ£æ¹åœ¢ã®4ã€ã®ãã¬ãŒã ãå€æããŸãã
ããããã®ç®ãšå£ã®ç¹æ» ã«ã€ããŠã¯ã16x16ã¹ãã©ã€ãã®3ã€ã®ãã¬ãŒã ã«å®è£ ãããŠããŸãïŒãããããã©ãŒãã³ã¹ãåäžãããããšãç®çãšããŠããŸãïŒãç¹å®ã®ãã¬ãŒã ã¯ããµãŠã³ããããã®ãã£ãã«ã®1ã€ã®ããªã¥ãŒã ã«å¿ããŠéžæãããŸãïŒãã®ããŒã¿ã¯ãã¬ãŒã€ãŒã«ãã£ãŠè¿ãããŸãïŒã
ã¹ãã©ã€ããšãã©ã³ãã¯ãããŒã©ã³ããã°ã©ã ã§ç·šéãããŸããã
ã³ãŒãã¯ããã»ããµã¬ãžã¹ã¿ã«3ã€ã®ç°ãªãã¯ãŒã¯ã¹ããŒã¹ã䜿çšããŸã-ãã¬ãŒã€ãŒçšã«1ã€ïŒãããŠã¯ãŒã¯ã¹ããŒã¹ã ãã§ãªãã¹ã¯ã©ããããããå¿ èŠã§ã-貎éãª16ãããRAMããã®éšåã移åããŠã³ãŒãå®è¡ã®é床ãäžããããšãã§ããªãã£ãããïŒã 2çªç®ã¯ã¹ã¯ããŒã«çšã§ã3çªç®ã¯ä»ã®ãã¹ãŠã®ãã®ïŒã«ãŒãå ã®ã«ãŠã³ã¿ãŒãã«ãŒãœã«åº§æšãªã©ïŒ
ãã®çµæãã€ã³ããã®åèšãµã€ãºã¯çŽ22kbã§ããããã¡ãããäž»èŠéšåã¯éå§çž®ã°ã©ãã£ãã¯ã¹ïŒ12kbïŒãšRLEå§çž®é³æ¥œïŒ1.8kbïŒã§ãããããã£ãŠãã³ãŒãèªäœã¯6ã7 kbã®é åã䜿çšããŸãïŒããã§ãããããã°ã®ã¿ã«äœ¿çšããããã©ã°ã¡ã³ãããããŸãïŒã
ä»é²2-ã€ã³ããã¹ããŒããã
Speechtro ïŒãœãŒã¹ïŒãšåŒã°ãã1ãããã€ãã®ã€ã³ããã¯ã99troã®ããåŸã«æžãããDIHALT'2016ïŒ1kbã®ããŒãšã³ãã€ã³ããã§1äœãç²åŸïŒã§çºè¡šãããŸããã
ã³ã¢ã«ã¯2ã€ã®ã¢ã€ãã¢ããããŸãã
ã1.é³å£°ã·ã³ã»ãµã€ã¶ãŒã䜿çšããŠäœããè¡ãã«ã¯ïŒTI-99 / 4aã®ææè ã®éã§ã¯éåžžã«äžè¬çã§ããããšãã¥ã¬ãŒã¿ãŒ-MESS / MAMEããã³js99erã§ããµããŒããããŠããŸãïŒã
2.ã©ã¹ã¿ãŒå¹æãæš¡å£ããŠãå€æ°ã®è²ãèŠèŠåããŠã¿ãŠãã ããã

é³å£°ã¯ãã·ã³ã»ãµã€ã¶ãŒROMã«ãã©ãã·ã¥ãããåèªã䜿çšããŸãïŒ1 kbã®çŽæ¥LPCå§çž®ã®å ŽåãããŸãå€ãã®é³å£°ãåãŸããªãããïŒã ROMã«ã¯ããããéåžžã«å°ãªãããã䜿çšå¯èœãªåèªããé©åãªãããã¯ã«é¢ããéŠå°Ÿäžè²«ããã¹ããŒããäœæããã®ã«ããªãæéãããããŸãããæ®å¿µãªãããã·ã³ã»ãµã€ã¶èŸæžã®äžæåæ¢ã¯æäŸãããŠããŸãããäžæåæ¢ãšããŠãããªãã©ã³ãã ãªã¢ãã¬ã¹ã䜿çšããŸããããã®ããŒã¿ã¯ããŽããŽãããšèãããŸããããã¯ã第äžã«ãã³ãŒããä¿åããŠç°¡çŽ åãã第äºã«ãåãªãæ²é»ãããé¢çœãããã«èãããŸãã
ç»åã«é¢ããŠã¯ãæåã«ã©ã¹ã¿ãŒå¹æïŒå ç·ãç®çã®ç·ã«æ²¿ã£ãç¬éã«èæ¯è²ãå€æŽããïŒãå®è£ ããããšèããŸãããæè¡çã«äžå¯èœã§ããããšãå€æããŸããïŒäžã®ã¹ã¯ãªãŒã³ã·ã§ããã§ã¯ãå®éã®TIããã³ãšãã¥ã¬ãŒã¿ãŒ-MESSããã³js99erã§ãããè¡ãè©Šã¿ãèŠãããšãã§ããŸãïŒãå¥ã®ãªãã·ã§ã³ãéžæãããŸãã-å±æ§ã¡ã¢ãªãŒã®æäœã«ããã©ã¹ã¿ãŒå¹æãã·ãã¥ã¬ãŒãããŸããã°ã©ãã£ãã¯ã¢ãŒã2ã§ã¯ãå8x1ãããã¯ã¯ç¬ç«ããèæ¯è²ãšç»åè²ãæã€ããšãã§ããããã1ãã¯ã»ã«ã®é«ãã®åããŒã¯èæ¯ãšããã¹ãã«ç°ãªãè²ãæã€ããšãã§ããŸãã 15è²ãããªãïŒã¹ãã©ã€ãã§10è²ãã䜿çšãããŠããªãïŒã«ãããããããããã«å€ãã®è²ãããããã§ãã
å¥ã®å°é£ãããã¹ãã®çµè«ããããããŸãããTI-99 / 4aã®èšèšäžã®ç¹åŸŽã¯ãROMïŒããããGROMïŒãããã»ããµã®ã¢ãã¬ã¹ç©ºéã«ãããã³ã°ãããªãããšã§ãããããã£ãŠããã©ã³ãåºåã®ããŒã¿ã¯ãGROMããé çªã«ïŒãã€ãããšïŒæœåºãããŸã-éå§ã¢ãã¬ã¹ãèšå®ããåãã¡ã¢ãªäœçœ®ãèªã¿åããŸãã
éžæããããã¹ã¢ãŒã«ãã£ãããã»ããã«ã¯ãæåAãZïŒæ°åãªãïŒã®ã¿ãå«ãŸããŠãããããç°¡åã«ããããŸãã
æã¯ãæãã«å¿ã³å¯ããã°ã®ããã«ã8x8ã®ã¹ãã©ã€ãã§å®è£ ãããŠããŸãã
2ã€ã®æ£æ¹åœ¢ã®å®èŠã§åèªãçºé³ããããã»ã¹ã§ã¯ãïŒæ¡ä»¶ä»ãã§ïŒçŸåšã®åèªã®ã¢ãã¬ã¹ã®äžéšãã·ã³ã»ãµã€ã¶ãŒã®ROMã«è¡šç€ºãããŸãã
TI-99 / 4aã®ãªãœãŒã¹ãªã³ã¯
- CC'2016ã§ã®ç§ã®ã»ãããŒïŒãã³ã³ãã¥ãŒã¿ãŒ 'Texas Instruments TI-99 / 4a' 1980ãšãã®éçºã
- éTI-99 / 4aã®äž»ãªãªãœãŒã¹
- TI-99 / 4aã®ã³ã¢éçºãã©ãŒã©ã
- åçš®ãœãããŠã§ã¢ãéèªãªã©
- ããã«æé©ãªã¯ãã¹ã¢ã»ã³ãã©ãšãŠãŒãã£ãªãã£
- NanoPEBïŒCF7 +ïŒ
- ã«ãŒããªããžãšãã¥ã¬ãŒã¿ãŒïŒNanoPEB AlternativeïŒ
- 䟿å©ãªããã¥ã¡ã³ããšæžç±ã1ã€ã®ã¢ãŒã«ã€ãã«
- ã¹ã¯ã©ãããããå ã®ã³ãŒãã§å°ããªããã°ã©ã ãå®è¡ããïŒãšãã£ã¿ãŒ/ã¢ã»ã³ãã©ãŒãªããã¡ã¢ãªãŒæ¡åŒµãªãïŒ
- è¯ãjsãšãã¥ã¬ãŒã¿
- ã«ã»ãããã¬ãŒã€ãŒã䜿çšãã
- 䟿å©ãªãœãããŠã§ã¢
- ã²ãŒã éçºã©ã€ãã©ãª
ããã§ã¯ãããŸããŸãªã¬ãããªãã©ãããã©ãŒã ã®äžã§ç§ã®äœåãèŠãããšãã§ããŸãããŸããGitHub ã§ãããã®ãœãŒã¹ãèŠãããšãã§ããŸãã
ãã®æ©äŒãå©çšããŠã8ææ«ã«æ¯å¹Žãµã³ã¯ãããã«ãã«ã¯ã§éå¬ãããChaos Constructionsãã§ã¹ãã£ãã«ã«èå³ã®ãããã¹ãŠã®äººãæåŸ ããããšæããŸãã
PSéçãKirill TimofeevãšTimur Tashpulatovã«æè¬ããŸã