stdio.wc 356 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. gets(s, z) {
  2. i;
  3. while(1) {
  4. if (i >= z-1)
  5. break;
  6. c = getc();
  7. if (c < 0 || c == '\n')
  8. break;
  9. s[i++] = c;
  10. }
  11. s[i] = 0;
  12. return s;
  13. }
  14. getc() {
  15. c;
  16. asm("in {c}");
  17. return c;
  18. }
  19. putc(c) {
  20. asm("out {c}");
  21. }
  22. putd(n) {
  23. asm("mov {n} Z");
  24. }
  25. puts(s) {
  26. for (i=0;s[i];i++)
  27. putc(s[i]);
  28. }
  29. nl() {
  30. putc('\n');
  31. }