|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 28032 (0x6d80) Types: TextFile Names: »HELP.MAC«
└─⟦01b5c9619⟧ Bits:30005906 Microsoft Multiplan v1.05 og HELP └─ ⟦this⟧ »HELP.MAC«
title CP/M Help data module aseg .z80 ORG 00100H lf equ 0ah ;line feed cr equ 0dh ;carriage return bdos equ 5 ;CP/M entry tab equ 9 ;tabulate esc equ 1bh ;escape cls equ esc-1 ;clear screen cur_li equ '=' ;cursor lead in buffer equ 80h ;************************************************ ; * ; Initialize of program * ; * ;************************************************ CALL cmd2 ;Check for 2. cmd. JP NZ,A0126 ;skip if cmd. warmst: XOR A ;clear a A010D: ld sp,100h PUSH AF ;save status CALL scinit ;print sign on POP AF OR A CALL NZ,p_nlok ;error: no look-up word CALL getcmd ;get a command number ADD A,A ;command * 2 LD E,A ;move it into DE LD D,0 LD HL,cmdtab ;start of command index table ADD HL,DE ;calculate address of routine LD E,(HL) ;get address of routine into DE INC HL LD D,(HL) EX DE,HL ;Move it to HL JP (HL) ;Execute it ! ; ;************************************************ ; * ; * ; * ;************************************************ A0126: CALL lookui ;try to look it up internal PUSH HL CALL rdinxf ;open and read index file POP HL CALL A024E ;find word in index file LD A,1 ;set error flag JP NZ,A010D ;error: no look-up word LD (stinxw),HL ;save start of index word CALL A0262 ;open data file LD HL,(stinxw) ;get start of index word LD DE,17 ;offset for sector in index word ADD HL,DE ;add it LD E,(HL) ;DE = sector address INC HL LD D,(HL) INC HL LD A,(HL) ;get offset from sector start LD (offpnt),A DEC DE ;sector address -1 LD (fchman+33),DE CALL A03BC ;read 512 bytes (4 sectors) LD DE,(offpnt) ;E = offset from sector start LD D,0 LD HL,(datpnt) ;address of data buffer (start) ADD HL,DE ;include offset LD (datpnt),HL ;store in pointer LD HL,(rdleng) ;lenght of read AND A SBC HL,DE ;subtract offset LD (rdleng),HL ;save lenght of help word CALL clrhom ;clear screen CALL A0283 ; LD HL,txname ;'NAME' CALL ptxt CALL A03F1 ;print message LD HL,txsynt ;'SYNTAX' CALL ptxt CALL A03F1 ;print message LD HL,txdesc ;'DESCRIPTION' CALL ptxt CALL A03F1 ;print message LD HL,txexam ;'EXAMPLE' CALL ptxt CALL A03F1 ;print data LD HL,txeror ;'ERROR MESSAGES' CALL ptxt CALL A03F1 ;print message LD HL,txextr ;'EXTERNAL REF:' CALL ptxt CALL A03F5 ;print message JP warmst ;goto main menu lookui: POP IX ;get return address LD DE,ikntx1 ;ikon text 1 CALL A01D0 ;compare JP Z,ikon ;ikon menu LD DE,ikntx2 ;ikon text 2 CALL A01D0 ;compare JP Z,ikon ;ikon menu LD DE,martx1 ;markør text 1 CALL A01D0 ;compare JP Z,markor ;markør menu LD DE,komtx1 ;komando text 1 CALL A01D0 ;compare JP Z,comand ;komando menu JP (IX) ;return ;************************************************ ; * ; compare 2 strings * ; * ; entry: DE = reference * ; HL = data * ; exit: z = they match * ; nz = different * ;************************************************ A01D0: PUSH HL ;save entered entry start PUSH DE ;save ref. start A01D2: LD A,(DE) ;get character CP (HL) ;the same ? JR NZ,A01DD ;no => skip OR A ;zero ? JR Z,A01DD ;yes => skip (END) INC DE ;point to next INC HL JR A01D2 ;repeat A01DD: POP DE ;restore start of strings POP HL RET ;************************************************ ; * ; Open and read index file * ; * ;************************************************ rdinxf: LD A,(inxfl1) ;index file read flag OR A ;something allread read ? RET NZ ;yes => skip LD DE,FCHNDX ;file control block for index file CALL opfile JR Z,rderr ;error => skip LD DE,inxwsp ;index file wsp LD B,16 ;read 16 sectors rdinx1: PUSH BC PUSH DE LD C,26 ;set dma address CALL bdos LD DE,fchndx ;index file control block LD C,20 ;read next record CALL bdos POP DE POP BC OR A ;error ? JR NZ,rdinx2 ;yes => skip LD HL,128 ;sector lenght ADD HL,DE EX DE,HL DJNZ rdinx1 ;repeat until done LD A,0 LD (inxend),A ;set end of index rdinx2: LD A,1 ;set read index flag LD (inxfl1),A RET ;************************************************ ; * ; read / open error * ; * ;************************************************ rderr: LD hl,lin24 call ptxt ld hl,ndxnf ;index file not found A0221: call ptxt CALL getchr JP A04B6 ;************************************************ ; * ; Open file FCB address in DE * ; * ;************************************************ opfile: PUSH DE ;try to open it on default drive LD C,15 ;open file command CALL bdos POP DE ;restore FCB INC A ;error ? RET NZ ;no => skip PUSH DE ;save FCB LD A,1 ;try drive A: LD (DE),A LD C,15 ;open file command CALL bdos POP DE ;restore FCB INC A ;error ? RET NZ ;no => skip PUSH DE ;save FCB LD E,0 ;set user to 0 LD C,32 ;set/get user code CALL bdos POP DE ;restore FCB LD C,15 ;open file commnad CALL bdos INC A ;set flag RET ;************************************************ ; * ; look word up in index file * ; * ;************************************************ A024E: EX DE,HL ;seek word buffer start in DE LD HL,inxwsp ;start of index buffer LD BC,14H ;lenght of a index entry A0255: LD A,(HL) ;get a character OR A ;end of word ? JR Z,A0260 ;yes => skip CALL A01D0 ;compare (HL) to (DE) RET Z ;the same => skip ADD HL,BC ;else start of next index word JR A0255 ;repeat ;************************************************ ; * ; set end of index file flag * ; * ;************************************************ A0260: DEC A RET ;************************************************ ; * ; open data file * ; * ;************************************************ A0262: LD A,(datfl1) ;data file opend ? OR A RET NZ ;yes => skip LD DE,fchman ;else open HELP.MAN CALL opfile LD A,1 LD (datfl1),A ;set open flag RET NZ ;return if ok XOR A ;else clear flag LD (datfl1),A LD HL,T06A8 ;error HELP.MAN not found JP A0221 ;wait for keypress ;************************************************ ; * ; print help word * ; * ;************************************************ A0283: LD HL,loktxt ;start of line text LD DE,lokbuf ;buffer start LD BC,78 ;lenght LDIR LD HL,cmd2bf ;help word PUSH HL CALL A0323 ;find lenght POP HL PUSH HL LD C,B LD B,0 ;BC = lenght PUSH BC LD DE,lokbuf LDIR ;move help word into line text POP BC POP DE LD HL,lokbuf+55 ;second place on line AND A SBC HL,BC EX DE,HL LDIR ;move it LD HL,lokbuf ;start of buffer JP ptxt ;print it \f ;************************************************ ; * ; print out text routine * ; * ; entry: HL = start of text * ; * ; text is terminated with 0 (NULL) * ; * ;************************************************ ptxt: LD A,(HL) ;get charcter OR A ;end ? RET Z ;yes => skip CALL ptxt1 ;print charcter INC HL ;point to next JR ptxt ;repeat ptxt1: PUSH HL push de push bc ld e,a ;character to e cp lf ;is it line feed ? jr nz,ptxt2 ;no => skip ld hl,line ;line count inc (hl) ;adv counter ld a,(hl) cp 22 ;line 22 ? jr c,ptxt2 ;no => skip call getpag ;get a command xor a ld (hl),a ;clear counter ptxt2: ld c,2 ;console out call bdos pop bc pop de pop hl ret ;************************************************ ; * ; Ask for continue on line 23 * ; * ; And check for esc * ; * ;************************************************ getpag: push hl push de push bc ld hl,lin24 call ptxt ld de,esctx1 ;ask for a key ld c,9 call bdos call getchr ;get charcter push af call clrhom ;clear screen pop af pop bc pop de pop hl cp esc ;escape ? ret nz ;no jp warmst ;warm start ;************************************************ ; * ; print error no look up word * ; * ;************************************************ p_nlok: LD HL,cmd2bf ;After 2. cmd buffer CALL A0323 PUSH BC ld hl,lin24 ;print it on line 24 call ptxt LD HL,T05F2 ;error: no look up word call ptxt POP BC LD HL,cmd2bf p_nlo1: ld a,(hl) ;get character or a ;zero ? ret z ;yes => skip push bc call ptxt1 ;print character pop bc inc hl ;point to next djnz p_nlo1 ;repeat RET ;************************************************ ; * ; find lenght of word in command table * ; * ;************************************************ A0323: LD B,0 ;clear counter A0325: LD A,(HL) ;get charcter OR A ;end of text ? RET Z ;yes => skip INC HL ;point to next INC B ;advance counter JR A0325 ;repeat until end ;************************************************ ; * ; Check for and move 2.nd command * ; * ;************************************************ cmd2: LD HL,buffer+1 ;default 2. entry cmd2l1: LD A,(HL) ;get character INC HL ;point to next OR A ;a entry ? RET Z ;no => skip CP '!' ;char less than ! JR C,cmd2l1 ;Yes => skip LD DE,cmd2bf ;point to destination LD (DE),A ;save drive name LD A,(HL) ;get next character INC HL ;point to next CP ':' ;drive terminator ? JR Z,cmd2l1 ;yes => skip DEC HL ;no => make a adjust INC DE LD B,001H cmd2l2: LD A,(HL) CP '!' ;letter ? JR C,cmd2te ;no => skip CP '.' ;decimal point ? JR Z,cmd2te ;yes => skip LD (DE),A ;store character INC HL ;poitn to next INC DE INC B ;increment counter LD A,B ;move it to Acc. CP 16 ;more than 16 ? JR C,cmd2l2 cmd2te: XOR A ;terminate string LD (DE),A LD HL,cmd2bf ;HL = start of buffer INC A ;A = non zero RET ;************************************************ ; * ; print sign on on screen * ; * ;************************************************ scinit: CALL clrhom ;make frame LD HL,inittx JP ptxt clrhom: ld e,cls ;clear screen ld c,2 ;con out call 5 ;BDOS push af xor a ;line number ld (line),a pop af RET ;************************************************ ; * ; read data from data file * ; * ;************************************************ A03A5: CALL A03BC ;read data from data file A03A8: LD HL,(rdleng) ;get read lenght LD A,H ;lenght = zero ? OR L JR Z,A03A5 ;yes => repeat DEC HL ;else adjust lenght LD (rdleng),HL LD HL,(datpnt) ;read pointer (data) LD A,(HL) INC HL LD (datpnt),HL RET ;************************************************ ; * ; read 4 sectors from file (random) * ; * ;************************************************ A03BC: PUSH HL PUSH DE PUSH BC LD B,4 ;number of sectors LD DE,datwsp ;start of buffer LD (datpnt),DE ;save in pointer A03C8: PUSH BC ;save number of sectors LD HL,(fchman+33) ;adjust sector address for next sector INC HL LD (fchman+33),HL PUSH DE ;save dma address LD C,26 ;set dma address CALL bdos LD DE,fchman ;fcb of HELP.MAN LD C,33 ;random read CALL bdos POP DE ;restore dma address LD HL,128 ;sector lenght ADD HL,DE EX DE,HL ;hl= next sector POP BC ;restore number of sectors to read DJNZ A03C8 ;repeat until done LD HL,200h ;default read lenght (512 bytes) LD (rdleng),HL POP BC POP DE POP HL RET ;************************************************ ; * ; print until ^B is found * ; * ;************************************************ A03F1: LD B,2 ;^B marked words JR A03F7 ;************************************************ ; * ; print until ^S is found * ; * ;************************************************ A03F5: LD B,013H ;start of a new look-up word A03F7: CALL A03A8 ;get a character CP B ;is it one of them we want ? JR Z,A0402 ;yes => skip CALL ptxt1 ;print charcter JR A03F7 ;repeat until done ;************************************************ ; * ; control charcters is enounced * ; * ;************************************************ A0402: LD A,B CP 2 ;was it ^B ? RET Z ;yes => skip A0406: ld hl,lin24 ;print on line 24 call ptxt LD HL,endtx1 ;print end of text call ptxt jp getchr ;************************************************ ; * ; print out characters * ; * ;************************************************ A0456: CALL A04CF PUSH DE LD A,(pnt1) OR A CALL Z,A049D DEC A LD (pnt1),A LD A,(pnt2) OR A JR Z,A0471 DEC A LD (pnt2),A JR A048C A0471: PUSH HL PUSH BC ; clear line 24 POP BC POP HL LD DE,-80 ;line lenght ADD HL,DE A048C: LD A,(pnt3) LD E,A XOR A LD D,A LD (pnt3),A SBC HL,DE LD DE,80 ;line lenght ADD HL,DE POP DE RET A049D: PUSH HL PUSH DE PUSH BC ld de,lin241 ;cursor pos ld de,9 call bdos LD DE,esctx1 ld c,9 ;print text call bdos CALL getchr CP esc JR Z,A04B6 CP 018H JR NZ,A04BC A04B6:; LD SP,02B71H JP warmst A04BC: LD C,14H CP cr JR NZ,A04C4 LD C,1 A04C4: ;clear ? LD A,C POP BC POP DE POP HL RET A04CF: CALL A04DC RET Z CP 013H RET NZ getchr: CALL A04DC JR Z,getchr RET A04DC: PUSH HL PUSH DE PUSH BC LD E,0FFH LD C,006H CALL bdos OR A POP BC POP DE POP HL RET ;************************************************ ; * ; Quit to system (cmd 0) * ; * ;************************************************ quit: LD E,cls ;clear screen cmd LD C,2 ;print it CALL bdos JP 0 ;warm boot CP/M ;************************************************ ; * ; IKON menu * ; * ;************************************************ ikon: CALL clrhom LD HL,ikontx CALL ptxt CALL A0406 JP warmst ;************************************************ ; * ; MARKØR menu * ; * ;************************************************ markor: CALL clrhom LD HL,martx2 ;start of text area CALL ptxt ;print text CALL A0406 ;print line 24 and wait until keypress JP warmst ;************************************************ ; * ; Kommando menu * ; * ;************************************************ comand: CALL clrhom LD HL,komtx2 ;start of command text area CALL ptxt ;print it CALL A0406 ;wait until keypress JP warmst ;goto main menu ;************************************************ ; * ; Help manual look up words * ; * ;************************************************ helpwd: CALL rdinxf ;open and read index file CALL clrhom ;clear screen LD HL,hmanup ;manuals key words CALL ptxt ;print index word line LD HL,inxwsp ;start of index buffer LD DE,20 ;lenght of a index entry A0534: LD A,cr ;get new line CALL ptxt1 ld a,lf call ptxt1 LD C,4 ;print 4 word on a line A053B: LD A,(HL) ;get character OR A ;end of word JR Z,A055A ;yes => skip PUSH HL ;save source address CALL A0323 ;find lenght of word POP HL PUSH HL CALL ptxt ;print next word POP HL ADD HL,DE ;point to next word LD A,19 ;19 columns wide SUB B LD B,A A0550: LD A,20h ;space CALL ptxt1 DJNZ A0550 DEC C ;still same line ? JR NZ,A053B ;yes => skip JR A0534 ;print cr,lf ;************************************************ ; * ; get entry (look-up word * ; * ;************************************************ A055A: LD HL,hwhcmd ;which word ? CALL ptxt LD B,16 ;lenght of word (max) LD HL,cmd2bf A0565:; LD A,20H ; ; CALL ptxt1 CALL getchr CP esc ;escape ? JP Z,warmst CP 18H ;^X ? JP Z,warmst CP lf ;line feed ? JR Z,A05B4 CP cr ;carriage return ? JR Z,A05B4 CP 08H ;backspace ? JR Z,A058E CP 7FH ;del ? JR NZ,A059C A058E: LD A,B CP 16 ;lenght = max ? JR Z,A0565 ;yes => skip LD A,08 ;del CALL ptxt1 ld a,20h ;space call ptxt1 ld a,08 call ptxt1 DEC HL INC B JR A0565 ;************************************************ ; * ; convert to upper case * ; * ;************************************************ A059C: LD C,A ;move char to C LD A,B ;get lenght OR A ;zero lenght ? JR Z,A0565 ;yes => skip (get a new entry) DEC B ;adjust LD A,C ;get character CP 'a' ;under lower case ? JR C,A05AD ;yes => skip CP 'z'+1 ;over z ? JR NC,A05AD ;yes => skip AND 0DFH ;make it to upper case A05AD: LD (HL),A ;store charcter in buffer INC HL ;point to next CALL ptxt1 ;print character JR A0565 ;get a new charcter ;************************************************ ; * ; Look word up in index * ; * ;************************************************ A05B4: LD (HL),0 ;store a zero in end of text LD HL,cmd2bf ;point to start LD A,(HL) ;get charcater OR A ;zero ? JR NZ,A05DE ;no => skip PUSH HL ;save start LD DE,(pnt4) DEC DE LD (pnt4),DE LD DE,d_cmd1 ;default text (HELP) A05CA: LD A,(DE) ;get character OR A ;end ? JR Z,A05D6 ;yes => skip LD (HL),A ;store it CALL ptxt1 ;and print it INC HL ;point to next INC DE JR A05CA ;repeat until done ;************************************************ ; * ; store a zero in end of text * ; * ;************************************************ A05D6: LD (HL),0 POP HL A05DE: JP A0126 ;************************************************ ; * ; default command * ; * ;************************************************ d_cmd1: defb 'HELP',0 ;************************************************ ; * ; Get a number betwin 0-4 into a * ; * ;************************************************ getcmd: CALL getchr SUB '0' JR C,getcmd CP 5 JR NC,getcmd RET ;************************************************ ; * ; text area * ; * ;************************************************ T05F2: defb 'Inget uppslagsord ',0 T063E: T0640: T0672: T06A8: NOP ;************************************************ ; * ; Default text buffer * ; * ;************************************************ lin24: defb esc,cur_li,' '+23,' ',0 lin241: defb esc,cur_li,' '+23,' ','$' hwhcmd: defb cr,lf,lf,lf,'Vilket upslagsord ønskas ? ',0 ndxnf: defb ' HELP.NDX hittas ej, tryck någon tangent før forts.',0 esctx1: defb ' Tryck <ESC> før att avbryta, annan tangent før forts.$' endtx1: defb ' Uppslagsordet slut, tryck någan tangent før forts.',0 hmanup: defb cr,lf,tab,tab,'--- Manualens uppslagsord ---',cr,lf,0 inittx: defb cr,lf defb ' --- HELP v1.0 Huvudmeny ---',cr,lf,lf,lf defb ' 1. IKON-definitioner',cr,lf,lf defb ' 2. MARKØR-styrning',cr,lf,lf defb ' 3. KOMMANDO-radsmetoder',cr,lf,lf defb ' 4. HELP-manualens upslagsord',cr,lf,lf,lf,lf,lf,lf defb ' 0. Læmna HELP-programmet',cr,lf,lf,lf,lf defb ' --- Vælj ønskat alternativ med tryckning på ''1''-''4'' el. ''0'' ---' defb 0 ;end of text ;************************************************ ; * ; Ikon texts * ; * ;************************************************ ikontx: defb ' -- IKON-DEFINITIONER --',cr,lf,lf defb ' WS.COM TELCOM.COM',cr,lf defb ' ordbehandlare telekommunikationsprogram',cr,lf defb ' 1 6',cr,lf,lf defb ' MP.COM TRANSFER.COM',cr,lf defb ' kalkylprogram filøverføring (kopiering m m)',cr,lf defb ' 2 7',cr,lf,lf defb ' SB.COM (ERA)',cr,lf defb ' registerprogram radera filer',cr,lf defb ' 3 8',cr,lf,lf defb ' USR.COM HELP.COM',cr,lf defb ' anvenændardefinerade komandon dessa hjælp-skærmar',cr,lf defb ' 4 9',cr,lf,lf defb ' INIT.COM CPM (CCP)',cr,lf defb ' init. & konfigurera disk CCP återgå till CP/M CCP',cr,lf defb ' 5 0',cr,lf defb 0 ;end of text ;************************************************ ; * ; Markør menu * ; * ;************************************************ martx2: defb tab,tab,tab,tab defb '--- Markør-kontroll ---',cr,lf,lf,tab defb 'Føljande tangenter anvænds før att styra førflyttningen av markøren i',cr,lf defb 'blioteket:',cr,lf,lf,tab,tab,tab defb ' Markør uppåt',cr,lf defb ' Filbibliotekets børjan - W',tab,' E',tab,' R -Tillbaka an skivenhet',cr,lf,lf defb tab,' Markør vænster - S',tab,tab,' D - Markør høger',cr,lf,lf defb ' Filbibliotekets slut - Z',tab,' X',tab,' C - Framåt en skivenhet',cr,lf,tab,tab,tab defb ' Markør nedåt',cr,lf,lf,tab defb 'For att flytta markøren, tryck samtidigt på <CRTL> och den tangent som',cr,lf defb 'svarar mot den ønskade førflyttningen.',cr,lf defb ' <CRTL> E och W flyttar markøren uppåt respektive nedåt på skærmen.',cr,lf defb 'Førsøk att flytta markøren uppåt på øversta raden medfør att markøren plac-',cr,lf defb 'ras i øvre vænstra hørnet. På samma sætt medfør førsøk att flytta nedat på',cr,lf defb 'nedersta raden att markøren placeras øver sista filen i filbiblioteket.',cr,lf,tab defb 'Om filbiblioteket innehåller øver 64 filer, visas indledningsvis de 64',cr,lf defb ' førsta filerna. I detta fall medfør førsøk att førflytta markøren nedat fran',cr,lf defb 'nedersta raden att biblioteket rullas uppåt. Upprepad anvænding av <CRTL> X',cr,lf defb 'kommer att føra markøren till filbibliotekets slut. På motsvarende',cr,lf defb 'sætt, om filnamnet i øvre vænstra hørnet ej ær den førsta filen i filbiblio-',cr,lf defb 'teket, medfør <CRTL> E från øversta radan att biblioteket rullas nedåt.',cr,lf defb ' <CRTL> S och D flyttar markøren till vænster resp høger. Vid kanterna',cr,lf defb 'førflyttas markøren øver till næsta rad, S mot filbibliotekets børjan, och D',cr,lf defb 'mot dess slut. Om denna førflyttning medfør att markøren kommer utanfør den',cr,lf defb 'den del av bilioteket som før tillfældet visas på skærmen, erhålls rullning',cr,lf defb 'enligt beskrivningen ovan,',cr,lf defb ' <CRTL> W och Z flyttar markøren till filbibliotekets børjan respektive',cr,lf defb 'slut',cr,lf defb ' <CRTL> R och C medfør byte av visnad skivenhet. Om exempelvis enhet B:',cr,lf defb 'visas på skærmen, då medfør <CRTL> R att i stællet filbibliotek før enhet A:',cr,lf defb 'visas. Observera att detta inte medfør någan ændring betræffande inloggad',cr,lf defb 'skivenhet, vilket visas av att namnet på den aktuella skivenhet (længt',cr,lf defb 'till vænster på statusraden) ej ændras. Skivenheternas ordningsføjd ær A:',cr,lf defb 'B: M: L:. (Observera att den logiska skivenheten L: kommer sist i denna sek-',cr,lf defb 'vens). Om enhet A: visas på skærmen, medfør alltså en tryckning på <CRTL> C',cr,lf defb 'att enhet B: kommer att visas, en tryckning till på <CRTL> C ændrar till en-',cr,lf defb 'het M:, och ytterligare en tangentnedtryckning ændrer till skivenhet L:. En',cr,lf defb 'tryckning på <CRTL> C nær L: visas ger ingan effekt. <CRTL> R kommer nu på',cr,lf defb 'liknande sætt att stekvis leda tillbaka till skivenhet A:.' defb 0 ;************************************************ ; * ; command help menu * ; * ;************************************************ komtx2: defb tab,tab,tab defb '--- Kommandoen før exekvering ---',cr,lf defb ' Det finns tre metoder att exekvera et øvergångskommando:',cr,lf,lf defb tab,tab,'(i) IKON-val',cr,lf defb tab,tab,'(ii) MARKØR-styrning',cr,lf defb tab,tab,'(iii) KOMMANDO-radsval',cr,lf,lf defb ' IKON-val',cr,lf defb ' Med varje ikon længst ned på skærmen hør sammen både en ciffra och',cr,lf defb 'ett kommando. Exempelvis ær "telefon"-ikonen associerad med siffran 6 och',cr,lf defb 'kommandot "TELCOM". (Før definitionen av ikonerna se uppslagsordet IKON).',cr,lf defb 'Før att exekvera det kommando som hør sammen med ikonen, skriv helt enkelt',cr,lf defb 'siffran under ikonen, skriv t ex ''6'' før att exekvera TELCOM. Det behøvs',cr,lf defb 'alltså bara ett enda tangentnedslag før att køra ett program.',cr,lf,lf defb ' MARKØR-styrning',cr,lf defb ' Nær filbiblioteket kommer upp på skærmen, upptræder en markør i in-',cr,lf defb 'verterad video øvre filnamnet i øvre vænstra hørnet. Denna markør markerar',cr,lf defb 'det "gællande" filnamnet. Om detta ær en kommando fil (filtyp.COM), då exe-',cr,lf defb 'kveras kommandot genom att helt enkelt trycka på <RETURN>. (Før information',cr,lf defb 'om hur markøren førflyttas, se uppslagsordet MARKØR).',cr,lf,lf defb ' KOMMANDO-raden',cr,lf defb ' Vid tryck på en tangent som ger ett skrivbart tecken, intræder Shell',cr,lf defb 'i paramertermod. I denna mod kommer alla tecken som skrivs att visas på skær-',cr,lf defb 'men, och vid tryck på <RETURN>, kommer Shell att førsøka exekvera denna',cr,lf defb 'kommandorad. Både <BACKSPACE> och <DEL> medfør att det sist skrivna tecknet',cr,lf defb 'raderas. En tryckning på <ESC> medfør att raden ignoreras och ikonerne åter-',cr,lf defb 'kommer. En trycknng på <LF> medfør att filnamnet under filmarkøren førs ned',cr,lf defb 'till kommandoraden. (OBS att en tryckning på <LF> i ICKE-parametermod medfør',cr,lf defb 'att filnamnet under markøren førs ned och Shell intræder i parametermod un-',cr,lf defb 'der førudsættning att filnamnet representerar en .COM-fil).',cr,lf defb ' En kommandorad kan vara upp till 77 tecken lang.',cr,lf defb 0 ;************************************************ ; * ; Command decode text's * ; * ;************************************************ ikntx1: defb 'IKONER',0 ikntx2: defb 'IKON',0 martx1: defb 'MARKØR',0 komtx1: defb 'KOMMANDO',0 txname: defb cr,lf,'NAME',cr,lf,0 txsynt: defb 'SYNTAX',cr,lf,0 txdesc: defb 'DESCRIPTION',CR,LF,0 txexam: defb 'EXAMPLE',cr,lf,0 txeror: defb 'ERROR MESSAGES',cr,lf,0 txextr: defb 'EXTERNAL REF.:',cr,lf,0 loktxt: defb ' ' defb '--- Manualens upslagsord ---' defb ' ',0,0 ;************************************************ ; * ; command index table * ; * ;************************************************ cmdtab: defw quit ;command 0 address (QUIT) defw ikon ;command 1 address (IKON) defw markor ;command 2 address (MARKØR) defw comand ;command 3 address (KOMMANDO) defw helpwd ;command 4 address (HELP) ;************************************************ ; * ; File control blocks * ; * ;************************************************ fchndx: defb 0 ;user / drive defb 'HELP NDX' defs 24 ;space fchman: defb 0 ;user / drive defb 'HELP MAN' defs 24 ;space ;************************************************ ; * ; work space * ; * ;************************************************ stinxw: defw 0 ;start of index word rdleng: defb 0 ;lenght of read datfl1: defb 0 ;data file open flag inxfl1: defb 0 ;indexfile open flag cmd2bf: defs 50 ;command buffer pnt1: defs 1 pnt2: defs 1 pnt3: defs 1 pnt4: defs 2 datpnt: defs 2 ;address of data offpnt: defs 2 ;offset from start of record line: defs 1 ;line count inxwsp: defs 16*128 ;index file workspace inxend: defs 1 ;end of index datwsp: defs 16*128 ;read data buffer lokbuf: defs 50 END «eof»