;--- BEGIN ---------------------------------------------------;
;--- CONSTANTS -----------------------------------------------;
;--- DATA ----------------------------------------------------;
SEGMENT .data
coybyte: db 01
;--- BSS -----------------------------------------------------;
SEGMENT .bss
;--- CODE ----------------------------------------------------;
SEGMENT .text
;;--------------------------------------------;
;; Copy page in memory to clipboard.
;; ax: * -> GARBAGE
;; di: * -> GARBAGE
CopyPage: mov di, 0
.Copy: mov ax, di
mov al, [cbuffer + di]
mov [bbuffer + di], al
inc di
cmp di, 2048
jne .Copy
jmp OKLight
;;--------------------------------------------;
;; Copy page in memory to clipboard and erase it.
;; ax: * -> GARBAGE
;; di: * -> GARBAGE
CutPage: call EditModeOnly
call CopyPage
jmp FillPage
;;--------------------------------------------;
;; Copy clipboard contents to page buffer.
;; ax: * -> GARBAGE
;; di: * -> GARBAGE
PastePage: call EditModeOnly
mov di, 0
.Copy: mov ax, di
mov al, [bbuffer + di]
mov [cbuffer + di], al
inc di
cmp di, 2048
jne .Copy
jmp DisplayPage
;;--------------------------------------------;
;; Fill page buffer with current byte.
;; bl: * -> GARBAGE
;; di: * -> GARBAGE
;; *: * -> GARBAGE
FillPage: call EditModeOnly
mov di, [bufptr]
mov bl, [cbuffer + di]
mov di, 0
.Fill: mov [cbuffer + di], bl
inc di
cmp di, 2000
jne .Fill
jmp DisplayPage
;;--------------------------------------------;
;; Copy current byte from page to clipbyte.
;; al: * -> GARBAGE
;; di: * -> GARBAGE
CopyByte: mov di, [bufptr]
mov al, [cbuffer + di]
mov [coybyte], al
jmp OKLight
; PasteByte - copy byte from clipboard to page
; al,cl,di=DESTROYED
PasteByte: call EditModeOnly
mov di, [bufptr]
mov al, [coybyte]
mov [cbuffer + di], al
mov cl, al
call ShowByte
jmp Advance
;--- END -----------------------------------------------------;