Public bug reported: Pascal uses ^Vidmem for B800 console output. The terminal does not oblige the Pascal OS code to scroll the output. Virtualbox emulation works, so this must be a qemu bug. Using QEMU in KVM mode as Ubuntu LTS.
Source line to trip bug(in theory pushes VideoMem up one line): procedure Scroll; //this is whats causing crashes. FIXME:Virtualbox not affected.QEMU BUG? begin if scrolldisabled then exit; if (CursorPosY >= 24) then begin //in case called before end of screen blank:= $20 or (TextAttr shl 8); Move((VidMem+(2*80))^,VidMem^,24*(2*80)); // Empty last line FillWord((VidMem+(24*2*80))^,80,Blank); CursorPosX:=1; CursorPosY:=23; update_cursor; end; end; ** Affects: qemu Importance: Undecided Status: New ** Affects: kvm (Ubuntu) Importance: Undecided Status: New ** Also affects: kvm (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1239008 Title: qemu fails to scroll screen on ^Vidmem output Status in QEMU: New Status in “kvm” package in Ubuntu: New Bug description: Pascal uses ^Vidmem for B800 console output. The terminal does not oblige the Pascal OS code to scroll the output. Virtualbox emulation works, so this must be a qemu bug. Using QEMU in KVM mode as Ubuntu LTS. Source line to trip bug(in theory pushes VideoMem up one line): procedure Scroll; //this is whats causing crashes. FIXME:Virtualbox not affected.QEMU BUG? begin if scrolldisabled then exit; if (CursorPosY >= 24) then begin //in case called before end of screen blank:= $20 or (TextAttr shl 8); Move((VidMem+(2*80))^,VidMem^,24*(2*80)); // Empty last line FillWord((VidMem+(24*2*80))^,80,Blank); CursorPosX:=1; CursorPosY:=23; update_cursor; end; end; To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1239008/+subscriptions