I have just bumped into a very interesting and portable minimal USB stack having CDC implementation:
https://github.com/kevinmehall/usbAt quick look it is very clearly written and shouldn't be too hard for conversion to Pascal. For example it looks much more human friendly then LUFA USB stack for AVRs. Although you would probably need an intermediate step to make it work with your MCU first.