home *** CD-ROM | disk | FTP | other *** search
-
-
- 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
-