cseg segment 'code'
assume cs:cseg,ds:cseg
org 100h
.186
start: jmp real_start
;data
savescreen DW 25*80 DUP (?)
september DB '╔════════════════════════╗
║┌──────────────────────┐║
║│ │║
║│ September │║
║│ │║
║└──────────────────────┘║
║┌──────────────────────┐║
║│┌──┬──┬──┬──┬──┬──┬──┐│║
║││Su│Mo│Tu│We│Th│Fr│Sa││║
║│╞══╪══╪══╪══╪══╪══╪══╡│║
║││ │ │ │ │ │ 1│ 2││║
║│├──┼──┼──┼──┼──┼──┼──┤│║
║││ 3│ 4│ 5│ 6│ 7│ 8│ 9││║
║│├──┼──┼──┼──┼──┼──┼──┤│║
║││10│11│12│13│14│15│16││║
║│├──┼──┼──┼──┼──┼──┼──┤│║
║││17│18│19│20│21│22│23││║
║│├──┼──┼──┼──┼──┼──┼──┤│║
║││24│25│26│27│28│29│30││║
║│└──┴──┴──┴──┴──┴──┴──┘│║
║└──────────────────────┘║
║ N:Next ║
║ ║
║ Q:Quit ║
╚════════════════════════╝'
october DB '╔════════════════════════╗
║┌──────────────────────┐║
║│ │║
║│ October │║
║│ │║
║└──────────────────────┘║
║┌──────────────────────┐║
║│┌──┬──┬──┬──┬──┬──┬──┐│║
║││Su│Mo│Tu│We│Th│Fr│Sa││║
║│╞══╪══╪══╪══╪══╪══╪══╡│║
║││ 1│ 2│ 3│ 4│ 5│ 6│ 7││║
║│├──┼──┼──┼──┼──┼──┼──┤│║
║││ 8│ 9│10│11│12│13│14││║
║│├──┼──┼──┼──┼──┼──┼──┤│║
║││15│16│17│18│19│20│21││║
║│├──┼──┼──┼──┼──┼──┼──┤│║
║││22│23│24│25│26│27│28││║
║│├──┼──┼──┼──┼──┼──┼──┤│║
║││29│30│31│ │ │ │ ││║
║│└──┴──┴──┴──┴──┴──┴──┘│║
║└──────────────────────┘║
║ B:Back ║
║ N:Next ║
║ Q:Quit ║
╚════════════════════════╝'
november DB '╔════════════════════════╗
║┌──────────────────────┐║
║│ │║
║│ November │║
║│ │║
║└──────────────────────┘║
║┌──────────────────────┐║
║│┌──┬──┬──┬──┬──┬──┬──┐│║
║││Su│Mo│Tu│We│Th│Fr│Sa││║
║│╞══╪══╪══╪══╪══╪══╪══╡│║
║││ │ │ │ 1│ 2│ 3│ 4││║
║│├──┼──┼──┼──┼──┼──┼──┤│║
║││ 5│ 6│ 7│ 8│ 9│10│11││║
║│├──┼──┼──┼──┼──┼──┼──┤│║
║││12│13│14│15│16│17│18││║
║│├──┼──┼──┼──┼──┼──┼──┤│║
║││19│20│21│22│23│24│25││║
║│├──┼──┼──┼──┼──┼──┼──┤│║
║││26│27│28│29│30│ │ ││║
║│└──┴──┴──┴──┴──┴──┴──┘│║
║└──────────────────────┘║
║ B:Back ║
║ ║
║ Q:Quit ║
╚════════════════════════╝'
;procedures
savescreen proc near
savescreen:
push 0B800h
pop es
mov cx,25*80
sub bx,bx
sc:mov ax,es:[bx]
mov savescreen[bx],ax
inc bx
inc bx
loop sc
ret
savescreen endp
real_start:
int 10h
call savescreen
jmp print_s
print_s: push 0B800h
pop es
mov cx,25*80
sub bx,bx
s:mov es:[bx],september[bx]
inc bx
inc bx
loop s
si:int 16h
cmp al,'N'
je print_o
cmp al,'n'
je print_o
cmp al,'Q'
je quit_p
cmp al,'q'
je quit_p
jmp si
print_o: push 0B800h
pop es
mov cx,25*80
sub bx,bx
o:mov es:[bx],october[bx]
inc bx
inc bx
loop o
oi:int 16h
cmp al,'N'
je print_n
cmp al,'n'
je print_n
cmp al,'B'
je print_s
cmp al,'b'
je print_s
cmp al,'Q'
je quit_p
cmp al,'q'
je quit_p
jmp oi
print_n: push 0B800h
pop es
mov cx,25*80
sub bx,bx
n:mov es:[bx],november[bx]
inc bx
inc bx
loop n
ni:int 16h
cmp al,'B'
je print_o
cmp al,'b'
je print_o
cmp al,'Q'
je quit_p
cmp al,'q'
je quit_p
jmp ni
quit_p: push 0B800h
pop es
mov cx,25*80
sub bx,bx
lsc:mov es:[bx],savescreen[bx]
inc bx
inc bx
loop lsc
int 20h
cseg ends
end start
i noticed the stuff doesnt allign because of spaces, in the text file it looked much neater =D












