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