병렬 포트 에뮬레이션 사용에 앞서
최신 도스박스 SVN 빌드에는 다음과 같은 기능들을 제공합니다.
1. 가상 컬러 도트 매트릭스 프린터 ESC/P 텍스트와 그래픽 데이터 (레이저 프린터 데이터는 아님)를 프로그램으로부터 파싱(parse)하여 이미지를 그려냅니다. 이 이미지는 PNG, BMP, 포스트스크립트 파일로 인쇄할 수 있습니다. 또, Windows 프린터로 포워딩할 수 있지만 흑백만 가능합니다. 페이지 크기와 해상도의 옵션도 설정할 수 있습니다.
2. 파일 또는 호스트 LPTx 인터페이스로의 리다이렉션 단순한 번역 과정 이후 데이터가 파일로 기록됩니다. 여기에는 세 가지 하부 모드가 존재합니다. 가장 단순한 것으로는 DOSBox의 캡처 디렉터리 안에 파일로 기록합니다. 두 번째 옵션으로는 지정된 파일로 최종 출력물의 데이터를 추가합니다. 세 번째로는 데이터를 호스트 컴퓨터(여러분의 실제 컴퓨터) 상의 LP1과 같은 병렬 포트 장치로 포워딩할 수 있습니다.
3. 병렬 포트 패스스루 이 기능은 현재 Windows(PortTalk 필요)와 리눅스에서 사용할 수 있습니다. 파일 리다이렉션이 추가되기 전까지는 병렬 포트의 프린터에 접근하는 데 이 기능이 매우 도움이 되었습니다. 타이밍에 큰 영향을 받지 않는 경우에는 소프트웨어 보호 동글과 LPT 입출력 하드웨어에도 유용합니다.
가상으로 구현하는 LPT 포트
DOSBox가 제공하는 병렬 포트는 DOSBox 설정 구성 파일의 [parallel]을 통하여 제어를 받습니다. 각 포트는 세 개의 모드 가운데 하나를 할당 받지만 하나의 가상 프린터만 존재할 뿐입니다.
* parallelx=disabled 이 포트를 사용하지 않습니다.
* parallelx=reallpt 병렬 포트 패스스루 - 이 줄에 다른 매개변수를 더 추가할 수 있습니다.
* parallelx=file 파일 리다이렉션 - 이 줄에 다른 매개변수를 더 추가할 수 있습니다.
* parallelx=printer 가상 프린터 - 매개 변수는 [printer] 단락에서 설정할 수 있습니다.
디즈니 사운드 장치를 사용하는 경우(disney=true로 설정되어 있는 경우) LPT1을 덮어쓰게 됩니다. 따라서 패스스루나 가상 프린터를 사용하는 경우 디즈니 사운드 장치를 사용 안 함으로 두시기 바랍니다. (disney=false)
[알림]
도스박스에서는 프린터 출력을 위하여 disney=false가 기본값입니다. 디즈니 사운드 장치를 사용하려면 printer=false로 설정하여야 합니다.
모든 종류의 장치에 대하여 가상으로 구현되는 인터페이스는 다음과 같습니다:
* 378h/278h/3BCh 입출력
* BIOS INT17
* DOS INT21
* DOS 파일 (PRN/LPTx) 접근
* DOS 핸들 #4 접근
병렬 포트 패스스루
요구 사항 :
* 호스트 운영 체제 - Windows (Win9x, NT, 2000, XP. Vista, 7 이상) 또는 리눅스
* Windows의 경우 ECP/EPP 또는 SPP 레지스터 호환 병렬 포트가 필요합니다. (바이오스의 LPT 설정도 참고하십시오)
* Windows의 경우 PortTalk 드라이버가 시스템에 설치되어 있어야 합니다.
제한 사항 :
* 병렬 포트의 인터럽트는 지원하지 않습니다.
* 병렬 포트를 USB로 변환하는 어댑터는 지원하지 않습니다.
* 일부 모뎀 병렬 포트는 더 오래된 하드웨어와 호환되지 않을 수 있습니다.
* 에뮬레이션과의 타이밍 문제로 인하여 특정 응용 프로그램에서 올바르지 못한 결과물을 받거나 실패할 수 있습니다.
* 비표준 병렬 포트와는 호환되지 않습니다. (Windows)
* USB-병렬 어댑터 케이블과 동작하지 않을 수 있습니다.
Windows 사용자
먼저 PortTalk(http://www.beyondlogic.org/porttalk/porttalk.htm) 드라이버를 설치하여야 합니다. allowio를 실행하여 PortTalk를 설치하십시오. DOSBox를 시작할 때마다 allowio를 사용할 필요는 없습니다.
dosbox.conf에서 parallel1=realpt로 설정하십시오. 메인보드 상에서 설정한 표준 LPT1과 다른 병렬 포트를 사용하고 있다면 포트의 기본 주소를 따로 지정해 주어야 합니다.
이는 Windows 장치 관리자에서 살펴볼 수 있습니다. LPT2는 일반적으로 278에 위치합니다.
사용 예: parallel1=reallpt realbase:cc00
잘못된 입출력 포트 주소를 입력하면 여러분의 시스템에 문제를 일으킬 수 있으므로 이 주소를 기록하기 전에 신중히 살펴 보시기 바랍니다.
PCI 병렬 포트 카드는 ECP 컨트롤 포트에 대한 다른 주소 계획을 사용할 수 있습니다. DOSBox는 ECP 레지스터를 사용하여 포트를 양방향 SPP (일반 병렬 포트) 모드로 전환합니다.
이를 PCI 카드에서 가능하게 하려면 ecpbase 키워드를 통하여 ECP 주소를 직접 지정해 주셔야 합니다. 실제 값을 확인하려면 장치 관리자나 PCI 포트의 데이터시트를 참조해 보시기 바랍니다.
사용 예: parallel1=reallpt realbase:cc00 ecpbase:cc08
리눅스 사용자
병렬 포트 장치는 패스(pass)됩니다. 보안 특성을 변경해야 할 수도 있습니다.
사용 예: parallel1=reallpt realport:/dev/parport0
디버그 로그이 기능은 역공학의 오래된 통신 프로토콜에 사용하면 좋습니다. capture 하위 디렉터리에 위치한 텍스트/이진 파일에 병렬 포트에 대한 기록을 수행합니다. 다음의 분류를 통하여 원하는 항목만을 추출할 수 있습니다:* dbgdata - 병렬 포트의 데이터 포트를 기록할 때 정보 라인(타이밍, 값)을 기록합니다.* dbgput - 데이터를 LPT1/PRN으로 기록할 때 라인을 하나 기록합니다.* dbgregs - 병렬 포트의 레지스터에 접근할 때 라인을 하나 기록합니다.* dbgputplain - LPT1/PRN을 파일로 기록되는 바이트만 기록합니다.* dbgdataplain - 데이터 레지스터에 기록되는 바이트만 기록합니다.* dbgall - 순수 텍스트를 제외한 모든 디버깅 변수를 기록합니다.
parallel[x] (여기서 x는 숫자) 구성 변수에는 이를테면 다음과 같이 분류를 추가할 수 있습니다:
parallel1 reallpt dbgput dbgregs
parallel1 reallpt dbgputplain
가상 프린터
가상 프린터는 ESC/P2 인쇄 표준을 준수하는 컬러 도트 매트릭스 프린터를 가상으로 구현합니다.
기능:
* ESC/P 및 ESC/P2 명령어 다수를 지원합니다.
* 최대 360dpi에 24핀 및 48핀 모드로 그래픽 인쇄를 지원합니다.
* 색 출력을 지원합니다. (Windows 3.11에서 "Generic ESC/P 24pin wide"를 사용하거나 Windows 95에서 "Epson SQ 860"를 사용하면 됨)
* 데이터는 윈도 비트맵, PNG 파일, 포스트스크립트 파일로 출력하거나 Windows로 출력할 수 있습니다.
* 오래되긴 했지만 일부 충돌이 없는 IBM 제어 코드를 지원합니다.
제한 사항:
* Windows 프린터 출력은 흑백만 가능합니다.
* 사용자 지정 글꼴과 같은 모든 ESC/P 명령어를 지원하는 것은 아닙니다.
* 기본 글꼴 (roman.ttf)은 매우 못 생기고 제대로 정렬이 되지 않을 수 있으니 이것이 싫으면 다른 것으로 바꾸시기 바랍니다.
* Windows로부터 제공 받는 그래픽 에뮬레이션 360dpi 인쇄가 너무 정확하여 래스터 그래픽 수준이 기대한 것에 크게 못 미칠 수도 있습니다.
* Windows 프린터로 설정할 때 인쇄 대화 상자는 처음 시작시 한 번만 나타납니다.
* 프린터에서 볼 수 있는 국가 코드 설정 및 기타 구성 단추는 사용할 수 없는데, 인쇄하기 전에 특수한 ESC/P 명령어를 프린터로 내보내면 해결할 수 있습니다.
가상 프린터의 매개 변수는 DOSBox 설정 구성 파일의 [printer] 단락에서 볼 수 있습니다.
* printer
true로 설정하면 가상 프린터를 사용합니다.
* dpi
프린터의 해상도 (기본 360). 180도 사용할 수 있습니다.
* width
1/10인치 종이 가로 크기 (기본 85 = 8.5')
* height
1/10인치 종이 세로 크기 (기본 110 = 11.0' US 레터 기준)
다른 포맷을 보려면 한국어 위키백과의 [종이 크기]를 보십시오.
* printoutput
프린터의 출력 저장 위치를 결정합니다.
* png : PNG 파일로 저장합니다. (기본값)
* ps : 포스트스크립트 파일로 저장합니다.
* bmp : BMP 이미지를 만듭니다. (매우 용량이 커지니 권장하지 않습니다)
* printer : 실제 프린터로 내보냅니다. (프린터 대화 상자가 나타납니다)
* multipage
CTRL-F2를 누를 때까지 모든 페이지를 하나의 포스트스크립트 파일이나 인쇄 작업에 추가합니다.
* docpath
출력 파일이 저장되는 경로입니다. 기본값은 DOSBox 프로그램 디렉터리입니다.
* timeout
(단위: 밀리초) timeout을 0으로 설정하지 않은 경우, 프린터에 데이터가 도달하지 않은 직후 종이를 넣을 시간으로 지정됩니다.
프린터의 출력 기준
가상 프린터가 페이지를 출력하는 데에는 몇 가지 기준이 있습니다.
* 현재의 페이지에 더 이상 텍스트가 맞지 않는 경우
* DOS 프로그램이 폼피드 문자를 내보내거나 병렬 포트의 자동 피드 기능을 건드릴 때
* 사용자가 CTRL-F2키를 누를 때
* timeout 값을 설정하고 일정 시간 안에 데이터가 더 이상 도달하지 않을 때
파일 리다이렉션
이 운영 모드는 다음과 같은 매개 변수를 추가하여 지정할 수 있습니다:
* dev
예) parallel1=file dev:LPT1
LPT1의 호스트 프린터에 데이터를 출력합니다.
* append
예) parallel1=file append:text.txt
'text.txt'에 출력 내용을 추가합니다.
* file (위의 두 변수 제외)
예) parallel1=file
출력할 때마다 [응용 프로그램 이름]###.prt 라는 캡처 파일을 DOSBox 캡처 디렉터리에 만듭니다.
기타 부가 변수:
* timeout
기록하기 전에 데이터를 언제까지 수집할지를 결정합니다.
예) parallel1=file dev:LPT1 timeout:1000
* addFF
파일을 닫기 전에 timeout이 초과되는 경우 폼피드를 추가합니다.
예) parallel1=file dev:LPT1 addFF
* addLF
(응용 프로그램의 기능이 제공되지 않는 경우) 텍스트 파일의 끝에 라인피드 문자를 추가합니다.
예) parallel1=file dev:LPT1 addLF
* cp:###
ANSI 코드로 문자를 번역합니다.
지원하는 코드: 437, 737, 775, 850, 852, 855, 857, 860, 861, 863, 864, 865, 866
예) parallel1=file dev:LPT1 cp:437
첫댓글 최신 버전의 도스박스 특별 버전을 사용하시는 분들은 이 글의 요구사항에 있는 PortTalk라는 항목은 무시하셔도 됩니다. PortTalk가 없어도 정상 동작합니다.
다만 오래된 빌드를 사용할 때에는 필요합니다.