기본적인 설정과 스샷 저장경로는
~/.dosbox/doxbox-0.73.conf
~/.
dosbox /capture 에 png 로 저장된다.
아무래도 에뮬레이션이다 보니 성능 저하는 심한편이지만
1.7Ghz CPU로 돌릴경우 386 25Mhz 짜리 성능을 내준다고 하니
그 당시 게임을 돌리는 데에는 문제가 없을 것으로 생각된다.
하지만 486 시절 게임을 돌리려면 ... 최소한 3Ghz 급으로 클럭빨을 세워야 하려나?
Special Keys
ALT-ENTER
Go full screen and back.
ALT-PAUSE
Pause emulation.
CTRL-F1
Start the keymapper.
CTRL-ALT-F5
Start/Stop creating a movie of the screen.
CTRL-F4
Swap mounted disk-image (Only used with imgmount). Update directory cache for all drives!
CTRL-F5
Save a screenshot.(png)
CTRL-F6
Start/Stop recording sound output to a wave file.
CTRL-ALT-F7
Start/Stop recording of OPL commands.
CTRL-ALT-F8
Start/Stop the recording of raw MIDI commands.
CTRL-F7
Decrease frameskip.
CTRL-F8
Increase frameskip.
CTRL-F9
Kill dosbox.
CTRL-F10
Capture/Release the mouse.
CTRL-F11
Slow down emulation (Increase dosbox Cycles).
CTRL-F12
Speed up emulation (Decrease dosbox Cycles).
ALT-F12
Unlock speed (turbo button).
Notes
While we hope that, one day, dosbox will run virtually all programs ever made for the PC... we are not there yet. At present, dosbox run on a 1.7 Gigahertz PC is roughly the equivalent of a 25MHz 386 PC. While the 0.60 release has added support for "protected mode" allowing for more complex and recent programs, but note that this support is early in development and nowhere near as complete as the support for 386 real-mode games (or earlier). Also note that "protected mode" games need substantially more resources and may require a much faster processor for you to run it properly in dosbox.
예전에 정리 해놓은줄 알았는데 없길래 다시 정리.
Xming에서 특정 openGL이 제대로 안되서 부랴부랴 다시 찾는데
opengl의 advanced 소스중 일부가 아래와 같은 오류를 발생하며 실행되지 않는 문제가 있다.
이경우에는 cygwin/x로 하면 문제없이 해결된다.
(하지면 용량이 200메가에 ftp.daum.net은 폐쇄되었는지 안되고 -_- 결론은 받는데 한참걸림)
$ gcc -lglut -lGLU accumaa.c
$ ./a.out
freeglut (./a.out): ERROR: Internal error <FBConfig with necessary capabilities not found> in function fgOpenWindow
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 4 (X_DestroyWindow)
Technical details: ssh tried to run xauth generate to create a untrusted cookie for the session, which failed because the server isn't compiled with the XCSECURITY extension built-in.
6.3. I'm confused about the difference between trusted and untrusted X11 forwarding. What does "Warning: untrusted X11 forwarding setup failed: xauth key data not generated" mean? Why is the SECURITY extension disabled?
The warning means that ssh is going to use trusted X11 forwarding because untrusted X11 forwarding depends on the security extension, which isn't built into the Xserver and has been disabled by default upstream.
Trusted X11 forwarding means that you trust the server that you wish to ssh into. The X server will allow remote clients to do whatever a local client would be able to do to your X session, for example, monitor your keypresses and take a screenshot. Such programs could be run by a malicious or compromised root user on the ssh server, or under your account if it was compromised on the ssh server.
So why is this disabled? Untrusted X11 forwarding was meant to be a way to allow logins to unknown or insecure systems. It generates a cookie with xauth and uses the security extension to limit what the remote client is allowed to do. But this is widely considered to be not useful, because the security extension uses an arbitrary and limited access control policy, which results in a lot of applications not working correctly and what is really a false sense of security. See this mail for more on the subject.
연휴이고 하니 이것저것 파고 들고
마침 회사에서도 micom을 AVR에서 TI로 바꾸는 바람에 API를 보고 있는데
"내가 공부하는게 언어일까 API일까?" 라는 의문이 들었다.
솔찍히 말해서 C언어에서 배우면서 어려운 단계를 적다면
1. for 문 / while 문
2. array
3. 배열
4. 그리고 printf() scanf()
머 나오는 순서로 따지면 4번이 0 번이 될 가능성이 높은데
언어와 통합이 되어 있다고 할정도로 stdio / stdlib 가 필수적이긴 하지만
이걸 언어에 포함을 해야 할까? 라는 의문이 든다.
다른 언어들을 공부하면서도
솔찍히 파일 입출력이 없고 printf 같은 화면에 출력하는 방법이 없으면 사용이 많이 제약이 되는 것을 보면
api 자체를 (비록 언어에 통합이 되어 있는 기본 라이브러리라고 해도) 언어에 포함을 해야 할까? 라는 생각이 든다.
micom의 경우는 조금 더 심해서 하드웨어 종속적인 부분이 많이 다른데
둘다 C를 기반으로 하지만 하드웨어 핀 배열등이 다른데 이걸 언어라고 표현하지 않고 장비라고 하는 것을 보면
우리가 표현하는 언어를 배운다는 말은 실은 API를 배운다 라고 해야 하는게 맞지 않을까 라는 망상마저 드는데..
아무튼 새로 나오는 언어들은 오만 라이브러리들을 기본내장하고 나오는 것을 보면 언어의 정의가 바뀐것 같기도 하고.
단순하게 제어 반복문 이나 함수 / 변수 구조등만을 언어로 규정짓는 것 또한 바보같은 발상인것 같긴한데...
연휴이고 하니 뜬금없이 LISP 공부중인데 전에도 이해 못했고 이번에도 이해 못하고 있는 lisp -_-
LISP는 LISt Process 의 약자로
이름대로 모든것으로 LIST 에 기반하여 표현하게 되며, 리스트는 () 로 둘러쌓여 표현된다.
이러한 이유로 lisp 소스를 보면 ()가 가득히 둘러쌓여 가독성이 떨어지는 형태가 된다.
또한 리스트에서 계산등은 모두 전위표기법을 사용하게 되며 기본 연산은 다음과 같이 표현된다.
CL-USER>(+ 1 2 ) ; 1 + 2
3
CL-USER> (- 1 2 ) ; 1 - 2
-1
CL-USER> (/ 1 2) ; 1 / 2
1/2
CL-USER> (* 1 2) ; 1 * 2
2
CL-USER> (mod 3 2) ; 3 % 2
1
CL-USER> (log 2) ; log(2)
0.6931472
CL-USER> (sqrt 2) ; sqrt(2)
1.4142135
CL-USER> (< 1 2) ; 1 < 2
T
그리고 기호를 가지는 변수(?)는 setq 명령어를 이용하여 선언한다.
val을 입력하면 해석할 수 없는 변수이기 때문에 에러가 나지만 setq를 통해서 값을 정해주면
val만 입력해도 입력했던 값이 나오게 된다.
CL-USER> val
Invoking restart: Return to sldb level 2.
; Evaluation aborted on #<UNBOUND-VARIABLE #xC7B642E>.
CL-USER> (setq val 100)
100
CL-USER> val
100
CL-USER> (setq str "This is test string")
"This is test string"
CL-USER> str
"This is test string"
아무튼 defvar 라는 키워드를 이용해서 변수를 선언 할수도 있는데 setq와는 다르게 리턴되는 값이 다르다
CL-USER> (defvar loop 10)
LOOP
CL-USER> loop
10
함수는 defun (DEFine + FUNction 인 듯?)을 통해서 선언이 가능하다.
단순하게 3을 리턴하는 함수로 three 라는 것을 만드는 예제이다.
> (defun three () 3)
THREE
> (three)
3
> (+ (three) 1)
4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> three()
error: unbound variable - THREE
> three
error: unbound variable - THREE
> (+ three 1)
error: unbound variable - THREE
인자를 사용하는 함수로 인자는 아래와 같이 사용한다.
CL-USER> (defun add (x y) (+ x y))
ADD
CL-USER> (add 3 4)
7
리스트는 아래와 같이 '을 먼저 찍고 해주면 된다. (아직 이해 부족.. OTL)
물론 리스트도 setq로 선언하여 사용이 가능하다.
> '(1 2 3)
(1 2 3)
> (1 2 3)
error: bad function - 1
'/어포스트로피/apostrophe
'foo는 (quote foo) 와 동일하고 s expression 에서 함수가 아닌 것으로 해석하도록 하는 명령어이다.
어떻게 보면 변수로 인식시킨다고 해야 하려나? replace 라고 된것을 보면 -_-
Creating sets (actually, creating variables) can be done with setf : this creates a set called learned with three members:
(setf learned '(VB C++ LISP))
The apostrophe is uses to designate that something in brackets isn't a function (or an S-expression). Basically, if LISP receives something like (VB C++ LISP) it assumes VB is the name of a function and C++ and LISP are its arguments. The apostrophe says that this isn't a function, it's a list, and can itself be an argument in a function.