검색 서버는 알아서들 구축 (solr 이젠 쉽죠?)
현재 개발환경 IIS 7.5
ASP는 오래된거에 비해서 야매 같은 기술들이 많아서리..
이번 건도.. 뭐가 정확한지 잘 모르겠으나..
일단 내 경험에서 되는걸로..
여기까지 소스.
간단한 설명..
통신하는거야.. 뭐 보통 알고 있는 Msxml2.ServerXMLHTTP.3.0 사용함
의외로 검색서버가 UTF-8로 동작해서 당근
Session.CodePage = 65001로 했으나 의외로 깨짐..
그래서 949로 변경했더니 잘 됨.
문제는 parsing인데.. 처음에 구한 소스는 XMLDOM으로 하게 했음..
근데.. 안됨.. 아마 서버에 일반적으로 설치되는 컴포넌트가 아닌거 같다는 생각이 듬..
그래서 변경..
MSXML2.DOMDocument.3.0 일단 이게 잘 됨..
API 사이트는
https://msdn.microsoft.com/en-us/library/ms764730(VS.85).aspx
보통 여러 method 안쓸테니.. 그냥.. 속성 값과 node의 값 읽어오는 예제로
훈훈한 마무리..
끗~!
2016년 7월 7일 목요일
ASP용 코드 정리기
ASP용 코드 정리기
구하기 힘들어서 백업으로 게시함.
https://sites.google.com/site/jaymz9634/Home/aspyongkodeujeonglipeulogeulaem/RSFSimple.7z
구하기 힘들어서 백업으로 게시함.
https://sites.google.com/site/jaymz9634/Home/aspyongkodeujeonglipeulogeulaem/RSFSimple.7z
2016년 7월 5일 화요일
SQL Formatting 은 이게 최고인듯..
SQL Beautifier
http://www.dpriver.com/products/sqlpp/ssms_index.php
MSSM 플러그인 형태도 제공하고..
그냥 웹버전도 있다!!
개발시에
SQuirrel SQL Client 하고 이 플러그인 얹어서 프로시저 편집시 MSSM 사용하면
꿀잼..... 은 아니구나... 업무지..
2016년 7월 1일 금요일
[NES 개발번역] PPU power up state
PPU 전원 입력 상태
2008년 3월에, Blargg가 NTSC버전 NES PPU의 전원 입력 / 리셋 상태와 동작에 대해서 역-공학을 수행했다.
| 레지스터 | 전원 입력 시 | 리셋 후 |
|---|---|---|
| PPUCTRL ($2000) | 0000 0000 | 0000 0000 |
| PPUMASK ($2001) | 0000 0000 | 0000 0000 |
| PPUSTATUS ($2002) | +0+x xxxx | U??x xxxx |
| OAMADDR ($2003) | $00 | unchanged1 |
| $2005 / $2006 latch | cleared | cleared |
| PPUSCROLL ($2005) | $0000 | $0000 |
| PPUADDR ($2006) | $0000 | unchanged |
| PPUDATA ($2007) read buffer | $00 | $00 |
| odd frame | no | no |
| OAM | pattern | pattern |
| NT RAM (external, in Control Deck) | mostly $FF | unchanged |
| CHR RAM (external, in Game Pak) | unspecified pattern | unchanged |
? = 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: PPUCTRL, PPUMASK, PPUSCROLL, PPUADDR. This also means that the PPUSCROLL/PPUADDR latch will not toggle. The other registers work immediately: PPUSTATUS, OAMADDR, OAMDATA ($2004),PPUDATA, and OAMDMA ($4014).
- There is an internal reset signal that clears PPUCTRL, PPUMASK, PPUSCROLL, PPUADDR, 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 개발번역] 프로그래밍 기초
프로그래밍 기초
Contents
[hide]연산코드와 연산자들
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) ; 268>340>
임의 숫자의 나눗셈
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에서 구동하는 방법을 알려준다.
Contents
[hide]윈도우즈 구성
윈도우즈는 윈도우즈 탐색기에서 파일 확장자를 숨겨서 보여준다. 이 형편없는 기능은 원래 윈도우즈 95를 파일 확장자를 사용하지 않는 Mac OS 7.5 처럼 보이게 하려고 만든 기능이다. 하지만 숨김 기능은 실수로 파일 확장자 명이 두 개가 되기 쉽게 만든다. 더 나쁜건, ILOVEYOU 웜 바이러스 같은 악질 소프트웨어가 두 개의 확장자를 갖고 있다는 것이다: 하나는 운영체제에서 실행가능한 파일을 가리키고 나머지 하나는 그 파일이 실행 할 수 없다(그래서 안전하다)라고 사용자에게 생각하게 만든다. 우리가 우선 할 것은 윈도우즈 탐색기에서 파일 확장자를 표시하기를 해주는 것이다 (역주: 이하 번역 안할란다.. 이 쉬운걸 굳이..):
- Open Control Panel. (This may be in Start > Control Panel or Start > Settings > Control Panel.)
- In Windows XP, if "Pick a category" shows up at top center of the window, click "Switch to Classic View".
- Open Folder Options and activate the View pane.
- In the scrolling list of Advanced Options, turn make sure that "Hide extensions for known file types" is not checked.
- 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 내려받기
- Read the front page of CC65's web site.
- Scroll down to "Download". At the bottom of this section is a list of mirrors.
- Enter one of the mirrors, and download the
cc65-win32-#####.zipandcc65-doc-#####.zippackages to your computer. (The ##### represents a version number, such as 2.11.0-1, which may change before you read this.) Thecc65-win32contains the CC65 package compiled for Windows, andcc65-doccontains the manual. - Extract
cc65-win32-#####.zipto a new folder. - Open this folder and run the
install.vbsfile as an administrator to copy it to Program Files. - 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는 메모리에서 기계어 코드를 읽어서 메모리 안의 다른 값들이나 입출력에 동작하기 위해 산술적이고 논리적 동작을 실행하기 위한 지침으로 처리한다. 몇몇 입출력은 사용자와의 상호작용과 연관이된다: 사용자는 컴퓨터에게 명령들을 내리고, 컴퓨터는 결과를 표시한다.
헷갈리겠지만, 지금이 컴퓨터 공학과 컴퓨터 과학에 대한 기본 개념과 친해질 기회이다. 이 기사는 영문 위키피디아에서 가져왔거, 다른 언어로 여러번 번역 되었다.
- Computer (it's not just a PC)
- Bit
- Binary number
- Byte
- Arithmetic logic unit
- Binary prefix (KiB, MiB)
- Random-access memory (RAM)
- Read-only memory (ROM)
- Bus
- Integrated circuit (IC)
- Central processing unit (CPU)
- Computer program
- Input/output (I/O)
- Digital signal
- Raster graphics
- Command-line interface
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
피드 구독하기:
글 (Atom)
-
어찌어찌 번역은 다 해서 올려 놓았으나.. 회사에선 다음 빌드까지 기다려 주지 않기에 번역을 다운로드 해 봤다.. 구축한 웹 사이트에 로그인을 해보고.. 언어 설정으로 가 보았으나... 어라??? 한글 선택이 없다!!! 이거 뭐지??...
-
업무 처리하다 보니.. 엑셀로 데이터를 넘겨 받음.. 양이 좀 많아서.. 중복 데이터 삭제 기능 검색울 해 보았으나.. 엑셀의 중복 제거 기능만 나옴... 오픈오피스는 아무래도 마이너해서 그런가.. 한글로 검색 말고.. 영어로 구글링...
-
모든 일의 시작은.. 최근에 JRE를 업데이트를 했는데.. 32-Bit로 update가 된 듯... Eclipse 실행시 !ENTRY org.eclipse.osgi 4 0 2015-03-31 14:21:48.411 !MESSAGE Ap...
[낯선] 2026.06.20 이태원 MZK MuzikBar 공연
간만의 공연 이태원 비틀즈가 이전하여 MZK MuzikBar 로 새 단장 오픈을 한 뒤로 2번째 공연 새 베이시스트가 합류한 뒤로 첫 공연이기도 함.. 이래저래 틀린 부분도 많지만.. 그래도 간만에 그럭저럭 잘했다.. https://www.youtub...