레이블이 기술문서 번역인 게시물을 표시합니다. 모든 게시물 표시
레이블이 기술문서 번역인 게시물을 표시합니다. 모든 게시물 표시

2019년 12월 16일 월요일

VitaShell 2.0 한글 패치 만들어 봤습니다..

검색해 보니 없길래..

기존꺼 쓸려고 했더니.. 좀 많이 추가된 단어들이 있어서..

그냥 심심해서.. 뚝딱~~~해버렸습니다..

VitaShell 설치 경로 밑에 language에 korean.txt 란 이름으로 넣으시면 자동으로 나옵니다..


2017년 10월 16일 월요일

[Google Cloud 번역-0]앱 엔진 환경 선택


내맘대로 번역

앱 엔진 환경 선택

당신은 유연한 환경이나 표준 환경을 사용하여 앱 엔진에서 당신의 응용 프로그램들을 구동시킬수 있다. 또한 당신의 응용 프로그램에 두개의 환경을 사용하도록 선택할 수도 있고 서비스에 각 환경의 개별적인 이점을 얻을 수 있게 허용할 수도 있다.

앱 엔진 환경을 선택하라

microservice 아키텍처를 사용하여 응용 프로그램을 구성하면, 특히 두 환경을 모두 사용하기로 결정한 경우 App Engine에 가장 잘 부합된다. 응용 프로그램과 해당 서비스에 더 적합한 환경을 결정할 때 고려해야 할 몇 가지 요소가 있다. 다음 섹션으로 응용 프로그램의 요구 사항을 가장 잘 충족시키는 환경을 파악하고 이해하시오.

유연한 환경을 선택했다면

앱 엔진 유연한 환경을 사용한다는 것은 응용 프로그램 인스턴스가 구글 연산 엔진 가상 머신 (VM)의 Docker 컨테이너 내에서 실행된다는 것을 뜻한다.
일반적으로, 유연한 환경에 적합한 응용 프로그램들은 일정한 트래픽을 수신하거나, 정기적인 트래픽 변동이 생기거나, 점차적으로 매개변수들이 조정되는 것들이다.
유연한 환경은 다음과 같은 특징이 있는 응용 프로그램들에 최적화 되어 있다:
  • 지원되는 프로그래밍 언어의 모든 버전으로 소스 코드를 작성함: 
    PythonJavaNode.jsGoRubyPHP, 또는 .NET
  • 사용자 정의 런타임이 포함되었거나 다른 프로그래밍 언어로 작성된 소스코드가 포함된 Docker 컨테이너에서 구동.
  • imagemagick, ffmpeg, libgit2, Ehsms apt-get을 통한 그 밖의 운영체제를 포함하는, 다른 소프트웨어에 의존.
  • 네이티브 코드가 포함된 프레임웍을 사용하거나 의존.
  • 연산 엔진 네트웍에 있는 당신의 클라우드 플랫폰 프로젝트 리소스나 서비스에 접근.

표준 환경을 선택했다면

앱 엔진 표준 환경 사용은 당신의 응용 프로그램 인스턴스가 하나의 샌드박스 내에서 구동되고, 다음에 나열된 지원 언어의 런타임 환경을 사용한다는 것을 뜻한다.

일반적으로, 표준 환경에서 실행되는 응용 프로그램을 빌드하는 것이 더 제한적이고 복잡하지만, 응용 프로그램의 빠른 크기 조정 시간을 가질 수 있다.

표준 환경은 다음과 같은 특징이 있는 응용 프로그램에 최적화 되어 있다:
  • 지원되는 프로그래밍 언어의 특정 버전으로 소스 코드가 작성함:
    • Python 2.7
    • Java 7, Java 8
    • PHP 5.5
    • Go 1.6
  • 무료 또는 저렴한 비용으로 운영되며, 필요한 곳과 필요할 때만 비용을 지불한다. 예를 들어, 당신의 응용 프로그램이 트래픽이 없다면, 0 인스턴스로 조정 할 수 있다.
  • 즉각적인 크기 조정이 요청되는 급작스럽고 극단적으로 트래픽이 치솟음을 겪음.
고수준 기능 비교
다음 표는 두개의 환경에 대한 차이점에 대한 요약이다:
기능유연 환경표준 환경
인스턴스 시동 시간 수분 수초
최대 요청 시간만료 60 분 60 초
백그라운드 스레드 가능 제한적인 가능
백그라운드 프로세스가능 불가능
SSH 디버깅 가능 불가능
크기 조정 수동, 자동 수동, 기본으로 자동
로컬 디스크에 기록 가능, 임시적 (각 VM 시동시 디스크 초기화됨) 불가능
런타임 수정가능(Dockerfile 통해서) 불가능
자동 내부 보안 패치 가능(컨테이너 이미지 런타임 제외) 가능
네트워크 접근 가능 앱 엔진 서비스(아웃 바운드 소켓 포함)를 통해서만, 결제가 가능한 Python, Go 및 PHP 애플리케이션에만 사용할 수 있음.
써드-파티 바이너리 설치 지원가능 불가능
지역 North America, Asia Pacific, 또는 Europe North America, Asia Pacific, 또는 Europe
가격 vCPU, 메모리, 그리고 영구 디스크들의 사용에 기반함 instance 시간에 기반함
환경의 심도있는 비교는, 언어의 안내서를 참고하라: PythonJavaGo, 또는 PHP.

유연 환경을 연산 엔진과 비교

유연한 환경은 연산 엔진 VM에서 인스턴스 내의 서비스로 구동되지만, 유연한 환경은 다음 같은 점에서 연산 엔진과 차이가 있다:
  • 유연한 환경에서 사용되는 VM 인스턴스는 매주 재시작된다. 재시작 중에는, 구글의 관리 서비스는 필요한 운영 체제 및 보안 업데이트를 적용한다.
  • 항상 연산 엔진 VM 인스턴스에 root로 접속한다. 기본으로, 유연한 환경내의 VM 인스턴스에 대한 SSH 접근은 비활성화이다. 당신이 선택한다면, 앱의 VM 인스턴스에 root 접근을 활성화 할 수 있다.
  • 유연한 환경에서 사용되는 VM 인스턴스의 지리적 영역은 Cloud Platform 프로젝트의 App Engine application에 지정하는 위치에 따라 결정된다. Google의 관리 서비스는 최적의 성능을 위해 VM 인스턴스가 함께 배치되도록 한다.

표준 환경에서 유연 환경으로 이전

당신에게 표준 환경에서의 응용 프로그램이 있다면, 몇개의 서비스를 유연 환경으로 옮기고 싶어할 수 있다. 지침으로,  PythonJavaGo, 그리고 PHP의 권장 사항을 참고하라.
특정 서비스의 이전은, PythonJavaGo, 그리고 PHP에 대한 지침서를 참고하라.

2016년 9월 30일 금요일

IT 자산 관리 프로그램 GLPI 한글화 하기

어찌어찌 번역은 다 해서 올려 놓았으나..

회사에선 다음 빌드까지 기다려 주지 않기에

번역을 다운로드 해 봤다..

구축한 웹 사이트에 로그인을 해보고..

언어 설정으로 가 보았으나... 어라??? 한글 선택이 없다!!!

이거 뭐지???

이래저래 찾아보다가.. 알아낸것..

1. 일단.. 한글 선택 가능하게 하려면.. 설치 디렉토리의 config 디렉토리 안에 define.php 에다가 수동으로 추가해줘야 하드라..

소스를 보면.. 안에 이쯤이 언어 설정 모음이구나.. 싶은 위치가 있다..

거기에.. 수동으로

  'ko_KR' => array('한국어', 'ko_KR.mo','ko_KR', 'ko','Korean'    , 2), 

라고 추가해줘야 한다.. 오타나면 죽어도 안보인다.. 이 걸로 4시간 헤맴

2. 한글이 짠하고 나오나... 번역률이 형편없다.. 그 이유는 예전에 20~30% 로 번역 된게 빌드되서 그런 거임..

3. 자 내가 번역한걸로 하자!! 유후~~~

내가 번역 한 걸로.. 원하는 버전을 다운 받고..

https://www.transifex.com/glpi/GLPI/language/ko_KR/

다운 받으면.. 확장자가 po다..

이걸 locales 디렉토리에 복사해 놓자...

이걸 또 컴파일 해줘야 함..

4. 명령어는

msgfmt "ko_KR.po" -o "ko_KR.mo"

요렇게 하면.. mo 파일이 갱신된다..

5. 웹 페이지 새로 고침하면.. 짜잔~~~~

6. 아 흐뭇해~~~~ 난 역시 대단해..


2016년 9월 29일 목요일

이번엔 GLPI 오픈소스 자산 관리 프로그램 번역 중...

회사에서 사용할 오픈소스 IT 자산 관리 프로그램을 검토 중.

기존에 앞서 번역했던..

snipe-it 가 설치가 너무 어려워서....(composer에 어쩌구 저쩌구 환경 맞추는데 3일 걸림..)

실제 활용하기가 너무 어렵다란 생각이 들어.. 100% 해놓은건 아깝긴 하지만..

누군가가 잘 쓰겠지 머...

다른 솔루션 검토중..

http://glpi-project.org/?lang=en 가 괜찮은 듯..

국내 솔루션 업체 중 이 솔루션을 커스터 마이징 해서 팔아 먹는 넘들도 있드라..

얘네들 GPL 라이선스는 뭔지 알고 하는겨?

하여간.. 그래서.. 다시 또 번역 중..

https://www.transifex.com/glpi/GLPI/dashboard/

앞서 번역이 한 23% 정도 였는데..

3일동안 해서.. 일단.. 78% 정도록 올려놨다..

근데.. 일본은 98%란 말이지.. 질 수 없다... ㅡㅡ+++

근데.. 이런 번역 할 때는 용어사전을 같이 만들면서 해야 하는데..

https://www.transifex.com/glpi/GLPI/glossary/ko_KR/

앞서 작업한 넘들이.. 그런거 싹 무시하고 해서리.. 개고생 중..

용어 갈아 엎고.. 사전 작성하고..

우리나라 개발자들 잘하는 사람은 잘 하지만..

아직도 문서 잘 안 읽고, 절차 같은거 안 지키고.. 이젠 좀 바꾸자!

하간.. 번역 알바를 투잡으로 해볼까란 생각도 듬.. ㅎㅎ

2016-09-30 갱신..


98% 번역 완료.. 일단.. 일본 넘들이랑 동점..

애매한 문장은 적용하면서 다시 수정해야 할듯..

2016년 7월 1일 금요일

[NES 개발번역] PPU power up state

PPU 전원 입력 상태

2008년 3월에, Blargg가 NTSC버전 NES PPU의 전원 입력 / 리셋 상태와 동작에 대해서 역-공학을 수행했다.
초기 레지스터 값
레지스터전원 입력 시리셋 후
PPUCTRL ($2000)0000 00000000 0000
PPUMASK ($2001)0000 00000000 0000
PPUSTATUS ($2002)+0+x xxxxU??x xxxx
OAMADDR ($2003)$00unchanged1
$2005 / $2006 latchclearedcleared
PPUSCROLL ($2005)$0000$0000
PPUADDR ($2006)$0000unchanged
PPUDATA ($2007) read buffer$00$00
odd framenono
OAMpatternpattern
NT RAM (external, in Control Deck)mostly $FFunchanged
CHR RAM (external, in Game Pak)unspecified patternunchanged
? = unknown, x = irrelevant, + = often set, U = unchanged
  • PPU는 화상의 상단에서 전원과 리셋이 발생한다. 참고: PPU rendering.
  • Writes to the following registers are ignored if earlier than ~29658 CPU clocks after reset: PPUCTRLPPUMASKPPUSCROLLPPUADDR. This also means that the PPUSCROLL/PPUADDR latch will not toggle. The other registers work immediately: PPUSTATUSOAMADDROAMDATA ($2004),PPUDATA, and OAMDMA ($4014).
    • There is an internal reset signal that clears PPUCTRLPPUMASKPPUSCROLLPPUADDR, the PPUSCROLL/PPUADDR latch, and the PPUDATA read buffer. (Clearing PPUSCROLL and PPUADDR corresponds to clearing the VRAM address latch (T) and the fine X scroll. Note that the VRAM address itself (V) is not cleared.) This reset signal is set on reset and cleared at the end of VBlank, by the same signal that clears the VBlank, sprite 0, and overflow flags. Attempting to write to a register while it is being cleared has no effect, which explains why writes are "ignored" after reset.
  • If the NES is powered on after having been off for less than 20 seconds, register writes are ignored as if it were a reset, and register starting values differ: PPUSTATUS = $80 (VBlank flag set), OAMADDR = $2F or $01, and PPUADDR = $0001.
  • The VBL flag (PPUSTATUS bit 7) is random at power, and unchanged by reset. It is next set around 27384, then around 57165.
  • Preliminary testing on a PAL NES shows that writes are ignored until ~33132 CPU clocks after power and reset, 9 clocks less than 311 scanlines. It is conjectured that the first VBL flag setting will be close to 241 * 341/3.2 cycles (241 PAL scanlines); further testing by nocash has confirmed this.
  • It is known that after power and reset, it is as if the APU's $4017 were written 10 clocks before the first code starts executing. This delay is probably the same source of the 9 clock difference in the times for PPU writes being ignored. The cause is likely the reset sequence of the 2A03, when it reads the reset vector.
  • 1: Although OAMADDR is unchanged by reset, it is changed during rendering and cleared at the end of normal rendering, so you should assume its contents will be random.
  • During the warmup state, the PPU outputs a solid color screen, usually grey, but it depends on the hardware.
  • The Reset button on the Control Deck resets the PPU only on the front-loading NES (NES-001). On top-loaders (Famicom, NES-101), the Reset button resets only the CPU.
  • Nametable memory in the Control Deck and CHR RAM in the Game Pak are unchanged by Reset, as are the CHR bank settings of most mappers. Their contents are unspecified at power on.

Best practice

The easiest way to make sure that 29658 cycles have passed, and the way used by commercial NES games, involves a pair of loops like this in your init code:
  bit PPUSTATUS  ; clear the VBL flag if it was set at reset time
vwait1:
  bit PPUSTATUS
  bpl vwait1     ; at this point, about 27384 cycles have passed
vwait2:
  bit PPUSTATUS
  bpl vwait2     ; at this point, about 57165 cycles have passed
Due to the $2002 race condition, alignment between the CPU and PPU clocks at reset may cause the NES to miss an occasional VBL flag setting, but the only consequence of this is that your program will take one frame longer to start up. You might want to do various other initialization, such as getting the mapper and RAM into a known state, between the two loops.

See also

References

2016년 6월 30일 목요일

[NES 개발번역] 프로그래밍 기초

프로그래밍 기초

연산코드와 연산자들

To be written.

레지스터

To be written.

스택

Main article: Stack

수학 연산

단일 연산

덧셈과 뺄셈

To be written.

비트 (2개의 인자) 곱셈과 나눗셈

A에 2를 곱하려면, ASL A 명령을 사용한다.
A에 2를 나누려면, LSR A 명령을 사용한다.
To be written.

복합 연산

임의의 숫자에 대한 곱셈

다음의 루틴은 부호없는 16-비트 숫자 2개를 곱하여, 부호없는 32-bit 값을 반환한다.
mulplr = $c0  ; ZP location = $c0
partial = mulplr+2 ; ZP location = $c2
mulcnd = partial+2 ; ZP location = $c4

_usmul:
  pha
  tya
  pha

_usmul_1:
  ldy #$10 ; Setup for 16-bit multiply
_usmul_2:
  lda mulplr ; Is low order bit set?
  lsr a
  bcc _usmul_4

  clc  ; Low order bit set -- add mulcnd to partial product
  lda partial
  adc mulcnd
  sta partial
  lda partial+1
  adc mulcnd+1
  sta partial+1
;
; Shift result into mulplr and get the next bit of the multiplier into the low order bit of mulplr.
;
_usmul_4:
  ror partial+1
  ror partial
  ror mulplr+1
  ror mulplr
  dey
  bne _usmul_2
  pla
  tay
  pla
  rts
위의 예제는 340*268 를 곱하는 동작 시 _usmul 루틴을 사용한 것이다:
  lda #<340 16-bit="" 340="" byte="" decimal="" lda="" low="" mulplr="" of="" sta="" value:="" value="">340 ; High byte of 16-bit decimal value 340 (value: $01) (makes $0154)
  sta mulplr+1
  lda #<268 16-bit="" 268="" byte="" decimal="" lda="" low="" mulcnd="" of="" sta="" value:="" value="">268 ; High byte of 16-bit decimal value 268 (value: $01) (makes $010C)
  sta mulcnd+1
  lda #0  ; Must be set to zero (0)!
  sta partial
  sta partial+1
  jsr _usmul ; Perform multiplication
;
; RESULTS
;    mulplr    = Low byte of lower word  (bits 0 through 7)
;    mulplr+1  = High byte of lower word (bits 8 through 15)
;    partial   = Low byte of upper word  (bits 16 through 23)
;    partial+1 = High byte of upper word (bits 24 through 31)
;

임의 숫자의 나눗셈

To be written.

부동 소숫점 숫자

To be written.

게임에서: 점수 기록

To be written.
만약 2진수로 점수를 기록한다면, 표시전에 10진수로 변경하는 과정을 거쳐야 한다.  16-비트 BCD 의 기사는 이것을 수행하는 서브루틴을 나열한다.

단순한 소리 만들기

To be written.

컨트롤러 입력

To be written.

Graphics (should be covered elsewhere!)

"Hello, world!" 프로그램

NES는 printf()(또는 스크립트 등의 echo 명령어) 같이 쉽게 수행 할 수 없기에, 코드를 시험해 볼 가장 쉬운 방법중 하나는 소리를 출력해 보는 것이다. 일부 줄은 다음과 같다...
reset:
  lda #$01 ; square 1
  sta $4015
  lda #$08 ; period low
  sta $4002
  lda #$02 ; period high
  sta $4003
  lda #$bf ; volume
  sta $4000
forever:
  jmp forever

2016년 6월 29일 수요일

[NES 개발번역] CC65 설치

CC65 설치 

어셈블러는 소스 코드의 언어를 기계어 코드로 조립하여 번역하는 프로그램이다. 보통 6502 CPU 용인 기계어 코드를 만드는데 사용되는 어셈블러는 CC65 패키지의 일부에서 배포되는 CA65이다. 이 지침에서는 설치 방법과 CA65를 윈도우즈 2000 이나 윈도우즈 XP에서 구동하는 방법을 알려준다.

윈도우즈 구성

윈도우즈는 윈도우즈 탐색기에서 파일 확장자를 숨겨서 보여준다. 이 형편없는 기능은 원래 윈도우즈 95를 파일 확장자를 사용하지 않는 Mac OS 7.5 처럼 보이게 하려고 만든 기능이다. 하지만 숨김 기능은 실수로 파일 확장자 명이 두 개가 되기 쉽게 만든다. 더 나쁜건, ILOVEYOU 웜 바이러스 같은 악질 소프트웨어가 두 개의 확장자를 갖고 있다는 것이다: 하나는 운영체제에서 실행가능한 파일을 가리키고 나머지 하나는 그 파일이 실행 할 수 없다(그래서 안전하다)라고 사용자에게 생각하게 만든다. 우리가 우선 할 것은 윈도우즈 탐색기에서 파일 확장자를 표시하기를 해주는 것이다 (역주: 이하 번역 안할란다.. 이 쉬운걸 굳이..):
  1. Open Control Panel. (This may be in Start > Control Panel or Start > Settings > Control Panel.)
  2. In Windows XP, if "Pick a category" shows up at top center of the window, click "Switch to Classic View".
  3. Open Folder Options and activate the View pane.
  4. In the scrolling list of Advanced Options, turn make sure that "Hide extensions for known file types" is not checked.
  5. Press OK to put the change into effect.

7-Zip 구성

Windows 2000 does not come with software to extract files from PKZIP archives. Windows XP comes with a bare-bones archiver called Compressed Folders that can only handle PKZIP archives (.zip), not rar or 7z or tar or gz or bz2 files. The 7-Zip package can extract files from all of them, as well as add files to PKZIP and 7-Zip archives.

CC65 내려받기

  1. Read the front page of CC65's web site.
  2. Scroll down to "Download". At the bottom of this section is a list of mirrors.
  3. Enter one of the mirrors, and download the cc65-win32-#####.zip and cc65-doc-#####.zip packages to your computer. (The ##### represents a version number, such as 2.11.0-1, which may change before you read this.) The cc65-win32 contains the CC65 package compiled for Windows, and cc65-doc contains the manual.
  4. Extract cc65-win32-#####.zip to a new folder.
  5. Open this folder and run the install.vbs file as an administrator to copy it to Program Files.
  6. Delete this folder.
Log out and log in to complete installation.

우분투(리눅스) 에서 CC65 빌드

Absolute easiest method:
Set up you repository there as it says on the homepage. Using software sources and import the gpg key. or add: deb http://debian.trikaliotis.net/ stable contrib to your software sources list.
Download: KeyFile add to authentication sources.
Then: sudo apt-get install cc65
Done.! Enjoy.
//------------------
Note: I'll add a link to the compile.txt in the docs at the cc65 site later. Note2: I must be really tired, I never even thought of just modifying the makefile. Note2: Ignore "Method 2". And I'll clean this up in the morning. Note3: If enough people want it and tell me so on the userpage, I'd be more than willing to upload a package somewhere.

Unzip the source, move that top-level folder somewhere; I just dragged it from the archive onto the Desktop. Open a terminal and get to your Desktop folder (or where ever you put it):
$ cd cc65-VERSION/make $ make -f make/gcc.mak
Now once that finishes, rename gcc.mak to makefile, then open it, and remove the text "make/" from line 37. If you don't want a particular executable installed (and also packaged), on line 134, remove the name of the program. If you're programming for the NES, chances are you don't need the C compiler, so you'd remove "cc65". Next, you'll need to rename the top-level make folder to the name of its parent folder, as checkinstall will otherwise use "make" as the name of the package. I did this by accident, and it took me a whole 15 minutes to force the reinstallation of the make utility and make sure the spurious/incorrectly named cc65 package was removed. After you remove the top-level make to the same as the parent, enter that newly renamed folder and run "sudo checkinstall". Give it a nice descriptive name, modify any other items you feel like, and hit enter. It should do its thing, install the program, and output a .deb package into the folder.
I did not use this method, so attempt it carefully. I used the below method which doesn't modify any files but it does copy the ENTIRE directory tree into itself, along with some more complex directory/file renaming.
METHOD 2
Replace VERSION with the rest of the folder name after "cc65-". It doesn't take long to make the entire suite of programs. After you've built it, you could probably install by just saying "make -f make/gcc.mak install", and perhaps you'll want to (I didn't try this). Others, such as myself, want to make sure it can be removed. For this, we use the checkinstall program. The problem is, the installation runs a script file with a hardcoded path from the main directory to place each executable. While you could play with the makefile, I had success with a somewhat more hackish solution:
Rename the make directory to the same thing as the top level cc65 directory. Then, enter the directory you just renamed and create a folder called make. Put a copy of install-sh into this new make folder. Now copy all the folders except the recently renamed one INTO the recently renamed one. Then, rename gcc.mak to makefile and run "sudo checkinstall" from the directory that has makefile in it (Desktop/cc65-2.10.1/cc65-2.10.1 for example).

[NES 개발번역] 기초 전에

원문 

http://wiki.nesdev.com/w/index.php/Before_the_basics 


기초 전에

배경지식

PC나 NES 같은 디지털 컴퓨터는  켜고 끌 수 있는 수백만개의 작은 스위치들로 채워져 있다.
어떤 스위치들은 짧게 정보를 저장한다; 이것들을 메모리라고 한다. 다른 스위치들은 다른 스위치들의 결과물에 기반한 것으로 연산을 한다; 이것들을 논리(logic)라고 한다. 각각의 스위치들은 켜거나 끔으로서, 참과 거짓 또는 1 또는 0의 숫자를 표현할 수 있다. 여러개가 묶인 스위치들은 더 큰 값을 표현 할 수 있다. 한개의 CPU는 메모리에서 기계어 코드를 읽어서 메모리 안의 다른 값들이나 입출력에 동작하기 위해 산술적이고 논리적 동작을 실행하기 위한 지침으로 처리한다. 몇몇 입출력은 사용자와의 상호작용과 연관이된다: 사용자는 컴퓨터에게 명령들을 내리고, 컴퓨터는 결과를 표시한다.
헷갈리겠지만, 지금이 컴퓨터 공학과 컴퓨터 과학에 대한 기본 개념과 친해질 기회이다. 이 기사는 영문 위키피디아에서 가져왔거, 다른 언어로 여러번 번역 되었다.

NES 소개

닌텐도 엔터테인먼트 시스템은 다음의 구성요소들을 갖고 있다:
  • Ricoh사 2A03 CPU IC
    • MOS 테크놀러지 6502 8-비트 마이크로프로세서 에 기반한 CPU
    • 게임 컨트롤러를 위한 직렬 입력
    • 오디오 출력은 4개의 톤 생성기와 델타 조정 재생 장치 포함
  • CPU는 2 킬로바이트의 RAM을 사용
  • 2C02 PPU (picture processing unit 화상 처리 장치)
    • 타일에 기반한 배경 이미지
    • 64 개의 스프라이트 (개별로 움직이는 객체)
    • 53개 중 25개의 색상
    • 256x240 픽셀 프로그레시브 화상 생성기
    • NTSC 색상 인코더
  • PPU는 2 킬로바이트의 RAM을 사용
카트리지들은 다음의 구성요소들을 갖고 있다:
  • CPU는 16 킬로바이트 또는 그 이상의 PRG ROM이 사용함
  • PPU(어떤 경우엔 CPU)는 8 킬로바이트 또는 그 이상의 CHR ROM 또는 CHR RAM을 사용함
  • (부가적으로) ROM을 위한 뱅크 교환 하드웨어
  • (부가적으로) 인터럽트 생성을 위한 논리(Logic)

External links

[낯선] 2026.06.20 이태원 MZK MuzikBar 공연

간만의 공연 이태원 비틀즈가 이전하여 MZK MuzikBar 로 새 단장 오픈을 한 뒤로 2번째 공연 새 베이시스트가 합류한 뒤로 첫 공연이기도 함.. 이래저래 틀린 부분도 많지만.. 그래도 간만에 그럭저럭 잘했다.. https://www.youtub...