home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
list
/
ep-src.ark
/
NEWOUTL.MAC
< prev
next >
Wrap
Text File
|
1988-05-21
|
4KB
|
286 lines
include BDSYM.EQU
include EPDATA
.request MISC1
.comment `
functions NEWINLINE, NEWOUTLINE
/************************************************/
/************************************************/
newinline()
{
inpoint = scrncol = allmode = 0;
} `
newinline::
lxi h,val + 54*('P'-'@') + 2*('T'-'@')
mov a,m
mvi m,0
ora a
jz .nil0
mvi a,0ah
call termput##
.nil0:
lxi h,bkaft
mov a,m
mvi m,0
ora a
jz .nil1
mvi a,1
sta brkflag
call prtsbuf##
.nil1:
lxi h,0
lda val + 54*('U'-'@') + 2*('B'-'@')
ora a
jnz $+6
shld allmode
mov a,l
sta scrncol
shld inpoint
ret
.comment `
/************************************************/
/************************************************/
newoutline()
{
glen = outpoint = 0;
if (nc) llength = (ll + gu)/nc - ir - gu;
else llength = ll - ir;
if (cc < 2 || !nc) epsflag = grfflag = tallflag = duplflag = FALSE;
lindent[cc] = in + val['I'-'@']['L'-'@'] - val['U'-'@']['N'-'@'];
val['I'-'@']['L'-'@'] = val['U'-'@']['N'-'@'] = 0;
brkflag = FALSE;
if (ro) {paperup(ro); ro = 0; }
if (nf) {newfonts(); nf = 0; }
if (val['S'-'@']['A'-'@'])
{ savei(val['S'-'@']['A'-'@']);
val['S'-'@']['A'-'@'] = 0;
}
if (val['R'-'@']['E'-'@'])
{ loadi(val['R'-'@']['E'-'@']);
val['R'-'@']['E'-'@'] = 0;
}
} `
newoutline::
push b ;BC not used yet
lhld outpoint
lda cc
cpi 2
jnc $+10
mov a,h
ora l
mvi a,newlin
cnz termput##
; glen = outpoint = 0;
lxi h,0
shld outpoint
shld glen
;
; if (nc) llength = (ll + gu)/nc - ir - gu;
lda nc
ora a
jz .noi1
lhld ll
xchg
lhld val + 54*('G'-'@') + 2*('U'-'@')
dad d
xchg
lhld nc
call usdiv
xchg
lhld ir
call cmh
dad d
xchg
lhld val + 54*('G'-'@') + 2*('U'-'@')
call cmh
dad d
shld llength
jmp .noi2
; else llength = ll - ir;
.noi1: lhld ll
lda nospec
ora a
jnz .noiw
xchg
lhld ir
call cmh
dad d
.noiw: shld llength
;
; if (cc < 2 || !nc) epsflag = grfflag = tallflag = duplflag = FALSE;
.noi2: lda cc
cpi 2
jc .noi3
lda nc
ora a
jnz .noi4
.noi3: xra a
sta duplflag
sta tallflag
sta grfflag
sta epsflag
;
; lindent[cc] = in + val['I'-'@']['L'-'@'] - val['U'-'@']['N'-'@'];
.noi4:
;process offset
lhld val + 54*('O'-'@') + 2*('F'-'@')
mov a,h
ora l
jz .noi4a
lda nospec
ora a
jnz .noi4a
shld val + 54*('I'-'@') + 2*('N'-'@')
shld val + 54*('U'-'@') + 2*('N'-'@')
lxi h,0
shld val + 54*('O'-'@') + 2*('F'-'@')
.noi4a:
lxi h,mcinok
mov a,m
mvi m,0ffh
lhld cc
ana l
jnz .noi4z
dad h
lxi d,lindent
dad d
push h
lhld val + 54*('I'-'@') + 2*('N'-'@')
xchg
;paragraph indent
lhld val + 54*('P'-'@') + 2*('I'-'@')
lda val + 54*('P'-'@') + 2*('P'-'@')
ora a
jnz .noi4b
lhld val + 54*('H'-'@') + 2*('I'-'@')
.noi4b: dad d
xchg
lhld val + 54*('I'-'@') + 2*('L'-'@')
dad d
xchg
lhld val + 54*('U'-'@') + 2*('N'-'@')
call cmh
dad d
xchg
pop h
;if Left-Adjust or doing heading/footing, no indentation
lda val + 54*('L'-'@') + 2*('A'-'@')
ora a
jnz .noi4y
lda nospec
ora a
jz .noi4x
.noi4y: lxi d,0
.noi4x: mov m,e
inx h
mov m,d
.noi4z:
; val['I'-'@']['L'-'@'] = val['U'-'@']['N'-'@'] = 0;
; lxi h,0
; shld val + 54*('U'-'@') + 2*('N'-'@')
; shld val + 54*('I'-'@') + 2*('L'-'@')
;
; brkflag = FALSE;
xra a
sta brkflag
sta nexttab
;unmark frplace
dcr a
sta frplace+1
; if (ro) {paperup(ro); ro = 0; }
lhld val + 54*('R'-'@') + 2*('O'-'@')
mov a,h
ora l
jz .noi5
push h
call paperup##
pop d
; call ejct##
lxi h,0
shld val + 54*('R'-'@') + 2*('O'-'@')
; if (nf) {newfonts(); nf = 0; }
.noi5: lhld val + 54*('N'-'@') + 2*('F'-'@')
mov a,h
ora l
jz .noi6
call newfonts##
lxi h,0
shld val + 54*('N'-'@') + 2*('F'-'@')
; if (val['S'-'@']['A'-'@'])
.noi6: lhld val + 54*('S'-'@') + 2*('A'-'@')
mov a,h
ora l
jz .noi7
; { savei(val['S'-'@']['A'-'@']);
; val['S'-'@']['A'-'@'] = 0;
; }
push h
call savei##
pop d
lxi h,0
shld val + 54*('S'-'@') + 2*('A'-'@')
; if (val['R'-'@']['E'-'@'])
.noi7: lhld val + 54*('R'-'@') + 2*('E'-'@')
mov a,h
ora l
jz .noi8
; { loadi(val['R'-'@']['E'-'@']);
; val['R'-'@']['E'-'@'] = 0;
; }
push h
call loadi##
pop d
lxi h,0
shld val + 54*('R'-'@') + 2*('E'-'@')
;}
.noi8: pop b
ret
end