assembly - The codes below for printing calendar is working for texted mode. How can i make this calendar working in video mode? -


.model small .data      instexit    db "press key exit $"                      ;instant exit     navb            db "press b end or n next month: $"                        ;navigation instruction of january month     nav             db "press b previous month or n next month: $"            ;navigation instruction of months between january , december     nave            db "press b previous month or n end: $"                    ;navigation instruction of december month                                                               ; setting of value 0     greeting        db "welcome 2015 calendar$"                                ;greetings message displayed in beginning  -------      jan             db  "         january$          "                                       ;whole january month     string          db  "sun mon tue wed thu fri sat$"                  ;prints day string , string used througout months     string1         db  "                 1   2   3$"     string2         db  " 4   5   6   7   8   9  10$"     string3         db  "11  12  13  14  15  16  17$"     string4         db  "18  19  20  21  22  23  24$"     string5         db  "25  26  27  28  29  30  31$"  ; taking out other strings month due character limitation here  .code .386                      mov ax,@data         mov ds,ax                                                                                    mov ax,0003h                 ;setting screen  80*25                 int 10h                                 mov ah,02h                   mov bh,00                    mov dh,1                     mov dl,25                 int 10h                                lea dx,greeting          ; load & display string                 call print                  call nline               ;function next line                 call january             ;prints whole january month                 mov cx,1                 ;counter navigation  command:                                     mov ah,1h                ;user input                 int 10h          ;        ;calling interrupt handler                  cmp al,'n'               ;comparing button user pressed                  jz            ;jumping function cx addition 1                  cmp al,'b'               ;comparing button user pressed                 jz down      ;jumping function cx subtraction 1  ending:                                 mov ax,4c00h                     int 21h up:                            inc cx                   ;added 1 cx watching next month                 jmp navigate             ;jumping display desired calendar down:                                dec cx                   ;subtracting 1 cx watching previous month                 jmp navigate             ;jumping display desired calendar  navigate:                                cmp cx,1                  jz m1             ;jumping print january    ; similar function has been taken due space issues                  cmp cx,0                      jz ending    ;end program                  cmp cx,13                      jz ending    ;end program  m1:                               call clr     ;clear out screen                 call nline   ;prints next line                 call january ;print whole january month  jmp command  ; similar month function has been taken due space issues  clr:                              ;clears screen                 mov ax,0003h                 int 10h                  ret   nline:                       ;prints next line                 mov ah, 2                    ;carriage return                 mov dl, 0dh                 int 10h         ;                     mov dl, 0ah                  ;line feed                 int 10h         ;                 ret   print:                                       ;prints string                  mov ah,9                  int 10h     ;                 ret    color1:                                      ;assigning color string                 mov ax,0920h                                     mov bx,0047h                 ;white on red                    mov cx,30                                        int 10h                 ret   color2:                                     ;assigning color string                 mov ax,0920h                                     mov bx,0021h                ;blue on green                    mov cx,30                                        int 10h                 ret   january:            ;prints whole januarty month                  push cx                  mov ah,02h                   mov bh,00                    mov dh,2                     mov dl,25                 int 10h                  call color1                                lea dx,jan                   ; load & display string                 call print                  call nline                    ;prints next line                  mov ah,02h                   mov bh,00                    mov dh,3                     mov dl,25                 int 10h                  call color2                 lea dx, string               ; load & display string                  call print                                              ;prints next line                  call nline                   ;prints next line                  mov ah,02h                   mov bh,00                    mov dh,4                     mov dl,25                 int 10h                  call color2                 lea dx, string1              ; load & display string                  call print                  call nline                   ;prints next line                  mov ah,02h  ;changing rows , columns , bring center                 mov bh,00                    mov dh,5                     ;shifting row                 mov dl,25                    ;shifting column                 int 10h                  call color2                 lea dx, string2               ; load & display string                  call print                  call nline                    ;prints next line                  mov ah,02h                   mov bh,00                    mov dh,6                     mov dl,25                 int 10h                  call color2                 lea dx, string3               ; load & display string                  call print                   call nline                    ;prints next line                  mov ah,02h                   mov bh,00                    mov dh,7                     mov dl,25                 int 10h                  call color2                 lea dx, string4               ; load & display string                  call print                        call nline                    ;prints next line                  mov ah,02h                   mov bh,00                    mov dh,8                     mov dl,25                 int 10h                  call color2                 lea dx, string5               ; load & display string                  call print                  call nline                    ;prints next line                 call nline                    ;prints next line         lea dx,instexit           ;instructions instant exit                 call print         call nline                 lea dx,navb                 call print                 pop cx                             ret  ; similar month functions has been taken due space issues  end 

command:                     mov ah,1h                ;user input int 10h          ;        ;calling interrupt handler  nline:                       ;prints next line mov ah, 2                    ;carriage return mov dl, 0dh int 10h         ;     mov dl, 0ah                  ;line feed int 10h         ; ret  print:                                       ;prints string  mov ah,9  int 10h     ; ret  

in above code have change every occurence of int 10h int 21h. remember using dos functions.

to answer question. once program works in text video mode work in graphics video mode. legacy video modes, numbers 1 19.


Comments

Popular posts from this blog

css - SVG using textPath a symbol not rendering in Firefox -

Java 8 + Maven Javadoc plugin: Error fetching URL -

node.js - How to abort query on demand using Neo4j drivers -