Win7 / DOS / Fiska

May 21, 2014 at 5:13 PM
Edited May 21, 2014 at 5:14 PM
Prvi put instaliram svoju DOS kasu na Windowse 7 pa da podijelim svoja iskustva, kako bi drugi manje lutali u magli (ako jos ima takvih).
  1. Windowsi moraju biti 32bitni, jer pod 64bit cmd-om ne rade stare DOS aplikacije.
  2. Ako zelite FULL SCREEN, najbolje je NE INSTALIRATI VGA driver (neka bude Standard VGA Display) ili ako ga instalirate, onda ga treba DISABLE-ati (ne DEINSTALIRATI!) kroz Device Manager. Ovo, na zalost, ne funkcionira na Win8 - tamo vise nema full screen u cmd ni pod razno.
  3. Nemoguce je azurirati c:\windows_default.pif u kojem se definira osnovni izgled ekrana i sto je najvaznije EMS/XMS memorija (clipper i ostali antikviteti). MEDJUTIM, dignete neki WINPE (XP) sa usb sticka, odradite properties od _default.pif-a pod tim windowsima (naravno _defalut.pif koji se nalazi na Win7 particiji, ne taj od WINPE windowsa!) kako vam drago i to ce ostati zapamceno nakon reboota (a i funkcionira!).
  4. Certifikati se po defaultu ne instaliraju na isto mjesto gdje i pod XP-om, tako da ih Fiska ne pronalazi i ne radi. ROOT certifikati (DEMO i RDC) bi se trebali postaviti u "Pouzdane korjenske ustanove za izdavanja certifikata\Certificates", a ne u "Medjuustanove za izdavanje certifikata\Certificates" (obozavam ove HR prijevode!) gdje se postave ako idete metodom NEXT/NEXT... Ne morate ih ponovo reinstalirati ako su na krvom mjestu, mogu se jednostavno drag&drop metodom postaviti na pravo mjesto kroz mmc konzolu.
Uglavnom, ako dobijate poruku tipa: The underlying connection was closed. Could not establish... onda je vjerojatno u pitanju kriva pozicija certifikata u lancu. Personalni certifikat se postavi tamo gdje treba bez dodatnih intervencija.

Toliko zasad, idem u borbu s printerima :(((
May 22, 2014 at 7:08 AM
A DOSBox ?

http://www.youtube.com/watch?v=bo1PaNf3y7Q

Provjereno radi.
May 22, 2014 at 11:18 AM
Edited May 22, 2014 at 11:18 AM
DOSBox ne radi dobro i mene ne zadovoljava. Najveća mana je to što ne zna zaključati slog u DBF bazi (vjerujem da taj problem ima i Clipper), tj. naredba za zaključavanje ne javlja grešku, ali slog nije zaključan te mu se može pristupiti sa drugog računala.
Printati na USB printer nisam ni probao.
May 22, 2014 at 11:29 AM
DOSbox je, koliko znam, prvenstveno namijenjen DOS igrama pod Windowsima. Doduse, probao sam pod Linuxom i njegovim DOSboxom, moja Clipper aplikacija je (za divno cudo!) radila pa sam siguran da bi radila i pod Windowsima.

Postoji, medjutim, problem mreze pod svim tim emulatorima. Moze se koristiti bilo sto, VMware, DOSbox, VirtualPC, itd. Kad instalirate DOS pod virtualnom masinom onda imate samo taj DOS, koji naravno, sam po sebi nema nikakvu mreznu podrsku, nego se morate zajebavati sa raznoraznim Novell, Lantastic, Microsoft ili nekim drugim dodacima za mrezno povezivanje, koje je sad neophodno zbog fiskalizacije. A pod DOS-om to nije lako, jer uvijek fali memorije posto on "normalno" vidi samo prvih 640KB. Ja sam se nekad dosta igrao sa VMware-om i ziv sam se namucio da natjeram DOS virtualnu masinu da vidi nesto na mrezi. Uglavnom, nisam uspio napraviti nesto univerzalno sto bi u svakoj situaciji radilo bez problema, tako da sam od DOS virtualizacije odustao.

Ali volio bih cuti tudja iskustva, sigurno ima i pametnijih rjesenja. Uostalom zato ovo i pisem, da se netko pohvali kako je smislio nesto bolje i pametnije :)
May 22, 2014 at 8:56 PM
PRINTERI

Obzirom da su na trzistu dostupni uglavnom USB printeri, a ni maticne ploce vise nemaju PAR/SER portove (vecina novih ih uopce nema, niti u BIOSU-u, tako da se ne moze napraviti "pooling" na LPT1) onda printanje pod DOS-om, koji poznaje samo LPT1-3 i COM1-4, postaje prava nocna mora. Jedno od rjesenja je korisiti neki neovisni softverski redirektor (Print2DOS i slicno), koji opet imaju svojih nedostataka. Rjesenje koje mi se najvise svidja i u stvari potpuno eliminira probleme printanja je pomocu virtualnog COM porta. To je softver koji se dijeli uz sve Bixolon (Samsung) USB POS printere, a moguce je da radi i sa drugim (nisam probao).

Uglavnom, instaliram printer kao GENERIC (bez drivera), spojim ga na USB port (u printer properties), onda taj virtualni COM port (treba kroz taj softver pridruziti odgovarajuci printer nekom virtuelnom COM portu) i "pod DOS-om", tj. pod cmd-om, definiram parametre spajanja (i eventualno redirekciju na neki LPT port). Sve radi k'o po loju, ne gube se podaci kod vece kolicine printanja, niti se zaglavljuje, a DOS masina ga vidi kao neki COM ili LPT printer.

Ostaje mi jos da izmajmunisem jedan mrezni POS printer, nemam pojma sta tu da radim, ali cekam ga da dodje pa cemo onda u boj.
May 23, 2014 at 7:20 AM
Dok sam još rado s Clipperom problem printera sam riješavao kroz NBT printer share. Instaliraš printer kao generic i napraviš mu share na mreži. Meni su svi ispisi (lokalno, lokalno na mreži i udaljeno na mreži) išli u .lst fajlove i potom bi pozivao jedan od 3 batch fajla u putanji, a u njima sam birao kako i kamo ću ispisivati. Ako nije bilo LPT porta ili sam radio (ili morao) raditi preko mrežnih sherova samo bi rekao copy /b @1 sharename >null i to je to. Radilo je godinama, bez problema, i bez potrebe za mapiranjem. Sa laserima i inkjetovima sam koristio (program je bio isključiov ESC/P2) DosPrn- Čak sam mu napravio i novu kondu stranicu sa CROSCII.

Još prije godinu-dvije sam znao zavrtjeti sam Clipper i odlinkati nešto pod DosBox-om, no znao je u nekim trenucima biti mušićav i spor. Virtualne mašine rade uredno, a ako se koristi FreeDos nema ni nikih većih problema s mrežom s obzirom da već dolazi s clientom za TCP, MSclientom i sl. Veći je problem s MS Clientom u pristupanju svemu novijem od XP-a. Na kraju sam napravio bootabilni USB stick s FreeDosom i piknuo ga u komp i bootao ga sa sticka.
May 23, 2014 at 9:53 AM
Veky wrote:
copy /b @1 sharename >null
Pretpostavljam da u gornjoj komandi nije @1 nego %1? Tipfeler ili nesto meni nepoznato?
May 23, 2014 at 1:41 PM
Ma tipfeler je. Nije mi se dalo pisati ni pravilno ono sharename jer codelpex ne da upisati left slash, a kamoli dva.
Meni se ovo sa batch fajlovima pokazalo najpraktičnije za podešavanje i korištenje na terenu. I preskočio sam probleme oko printanja na pravi hardverski port (pa ona veselja oko zauzeća porta, kemije oko provjere pisača i sl.).
May 23, 2014 at 6:22 PM
Edited May 23, 2014 at 6:31 PM
Hm, da, kako sam i mislio, problem sa ethernet POS printerom.
Naime, koristim isto BIXOLON SRP-F310, koji na sebi ima sve moguce i nemoguce portove (SER/USB/LAN/WLAN). Medujtim, njegov Virtual COM mi ne de radi pod Clipperom, a ne znam zasto? U stvari ne dopusta mi ni da ga pod CMD-om konfiguriram kao COM port (kaze nesto tipa Illegal device), sto kod SRP-350II USB verzije uradim bez problema i kasnije ga remapiram na LPT1. Najcudnije je sto se direktno iz CMD-a, bez ikakvog konfiguriranja moze poslati fajl (sa copy...) na taj ethernet printer, ali iz Clippera nece, valjda zato sto mu prethodno nije prosla ni konfiguracija tipa:

mode COM4: to=on odsr=on idsr=on baud=9600 parity=n data=8 stop=1

Virtual COM aplikacija za ethernet printer nije ista kao za USB printer (iako je sve od BIXOLON-a) i ne moze se koristiti jedna za oba printera. Medjutim, ova za ethernet nesto ne radi kako treba.

Uglavnom, rjesenje postoji kao i ranije: printer se share-a samom sebi na port koji se zeli (nakon sto ga se share-a u Printers):

net use lpt2 \\%COMPUTERNAME%\lanprint /persistent:yes

gdje je lanprint ime pod kojim se share-a, a lpt2 port na koji se zeli mapirati.

Tako na ovaj nacin mislim spojiti 2 kase, svaka sa svojim USB printerom (COM3->LPT1) i jednim ethernet printerom za kuhinju (NET USE... -> LPT2).

EDIT: Dodatni problem je sto USB printer ima ČŠĆĐŽ i u 437 i u 852 kodnoj stranici (ja po defaultu koristim 437), a ethernet samo u 852! Srecom pa sam ja u svojoj aplikaciji predvidio tu mogucnost, tako da sama aplikacija konvertira nase znakove u letu, ali da nisam, na ethernet printeru bi izlazilo nesto tipa: @ESTOKA PI]A, ^A[A VO]NOG SOKA, \US i slicni hijeroglifi :)
May 26, 2014 at 7:31 AM
No što će ti mapiranje porta i uopće igranje portevima kad lijepo radi kopiranje u NBT share? Pretpostavljam da report ionako prvo pospremiš nekamo na disk. Nakon toga napravi nešto tipa run (execute) copy naredbe DOS-a. tj. cmd-a. i to je dovoljno. Nisam radio s tim printerom no većina mrežnih printera podržava nekoliko protokola pa tako i SMB tj. NETBIOS i može biti sam sebi print server (to mu i je namjena, da radi na mreži neovisno o računalima) pa ga tada ni ne trebaš imati instaliranoga na računalo.
Za ČŽŠ-ove. sam prije dobrih petnaestak godina u C-u. napisao jedan kratki programčić koji kopira streamove i mijenja karaktere i ponaša se kao klasična Copy naredba u dos-u. samo što ima neke dodatne switcheve.
May 26, 2014 at 4:06 PM
Generalno si u pravu, no ja se nekako bojim (vjerojatno bezrazlozno) kopiranja iz Clippera na mrezne printere jer su nekad znali zaglavit (jos iz doba prije Windowsa, a i pod Windowsima i NBT podrskom za DOS). Stoga nastojim ne dijeliti printere ako ne moram. A i nisi imao potpunu kontrolu nad printerom (pod Clipperom) kad je bio dijeljen preko mreze (sad pak pod "Windows Clipperom" vise nemam nikakvu kontrolu tipa jel' otprint'o il' nije, ima li papira ili nema i slicno). Medjutim, posto je tako ipak lakse i nekako unificiranije (sve preko mreze, samom sebi i ostalima ako treba), onda cu vjerojatno tako i ostaviti trenutnu konfiguraciju.

Nisam razumio ovo oko SMB/NETBIOS-a, pod sto mislis da ne moras imati printer instaliran na racunalo? Moras valjda neki (ja uvijek koristim GENERIC) printer instalirati i portati ga na neku IP adresu? Ili postoji neka druga veza? Slicno tebi, ja ispalim ispis u fajl i onda ga kopiram na printer, sto god to bilo (drugi fajl, printer port), samo sto ne radim sa RUN i COPY nego sa fcopy() direktno iz Clippera. Mislim da je tako manja potrosnja resursa (RAM), a vjerojatno je i najbrze (sam Clipper blize assembleru od toga ne moze).
May 27, 2014 at 7:38 AM
Znači, ako se radi o mrežnom printeru u punom smislu te riječi, koji ima RJ45 konektor za Ethernet, pikneš ga nekamo u switch i koriste ga svi na mreži, neovisno o tvom računalu, a obračaš mu se nekim protokolom. Mrežni printeri imaju više protokola, npr: TCP/IP, NetBEUI, NetWare, EtherTalk.

Pristupaš mu na mreži isto kao i nekom sheranom printeru na drugom računalu. Ne moraš ga uopće imati instaliranoga na svoje računalo nego mu se samo obratiš na njegovoj adresi npr. \PC2\Epson i to je to.

Zaboravio sam jednu stvar, to mi je sad palo na pamet. IMaš li samo jedno računalo koje samo sebi shera printer i to računalo nema ni jedan aktivni mrežni interface (nije nikamo uštekano na mrežu) share ti neće raditi jer od Win2k na dalje računalo ubija IP adresu i imaš samo loopback adrese ukoliko ne prepoznaje da je mrežni kabel uštekan na mrežu. No postoji riješenje za to u obliku jednostavnog patcha za registry.
May 27, 2014 at 10:09 AM
Sjetio sam se zasto nisam mogao tako - Clipper 5.01 ne poznaje UNC sintaksu (\\pc2\epson) pa bi jedino rjesenje bilo preko externog RUN/COPY nacina, a to sam zelio izbjeci. Sve mrezne printere sam dosad spajao preko TCP/IP protokola, tako da iskreno, nisam se ni sjetio da postoji ovaj jednostavniji nacin preko NetBEUI-a.
May 30, 2014 at 12:15 PM
Zaboravi Clipper.
Prekompajliraj sa Harbourom i program će raditi na svemu (win 32/64, linux, mac).

http://harbour.github.io/
May 30, 2014 at 9:31 PM
Nenjet wrote:
Zaboravi Clipper.
Prekompajliraj sa Harbourom i program će raditi na svemu (win 32/64, linux, mac).

http://harbour.github.io/
Previse dobrih starih libraryja da bih napustio 5.01 ili jos gore, prepisivao ih u Harbour. Pokusao sam, super je sto je Harbour free, ali moji libovi ne rade uvijek kako treba (a super su mi, vecina optimizirana u C/Assembler kombinaciji). Pametnije bi mi bilo ozbiljno prec na neki "normalni" Windows programski jezik, zar ne?

BTW, ako ste nekad koristitli Clipper i poznati NortonGuide rezidentni program sa helpovima svih Clipper funkcija, komandi i biblioteka, mislim da sam najcesce bacao oko na Clipper Anomalies. To je ono sto me uvijek zanima kod svih proizvoda, sto ne radi kako treba. Tko ce sad otkrivat toplu vodu zasto u Harbouru ili bilo cemu drugom, nesto ne radi kako je nekad radilo?
May 30, 2014 at 9:57 PM
PRINTERI 2

Manje vise rijesio sam sve probleme sa kombinacijom W7 / DOS, ali sam na trenutak zastao kod dijeljenja printera pod W7. Ne dijeljenja samom sebi radi mapiranja na LPT port, nego pravog dijeljenja, sa PC-a na PC. Pod W7 sve super radi dok ne otipkate cmd. Super izgleda i kad mapirate printer na nekom drugom PC-u, dakle komanda net use lpt1 \\pckasa\posprint se uredno izvrsi. Komanda net use fino prikaze da imate spojen "tudji" printer na LPT1 port. Iz Windows okoline printanje na taj "tudji" printer funkcionira savrseno. Ali pokusate li pod cmd-om otprintati nesto na taj printer (ne radi ni obicni copy , u vecini slucajeva cete dobiti Access denied. Kazem u vecini slucajeva, jer ako su neki preduvjeti postavljeni (a najcesce nisu), onda ce printanje raditi. Da ne lomite glavu oko raznoraznih W7 budalastina glede mreznih grupa (HOME/WORK/PUBLIC), glavna stvar da vam dijeljeni printer printa pod cmd-om u W7 je da je logirani korisnik "password-iran", tj. da nije korisnik bez passworda. Slicna stvar je neophodna ako zelite pristupiti nekom korisniku preko Remote Desktop-a - mora biti passwordiran, inace mu ne mozete pristupiti bez obzira na sva ostala dopustenja. Moram naglasiti da, naravno, ovo za printanje nije slucaj pod XP-om, nego je uvedeno u W7 (i naravno nigdje explicitno ne pise).

Kako vam PC ne bi zastajkivao kod bootanja s upitom na lozinku, jednostavno je komandom netplwiz ili control userpasswords2 odrediti koji korisnik ce se automatski logirati prilikom bootanja, ali ovo je stara stvar, samo da podsjetim zaboravne.
Oct 22 at 9:49 AM
Molim za pomoć!
Imam win7 mrežu s tri računala. Program koji koristim je pisan u CLIPPER-u 5.2.
Ako s dva računala istovremeno pristupam istom .dbf-u, dolazi do greške u kojoj se na jednom računalu
vidi upis koji je učinjen na drugom računalu. Također se na prvom računalu isti upis na browse-u prikazuje više puta.
Meni izgleda da lock i/ili commit ne radi dobro.
Upis koji je načinjen na prvom računalu, gledajući ga s DBU, nema sve podatke koji se standardno trebaju upisati.
Zahvaljujem!
N. Zednik
Oct 22 at 1:58 PM
@NenadZ

Rado bih pomogao nekim savjetom, ali sam sve svoje kase pod Windowsima organizirao kao samostalne jedinice, koje kroz mrežu eventualno dijele printere, tako da nemam iskustava s mrežnim pristupom DBF-ovima pod Win7. Baš zbog toga da ne bih razbijao glavu kako se Clipper (koristim 5.01) i noviji Windowsi kolju. Još pod XP-om je znalo biti nekih pizdarija, ali manje-više je radilo OK. :(((
Oct 22 at 3:15 PM
Edited Oct 22 at 3:16 PM
Hvala na odgovoru u svakom slučaju! N. Zednik
Oct 22 at 6:13 PM
Nenade , nađi dan dva vremena da cjeli progranmski paket kompajliraš Harburom.Ako nemaš neke bitne lajbrerije,nemaš u biti kaj toliko raditi raditi.
Oct 23 at 1:14 AM
@NenadZ

Ako koristiš DOS emulatore, nisu svi pisani za mrežno okruženje.
Oct 23 at 10:09 AM
Edited Oct 23 at 10:11 AM
vvrbane wrote:
Nenade , nađi dan dva vremena da cjeli progranmski paket kompajliraš Harburom.Ako nemaš neke bitne lajbrerije,nemaš u biti kaj toliko raditi raditi.
Hvala na sugestiji! Ako imaš vremena molim te da mi odgovoriš na par pitanja.
Ako misliš da ovom diskusijom nepotrebno opterećujemo druge, možeš mi odgovoriti na mail: nenad.zednik1 at zg.t-com.hr.

Kako si ti odlučio između xHarbour-a i Harboura?
Koji c kompajler koristiš?
Da li tvoj programski paket radi u mrežnom okruženju?
Da li je rezultat kompajliranja 32 bitni .exe koji može raditi i na 64 bitnoj mašini?
Pretpostavljam da tvoj programski paket koristi FISKA za fiskalizaciju.
Kakovi su to problemi s library-jima? Kakova su tvoja iskustva?
Pretpostavljam da u windows okruženju ne treba podešavati AUTOEXEC.NT i CONFIG.NT,
tj. da je rezultat programiranja konzolna windows aplikacija.

Puno ti hvala!
N. Zednik