Скачать презентацию QPC Why when and how Dipl Inf Скачать презентацию QPC Why when and how Dipl Inf

22b807c4293a3983b41cb0d8596b99f7.ppt

  • Количество слайдов: 29

QPC “Why, when and how? QPC “Why, when and how? " Dipl. Inf. Marcel Kilgus Festo AG & Co. KG / Software Engineering Kilgus

Agenda 1. Personal Introduction 2. History of QPC 3. Development tools 4. QPC technology Agenda 1. Personal Introduction 2. History of QPC 3. Development tools 4. QPC technology 5. SMSQ/E 6. Q&A

Personal introduction v. Author of QPC, the first software only QL emulator for PCs Personal introduction v. Author of QPC, the first software only QL emulator for PCs v. Main developer of QL OS SMSQ/E after Tony Tebby quit v. Actual software developer, not yet a Power. Point drone v. Not really a public speaker v-> You get what you pay for

Timeline v 1979 v 1986 v 1988 v 1993 v 1995 v 1996 v Timeline v 1979 v 1986 v 1988 v 1993 v 1995 v 1996 v 1999 v 2002 Born Started with a ZX 81 (BASIC) Finally got my own QL Got a PC. With it the idea of „PCQL“ is born First beta of QPC shown at a QL meeting QPC v 1. 00 (DOS) goes on sale QPC 2 (Windows) is released QPC 2 v 3. 00 sees the light

How did this look like? How did this look like?

Why QPC? v. I loved my QL and felt guilty for switching to a Why QPC? v. I loved my QL and felt guilty for switching to a PC (but it could do more than 8 colours! Who could resist? ) v. Somebody said I couldn’t do it (my friend Jochen Hassler of ATRdevice, DISA, Eprommer II and other fames)

QPC beta v. First presented at a QL meeting near Munich v. Emulated original QPC beta v. First presented at a QL meeting near Munich v. Emulated original QL hardware v. Ran QDOS (mainly Minerva) v. People were so excited they even wanted to buy the beta version

QPC beta demonstration QPC beta demonstration

Switch to SMSQ/E v. Emulating native hardware is expensive. A specially adapted OS was Switch to SMSQ/E v. Emulating native hardware is expensive. A specially adapted OS was called for v. We decided that SMSQ/E would be better suited than QDOS/Minerva v. In Oct ‘ 95 J. Hassler contacted J. Merz for me regarding SMSQ/E v. In Dec ‘ 95 first sources arrived by mail (notice the lack of “e” in “mail”) v. In Feb ‘ 96 sources were complete

QPC 1 (1996 – 1999) v. Runs with a specially adapted version of SMSQ/E QPC 1 (1996 – 1999) v. Runs with a specially adapted version of SMSQ/E instead of QDOS v. No native hardware emulated (except to a degree the screen) v 100% assembler code (~15000 lines) v. Only 4 bugs in 68 k emulation found over the next 13 years (the fourth was discovered in 2006!)

QPC 1 demonstration QPC 1 demonstration

QPC 2 v 1 (1999 – 2001) v. QPC 1 needed a specially booted QPC 2 v 1 (1999 – 2001) v. QPC 1 needed a specially booted DOS version to work v. When Win 95 became more prevalent, shouts for a native Windows version became louder v. QPC 2 v 1 was finally released in 1999 v. Halve C (Windows stuff), halve assembler code (68 k core and glue) v. Looks and feels much like QPC 1

QPC 2 v 2 (2001 – 2002) v. Introduced 16 -bit graphics (GD 2) QPC 2 v 2 (2001 – 2002) v. Introduced 16 -bit graphics (GD 2) v. Now also supported windowed mode instead of just full screen v. Accelerated graphics v. Floating point acceleration v. New “DOS” device to directly access PC mass storage devices

QPC 2 v 3 (2002 – today) v. Polishing release with many small improvements QPC 2 v 3 (2002 – today) v. Polishing release with many small improvements (user wish list) v. Wheel mouse support v. Power management v. New beeper emulation (NT/2 K compatible) v. Sampled sound system support! v. TCP/IP support v 68020 emulation core (written with the help of George Gwilt)

QPC 2 v 3 demonstration QPC 2 v 3 demonstration

Development tools (QPC 1) v. Assembler choice was between Borland Turbo Assembler and Microsoft Development tools (QPC 1) v. Assembler choice was between Borland Turbo Assembler and Microsoft Assembler v. TASM won hands down v. Debugged using Borland Turbo Debugger

Development tools (QPC 2) vv 1, v 2 w w w C parts compiled Development tools (QPC 2) vv 1, v 2 w w w C parts compiled using Microsoft C v 6 Assembler parts in TASM Debugger Nu. Mega Soft. ICE Borland MAKE IDE Borland Code. Wright vv 3 w w C parts compiled using Microsoft C v 8 (2005) Assembler parts in MASM Borland MAKE still employed Visual Studio used as debugger and IDE

Emulation core v. Was mainly 68000 compatible, but was declared as 68010 as it Emulation core v. Was mainly 68000 compatible, but was declared as 68010 as it allowed data access to odd addresses v. Later QPC 2 v 3 releases were made 68020 compatible v 8000 -9000 lines of assembler code v. Line A emulator ($Axxx opcodes) used as OS interface

Emulation interface v. Mostly one way: SMSQ/E -> PC v. Line A examples: w Emulation interface v. Mostly one way: SMSQ/E -> PC v. Line A examples: w w w $A 200 qpc. sexst does ser port Dr exist? $A 210 qpc. sinit ser port no. Dr $A 220 qpc. sopen ser port no. Dr $A 230 qpc. sclse close ser port no. Dr $A 240 qpc. ssend bytes in ser queue Usage: dc. w qpc. ssend+4 ; Send queue now

Memory management v. As laptops got more and more common, preserving the battery became Memory management v. As laptops got more and more common, preserving the battery became more important v. Emulation used to run at 100%, so CPU could never sleep v. Question is, when to sleep? Do go to sleep after 5 consecutive scheduler runs, but: w Don’t if mouse was moved w Don’t if key was pressed w Don’t if a trap #1, #2 or #3 was issued

SMSQ/E v. Originally programmed by QDOS inventor Tony Tebby v. Co-developed by me since SMSQ/E v. Originally programmed by QDOS inventor Tony Tebby v. Co-developed by me since 1996 (but mainly QPC parts) v. Open source since 2002 v. Maintainer Wolfgang Lenerz v. Out of 111 changes since then 80 were (co-)developed by me

SMSQ/E technical facts v. Completely written in 68 k assembler v. About 2000 source SMSQ/E technical facts v. Completely written in 68 k assembler v. About 2000 source files, containing 222000 lines of code v. Compiled between 260 and 330 k. B big (depending on plattform) v. Compiled using QMake, QMac and QLink/Tony Tebby linker v. Alternatively: Lenerz’ Make, GWASS and Tony Tebby Linker

SMSQ/E major new features (by me) v. Improved high colour support in display driver, SMSQ/E major new features (by me) v. Improved high colour support in display driver, including alpha blending for sprites v. High colour capable WMAN 2 v. Aurora 8 -bit driver v. SBasic command line history v. Background I/O support (!) v. New Ctrl+C job switching

SMSQ/E major new features (others) v. Opaque window move routine (WL) v. HOME directory SMSQ/E major new features (others) v. Opaque window move routine (WL) v. HOME directory thing (WL) v. Sprite used as cursor (WL) v. Some QXL enhancements

SMSQ/E fun bug facts v. One user complained that SBASIC wouldn’t run his Super. SMSQ/E fun bug facts v. One user complained that SBASIC wouldn’t run his Super. Basic program w He had written procedures that took as many as 357 parameters! All named X 0, X 1, X 2 etc. w One line alone in that program was almost 2 kb long w I actually found and fixed the problem v. In v 3. 00 I’ve finally fixed a bug in the PE that has “bugged” me since 1989

What’s next for me? What’s next for me?

Q&A Q&A

Happy 25 th anniversary and QL forever! Happy 25 th anniversary and QL forever!

Contact, mailto: <firstname>@<lastname>. net Visit: http: //www. kilgus. net/ Contact, mailto: @. net Visit: http: //www. kilgus. net/