# HG changeset patch # User boisy # Date 1038952357 0 # Node ID 472f0651e644df37fa8bfef1f2a62c0eb427f67a # Parent 085efbb80a5a64eafdc31325e870a6c91fca9465 exmode.asm is part of l2 utils package diff -r 085efbb80a5a -r 472f0651e644 level2/cmds/exmode.asm --- a/level2/cmds/exmode.asm Tue Dec 03 21:50:32 2002 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,681 +0,0 @@ -******************************************************************** -* EXMode - Extended SCF device descriptor utility -* -* $Id$ -* -* Ed. Comments Who YY/MM/DD -* ------------------------------------------------------------------ -* 1 Bruce Isted version released to PD BRI 89/06/21 - - nam EXMode - ttl Extended SCF device descriptor utility - - ifp1 - use defsfile - endc - -BuffSize equ 10 max. CHAR string length -Edtn equ 1 -MaxSize equ $80 maximum module size -NameSize equ 4 maximum module name length -Vrsn equ 1 - - org 0 -Count rmb 1 number of option bytes -DataPtr rmb 2 current option ptr -HexIn rmb 2 2 byte hex number -ModAddr rmb 2 module address -ModSize rmb 2 module size -OptEnd rmb 2 option table end offset -ParmPtr rmb 2 next name DataPtr -PathNmbr rmb 1 file path -TxtPtr rmb 2 option name ptr -Buffer rmb BuffSize miscellaneous output buffer -ModBuff rmb MaxSize module work copy buffer -stack rmb $0200 stack and parameter space -MemSize equ . - - mod Size,Name,Prgrm+Objct,ReEnt+Vrsn,Entry,MemSize - -Name fcs "EXMode" - fcb Edtn edition number - -OptTable - fcc " nam" option name - fcb Sign+M$Name,NameSize offset to string offset & max. byte count to change - fcc " mgr" - fcb Sign+M$FMgr,0 offset to string offset & no changes allowed - fcc " ddr" - fcb Sign+M$PDev,0 - fcc " hpn" - fcb M$Port,1 option offset & byte count - fcc " hpa" - fcb M$Port+1,2 - fcc " upc" - fcb IT.UPC,1 - fcc " bso" - fcb IT.BSO,1 - fcc " dlo" - fcb IT.DLO,1 - fcc " eko" - fcb IT.EKO,1 - fcc " alf" - fcb IT.ALF,1 - fcc " nul" - fcb IT.NUL,1 - fcc " pau" - fcb IT.PAU,1 - fcc " pag" - fcb IT.PAG,1 - fcc " bsp" - fcb IT.BSP,1 - fcc " del" - fcb IT.DEL,1 - fcc " eor" - fcb IT.EOR,1 - fcc " eof" - fcb IT.EOF,1 - fcc " rpr" - fcb IT.RPR,1 - fcc " dup" - fcb IT.DUP,1 - fcc " psc" - fcb IT.PSC,1 - fcc " int" - fcb IT.INT,1 - fcc " qut" - fcb IT.QUT,1 - fcc " bse" - fcb IT.BSE,1 - fcc " ovf" - fcb IT.OVF,1 - fcc " par" - fcb IT.PAR,1 - fcc " bau" - fcb IT.BAU,1 - fcc " xon" - fcb IT.XON,1 - fcc " xof" - fcb IT.XOFF,1 - fcc " col" - fcb IT.COL,1 - fcc " row" - fcb IT.ROW,1 - fcc " xtp" - fcb IT.XTYP,1 - fcc " wnd" - fcb IT.WND,1 - fcc " val" - fcb IT.VAL,1 - fcc " sty" - fcb IT.STY,1 - fcc " cpx" - fcb IT.CPX,1 - fcc " cpy" - fcb IT.CPY,1 - fcc " fgc" - fcb IT.FGC,1 - fcc " bgc" - fcb IT.BGC,1 - fcc " bdc" - fcb IT.BDC,1 -TablOpts equ (*-OptTable)/6 number of table entries - fcb $80 end of option table - -UseMsg - fcb C$LF - fcc "Usage: EXMode [/ || - || -?] [option] [option] [...]" - fcb C$LF,C$LF - fcc "Purpose: To report or alter current option settings of SCF device" - fcb C$LF - fcc " descriptors in memory or on disk in single module files." - fcb C$LF,C$LF - fcc "Options: nam, mgr, ddr, hpn, hpa, upc, bso, dlo, eko, alf, nul, pau," - fcb C$LF - fcc " pag, bsp, del, eor, eof, rpr, dup, psc, int, qut, bse, ovf," - fcb C$LF - fcc " par, bau, xon, xof, col, row, xtp, wnd, val, sty, cpx, cpy," - fcb C$LF - fcc " fgc, bgc, bdc" - fcb C$LF,C$LF - fcc "Examples: exmode /t2" - fcb C$LF - fcc " Prints the current option settings of the /T2 descriptor" - fcb C$LF - fcc " in memory." - fcb C$LF - fcc " exmode -modules/t4.dd nam=T2 bau=6 hpa=ff6c eof=1B" - fcb C$LF - fcc " Changes the module name in the MODULES/T4.dd file to T2," - fcb C$LF - fcc " sets the baud rate code to 6, the hardware port address" - fcb C$LF - fcc " to $FF6C, and the end of file character to $1B." - fcb C$LF - fcc " exmode -?" - fcb C$LF - fcc " Prints more complete information on all of the options." - fcb C$CR -UseLen equ *-UseMsg - -HelpMsg - fcb C$LF - fcc "The NAM option accepts only a legal OS-9 module name with a maximum of" - fcb C$LF - fcc "4 characters. It is up to the user to ensure that there is adequate" - fcb C$LF - fcc "room for the module name, and if required to rename the disk file to" - fcb C$LF - fcc "suit the new module name. The MGR and DDR options can't be changed." - fcb C$LF - fcc "All other options require hexadecimal numbers (0 through FFFF). XTP is" - fcb C$LF - fcc "for certain ACIA descriptors only. WND, VAL, STY, CPX, CPY, FGC, BGC," - fcb C$LF - fcc "and BDC are for window descriptors only." - fcb C$LF,C$LF - fcc "nam Device Name mgr File Manager Name ddr Device Driver Name" - fcb C$LF - fcc "hpn H'ware Page Number hpa H'ware Port Address upc Case Lock Flag" - fcb C$LF - fcc "bso Backspace Method dlo Delete Line Method eko Screen Echo Flag" - fcb C$LF - fcc "alf Auto Linefeed Flag nul End Of Line Nulls pau Page Pause Flag" - fcb C$LF - fcc "pag Page Length bsp Backspace Character del Delete Line Char" - fcb C$LF - fcc "eor End Of Record Char eof End Of File Char rpr Reprint Line Char" - fcb C$LF - fcc "dup Duplicate Line Char psc Pause Character int Interrupt Character" - fcb C$LF - fcc "qut Quit Character bse Backspace Echo Char ovf Overflow Character" - fcb C$LF - fcc "par Type (Parity) Code bau Baud Rate Code xon XON Character" - fcb C$LF - fcc "xof XOFF Character col Display Columns row Display Rows" - fcb C$LF - fcc "xtp Extended Type Code wnd Window Number val Valid Window Flag" - fcb C$LF - fcc "sty Window Screen Type cpx X Corner Position cpy Y Corner Position" - fcb C$LF - fcc "fgc Foreground Colour bgc Background Colour bdc Border Colour" - fcb C$CR -HelpLen equ *-HelpMsg - -Equal fcc "=" - -TypeMsg - fcb C$LF - fcc "Not an SCF descriptor!" -CR fcb C$CR -TypeLen equ *-TypeMsg - -Sizemsg - fcb C$LF - fcc "Module size out of range!" - fcb C$CR -Sizelen equ *-Sizemsg - -SynMsg - fcb C$LF - fcc "Syntax error: " -SynLen equ *-SynMsg - -**************** -* miscellaneous error and help routines - -MuchHelp - leax HelpMsg,pc - ldy #HelpLen - bra Helpprnt - -BadSize - leax Sizemsg,pc - ldy #Sizelen - bra AddHelp - -BadType - leax TypeMsg,pc - ldy #TypeLen -AddHelp - lda #2 - os9 I$WritLn -Help - leax UseMsg,pc - ldy #UseLen -Helpprnt - lda #2 - os9 I$WritLn - lbra OkayEnd2 - -**************** -Entry - ldd #0 - std - bne Help - pshs u - lda #Devic - os9 F$Link link to module - bcs Help - stx delimiter char? - bne Syntax no, go report error - -ChkLen - cmpb Byte: - suba #$30 make number from ASCII - bmi Syntax - cmpa #10 is it number? - bcs Num - anda #$5F make uppercase - suba #$11-$0A make hex $A-$F - cmpa #$0A - bcs Syntax - cmpa #$10 not hex char? - bcc Syntax - -Num - ldb #16 fancy asl *4 - mul - pshs b save top 4 bits - ldd - -SetNum2 - ldb 4,y get option offset - leay ModBuff,u point to module - leay b,y point to option - ldd : -OutCR - leax CR,pc - ldy #1 - lda #1 - os9 I$WritLn - rts - -**************** -* Output Current Desc Info: -Info - bsr OutCR do a - ldb #TablOpts number of table entries - pshs b save counter - leax OptTable,pc point to text table - stx after every 8th option - lbra InfoLoop ..loop - -* -------------- -* Print 1/2 Byte Hex Char: -OutOne - cmpa #10 - bcs Number - adda #$11-10 make alpha - -Number - adda #$30 make ASCII - sta