; section.mac for turbodos v1.60 ; cr equ 0dh lf equ 0ah ; .request syslib ; extrn print,compb,cout,crlf,mafdc,pafdc,bbline extrn retud ; start: lxi sp,stack lda 5dh cpi ' ' jz nosec lxi d,5dh ntrsec: lxi h,table lda sects loop: call compr jz found inx h inx h lda sects dcr a sta sects jnz loop call print db cr,lf,lf db '*** INVALID SECTION NAME ***',cr,lf,lf,0 rst 0 ; found: mov b,m inx h mov a,m lxi d,cmdl+2 call mafdc xchg mvi a,'A' adi b mov m,a inx h mvi m,':' lxi d,cmdl mvi c,18 call 50h rst 0 ; compr: mvi b,8 call compb push d lxi d,8 dad d pop d ret ; nosec: call print cr,lf '[RTDS (c) 1985 ESKAY]',cr,lf '[SECTION vers 1.60]',cr,lf,0 call retud lxi h,table-2 ..fs: lxi d,10 dad d lxi d,tblend mov a,h cmp d jnz .nne mov a,l cmp e jz ..no jnc ..no .nne: mov a,m cmp b jnz ..fs inx h mov a,m dcx h cmp c jnz ..fs call print ' Current section : ',0 lxi d,-8 dad d ..dn: mov a,m cpi 32 jc ..no call cout inx h jmp ..dn ; ..no: call print cr,lf,lf ' *** AVAILABLE SECTION NAMES ***',cr,lf,lf,0 lda sects mov c,a lxi h,table plo1: mvi b,5 plo2: mvi d,8 plo3: mov a,m inx h call cout dcr d jnz plo3 mov e,m inx h mvi a,' ' call cout mov a,m inx h cpi 10 jnc ov9 push psw mvi a,' ' call cout pop psw ov9: call pafdc mvi a,'A' add e call cout mvi a,':' call cout dcr c jz pdone dcr b jz plo4 call print db ' | ',0 jmp plo2 ; plo4: call crlf jmp plo1 ; pdone: call print cr,lf,lf 'Enter section to log into BY NAME ONLY : ',0 mvi a,1 call bbline ora a jz 0 mov d,h mov e,l mvi b,8 ..spc: mov a,m ora a jnz ..in mvi m,' ' ..in: inx h dcr b jnz ..spc jmp ntrsec ; sects: db (tblend-table)/10 table: 'KAYPRO ',0,4 'NEWSTUFF',0,5 'TURBODOS',0,6 '16BIT ',0,7 'UTILITY ',0,8 'MISC ',0,9 'NORSTAR ',0,10 'TEXTUTL ',0,11 'MODULES ',0,12 'BDSC ',0,13 'RCPM ',0,14 'MODEM ',0,15 'LANG ',0,16 'MSDOS ',0,17 'PASCAL ',0,18 'FORTRAN ',0,19 'OSBORNE ',0,20 'HELP ',0,21 'DIRS ',0,22 'SQUSQ ',0,23 'TALK ',0,24 'DISKUTL ',0,25 'BASIC ',0,26 'ESKAY ',0,27 'PICTURES',0,28 'SIGM ',0,29 'SYSLIB ',0,30 tblend equ $ cmdl: db 5,'\5A: ' ds 128 stack equ $ end