TITLE                DIGITALCAMERA                 .MODEL HUGE                 .STACK 64                 .DATA POWER DB        'POWER'  ; 화면 출력에 쓰일 스트링 변수들 SETUP        DB        'SETUP' PLUS        DB        '+' MINUS        DB        '-' DEL                DB        'DEL' FORMAT        DB        'FORMAT' BEEP        DB        'BEEP' YES                DB 'YES' NO                DB        'NO' DELETE DB 'DELETE' EXIT DB 'EXIT' COL                DW        46 ROW                DW        27 C_START DW        29               ;사각형 그리기 함수에 사용될 변수들 R_START        DW        73 C_END DW ? R_END DW ? C_START2        DW        301 R_START2        DW        171 C_END2        DW        334 R_END2        DW        204 C_START3        DW        334 R_START3        DW        171 C_END3        DW        301 R_END3        DW        204 DISPLAIED DB 0         CS_PART4        DW        0                ;분할 모드에 사용될 변수들   RS_PART4        DW        0   CE_PART4        DW        120   RE_PART4        DW        90 CAL        DB        ?                       ; 잡다한 계산에 사용될 변수 DURATION        DW 100      ; 사운드 관련 변수들 TONE DW 512H SOUND_SET DW 0 REVERSE DB 0          ; 표준 이동에서 필요한 변수 COL2        DW        ?           ; 직선을 그리는 함수에서 필요한 변수들 ROW2        DW        ? LEN                DW        ? COLOR        DB 1111B        ; 색 변수 COLA        DW        100 ; 색이 차있는 사각형을 그릴때 사용될 변수들 ROWA         DW  100 COLA2        DW        200 ROWA2         DW  200 LEN2 DW        ? END_PART16 DB 0        ;16분할에서 사용될 변수 INDEX_DEL        DB        0       ; 여러 인덱스들 현재 상황을 나타내는데 쓰임 INDEX_BMP DB        0 INDEX_PAGE        DW        0 INDEX_SETUP DB 0 DELETED DW 0 SI_ZOOM16 DW ?        ;확대에서 이미지 초점을 저장할 변수들 SI_ZOOM4        DW ? COLOR_SLASH        DB        ?     ; 색변수 ZOOM4W        DB        30                                ; 확대초점이동시 이미지끝을 넘어서지 못하게 하는 변수들 ZOOM4H        DB        45 D_B_WIDTH   DD 0                          ;이미지 파일 읽을때 필요한 변수들 D_B_HEIGHT  DD 0                          ; D_PALETTE   DB 16*4 DUP (?)              ;팔레트 변수 D_BMP       DB 240*180 DUP (?)                   ; 이미지를 저장할 변수 TEST1        DW        ?  ; 현재 파일의 이름주소를 기억할 변수 STOREADD        DW        ? ;이름주소의 처음을 기억할 변수 STOREADD2        DW        ? ; 이름주소의 끝을 기억할 변수 LIMIT_BMP        DB        29 ; 마지막이미지에서 다음 이미지로 이동하는것을 막아주기 위한변수 D_FILENAME   DB        "1.BMP " ,0           ;파일 이름 D_FILENAME1  DB "2.BMP " ,0            ;파일 이름 D_FILENAME2  DB "3.BMP " ,0            ;파일 이름 D_FILENAME3  DB "4.BMP " ,0            ;파일 이름 D_FILENAME4  DB "5.BMP " ,0            ;파일 이름 D_FILENAME5         DB "6.BMP " ,0            ;파일 이름 D_FILENAME6  DB "7.BMP " ,0            ;파일 이름 D_FILENAME7  DB "8.BMP " ,0            ;파일 이름 D_FILENAME8  DB "9.BMP " ,0            ;파일 이름 D_FILENAME9   DB "10.BMP" ,0            ;파일 이름 D_FILENAME10  DB "11.BMP" ,0            ;파일 이름 D_FILENAME11  DB "12.BMP" ,0            ;파일 이름 D_FILENAME12  DB "13.BMP" ,0            ;파일 이름 D_FILENAME13  DB "14.BMP" ,0            ;파일 이름 D_FILENAME14  DB "15.BMP" ,0            ;파일 이름 D_FILENAME15  DB "16.BMP" ,0            ;파일 이름 D_FILENAME16  DB "17.BMP" ,0            ;파일 이름 D_FILENAME17  DB "18.BMP" ,0            ;파일 이름 D_FILENAME18  DB "19.BMP" ,0            ;파일 이름 D_FILENAME19  DB "20.BMP" ,0            ;파일 이름 D_FILENAME20  DB "21.BMP" ,0            ;파일 이름 D_FILENAME21  DB "22.BMP" ,0            ;파일 이름 D_FILENAME22  DB "23.BMP" ,0            ;파일 이름 D_FILENAME23  DB "24.BMP" ,0            ;파일 이름 D_FILENAME24  DB "25.BMP" ,0            ;파일 이름 D_FILENAME25  DB "26.BMP" ,0            ;파일 이름 D_FILENAME26  DB "27.BMP" ,0            ;파일 이름 D_FILENAME27  DB "28.BMP" ,0            ;파일 이름 D_FILENAME28  DB "29.BMP" ,0            ;파일 이름 D_FILENAME29  DB "30.BMP" ,0            ;파일 이름 NUMBER DB 0 ; 분할모드에서 현재 위치를 나타낼 변수 NUMBER2 DB ? ;-----------------------------------------------------                 .386 .CODE A10MAIN                PROC                 FAR         MOV                        AX,@DATA         MOV                        DS,AX         MOV                        ES,AX         PUSHA         MOV                        AX,0012H         INT                        10H         POPA         CALL                B10FRAME        ; 틀을 그림         CALL                E12DRAWCYCLE ; 타원을 그림         LEA        AX,D_FILENAME         MOV STOREADD,AX                ; 파일이름변수 주소의 처음과 끝을 기억         MOV STOREADD2,AX         ADD STOREADD2,210         CALL SETPAL         ;팔레트 설정          READY:                 MOV                        AH,10H         INT                        16H                 ;P입력을 기다림         CMP        AL,70H         JE        STARTP         CMP AL,50H         JE        STARTP         JMP READY STARTP:         CALL MODE_NORMAL         MOV                        AX,4C00H         INT                        21H                                          A10MAIN                ENDP ;------------------------------------------------ ;            틀을 그리는 프로시져 ;------------------------------------------------ B10FRAME        PROC                NEAR         MOV                        DX,0000H B15:         MOV                        CX,540         INC                        DX B20:         MOV        AH,0CH         MOV        AL,0011B         CMP        DX,3         JB        B25         CMP        DX,248         JA        B25         CMP        CX,3         JB        B25         CMP        CX,538         JA        B25         MOV        AL,0110B B25:                                 CMP        CX,20         JE        B40         CMP        CX,260         JE        B40         CMP        DX,10         JE        B40         CMP        DX,240         JE        B40 B30:                                                 MOV        BH,0   INT        10H         LOOP        B20   CMP                        DX,250   JNE                        B15         MOV        COL,260   MOV ROW,230         MOV        C_START,18         MOV        R_START,10   MOV COLOR_SLASH,1111B   CALL        D10DRAW   MOV        COL,236         MOV ROW,230         MOV        C_START,285         MOV        R_START,10         MOV COLOR_SLASH,1111B   CALL        D10DRAW   ;-------------------------   ;스트링 함수호출 & 스트링 외부 사각형   ;---------------------------------   CALL  C10STRING   MOV        COL,46         MOV ROW,27         MOV        C_START,292         MOV        R_START,73   CALL        D10DRAW   MOV        COL,46         MOV ROW,27         MOV        C_START,292         MOV        R_START,105   CALL        D10DRAW   MOV        COL,42         MOV ROW,25         MOV        C_START,430         MOV        R_START,173   CALL        D10DRAW   MOV        COL,35         MOV ROW,35         MOV        C_START,300         MOV        R_START,170   CALL        D10DRAW   ;------------------------   ;대각선 만들기   ;------------------------   MOV COLOR_SLASH,1111B   CALL        E10DRAW2           CALL        E11DRAW2           ;-----------------------------   ;화살표 그리기         ;-----------------------------   ;가장위 화살표   ;-----------------------------   MOV        C_START2,404         MOV        R_START2,103         MOV        C_END2,408         CALL                E10DRAW2   MOV        C_START3,404         MOV        R_START3,103         MOV        C_END3,400         CALL                E11DRAW2                  MOV        COL2,400         MOV ROW2,108         MOV LEN,2         CALL E14LINE         MOV        COL2,406         MOV ROW2,108         MOV LEN,2         CALL E14LINE         MOV        COL2,402         MOV ROW2,116         MOV LEN,4         CALL E14LINE         MOV        COL2,402         MOV ROW2,108         MOV        LEN,8         CALL E15LINE2                  MOV        COL2,406         MOV ROW2,108         MOV        LEN,8         CALL E15LINE2         ;----------------------         ;왼쪽화살표         ;--------------------         MOV        C_START3,376         MOV        R_START3,126         MOV        C_END3,372         CALL                E11DRAW2         MOV        C_START2,372         MOV        R_START2,130         MOV        C_END2,376         CALL                E10DRAW2   MOV        COL2,376         MOV ROW2,126         MOV        LEN,2         CALL E15LINE2         MOV        COL2,376         MOV ROW2,132         MOV        LEN,2         CALL E15LINE2         MOV        COL2,384         MOV ROW2,128         MOV        LEN,4         CALL E15LINE2   MOV        COL2,376         MOV ROW2,128         MOV LEN,8         CALL E14LINE         MOV        COL2,376         MOV ROW2,132         MOV LEN,8         CALL E14LINE         ;--------------------         ;오른쪽 화살표         ;--------------------         MOV        C_START3,434         MOV        R_START3,130         MOV        C_END3,430         CALL                E11DRAW2         MOV        C_START2,430         MOV        R_START2,126         MOV        C_END2,434         CALL                E10DRAW2   MOV        COL2,430         MOV ROW2,126         MOV        LEN,2         CALL E15LINE2         MOV        COL2,430         MOV ROW2,132         MOV        LEN,2         CALL E15LINE2         MOV        COL2,422         MOV ROW2,128         MOV        LEN,4         CALL E15LINE2         MOV        COL2,422         MOV ROW2,128         MOV LEN,8         CALL E14LINE         MOV        COL2,422         MOV ROW2,132         MOV LEN,8         CALL E14LINE         ;-------------------         ;아래화살표         ;------------------         MOV        C_START2,400         MOV        R_START2,152         MOV        C_END2,404         CALL                E10DRAW2   MOV        C_START3,408         MOV        R_START3,152         MOV        C_END3,404         CALL                E11DRAW2         MOV        COL2,400         MOV ROW2,152         MOV LEN,2         CALL E14LINE         MOV        COL2,406         MOV ROW2,152         MOV LEN,2         CALL E14LINE         MOV        COL2,402         MOV ROW2,144         MOV LEN,4         CALL E14LINE         MOV        COL2,402         MOV ROW2,144         MOV        LEN,8         CALL E15LINE2         MOV        COL2,406         MOV ROW2,144         MOV        LEN,8         CALL E15LINE2         ;--------------------         ; ENTER 원그리기         ;-------------------         MOV        COL2,402         MOV ROW2,122         MOV LEN,4         CALL E14LINE         MOV        COL2,400         MOV ROW2,123         MOV LEN,3         CALL E14LINE         MOV        COL2,405         MOV ROW2,123         MOV LEN,3         CALL E14LINE         MOV        COL2,398         MOV ROW2,124         MOV LEN,2         CALL E14LINE         MOV        COL2,408         MOV ROW2,124         MOV LEN,2         CALL E14LINE         MOV        COL2,397         MOV ROW2,125         MOV LEN,1         CALL E14LINE         MOV        COL2,409         MOV ROW2,125         MOV LEN,1         CALL E14LINE         MOV        COL2,396         MOV ROW2,126         MOV LEN,1         CALL E14LINE         MOV        COL2,410         MOV ROW2,126         MOV LEN,1         CALL E14LINE         MOV        COL2,395         MOV ROW2,127         MOV LEN,1         CALL E14LINE         MOV        COL2,411         MOV ROW2,127         MOV LEN,1         CALL E14LINE         MOV        COL2,395         MOV ROW2,128         MOV LEN,1         CALL E14LINE         MOV        COL2,411         MOV ROW2,128         MOV LEN,1         CALL E14LINE         MOV        COL2,394         MOV ROW2,129         MOV LEN,1         CALL E14LINE         MOV        COL2,412         MOV ROW2,129         MOV LEN,1         CALL E14LINE         MOV        COL2,394         MOV ROW2,130         MOV LEN,1         CALL E14LINE         MOV        COL2,412         MOV ROW2,130         MOV LEN,1         CALL E14LINE         MOV        COL2,394         MOV ROW2,131         MOV LEN,1         CALL E14LINE         MOV        COL2,412         MOV ROW2,131         MOV LEN,1         CALL E14LINE         MOV        COL2,395         MOV ROW2,132         MOV LEN,1         CALL E14LINE         MOV        COL2,411         MOV ROW2,132         MOV LEN,1         CALL E14LINE         MOV        COL2,395         MOV ROW2,133         MOV LEN,1         CALL E14LINE         MOV        COL2,411         MOV ROW2,133         MOV LEN,1         CALL E14LINE         MOV        COL2,396         MOV ROW2,134         MOV LEN,1         CALL E14LINE         MOV        COL2,410         MOV ROW2,134         MOV LEN,1         CALL E14LINE         MOV        COL2,397         MOV ROW2,135         MOV LEN,1         CALL E14LINE         MOV        COL2,409         MOV ROW2,135         MOV LEN,1         CALL E14LINE         MOV        COL2,398         MOV ROW2,136         MOV LEN,2         CALL E14LINE         MOV        COL2,408         MOV ROW2,136         MOV LEN,2         CALL E14LINE         MOV        COL2,400         MOV ROW2,137         MOV LEN,3         CALL E14LINE         MOV        COL2,405         MOV ROW2,137         MOV LEN,3         CALL E14LINE         MOV        COL2,402         MOV ROW2,138         MOV LEN,4         CALL E14LINE         RET B40:                                 CMP        DX,10         JB        B30         CMP        DX,240         JA        B30         CMP        CX,20         JB        B30         CMP        CX,260         JA        B30         MOV        AL,0110B         JMP        B30                                    B10FRAME  ENDP ;------------------------------------------------ ;            스트링 들을 보여주는 프로시져 ;------------------------------------------------ C10STRING        PROC        NEAR         PUSHA C10:         MOV        AH,13H         MOV        AL,00H         MOV        BH,00H         MOV        BL,10001001B ; 1111 1100 C20:                 LEA        BP,POWER         MOV        CX,5         MOV        DX,0525H         INT 10H C30:         LEA        BP,SETUP         MOV        CX,5         MOV        DX,0725H         INT 10H C40:         LEA        BP,MINUS         MOV        CX,1         MOV        DX,0532H                 INT        10H C50:         LEA        BP,PLUS         MOV        CX,1         MOV        DX,0539H                 INT        10H C60:         LEA        BP,DEL         MOV        CX,3         MOV        DX,0B37H                 INT        10H                  POPA         RET          C10STRING ENDP ;------------------------------------------------ ;           사각형을 그리는 프로시져 ;------------------------------------------------ D10DRAW PROC        NEAR         PUSHA         MOV        AX,COL         ADD        AX,C_START         MOV        C_END,AX         MOV        AX,ROW         ADD        AX,R_START         MOV        R_END,AX         MOV BX,R_END         SUB BX,2         MOV        AH,0CH         MOV        AL,COLOR_SLASH         MOV        BH,00H         MOV        CH,00H         MOV        CX,C_START         MOV        DH,00H         MOV        DX,R_START D20:         INT 10H         INC        CX         CMP CX,C_END         JNE        D20 D30:         MOV        CX,C_START         INT 10H         MOV        CX,C_END         INT        10H         INC        DX         CMP DX,BX         JNE        D30         INT 10H                  MOV CX,C_START D40:         INT 10H         INC        CX         CMP CX,C_END         JNE        D40                  POPA         RET D10DRAW        ENDP         ;------------------------------------------------ ;            대각선을 만드는 프로시져1 ;------------------------------------------------ E10DRAW2        PROC        NEAR E10:                 MOV        AH,0CH         MOV        AL,1111B         MOV        BH,0         MOV        CX,C_START2         MOV        DX,R_START2         INT        10H         CMP CX,C_END2         JE        E20         INC        C_START2         INC R_START2         JMP        E10 E20:         RET RET E10DRAW2        ENDP ;------------------------------------------------ ;             대각선을 만드는 프로시져2 ;------------------------------------------------ E11DRAW2        PROC        NEAR E11:                 MOV        AH,0CH         MOV        AL,1111B         MOV        BH,0         MOV        CX,C_START3         MOV        DX,R_START3         INT        10H         CMP CX,C_END3         JE        E21         DEC        C_START3         INC R_START3         JMP        E11 E21:         RET RET E11DRAW2        ENDP ;------------------------------------------------ ;            타원을 그리는 프로시져 ;------------------------------------------------ ;왼쪽타원 ;------------- E12DRAWCYCLE        PROC        NEAR         MOV        CX,399 E12:                 MOV        AH,0CH         MOV        AL,1111B         MOV        BH,0                  MOV        DX,83         INT        10H                 CMP        CX,407         JE        E22         INC CX         JMP        E12 E22:         MOV CX,395 E32:         MOV        AH,0CH         MOV        AL,1111B         MOV        BH,0         MOV        DX,84         INT        10H                 CMP        CX,399         JE        E42         INC CX         JMP        E32 E42:         MOV CX,407 E52:         MOV        AH,0CH         MOV        AL,1111B         MOV        BH,0         MOV        DX,84         INT        10H                 CMP        CX,411         JE        E62         INC CX         JMP        E52 E62:         MOV CX,393 E72:         MOV        AH,0CH         MOV        AL,1111B         MOV        BH,0         MOV        DX,85         INT        10H                 CMP        CX,396         JE        E82         INC CX         JMP        E72 E82: MOV CX,410 E92:         MOV        AH,0CH         MOV        AL,1111B         MOV        BH,0         MOV        DX,85         INT        10H                 CMP        CX,413         JE        E102         INC CX         JMP        E92 E102: MOV CX,391 E112:         MOV        AH,0CH         MOV        AL,1111B         MOV        BH,0         MOV        DX,86         INT        10H                 CMP        CX,393         JE        E122         INC CX         JMP        E112 E122: MOV CX,413 E132:         MOV        AH,0CH         MOV        AL,1111B         MOV        BH,0         MOV        DX,86         INT        10H                 CMP        CX,415         JE        E142         INC CX         JMP        E132 E142:         MOV        AH,0CH         MOV        AL,1111B         MOV        BH,0         MOV CX,390         MOV        DX,87         INT        10H         MOV        AH,0CH         MOV        AL,1111B         MOV        BH,0         MOV CX,416         MOV        DX,87         INT        10H         MOV        AH,0CH         MOV        AL,1111B         MOV        BH,0         MOV CX,390         MOV        DX,88         INT        10H         MOV        AH,0CH         MOV        AL,1111B         MOV      &n